<?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>44949</bug_id>
          
          <creation_ts>2010-08-31 07:27:43 -0700</creation_ts>
          <short_desc>Provide source-based properties for style declarations to CSSParser clients</short_desc>
          <delta_ts>2010-11-24 14:30:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>joepeck</cc>
    
    <cc>pfeldman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>272083</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-08-31 07:27:43 -0700</bug_when>
    <thetext>In order to improve the Web Inspector CSS editing capabilities, it is desirable to be able to retrieve style properties as they were written by the user in the CSS style declaration rather than the way WebCore has stored them internally. Having the source ranges (start/end offsets) for properties is also necessary to enable model-based editing of CSS styles via setting the entire style text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273389</commentid>
    <comment_count>1</comment_count>
      <attachid>66370</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-02 07:57:01 -0700</bug_when>
    <thetext>Created attachment 66370
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273391</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-02 07:58:21 -0700</bug_when>
    <thetext>Attachment 66370 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/CSSPropertyDatum.cpp:68:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
WebCore/css/CSSGrammar.y:1412:  Line contains tab character.  [whitespace/tab] [5]
WebCore/css/CSSParser.cpp:5696:  Missing space before ( in while(  [whitespace/parens] [5]
WebCore/css/CSSParser.cpp:5714:  Missing space before ( in while(  [whitespace/parens] [5]
WebCore/css/CSSParser.cpp:5727:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 5 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273393</commentid>
    <comment_count>3</comment_count>
      <attachid>66371</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-02 08:10:21 -0700</bug_when>
    <thetext>Created attachment 66371
[PATCH] Style fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273398</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 08:26:30 -0700</bug_when>
    <thetext>Attachment 66370 did not build on mac:
Build output: http://queues.webkit.org/results/3933066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273408</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-02 08:54:17 -0700</bug_when>
    <thetext>Attachment 66371 did not build on mac:
Build output: http://queues.webkit.org/results/3942041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273411</commentid>
    <comment_count>6</comment_count>
      <attachid>66376</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-02 09:07:02 -0700</bug_when>
    <thetext>Created attachment 66376
[PATCH] Remove unused var</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273938</commentid>
    <comment_count>7</comment_count>
      <attachid>66492</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-03 07:37:36 -0700</bug_when>
    <thetext>Created attachment 66492
[PATCH] Account for !important in property value strings + test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274551</commentid>
    <comment_count>8</comment_count>
      <attachid>66625</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-06 04:35:49 -0700</bug_when>
    <thetext>Created attachment 66625
[PATCH] Fix &quot;important&quot; keyword detection + test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274557</commentid>
    <comment_count>9</comment_count>
      <attachid>66628</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-06 04:51:48 -0700</bug_when>
    <thetext>Created attachment 66628
[PATCH] Rebase + fixed &quot;important&quot; detection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274559</commentid>
    <comment_count>10</comment_count>
      <attachid>66629</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-06 04:55:12 -0700</bug_when>
    <thetext>Created attachment 66629
[PATCH] Style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274560</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-06 04:56:15 -0700</bug_when>
    <thetext>Attachment 66628 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/CSSParser.cpp:5804:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275913</commentid>
    <comment_count>12</comment_count>
      <attachid>66909</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-08 10:24:19 -0700</bug_when>
    <thetext>Created attachment 66909
[PATCH] Rebased to follow the DocLoader rename</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277075</commentid>
    <comment_count>13</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-10 01:36:38 -0700</bug_when>
    <thetext>Joseph, could you please finish reviewing this patch? You seem to have started already :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277248</commentid>
    <comment_count>14</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-10 09:31:23 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Joseph, could you please finish reviewing this patch? You seem to have started already :)

Heh, I remember saying to give a good review on this it would take me
approx. and hour of studying the code. I know there are others who
are more familiar with the CSS Parser and parsing, I know it is difficult
to split this patch up, but that could be an approach that might help
this to get reviewed faster. As of right now I don&apos;t have that kind of
time to look at this in the detail it deserves. Pavel just mentioned he
could check it out when he gets back, and I know he has more experience
in this area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279068</commentid>
    <comment_count>15</comment_count>
      <attachid>66909</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-09-14 12:09:40 -0700</bug_when>
    <thetext>Comment on attachment 66909
[PATCH] Rebased to follow the DocLoader rename

In CSSMutableStyleDeclaration, Node* node() { return m_node; }

add a const to the method please.  Node* node() const { return m_node; }

Assuming this has no impact on the performance of parsing stylesheets in real-world usage, then r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279497</commentid>
    <comment_count>16</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-15 03:49:49 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 66909 [details])
&gt; In CSSMutableStyleDeclaration, Node* node() { return m_node; }
&gt; 
&gt; add a const to the method please.  Node* node() const { return m_node; }

Sorry, forgot about it.

&gt; Assuming this has no impact on the performance of parsing stylesheets in real-world usage, then r=me.

The added code for filling in the data works only when the parser is requested to do so (that is, non-NULL structure is passed in by the client).

=========

pfeldman@ had some more comments he forgot to send here and lost after a browser restart (but he had sent them to me over IM, so I&apos;m reposting them with my replies inline):

&gt; 1. SourceRange could be a struct with the &quot;start&quot; and &quot;end&quot; fields which improves readability and simplifies code

Done.

&gt; 2. InspectorCSSStore::resourceStyleSheetText should be defined in InspectorController. That way you won&apos;t need to add more includes unrelated to the CSS domain. Let controller care about resource logic.

Since the core algorithm is not related to stylesheets only but instead to all resources, I&apos;m extracting it as InspectorController::resourceContentForURL and delegating InspectorCSSStore::resourceStyleSheetText to it.

&gt; 3. I was wondering if we could form the !important detection as a separate patch? Rationale: 1) It seems orthogonal to the rest of the logic and 2) I&apos;d like to better understand the value we get from it. It seems to add a lot of complexity to the code.

This code is not so much orthogonal. It enables the correct detection of the &quot;important&quot; bit and, hence, the &quot;value&quot; field of CSSPropertyDatum for non-parsed properties, i.e. those ones whose &quot;declaration&quot; (from CSSGrammar.y) has an invalid structure (not &quot;property &apos;:&apos; maybe_space expr prio&quot;)).
Still, I agree this code adds more overall complexity. I will remove the detection code, fix failing tests and file a separate bug once this patch is landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279506</commentid>
    <comment_count>17</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-15 04:47:04 -0700</bug_when>
    <thetext>&gt; &gt; 3. I was wondering if we could form the !important detection as a separate patch? Rationale: 1) It seems orthogonal to the rest of the logic and 2) I&apos;d like to better understand the value we get from it. It seems to add a lot of complexity to the code.
&gt; 
&gt; This code is not so much orthogonal. It enables the correct detection of the &quot;important&quot; bit and, hence, the &quot;value&quot; field of CSSPropertyDatum for non-parsed properties, i.e. those ones whose &quot;declaration&quot; (from CSSGrammar.y) has an invalid structure (not &quot;property &apos;:&apos; maybe_space expr prio&quot;)).
&gt; Still, I agree this code adds more overall complexity. I will remove the detection code, fix failing tests and file a separate bug once this patch is landed.

After a quick discussion with pfeldman, we decided to consider all the text after &apos;:&apos; as the property value, so stripping off &quot;!important&quot; should not happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279517</commentid>
    <comment_count>18</comment_count>
      <attachid>67667</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-15 06:00:06 -0700</bug_when>
    <thetext>Created attachment 67667
[PATCH] Review comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279518</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-15 06:01:26 -0700</bug_when>
    <thetext>Attachment 67667 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/inspector/InspectorCSSStore.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279519</commentid>
    <comment_count>20</comment_count>
      <attachid>67668</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-15 06:08:59 -0700</bug_when>
    <thetext>Created attachment 67668
[PATCH] Include order fixed (case-sensitive)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279554</commentid>
    <comment_count>21</comment_count>
      <attachid>67668</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-15 08:22:17 -0700</bug_when>
    <thetext>Comment on attachment 67668
[PATCH] Include order fixed (case-sensitive)

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

&gt; WebCore/css/CSSParser.cpp:228
&gt; +void CSSParser::parseSheet(CSSStyleSheet* sheet, const String&amp; string, int startLineNumber, StyleRuleRangeMap* ruleRangeMap)
I&apos;d rather return CSSStylesheetSourceData.

&gt; WebCore/css/CSSPropertyDatum.h:63
&gt; +    bool important;
I thought this was no longer needed.

&gt; WebCore/css/CSSPropertyDatum.h:64
&gt; +    bool parsed;
parsedOk

&gt; WebCore/css/CSSPropertyDatum.h:89
&gt; +    Vector&lt;std::pair&lt;CSSPropertyDatum, SourceRange&gt; &gt; propertyData;
1) I would rename CSSPropertyDatum -&gt; CSSPropertySourceData
2) I would not make CSSPropertySourceData a hashmap key since it adds complexity
3) I would place range within CSSPropertySourceData as you do wuth CSSStyleSourceData for consistency
4) I would add &apos;hash&apos; method to CSSPropertySourceData for the sake of enable/disable resolution
5) For each *SourceData I would place a direct reference (refcounted) to corresponding model element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279605</commentid>
    <comment_count>22</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-15 10:31:01 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 67668 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=67668&amp;action=prettypatch
&gt; 
&gt; &gt; WebCore/css/CSSParser.cpp:228
&gt; &gt; +void CSSParser::parseSheet(CSSStyleSheet* sheet, const String&amp; string, int startLineNumber, StyleRuleRangeMap* ruleRangeMap)
&gt; I&apos;d rather return CSSStylesheetSourceData.
We can include it into the upcoming refactoring we have discussed. I will file a bug.

&gt; &gt; WebCore/css/CSSPropertyDatum.h:63
&gt; &gt; +    bool important;
&gt; I thought this was no longer needed.
It is still needed for &quot;parsedOk&quot; properties so that the property overrides are computed correctly by StylesSidebarPane

&gt; &gt; WebCore/css/CSSPropertyDatum.h:64
&gt; &gt; +    bool parsed;
&gt; parsedOk
Done

&gt; &gt; WebCore/css/CSSPropertyDatum.h:89
&gt; &gt; +    Vector&lt;std::pair&lt;CSSPropertyDatum, SourceRange&gt; &gt; propertyData;
&gt; 1) I would rename CSSPropertyDatum -&gt; CSSPropertySourceData
&gt; 2) I would not make CSSPropertySourceData a hashmap key since it adds complexity
&gt; 3) I would place range within CSSPropertySourceData as you do wuth CSSStyleSourceData for consistency
&gt; 4) I would add &apos;hash&apos; method to CSSPropertySourceData for the sake of enable/disable resolution
Fixed these four.

&gt; 5) For each *SourceData I would place a direct reference (refcounted) to corresponding model element
Not implementing, since we don&apos;t need it at (rather, we need a reverse mapping), and this is related to the refactoring I mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279608</commentid>
    <comment_count>23</comment_count>
      <attachid>67688</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-15 10:32:23 -0700</bug_when>
    <thetext>Created attachment 67688
[PATCH] pfeldman&apos;s comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280642</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-17 08:03:31 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67704 might have broken Qt Linux Release minimal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280650</commentid>
    <comment_count>25</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-09-17 08:33:14 -0700</bug_when>
    <thetext>Committed: http://trac.webkit.org/changeset/67704
Build fix: http://trac.webkit.org/changeset/67705</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281109</commentid>
    <comment_count>26</comment_count>
      <attachid>66909</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-18 03:20:38 -0700</bug_when>
    <thetext>Comment on attachment 66909
[PATCH] Rebased to follow the DocLoader rename

Cleared David Hyatt&apos;s review+ from obsolete attachment 66909 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66370</attachid>
            <date>2010-09-02 07:57:01 -0700</date>
            <delta_ts>2010-09-02 08:10:21 -0700</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>59578</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYjhmYjVjLi4wZDY2MDlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTAyICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKaW5kZXgg
ZWY2OWVlNi4uNzI1NzRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwpAQCAtMSw3ICsxLDEwIEBACiBi
b2R5IHsKICAgICBmb250LXNpemU6IDEycHg7CisgICAgZm9vOiBiYXIgIQorCisgICAgaW1wb3J0
YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLzsK
IH0KIAotLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBh
ZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8K
Ky8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIg
c2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyogbm90IGFu
ICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8KIAotYm9k
eS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9Citib2R5Lm1haW4ye2JhY2tncm91bmQ6IGdyZWVu
IC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xv
biwgdmVyeSAhaW1wb3J0YW50ICovfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAppbmRleCBkZGE2N2FkLi5jOTYw
ZWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZz
ZXRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE3IEBACi1UZXN0cyB0aGF0IHByb3Bl
ciBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBydWxlIGJv
ZGllcy4KK1Rlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSBy
ZXBvcnRlZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIAotYm9k
eTogWzUtMjhdCi1ib2R5Lm1haW4xOiBbOTgtMTI0XQotYm9keS5tYWluMjogWzE1MC0xNjldCi1i
b2R5IHsmICAgIGZvbnQtc2l6ZTogMTJweDsmfSYmLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3Ig
Ki9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29s
b3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8mJmJvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW47fSYK
K2JvZHk6IFs2LTExMV0KK1snZm9udC1zaXplJzonMTJweCddIEBbMTEtMjddCitbJ2Zvbyc6J2Jh
cicgIWltcG9ydGFudCBub24tcGFyc2VkXSBAWzMyLTExMF0KK2JvZHkubWFpbjE6IFsxODItMjYz
XQorWydjb2xvcic6JyNGMDBCQUEnXSBAWzE5NS0yMTBdCitbJ3pvbyc6J21vbyAvKiBub3QgYW4g
IWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMjEwLTI2
M10KK2JvZHkubWFpbjI6IFsyOTAtMzg1XQorWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUg
IWltcG9ydGFudCBjb21tZW50ICovJyAhaW1wb3J0YW50XSBAWzI5MC0zODVdCitib2R5Lm1haW5w
YWdlOiBbMTctMTQzXQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFsxOS00MV0KK1snYmFk
cHJvcGVydHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzExOC0xNDJdCitlbGVtZW50LnN0
eWxlOiBbMC0zMV0KK1snZm9udC13ZWlnaHQnOidub3JtYWwnXSBAWzAtMjBdCitbJ3dpZHRoJzon
ODAlJ10gQFsyMS0zMV0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy1zb3VyY2Utb2Zmc2V0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3Vy
Y2Utb2Zmc2V0cy5odG1sCmluZGV4IDA1MzM2MTEuLmJkN2Q4NDggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKQEAgLTM1LDU1ICszNSw0
MyBAQCBmdW5jdGlvbiBmcm9udGVuZF9ydW5UZXN0KHRlc3RDb250cm9sbGVyKQogICAgICAgICBm
dW5jdGlvbiBzdHlsZXNDYWxsYmFjayh0ZXN0Q29udHJvbGxlciwgc3R5bGVzKQogICAgICAgICB7
CiAgICAgICAgICAgICB2YXIgbWF0Y2hlZENTU1J1bGVzID0gc3R5bGVzLm1hdGNoZWRDU1NSdWxl
czsKLSAgICAgICAgICAgIHZhciBwYXJlbnRTdHlsZVNoZWV0SWQgPSBtYXRjaGVkQ1NTUnVsZXNb
MF0uc3R5bGUucGFyZW50U3R5bGVTaGVldElkOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRTdHls
ZVNoZWV0SWQpIHsKLSAgICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2go
IkJBRCBTVFlMRVNIRUVUIElEOiAiICsgcGFyZW50U3R5bGVTaGVldElkKTsKLSAgICAgICAgICAg
ICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwot
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIHJ1bGUg
PSBtYXRjaGVkQ1NTUnVsZXNbaV07CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5n
ZXRTdHlsZVNvdXJjZURhdGEocnVsZS5zdHlsZS5pZCwgZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2
ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlciwgcnVsZSwgZmFsc2UpKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0UnVsZVJhbmdlcyhwYXJlbnRTdHls
ZVNoZWV0SWQsIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250
cm9sbGVyLCBwYXJlbnRTdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpOworICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNvdXJjZURhdGEoc3R5bGVzLmlubGluZVN0eWxl
LmlkLCBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVy
LCBzdHlsZXMuaW5saW5lU3R5bGUsIHRydWUpKTsKICAgICAgICAgfQogICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmdldFN0eWxlcyhXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5p
ZCwgdHJ1ZSwgc3R5bGVzQ2FsbGJhY2suYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwogICAg
IH0pOwogfQogCi1mdW5jdGlvbiBmcm9udGVuZF9ydWxlUmFuZ2VzUmVjZWl2ZWQodGVzdENvbnRy
b2xsZXIsIHN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzLCBydWxlUmFuZ2VzKQorZnVuY3Rp
b24gZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2ZWQodGVzdENvbnRyb2xsZXIsIHJ1bGVPclN0eWxl
LCBzaG91bGRCYWlsLCBkYXRhKQogewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZENT
U1J1bGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBydWxlID0gbWF0Y2hlZENTU1J1bGVz
W2ldOwotICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2gocnVsZS5zZWxlY3RvclRl
eHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLnN0YXJ0ICsg
Ii0iICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2UuZW5kICsgIl0iKTsKKyAg
ICB2YXIgaXNSdWxlID0gISEocnVsZU9yU3R5bGUuc3R5bGUpOworICAgIHRlc3RDb250cm9sbGVy
LnJlc3VsdHMucHVzaCgoaXNSdWxlID8gcnVsZU9yU3R5bGUuc2VsZWN0b3JUZXh0IDogImVsZW1l
bnQuc3R5bGUiKSArICI6IFsiICsgZGF0YS5ib2R5UmFuZ2Uuc3RhcnQgKyAiLSIgKyBkYXRhLmJv
ZHlSYW5nZS5lbmQgKyAiXSIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5wcm9wZXJ0
eURhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb3BlcnR5RGF0dW0gPSBkYXRhLnBy
b3BlcnR5RGF0YVtpXTsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJbJyIg
KyBwcm9wZXJ0eURhdHVtLm5hbWUgKyAiJzonIiArIHByb3BlcnR5RGF0dW0udmFsdWUgKyAiJyIg
KyAocHJvcGVydHlEYXR1bS5pbXBvcnRhbnQgPyAiICFpbXBvcnRhbnQiIDogIiIpICsgKHByb3Bl
cnR5RGF0dW0ucGFyc2VkID8gIiIgOiAiIG5vbi1wYXJzZWQiKSArIl0gQFsiICsgcHJvcGVydHlE
YXR1bS5zdGFydCArICItIiArIHByb3BlcnR5RGF0dW0uZW5kICsgIl0iKTsKICAgICB9Ci0gICAg
SW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgZnJvbnRlbmRfaGFu
ZGxlU3R5bGVTaGVldC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7Ci19Ci0KLWZ1bmN0aW9u
IGZyb250ZW5kX2hhbmRsZVN0eWxlU2hlZXQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXQpCi17
Ci0gICAgdmFyIHVybCA9IHN0eWxlU2hlZXQuaHJlZjsKLSAgICBpZiAodXJsICE9PSAiIikgewot
ICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXBbdXJsXTsK
LSAgICAgICAgaWYgKCFyZXNvdXJjZSkgewotICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVz
dWx0cy5wdXNoKCJOTyBSRVNPVVJDRSBGT1IgVVJMOiAiICsgdXJsKTsKLSAgICAgICAgICAgIHRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmdldFJlc291cmNl
Q29udGVudChyZXNvdXJjZS5pZGVudGlmaWVyLCBmcm9udGVuZF9zdHlsZVNoZWV0VGV4dFJlY2Vp
dmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0
ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIkVNUFRZIFNUWUxFU0hFRVQgSFJFRiIpOworICAg
IGlmIChzaG91bGRCYWlsKQogICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RD
b250cm9sbGVyLnJlc3VsdHMpOwotICAgIH0KIH0KIAotZnVuY3Rpb24gZnJvbnRlbmRfc3R5bGVT
aGVldFRleHRSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldFRleHQpCi17Ci0gICAg
dGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHN0eWxlU2hlZXRUZXh0LnJlcGxhY2UoL1xuL2cs
ICImIikpOwotICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVz
dWx0cyk7Ci19CiA8L3NjcmlwdD4KKworPHN0eWxlPgorCitib2R5Lm1haW5wYWdlIHsKKwl0ZXh0
LWRlY29yYXRpb246IG5vbmU7IC8qIGF0IGxlYXN0IG9uZSB2YWxpZCBwcm9wZXJ0eSBpcyBuZWNl
c3NhcnkgZm9yIFdlYkNvcmUgdG8gbWF0Y2ggYSBydWxlICovCisJYmFkcHJvcGVydHk6IDFiYWR2
YWx1ZTE7Cit9CisKKzwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5IGNsYXNzPSJtYWluMSBtYWlu
MiIgb25sb2FkPSJvbmxvYWQoKSI+Cis8Ym9keSBjbGFzcz0ibWFpbjEgbWFpbjIgbWFpbnBhZ2Ui
IG9ubG9hZD0ib25sb2FkKCkiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyB3aWR0aDogODAl
Ij4KIDxwPgotVGVzdHMgdGhhdCBwcm9wZXIgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJl
IHJlcG9ydGVkIGZvciBDU1MgcnVsZSBib2RpZXMuCitUZXN0cyB0aGF0IHByb3BlciBzdGFydC9l
bmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBzdHlsZSBkZWNsYXJhdGlv
bnMgYW5kIHByb3BlcnRpZXMuCiA8L3A+CiAKIDwvYm9keT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiMTVmNC4uMTA4ZjAyNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxMC0wOS0wMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFByb3ZpZGUgc291cmNlLWJhc2VkIHByb3BlcnRpZXMgZm9yIHN0eWxlIGRlY2xhcmF0aW9ucyB0
byBDU1NQYXJzZXIgY2xpZW50cy4KKworICAgICAgICBUaGlzIGNoYW5nZToKKyAgICAgICAgLSBF
bmFibGVzIEluc3BlY3RvckNTU1N0b3JlIHRvIGV4dHJhY3QgKGFuZCBjYWNoZSkgQ1NTIHN0eWxl
c2hlZXQgdGV4dCBmb3IgYWxsIHNvdXJjZS1iYXNlZCBzdHlsZXNoZWV0cywKKyAgICAgICAgICBl
dmVuIHdpdGggdGhlIHJlc291cmNlIHRyYWNraW5nIHR1cm5lZCBvZmYuCisgICAgICAgIC0gQWRk
cyB0byBDU1NQYXJzZXIgYSBjYXBhYmlsaXR5IG9mIHNvdXJjZS1yZWxhdGVkIHN0eWxlIGRlY2xh
cmF0aW9uIGRhdGEgZXh0cmFjdGlvbjoKKyAgICAgICAgICAqIERlY2xhcmF0aW9uIGFuZCBDU1Mg
cHJvcGVydHkgc3RhcnQvZW5kIG9mZnNldHMgaW4gdGhlIHNvdXJjZSB0ZXh0IChwYXJlbnQgc3R5
bGVzaGVldCBvciB0aGUgInN0eWxlIiBhdHRyaWJ1dGUgdmFsdWUpLgorICAgICAgICAgICogQ1NT
IHByb3BlcnR5IGRhdGE6IG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgV2ViQ29yZSBwYXJzYWJpbGl0
eSAoaS5lLiBpZiB0aGUgcHJvcGVydHkgaXMgdW5kZXJzdG9vZCBieSBXZWJDb3JlKS4KKyAgICAg
ICAgLSBQcm92aWRlcyB0aGUgZXh0cmFjdGVkIGRhdGEgdG8gdGhlIFdlYkluc3BlY3RvciBmcm9u
dGVuZCB2aWEgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSgpLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ5NDkKKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAgICAgICAgKiBj
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uOjpub2RlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Q1NTUGFyc2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlRGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVh
dGVTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUnVsZUJvZHlT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZmluZEltcG9ydGFudEluVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUHJvcGVydHlFbmQpOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cmVzZXRQcm9wZXJ0
eU1hcmtzKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1bSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJvcGVydHlEYXR1bTo6aW5pdCk6CisgICAgICAgIChXVEY6Ojo6ZW1wdHlWYWx1ZSk6CisgICAg
ICAgICogY3NzL0NTU1Byb3BlcnR5RGF0dW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjp+Q1NTUHJvcGVydHlEYXR1bSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3Bl
cnR5RGF0dW06Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTb3VyY2VE
YXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bUhhc2g6Omhh
c2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bUhhc2g6OmVxdWFsKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6
OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpzdHlsZVNoZWV0
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6cmVzb3VyY2VTdHls
ZVNoZWV0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5l
U3R5bGVTaGVldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6Omdl
dFN0eWxlU291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6
ZXh0cmFjdFJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0
U3R5bGVBdHRyaWJ1dGVSYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3Rv
cmU6OmdldFBhcmVudFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
U3RvcmU6OmlubGluZVN0eWxlRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5
bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorCiAyMDEwLTA5
LTAyICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAg
UnViYmVyLXN0YW1wZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg5ZjQyMDIuLmNkNzMzOGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC05OTcsNiArOTk3LDggQEAKICAgICAgICAgICAgICdjc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHkuY3BwJywKICAgICAg
ICAgICAgICdjc3MvQ1NTUHJvcGVydHkuaCcsCisgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5
RGF0dW0uY3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlEYXR1bS5oJywKICAgICAg
ICAgICAgICdjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9D
U1NQcm9wZXJ0eUxvbmdoYW5kLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NRdWlya1ByaW1pdGl2
ZVZhbHVlLmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggM2YyM2NkZC4uYzViYmUyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MzIsNiArNDMyLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgXAogICAgIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NQcm9wZXJ0eS5jcHAgXAorICAgIGNzcy9DU1NQ
cm9wZXJ0eURhdHVtLmNwcCBcCiAgICAgY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwIFwKICAg
ICBjc3MvQ1NTUmVmbGVjdFZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU1J1bGUuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI3ZTUzMzQuLjZlYzhjODIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjkzNTcsNiArMjkzNTcsMTQgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3Nz
XENTU1Byb3BlcnR5RGF0dW0uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU1Byb3BlcnR5RGF0dW0uaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9wZXJ0
eUxvbmdoYW5kLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4Yjg4ZWMuLjg4MzkwNDggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDU2LDYgKzE0NTYsOCBAQAog
CQk4MUJFMjBEMzExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE4MTFGNEI2NkYwMDkxNURG
QSAvKiBKU0lEQkN1cnNvci5oICovOyB9OwogCQk4MkI2NTg5ODExODlFMzkyMDBFMDUyQTEgLyog
SW5zcGVjdG9yQ1NTU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgyQjY1
ODlBMTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkI2NTg5OTExODlFNDc2MDBFMDUy
QTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovOyB9OworCQk4MkUzRDhERTEyMkVBMEQxMDAz
QUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVy
dHlEYXR1bS5jcHAgKi87IH07CisJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9w
ZXJ0eURhdHVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0MTlEMkE3MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVh
bUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTczODQsNiArNzM4Niw4IEBACiAJCTgxQkUyMEE4MTFGNEI2
NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0lEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkI2NTg5
NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3Jl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNTU1N0
b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJFM0Q4REMxMjJFQTBEMTAw
M0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTUHJvcGVydHlEYXR1bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5RGF0dW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhC
eXRlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE1MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2OTU4LDYgKzE2OTYyLDggQEAKIAkJCQlFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyog
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICovLAogCQkJCUE4MEU2Q0NEMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NQcm9wZXJ0eS5jcHAgKi8sCiAJCQkJQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU1Byb3BlcnR5LmggKi8sCisJCQkJODJFM0Q4REMxMjJFQTBEMTAwM0FFNUJDIC8qIENT
U1Byb3BlcnR5RGF0dW0uY3BwICovLAorCQkJCTgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBD
U1NQcm9wZXJ0eURhdHVtLmggKi8sCiAJCQkJMEY2RUNENDQwRjI1MkYzNzAwQkRFMjcxIC8qIENT
U1Byb3BlcnR5TG9uZ2hhbmQuY3BwICovLAogCQkJCTBGNkVDRDQzMEYyNTJGMzcwMEJERTI3MSAv
KiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggKi8sCiAJCQkJQkNFQTQ3ODkwOTdDQUFDODAwOTRDOUU0
IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4gKi8sCkBAIC0yMDQzMiw2ICsyMDQzOCw3IEBACiAJCQkJ
ODk4Nzg1QjkxMjJDQTJBNzAwM0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODk4Nzg1RjExMjJFMUU4NzAwM0FBQkRBIC8qIEpTRmlsZUV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1RjUxMjJFMUVBQzAwM0FBQkRBIC8qIEpTRmlsZVJl
YWRlclN5bmMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAv
KiBDU1NQcm9wZXJ0eURhdHVtLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyODk1LDYgKzIyOTAyLDcg
QEAKIAkJCQk4OTg3ODVCODEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUYwMTIyRTFFODcwMDNBQUJEQSAvKiBKU0ZpbGVF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1RjQxMjJFMUVBQzAwM0FBQkRB
IC8qIEpTRmlsZVJlYWRlclN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODJFM0Q4REUxMjJF
QTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkKaW5kZXggZWM1MDdiZS4uOWU2YWJlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTR3Jh
bW1hci55CisrKyBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtMzE0LDcgKzMxNCw3IEBA
IHdlYmtpdF9rZXlmcmFtZV9ydWxlOgogOwogCiB3ZWJraXRfZGVjbHM6Ci0gICAgV0VCS0lUX0RF
Q0xTX1NZTSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAnfScgeworICAgIFdFQktJ
VF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlvbiBkZWNsYXJhdGlv
bl9saXN0ICd9JyB7CiAgICAgICAgIC8qIGNhbiBiZSBlbXB0eSAqLwogICAgIH0KIDsKQEAgLTkw
Myw4ICs5MDMsMTUgQEAgdW5hcnlfb3BlcmF0b3I6CiAgIHwgJysnIHsgJCQgPSAxOyB9CiAgIDsK
IAorbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uOgorICAgIG1heWJlX3NwYWNlIHsKKyAg
ICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAg
ICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICB9CisgIDsKKwogcnVsZXNldDoKLSAg
ICBzZWxlY3Rvcl9saXN0ICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IGNsb3Npbmdf
YnJhY2UgeworICAgIHNlbGVjdG9yX2xpc3QgJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJh
dGlvbiBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgewogICAgICAgICBDU1NQYXJzZXIq
IHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwogICAgICAgICAkJCA9IHAtPmNy
ZWF0ZVN0eWxlUnVsZSgkMSk7CiAgICAgfQpAQCAtMTM1NSw2ICsxMzYyLDggQEAgZGVjbGFyYXRp
b25fbGlzdDoKIAogZGVjbF9saXN0OgogICAgIGRlY2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7
CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7
CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gJDE7CiAgICAg
fQogICAgIHwgZGVjbGFyYXRpb24gaW52YWxpZF9ibG9ja19saXN0IG1heWJlX3NwYWNlIHsKQEAg
LTEzNjQsMTIgKzEzNzMsMTYgQEAgZGVjbF9saXN0OgogICAgICAgICAkJCA9IGZhbHNlOwogICAg
IH0KICAgICB8IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9
IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0
eVN0YXJ0KCk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwgZXJyb3IgaW52YWxp
ZF9ibG9ja19saXN0IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CiAgICAgICAgICQkID0gZmFsc2U7
CiAgICAgfQogICAgIHwgZGVjbF9saXN0IGRlY2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7Cisg
ICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7Cisg
ICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gJDE7CiAgICAgICAg
IGlmICgkMikKICAgICAgICAgICAgICQkID0gJDI7CkBAIC0xMzg2LDE1ICsxMzk5LDIxIEBAIGRl
Y2xhcmF0aW9uOgogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8gewogICAg
ICAgICAkJCA9IGZhbHNlOwogICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQ
YXJzZXIqPihwYXJzZXIpOworICAgICAgICBib29sIGlzUHJvcGVydHlQYXJzZWQgPSBmYWxzZTsK
ICAgICAgICAgaWYgKCQxICYmICQ0KSB7CiAgICAgICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IHAt
PnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7CiAgICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJv
cGVydGllcyA9IHAtPm1fbnVtUGFyc2VkUHJvcGVydGllczsKICAgICAgICAgICAgICQkID0gcC0+
cGFyc2VWYWx1ZSgkMSwgJDUpOwotICAgICAgICAgICAgaWYgKCEkJCkKKyAgICAgICAgICAgIGlm
ICghJCQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihwLT5tX251bVBh
cnNlZFByb3BlcnRpZXMpID09IG9sZFBhcnNlZFByb3BlcnRpZXMpCisgICAgICAgICAgICAgICAg
ICAgIGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIHAtPnJvbGxiYWNr
TGFzdFByb3BlcnRpZXMocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzIC0gb2xkUGFyc2VkUHJvcGVy
dGllcyk7CisgICAgICAgICAgICB9IGVsc2UKKwkgICAgICAgICAgICBpc1Byb3BlcnR5UGFyc2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgIGRlbGV0ZSBwLT5tX3ZhbHVlTGlzdDsKICAgICAgICAgICAg
IHAtPm1fdmFsdWVMaXN0ID0gMDsKICAgICAgICAgfQorICAgICAgICBwLT5tYXJrUHJvcGVydHlF
bmQoJDUsIGlzUHJvcGVydHlQYXJzZWQpOwogICAgIH0KICAgICB8CiAgICAgdmFyaWFibGVfcmVm
ZXJlbmNlIG1heWJlX3NwYWNlIHsKQEAgLTE0MTcsMTEgKzE0MzYsMTUgQEAgZGVjbGFyYXRpb246
CiAgICAgICAgIC8qIFRoZSBkZWZhdWx0IG1vdmFibGUgdHlwZSB0ZW1wbGF0ZSBoYXMgbGV0dGVy
LXNwYWNpbmc6IC5ub25lOyAgSGFuZGxlIHRoaXMgYnkgbG9va2luZyBmb3IKICAgICAgICAgZXJy
b3IgdG9rZW5zIGF0IHRoZSBzdGFydCBvZiBhbiBleHByLCByZWNvdmVyIHRoZSBleHByIGFuZCB0
aGVuIHRyZWF0IGFzIGFuIGVycm9yLCBjbGVhbmluZwogICAgICAgICB1cCBhbmQgZGVsZXRpbmcg
dGhlIHNoaWZ0ZWQgZXhwci4gICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0
PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwg
ZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CiAgICAgcHJvcGVydHkg
JzonIG1heWJlX3NwYWNlIGV4cHIgcHJpbyBlcnJvciB7CiAgICAgICAgIC8qIFdoZW4gd2UgZW5j
b3VudGVyIHNvbWV0aGluZyBsaWtlIHAge2NvbG9yOiByZWQgIWltcG9ydGFudCBmYWlsO30gd2Ug
c2hvdWxkIGRyb3AgdGhlIGRlY2xhcmF0aW9uICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0
YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVu
ZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CkBAIC0x
NDMyLDExICsxNDU1LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgIHwKICAgICBwcm9wZXJ0eSAnOicg
bWF5YmVfc3BhY2UgewogICAgICAgICAvKiBkaXYgeyBmb250LWZhbWlseTogfSBKdXN0IHJlZHVj
ZSBhd2F5IHRoaXMgcHJvcGVydHkgd2l0aCBubyB2YWx1ZS4gKi8KKyAgICAgICAgQ1NTUGFyc2Vy
KiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1By
b3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAg
IHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXJyb3IgewogICAgICAgICAvKiBpZiB3
ZSBjb21lIGFjcm9zcyBydWxlcyB3aXRoIGludmFsaWQgdmFsdWVzIGxpa2UgdGhpcyBjYXNlOiBw
IHsgd2VpZ2h0OiAqOyB9LCBqdXN0IGRpc2NhcmQgdGhlIHJ1bGUgKi8KKyAgICAgICAgQ1NTUGFy
c2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFy
a1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQog
ICAgIHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
LmggYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IGY3NzU5
ZjQuLjQwNmZkOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaApA
QCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5vZGUoTm9kZSogbm9kZSkg
eyBtX25vZGUgPSBub2RlOyB9CiAKKyAgICBOb2RlKiBub2RlKCkgeyByZXR1cm4gbV9ub2RlOyB9
CisKICAgICB2aXJ0dWFsIGJvb2wgaXNNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCmluZGV4IDY4NzIzNWYuLjkyMTU2NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTQ3LDcgKzE0
NywxMCBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAgICAgLCBt
X2RlZmF1bHROYW1lc3BhY2Uoc3RhckF0b20pCiAgICAgLCBtX3J1bGVCb2R5U3RhcnRPZmZzZXQo
MCkKICAgICAsIG1fcnVsZUJvZHlFbmRPZmZzZXQoMCkKLSAgICAsIG1fcnVsZVJhbmdlcygwKQor
ICAgICwgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0KFVJTlRfTUFYKQorICAgICwgbV9wcm9wZXJ0eUVu
ZE9mZnNldChVSU5UX01BWCkKKyAgICAsIG1fcnVsZVJhbmdlTWFwKDApCisgICAgLCBtX2N1cnJl
bnRTdHlsZURhdGEoMCkKICAgICAsIG1fZGF0YSgwKQogICAgICwgeXlfc3RhcnQoMSkKICAgICAs
IG1fbGluZU51bWJlcigwKQpAQCAtMTU5LDYgKzE2Miw3IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2Vy
KGJvb2wgc3RyaWN0UGFyc2luZykKICNpZiBZWURFQlVHID4gMAogICAgIGNzc3l5ZGVidWcgPSAx
OwogI2VuZGlmCisgICAgQ1NTUHJvcGVydHlEYXR1bTo6aW5pdCgpOwogfQogCiBDU1NQYXJzZXI6
On5DU1NQYXJzZXIoKQpAQCAtMjIzLDE2ICsyMjcsMTkgQEAgdm9pZCBDU1NQYXJzZXI6OnNldHVw
UGFyc2VyKGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IGNo
YXIKICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OnBhcnNl
U2hlZXQoQ1NTU3R5bGVTaGVldCogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQgc3Rh
cnRMaW5lTnVtYmVyLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1bGVSYW5nZU1hcCkKK3ZvaWQgQ1NTUGFy
c2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNoZWV0LCBjb25zdCBTdHJpbmcmIHN0cmlu
ZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCkK
IHsKICAgICBtX3N0eWxlU2hlZXQgPSBzaGVldDsKICAgICBtX2RlZmF1bHROYW1lc3BhY2UgPSBz
dGFyQXRvbTsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLgotICAgIG1fcnVsZVJhbmdl
cyA9IHJ1bGVSYW5nZU1hcDsKKyAgICBtX3J1bGVSYW5nZU1hcCA9IHJ1bGVSYW5nZU1hcDsKKyAg
ICBpZiAocnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSBDU1NTdHls
ZVNvdXJjZURhdGE6OmNyZWF0ZSgpOwogCiAgICAgbV9saW5lTnVtYmVyID0gc3RhcnRMaW5lTnVt
YmVyOwogICAgIHNldHVwUGFyc2VyKCIiLCBzdHJpbmcsICIiKTsKICAgICBjc3N5eXBhcnNlKHRo
aXMpOwotICAgIG1fcnVsZVJhbmdlcyA9IDA7CisgICAgbV9ydWxlUmFuZ2VNYXAgPSAwOworICAg
IG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgbV9ydWxlID0gMDsKIH0KIApAQCAtMzI5LDEw
ICszMzYsMTQgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIERvY3VtZW50KiBkb2MsIENTU1NlbGVjdG9yTGkKICAgICBtX3NlbGVjdG9yTGlzdEZv
clBhcnNlU2VsZWN0b3IgPSAwOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VEZWNsYXJhdGlv
bihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbGFyYXRpb24sIGNvbnN0IFN0cmluZyYg
c3RyaW5nKQorYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZywgQ1NTU3R5bGVT
b3VyY2VEYXRhKiBzdHlsZVNvdXJjZURhdGEpCiB7CisgICAgLy8gTGVuZ3RoIG9mIHRoZSAiQC13
ZWJraXQtZGVjbHN7IiBwcmVmaXgKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcHJlZml4TGVu
Z3RoID0gMTU7CisKICAgICBBU1NFUlQoIWRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkgfHwgZGVj
bGFyYXRpb24tPnN0eWxlc2hlZXQoKS0+aXNDU1NTdHlsZVNoZWV0KCkpOwogICAgIG1fc3R5bGVT
aGVldCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihkZWNsYXJhdGlvbi0+c3R5bGVzaGVl
dCgpKTsKKyAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSBzdHlsZVNvdXJjZURhdGE7CiAKICAgICBz
ZXR1cFBhcnNlcigiQC13ZWJraXQtZGVjbHN7Iiwgc3RyaW5nLCAifSAiKTsKICAgICBjc3N5eXBh
cnNlKHRoaXMpOwpAQCAtMzQ3LDYgKzM1OCwxNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VEZWNs
YXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbGFyYXRpb24sIGNvbnN0CiAg
ICAgICAgIGNsZWFyUHJvcGVydGllcygpOwogICAgIH0KIAorICAgIGlmIChtX2N1cnJlbnRTdHls
ZURhdGEpIHsKKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5zdHlsZUJvZHlSYW5nZS5maXJz
dCA9IDA7CisgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc2Vjb25k
ID0gc3RyaW5nLmxlbmd0aCgpOworICAgICAgICBmb3IgKFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJv
cGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID46Oml0ZXJhdG9yIGl0ID0gbV9jdXJyZW50U3R5bGVE
YXRhLT5wcm9wZXJ0eURhdGEuYmVnaW4oKTsgaXQgIT0gbV9jdXJyZW50U3R5bGVEYXRhLT5wcm9w
ZXJ0eURhdGEuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgICgqaXQpLnNlY29uZC5maXJzdCAt
PSBwcmVmaXhMZW5ndGg7CisgICAgICAgICAgICAoKml0KS5zZWNvbmQuc2Vjb25kIC09IHByZWZp
eExlbmd0aDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghbV9ydWxlUmFuZ2VNYXApCisg
ICAgICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgcmV0dXJuIG9rOwogfQogCkBAIC01
Mzg0LDggKzU0MDYsMTIgQEAgQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVTdHlsZVJ1bGUoVmVj
dG9yPENTU1NlbGVjdG9yKj4qIHNlbGVjdG9ycykKICAgICAgICAgcnVsZS0+c2V0RGVjbGFyYXRp
b24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShydWxlLmdldCgpLCBtX3BhcnNl
ZFByb3BlcnRpZXMsIG1fbnVtUGFyc2VkUHJvcGVydGllcykpOwogICAgICAgICByZXN1bHQgPSBy
dWxlLmdldCgpOwogICAgICAgICBtX3BhcnNlZFN0eWxlT2JqZWN0cy5hcHBlbmQocnVsZS5yZWxl
YXNlKCkpOwotICAgICAgICBpZiAobV9ydWxlUmFuZ2VzKQotICAgICAgICAgICAgbV9ydWxlUmFu
Z2VzLT5zZXQocmVzdWx0LCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPihtX3J1bGVCb2R5
U3RhcnRPZmZzZXQsIG1fcnVsZUJvZHlFbmRPZmZzZXQpKTsKKyAgICAgICAgaWYgKG1fcnVsZVJh
bmdlTWFwKSB7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50U3R5bGVEYXRhKTsKKyAgICAg
ICAgICAgIG1fY3VycmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2UgPSBTb3VyY2VSYW5nZSht
X3J1bGVCb2R5U3RhcnRPZmZzZXQsIG1fcnVsZUJvZHlFbmRPZmZzZXQpOworICAgICAgICAgICAg
bV9ydWxlUmFuZ2VNYXAtPnNldChyZXN1bHQsIG1fY3VycmVudFN0eWxlRGF0YS5yZWxlYXNlKCkp
OworICAgICAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpj
cmVhdGUoKTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsKICAg
ICBjbGVhclByb3BlcnRpZXMoKTsKQEAgLTU2MzgsNyArNTY2NCw5IEBAIHZvaWQgQ1NTUGFyc2Vy
Ojp1cGRhdGVMYXN0U2VsZWN0b3JMaW5lQW5kUG9zaXRpb24oKQogdm9pZCBDU1NQYXJzZXI6Om1h
cmtSdWxlQm9keVN0YXJ0KCkKIHsKICAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBtX2Rh
dGE7Ci0gICAgaWYgKCFtX3J1bGVCb2R5U3RhcnRPZmZzZXQgfHwgb2Zmc2V0IDwgbV9ydWxlQm9k
eVN0YXJ0T2Zmc2V0KQorICAgIGlmICgqeXl0ZXh0ID09ICd7JykKKyAgICAgICAgKytvZmZzZXQ7
IC8vIHNraXAgdGhlIHJ1bGUgYm9keSBvcGVuaW5nIGJyYWNlCisgICAgaWYgKG9mZnNldCA+IG1f
cnVsZUJvZHlTdGFydE9mZnNldCkKICAgICAgICAgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0ID0gb2Zm
c2V0OwogfQogCkBAIC01NjQ5LDYgKzU2NzcsMTA4IEBAIHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVs
ZUJvZHlFbmQoKQogICAgICAgICBtX3J1bGVCb2R5RW5kT2Zmc2V0ID0gb2Zmc2V0OwogfQogCit2
b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5U3RhcnQoKQoreworICAgIHVuc2lnbmVkIG9mZnNl
dCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBtX3Byb3BlcnR5U3RhcnRPZmZzZXQgPSBvZmZzZXQ7
Cit9CisKKy8vIHN0YXRpYwordW5zaWduZWQgQ1NTUGFyc2VyOjpmaW5kSW1wb3J0YW50SW5WYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBJbXBvcnRhbnQsICgiaW1wb3J0YW50IikpOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBp
bXBvcnRhbnRMZW5ndGggPSA5OworCisgICAgVmVjdG9yPFNvdXJjZVJhbmdlPiBjb21tZW50UmFu
Z2VzOworICAgIHVuc2lnbmVkIHNlYXJjaFN0YXJ0SW5kZXggPSAwOworCisgICAgLy8gQ29sbGVj
dCBjb21tZW50IHJhbmdlcy4KKyAgICB3aGlsZShzZWFyY2hTdGFydEluZGV4IDwgdmFsdWUubGVu
Z3RoKCkpIHsKKyAgICAgICAgc2l6ZV90IGNvbW1lbnRTdGFydCA9IHZhbHVlLmZpbmQoIi8qIiwg
c2VhcmNoU3RhcnRJbmRleCwgdHJ1ZSk7CisgICAgICAgIGlmIChjb21tZW50U3RhcnQgIT0gbm90
Rm91bmQpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb21tZW50RW5kID0gdmFsdWUuZmluZCgiKi8i
LCBjb21tZW50U3RhcnQgKyAyLCB0cnVlKTsKKyAgICAgICAgICAgIEFTU0VSVChjb21tZW50RW5k
ICE9IG5vdEZvdW5kKTsKKyAgICAgICAgICAgIGNvbW1lbnRSYW5nZXMuYXBwZW5kKFNvdXJjZVJh
bmdlKGNvbW1lbnRTdGFydCwgY29tbWVudEVuZCArIDIpKTsKKyAgICAgICAgICAgIHNlYXJjaFN0
YXJ0SW5kZXggPSBjb21tZW50RW5kICsgMjsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBz
ZWFyY2hTdGFydEluZGV4ID0gVUlOVF9NQVg7CisgICAgfQorCisgICAgdW5zaWduZWQgbm9uQ29t
bWVudFJhbmdlU3RhcnQgPSAxOworICAgIHVuc2lnbmVkIHZhbHVlTGVuZ3RoID0gdmFsdWUubGVu
Z3RoKCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB2YWx1ZS5jaGFyYWN0ZXJzKCk7
CisgICAgc2VhcmNoU3RhcnRJbmRleCA9IDA7CisKKyAgICAvLyBGaW5kICJpbXBvcnRhbnQiIG91
dHNpZGUgb2YgY29tbWVudCByYW5nZXMuCisgICAgVmVjdG9yPFNvdXJjZVJhbmdlPjo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBjb21tZW50UmFuZ2VzLmJlZ2luKCk7CisgICAgd2hpbGUoc2VhcmNoU3Rh
cnRJbmRleCA8IHZhbHVlTGVuZ3RoKSB7CisgICAgICAgIHNpemVfdCBpbXBvcnRhbnRXb3JkU3Rh
cnQgPSB2YWx1ZS5maW5kKEltcG9ydGFudCwgc2VhcmNoU3RhcnRJbmRleCwgdHJ1ZSk7CisgICAg
ICAgIGlmIChpbXBvcnRhbnRXb3JkU3RhcnQgPT0gbm90Rm91bmQpCisgICAgICAgICAgICByZXR1
cm4gVUlOVF9NQVg7CisKKyAgICAgICAgaWYgKGl0ICE9IGNvbW1lbnRSYW5nZXMuZW5kKCkgJiYg
aW1wb3J0YW50V29yZFN0YXJ0ID4gKCppdCkuZmlyc3QgJiYgaW1wb3J0YW50V29yZFN0YXJ0IDwg
KCppdCkuc2Vjb25kKSB7CisgICAgICAgICAgICBzZWFyY2hTdGFydEluZGV4ID0gKCppdCkuc2Vj
b25kOworICAgICAgICAgICAgKytpdDsKKyAgICAgICAgfSBlbHNlIHsgLy8gZmluZCBwcmVjZWRp
bmcgJyEnCisgICAgICAgICAgICBBU1NFUlQoaW1wb3J0YW50V29yZFN0YXJ0ID4gMSk7CisgICAg
ICAgICAgICB1bnNpZ25lZCBleGNsYW1hdGlvbk9mZnNldCA9IGltcG9ydGFudFdvcmRTdGFydDsK
KyAgICAgICAgICAgIHdoaWxlICgtLWV4Y2xhbWF0aW9uT2Zmc2V0ID49IG5vbkNvbW1lbnRSYW5n
ZVN0YXJ0KSB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChjaGFyYWN0ZXJzW2V4Y2xhbWF0aW9u
T2Zmc2V0XSkgeworICAgICAgICAgICAgICAgICAgICBjYXNlICchJzoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBleGNsYW1hdGlvbk9mZnNldDsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSAnICc6CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ1x0JzoKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSAnXHInOgorICAgICAgICAgICAgICAgICAgICBjYXNlICdcbic6CisgICAgICAg
ICAgICAgICAgICAgIGNhc2UgJ1xmJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgc2Vh
cmNoU3RhcnRJbmRleCA9IGltcG9ydGFudFdvcmRTdGFydCArIGltcG9ydGFudExlbmd0aDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gVUlOVF9NQVg7Cit9CisKK3ZvaWQg
Q1NTUGFyc2VyOjptYXJrUHJvcGVydHlFbmQoYm9vbCBpc0ltcG9ydGFudEZvdW5kLCBib29sIGlz
UHJvcGVydHlQYXJzZWQpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIEltcG9y
dGFudCwgKCJpbXBvcnRhbnQiKSk7CisgICAgdW5zaWduZWQgb2Zmc2V0ID0geXl0ZXh0IC0gbV9k
YXRhOworICAgIGlmICgqeXl0ZXh0ID09ICc7JykgLy8gaW5jbHVkZSBzZW1pY29sb24gaW50byB0
aGUgcHJvcGVydHkgdGV4dAorICAgICAgICArK29mZnNldDsKKyAgICBtX3Byb3BlcnR5RW5kT2Zm
c2V0ID0gb2Zmc2V0OworICAgIGlmIChtX3Byb3BlcnR5U3RhcnRPZmZzZXQgIT0gVUlOVF9NQVgg
JiYgbV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIC8vIFRoaXMgc3R1ZmYgaXMgb25seSBl
eGVjdXRlZCB3aGVuIHRoZSBzdHlsZSBkYXRhIHJldHJpZXZhbCBpcyByZXF1ZXN0ZWQgYnkgY2xp
ZW50LgorICAgICAgICBTb3VyY2VSYW5nZSBwcm9wZXJ0eVJhbmdlID0gU291cmNlUmFuZ2UobV9w
cm9wZXJ0eVN0YXJ0T2Zmc2V0LCBtX3Byb3BlcnR5RW5kT2Zmc2V0KTsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQmIHN0YXJ0ID0gbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAgICBjb25zdCB1
bnNpZ25lZCYgZW5kID0gbV9wcm9wZXJ0eUVuZE9mZnNldDsKKyAgICAgICAgQVNTRVJUKHN0YXJ0
IDwgZW5kKTsKKyAgICAgICAgU3RyaW5nIHByb3BlcnR5U3RyaW5nID0gU3RyaW5nKG1fZGF0YSAr
IHN0YXJ0LCBlbmQgLSBzdGFydCkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgIGlmIChwcm9w
ZXJ0eVN0cmluZy5lbmRzV2l0aCgiOyIsIHRydWUpKQorICAgICAgICAgICAgcHJvcGVydHlTdHJp
bmcgPSBwcm9wZXJ0eVN0cmluZy5sZWZ0KHByb3BlcnR5U3RyaW5nLmxlbmd0aCgpIC0gMSk7Cisg
ICAgICAgIFZlY3RvcjxTdHJpbmc+IHByb3BlcnR5Q29tcG9uZW50czsKKyAgICAgICAgc2l6ZV90
IGNvbG9uSW5kZXggPSBwcm9wZXJ0eVN0cmluZy5maW5kKCI6Iik7CisgICAgICAgIEFTU0VSVChj
b2xvbkluZGV4ICE9IG5vdEZvdW5kKTsKKworICAgICAgICBTdHJpbmcgbmFtZSA9IHByb3BlcnR5
U3RyaW5nLmxlZnQoY29sb25JbmRleCkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgIFN0cmlu
ZyB2YWx1ZSA9IHByb3BlcnR5U3RyaW5nLnN1YnN0cmluZyhjb2xvbkluZGV4ICsgMSwgcHJvcGVy
dHlTdHJpbmcubGVuZ3RoKCkpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICBib29sIGlzSW1w
b3J0YW50ID0gaXNJbXBvcnRhbnRGb3VuZDsKKyAgICAgICAgaWYgKGlzSW1wb3J0YW50IHx8ICFp
c1Byb3BlcnR5UGFyc2VkKSB7CisgICAgICAgICAgICAvLyBOZWVkIHRvIHN0cmlwICIhe3d9aW1w
b3J0YW50IiAod2l0aCB0aGUgZm9sbG93aW5nIHRleHQpIGlmIHRoZXJlJ3MgYSBjaGFuY2UgdGhh
dCBpdCBpcyBwcmVzZW50IGluIHRoZSB2YWx1ZS4KKyAgICAgICAgICAgIHVuc2lnbmVkIGltcG9y
dGFudE9mZnNldCA9IGZpbmRJbXBvcnRhbnRJblZhbHVlKHZhbHVlKTsKKyAgICAgICAgICAgIGlm
IChpbXBvcnRhbnRPZmZzZXQgIT0gVUlOVF9NQVgpIHsKKyAgICAgICAgICAgICAgICBpc0ltcG9y
dGFudCA9IHRydWU7CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5sZWZ0KGltcG9ydGFu
dE9mZnNldCkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5wcm9wZXJ0eURhdGEuYXBwZW5kKHN0ZDo6cGFpcjxD
U1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4oQ1NTUHJvcGVydHlEYXR1bShuYW1lLCB2YWx1
ZSwgaXNJbXBvcnRhbnQsIGlzUHJvcGVydHlQYXJzZWQpLCBwcm9wZXJ0eVJhbmdlKSk7CisgICAg
fQorICAgIHJlc2V0UHJvcGVydHlNYXJrcygpOworfQorCisKIHN0YXRpYyBpbnQgY3NzUHJvcGVy
dHlJRChjb25zdCBVQ2hhciogcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAg
aWYgKCFsZW5ndGgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaCBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDYyMTFlNjIuLjM1N2E5Y2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0y
NSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNTU1BhcnNlclZh
bHVlcy5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5RGF0dW0uaCIKICNpbmNsdWRlICJDU1NTZWxl
Y3Rvckxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KQEAgLTU1LDE4ICs1NiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFz
cyBDU1NQYXJzZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBIYXNoTWFwPENTU1N0
eWxlUnVsZSosIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+ID4gU3R5bGVSdWxlUmFuZ2Vz
OwotCiAgICAgICAgIENTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcgPSB0cnVlKTsKICAgICAg
ICAgfkNTU1BhcnNlcigpOwogCi0gICAgICAgIHZvaWQgcGFyc2VTaGVldChDU1NTdHlsZVNoZWV0
KiwgY29uc3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJlciA9IDAsIFN0eWxlUnVsZVJhbmdl
cyogcnVsZVJhbmdlTWFwID0gMCk7CisgICAgICAgIHZvaWQgcGFyc2VTaGVldChDU1NTdHlsZVNo
ZWV0KiwgY29uc3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJlciA9IDAsIFN0eWxlUnVsZVJh
bmdlTWFwKiBydWxlUmFuZ2VNYXAgPSAwKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NSdWxlPiBw
YXJzZVJ1bGUoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBQYXNzUmVm
UHRyPENTU1J1bGU+IHBhcnNlS2V5ZnJhbWVSdWxlKENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJp
bmcmKTsKICAgICAgICAgYm9vbCBwYXJzZVZhbHVlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
KiwgaW50IHByb3BJZCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQpOwogICAgICAgICBz
dGF0aWMgYm9vbCBwYXJzZUNvbG9yKFJHQkEzMiYgY29sb3IsIGNvbnN0IFN0cmluZyYsIGJvb2wg
c3RyaWN0ID0gZmFsc2UpOwogICAgICAgICBib29sIHBhcnNlQ29sb3IoQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgYm9vbCBwYXJzZURlY2xhcmF0
aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgU3RyaW5nJik7CisgICAgICAg
IGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0
IFN0cmluZyYsIENTU1N0eWxlU291cmNlRGF0YSogc3R5bGVTb3VyY2VEYXRhID0gMCk7CiAgICAg
ICAgIGJvb2wgcGFyc2VNZWRpYVF1ZXJ5KE1lZGlhTGlzdCosIGNvbnN0IFN0cmluZyYpOwogCiAg
ICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwpAQCAtMjQ0LDEwICsyNDMsMTcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyB0b2tlbml6ZXIgbWV0aG9kcyBhbmQgZGF0
YQogICAgICAgICB1bnNpZ25lZCBtX3J1bGVCb2R5U3RhcnRPZmZzZXQ7CiAgICAgICAgIHVuc2ln
bmVkIG1fcnVsZUJvZHlFbmRPZmZzZXQ7Ci0gICAgICAgIFN0eWxlUnVsZVJhbmdlcyogbV9ydWxl
UmFuZ2VzOworICAgICAgICB1bnNpZ25lZCBtX3Byb3BlcnR5U3RhcnRPZmZzZXQ7CisgICAgICAg
IHVuc2lnbmVkIG1fcHJvcGVydHlFbmRPZmZzZXQ7CisgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFw
KiBtX3J1bGVSYW5nZU1hcDsKKyAgICAgICAgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gbV9j
dXJyZW50U3R5bGVEYXRhOwogICAgICAgICB2b2lkIG1hcmtSdWxlQm9keVN0YXJ0KCk7CiAgICAg
ICAgIHZvaWQgbWFya1J1bGVCb2R5RW5kKCk7CisgICAgICAgIHZvaWQgbWFya1Byb3BlcnR5U3Rh
cnQoKTsKKyAgICAgICAgdm9pZCBtYXJrUHJvcGVydHlFbmQoYm9vbCBpc0ltcG9ydGFudEZvdW5k
LCBib29sIGlzUHJvcGVydHlQYXJzZWQpOwogICAgICAgICB2b2lkIHJlc2V0UnVsZUJvZHlNYXJr
cygpIHsgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0ID0gbV9ydWxlQm9keUVuZE9mZnNldCA9IDA7IH0K
KyAgICAgICAgdm9pZCByZXNldFByb3BlcnR5TWFya3MoKSB7IG1fcHJvcGVydHlTdGFydE9mZnNl
dCA9IG1fcHJvcGVydHlFbmRPZmZzZXQgPSBVSU5UX01BWDsgfQorICAgICAgICBzdGF0aWMgdW5z
aWduZWQgZmluZEltcG9ydGFudEluVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSk7CiAgICAgICAg
IGludCBsZXgodm9pZCogeXlsdmFsKTsKICAgICAgICAgaW50IHRva2VuKCkgeyByZXR1cm4geXlU
b2s7IH0KICAgICAgICAgVUNoYXIqIHRleHQoaW50KiBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURh
dHVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTlmZDA4Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAKQEAgLTAsMCAr
MSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZmRlZiBTS0lQX1NUQVRJQ19DT05TVFJV
Q1RPUlNfT05fR0NDCisjZGVmaW5lIENTU1BST1BFUlRZREFUVU1fSElERV9HTE9CQUxTIDEKKyNl
bmRpZgorCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgorCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvU3RhdGljQ29uc3RydWN0b3JzLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1bShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBib29s
IHBhcnNlZCkKKyAgICA6IG5hbWUobmFtZSkKKyAgICAsIHZhbHVlKHZhbHVlKQorICAgICwgaW1w
b3J0YW50KGltcG9ydGFudCkKKyAgICAsIHBhcnNlZChwYXJzZWQpCit7Cit9CisKK0NTU1Byb3Bl
cnR5RGF0dW06OkNTU1Byb3BlcnR5RGF0dW0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIp
CisgICAgOiBuYW1lKG90aGVyLm5hbWUpCisgICAgLCB2YWx1ZShvdGhlci52YWx1ZSkKKyAgICAs
IGltcG9ydGFudChvdGhlci5pbXBvcnRhbnQpCisgICAgLCBwYXJzZWQob3RoZXIucGFyc2VkKQor
eworfQorCitDU1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKCkKKyAgICA6IG5hbWUo
IiIpCisgICAgLCB2YWx1ZSgiIikKKyAgICAsIGltcG9ydGFudChmYWxzZSkKKyAgICAsIHBhcnNl
ZChmYWxzZSkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bSYgQ1NTUHJvcGVydHlEYXR1bTo6b3Bl
cmF0b3I9KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKSB7CisgICAgbmFtZSA9IG90aGVy
Lm5hbWU7CisgICAgdmFsdWUgPSBvdGhlci52YWx1ZTsKKyAgICBpbXBvcnRhbnQgPSBvdGhlci5p
bXBvcnRhbnQ7CisgICAgcGFyc2VkID0gb3RoZXIucGFyc2VkOworICAgIHJldHVybiAqdGhpczsK
K30KKworU3RyaW5nIENTU1Byb3BlcnR5RGF0dW06OnRvU3RyaW5nKCkgY29uc3QKK3sKKyAgICBp
ZiAoIW5hbWUgJiYgdmFsdWUgPT0gImUiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAg
ICBTdHJpbmcgcmVzdWx0ID0gbmFtZTsKKyAgICByZXN1bHQgKz0gIjogIjsKKyAgICByZXN1bHQg
Kz0gdmFsdWU7CisgICAgaWYgKGltcG9ydGFudCkKKyAgICAgICAgcmVzdWx0ICs9ICIgIWltcG9y
dGFudCI7CisgICAgcmVzdWx0ICs9ICI7IjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBH
bG9iYWwgaW5pdCByb3V0aW5lcworREVGSU5FX0dMT0JBTChDU1NQcm9wZXJ0eURhdHVtLCBlbXB0
eUNTU1Byb3BlcnR5RGF0dW0sICIiLCAiZSIsIGZhbHNlLCBmYWxzZSkKKworLy8gc3RhdGljCit2
b2lkIENTU1Byb3BlcnR5RGF0dW06OmluaXQoKQoreworICAgIHN0YXRpYyBib29sIGluaXRpYWxp
emVkOworICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgbmV3ICgodm9pZCAqKSAmZW1w
dHlDU1NQcm9wZXJ0eURhdHVtKSBDU1NQcm9wZXJ0eURhdHVtKCIiLCAiZSIsIGZhbHNlLCBmYWxz
ZSk7CisgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworCituYW1lc3BhY2UgV1RGIHsKKworV2ViQ29yZTo6Q1NTUHJvcGVydHlE
YXR1bSBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+OjplbXB0eVZhbHVlKCkK
K3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0sIGVt
cHR5SGFzaFZhbHVlLCAoIiIsICJoIiwgZmFsc2UsIGZhbHNlKSk7CisgICAgcmV0dXJuIGVtcHR5
SGFzaFZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5RGF0dW0uaCBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDdiNzlhCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5oCkBAIC0wLDAgKzEsMTE5IEBACisv
KgorICogQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBDU1NQcm9wZXJ0eURhdHVtX2gKKyNkZWZpbmUgQ1NTUHJvcGVydHlEYXR1bV9oCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9I
YXNoVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1N0eWxl
UnVsZTsKKwordHlwZWRlZiBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiBTb3VyY2VSYW5n
ZTsKKworc3RydWN0IENTU1Byb3BlcnR5RGF0dW0geworICAgIHN0YXRpYyB2b2lkIGluaXQoKTsK
KworICAgIENTU1Byb3BlcnR5RGF0dW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBwYXJzZWQpOworICAgIENTU1Byb3BlcnR5RGF0
dW0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpOworICAgIENTU1Byb3BlcnR5RGF0dW0o
KTsKKyAgICBBTFdBWVNfSU5MSU5FIH5DU1NQcm9wZXJ0eURhdHVtKCkgeyB9CisKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJu
IG5hbWUgPT0gb3RoZXIubmFtZSAmJiB2YWx1ZSA9PSBvdGhlci52YWx1ZSAmJiBpbXBvcnRhbnQg
PT0gb3RoZXIuaW1wb3J0YW50ICYmIHBhcnNlZCA9PSBvdGhlci5wYXJzZWQ7IH0KKyAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJu
ICEoKnRoaXMgPT0gb3RoZXIpOyB9CisKKyAgICBDU1NQcm9wZXJ0eURhdHVtJiBvcGVyYXRvcj0o
Y29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpOworICAgIFN0cmluZyB0b1N0cmluZygpIGNv
bnN0OworCisgICAgU3RyaW5nIG5hbWU7CisgICAgU3RyaW5nIHZhbHVlOworICAgIGJvb2wgaW1w
b3J0YW50OworICAgIGJvb2wgcGFyc2VkOworfTsKK3R5cGVkZWYgc3RkOjpwYWlyPENTU1Byb3Bl
cnR5RGF0dW0sIGJvb2w+IFNvdXJjZUF3YXJlUHJvcGVydHlEYXR1bTsKKworI2lmbmRlZiBDU1NQ
Uk9QRVJUWURBVFVNX0hJREVfR0xPQkFMUworZXh0ZXJuIGNvbnN0IENTU1Byb3BlcnR5RGF0dW0g
ZW1wdHlDU1NQcm9wZXJ0eURhdHVtOworI2VuZGlmCisKK3N0cnVjdCBDU1NTdHlsZVNvdXJjZURh
dGEgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NTdHlsZVNvdXJjZURhdGE+IHsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IGNyZWF0ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IENTU1N0eWxlU291cmNlRGF0YSgpKTsKKyAgICB9CisKKyAgICAv
LyBSYW5nZSBvZiB0aGUgc3R5bGUgdGV4dCBpbiB0aGUgZW5jbG9zaW5nIHNvdXJjZSAoc3RhcnQg
YW5kIGVuZCBvZmZzZXRzIGluY2x1c2l2ZSkuCisgICAgU291cmNlUmFuZ2Ugc3R5bGVCb2R5UmFu
Z2U7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4g
PiBwcm9wZXJ0eURhdGE7Cit9OwordHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIFJlZlB0
cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4gU3R5bGVSdWxlUmFuZ2VNYXA7CisKK3N0cnVjdCBDU1NQ
cm9wZXJ0eURhdHVtSGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goQ1NTUHJvcGVydHlE
YXR1bSBrZXkpCisgICAgeworICAgICAgICByZXR1cm4gU3RyaW5nSGFzaDo6aGFzaChrZXkubmFt
ZSkgKyBTdHJpbmdIYXNoOjpoYXNoKGtleS52YWx1ZSkgKyA3ICoga2V5LmltcG9ydGFudCArIDMg
KiBrZXkucGFyc2VkICsgMzE7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZXF1YWwoQ1NTUHJv
cGVydHlEYXR1bSBhLCBDU1NQcm9wZXJ0eURhdHVtIGIpCisgICAgeworICAgICAgICByZXR1cm4g
YS5uYW1lID09IGIubmFtZSAmJiBhLnZhbHVlID09IGIudmFsdWUgJiYgYS5pbXBvcnRhbnQgPT0g
Yi5pbXBvcnRhbnQgJiYgYS5wYXJzZWQgPT0gYi5wYXJzZWQ7CisgICAgfQorCisgICAgc3RhdGlj
IGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRI
YXNoPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OkNT
U1Byb3BlcnR5RGF0dW1IYXNoIEhhc2g7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJh
aXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29y
ZTo6Q1NTUHJvcGVydHlEYXR1bT4geworICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1
Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSBlbXB0
eVZhbHVlKCk7CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlEYXR1bSYgc2xvdCkgeyBuZXcgKCZzbG90KSBXZWJDb3JlOjpDU1NQcm9w
ZXJ0eURhdHVtKCIiLCAiRCIsIGZhbHNlLCBmYWxzZSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0Rl
bGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtJiBzbG90KSB7IHJldHVy
biAhc2xvdC5uYW1lLmxlbmd0aCgpICYmIHNsb3QudmFsdWUgPT0gIkQiOyB9Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIENTU1Byb3BlcnR5RGF0dW1faApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5pZGwKaW5kZXggZmYxYzJhZi4uM2NhOGQzOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
aWRsCkBAIC0xODksNyArMTg5LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbaGFuZGxlcj1E
T01dIHZvaWQgZ2V0SW5saW5lU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7
CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9k
ZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5
bGVTaGVldChpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IE9iamVjdCBzdHlsZVNoZWV0KTsKLSAg
ICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBzdHlsZVNoZWV0
SWQsIG91dCBWYWx1ZSByYW5nZXMpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5
bGVTb3VyY2VEYXRhKGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgT2JqZWN0IHN0eWxlU291cmNl
RGF0YSk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBhcHBseVN0eWxlVGV4dChpbiBsb25n
IHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIG91
dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBWYWx1ZSBzdHlsZSwgb3V0IEFycmF5IGNoYW5nZWRQcm9w
ZXJ0aWVzKTsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHNldFN0eWxlVGV4dChpbiBsb25n
IHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwogICAg
ICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIHN0eWxlSWQs
IGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IGMyZGM0ZjEuLmVlOWY0
YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTM3LDExICsz
NywyMCBAQAogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NT
dHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ2FjaGUu
aCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkRvY0xvYWRlci5oIgor
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlLmgiCisjaW5j
bHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKKyNpbmNsdWRlICJUZXh0
RW5jb2RpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Nyw2ICs3Niw3IEBAIHZv
aWQgSW5zcGVjdG9yQ1NTU3RvcmU6OnJlc2V0KCkKICAgICBtX3N0eWxlU2hlZXRUb09mZnNldHMu
Y2xlYXIoKTsKICAgICBtX3N0eWxlU2hlZXRUb0lkLmNsZWFyKCk7CiAgICAgbV9pZFRvU3R5bGVT
aGVldC5jbGVhcigpOworICAgIG1faWRUb1N0eWxlU2hlZXRUZXh0LmNsZWFyKCk7CiAgICAgbV9p
ZFRvRGlzYWJsZWRTdHlsZS5jbGVhcigpOwogICAgIG1fZG9jdW1lbnROb2RlVG9JbnNwZWN0b3JT
dHlsZVNoZWV0TWFwLmNsZWFyKCk7CiAKQEAgLTEwNCw0OCArMTE0LDE4MCBAQCBDU1NTdHlsZVNo
ZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6aW5zcGVjdG9yU3R5bGVTaGVldChEb2N1bWVudCogb3du
ZXJEb2N1bWVudCwgYgogICAgIHJldHVybiBpbnNwZWN0b3JTdHlsZVNoZWV0OwogfQogCi1IYXNo
TWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVsZVJhbmdlcyhD
U1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQorU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjpzdHls
ZVNoZWV0VGV4dChsb25nIHN0eWxlU2hlZXRJZCkKIHsKKyAgICBJZFRvU3R5bGVTaGVldFRleHRN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvU3R5bGVTaGVldFRleHQuZmluZChzdHlsZVNoZWV0SWQp
OworICAgIGlmIChpdCAhPSBtX2lkVG9TdHlsZVNoZWV0VGV4dC5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIGl0LT5zZWNvbmQ7CisKKyAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gc3R5bGVT
aGVldEZvcklkKHN0eWxlU2hlZXRJZCk7CiAgICAgaWYgKCFzdHlsZVNoZWV0KQotICAgICAgICBy
ZXR1cm4gSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4oKTsKLSAgICBSZWZQdHI8Q1NTUnVsZUxp
c3Q+IG9yaWdpbmFsUnVsZUxpc3QgPSBDU1NSdWxlTGlzdDo6Y3JlYXRlKHN0eWxlU2hlZXQsIGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFN0cmluZyB0ZXh0OworCisgICAg
Tm9kZSogb3duZXJOb2RlID0gc3R5bGVTaGVldC0+b3duZXJOb2RlKCk7CisgICAgaWYgKG93bmVy
Tm9kZSAmJiBvd25lck5vZGUtPm5vZGVUeXBlKCkgPT0gTm9kZTo6RUxFTUVOVF9OT0RFKSB7Cisg
ICAgICAgIEVsZW1lbnQqIG93bmVyRWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihvd25l
ck5vZGUpOworICAgICAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1lKCkubG93ZXIoKSA9PSAi
c3R5bGUiKQorICAgICAgICAgICAgdGV4dCA9IGlubGluZVN0eWxlU2hlZXRUZXh0KHN0eWxlU2hl
ZXQpOworICAgIH0KKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHRleHQgPSByZXNv
dXJjZVN0eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXQpOworCisgICAgaWYgKCF0ZXh0LmlzRW1wdHko
KSkKKyAgICAgICAgbV9pZFRvU3R5bGVTaGVldFRleHQuc2V0KHN0eWxlU2hlZXRJZCwgdGV4dCk7
CisgICAgcmV0dXJuIHRleHQ7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6cmVzb3Vy
Y2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIEtVUkwg
c3R5bGVTaGVldFVSTCA9IHN0eWxlU2hlZXQtPmZpbmFsVVJMKCk7CisgICAgRG9jdW1lbnQqIGRv
YyA9IHN0eWxlU2hlZXQtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKKyAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXI7CisgICAgaWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZp
ZXIoc3R5bGVTaGVldFVSTCwgZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIo
KS0+cmVxdWVzdFVSTCgpKSkgeworICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gZG9jLT5pbnB1
dEVuY29kaW5nKCk7CisgICAgICAgIGJ1ZmZlciA9IGRvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPnBy
b3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsID0gc3R5bGVTaGVldFVSTC5zdHJpbmcoKTsK
KyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gZG9jLT5kb2NMb2FkZXIo
KS0+Y2FjaGVkUmVzb3VyY2UodXJsKTsKKyAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkKKyAg
ICAgICAgICAgIGNhY2hlZFJlc291cmNlID0gY2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKTsK
KworICAgICAgICBBU1NFUlQoY2FjaGVkUmVzb3VyY2UpOyAvLyBGSVhNRShhcGF2bG92KTogVGhp
cyBtaWdodCBiZSB0b28gYWdncmVzc2l2ZQorCisgICAgICAgIGJvb2wgaXNVbnB1cmdlYWJsZSA9
IHRydWU7CisgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZS0+aXNQdXJnZWFibGUoKSkgeworICAg
ICAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlzIHB1cmdlYWJsZSB0aGVuIG1ha2UgaXQgdW5w
dXJnZWFibGUgdG8gZ2V0CisgICAgICAgICAgICAvLyBpdHMgZGF0YS4gVGhpcyBtaWdodCBmYWls
LCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgorICAgICAgICAgICAgLy8gZW1wdHkgU3RyaW5n
LgorICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkp
CisgICAgICAgICAgICAgICAgaXNVbnB1cmdlYWJsZSA9IGZhbHNlOworICAgICAgICB9CisgICAg
ICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7CisgICAgICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0g
Y2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCk7CisgICAgICAgICAgICBidWZmZXIgPSBjYWNoZWRS
ZXNvdXJjZS0+ZGF0YSgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGJ1ZmZlcikgewor
ICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcodGV4dEVuY29kaW5nTmFtZSk7CisgICAgICAg
IGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKQorICAgICAgICAgICAgZW5jb2RpbmcgPSBXaW5kb3dz
TGF0aW4xRW5jb2RpbmcoKTsKKyAgICAgICAgcmV0dXJuIGVuY29kaW5nLmRlY29kZShidWZmZXIt
PmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAgIH0KKworICAgIHJldHVybiBTdHJpbmcoKTsK
K30KKworU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0VGV4dChDU1NT
dHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIE5vZGUqIG93bmVyTm9kZSA9IHN0eWxlU2hl
ZXQtPm93bmVyTm9kZSgpOworICAgIGlmICghb3duZXJOb2RlIHx8IG93bmVyTm9kZS0+bm9kZVR5
cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUgfHwgbV9zdHlsZVNoZWV0VG9JZC5maW5kKHN0eWxl
U2hlZXQpID09IG1fc3R5bGVTaGVldFRvSWQuZW5kKCkpCisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKKyAgICBFbGVtZW50KiBvd25lckVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ob3du
ZXJOb2RlKTsKKyAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1lKCkubG93ZXIoKSAhPSAic3R5
bGUiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG93bmVyRWxlbWVudC0+
aW5uZXJUZXh0KCk7Cit9CisKKworLy8gQWxsIHJhbmdlcyBhcmU6IFtzdGFydDsgZW5kKSAoc3Rh
cnQgLSBpbmNsdXNpdmUsIGVuZCAtIGV4Y2x1c2l2ZSkKK2Jvb2wgSW5zcGVjdG9yQ1NTU3RvcmU6
OmdldFN0eWxlU291cmNlRGF0YShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgUmVmUHRyPENT
U1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gaW5saW5lU3R5bGVFbGVtZW50
KHN0eWxlKTsKKyAgICBpZiAoZWxlbWVudCkgeworICAgICAgICAvLyBJbmxpbmU6IHN0eWxlPSIu
Li4iCisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHN0eWxlU291cmNlRGF0YSA9
IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGdl
dFN0eWxlQXR0cmlidXRlUmFuZ2VzKGVsZW1lbnQsICZzdHlsZVNvdXJjZURhdGEpOworICAgICAg
ICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpyZXN1
bHQgPSBzdHlsZVNvdXJjZURhdGE7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxlKTsK
KyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFZlY3Rv
cjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IgPSAwOwogICAgIFN0
eWxlU2hlZXRUb09mZnNldHNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdHlsZVNoZWV0VG9PZmZzZXRz
LmZpbmQoc3R5bGVTaGVldCk7Ci0gICAgVmVjdG9yPFNvdXJjZVJhbmdlPiogb2Zmc2V0VmVjdG9y
ID0gMDsKICAgICBpZiAoaXQgPT0gbV9zdHlsZVNoZWV0VG9PZmZzZXRzLmVuZCgpKSB7Ci0gICAg
ICAgIEluc3BlY3RvclJlc291cmNlKiByZXNvdXJjZSA9IG1faW5zcGVjdG9yQ29udHJvbGxlci0+
cmVzb3VyY2VGb3JVUkwoc3R5bGVTaGVldC0+ZmluYWxVUkwoKS5zdHJpbmcoKSk7Ci0gICAgICAg
IGlmIChyZXNvdXJjZSkgewotICAgICAgICAgICAgb2Zmc2V0VmVjdG9yID0gbmV3IFZlY3RvcjxT
b3VyY2VSYW5nZT47CisgICAgICAgIFN0cmluZyB0ZXh0ID0gc3R5bGVTaGVldFRleHQoYmluZFN0
eWxlU2hlZXQoc3R5bGVTaGVldCkpOworICAgICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gbmV3U3R5bGVTaGVldCA9IENTU1N0eWxl
U2hlZXQ6OmNyZWF0ZShzdHlsZVNoZWV0LT5vd25lck5vZGUoKSk7CiAgICAgICAgICAgICBDU1NQ
YXJzZXIgcDsKLSAgICAgICAgICAgIENTU1BhcnNlcjo6U3R5bGVSdWxlUmFuZ2VzIHJ1bGVSYW5n
ZU1hcDsKLSAgICAgICAgICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgpLCByZXNv
dXJjZS0+c291cmNlU3RyaW5nKCksIDAsICZydWxlUmFuZ2VNYXApOwotICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gbmV3U3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBs
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NT
U3R5bGVSdWxlKG5ld1N0eWxlU2hlZXQtPml0ZW0oaSkpOwotICAgICAgICAgICAgICAgIGlmICgh
cnVsZSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgSGFz
aE1hcDxDU1NTdHlsZVJ1bGUqLCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiA+OjppdGVy
YXRvciBpdCA9IHJ1bGVSYW5nZU1hcC5maW5kKHJ1bGUpOwotICAgICAgICAgICAgICAgIGlmIChp
dCAhPSBydWxlUmFuZ2VNYXAuZW5kKCkpCi0gICAgICAgICAgICAgICAgICAgIG9mZnNldFZlY3Rv
ci0+YXBwZW5kKGl0LT5zZWNvbmQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zdHls
ZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCBvZmZzZXRWZWN0b3IpOworICAgICAgICAg
ICAgU3R5bGVSdWxlUmFuZ2VNYXAgcnVsZVJhbmdlTWFwOworICAgICAgICAgICAgcC5wYXJzZVNo
ZWV0KG5ld1N0eWxlU2hlZXQuZ2V0KCksIHRleHQsIDAsICZydWxlUmFuZ2VNYXApOworICAgICAg
ICAgICAgcmFuZ2VzVmVjdG9yID0gbmV3IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRh
PiA+OworICAgICAgICAgICAgZXh0cmFjdFJhbmdlcyhuZXdTdHlsZVNoZWV0LmdldCgpLCBydWxl
UmFuZ2VNYXAsIHJhbmdlc1ZlY3Rvcik7CisgICAgICAgICAgICBtX3N0eWxlU2hlZXRUb09mZnNl
dHMuc2V0KHN0eWxlU2hlZXQsIHJhbmdlc1ZlY3Rvcik7CiAgICAgICAgIH0KICAgICB9IGVsc2UK
LSAgICAgICAgb2Zmc2V0VmVjdG9yID0gaXQtPnNlY29uZDsKLSAgICBpZiAoIW9mZnNldFZlY3Rv
cikKLSAgICAgICAgcmV0dXJuIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+KCk7CisgICAgICAg
IHJhbmdlc1ZlY3RvciA9IGl0LT5zZWNvbmQ7CisgICAgaWYgKCFyYW5nZXNWZWN0b3IpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVuc2lnbmVkIHJ1bGVJbmRleCA9IDA7Ci0gICAgSGFz
aE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcmVzdWx0OwogICAgIGZvciAodW5zaWduZWQgaSA9IDAs
IGxlbmd0aCA9IHN0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgQVNTRVJUKHJ1bGVJbmRleCA8IG9mZnNldFZlY3Rvci0+c2l6ZSgpKTsKICAgICAgICAgQ1NT
U3R5bGVSdWxlKiBydWxlID0gYXNDU1NTdHlsZVJ1bGUoc3R5bGVTaGVldC0+aXRlbShpKSk7CiAg
ICAgICAgIGlmICghcnVsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAvLyBUaGlz
IG1hcHMgdGhlIHN0eWxlIGlkIHRvIHRoZSBydWxlIGJvZHkgcmFuZ2UuCi0gICAgICAgIHJlc3Vs
dC5zZXQoYmluZFN0eWxlKHJ1bGUtPnN0eWxlKCkpLCBvZmZzZXRWZWN0b3ItPmF0KHJ1bGVJbmRl
eCkpOworICAgICAgICBpZiAocnVsZS0+c3R5bGUoKSA9PSBzdHlsZSkgeworICAgICAgICAgICAg
QVNTRVJUKHJ1bGVJbmRleCA8IHJhbmdlc1ZlY3Rvci0+c2l6ZSgpKTsKKyAgICAgICAgICAgICpy
ZXN1bHQgPSByYW5nZXNWZWN0b3ItPmF0KHJ1bGVJbmRleCk7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBydWxlSW5kZXgrKzsKICAgICB9Ci0gICAgcmV0dXJu
IHJlc3VsdDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ1NTU3RvcmU6
OmV4dHJhY3RSYW5nZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgU3R5bGVSdWxl
UmFuZ2VNYXAmIHJ1bGVSYW5nZU1hcCwgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+
ID4qIHJhbmdlc1ZlY3RvcikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBz
dHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIENTU1N0eWxl
UnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0eWxlU2hlZXQtPml0ZW0oaSkpOworICAgICAg
ICBpZiAoIXJ1bGUpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgU3R5bGVSdWxlUmFu
Z2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlTWFwLmZpbmQocnVsZSk7CisgICAg
ICAgIGlmIChpdCAhPSBydWxlUmFuZ2VNYXAuZW5kKCkpCisgICAgICAgICAgICByYW5nZXNWZWN0
b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKKyAgICB9Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ1NTU3Rv
cmU6OmdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKE5vZGUqIG5vZGUsIFJlZlB0cjxDU1NTdHlsZVNv
dXJjZURhdGE+KiByZXN1bHQpCit7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0eWxlZEVs
ZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RyaW5nIHN0eWxlVGV4dCA9
IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKS0+Z2V0QXR0cmlidXRlKCJzdHlsZSIp
OworICAgIGlmIChzdHlsZVRleHQuaXNFbXB0eSgpKSB7CisgICAgICAgICgqcmVzdWx0KS0+c3R5
bGVCb2R5UmFuZ2UuZmlyc3QgPSAwOworICAgICAgICAoKnJlc3VsdCktPnN0eWxlQm9keVJhbmdl
LnNlY29uZCA9IDA7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIFJlZlB0cjxD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gdGVtcERlY2xhcmF0aW9uID0gQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpOworICAgIENTU1BhcnNlciBwOworICAgIHAucGFyc2VE
ZWNsYXJhdGlvbih0ZW1wRGVjbGFyYXRpb24uZ2V0KCksIHN0eWxlVGV4dCwgcmVzdWx0LT5nZXQo
KSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0NTU1N0eWxlU2hlZXQqIEluc3BlY3RvckNTU1N0
b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQorewor
ICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgU3R5bGVTaGVldCogc3R5
bGVTaGVldCA9IHN0eWxlLT5zdHlsZXNoZWV0KCk7CisgICAgaWYgKHN0eWxlU2hlZXQgJiYgc3R5
bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
U1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCk7CisKKyAgICByZXR1cm4gMDsKIH0KIAogQ1NTU3R5
bGVSdWxlKiBJbnNwZWN0b3JDU1NTdG9yZTo6YXNDU1NTdHlsZVJ1bGUoU3R5bGVCYXNlKiBzdHls
ZUJhc2UpCkBAIC0yMTcsNiArMzU5LDE3IEBAIGxvbmcgSW5zcGVjdG9yQ1NTU3RvcmU6OmJpbmRS
dWxlKENTU1N0eWxlUnVsZSogcnVsZSkKICAgICByZXR1cm4gaWQ7CiB9CiAKKy8vIHN0YXRpYwor
RWxlbWVudCogSW5zcGVjdG9yQ1NTU3RvcmU6OmlubGluZVN0eWxlRWxlbWVudChDU1NTdHlsZURl
Y2xhcmF0aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+aXNNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbigpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBOb2RlKiBub2RlID0g
c3RhdGljX2Nhc3Q8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPihzdHlsZSktPm5vZGUoKTsK
KyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzU3R5bGVkRWxlbWVudCgpIHx8IHN0YXRpY19jYXN0
PFN0eWxlZEVsZW1lbnQqPihub2RlKS0+Z2V0SW5saW5lU3R5bGVEZWNsKCkgIT0gc3R5bGUpCisg
ICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNU
T1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaAppbmRleCA4MmRlNjIyLi44ZWZk
MzZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKQEAgLTI5LDYgKzI5LDgg
QEAKICNpZm5kZWYgSW5zcGVjdG9yQ1NTU3RvcmVfaAogI2RlZmluZSBJbnNwZWN0b3JDU1NTdG9y
ZV9oCiAKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCisKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgpAQCAtMzYsMTMgKzM4LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9j
dW1lbnQ7Ci1jbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb247CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NTUnVsZUxp
c3Q7CiBjbGFzcyBDU1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xhc3MgRG9j
dW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKK2NsYXNz
IE5vZGU7CiBjbGFzcyBTdHlsZUJhc2U7CiAKIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3Ry
aW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7CkBAIC01MiwyMyArNTYsMjggQEAgdHlwZWRl
ZiBIYXNoTWFwPENTU1N0eWxlRGVjbGFyYXRpb24qLCBsb25nPiBTdHlsZVRvSWRNYXA7CiB0eXBl
ZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+ID4gSWRUb1N0eWxl
TWFwOwogdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIGxvbmc+IFJ1bGVUb0lkTWFwOwog
dHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZVJ1bGU+ID4gSWRUb1J1bGVNYXA7
Ci10eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVTaGVldCosIFZlY3RvcjxTb3VyY2VSYW5nZT4qID4g
U3R5bGVTaGVldFRvT2Zmc2V0c01hcDsKK3R5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0Kiwg
VmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4qID4gU3R5bGVTaGVldFRvT2Zmc2V0
c01hcDsKIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgbG9uZz4gU3R5bGVTaGVldFRv
SWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4gSWRU
b1N0eWxlU2hlZXRNYXA7Cit0eXBlZGVmIEhhc2hNYXA8bG9uZywgU3RyaW5nPiBJZFRvU3R5bGVT
aGVldFRleHRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgRGlzYWJsZWRTdHlsZURlY2xhcmF0
aW9uPiBJZFRvRGlzYWJsZWRTdHlsZU1hcDsKIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8RG9jdW1l
bnQ+LCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBEb2N1bWVudFRvU3R5bGVTaGVldE1hcDsKIAog
Y2xhc3MgSW5zcGVjdG9yQ1NTU3RvcmUgewogCiBwdWJsaWM6CisgICAgc3RhdGljIENTU1N0eWxl
U2hlZXQqIGdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOworICAgIHN0
YXRpYyBFbGVtZW50KiBpbmxpbmVTdHlsZUVsZW1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwor
CiAgICAgSW5zcGVjdG9yQ1NTU3RvcmUoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29u
dHJvbGxlcik7CiAgICAgfkluc3BlY3RvckNTU1N0b3JlKCk7CiAgICAgdm9pZCByZXNldCgpOwot
ICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IGdldFJ1bGVSYW5nZXMoQ1NTU3R5bGVTaGVl
dCopOworICAgIGJvb2wgZ2V0U3R5bGVTb3VyY2VEYXRhKENTU1N0eWxlRGVjbGFyYXRpb24qLCBS
ZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KTsKICAgICBDU1NTdHlsZURlY2xhcmF0
aW9uKiBzdHlsZUZvcklkKGxvbmcgc3R5bGVJZCk7CiAgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVT
aGVldEZvcklkKGxvbmcgc3R5bGVTaGVldElkKTsKICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGVGb3JJ
ZChsb25nIHN0eWxlUnVsZUlkKTsKICAgICBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24qIGRpc2Fi
bGVkU3R5bGVGb3JJZChsb25nIHN0eWxlSWQsIGJvb2wgY3JlYXRlSWZBYnNlbnQpOworICAgIFN0
cmluZyBzdHlsZVNoZWV0VGV4dChsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAgQ1NTU3R5bGVTaGVl
dCogaW5zcGVjdG9yU3R5bGVTaGVldChEb2N1bWVudCogb3duZXJEb2N1bWVudCwgYm9vbCBjcmVh
dGVJZkFic2VudCk7CiAgICAgdm9pZCByZW1vdmVEb2N1bWVudChEb2N1bWVudCopOwogCkBAIC03
OCw2ICs4NywxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIENTU1N0eWxlUnVs
ZSogYXNDU1NTdHlsZVJ1bGUoU3R5bGVCYXNlKik7CisgICAgU3RyaW5nIGlubGluZVN0eWxlU2hl
ZXRUZXh0KENTU1N0eWxlU2hlZXQqKTsKKyAgICBTdHJpbmcgcmVzb3VyY2VTdHlsZVNoZWV0VGV4
dChDU1NTdHlsZVNoZWV0Kik7CisgICAgdm9pZCBleHRyYWN0UmFuZ2VzKENTU1N0eWxlU2hlZXQq
LCBjb25zdCBTdHlsZVJ1bGVSYW5nZU1hcCYsIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VE
YXRhPiA+KiByYW5nZXNWZWN0b3IpOworICAgIGJvb2wgZ2V0U3R5bGVBdHRyaWJ1dGVSYW5nZXMo
Tm9kZSogcGFyZW50Tm9kZSwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCk7CiAK
ICAgICBTdHlsZVRvSWRNYXAgbV9zdHlsZVRvSWQ7CiAgICAgSWRUb1N0eWxlTWFwIG1faWRUb1N0
eWxlOwpAQCAtODUsOCArOTgsOSBAQCBwcml2YXRlOgogICAgIElkVG9SdWxlTWFwIG1faWRUb1J1
bGU7CiAgICAgU3R5bGVTaGVldFRvT2Zmc2V0c01hcCBtX3N0eWxlU2hlZXRUb09mZnNldHM7CiAg
ICAgU3R5bGVTaGVldFRvSWRNYXAgbV9zdHlsZVNoZWV0VG9JZDsKLSAgICBJZFRvU3R5bGVTaGVl
dE1hcCBtX2lkVG9TdHlsZVNoZWV0OwogICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwIG1faWRUb0Rp
c2FibGVkU3R5bGU7CisgICAgSWRUb1N0eWxlU2hlZXRNYXAgbV9pZFRvU3R5bGVTaGVldDsKKyAg
ICBJZFRvU3R5bGVTaGVldFRleHRNYXAgbV9pZFRvU3R5bGVTaGVldFRleHQ7CiAgICAgRG9jdW1l
bnRUb1N0eWxlU2hlZXRNYXAgbV9kb2N1bWVudE5vZGVUb0luc3BlY3RvclN0eWxlU2hlZXRNYXA7
CiAKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RvckNvbnRyb2xsZXI7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggZDI3NjBlNC4uZjRkZDViZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaCIKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUg
IkNTU1Byb3BlcnR5RGF0dW0uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5j
bHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0xMTcxLDI2ICsx
MTcyLDM0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU2hlZXQobG9uZyBzdHls
ZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+CiAgICAgICAgICpzdHlsZVNoZWV0T2Jq
ZWN0ID0gYnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0KHN0eWxlU2hlZXQtPmRvY3VtZW50KCksIHN0
eWxlU2hlZXQpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRSdWxlUmFuZ2VzKGxv
bmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBydWxlUmFuZ2UpCit2b2lk
IEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEobG9uZyBzdHlsZUlkLCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiogZGF0YU9iamVjdCkKIHsKLSAgICBDU1NTdHlsZVNoZWV0KiBz
dHlsZVNoZWV0ID0gY3NzU3RvcmUoKS0+c3R5bGVTaGVldEZvcklkKHN0eWxlU2hlZXRJZCk7Ci0g
ICAgaWYgKHN0eWxlU2hlZXQgJiYgc3R5bGVTaGVldC0+ZG9jdW1lbnQoKSkgewotICAgICAgICBI
YXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBydWxlUmFuZ2VzID0gY3NzU3RvcmUoKS0+Z2V0UnVs
ZVJhbmdlcyhzdHlsZVNoZWV0KTsKLSAgICAgICAgaWYgKCFydWxlUmFuZ2VzLnNpemUoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0
ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgZm9yIChIYXNoTWFwPGxvbmcs
IFNvdXJjZVJhbmdlPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VzLmJlZ2luKCk7IGl0ICE9IHJ1
bGVSYW5nZXMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgICAgIGlmIChpdC0+c2Vjb25kLnNlY29u
ZCkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJ1bGVSYW5nZSA9
IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRP
YmplY3QoU3RyaW5nOjpudW1iZXIoaXQtPmZpcnN0KS51dGY4KCkuZGF0YSgpLCBydWxlUmFuZ2Up
OwotICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJvZHlSYW5nZSA9IElu
c3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAgcnVsZVJhbmdlLT5zZXRP
YmplY3QoImJvZHlSYW5nZSIsIGJvZHlSYW5nZSk7Ci0gICAgICAgICAgICAgICAgYm9keVJhbmdl
LT5zZXROdW1iZXIoInN0YXJ0IiwgaXQtPnNlY29uZC5maXJzdCk7Ci0gICAgICAgICAgICAgICAg
Ym9keVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIGl0LT5zZWNvbmQuc2Vjb25kKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgICAgICAqcnVsZVJhbmdlID0gcmVzdWx0LnJlbGVhc2UoKTsK
KyAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGNzc1N0b3JlKCktPnN0eWxlRm9ySWQo
c3R5bGVJZCk7CisgICAgaWYgKCFzdHlsZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxD
U1NTdHlsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0
ZSgpOworICAgIGJvb2wgc3VjY2VzcyA9IGNzc1N0b3JlKCktPmdldFN0eWxlU291cmNlRGF0YShz
dHlsZSwgJnNvdXJjZURhdGEpOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuOwor
ICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3Jl
YXRlKCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYm9keVJhbmdlID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXN1bHQtPnNldE9iamVjdCgiYm9keVJhbmdlIiwgYm9k
eVJhbmdlKTsKKyAgICBib2R5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBzb3VyY2VEYXRhLT5z
dHlsZUJvZHlSYW5nZS5maXJzdCk7CisgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIHNv
dXJjZURhdGEtPnN0eWxlQm9keVJhbmdlLnNlY29uZCk7CisgICAgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiBwcm9wZXJ0eVJhbmdlcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKyAgICByZXN1
bHQtPnNldEFycmF5KCJwcm9wZXJ0eURhdGEiLCBwcm9wZXJ0eVJhbmdlcyk7CisgICAgVmVjdG9y
PHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPiYgcHJvcGVydHlEYXRh
ID0gc291cmNlRGF0YS0+cHJvcGVydHlEYXRhOworICAgIGZvciAoVmVjdG9yPHN0ZDo6cGFpcjxD
U1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPjo6aXRlcmF0b3IgaXQgPSBwcm9wZXJ0eURh
dGEuYmVnaW4oKTsgaXQgIT0gcHJvcGVydHlEYXRhLmVuZCgpOyArK2l0KSB7CisgICAgICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHByb3BlcnR5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNy
ZWF0ZSgpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRTdHJpbmcoIm5hbWUiLCBpdC0+Zmly
c3QubmFtZSk7CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldFN0cmluZygidmFsdWUiLCBpdC0+
Zmlyc3QudmFsdWUpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRCb29sZWFuKCJpbXBvcnRh
bnQiLCBpdC0+Zmlyc3QuaW1wb3J0YW50KTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0Qm9v
bGVhbigicGFyc2VkIiwgaXQtPmZpcnN0LnBhcnNlZCk7CisgICAgICAgIHByb3BlcnR5UmFuZ2Ut
PnNldE51bWJlcigic3RhcnQiLCBpdC0+c2Vjb25kLmZpcnN0KTsKKyAgICAgICAgcHJvcGVydHlS
YW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25kLnNlY29uZCk7CisgICAgICAgIHByb3Bl
cnR5UmFuZ2VzLT5wdXNoT2JqZWN0KHByb3BlcnR5UmFuZ2UpOwogICAgIH0KKyAgICAqZGF0YU9i
amVjdCA9IHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Omdl
dElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZSkK
QEAgLTE0NDksNyArMTQ1OCw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0
b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZShDU1NTdHlsZURlY2xhCiAgICAgaWYgKGJp
bmQpIHsKICAgICAgICAgbG9uZyBzdHlsZUlkID0gY3NzU3RvcmUoKS0+YmluZFN0eWxlKHN0eWxl
KTsKICAgICAgICAgcmVzdWx0LT5zZXROdW1iZXIoImlkIiwgc3R5bGVJZCk7Ci0gICAgICAgIENT
U1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxl
KTsKKyAgICAgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCA9IEluc3BlY3RvckNT
U1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxlKTsKICAgICAgICAgaWYgKHBhcmVudFN0
eWxlU2hlZXQpCiAgICAgICAgICAgICByZXN1bHQtPnNldE51bWJlcigicGFyZW50U3R5bGVTaGVl
dElkIiwgY3NzU3RvcmUoKS0+YmluZFN0eWxlU2hlZXQocGFyZW50U3R5bGVTaGVldCkpOwogCkBA
IC0xNjYxLDIwICsxNjcwLDYgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gSW5zcGVjdG9y
RE9NQWdlbnQ6OnRvQXJyYXkoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGEKICAgICByZXR1cm4g
cmVzdWx0LnJlbGVhc2UoKTsKIH0KIAotQ1NTU3R5bGVTaGVldCogSW5zcGVjdG9yRE9NQWdlbnQ6
OmdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCi17Ci0gICAg
Q1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCA9IHN0eWxlLT5wYXJlbnRSdWxlKCkgPyBz
dHlsZS0+cGFyZW50UnVsZSgpLT5wYXJlbnRTdHlsZVNoZWV0KCkgOiAwOwotICAgIGlmICghcGFy
ZW50U3R5bGVTaGVldCkgewotICAgICAgICBTdHlsZUJhc2UqIHBhcmVudCA9IHN0eWxlLT5wYXJl
bnQoKTsKLSAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzQ1NTU3R5bGVTaGVldCgpKSB7
Ci0gICAgICAgICAgICBwYXJlbnRTdHlsZVNoZWV0ID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVl
dCo+KHBhcmVudCk7Ci0gICAgICAgICAgICBpZiAoIXBhcmVudFN0eWxlU2hlZXQtPmxlbmd0aCgp
KQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVy
biBwYXJlbnRTdHlsZVNoZWV0OwotfQotCiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpvbk1hdGNo
Sm9ic1RpbWVyKFRpbWVyPEluc3BlY3RvckRPTUFnZW50PiopCiB7CiAgICAgaWYgKCFtX3BlbmRp
bmdNYXRjaEpvYnMuc2l6ZSgpKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApp
bmRleCBmZDNjNWI1Li4wOTU3YzA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
Z2V0SW5saW5lU3R5bGUobG9uZyBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxl
cyk7CiAgICAgICAgIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPElu
c3BlY3RvclZhbHVlPiogc3R5bGVzKTsKICAgICAgICAgdm9pZCBnZXRTdHlsZVNoZWV0KGxvbmcg
c3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogc3R5bGVTaGVldE9iamVjdCk7
Ci0gICAgICAgIHZvaWQgZ2V0UnVsZVJhbmdlcyhsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPElu
c3BlY3RvclZhbHVlPiogcnVsZVJhbmdlKTsKKyAgICAgICAgdm9pZCBnZXRTdHlsZVNvdXJjZURh
dGEobG9uZyBzdHlsZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogZGF0YU9iamVjdCk7CiAg
ICAgICAgIHZvaWQgYXBwbHlTdHlsZVRleHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0
eWxlVGV4dCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGJvb2wqIHN1Y2Nlc3MsIFJlZlB0
cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlT2JqZWN0LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBj
aGFuZ2VkUHJvcGVydGllcyk7CiAgICAgICAgIHZvaWQgc2V0U3R5bGVUZXh0KGxvbmcgc3R5bGVJ
ZCwgY29uc3QgU3RyaW5nJiBjc3NUZXh0LCBib29sKiBzdWNjZXNzKTsKICAgICAgICAgdm9pZCBz
ZXRTdHlsZVByb3BlcnR5KGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKTsKQEAgLTE0Niw3ICsxNDYsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY29weU5vZGUobG9uZyBub2RlSWQpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgc3RhdGljIENTU1N0eWxlU2hlZXQqIGdldFBhcmVudFN0eWxlU2hl
ZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogICAgICAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nKERv
Y3VtZW50KiBkb2N1bWVudCk7CiAgICAgICAgIHZvaWQgc3RvcExpc3RlbmluZyhEb2N1bWVudCog
ZG9jdW1lbnQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66371</attachid>
            <date>2010-09-02 08:10:21 -0700</date>
            <delta_ts>2010-09-02 09:07:02 -0700</delta_ts>
            <desc>[PATCH] Style fixed</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>59540</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYjhmYjVjLi4wZDY2MDlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTAyICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKaW5kZXgg
ZWY2OWVlNi4uNzI1NzRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwpAQCAtMSw3ICsxLDEwIEBACiBi
b2R5IHsKICAgICBmb250LXNpemU6IDEycHg7CisgICAgZm9vOiBiYXIgIQorCisgICAgaW1wb3J0
YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLzsK
IH0KIAotLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBh
ZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8K
Ky8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIg
c2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyogbm90IGFu
ICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8KIAotYm9k
eS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9Citib2R5Lm1haW4ye2JhY2tncm91bmQ6IGdyZWVu
IC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xv
biwgdmVyeSAhaW1wb3J0YW50ICovfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAppbmRleCBkZGE2N2FkLi5jOTYw
ZWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZz
ZXRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE3IEBACi1UZXN0cyB0aGF0IHByb3Bl
ciBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBydWxlIGJv
ZGllcy4KK1Rlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSBy
ZXBvcnRlZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIAotYm9k
eTogWzUtMjhdCi1ib2R5Lm1haW4xOiBbOTgtMTI0XQotYm9keS5tYWluMjogWzE1MC0xNjldCi1i
b2R5IHsmICAgIGZvbnQtc2l6ZTogMTJweDsmfSYmLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3Ig
Ki9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29s
b3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8mJmJvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW47fSYK
K2JvZHk6IFs2LTExMV0KK1snZm9udC1zaXplJzonMTJweCddIEBbMTEtMjddCitbJ2Zvbyc6J2Jh
cicgIWltcG9ydGFudCBub24tcGFyc2VkXSBAWzMyLTExMF0KK2JvZHkubWFpbjE6IFsxODItMjYz
XQorWydjb2xvcic6JyNGMDBCQUEnXSBAWzE5NS0yMTBdCitbJ3pvbyc6J21vbyAvKiBub3QgYW4g
IWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMjEwLTI2
M10KK2JvZHkubWFpbjI6IFsyOTAtMzg1XQorWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUg
IWltcG9ydGFudCBjb21tZW50ICovJyAhaW1wb3J0YW50XSBAWzI5MC0zODVdCitib2R5Lm1haW5w
YWdlOiBbMTctMTQzXQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFsxOS00MV0KK1snYmFk
cHJvcGVydHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzExOC0xNDJdCitlbGVtZW50LnN0
eWxlOiBbMC0zMV0KK1snZm9udC13ZWlnaHQnOidub3JtYWwnXSBAWzAtMjBdCitbJ3dpZHRoJzon
ODAlJ10gQFsyMS0zMV0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy1zb3VyY2Utb2Zmc2V0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3Vy
Y2Utb2Zmc2V0cy5odG1sCmluZGV4IDA1MzM2MTEuLmJkN2Q4NDggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKQEAgLTM1LDU1ICszNSw0
MyBAQCBmdW5jdGlvbiBmcm9udGVuZF9ydW5UZXN0KHRlc3RDb250cm9sbGVyKQogICAgICAgICBm
dW5jdGlvbiBzdHlsZXNDYWxsYmFjayh0ZXN0Q29udHJvbGxlciwgc3R5bGVzKQogICAgICAgICB7
CiAgICAgICAgICAgICB2YXIgbWF0Y2hlZENTU1J1bGVzID0gc3R5bGVzLm1hdGNoZWRDU1NSdWxl
czsKLSAgICAgICAgICAgIHZhciBwYXJlbnRTdHlsZVNoZWV0SWQgPSBtYXRjaGVkQ1NTUnVsZXNb
MF0uc3R5bGUucGFyZW50U3R5bGVTaGVldElkOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRTdHls
ZVNoZWV0SWQpIHsKLSAgICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2go
IkJBRCBTVFlMRVNIRUVUIElEOiAiICsgcGFyZW50U3R5bGVTaGVldElkKTsKLSAgICAgICAgICAg
ICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwot
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIHJ1bGUg
PSBtYXRjaGVkQ1NTUnVsZXNbaV07CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5n
ZXRTdHlsZVNvdXJjZURhdGEocnVsZS5zdHlsZS5pZCwgZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2
ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlciwgcnVsZSwgZmFsc2UpKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0UnVsZVJhbmdlcyhwYXJlbnRTdHls
ZVNoZWV0SWQsIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250
cm9sbGVyLCBwYXJlbnRTdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpOworICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNvdXJjZURhdGEoc3R5bGVzLmlubGluZVN0eWxl
LmlkLCBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVy
LCBzdHlsZXMuaW5saW5lU3R5bGUsIHRydWUpKTsKICAgICAgICAgfQogICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmdldFN0eWxlcyhXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5p
ZCwgdHJ1ZSwgc3R5bGVzQ2FsbGJhY2suYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwogICAg
IH0pOwogfQogCi1mdW5jdGlvbiBmcm9udGVuZF9ydWxlUmFuZ2VzUmVjZWl2ZWQodGVzdENvbnRy
b2xsZXIsIHN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzLCBydWxlUmFuZ2VzKQorZnVuY3Rp
b24gZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2ZWQodGVzdENvbnRyb2xsZXIsIHJ1bGVPclN0eWxl
LCBzaG91bGRCYWlsLCBkYXRhKQogewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZENT
U1J1bGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBydWxlID0gbWF0Y2hlZENTU1J1bGVz
W2ldOwotICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2gocnVsZS5zZWxlY3RvclRl
eHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLnN0YXJ0ICsg
Ii0iICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2UuZW5kICsgIl0iKTsKKyAg
ICB2YXIgaXNSdWxlID0gISEocnVsZU9yU3R5bGUuc3R5bGUpOworICAgIHRlc3RDb250cm9sbGVy
LnJlc3VsdHMucHVzaCgoaXNSdWxlID8gcnVsZU9yU3R5bGUuc2VsZWN0b3JUZXh0IDogImVsZW1l
bnQuc3R5bGUiKSArICI6IFsiICsgZGF0YS5ib2R5UmFuZ2Uuc3RhcnQgKyAiLSIgKyBkYXRhLmJv
ZHlSYW5nZS5lbmQgKyAiXSIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5wcm9wZXJ0
eURhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb3BlcnR5RGF0dW0gPSBkYXRhLnBy
b3BlcnR5RGF0YVtpXTsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJbJyIg
KyBwcm9wZXJ0eURhdHVtLm5hbWUgKyAiJzonIiArIHByb3BlcnR5RGF0dW0udmFsdWUgKyAiJyIg
KyAocHJvcGVydHlEYXR1bS5pbXBvcnRhbnQgPyAiICFpbXBvcnRhbnQiIDogIiIpICsgKHByb3Bl
cnR5RGF0dW0ucGFyc2VkID8gIiIgOiAiIG5vbi1wYXJzZWQiKSArIl0gQFsiICsgcHJvcGVydHlE
YXR1bS5zdGFydCArICItIiArIHByb3BlcnR5RGF0dW0uZW5kICsgIl0iKTsKICAgICB9Ci0gICAg
SW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgZnJvbnRlbmRfaGFu
ZGxlU3R5bGVTaGVldC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7Ci19Ci0KLWZ1bmN0aW9u
IGZyb250ZW5kX2hhbmRsZVN0eWxlU2hlZXQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXQpCi17
Ci0gICAgdmFyIHVybCA9IHN0eWxlU2hlZXQuaHJlZjsKLSAgICBpZiAodXJsICE9PSAiIikgewot
ICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXBbdXJsXTsK
LSAgICAgICAgaWYgKCFyZXNvdXJjZSkgewotICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVz
dWx0cy5wdXNoKCJOTyBSRVNPVVJDRSBGT1IgVVJMOiAiICsgdXJsKTsKLSAgICAgICAgICAgIHRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmdldFJlc291cmNl
Q29udGVudChyZXNvdXJjZS5pZGVudGlmaWVyLCBmcm9udGVuZF9zdHlsZVNoZWV0VGV4dFJlY2Vp
dmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0
ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIkVNUFRZIFNUWUxFU0hFRVQgSFJFRiIpOworICAg
IGlmIChzaG91bGRCYWlsKQogICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RD
b250cm9sbGVyLnJlc3VsdHMpOwotICAgIH0KIH0KIAotZnVuY3Rpb24gZnJvbnRlbmRfc3R5bGVT
aGVldFRleHRSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldFRleHQpCi17Ci0gICAg
dGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHN0eWxlU2hlZXRUZXh0LnJlcGxhY2UoL1xuL2cs
ICImIikpOwotICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVz
dWx0cyk7Ci19CiA8L3NjcmlwdD4KKworPHN0eWxlPgorCitib2R5Lm1haW5wYWdlIHsKKwl0ZXh0
LWRlY29yYXRpb246IG5vbmU7IC8qIGF0IGxlYXN0IG9uZSB2YWxpZCBwcm9wZXJ0eSBpcyBuZWNl
c3NhcnkgZm9yIFdlYkNvcmUgdG8gbWF0Y2ggYSBydWxlICovCisJYmFkcHJvcGVydHk6IDFiYWR2
YWx1ZTE7Cit9CisKKzwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5IGNsYXNzPSJtYWluMSBtYWlu
MiIgb25sb2FkPSJvbmxvYWQoKSI+Cis8Ym9keSBjbGFzcz0ibWFpbjEgbWFpbjIgbWFpbnBhZ2Ui
IG9ubG9hZD0ib25sb2FkKCkiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyB3aWR0aDogODAl
Ij4KIDxwPgotVGVzdHMgdGhhdCBwcm9wZXIgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJl
IHJlcG9ydGVkIGZvciBDU1MgcnVsZSBib2RpZXMuCitUZXN0cyB0aGF0IHByb3BlciBzdGFydC9l
bmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBzdHlsZSBkZWNsYXJhdGlv
bnMgYW5kIHByb3BlcnRpZXMuCiA8L3A+CiAKIDwvYm9keT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiMTVmNC4uMTA4ZjAyNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxMC0wOS0wMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFByb3ZpZGUgc291cmNlLWJhc2VkIHByb3BlcnRpZXMgZm9yIHN0eWxlIGRlY2xhcmF0aW9ucyB0
byBDU1NQYXJzZXIgY2xpZW50cy4KKworICAgICAgICBUaGlzIGNoYW5nZToKKyAgICAgICAgLSBF
bmFibGVzIEluc3BlY3RvckNTU1N0b3JlIHRvIGV4dHJhY3QgKGFuZCBjYWNoZSkgQ1NTIHN0eWxl
c2hlZXQgdGV4dCBmb3IgYWxsIHNvdXJjZS1iYXNlZCBzdHlsZXNoZWV0cywKKyAgICAgICAgICBl
dmVuIHdpdGggdGhlIHJlc291cmNlIHRyYWNraW5nIHR1cm5lZCBvZmYuCisgICAgICAgIC0gQWRk
cyB0byBDU1NQYXJzZXIgYSBjYXBhYmlsaXR5IG9mIHNvdXJjZS1yZWxhdGVkIHN0eWxlIGRlY2xh
cmF0aW9uIGRhdGEgZXh0cmFjdGlvbjoKKyAgICAgICAgICAqIERlY2xhcmF0aW9uIGFuZCBDU1Mg
cHJvcGVydHkgc3RhcnQvZW5kIG9mZnNldHMgaW4gdGhlIHNvdXJjZSB0ZXh0IChwYXJlbnQgc3R5
bGVzaGVldCBvciB0aGUgInN0eWxlIiBhdHRyaWJ1dGUgdmFsdWUpLgorICAgICAgICAgICogQ1NT
IHByb3BlcnR5IGRhdGE6IG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgV2ViQ29yZSBwYXJzYWJpbGl0
eSAoaS5lLiBpZiB0aGUgcHJvcGVydHkgaXMgdW5kZXJzdG9vZCBieSBXZWJDb3JlKS4KKyAgICAg
ICAgLSBQcm92aWRlcyB0aGUgZXh0cmFjdGVkIGRhdGEgdG8gdGhlIFdlYkluc3BlY3RvciBmcm9u
dGVuZCB2aWEgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSgpLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ5NDkKKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAgICAgICAgKiBj
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uOjpub2RlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Q1NTUGFyc2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlRGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVh
dGVTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUnVsZUJvZHlT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZmluZEltcG9ydGFudEluVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUHJvcGVydHlFbmQpOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cmVzZXRQcm9wZXJ0
eU1hcmtzKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1bSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJvcGVydHlEYXR1bTo6aW5pdCk6CisgICAgICAgIChXVEY6Ojo6ZW1wdHlWYWx1ZSk6CisgICAg
ICAgICogY3NzL0NTU1Byb3BlcnR5RGF0dW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjp+Q1NTUHJvcGVydHlEYXR1bSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3Bl
cnR5RGF0dW06Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTb3VyY2VE
YXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bUhhc2g6Omhh
c2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bUhhc2g6OmVxdWFsKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6
OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpzdHlsZVNoZWV0
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6cmVzb3VyY2VTdHls
ZVNoZWV0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5l
U3R5bGVTaGVldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6Omdl
dFN0eWxlU291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6
ZXh0cmFjdFJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0
U3R5bGVBdHRyaWJ1dGVSYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3Rv
cmU6OmdldFBhcmVudFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
U3RvcmU6OmlubGluZVN0eWxlRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5
bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorCiAyMDEwLTA5
LTAyICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAg
UnViYmVyLXN0YW1wZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg5ZjQyMDIuLmNkNzMzOGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC05OTcsNiArOTk3LDggQEAKICAgICAgICAgICAgICdjc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHkuY3BwJywKICAgICAg
ICAgICAgICdjc3MvQ1NTUHJvcGVydHkuaCcsCisgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5
RGF0dW0uY3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlEYXR1bS5oJywKICAgICAg
ICAgICAgICdjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9D
U1NQcm9wZXJ0eUxvbmdoYW5kLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NRdWlya1ByaW1pdGl2
ZVZhbHVlLmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggM2YyM2NkZC4uYzViYmUyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MzIsNiArNDMyLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgXAogICAgIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NQcm9wZXJ0eS5jcHAgXAorICAgIGNzcy9DU1NQ
cm9wZXJ0eURhdHVtLmNwcCBcCiAgICAgY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwIFwKICAg
ICBjc3MvQ1NTUmVmbGVjdFZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU1J1bGUuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI3ZTUzMzQuLjZlYzhjODIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjkzNTcsNiArMjkzNTcsMTQgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3Nz
XENTU1Byb3BlcnR5RGF0dW0uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU1Byb3BlcnR5RGF0dW0uaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9wZXJ0
eUxvbmdoYW5kLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4Yjg4ZWMuLjg4MzkwNDggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDU2LDYgKzE0NTYsOCBAQAog
CQk4MUJFMjBEMzExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE4MTFGNEI2NkYwMDkxNURG
QSAvKiBKU0lEQkN1cnNvci5oICovOyB9OwogCQk4MkI2NTg5ODExODlFMzkyMDBFMDUyQTEgLyog
SW5zcGVjdG9yQ1NTU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgyQjY1
ODlBMTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkI2NTg5OTExODlFNDc2MDBFMDUy
QTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovOyB9OworCQk4MkUzRDhERTEyMkVBMEQxMDAz
QUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVy
dHlEYXR1bS5jcHAgKi87IH07CisJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9w
ZXJ0eURhdHVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0MTlEMkE3MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVh
bUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTczODQsNiArNzM4Niw4IEBACiAJCTgxQkUyMEE4MTFGNEI2
NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0lEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkI2NTg5
NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3Jl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNTU1N0
b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJFM0Q4REMxMjJFQTBEMTAw
M0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTUHJvcGVydHlEYXR1bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5RGF0dW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhC
eXRlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE1MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2OTU4LDYgKzE2OTYyLDggQEAKIAkJCQlFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyog
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICovLAogCQkJCUE4MEU2Q0NEMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NQcm9wZXJ0eS5jcHAgKi8sCiAJCQkJQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU1Byb3BlcnR5LmggKi8sCisJCQkJODJFM0Q4REMxMjJFQTBEMTAwM0FFNUJDIC8qIENT
U1Byb3BlcnR5RGF0dW0uY3BwICovLAorCQkJCTgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBD
U1NQcm9wZXJ0eURhdHVtLmggKi8sCiAJCQkJMEY2RUNENDQwRjI1MkYzNzAwQkRFMjcxIC8qIENT
U1Byb3BlcnR5TG9uZ2hhbmQuY3BwICovLAogCQkJCTBGNkVDRDQzMEYyNTJGMzcwMEJERTI3MSAv
KiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggKi8sCiAJCQkJQkNFQTQ3ODkwOTdDQUFDODAwOTRDOUU0
IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4gKi8sCkBAIC0yMDQzMiw2ICsyMDQzOCw3IEBACiAJCQkJ
ODk4Nzg1QjkxMjJDQTJBNzAwM0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODk4Nzg1RjExMjJFMUU4NzAwM0FBQkRBIC8qIEpTRmlsZUV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1RjUxMjJFMUVBQzAwM0FBQkRBIC8qIEpTRmlsZVJl
YWRlclN5bmMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAv
KiBDU1NQcm9wZXJ0eURhdHVtLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyODk1LDYgKzIyOTAyLDcg
QEAKIAkJCQk4OTg3ODVCODEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUYwMTIyRTFFODcwMDNBQUJEQSAvKiBKU0ZpbGVF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1RjQxMjJFMUVBQzAwM0FBQkRB
IC8qIEpTRmlsZVJlYWRlclN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODJFM0Q4REUxMjJF
QTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkKaW5kZXggZWM1MDdiZS4uNGM0ZGVjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTR3Jh
bW1hci55CisrKyBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtMzE0LDcgKzMxNCw3IEBA
IHdlYmtpdF9rZXlmcmFtZV9ydWxlOgogOwogCiB3ZWJraXRfZGVjbHM6Ci0gICAgV0VCS0lUX0RF
Q0xTX1NZTSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAnfScgeworICAgIFdFQktJ
VF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlvbiBkZWNsYXJhdGlv
bl9saXN0ICd9JyB7CiAgICAgICAgIC8qIGNhbiBiZSBlbXB0eSAqLwogICAgIH0KIDsKQEAgLTkw
Myw4ICs5MDMsMTUgQEAgdW5hcnlfb3BlcmF0b3I6CiAgIHwgJysnIHsgJCQgPSAxOyB9CiAgIDsK
IAorbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uOgorICAgIG1heWJlX3NwYWNlIHsKKyAg
ICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAg
ICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICB9CisgIDsKKwogcnVsZXNldDoKLSAg
ICBzZWxlY3Rvcl9saXN0ICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IGNsb3Npbmdf
YnJhY2UgeworICAgIHNlbGVjdG9yX2xpc3QgJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJh
dGlvbiBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgewogICAgICAgICBDU1NQYXJzZXIq
IHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwogICAgICAgICAkJCA9IHAtPmNy
ZWF0ZVN0eWxlUnVsZSgkMSk7CiAgICAgfQpAQCAtMTM1NSw2ICsxMzYyLDggQEAgZGVjbGFyYXRp
b25fbGlzdDoKIAogZGVjbF9saXN0OgogICAgIGRlY2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7
CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7
CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gJDE7CiAgICAg
fQogICAgIHwgZGVjbGFyYXRpb24gaW52YWxpZF9ibG9ja19saXN0IG1heWJlX3NwYWNlIHsKQEAg
LTEzNjQsMTIgKzEzNzMsMTYgQEAgZGVjbF9saXN0OgogICAgICAgICAkJCA9IGZhbHNlOwogICAg
IH0KICAgICB8IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9
IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0
eVN0YXJ0KCk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwgZXJyb3IgaW52YWxp
ZF9ibG9ja19saXN0IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CiAgICAgICAgICQkID0gZmFsc2U7
CiAgICAgfQogICAgIHwgZGVjbF9saXN0IGRlY2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7Cisg
ICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7Cisg
ICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gJDE7CiAgICAgICAg
IGlmICgkMikKICAgICAgICAgICAgICQkID0gJDI7CkBAIC0xMzg2LDE1ICsxMzk5LDIxIEBAIGRl
Y2xhcmF0aW9uOgogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8gewogICAg
ICAgICAkJCA9IGZhbHNlOwogICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQ
YXJzZXIqPihwYXJzZXIpOworICAgICAgICBib29sIGlzUHJvcGVydHlQYXJzZWQgPSBmYWxzZTsK
ICAgICAgICAgaWYgKCQxICYmICQ0KSB7CiAgICAgICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IHAt
PnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7CiAgICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJv
cGVydGllcyA9IHAtPm1fbnVtUGFyc2VkUHJvcGVydGllczsKICAgICAgICAgICAgICQkID0gcC0+
cGFyc2VWYWx1ZSgkMSwgJDUpOwotICAgICAgICAgICAgaWYgKCEkJCkKKyAgICAgICAgICAgIGlm
ICghJCQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihwLT5tX251bVBh
cnNlZFByb3BlcnRpZXMpID09IG9sZFBhcnNlZFByb3BlcnRpZXMpCisgICAgICAgICAgICAgICAg
ICAgIGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIHAtPnJvbGxiYWNr
TGFzdFByb3BlcnRpZXMocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzIC0gb2xkUGFyc2VkUHJvcGVy
dGllcyk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBpc1Byb3BlcnR5UGFy
c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIGRlbGV0ZSBwLT5tX3ZhbHVlTGlzdDsKICAgICAgICAg
ICAgIHAtPm1fdmFsdWVMaXN0ID0gMDsKICAgICAgICAgfQorICAgICAgICBwLT5tYXJrUHJvcGVy
dHlFbmQoJDUsIGlzUHJvcGVydHlQYXJzZWQpOwogICAgIH0KICAgICB8CiAgICAgdmFyaWFibGVf
cmVmZXJlbmNlIG1heWJlX3NwYWNlIHsKQEAgLTE0MTcsMTEgKzE0MzYsMTUgQEAgZGVjbGFyYXRp
b246CiAgICAgICAgIC8qIFRoZSBkZWZhdWx0IG1vdmFibGUgdHlwZSB0ZW1wbGF0ZSBoYXMgbGV0
dGVyLXNwYWNpbmc6IC5ub25lOyAgSGFuZGxlIHRoaXMgYnkgbG9va2luZyBmb3IKICAgICAgICAg
ZXJyb3IgdG9rZW5zIGF0IHRoZSBzdGFydCBvZiBhbiBleHByLCByZWNvdmVyIHRoZSBleHByIGFu
ZCB0aGVuIHRyZWF0IGFzIGFuIGVycm9yLCBjbGVhbmluZwogICAgICAgICB1cCBhbmQgZGVsZXRp
bmcgdGhlIHNoaWZ0ZWQgZXhwci4gICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19j
YXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxz
ZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CiAgICAgcHJvcGVy
dHkgJzonIG1heWJlX3NwYWNlIGV4cHIgcHJpbyBlcnJvciB7CiAgICAgICAgIC8qIFdoZW4gd2Ug
ZW5jb3VudGVyIHNvbWV0aGluZyBsaWtlIHAge2NvbG9yOiByZWQgIWltcG9ydGFudCBmYWlsO30g
d2Ugc2hvdWxkIGRyb3AgdGhlIGRlY2xhcmF0aW9uICovCisgICAgICAgIENTU1BhcnNlciogcCA9
IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0
eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CkBA
IC0xNDMyLDExICsxNDU1LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgIHwKICAgICBwcm9wZXJ0eSAn
OicgbWF5YmVfc3BhY2UgewogICAgICAgICAvKiBkaXYgeyBmb250LWZhbWlseTogfSBKdXN0IHJl
ZHVjZSBhd2F5IHRoaXMgcHJvcGVydHkgd2l0aCBubyB2YWx1ZS4gKi8KKyAgICAgICAgQ1NTUGFy
c2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFy
a1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQog
ICAgIHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXJyb3IgewogICAgICAgICAvKiBp
ZiB3ZSBjb21lIGFjcm9zcyBydWxlcyB3aXRoIGludmFsaWQgdmFsdWVzIGxpa2UgdGhpcyBjYXNl
OiBwIHsgd2VpZ2h0OiAqOyB9LCBqdXN0IGRpc2NhcmQgdGhlIHJ1bGUgKi8KKyAgICAgICAgQ1NT
UGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+
bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAg
fQogICAgIHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmggYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IGY3
NzU5ZjQuLjQwNmZkOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5vZGUoTm9kZSogbm9k
ZSkgeyBtX25vZGUgPSBub2RlOyB9CiAKKyAgICBOb2RlKiBub2RlKCkgeyByZXR1cm4gbV9ub2Rl
OyB9CisKICAgICB2aXJ0dWFsIGJvb2wgaXNNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDY4NzIzNWYuLmMyOGY2N2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTQ3LDcg
KzE0NywxMCBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAgICAg
LCBtX2RlZmF1bHROYW1lc3BhY2Uoc3RhckF0b20pCiAgICAgLCBtX3J1bGVCb2R5U3RhcnRPZmZz
ZXQoMCkKICAgICAsIG1fcnVsZUJvZHlFbmRPZmZzZXQoMCkKLSAgICAsIG1fcnVsZVJhbmdlcygw
KQorICAgICwgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0KFVJTlRfTUFYKQorICAgICwgbV9wcm9wZXJ0
eUVuZE9mZnNldChVSU5UX01BWCkKKyAgICAsIG1fcnVsZVJhbmdlTWFwKDApCisgICAgLCBtX2N1
cnJlbnRTdHlsZURhdGEoMCkKICAgICAsIG1fZGF0YSgwKQogICAgICwgeXlfc3RhcnQoMSkKICAg
ICAsIG1fbGluZU51bWJlcigwKQpAQCAtMTU5LDYgKzE2Miw3IEBAIENTU1BhcnNlcjo6Q1NTUGFy
c2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICNpZiBZWURFQlVHID4gMAogICAgIGNzc3l5ZGVidWcg
PSAxOwogI2VuZGlmCisgICAgQ1NTUHJvcGVydHlEYXR1bTo6aW5pdCgpOwogfQogCiBDU1NQYXJz
ZXI6On5DU1NQYXJzZXIoKQpAQCAtMjIzLDE2ICsyMjcsMTkgQEAgdm9pZCBDU1NQYXJzZXI6OnNl
dHVwUGFyc2VyKGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IGNoYXIKICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OnBh
cnNlU2hlZXQoQ1NTU3R5bGVTaGVldCogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQg
c3RhcnRMaW5lTnVtYmVyLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1bGVSYW5nZU1hcCkKK3ZvaWQgQ1NT
UGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNoZWV0LCBjb25zdCBTdHJpbmcmIHN0
cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1h
cCkKIHsKICAgICBtX3N0eWxlU2hlZXQgPSBzaGVldDsKICAgICBtX2RlZmF1bHROYW1lc3BhY2Ug
PSBzdGFyQXRvbTsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLgotICAgIG1fcnVsZVJh
bmdlcyA9IHJ1bGVSYW5nZU1hcDsKKyAgICBtX3J1bGVSYW5nZU1hcCA9IHJ1bGVSYW5nZU1hcDsK
KyAgICBpZiAocnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSBDU1NT
dHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOwogCiAgICAgbV9saW5lTnVtYmVyID0gc3RhcnRMaW5l
TnVtYmVyOwogICAgIHNldHVwUGFyc2VyKCIiLCBzdHJpbmcsICIiKTsKICAgICBjc3N5eXBhcnNl
KHRoaXMpOwotICAgIG1fcnVsZVJhbmdlcyA9IDA7CisgICAgbV9ydWxlUmFuZ2VNYXAgPSAwOwor
ICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgbV9ydWxlID0gMDsKIH0KIApAQCAtMzI5
LDEwICszMzYsMTQgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2VsZWN0b3IoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIERvY3VtZW50KiBkb2MsIENTU1NlbGVjdG9yTGkKICAgICBtX3NlbGVjdG9yTGlz
dEZvclBhcnNlU2VsZWN0b3IgPSAwOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VEZWNsYXJh
dGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbGFyYXRpb24sIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZywgQ1NTU3R5
bGVTb3VyY2VEYXRhKiBzdHlsZVNvdXJjZURhdGEpCiB7CisgICAgLy8gTGVuZ3RoIG9mIHRoZSAi
QC13ZWJraXQtZGVjbHN7IiBwcmVmaXgKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcHJlZml4
TGVuZ3RoID0gMTU7CisKICAgICBBU1NFUlQoIWRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkgfHwg
ZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKS0+aXNDU1NTdHlsZVNoZWV0KCkpOwogICAgIG1fc3R5
bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihkZWNsYXJhdGlvbi0+c3R5bGVz
aGVldCgpKTsKKyAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSBzdHlsZVNvdXJjZURhdGE7CiAKICAg
ICBzZXR1cFBhcnNlcigiQC13ZWJraXQtZGVjbHN7Iiwgc3RyaW5nLCAifSAiKTsKICAgICBjc3N5
eXBhcnNlKHRoaXMpOwpAQCAtMzQ3LDYgKzM1OCwxNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VE
ZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbGFyYXRpb24sIGNvbnN0
CiAgICAgICAgIGNsZWFyUHJvcGVydGllcygpOwogICAgIH0KIAorICAgIGlmIChtX2N1cnJlbnRT
dHlsZURhdGEpIHsKKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5zdHlsZUJvZHlSYW5nZS5m
aXJzdCA9IDA7CisgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc2Vj
b25kID0gc3RyaW5nLmxlbmd0aCgpOworICAgICAgICBmb3IgKFZlY3RvcjxzdGQ6OnBhaXI8Q1NT
UHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID46Oml0ZXJhdG9yIGl0ID0gbV9jdXJyZW50U3R5
bGVEYXRhLT5wcm9wZXJ0eURhdGEuYmVnaW4oKTsgaXQgIT0gbV9jdXJyZW50U3R5bGVEYXRhLT5w
cm9wZXJ0eURhdGEuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgICgqaXQpLnNlY29uZC5maXJz
dCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgICAgICAoKml0KS5zZWNvbmQuc2Vjb25kIC09IHBy
ZWZpeExlbmd0aDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghbV9ydWxlUmFuZ2VNYXAp
CisgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgcmV0dXJuIG9rOwogfQogCkBA
IC01Mzg0LDggKzU0MDYsMTIgQEAgQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVTdHlsZVJ1bGUo
VmVjdG9yPENTU1NlbGVjdG9yKj4qIHNlbGVjdG9ycykKICAgICAgICAgcnVsZS0+c2V0RGVjbGFy
YXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShydWxlLmdldCgpLCBtX3Bh
cnNlZFByb3BlcnRpZXMsIG1fbnVtUGFyc2VkUHJvcGVydGllcykpOwogICAgICAgICByZXN1bHQg
PSBydWxlLmdldCgpOwogICAgICAgICBtX3BhcnNlZFN0eWxlT2JqZWN0cy5hcHBlbmQocnVsZS5y
ZWxlYXNlKCkpOwotICAgICAgICBpZiAobV9ydWxlUmFuZ2VzKQotICAgICAgICAgICAgbV9ydWxl
UmFuZ2VzLT5zZXQocmVzdWx0LCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPihtX3J1bGVC
b2R5U3RhcnRPZmZzZXQsIG1fcnVsZUJvZHlFbmRPZmZzZXQpKTsKKyAgICAgICAgaWYgKG1fcnVs
ZVJhbmdlTWFwKSB7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50U3R5bGVEYXRhKTsKKyAg
ICAgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2UgPSBTb3VyY2VSYW5n
ZShtX3J1bGVCb2R5U3RhcnRPZmZzZXQsIG1fcnVsZUJvZHlFbmRPZmZzZXQpOworICAgICAgICAg
ICAgbV9ydWxlUmFuZ2VNYXAtPnNldChyZXN1bHQsIG1fY3VycmVudFN0eWxlRGF0YS5yZWxlYXNl
KCkpOworICAgICAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRh
OjpjcmVhdGUoKTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsK
ICAgICBjbGVhclByb3BlcnRpZXMoKTsKQEAgLTU2MzgsNyArNTY2NCw5IEBAIHZvaWQgQ1NTUGFy
c2VyOjp1cGRhdGVMYXN0U2VsZWN0b3JMaW5lQW5kUG9zaXRpb24oKQogdm9pZCBDU1NQYXJzZXI6
Om1hcmtSdWxlQm9keVN0YXJ0KCkKIHsKICAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBt
X2RhdGE7Ci0gICAgaWYgKCFtX3J1bGVCb2R5U3RhcnRPZmZzZXQgfHwgb2Zmc2V0IDwgbV9ydWxl
Qm9keVN0YXJ0T2Zmc2V0KQorICAgIGlmICgqeXl0ZXh0ID09ICd7JykKKyAgICAgICAgKytvZmZz
ZXQ7IC8vIHNraXAgdGhlIHJ1bGUgYm9keSBvcGVuaW5nIGJyYWNlCisgICAgaWYgKG9mZnNldCA+
IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKICAgICAgICAgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0ID0g
b2Zmc2V0OwogfQogCkBAIC01NjQ5LDYgKzU2NzcsMTA4IEBAIHZvaWQgQ1NTUGFyc2VyOjptYXJr
UnVsZUJvZHlFbmQoKQogICAgICAgICBtX3J1bGVCb2R5RW5kT2Zmc2V0ID0gb2Zmc2V0OwogfQog
Cit2b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5U3RhcnQoKQoreworICAgIHVuc2lnbmVkIG9m
ZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBtX3Byb3BlcnR5U3RhcnRPZmZzZXQgPSBvZmZz
ZXQ7Cit9CisKKy8vIHN0YXRpYwordW5zaWduZWQgQ1NTUGFyc2VyOjpmaW5kSW1wb3J0YW50SW5W
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBJbXBvcnRhbnQsICgiaW1wb3J0YW50IikpOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBpbXBvcnRhbnRMZW5ndGggPSA5OworCisgICAgVmVjdG9yPFNvdXJjZVJhbmdlPiBjb21tZW50
UmFuZ2VzOworICAgIHVuc2lnbmVkIHNlYXJjaFN0YXJ0SW5kZXggPSAwOworCisgICAgLy8gQ29s
bGVjdCBjb21tZW50IHJhbmdlcy4KKyAgICB3aGlsZSAoc2VhcmNoU3RhcnRJbmRleCA8IHZhbHVl
Lmxlbmd0aCgpKSB7CisgICAgICAgIHNpemVfdCBjb21tZW50U3RhcnQgPSB2YWx1ZS5maW5kKCIv
KiIsIHNlYXJjaFN0YXJ0SW5kZXgsIHRydWUpOworICAgICAgICBpZiAoY29tbWVudFN0YXJ0ICE9
IG5vdEZvdW5kKSB7CisgICAgICAgICAgICBzaXplX3QgY29tbWVudEVuZCA9IHZhbHVlLmZpbmQo
IiovIiwgY29tbWVudFN0YXJ0ICsgMiwgdHJ1ZSk7CisgICAgICAgICAgICBBU1NFUlQoY29tbWVu
dEVuZCAhPSBub3RGb3VuZCk7CisgICAgICAgICAgICBjb21tZW50UmFuZ2VzLmFwcGVuZChTb3Vy
Y2VSYW5nZShjb21tZW50U3RhcnQsIGNvbW1lbnRFbmQgKyAyKSk7CisgICAgICAgICAgICBzZWFy
Y2hTdGFydEluZGV4ID0gY29tbWVudEVuZCArIDI7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgc2VhcmNoU3RhcnRJbmRleCA9IFVJTlRfTUFYOworICAgIH0KKworICAgIHVuc2lnbmVkIG5v
bkNvbW1lbnRSYW5nZVN0YXJ0ID0gMTsKKyAgICB1bnNpZ25lZCB2YWx1ZUxlbmd0aCA9IHZhbHVl
Lmxlbmd0aCgpOworICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gdmFsdWUuY2hhcmFjdGVy
cygpOworICAgIHNlYXJjaFN0YXJ0SW5kZXggPSAwOworCisgICAgLy8gRmluZCAiaW1wb3J0YW50
IiBvdXRzaWRlIG9mIGNvbW1lbnQgcmFuZ2VzLgorICAgIFZlY3RvcjxTb3VyY2VSYW5nZT46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gY29tbWVudFJhbmdlcy5iZWdpbigpOworICAgIHdoaWxlIChzZWFy
Y2hTdGFydEluZGV4IDwgdmFsdWVMZW5ndGgpIHsKKyAgICAgICAgc2l6ZV90IGltcG9ydGFudFdv
cmRTdGFydCA9IHZhbHVlLmZpbmQoSW1wb3J0YW50LCBzZWFyY2hTdGFydEluZGV4LCB0cnVlKTsK
KyAgICAgICAgaWYgKGltcG9ydGFudFdvcmRTdGFydCA9PSBub3RGb3VuZCkKKyAgICAgICAgICAg
IHJldHVybiBVSU5UX01BWDsKKworICAgICAgICBpZiAoaXQgIT0gY29tbWVudFJhbmdlcy5lbmQo
KSAmJiBpbXBvcnRhbnRXb3JkU3RhcnQgPiAoKml0KS5maXJzdCAmJiBpbXBvcnRhbnRXb3JkU3Rh
cnQgPCAoKml0KS5zZWNvbmQpIHsKKyAgICAgICAgICAgIHNlYXJjaFN0YXJ0SW5kZXggPSAoKml0
KS5zZWNvbmQ7CisgICAgICAgICAgICArK2l0OworICAgICAgICB9IGVsc2UgeyAvLyBmaW5kIHBy
ZWNlZGluZyAnIScKKyAgICAgICAgICAgIEFTU0VSVChpbXBvcnRhbnRXb3JkU3RhcnQgPiAxKTsK
KyAgICAgICAgICAgIHVuc2lnbmVkIGV4Y2xhbWF0aW9uT2Zmc2V0ID0gaW1wb3J0YW50V29yZFN0
YXJ0OworICAgICAgICAgICAgd2hpbGUgKC0tZXhjbGFtYXRpb25PZmZzZXQgPj0gbm9uQ29tbWVu
dFJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoYXJhY3RlcnNbZXhjbGFt
YXRpb25PZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnISc6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBleGNsYW1hdGlvbk9mZnNldDsKKyAgICAgICAgICAgICAgICBjYXNlICcg
JzoKKyAgICAgICAgICAgICAgICBjYXNlICdcdCc6CisgICAgICAgICAgICAgICAgY2FzZSAnXHIn
OgorICAgICAgICAgICAgICAgIGNhc2UgJ1xuJzoKKyAgICAgICAgICAgICAgICBjYXNlICdcZic6
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgICAgIHNlYXJjaFN0YXJ0SW5kZXggPSBpbXBvcnRhbnRXb3JkU3RhcnQg
KyBpbXBvcnRhbnRMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gVUlO
VF9NQVg7Cit9CisKK3ZvaWQgQ1NTUGFyc2VyOjptYXJrUHJvcGVydHlFbmQoYm9vbCBpc0ltcG9y
dGFudEZvdW5kLCBib29sIGlzUHJvcGVydHlQYXJzZWQpCit7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChTdHJpbmcsIEltcG9ydGFudCwgKCJpbXBvcnRhbnQiKSk7CisgICAgdW5zaWduZWQgb2Zm
c2V0ID0geXl0ZXh0IC0gbV9kYXRhOworICAgIGlmICgqeXl0ZXh0ID09ICc7JykgLy8gaW5jbHVk
ZSBzZW1pY29sb24gaW50byB0aGUgcHJvcGVydHkgdGV4dAorICAgICAgICArK29mZnNldDsKKyAg
ICBtX3Byb3BlcnR5RW5kT2Zmc2V0ID0gb2Zmc2V0OworICAgIGlmIChtX3Byb3BlcnR5U3RhcnRP
ZmZzZXQgIT0gVUlOVF9NQVggJiYgbV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIC8vIFRo
aXMgc3R1ZmYgaXMgb25seSBleGVjdXRlZCB3aGVuIHRoZSBzdHlsZSBkYXRhIHJldHJpZXZhbCBp
cyByZXF1ZXN0ZWQgYnkgY2xpZW50LgorICAgICAgICBTb3VyY2VSYW5nZSBwcm9wZXJ0eVJhbmdl
ID0gU291cmNlUmFuZ2UobV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0LCBtX3Byb3BlcnR5RW5kT2Zmc2V0
KTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQmIHN0YXJ0ID0gbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0
OworICAgICAgICBjb25zdCB1bnNpZ25lZCYgZW5kID0gbV9wcm9wZXJ0eUVuZE9mZnNldDsKKyAg
ICAgICAgQVNTRVJUKHN0YXJ0IDwgZW5kKTsKKyAgICAgICAgU3RyaW5nIHByb3BlcnR5U3RyaW5n
ID0gU3RyaW5nKG1fZGF0YSArIHN0YXJ0LCBlbmQgLSBzdGFydCkuc3RyaXBXaGl0ZVNwYWNlKCk7
CisgICAgICAgIGlmIChwcm9wZXJ0eVN0cmluZy5lbmRzV2l0aCgiOyIsIHRydWUpKQorICAgICAg
ICAgICAgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eVN0cmluZy5sZWZ0KHByb3BlcnR5U3RyaW5n
Lmxlbmd0aCgpIC0gMSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHByb3BlcnR5Q29tcG9uZW50
czsKKyAgICAgICAgc2l6ZV90IGNvbG9uSW5kZXggPSBwcm9wZXJ0eVN0cmluZy5maW5kKCI6Iik7
CisgICAgICAgIEFTU0VSVChjb2xvbkluZGV4ICE9IG5vdEZvdW5kKTsKKworICAgICAgICBTdHJp
bmcgbmFtZSA9IHByb3BlcnR5U3RyaW5nLmxlZnQoY29sb25JbmRleCkuc3RyaXBXaGl0ZVNwYWNl
KCk7CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IHByb3BlcnR5U3RyaW5nLnN1YnN0cmluZyhjb2xv
bkluZGV4ICsgMSwgcHJvcGVydHlTdHJpbmcubGVuZ3RoKCkpLnN0cmlwV2hpdGVTcGFjZSgpOwor
ICAgICAgICBib29sIGlzSW1wb3J0YW50ID0gaXNJbXBvcnRhbnRGb3VuZDsKKyAgICAgICAgaWYg
KGlzSW1wb3J0YW50IHx8ICFpc1Byb3BlcnR5UGFyc2VkKSB7CisgICAgICAgICAgICAvLyBOZWVk
IHRvIHN0cmlwICIhe3d9aW1wb3J0YW50IiAod2l0aCB0aGUgZm9sbG93aW5nIHRleHQpIGlmIHRo
ZXJlJ3MgYSBjaGFuY2UgdGhhdCBpdCBpcyBwcmVzZW50IGluIHRoZSB2YWx1ZS4KKyAgICAgICAg
ICAgIHVuc2lnbmVkIGltcG9ydGFudE9mZnNldCA9IGZpbmRJbXBvcnRhbnRJblZhbHVlKHZhbHVl
KTsKKyAgICAgICAgICAgIGlmIChpbXBvcnRhbnRPZmZzZXQgIT0gVUlOVF9NQVgpIHsKKyAgICAg
ICAgICAgICAgICBpc0ltcG9ydGFudCA9IHRydWU7CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2
YWx1ZS5sZWZ0KGltcG9ydGFudE9mZnNldCkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5wcm9wZXJ0eURhdGEu
YXBwZW5kKHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4oQ1NTUHJvcGVy
dHlEYXR1bShuYW1lLCB2YWx1ZSwgaXNJbXBvcnRhbnQsIGlzUHJvcGVydHlQYXJzZWQpLCBwcm9w
ZXJ0eVJhbmdlKSk7CisgICAgfQorICAgIHJlc2V0UHJvcGVydHlNYXJrcygpOworfQorCisKIHN0
YXRpYyBpbnQgY3NzUHJvcGVydHlJRChjb25zdCBVQ2hhciogcHJvcGVydHlOYW1lLCB1bnNpZ25l
ZCBsZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDYyMTFlNjIuLjM1N2E5
Y2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJDb2xvci5oIgogI2lu
Y2x1ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5RGF0dW0uaCIK
ICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU1LDE4ICs1NiwxNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBDU1NQYXJzZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgdHlw
ZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+
ID4gU3R5bGVSdWxlUmFuZ2VzOwotCiAgICAgICAgIENTU1BhcnNlcihib29sIHN0cmljdFBhcnNp
bmcgPSB0cnVlKTsKICAgICAgICAgfkNTU1BhcnNlcigpOwogCi0gICAgICAgIHZvaWQgcGFyc2VT
aGVldChDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJlciA9
IDAsIFN0eWxlUnVsZVJhbmdlcyogcnVsZVJhbmdlTWFwID0gMCk7CisgICAgICAgIHZvaWQgcGFy
c2VTaGVldChDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJl
ciA9IDAsIFN0eWxlUnVsZVJhbmdlTWFwKiBydWxlUmFuZ2VNYXAgPSAwKTsKICAgICAgICAgUGFz
c1JlZlB0cjxDU1NSdWxlPiBwYXJzZVJ1bGUoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYp
OwogICAgICAgICBQYXNzUmVmUHRyPENTU1J1bGU+IHBhcnNlS2V5ZnJhbWVSdWxlKENTU1N0eWxl
U2hlZXQqLCBjb25zdCBTdHJpbmcmKTsKICAgICAgICAgYm9vbCBwYXJzZVZhbHVlKENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uKiwgaW50IHByb3BJZCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBv
cnRhbnQpOwogICAgICAgICBzdGF0aWMgYm9vbCBwYXJzZUNvbG9yKFJHQkEzMiYgY29sb3IsIGNv
bnN0IFN0cmluZyYsIGJvb2wgc3RyaWN0ID0gZmFsc2UpOwogICAgICAgICBib29sIHBhcnNlQ29s
b3IoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmKTsKLSAgICAgICAg
Ym9vbCBwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29uc3Qg
U3RyaW5nJik7CisgICAgICAgIGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYsIENTU1N0eWxlU291cmNlRGF0YSogc3R5bGVTb3Vy
Y2VEYXRhID0gMCk7CiAgICAgICAgIGJvb2wgcGFyc2VNZWRpYVF1ZXJ5KE1lZGlhTGlzdCosIGNv
bnN0IFN0cmluZyYpOwogCiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwpAQCAt
MjQ0LDEwICsyNDMsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyB0b2tlbml6
ZXIgbWV0aG9kcyBhbmQgZGF0YQogICAgICAgICB1bnNpZ25lZCBtX3J1bGVCb2R5U3RhcnRPZmZz
ZXQ7CiAgICAgICAgIHVuc2lnbmVkIG1fcnVsZUJvZHlFbmRPZmZzZXQ7Ci0gICAgICAgIFN0eWxl
UnVsZVJhbmdlcyogbV9ydWxlUmFuZ2VzOworICAgICAgICB1bnNpZ25lZCBtX3Byb3BlcnR5U3Rh
cnRPZmZzZXQ7CisgICAgICAgIHVuc2lnbmVkIG1fcHJvcGVydHlFbmRPZmZzZXQ7CisgICAgICAg
IFN0eWxlUnVsZVJhbmdlTWFwKiBtX3J1bGVSYW5nZU1hcDsKKyAgICAgICAgUmVmUHRyPENTU1N0
eWxlU291cmNlRGF0YT4gbV9jdXJyZW50U3R5bGVEYXRhOwogICAgICAgICB2b2lkIG1hcmtSdWxl
Qm9keVN0YXJ0KCk7CiAgICAgICAgIHZvaWQgbWFya1J1bGVCb2R5RW5kKCk7CisgICAgICAgIHZv
aWQgbWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICAgICAgdm9pZCBtYXJrUHJvcGVydHlFbmQoYm9v
bCBpc0ltcG9ydGFudEZvdW5kLCBib29sIGlzUHJvcGVydHlQYXJzZWQpOwogICAgICAgICB2b2lk
IHJlc2V0UnVsZUJvZHlNYXJrcygpIHsgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0ID0gbV9ydWxlQm9k
eUVuZE9mZnNldCA9IDA7IH0KKyAgICAgICAgdm9pZCByZXNldFByb3BlcnR5TWFya3MoKSB7IG1f
cHJvcGVydHlTdGFydE9mZnNldCA9IG1fcHJvcGVydHlFbmRPZmZzZXQgPSBVSU5UX01BWDsgfQor
ICAgICAgICBzdGF0aWMgdW5zaWduZWQgZmluZEltcG9ydGFudEluVmFsdWUoY29uc3QgU3RyaW5n
JiB2YWx1ZSk7CiAgICAgICAgIGludCBsZXgodm9pZCogeXlsdmFsKTsKICAgICAgICAgaW50IHRv
a2VuKCkgeyByZXR1cm4geXlUb2s7IH0KICAgICAgICAgVUNoYXIqIHRleHQoaW50KiBsZW5ndGgp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAgYi9XZWJDb3Jl
L2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi43ZGI1NDc3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlE
YXR1bS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZmRlZiBT
S0lQX1NUQVRJQ19DT05TVFJVQ1RPUlNfT05fR0NDCisjZGVmaW5lIENTU1BST1BFUlRZREFUVU1f
SElERV9HTE9CQUxTIDEKKyNlbmRpZgorCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgor
CisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvU3RhdGljQ29uc3Ry
dWN0b3JzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NT
UHJvcGVydHlEYXR1bShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJv
b2wgaW1wb3J0YW50LCBib29sIHBhcnNlZCkKKyAgICA6IG5hbWUobmFtZSkKKyAgICAsIHZhbHVl
KHZhbHVlKQorICAgICwgaW1wb3J0YW50KGltcG9ydGFudCkKKyAgICAsIHBhcnNlZChwYXJzZWQp
Cit7Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06OkNTU1Byb3BlcnR5RGF0dW0oY29uc3QgQ1NTUHJv
cGVydHlEYXR1bSYgb3RoZXIpCisgICAgOiBuYW1lKG90aGVyLm5hbWUpCisgICAgLCB2YWx1ZShv
dGhlci52YWx1ZSkKKyAgICAsIGltcG9ydGFudChvdGhlci5pbXBvcnRhbnQpCisgICAgLCBwYXJz
ZWQob3RoZXIucGFyc2VkKQoreworfQorCitDU1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURh
dHVtKCkKKyAgICA6IG5hbWUoIiIpCisgICAgLCB2YWx1ZSgiIikKKyAgICAsIGltcG9ydGFudChm
YWxzZSkKKyAgICAsIHBhcnNlZChmYWxzZSkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bSYgQ1NT
UHJvcGVydHlEYXR1bTo6b3BlcmF0b3I9KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKQor
eworICAgIG5hbWUgPSBvdGhlci5uYW1lOworICAgIHZhbHVlID0gb3RoZXIudmFsdWU7CisgICAg
aW1wb3J0YW50ID0gb3RoZXIuaW1wb3J0YW50OworICAgIHBhcnNlZCA9IG90aGVyLnBhcnNlZDsK
KyAgICByZXR1cm4gKnRoaXM7Cit9CisKK1N0cmluZyBDU1NQcm9wZXJ0eURhdHVtOjp0b1N0cmlu
ZygpIGNvbnN0Cit7CisgICAgaWYgKCFuYW1lICYmIHZhbHVlID09ICJlIikKKyAgICAgICAgcmV0
dXJuIFN0cmluZygpOworCisgICAgU3RyaW5nIHJlc3VsdCA9IG5hbWU7CisgICAgcmVzdWx0ICs9
ICI6ICI7CisgICAgcmVzdWx0ICs9IHZhbHVlOworICAgIGlmIChpbXBvcnRhbnQpCisgICAgICAg
IHJlc3VsdCArPSAiICFpbXBvcnRhbnQiOworICAgIHJlc3VsdCArPSAiOyI7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworLy8gR2xvYmFsIGluaXQgcm91dGluZXMKK0RFRklORV9HTE9CQUwoQ1NT
UHJvcGVydHlEYXR1bSwgZW1wdHlDU1NQcm9wZXJ0eURhdHVtLCAiIiwgImUiLCBmYWxzZSwgZmFs
c2UpCisKKy8vIHN0YXRpYwordm9pZCBDU1NQcm9wZXJ0eURhdHVtOjppbml0KCkKK3sKKyAgICBz
dGF0aWMgYm9vbCBpbml0aWFsaXplZDsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAg
IG5ldyAoKHZvaWQgKikgJmVtcHR5Q1NTUHJvcGVydHlEYXR1bSkgQ1NTUHJvcGVydHlEYXR1bSgi
IiwgImUiLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKworbmFtZXNwYWNlIFdURiB7CisKK1dl
YkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0gSGFzaFRyYWl0czxXZWJDb3JlOjpDU1NQcm9wZXJ0eURh
dHVtPjo6ZW1wdHlWYWx1ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtLCBlbXB0eUhhc2hWYWx1ZSwgKCIiLCAiaCIsIGZhbHNlLCBmYWxzZSkp
OworICAgIHJldHVybiBlbXB0eUhhc2hWYWx1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmggYi9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eURhdHVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3
Yjc5YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaApA
QCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQ1NTUHJvcGVydHlEYXR1bV9oCisjZGVmaW5lIENTU1By
b3BlcnR5RGF0dW1faAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx1
dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBDU1NTdHlsZVJ1bGU7CisKK3R5cGVkZWYgc3RkOjpwYWlyPHVuc2lnbmVkLCB1
bnNpZ25lZD4gU291cmNlUmFuZ2U7CisKK3N0cnVjdCBDU1NQcm9wZXJ0eURhdHVtIHsKKyAgICBz
dGF0aWMgdm9pZCBpbml0KCk7CisKKyAgICBDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKTsK
KyAgICBDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKTsKKyAg
ICBDU1NQcm9wZXJ0eURhdHVtKCk7CisgICAgQUxXQVlTX0lOTElORSB+Q1NTUHJvcGVydHlEYXR1
bSgpIHsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90
aGVyKSBjb25zdCB7IHJldHVybiBuYW1lID09IG90aGVyLm5hbWUgJiYgdmFsdWUgPT0gb3RoZXIu
dmFsdWUgJiYgaW1wb3J0YW50ID09IG90aGVyLmltcG9ydGFudCAmJiBwYXJzZWQgPT0gb3RoZXIu
cGFyc2VkOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90
aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorCisgICAgQ1NTUHJvcGVy
dHlEYXR1bSYgb3BlcmF0b3I9KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKTsKKyAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKworICAgIFN0cmluZyBuYW1lOworICAgIFN0cmluZyB2
YWx1ZTsKKyAgICBib29sIGltcG9ydGFudDsKKyAgICBib29sIHBhcnNlZDsKK307Cit0eXBlZGVm
IHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBib29sPiBTb3VyY2VBd2FyZVByb3BlcnR5RGF0
dW07CisKKyNpZm5kZWYgQ1NTUFJPUEVSVFlEQVRVTV9ISURFX0dMT0JBTFMKK2V4dGVybiBjb25z
dCBDU1NQcm9wZXJ0eURhdHVtIGVtcHR5Q1NTUHJvcGVydHlEYXR1bTsKKyNlbmRpZgorCitzdHJ1
Y3QgQ1NTU3R5bGVTb3VyY2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTU3R5bGVTb3VyY2VE
YXRhPiB7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBjcmVhdGUo
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NTdHlsZVNvdXJjZURhdGEo
KSk7CisgICAgfQorCisgICAgLy8gUmFuZ2Ugb2YgdGhlIHN0eWxlIHRleHQgaW4gdGhlIGVuY2xv
c2luZyBzb3VyY2UgKHN0YXJ0IGFuZCBlbmQgb2Zmc2V0cyBpbmNsdXNpdmUpLgorICAgIFNvdXJj
ZVJhbmdlIHN0eWxlQm9keVJhbmdlOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlE
YXR1bSwgU291cmNlUmFuZ2U+ID4gcHJvcGVydHlEYXRhOworfTsKK3R5cGVkZWYgSGFzaE1hcDxD
U1NTdHlsZVJ1bGUqLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+IFN0eWxlUnVsZVJhbmdl
TWFwOworCitzdHJ1Y3QgQ1NTUHJvcGVydHlEYXR1bUhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKENTU1Byb3BlcnR5RGF0dW0ga2V5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmlu
Z0hhc2g6Omhhc2goa2V5Lm5hbWUpICsgU3RyaW5nSGFzaDo6aGFzaChrZXkudmFsdWUpICsgNyAq
IGtleS5pbXBvcnRhbnQgKyAzICoga2V5LnBhcnNlZCArIDMxOworICAgIH0KKworICAgIHN0YXRp
YyBib29sIGVxdWFsKENTU1Byb3BlcnR5RGF0dW0gYSwgQ1NTUHJvcGVydHlEYXR1bSBiKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGEubmFtZSA9PSBiLm5hbWUgJiYgYS52YWx1ZSA9PSBiLnZhbHVl
ICYmIGEuaW1wb3J0YW50ID09IGIuaW1wb3J0YW50ICYmIGEucGFyc2VkID09IGIucGFyc2VkOwor
ICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxl
dGVkID0gZmFsc2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBX
VEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7Cit0ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtPiB7CisgICAg
dHlwZWRlZiBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaCBIYXNoOworfTsKKwordGVtcGxh
dGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtPiA6IEdlbmVy
aWNIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IHsKKyAgICBzdGF0aWMgY29u
c3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CisgICAgc3RhdGljIFdlYkNvcmU6OkNT
U1Byb3BlcnR5RGF0dW0gZW1wdHlWYWx1ZSgpOworCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0
RGVsZXRlZFZhbHVlKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0mIHNsb3QpIHsgbmV3ICgmc2xv
dCkgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSgiIiwgIkQiLCBmYWxzZSwgZmFsc2UpOyB9Cisg
ICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6Q1NTUHJvcGVydHlE
YXR1bSYgc2xvdCkgeyByZXR1cm4gIXNsb3QubmFtZS5sZW5ndGgoKSAmJiBzbG90LnZhbHVlID09
ICJEIjsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBDU1NQcm9wZXJ0
eURhdHVtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IGZmMWMyYWYuLjNjYThkMzkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtMTg5LDcgKzE4OSw3IEBAIG1vZHVsZSBjb3JlIHsK
ICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldElubGluZVN0eWxlKGluIGxvbmcgbm9kZUlk
LCBvdXQgVmFsdWUgc3R5bGUpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0Q29tcHV0
ZWRTdHlsZShpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlKTsKICAgICAgICAgW2hhbmRs
ZXI9RE9NXSB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBPYmpl
Y3Qgc3R5bGVTaGVldCk7Ci0gICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRSdWxlUmFuZ2Vz
KGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgcmFuZ2VzKTsKKyAgICAgICAgW2hhbmRs
ZXI9RE9NXSB2b2lkIGdldFN0eWxlU291cmNlRGF0YShpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0
IE9iamVjdCBzdHlsZVNvdXJjZURhdGEpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgYXBw
bHlTdHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBpbiBTdHJp
bmcgcHJvcGVydHlOYW1lLCBvdXQgYm9vbGVhbiBzdWNjZXNzLCBvdXQgVmFsdWUgc3R5bGUsIG91
dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBz
ZXRTdHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBvdXQgYm9v
bGVhbiBzdWNjZXNzKTsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHNldFN0eWxlUHJvcGVy
dHkoaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgbmFtZSwgaW4gU3RyaW5nIHZhbHVlLCBvdXQg
Ym9vbGVhbiBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcApp
bmRleCBjMmRjNGYxLi5lZTlmNGJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDU1NTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3Rv
cmUuY3BwCkBAIC0zNywxMSArMzcsMjAgQEAKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9u
LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5o
IgorI2luY2x1ZGUgIkNhY2hlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNs
dWRlICJEb2NMb2FkZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUg
IkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JSZXNvdXJjZS5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0
LmgiCisjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNjcsNiArNzYsNyBAQCB2b2lkIEluc3BlY3RvckNTU1N0b3JlOjpyZXNldCgpCiAgICAgbV9z
dHlsZVNoZWV0VG9PZmZzZXRzLmNsZWFyKCk7CiAgICAgbV9zdHlsZVNoZWV0VG9JZC5jbGVhcigp
OwogICAgIG1faWRUb1N0eWxlU2hlZXQuY2xlYXIoKTsKKyAgICBtX2lkVG9TdHlsZVNoZWV0VGV4
dC5jbGVhcigpOwogICAgIG1faWRUb0Rpc2FibGVkU3R5bGUuY2xlYXIoKTsKICAgICBtX2RvY3Vt
ZW50Tm9kZVRvSW5zcGVjdG9yU3R5bGVTaGVldE1hcC5jbGVhcigpOwogCkBAIC0xMDQsNDggKzEx
NCwxODAgQEAgQ1NTU3R5bGVTaGVldCogSW5zcGVjdG9yQ1NTU3RvcmU6Omluc3BlY3RvclN0eWxl
U2hlZXQoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQsIGIKICAgICByZXR1cm4gaW5zcGVjdG9yU3R5
bGVTaGVldDsKIH0KIAotSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3Rv
cmU6OmdldFJ1bGVSYW5nZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK1N0cmluZyBJbnNw
ZWN0b3JDU1NTdG9yZTo6c3R5bGVTaGVldFRleHQobG9uZyBzdHlsZVNoZWV0SWQpCiB7CisgICAg
SWRUb1N0eWxlU2hlZXRUZXh0TWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1N0eWxlU2hlZXRUZXh0
LmZpbmQoc3R5bGVTaGVldElkKTsKKyAgICBpZiAoaXQgIT0gbV9pZFRvU3R5bGVTaGVldFRleHQu
ZW5kKCkpCisgICAgICAgIHJldHVybiBpdC0+c2Vjb25kOworCisgICAgQ1NTU3R5bGVTaGVldCog
c3R5bGVTaGVldCA9IHN0eWxlU2hlZXRGb3JJZChzdHlsZVNoZWV0SWQpOwogICAgIGlmICghc3R5
bGVTaGVldCkKLSAgICAgICAgcmV0dXJuIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+KCk7Ci0g
ICAgUmVmUHRyPENTU1J1bGVMaXN0PiBvcmlnaW5hbFJ1bGVMaXN0ID0gQ1NTUnVsZUxpc3Q6OmNy
ZWF0ZShzdHlsZVNoZWV0LCBmYWxzZSk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBT
dHJpbmcgdGV4dDsKKworICAgIE5vZGUqIG93bmVyTm9kZSA9IHN0eWxlU2hlZXQtPm93bmVyTm9k
ZSgpOworICAgIGlmIChvd25lck5vZGUgJiYgb3duZXJOb2RlLT5ub2RlVHlwZSgpID09IE5vZGU6
OkVMRU1FTlRfTk9ERSkgeworICAgICAgICBFbGVtZW50KiBvd25lckVsZW1lbnQgPSBzdGF0aWNf
Y2FzdDxFbGVtZW50Kj4ob3duZXJOb2RlKTsKKyAgICAgICAgaWYgKG93bmVyRWxlbWVudC0+dGFn
TmFtZSgpLmxvd2VyKCkgPT0gInN0eWxlIikKKyAgICAgICAgICAgIHRleHQgPSBpbmxpbmVTdHls
ZVNoZWV0VGV4dChzdHlsZVNoZWV0KTsKKyAgICB9CisgICAgaWYgKHRleHQuaXNFbXB0eSgpKQor
ICAgICAgICB0ZXh0ID0gcmVzb3VyY2VTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0KTsKKworICAg
IGlmICghdGV4dC5pc0VtcHR5KCkpCisgICAgICAgIG1faWRUb1N0eWxlU2hlZXRUZXh0LnNldChz
dHlsZVNoZWV0SWQsIHRleHQpOworICAgIHJldHVybiB0ZXh0OworfQorCitTdHJpbmcgSW5zcGVj
dG9yQ1NTU3RvcmU6OnJlc291cmNlU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVT
aGVldCkKK3sKKyAgICBLVVJMIHN0eWxlU2hlZXRVUkwgPSBzdHlsZVNoZWV0LT5maW5hbFVSTCgp
OworICAgIERvY3VtZW50KiBkb2MgPSBzdHlsZVNoZWV0LT5kb2N1bWVudCgpOworICAgIGlmICgh
ZG9jKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgU3RyaW5nIHRleHRFbmNvZGluZ05h
bWU7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAgIGlmIChlcXVhbElnbm9y
aW5nRnJhZ21lbnRJZGVudGlmaWVyKHN0eWxlU2hlZXRVUkwsIGRvYy0+ZnJhbWUoKS0+bG9hZGVy
KCktPmRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3RVUkwoKSkpIHsKKyAgICAgICAgdGV4dEVuY29k
aW5nTmFtZSA9IGRvYy0+aW5wdXRFbmNvZGluZygpOworICAgICAgICBidWZmZXIgPSBkb2MtPmZy
YW1lKCktPmxvYWRlcigpLT5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJj
ZURhdGEoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25zdCBTdHJpbmcmIHVybCA9IHN0eWxl
U2hlZXRVUkwuc3RyaW5nKCk7CisgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJj
ZSA9IGRvYy0+ZG9jTG9hZGVyKCktPmNhY2hlZFJlc291cmNlKHVybCk7CisgICAgICAgIGlmICgh
Y2FjaGVkUmVzb3VyY2UpCisgICAgICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IGNhY2hlKCktPnJl
c291cmNlRm9yVVJMKHVybCk7CisKKyAgICAgICAgQVNTRVJUKGNhY2hlZFJlc291cmNlKTsgLy8g
RklYTUUoYXBhdmxvdik6IFRoaXMgbWlnaHQgYmUgdG9vIGFnZ3Jlc3NpdmUKKworICAgICAgICBi
b29sIGlzVW5wdXJnZWFibGUgPSB0cnVlOworICAgICAgICBpZiAoY2FjaGVkUmVzb3VyY2UtPmlz
UHVyZ2VhYmxlKCkpIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSByZXNvdXJjZSBpcyBwdXJnZWFi
bGUgdGhlbiBtYWtlIGl0IHVucHVyZ2VhYmxlIHRvIGdldAorICAgICAgICAgICAgLy8gaXRzIGRh
dGEuIFRoaXMgbWlnaHQgZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSByZXR1cm4gYW4KKyAgICAgICAg
ICAgIC8vIGVtcHR5IFN0cmluZy4KKyAgICAgICAgICAgIGlmICghY2FjaGVkUmVzb3VyY2UtPm1h
a2VQdXJnZWFibGUoZmFsc2UpKQorICAgICAgICAgICAgICAgIGlzVW5wdXJnZWFibGUgPSBmYWxz
ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNVbnB1cmdlYWJsZSkgeworICAgICAgICAgICAg
dGV4dEVuY29kaW5nTmFtZSA9IGNhY2hlZFJlc291cmNlLT5lbmNvZGluZygpOworICAgICAgICAg
ICAgYnVmZmVyID0gY2FjaGVkUmVzb3VyY2UtPmRhdGEoKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmIChidWZmZXIpIHsKKyAgICAgICAgVGV4dEVuY29kaW5nIGVuY29kaW5nKHRleHRFbmNv
ZGluZ05hbWUpOworICAgICAgICBpZiAoIWVuY29kaW5nLmlzVmFsaWQoKSkKKyAgICAgICAgICAg
IGVuY29kaW5nID0gV2luZG93c0xhdGluMUVuY29kaW5nKCk7CisgICAgICAgIHJldHVybiBlbmNv
ZGluZy5kZWNvZGUoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5l
U3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBOb2RlKiBv
d25lck5vZGUgPSBzdHlsZVNoZWV0LT5vd25lck5vZGUoKTsKKyAgICBpZiAoIW93bmVyTm9kZSB8
fCBvd25lck5vZGUtPm5vZGVUeXBlKCkgIT0gTm9kZTo6RUxFTUVOVF9OT0RFIHx8IG1fc3R5bGVT
aGVldFRvSWQuZmluZChzdHlsZVNoZWV0KSA9PSBtX3N0eWxlU2hlZXRUb0lkLmVuZCgpKQorICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8RWxlbWVudCo+KG93bmVyTm9kZSk7CisgICAgaWYgKG93bmVyRWxlbWVudC0+dGFnTmFt
ZSgpLmxvd2VyKCkgIT0gInN0eWxlIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJl
dHVybiBvd25lckVsZW1lbnQtPmlubmVyVGV4dCgpOworfQorCisKKy8vIEFsbCByYW5nZXMgYXJl
OiBbc3RhcnQ7IGVuZCkgKHN0YXJ0IC0gaW5jbHVzaXZlLCBlbmQgLSBleGNsdXNpdmUpCitib29s
IEluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZVNvdXJjZURhdGEoQ1NTU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpCit7CisgICAgaWYg
KCFzdHlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9
IGlubGluZVN0eWxlRWxlbWVudChzdHlsZSk7CisgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAg
Ly8gSW5saW5lOiBzdHlsZT0iLi4uIgorICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRh
PiBzdHlsZVNvdXJjZURhdGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOworICAgICAg
ICBib29sIHN1Y2Nlc3MgPSBnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhlbGVtZW50LCAmc3R5bGVT
b3VyY2VEYXRhKTsKKyAgICAgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAqcmVzdWx0ID0gc3R5bGVTb3VyY2VEYXRhOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gZ2V0UGFyZW50
U3R5bGVTaGVldChzdHlsZSk7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiogcmFuZ2Vz
VmVjdG9yID0gMDsKICAgICBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOjppdGVyYXRvciBpdCA9IG1f
c3R5bGVTaGVldFRvT2Zmc2V0cy5maW5kKHN0eWxlU2hlZXQpOwotICAgIFZlY3RvcjxTb3VyY2VS
YW5nZT4qIG9mZnNldFZlY3RvciA9IDA7CiAgICAgaWYgKGl0ID09IG1fc3R5bGVTaGVldFRvT2Zm
c2V0cy5lbmQoKSkgewotICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3VyY2UgPSBtX2lu
c3BlY3RvckNvbnRyb2xsZXItPnJlc291cmNlRm9yVVJMKHN0eWxlU2hlZXQtPmZpbmFsVVJMKCku
c3RyaW5nKCkpOwotICAgICAgICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAgICAgIG9mZnNldFZl
Y3RvciA9IG5ldyBWZWN0b3I8U291cmNlUmFuZ2U+OworICAgICAgICBTdHJpbmcgdGV4dCA9IHN0
eWxlU2hlZXRUZXh0KGJpbmRTdHlsZVNoZWV0KHN0eWxlU2hlZXQpKTsKKyAgICAgICAgaWYgKCF0
ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IG5ld1N0
eWxlU2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3R5bGVTaGVldC0+b3duZXJOb2RlKCkp
OwogICAgICAgICAgICAgQ1NTUGFyc2VyIHA7Ci0gICAgICAgICAgICBDU1NQYXJzZXI6OlN0eWxl
UnVsZVJhbmdlcyBydWxlUmFuZ2VNYXA7Ci0gICAgICAgICAgICBwLnBhcnNlU2hlZXQobmV3U3R5
bGVTaGVldC5nZXQoKSwgcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpLCAwLCAmcnVsZVJhbmdlTWFw
KTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IG5ld1N0eWxlU2hl
ZXQtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBDU1NTdHls
ZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShuZXdTdHlsZVNoZWV0LT5pdGVtKGkpKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXJ1bGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgICAgIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2lnbmVk
LCB1bnNpZ25lZD4gPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VNYXAuZmluZChydWxlKTsKLSAg
ICAgICAgICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQotICAgICAgICAgICAg
ICAgICAgICBvZmZzZXRWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5zZXQoc3R5bGVTaGVldCwgb2Zmc2V0
VmVjdG9yKTsKKyAgICAgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwIHJ1bGVSYW5nZU1hcDsKKyAg
ICAgICAgICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgpLCB0ZXh0LCAwLCAmcnVs
ZVJhbmdlTWFwKTsKKyAgICAgICAgICAgIHJhbmdlc1ZlY3RvciA9IG5ldyBWZWN0b3I8UmVmUHRy
PENTU1N0eWxlU291cmNlRGF0YT4gPjsKKyAgICAgICAgICAgIGV4dHJhY3RSYW5nZXMobmV3U3R5
bGVTaGVldC5nZXQoKSwgcnVsZVJhbmdlTWFwLCByYW5nZXNWZWN0b3IpOworICAgICAgICAgICAg
bV9zdHlsZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCByYW5nZXNWZWN0b3IpOwogICAg
ICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIG9mZnNldFZlY3RvciA9IGl0LT5zZWNvbmQ7Ci0g
ICAgaWYgKCFvZmZzZXRWZWN0b3IpCi0gICAgICAgIHJldHVybiBIYXNoTWFwPGxvbmcsIFNvdXJj
ZVJhbmdlPigpOworICAgICAgICByYW5nZXNWZWN0b3IgPSBpdC0+c2Vjb25kOworICAgIGlmICgh
cmFuZ2VzVmVjdG9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNpZ25lZCBydWxl
SW5kZXggPSAwOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJlc3VsdDsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8IGxl
bmd0aDsgKytpKSB7Ci0gICAgICAgIEFTU0VSVChydWxlSW5kZXggPCBvZmZzZXRWZWN0b3ItPnNp
emUoKSk7CiAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0eWxl
U2hlZXQtPml0ZW0oaSkpOwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgLy8gVGhpcyBtYXBzIHRoZSBzdHlsZSBpZCB0byB0aGUgcnVsZSBib2R5IHJh
bmdlLgotICAgICAgICByZXN1bHQuc2V0KGJpbmRTdHlsZShydWxlLT5zdHlsZSgpKSwgb2Zmc2V0
VmVjdG9yLT5hdChydWxlSW5kZXgpKTsKKyAgICAgICAgaWYgKHJ1bGUtPnN0eWxlKCkgPT0gc3R5
bGUpIHsKKyAgICAgICAgICAgIEFTU0VSVChydWxlSW5kZXggPCByYW5nZXNWZWN0b3ItPnNpemUo
KSk7CisgICAgICAgICAgICAqcmVzdWx0ID0gcmFuZ2VzVmVjdG9yLT5hdChydWxlSW5kZXgpOwor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgcnVsZUluZGV4Kys7
CiAgICAgfQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IEluc3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hl
ZXQsIGNvbnN0IFN0eWxlUnVsZVJhbmdlTWFwJiBydWxlUmFuZ2VNYXAsIFZlY3RvcjxSZWZQdHI8
Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpCit7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMCwgbGVuZ3RoID0gc3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkg
eworICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShzdHlsZVNoZWV0
LT5pdGVtKGkpKTsKKyAgICAgICAgaWYgKCFydWxlKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHJ1bGVSYW5nZU1h
cC5maW5kKHJ1bGUpOworICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQorICAg
ICAgICAgICAgcmFuZ2VzVmVjdG9yLT5hcHBlbmQoaXQtPnNlY29uZCk7CisgICAgfQorfQorCiti
b29sIEluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhOb2RlKiBub2Rl
LCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlmICghbm9kZSB8
fCAhbm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFN0cmluZyBzdHlsZVRleHQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdl
dEF0dHJpYnV0ZSgic3R5bGUiKTsKKyAgICBpZiAoc3R5bGVUZXh0LmlzRW1wdHkoKSkgeworICAg
ICAgICAoKnJlc3VsdCktPnN0eWxlQm9keVJhbmdlLmZpcnN0ID0gMDsKKyAgICAgICAgKCpyZXN1
bHQpLT5zdHlsZUJvZHlSYW5nZS5zZWNvbmQgPSAwOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHRlbXBEZWNsYXJh
dGlvbiA9IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKTsKKyAgICBDU1NQYXJz
ZXIgcDsKKyAgICBwLnBhcnNlRGVjbGFyYXRpb24odGVtcERlY2xhcmF0aW9uLmdldCgpLCBzdHls
ZVRleHQsIHJlc3VsdC0+Z2V0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitDU1NTdHlsZVNo
ZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xh
cmF0aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZS0+c3R5bGVzaGVldCgpOworICAgIGlm
IChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpOworCisgICAgcmV0
dXJuIDA7CiB9CiAKIENTU1N0eWxlUnVsZSogSW5zcGVjdG9yQ1NTU3RvcmU6OmFzQ1NTU3R5bGVS
dWxlKFN0eWxlQmFzZSogc3R5bGVCYXNlKQpAQCAtMjE3LDYgKzM1OSwxNyBAQCBsb25nIEluc3Bl
Y3RvckNTU1N0b3JlOjpiaW5kUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiAgICAgcmV0dXJuIGlk
OwogfQogCisvLyBzdGF0aWMKK0VsZW1lbnQqIEluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHls
ZUVsZW1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAgaWYgKCFzdHlsZSB8
fCAhc3R5bGUtPmlzTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSkKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgTm9kZSogbm9kZSA9IHN0YXRpY19jYXN0PENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
Kj4oc3R5bGUpLT5ub2RlKCk7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0eWxlZEVsZW1l
bnQoKSB8fCBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdldElubGluZVN0eWxl
RGVjbCgpICE9IHN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTU3RvcmUuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgK
aW5kZXggODJkZTYyMi4uOGVmZDM2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTU3RvcmUuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9y
ZS5oCkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIEluc3BlY3RvckNTU1N0b3JlX2gKICNkZWZp
bmUgSW5zcGVjdG9yQ1NTU3RvcmVfaAogCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgor
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM2LDEzICszOCwxNSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwotY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKIGNs
YXNzIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlv
bjsKIGNsYXNzIENTU1J1bGVMaXN0OwogY2xhc3MgQ1NTU3R5bGVSdWxlOwogY2xhc3MgQ1NTU3R5
bGVTaGVldDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEluc3BlY3Rv
ckNvbnRyb2xsZXI7CitjbGFzcyBOb2RlOwogY2xhc3MgU3R5bGVCYXNlOwogCiB0eXBlZGVmIHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5OwpAQCAtNTIs
MjMgKzU2LDI4IEBAIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZURlY2xhcmF0aW9uKiwgbG9uZz4g
U3R5bGVUb0lkTWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZURlY2xh
cmF0aW9uPiA+IElkVG9TdHlsZU1hcDsKIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBs
b25nPiBSdWxlVG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVS
dWxlPiA+IElkVG9SdWxlTWFwOwotdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBWZWN0
b3I8U291cmNlUmFuZ2U+KiA+IFN0eWxlU2hlZXRUb09mZnNldHNNYXA7Cit0eXBlZGVmIEhhc2hN
YXA8Q1NTU3R5bGVTaGVldCosIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiA+
IFN0eWxlU2hlZXRUb09mZnNldHNNYXA7CiB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVTaGVldCos
IGxvbmc+IFN0eWxlU2hlZXRUb0lkTWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxD
U1NTdHlsZVNoZWV0PiA+IElkVG9TdHlsZVNoZWV0TWFwOwordHlwZWRlZiBIYXNoTWFwPGxvbmcs
IFN0cmluZz4gSWRUb1N0eWxlU2hlZXRUZXh0TWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIERp
c2FibGVkU3R5bGVEZWNsYXJhdGlvbj4gSWRUb0Rpc2FibGVkU3R5bGVNYXA7CiB0eXBlZGVmIEhh
c2hNYXA8UmVmUHRyPERvY3VtZW50PiwgUmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4gRG9jdW1lbnRU
b1N0eWxlU2hlZXRNYXA7CiAKIGNsYXNzIEluc3BlY3RvckNTU1N0b3JlIHsKIAogcHVibGljOgor
ICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0KiBnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVj
bGFyYXRpb24qKTsKKyAgICBzdGF0aWMgRWxlbWVudCogaW5saW5lU3R5bGVFbGVtZW50KENTU1N0
eWxlRGVjbGFyYXRpb24qKTsKKwogICAgIEluc3BlY3RvckNTU1N0b3JlKEluc3BlY3RvckNvbnRy
b2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIpOwogICAgIH5JbnNwZWN0b3JDU1NTdG9yZSgpOwog
ICAgIHZvaWQgcmVzZXQoKTsKLSAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBnZXRSdWxl
UmFuZ2VzKENTU1N0eWxlU2hlZXQqKTsKKyAgICBib29sIGdldFN0eWxlU291cmNlRGF0YShDU1NT
dHlsZURlY2xhcmF0aW9uKiwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCk7CiAg
ICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVGb3JJZChsb25nIHN0eWxlSWQpOwogICAgIENT
U1N0eWxlU2hlZXQqIHN0eWxlU2hlZXRGb3JJZChsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAgQ1NT
U3R5bGVSdWxlKiBydWxlRm9ySWQobG9uZyBzdHlsZVJ1bGVJZCk7CiAgICAgRGlzYWJsZWRTdHls
ZURlY2xhcmF0aW9uKiBkaXNhYmxlZFN0eWxlRm9ySWQobG9uZyBzdHlsZUlkLCBib29sIGNyZWF0
ZUlmQWJzZW50KTsKKyAgICBTdHJpbmcgc3R5bGVTaGVldFRleHQobG9uZyBzdHlsZVNoZWV0SWQp
OwogICAgIENTU1N0eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQqIG93bmVy
RG9jdW1lbnQsIGJvb2wgY3JlYXRlSWZBYnNlbnQpOwogICAgIHZvaWQgcmVtb3ZlRG9jdW1lbnQo
RG9jdW1lbnQqKTsKIApAQCAtNzgsNiArODcsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IHN0YXRpYyBDU1NTdHlsZVJ1bGUqIGFzQ1NTU3R5bGVSdWxlKFN0eWxlQmFzZSopOworICAgIFN0
cmluZyBpbmxpbmVTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0Kik7CisgICAgU3RyaW5nIHJl
c291cmNlU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCopOworICAgIHZvaWQgZXh0cmFjdFJh
bmdlcyhDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3R5bGVSdWxlUmFuZ2VNYXAmLCBWZWN0b3I8UmVm
UHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiogcmFuZ2VzVmVjdG9yKTsKKyAgICBib29sIGdldFN0
eWxlQXR0cmlidXRlUmFuZ2VzKE5vZGUqIHBhcmVudE5vZGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJj
ZURhdGE+KiByZXN1bHQpOwogCiAgICAgU3R5bGVUb0lkTWFwIG1fc3R5bGVUb0lkOwogICAgIElk
VG9TdHlsZU1hcCBtX2lkVG9TdHlsZTsKQEAgLTg1LDggKzk4LDkgQEAgcHJpdmF0ZToKICAgICBJ
ZFRvUnVsZU1hcCBtX2lkVG9SdWxlOwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXAgbV9zdHls
ZVNoZWV0VG9PZmZzZXRzOwogICAgIFN0eWxlU2hlZXRUb0lkTWFwIG1fc3R5bGVTaGVldFRvSWQ7
Ci0gICAgSWRUb1N0eWxlU2hlZXRNYXAgbV9pZFRvU3R5bGVTaGVldDsKICAgICBJZFRvRGlzYWJs
ZWRTdHlsZU1hcCBtX2lkVG9EaXNhYmxlZFN0eWxlOworICAgIElkVG9TdHlsZVNoZWV0TWFwIG1f
aWRUb1N0eWxlU2hlZXQ7CisgICAgSWRUb1N0eWxlU2hlZXRUZXh0TWFwIG1faWRUb1N0eWxlU2hl
ZXRUZXh0OwogICAgIERvY3VtZW50VG9TdHlsZVNoZWV0TWFwIG1fZG9jdW1lbnROb2RlVG9JbnNw
ZWN0b3JTdHlsZVNoZWV0TWFwOwogCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0
b3JDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4
IGQyNzYwZTQuLmY0ZGQ1YmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uaCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCiAjaW5jbHVkZSAiQ1NTUHJv
cGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NSdWxlTGlz
dC5oIgpAQCAtMTE3MSwyNiArMTE3MiwzNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRT
dHlsZVNoZWV0KGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PgogICAg
ICAgICAqc3R5bGVTaGVldE9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldChzdHlsZVNo
ZWV0LT5kb2N1bWVudCgpLCBzdHlsZVNoZWV0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2Vu
dDo6Z2V0UnVsZVJhbmdlcyhsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVl
PiogcnVsZVJhbmdlKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5bGVTb3VyY2VEYXRh
KGxvbmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGRhdGFPYmplY3QpCiB7Ci0g
ICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGNzc1N0b3JlKCktPnN0eWxlU2hlZXRGb3JJ
ZChzdHlsZVNoZWV0SWQpOwotICAgIGlmIChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmRvY3Vt
ZW50KCkpIHsKLSAgICAgICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcnVsZVJhbmdlcyA9
IGNzc1N0b3JlKCktPmdldFJ1bGVSYW5nZXMoc3R5bGVTaGVldCk7Ci0gICAgICAgIGlmICghcnVs
ZVJhbmdlcy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAg
IGZvciAoSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT46Oml0ZXJhdG9yIGl0ID0gcnVsZVJhbmdl
cy5iZWdpbigpOyBpdCAhPSBydWxlUmFuZ2VzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICBp
ZiAoaXQtPnNlY29uZC5zZWNvbmQpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBydWxlUmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAg
ICAgICAgIHJlc3VsdC0+c2V0T2JqZWN0KFN0cmluZzo6bnVtYmVyKGl0LT5maXJzdCkudXRmOCgp
LmRhdGEoKSwgcnVsZVJhbmdlKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBib2R5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAg
ICAgIHJ1bGVSYW5nZS0+c2V0T2JqZWN0KCJib2R5UmFuZ2UiLCBib2R5UmFuZ2UpOwotICAgICAg
ICAgICAgICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJzdGFydCIsIGl0LT5zZWNvbmQuZmlyc3Qp
OwotICAgICAgICAgICAgICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25k
LnNlY29uZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgKnJ1bGVSYW5nZSA9
IHJlc3VsdC5yZWxlYXNlKCk7CisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBjc3NT
dG9yZSgpLT5zdHlsZUZvcklkKHN0eWxlSWQpOworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJl
dHVybjsKKyAgICBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gQ1NTU3R5
bGVTb3VyY2VEYXRhOjpjcmVhdGUoKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBjc3NTdG9yZSgpLT5n
ZXRTdHlsZVNvdXJjZURhdGEoc3R5bGUsICZzb3VyY2VEYXRhKTsKKyAgICBpZiAoIXN1Y2Nlc3Mp
CisgICAgICAgIHJldHVybjsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHQgPSBJ
bnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJv
ZHlSYW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXRPYmpl
Y3QoImJvZHlSYW5nZSIsIGJvZHlSYW5nZSk7CisgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoInN0
YXJ0Iiwgc291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2UuZmlyc3QpOworICAgIGJvZHlSYW5nZS0+
c2V0TnVtYmVyKCJlbmQiLCBzb3VyY2VEYXRhLT5zdHlsZUJvZHlSYW5nZS5zZWNvbmQpOworICAg
IFJlZlB0cjxJbnNwZWN0b3JBcnJheT4gcHJvcGVydHlSYW5nZXMgPSBJbnNwZWN0b3JBcnJheTo6
Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXRBcnJheSgicHJvcGVydHlEYXRhIiwgcHJvcGVydHlS
YW5nZXMpOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFu
Z2U+ID4mIHByb3BlcnR5RGF0YSA9IHNvdXJjZURhdGEtPnByb3BlcnR5RGF0YTsKKyAgICBmb3Ig
KFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID46Oml0ZXJh
dG9yIGl0ID0gcHJvcGVydHlEYXRhLmJlZ2luKCk7IGl0ICE9IHByb3BlcnR5RGF0YS5lbmQoKTsg
KytpdCkgeworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwcm9wZXJ0eVJhbmdlID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0U3Ry
aW5nKCJuYW1lIiwgaXQtPmZpcnN0Lm5hbWUpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRT
dHJpbmcoInZhbHVlIiwgaXQtPmZpcnN0LnZhbHVlKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+
c2V0Qm9vbGVhbigiaW1wb3J0YW50IiwgaXQtPmZpcnN0LmltcG9ydGFudCk7CisgICAgICAgIHBy
b3BlcnR5UmFuZ2UtPnNldEJvb2xlYW4oInBhcnNlZCIsIGl0LT5maXJzdC5wYXJzZWQpOworICAg
ICAgICBwcm9wZXJ0eVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0IiwgaXQtPnNlY29uZC5maXJzdCk7
CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldE51bWJlcigiZW5kIiwgaXQtPnNlY29uZC5zZWNv
bmQpOworICAgICAgICBwcm9wZXJ0eVJhbmdlcy0+cHVzaE9iamVjdChwcm9wZXJ0eVJhbmdlKTsK
ICAgICB9CisgICAgKmRhdGFPYmplY3QgPSByZXN1bHQucmVsZWFzZSgpOwogfQogCiB2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiogc3R5bGUpCkBAIC0xNDQ5LDcgKzE0NTgsNyBAQCBQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5
bGVEZWNsYQogICAgIGlmIChiaW5kKSB7CiAgICAgICAgIGxvbmcgc3R5bGVJZCA9IGNzc1N0b3Jl
KCktPmJpbmRTdHlsZShzdHlsZSk7CiAgICAgICAgIHJlc3VsdC0+c2V0TnVtYmVyKCJpZCIsIHN0
eWxlSWQpOwotICAgICAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gZ2V0UGFy
ZW50U3R5bGVTaGVldChzdHlsZSk7CisgICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxl
U2hlZXQgPSBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChzdHlsZSk7CiAg
ICAgICAgIGlmIChwYXJlbnRTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmVzdWx0LT5zZXROdW1i
ZXIoInBhcmVudFN0eWxlU2hlZXRJZCIsIGNzc1N0b3JlKCktPmJpbmRTdHlsZVNoZWV0KHBhcmVu
dFN0eWxlU2hlZXQpKTsKIApAQCAtMTY2MSwyMCArMTY3MCw2IEBAIFBhc3NSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+IEluc3BlY3RvckRPTUFnZW50Ojp0b0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBkYXRhCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKLUNTU1N0eWxlU2hlZXQq
IEluc3BlY3RvckRPTUFnZW50OjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRp
b24qIHN0eWxlKQotewotICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBzdHls
ZS0+cGFyZW50UnVsZSgpID8gc3R5bGUtPnBhcmVudFJ1bGUoKS0+cGFyZW50U3R5bGVTaGVldCgp
IDogMDsKLSAgICBpZiAoIXBhcmVudFN0eWxlU2hlZXQpIHsKLSAgICAgICAgU3R5bGVCYXNlKiBw
YXJlbnQgPSBzdHlsZS0+cGFyZW50KCk7Ci0gICAgICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5p
c0NTU1N0eWxlU2hlZXQoKSkgewotICAgICAgICAgICAgcGFyZW50U3R5bGVTaGVldCA9IHN0YXRp
Y19jYXN0PENTU1N0eWxlU2hlZXQqPihwYXJlbnQpOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRT
dHlsZVNoZWV0LT5sZW5ndGgoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAg
fQotICAgIH0KLSAgICByZXR1cm4gcGFyZW50U3R5bGVTaGVldDsKLX0KLQogdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6b25NYXRjaEpvYnNUaW1lcihUaW1lcjxJbnNwZWN0b3JET01BZ2VudD4qKQog
ewogICAgIGlmICghbV9wZW5kaW5nTWF0Y2hKb2JzLnNpemUoKSkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKaW5kZXggZmQzYzViNS4uMDk1N2MwNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xMjEsNyArMTIxLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIGdldElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+KiBzdHlsZXMpOwogICAgICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGUobG9u
ZyBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQg
Z2V0U3R5bGVTaGVldChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHN0eWxlU2hlZXRPYmplY3QpOwotICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMobG9uZyBzdHls
ZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJ1bGVSYW5nZSk7CisgICAgICAgIHZv
aWQgZ2V0U3R5bGVTb3VyY2VEYXRhKGxvbmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4qIGRhdGFPYmplY3QpOwogICAgICAgICB2b2lkIGFwcGx5U3R5bGVUZXh0KGxvbmcgc3R5bGVJ
ZCwgY29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBi
b29sKiBzdWNjZXNzLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZU9iamVjdCwgUmVmUHRy
PEluc3BlY3RvckFycmF5PiogY2hhbmdlZFByb3BlcnRpZXMpOwogICAgICAgICB2b2lkIHNldFN0
eWxlVGV4dChsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCwgYm9vbCogc3VjY2Vz
cyk7CiAgICAgICAgIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShsb25nIHN0eWxlSWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7CkBAIC0xNDYs
NyArMTQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNvcHlOb2RlKGxv
bmcgbm9kZUlkKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0
KiBnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qKTsKICAgICAgICAgdm9p
ZCBzdGFydExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogICAgICAgICB2b2lkIHN0b3BM
aXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66376</attachid>
            <date>2010-09-02 09:07:02 -0700</date>
            <delta_ts>2010-09-03 07:37:36 -0700</delta_ts>
            <desc>[PATCH] Remove unused var</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>59480</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYjhmYjVjLi4wZDY2MDlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTAyICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKaW5kZXgg
ZWY2OWVlNi4uNzI1NzRlYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwpAQCAtMSw3ICsxLDEwIEBACiBi
b2R5IHsKICAgICBmb250LXNpemU6IDEycHg7CisgICAgZm9vOiBiYXIgIQorCisgICAgaW1wb3J0
YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLzsK
IH0KIAotLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBh
ZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8K
Ky8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIg
c2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyogbm90IGFu
ICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8KIAotYm9k
eS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9Citib2R5Lm1haW4ye2JhY2tncm91bmQ6IGdyZWVu
IC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xv
biwgdmVyeSAhaW1wb3J0YW50ICovfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAppbmRleCBkZGE2N2FkLi5jOTYw
ZWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZz
ZXRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDE3IEBACi1UZXN0cyB0aGF0IHByb3Bl
ciBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBydWxlIGJv
ZGllcy4KK1Rlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSBy
ZXBvcnRlZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIAotYm9k
eTogWzUtMjhdCi1ib2R5Lm1haW4xOiBbOTgtMTI0XQotYm9keS5tYWluMjogWzE1MC0xNjldCi1i
b2R5IHsmICAgIGZvbnQtc2l6ZTogMTJweDsmfSYmLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3Ig
Ki9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29s
b3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8mJmJvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW47fSYK
K2JvZHk6IFs2LTExMV0KK1snZm9udC1zaXplJzonMTJweCddIEBbMTEtMjddCitbJ2Zvbyc6J2Jh
cicgIWltcG9ydGFudCBub24tcGFyc2VkXSBAWzMyLTExMF0KK2JvZHkubWFpbjE6IFsxODItMjYz
XQorWydjb2xvcic6JyNGMDBCQUEnXSBAWzE5NS0yMTBdCitbJ3pvbyc6J21vbyAvKiBub3QgYW4g
IWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi8nIG5vbi1wYXJzZWRdIEBbMjEwLTI2
M10KK2JvZHkubWFpbjI6IFsyOTAtMzg1XQorWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUg
IWltcG9ydGFudCBjb21tZW50ICovJyAhaW1wb3J0YW50XSBAWzI5MC0zODVdCitib2R5Lm1haW5w
YWdlOiBbMTctMTQzXQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFsxOS00MV0KK1snYmFk
cHJvcGVydHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzExOC0xNDJdCitlbGVtZW50LnN0
eWxlOiBbMC0zMV0KK1snZm9udC13ZWlnaHQnOidub3JtYWwnXSBAWzAtMjBdCitbJ3dpZHRoJzon
ODAlJ10gQFsyMS0zMV0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy1zb3VyY2Utb2Zmc2V0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3Vy
Y2Utb2Zmc2V0cy5odG1sCmluZGV4IDA1MzM2MTEuLmJkN2Q4NDggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKQEAgLTM1LDU1ICszNSw0
MyBAQCBmdW5jdGlvbiBmcm9udGVuZF9ydW5UZXN0KHRlc3RDb250cm9sbGVyKQogICAgICAgICBm
dW5jdGlvbiBzdHlsZXNDYWxsYmFjayh0ZXN0Q29udHJvbGxlciwgc3R5bGVzKQogICAgICAgICB7
CiAgICAgICAgICAgICB2YXIgbWF0Y2hlZENTU1J1bGVzID0gc3R5bGVzLm1hdGNoZWRDU1NSdWxl
czsKLSAgICAgICAgICAgIHZhciBwYXJlbnRTdHlsZVNoZWV0SWQgPSBtYXRjaGVkQ1NTUnVsZXNb
MF0uc3R5bGUucGFyZW50U3R5bGVTaGVldElkOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRTdHls
ZVNoZWV0SWQpIHsKLSAgICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2go
IkJBRCBTVFlMRVNIRUVUIElEOiAiICsgcGFyZW50U3R5bGVTaGVldElkKTsKLSAgICAgICAgICAg
ICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwot
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgdmFyIHJ1bGUg
PSBtYXRjaGVkQ1NTUnVsZXNbaV07CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5n
ZXRTdHlsZVNvdXJjZURhdGEocnVsZS5zdHlsZS5pZCwgZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2
ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlciwgcnVsZSwgZmFsc2UpKTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0UnVsZVJhbmdlcyhwYXJlbnRTdHls
ZVNoZWV0SWQsIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250
cm9sbGVyLCBwYXJlbnRTdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpOworICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNvdXJjZURhdGEoc3R5bGVzLmlubGluZVN0eWxl
LmlkLCBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVy
LCBzdHlsZXMuaW5saW5lU3R5bGUsIHRydWUpKTsKICAgICAgICAgfQogICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmdldFN0eWxlcyhXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQuYm9keS5p
ZCwgdHJ1ZSwgc3R5bGVzQ2FsbGJhY2suYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwogICAg
IH0pOwogfQogCi1mdW5jdGlvbiBmcm9udGVuZF9ydWxlUmFuZ2VzUmVjZWl2ZWQodGVzdENvbnRy
b2xsZXIsIHN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzLCBydWxlUmFuZ2VzKQorZnVuY3Rp
b24gZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2ZWQodGVzdENvbnRyb2xsZXIsIHJ1bGVPclN0eWxl
LCBzaG91bGRCYWlsLCBkYXRhKQogewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZENT
U1J1bGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBydWxlID0gbWF0Y2hlZENTU1J1bGVz
W2ldOwotICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2gocnVsZS5zZWxlY3RvclRl
eHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLnN0YXJ0ICsg
Ii0iICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2UuZW5kICsgIl0iKTsKKyAg
ICB2YXIgaXNSdWxlID0gISEocnVsZU9yU3R5bGUuc3R5bGUpOworICAgIHRlc3RDb250cm9sbGVy
LnJlc3VsdHMucHVzaCgoaXNSdWxlID8gcnVsZU9yU3R5bGUuc2VsZWN0b3JUZXh0IDogImVsZW1l
bnQuc3R5bGUiKSArICI6IFsiICsgZGF0YS5ib2R5UmFuZ2Uuc3RhcnQgKyAiLSIgKyBkYXRhLmJv
ZHlSYW5nZS5lbmQgKyAiXSIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5wcm9wZXJ0
eURhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb3BlcnR5RGF0dW0gPSBkYXRhLnBy
b3BlcnR5RGF0YVtpXTsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJbJyIg
KyBwcm9wZXJ0eURhdHVtLm5hbWUgKyAiJzonIiArIHByb3BlcnR5RGF0dW0udmFsdWUgKyAiJyIg
KyAocHJvcGVydHlEYXR1bS5pbXBvcnRhbnQgPyAiICFpbXBvcnRhbnQiIDogIiIpICsgKHByb3Bl
cnR5RGF0dW0ucGFyc2VkID8gIiIgOiAiIG5vbi1wYXJzZWQiKSArIl0gQFsiICsgcHJvcGVydHlE
YXR1bS5zdGFydCArICItIiArIHByb3BlcnR5RGF0dW0uZW5kICsgIl0iKTsKICAgICB9Ci0gICAg
SW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgZnJvbnRlbmRfaGFu
ZGxlU3R5bGVTaGVldC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7Ci19Ci0KLWZ1bmN0aW9u
IGZyb250ZW5kX2hhbmRsZVN0eWxlU2hlZXQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXQpCi17
Ci0gICAgdmFyIHVybCA9IHN0eWxlU2hlZXQuaHJlZjsKLSAgICBpZiAodXJsICE9PSAiIikgewot
ICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXBbdXJsXTsK
LSAgICAgICAgaWYgKCFyZXNvdXJjZSkgewotICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVz
dWx0cy5wdXNoKCJOTyBSRVNPVVJDRSBGT1IgVVJMOiAiICsgdXJsKTsKLSAgICAgICAgICAgIHRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmdldFJlc291cmNl
Q29udGVudChyZXNvdXJjZS5pZGVudGlmaWVyLCBmcm9udGVuZF9zdHlsZVNoZWV0VGV4dFJlY2Vp
dmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0
ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIkVNUFRZIFNUWUxFU0hFRVQgSFJFRiIpOworICAg
IGlmIChzaG91bGRCYWlsKQogICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RD
b250cm9sbGVyLnJlc3VsdHMpOwotICAgIH0KIH0KIAotZnVuY3Rpb24gZnJvbnRlbmRfc3R5bGVT
aGVldFRleHRSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldFRleHQpCi17Ci0gICAg
dGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHN0eWxlU2hlZXRUZXh0LnJlcGxhY2UoL1xuL2cs
ICImIikpOwotICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVz
dWx0cyk7Ci19CiA8L3NjcmlwdD4KKworPHN0eWxlPgorCitib2R5Lm1haW5wYWdlIHsKKwl0ZXh0
LWRlY29yYXRpb246IG5vbmU7IC8qIGF0IGxlYXN0IG9uZSB2YWxpZCBwcm9wZXJ0eSBpcyBuZWNl
c3NhcnkgZm9yIFdlYkNvcmUgdG8gbWF0Y2ggYSBydWxlICovCisJYmFkcHJvcGVydHk6IDFiYWR2
YWx1ZTE7Cit9CisKKzwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5IGNsYXNzPSJtYWluMSBtYWlu
MiIgb25sb2FkPSJvbmxvYWQoKSI+Cis8Ym9keSBjbGFzcz0ibWFpbjEgbWFpbjIgbWFpbnBhZ2Ui
IG9ubG9hZD0ib25sb2FkKCkiIHN0eWxlPSJmb250LXdlaWdodDogbm9ybWFsOyB3aWR0aDogODAl
Ij4KIDxwPgotVGVzdHMgdGhhdCBwcm9wZXIgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJl
IHJlcG9ydGVkIGZvciBDU1MgcnVsZSBib2RpZXMuCitUZXN0cyB0aGF0IHByb3BlciBzdGFydC9l
bmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBzdHlsZSBkZWNsYXJhdGlv
bnMgYW5kIHByb3BlcnRpZXMuCiA8L3A+CiAKIDwvYm9keT4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDRiMTVmNC4uMTA4ZjAyNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxMC0wOS0wMiAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFByb3ZpZGUgc291cmNlLWJhc2VkIHByb3BlcnRpZXMgZm9yIHN0eWxlIGRlY2xhcmF0aW9ucyB0
byBDU1NQYXJzZXIgY2xpZW50cy4KKworICAgICAgICBUaGlzIGNoYW5nZToKKyAgICAgICAgLSBF
bmFibGVzIEluc3BlY3RvckNTU1N0b3JlIHRvIGV4dHJhY3QgKGFuZCBjYWNoZSkgQ1NTIHN0eWxl
c2hlZXQgdGV4dCBmb3IgYWxsIHNvdXJjZS1iYXNlZCBzdHlsZXNoZWV0cywKKyAgICAgICAgICBl
dmVuIHdpdGggdGhlIHJlc291cmNlIHRyYWNraW5nIHR1cm5lZCBvZmYuCisgICAgICAgIC0gQWRk
cyB0byBDU1NQYXJzZXIgYSBjYXBhYmlsaXR5IG9mIHNvdXJjZS1yZWxhdGVkIHN0eWxlIGRlY2xh
cmF0aW9uIGRhdGEgZXh0cmFjdGlvbjoKKyAgICAgICAgICAqIERlY2xhcmF0aW9uIGFuZCBDU1Mg
cHJvcGVydHkgc3RhcnQvZW5kIG9mZnNldHMgaW4gdGhlIHNvdXJjZSB0ZXh0IChwYXJlbnQgc3R5
bGVzaGVldCBvciB0aGUgInN0eWxlIiBhdHRyaWJ1dGUgdmFsdWUpLgorICAgICAgICAgICogQ1NT
IHByb3BlcnR5IGRhdGE6IG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgV2ViQ29yZSBwYXJzYWJpbGl0
eSAoaS5lLiBpZiB0aGUgcHJvcGVydHkgaXMgdW5kZXJzdG9vZCBieSBXZWJDb3JlKS4KKyAgICAg
ICAgLSBQcm92aWRlcyB0aGUgZXh0cmFjdGVkIGRhdGEgdG8gdGhlIFdlYkluc3BlY3RvciBmcm9u
dGVuZCB2aWEgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSgpLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ5NDkKKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyYW1tYXIueToKKyAgICAgICAgKiBj
c3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uOjpub2RlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Q1NTUGFyc2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnBhcnNlRGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVh
dGVTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUnVsZUJvZHlT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6ZmluZEltcG9ydGFudEluVmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUHJvcGVydHlFbmQpOgorICAgICAgICAqIGNz
cy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cmVzZXRQcm9wZXJ0
eU1hcmtzKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1bSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0pOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJvcGVydHlEYXR1bTo6aW5pdCk6CisgICAgICAgIChXVEY6Ojo6ZW1wdHlWYWx1ZSk6CisgICAg
ICAgICogY3NzL0NTU1Byb3BlcnR5RGF0dW0uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjp+Q1NTUHJvcGVydHlEYXR1bSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3Bl
cnR5RGF0dW06Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTb3VyY2VE
YXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bUhhc2g6Omhh
c2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bUhhc2g6OmVxdWFsKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6
OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpzdHlsZVNoZWV0
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6cmVzb3VyY2VTdHls
ZVNoZWV0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5l
U3R5bGVTaGVldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6Omdl
dFN0eWxlU291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6
ZXh0cmFjdFJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0
U3R5bGVBdHRyaWJ1dGVSYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3Rv
cmU6OmdldFBhcmVudFN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
U3RvcmU6OmlubGluZVN0eWxlRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5
bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorCiAyMDEwLTA5
LTAyICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAg
UnViYmVyLXN0YW1wZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg5ZjQyMDIuLmNkNzMzOGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC05OTcsNiArOTk3LDggQEAKICAgICAgICAgICAgICdjc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHkuY3BwJywKICAgICAg
ICAgICAgICdjc3MvQ1NTUHJvcGVydHkuaCcsCisgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5
RGF0dW0uY3BwJywKKyAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlEYXR1bS5oJywKICAgICAg
ICAgICAgICdjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9D
U1NQcm9wZXJ0eUxvbmdoYW5kLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NRdWlya1ByaW1pdGl2
ZVZhbHVlLmgnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggM2YyM2NkZC4uYzViYmUyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MzIsNiArNDMyLDcgQEAgU09V
UkNFUyArPSBcCiAgICAgY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgXAogICAgIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NQcm9wZXJ0eS5jcHAgXAorICAgIGNzcy9DU1NQ
cm9wZXJ0eURhdHVtLmNwcCBcCiAgICAgY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwIFwKICAg
ICBjc3MvQ1NTUmVmbGVjdFZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU1J1bGUuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGI3ZTUzMzQuLjZlYzhjODIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjkzNTcsNiArMjkzNTcsMTQgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3Nz
XENTU1Byb3BlcnR5RGF0dW0uY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU1Byb3BlcnR5RGF0dW0uaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9wZXJ0
eUxvbmdoYW5kLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4Yjg4ZWMuLjg4MzkwNDggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDU2LDYgKzE0NTYsOCBAQAog
CQk4MUJFMjBEMzExRjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE4MTFGNEI2NkYwMDkxNURG
QSAvKiBKU0lEQkN1cnNvci5oICovOyB9OwogCQk4MkI2NTg5ODExODlFMzkyMDBFMDUyQTEgLyog
SW5zcGVjdG9yQ1NTU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgyQjY1
ODlBMTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkI2NTg5OTExODlFNDc2MDBFMDUy
QTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovOyB9OworCQk4MkUzRDhERTEyMkVBMEQxMDAz
QUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVy
dHlEYXR1bS5jcHAgKi87IH07CisJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9w
ZXJ0eURhdHVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0MTlEMkE3MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVh
bUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTczODQsNiArNzM4Niw4IEBACiAJCTgxQkUyMEE4MTFGNEI2
NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0lEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkI2NTg5
NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3Jl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNTU1N0
b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJFM0Q4REMxMjJFQTBEMTAw
M0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ1NTUHJvcGVydHlEYXR1bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5RGF0dW0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhC
eXRlU3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE1MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTYxMjBEOTJEMDAwMTQxRjhGIC8qIFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2OTU4LDYgKzE2OTYyLDggQEAKIAkJCQlFMUVEOEFDMjBDQzQ5QkUwMDBCRkM1NTcgLyog
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oICovLAogCQkJCUE4MEU2Q0NEMEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NQcm9wZXJ0eS5jcHAgKi8sCiAJCQkJQTgwRTZDRDUwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU1Byb3BlcnR5LmggKi8sCisJCQkJODJFM0Q4REMxMjJFQTBEMTAwM0FFNUJDIC8qIENT
U1Byb3BlcnR5RGF0dW0uY3BwICovLAorCQkJCTgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBD
U1NQcm9wZXJ0eURhdHVtLmggKi8sCiAJCQkJMEY2RUNENDQwRjI1MkYzNzAwQkRFMjcxIC8qIENT
U1Byb3BlcnR5TG9uZ2hhbmQuY3BwICovLAogCQkJCTBGNkVDRDQzMEYyNTJGMzcwMEJERTI3MSAv
KiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggKi8sCiAJCQkJQkNFQTQ3ODkwOTdDQUFDODAwOTRDOUU0
IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4gKi8sCkBAIC0yMDQzMiw2ICsyMDQzOCw3IEBACiAJCQkJ
ODk4Nzg1QjkxMjJDQTJBNzAwM0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODk4Nzg1RjExMjJFMUU4NzAwM0FBQkRBIC8qIEpTRmlsZUV4Y2VwdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1RjUxMjJFMUVBQzAwM0FBQkRBIC8qIEpTRmlsZVJl
YWRlclN5bmMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAv
KiBDU1NQcm9wZXJ0eURhdHVtLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIyODk1LDYgKzIyOTAyLDcg
QEAKIAkJCQk4OTg3ODVCODEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUYwMTIyRTFFODcwMDNBQUJEQSAvKiBKU0ZpbGVF
eGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1RjQxMjJFMUVBQzAwM0FBQkRB
IC8qIEpTRmlsZVJlYWRlclN5bmMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODJFM0Q4REUxMjJF
QTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkKaW5kZXggZWM1MDdiZS4uNGM0ZGVjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTR3Jh
bW1hci55CisrKyBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAtMzE0LDcgKzMxNCw3IEBA
IHdlYmtpdF9rZXlmcmFtZV9ydWxlOgogOwogCiB3ZWJraXRfZGVjbHM6Ci0gICAgV0VCS0lUX0RF
Q0xTX1NZTSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAnfScgeworICAgIFdFQktJ
VF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlvbiBkZWNsYXJhdGlv
bl9saXN0ICd9JyB7CiAgICAgICAgIC8qIGNhbiBiZSBlbXB0eSAqLwogICAgIH0KIDsKQEAgLTkw
Myw4ICs5MDMsMTUgQEAgdW5hcnlfb3BlcmF0b3I6CiAgIHwgJysnIHsgJCQgPSAxOyB9CiAgIDsK
IAorbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uOgorICAgIG1heWJlX3NwYWNlIHsKKyAg
ICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAg
ICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICB9CisgIDsKKwogcnVsZXNldDoKLSAg
ICBzZWxlY3Rvcl9saXN0ICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlvbl9saXN0IGNsb3Npbmdf
YnJhY2UgeworICAgIHNlbGVjdG9yX2xpc3QgJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJh
dGlvbiBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgewogICAgICAgICBDU1NQYXJzZXIq
IHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwogICAgICAgICAkJCA9IHAtPmNy
ZWF0ZVN0eWxlUnVsZSgkMSk7CiAgICAgfQpAQCAtMTM1NSw2ICsxMzYyLDggQEAgZGVjbGFyYXRp
b25fbGlzdDoKIAogZGVjbF9saXN0OgogICAgIGRlY2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7
CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7
CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gJDE7CiAgICAg
fQogICAgIHwgZGVjbGFyYXRpb24gaW52YWxpZF9ibG9ja19saXN0IG1heWJlX3NwYWNlIHsKQEAg
LTEzNjQsMTIgKzEzNzMsMTYgQEAgZGVjbF9saXN0OgogICAgICAgICAkJCA9IGZhbHNlOwogICAg
IH0KICAgICB8IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9
IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0
eVN0YXJ0KCk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwgZXJyb3IgaW52YWxp
ZF9ibG9ja19saXN0IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CiAgICAgICAgICQkID0gZmFsc2U7
CiAgICAgfQogICAgIHwgZGVjbF9saXN0IGRlY2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7Cisg
ICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7Cisg
ICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gJDE7CiAgICAgICAg
IGlmICgkMikKICAgICAgICAgICAgICQkID0gJDI7CkBAIC0xMzg2LDE1ICsxMzk5LDIxIEBAIGRl
Y2xhcmF0aW9uOgogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8gewogICAg
ICAgICAkJCA9IGZhbHNlOwogICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQ
YXJzZXIqPihwYXJzZXIpOworICAgICAgICBib29sIGlzUHJvcGVydHlQYXJzZWQgPSBmYWxzZTsK
ICAgICAgICAgaWYgKCQxICYmICQ0KSB7CiAgICAgICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IHAt
PnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7CiAgICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJv
cGVydGllcyA9IHAtPm1fbnVtUGFyc2VkUHJvcGVydGllczsKICAgICAgICAgICAgICQkID0gcC0+
cGFyc2VWYWx1ZSgkMSwgJDUpOwotICAgICAgICAgICAgaWYgKCEkJCkKKyAgICAgICAgICAgIGlm
ICghJCQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8aW50PihwLT5tX251bVBh
cnNlZFByb3BlcnRpZXMpID09IG9sZFBhcnNlZFByb3BlcnRpZXMpCisgICAgICAgICAgICAgICAg
ICAgIGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgIHAtPnJvbGxiYWNr
TGFzdFByb3BlcnRpZXMocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzIC0gb2xkUGFyc2VkUHJvcGVy
dGllcyk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBpc1Byb3BlcnR5UGFy
c2VkID0gdHJ1ZTsKICAgICAgICAgICAgIGRlbGV0ZSBwLT5tX3ZhbHVlTGlzdDsKICAgICAgICAg
ICAgIHAtPm1fdmFsdWVMaXN0ID0gMDsKICAgICAgICAgfQorICAgICAgICBwLT5tYXJrUHJvcGVy
dHlFbmQoJDUsIGlzUHJvcGVydHlQYXJzZWQpOwogICAgIH0KICAgICB8CiAgICAgdmFyaWFibGVf
cmVmZXJlbmNlIG1heWJlX3NwYWNlIHsKQEAgLTE0MTcsMTEgKzE0MzYsMTUgQEAgZGVjbGFyYXRp
b246CiAgICAgICAgIC8qIFRoZSBkZWZhdWx0IG1vdmFibGUgdHlwZSB0ZW1wbGF0ZSBoYXMgbGV0
dGVyLXNwYWNpbmc6IC5ub25lOyAgSGFuZGxlIHRoaXMgYnkgbG9va2luZyBmb3IKICAgICAgICAg
ZXJyb3IgdG9rZW5zIGF0IHRoZSBzdGFydCBvZiBhbiBleHByLCByZWNvdmVyIHRoZSBleHByIGFu
ZCB0aGVuIHRyZWF0IGFzIGFuIGVycm9yLCBjbGVhbmluZwogICAgICAgICB1cCBhbmQgZGVsZXRp
bmcgdGhlIHNoaWZ0ZWQgZXhwci4gICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19j
YXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxz
ZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CiAgICAgcHJvcGVy
dHkgJzonIG1heWJlX3NwYWNlIGV4cHIgcHJpbyBlcnJvciB7CiAgICAgICAgIC8qIFdoZW4gd2Ug
ZW5jb3VudGVyIHNvbWV0aGluZyBsaWtlIHAge2NvbG9yOiByZWQgIWltcG9ydGFudCBmYWlsO30g
d2Ugc2hvdWxkIGRyb3AgdGhlIGRlY2xhcmF0aW9uICovCisgICAgICAgIENTU1BhcnNlciogcCA9
IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0
eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CkBA
IC0xNDMyLDExICsxNDU1LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgIHwKICAgICBwcm9wZXJ0eSAn
OicgbWF5YmVfc3BhY2UgewogICAgICAgICAvKiBkaXYgeyBmb250LWZhbWlseTogfSBKdXN0IHJl
ZHVjZSBhd2F5IHRoaXMgcHJvcGVydHkgd2l0aCBubyB2YWx1ZS4gKi8KKyAgICAgICAgQ1NTUGFy
c2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFy
a1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQog
ICAgIHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXJyb3IgewogICAgICAgICAvKiBp
ZiB3ZSBjb21lIGFjcm9zcyBydWxlcyB3aXRoIGludmFsaWQgdmFsdWVzIGxpa2UgdGhpcyBjYXNl
OiBwIHsgd2VpZ2h0OiAqOyB9LCBqdXN0IGRpc2NhcmQgdGhlIHJ1bGUgKi8KKyAgICAgICAgQ1NT
UGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+
bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAg
fQogICAgIHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uLmggYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IGY3
NzU5ZjQuLjQwNmZkOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5vZGUoTm9kZSogbm9k
ZSkgeyBtX25vZGUgPSBub2RlOyB9CiAKKyAgICBOb2RlKiBub2RlKCkgeyByZXR1cm4gbV9ub2Rl
OyB9CisKICAgICB2aXJ0dWFsIGJvb2wgaXNNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCmluZGV4IDY4NzIzNWYuLjc0ODEyNjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTQ3LDcg
KzE0NywxMCBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAgICAg
LCBtX2RlZmF1bHROYW1lc3BhY2Uoc3RhckF0b20pCiAgICAgLCBtX3J1bGVCb2R5U3RhcnRPZmZz
ZXQoMCkKICAgICAsIG1fcnVsZUJvZHlFbmRPZmZzZXQoMCkKLSAgICAsIG1fcnVsZVJhbmdlcygw
KQorICAgICwgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0KFVJTlRfTUFYKQorICAgICwgbV9wcm9wZXJ0
eUVuZE9mZnNldChVSU5UX01BWCkKKyAgICAsIG1fcnVsZVJhbmdlTWFwKDApCisgICAgLCBtX2N1
cnJlbnRTdHlsZURhdGEoMCkKICAgICAsIG1fZGF0YSgwKQogICAgICwgeXlfc3RhcnQoMSkKICAg
ICAsIG1fbGluZU51bWJlcigwKQpAQCAtMTU5LDYgKzE2Miw3IEBAIENTU1BhcnNlcjo6Q1NTUGFy
c2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICNpZiBZWURFQlVHID4gMAogICAgIGNzc3l5ZGVidWcg
PSAxOwogI2VuZGlmCisgICAgQ1NTUHJvcGVydHlEYXR1bTo6aW5pdCgpOwogfQogCiBDU1NQYXJz
ZXI6On5DU1NQYXJzZXIoKQpAQCAtMjIzLDE2ICsyMjcsMTkgQEAgdm9pZCBDU1NQYXJzZXI6OnNl
dHVwUGFyc2VyKGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGNvbnN0
IGNoYXIKICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsKIH0KIAotdm9pZCBDU1NQYXJzZXI6OnBh
cnNlU2hlZXQoQ1NTU3R5bGVTaGVldCogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQg
c3RhcnRMaW5lTnVtYmVyLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1bGVSYW5nZU1hcCkKK3ZvaWQgQ1NT
UGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNoZWV0LCBjb25zdCBTdHJpbmcmIHN0
cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1h
cCkKIHsKICAgICBtX3N0eWxlU2hlZXQgPSBzaGVldDsKICAgICBtX2RlZmF1bHROYW1lc3BhY2Ug
PSBzdGFyQXRvbTsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgbmFtZXNwYWNlLgotICAgIG1fcnVsZVJh
bmdlcyA9IHJ1bGVSYW5nZU1hcDsKKyAgICBtX3J1bGVSYW5nZU1hcCA9IHJ1bGVSYW5nZU1hcDsK
KyAgICBpZiAocnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSBDU1NT
dHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOwogCiAgICAgbV9saW5lTnVtYmVyID0gc3RhcnRMaW5l
TnVtYmVyOwogICAgIHNldHVwUGFyc2VyKCIiLCBzdHJpbmcsICIiKTsKICAgICBjc3N5eXBhcnNl
KHRoaXMpOwotICAgIG1fcnVsZVJhbmdlcyA9IDA7CisgICAgbV9ydWxlUmFuZ2VNYXAgPSAwOwor
ICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgbV9ydWxlID0gMDsKIH0KIApAQCAtMzI5
LDEwICszMzYsMTQgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2VsZWN0b3IoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIERvY3VtZW50KiBkb2MsIENTU1NlbGVjdG9yTGkKICAgICBtX3NlbGVjdG9yTGlz
dEZvclBhcnNlU2VsZWN0b3IgPSAwOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VEZWNsYXJh
dGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbGFyYXRpb24sIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZywgQ1NTU3R5
bGVTb3VyY2VEYXRhKiBzdHlsZVNvdXJjZURhdGEpCiB7CisgICAgLy8gTGVuZ3RoIG9mIHRoZSAi
QC13ZWJraXQtZGVjbHN7IiBwcmVmaXgKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcHJlZml4
TGVuZ3RoID0gMTU7CisKICAgICBBU1NFUlQoIWRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkgfHwg
ZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKS0+aXNDU1NTdHlsZVNoZWV0KCkpOwogICAgIG1fc3R5
bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihkZWNsYXJhdGlvbi0+c3R5bGVz
aGVldCgpKTsKKyAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSBzdHlsZVNvdXJjZURhdGE7CiAKICAg
ICBzZXR1cFBhcnNlcigiQC13ZWJraXQtZGVjbHN7Iiwgc3RyaW5nLCAifSAiKTsKICAgICBjc3N5
eXBhcnNlKHRoaXMpOwpAQCAtMzQ3LDYgKzM1OCwxNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VE
ZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbGFyYXRpb24sIGNvbnN0
CiAgICAgICAgIGNsZWFyUHJvcGVydGllcygpOwogICAgIH0KIAorICAgIGlmIChtX2N1cnJlbnRT
dHlsZURhdGEpIHsKKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5zdHlsZUJvZHlSYW5nZS5m
aXJzdCA9IDA7CisgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc2Vj
b25kID0gc3RyaW5nLmxlbmd0aCgpOworICAgICAgICBmb3IgKFZlY3RvcjxzdGQ6OnBhaXI8Q1NT
UHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID46Oml0ZXJhdG9yIGl0ID0gbV9jdXJyZW50U3R5
bGVEYXRhLT5wcm9wZXJ0eURhdGEuYmVnaW4oKTsgaXQgIT0gbV9jdXJyZW50U3R5bGVEYXRhLT5w
cm9wZXJ0eURhdGEuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgICgqaXQpLnNlY29uZC5maXJz
dCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgICAgICAoKml0KS5zZWNvbmQuc2Vjb25kIC09IHBy
ZWZpeExlbmd0aDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghbV9ydWxlUmFuZ2VNYXAp
CisgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgcmV0dXJuIG9rOwogfQogCkBA
IC01Mzg0LDggKzU0MDYsMTIgQEAgQ1NTUnVsZSogQ1NTUGFyc2VyOjpjcmVhdGVTdHlsZVJ1bGUo
VmVjdG9yPENTU1NlbGVjdG9yKj4qIHNlbGVjdG9ycykKICAgICAgICAgcnVsZS0+c2V0RGVjbGFy
YXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZShydWxlLmdldCgpLCBtX3Bh
cnNlZFByb3BlcnRpZXMsIG1fbnVtUGFyc2VkUHJvcGVydGllcykpOwogICAgICAgICByZXN1bHQg
PSBydWxlLmdldCgpOwogICAgICAgICBtX3BhcnNlZFN0eWxlT2JqZWN0cy5hcHBlbmQocnVsZS5y
ZWxlYXNlKCkpOwotICAgICAgICBpZiAobV9ydWxlUmFuZ2VzKQotICAgICAgICAgICAgbV9ydWxl
UmFuZ2VzLT5zZXQocmVzdWx0LCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPihtX3J1bGVC
b2R5U3RhcnRPZmZzZXQsIG1fcnVsZUJvZHlFbmRPZmZzZXQpKTsKKyAgICAgICAgaWYgKG1fcnVs
ZVJhbmdlTWFwKSB7CisgICAgICAgICAgICBBU1NFUlQobV9jdXJyZW50U3R5bGVEYXRhKTsKKyAg
ICAgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2UgPSBTb3VyY2VSYW5n
ZShtX3J1bGVCb2R5U3RhcnRPZmZzZXQsIG1fcnVsZUJvZHlFbmRPZmZzZXQpOworICAgICAgICAg
ICAgbV9ydWxlUmFuZ2VNYXAtPnNldChyZXN1bHQsIG1fY3VycmVudFN0eWxlRGF0YS5yZWxlYXNl
KCkpOworICAgICAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRh
OjpjcmVhdGUoKTsKKyAgICAgICAgfQogICAgIH0KICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsK
ICAgICBjbGVhclByb3BlcnRpZXMoKTsKQEAgLTU2MzgsNyArNTY2NCw5IEBAIHZvaWQgQ1NTUGFy
c2VyOjp1cGRhdGVMYXN0U2VsZWN0b3JMaW5lQW5kUG9zaXRpb24oKQogdm9pZCBDU1NQYXJzZXI6
Om1hcmtSdWxlQm9keVN0YXJ0KCkKIHsKICAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBt
X2RhdGE7Ci0gICAgaWYgKCFtX3J1bGVCb2R5U3RhcnRPZmZzZXQgfHwgb2Zmc2V0IDwgbV9ydWxl
Qm9keVN0YXJ0T2Zmc2V0KQorICAgIGlmICgqeXl0ZXh0ID09ICd7JykKKyAgICAgICAgKytvZmZz
ZXQ7IC8vIHNraXAgdGhlIHJ1bGUgYm9keSBvcGVuaW5nIGJyYWNlCisgICAgaWYgKG9mZnNldCA+
IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKICAgICAgICAgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0ID0g
b2Zmc2V0OwogfQogCkBAIC01NjQ5LDYgKzU2NzcsMTA3IEBAIHZvaWQgQ1NTUGFyc2VyOjptYXJr
UnVsZUJvZHlFbmQoKQogICAgICAgICBtX3J1bGVCb2R5RW5kT2Zmc2V0ID0gb2Zmc2V0OwogfQog
Cit2b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5U3RhcnQoKQoreworICAgIHVuc2lnbmVkIG9m
ZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBtX3Byb3BlcnR5U3RhcnRPZmZzZXQgPSBvZmZz
ZXQ7Cit9CisKKy8vIHN0YXRpYwordW5zaWduZWQgQ1NTUGFyc2VyOjpmaW5kSW1wb3J0YW50SW5W
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3Ry
aW5nLCBJbXBvcnRhbnQsICgiaW1wb3J0YW50IikpOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBpbXBvcnRhbnRMZW5ndGggPSA5OworCisgICAgVmVjdG9yPFNvdXJjZVJhbmdlPiBjb21tZW50
UmFuZ2VzOworICAgIHVuc2lnbmVkIHNlYXJjaFN0YXJ0SW5kZXggPSAwOworCisgICAgLy8gQ29s
bGVjdCBjb21tZW50IHJhbmdlcy4KKyAgICB3aGlsZSAoc2VhcmNoU3RhcnRJbmRleCA8IHZhbHVl
Lmxlbmd0aCgpKSB7CisgICAgICAgIHNpemVfdCBjb21tZW50U3RhcnQgPSB2YWx1ZS5maW5kKCIv
KiIsIHNlYXJjaFN0YXJ0SW5kZXgsIHRydWUpOworICAgICAgICBpZiAoY29tbWVudFN0YXJ0ICE9
IG5vdEZvdW5kKSB7CisgICAgICAgICAgICBzaXplX3QgY29tbWVudEVuZCA9IHZhbHVlLmZpbmQo
IiovIiwgY29tbWVudFN0YXJ0ICsgMiwgdHJ1ZSk7CisgICAgICAgICAgICBBU1NFUlQoY29tbWVu
dEVuZCAhPSBub3RGb3VuZCk7CisgICAgICAgICAgICBjb21tZW50UmFuZ2VzLmFwcGVuZChTb3Vy
Y2VSYW5nZShjb21tZW50U3RhcnQsIGNvbW1lbnRFbmQgKyAyKSk7CisgICAgICAgICAgICBzZWFy
Y2hTdGFydEluZGV4ID0gY29tbWVudEVuZCArIDI7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgc2VhcmNoU3RhcnRJbmRleCA9IFVJTlRfTUFYOworICAgIH0KKworICAgIHVuc2lnbmVkIG5v
bkNvbW1lbnRSYW5nZVN0YXJ0ID0gMTsKKyAgICB1bnNpZ25lZCB2YWx1ZUxlbmd0aCA9IHZhbHVl
Lmxlbmd0aCgpOworICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gdmFsdWUuY2hhcmFjdGVy
cygpOworICAgIHNlYXJjaFN0YXJ0SW5kZXggPSAwOworCisgICAgLy8gRmluZCAiaW1wb3J0YW50
IiBvdXRzaWRlIG9mIGNvbW1lbnQgcmFuZ2VzLgorICAgIFZlY3RvcjxTb3VyY2VSYW5nZT46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gY29tbWVudFJhbmdlcy5iZWdpbigpOworICAgIHdoaWxlIChzZWFy
Y2hTdGFydEluZGV4IDwgdmFsdWVMZW5ndGgpIHsKKyAgICAgICAgc2l6ZV90IGltcG9ydGFudFdv
cmRTdGFydCA9IHZhbHVlLmZpbmQoSW1wb3J0YW50LCBzZWFyY2hTdGFydEluZGV4LCB0cnVlKTsK
KyAgICAgICAgaWYgKGltcG9ydGFudFdvcmRTdGFydCA9PSBub3RGb3VuZCkKKyAgICAgICAgICAg
IHJldHVybiBVSU5UX01BWDsKKworICAgICAgICBpZiAoaXQgIT0gY29tbWVudFJhbmdlcy5lbmQo
KSAmJiBpbXBvcnRhbnRXb3JkU3RhcnQgPiAoKml0KS5maXJzdCAmJiBpbXBvcnRhbnRXb3JkU3Rh
cnQgPCAoKml0KS5zZWNvbmQpIHsKKyAgICAgICAgICAgIHNlYXJjaFN0YXJ0SW5kZXggPSAoKml0
KS5zZWNvbmQ7CisgICAgICAgICAgICArK2l0OworICAgICAgICB9IGVsc2UgeyAvLyBmaW5kIHBy
ZWNlZGluZyAnIScKKyAgICAgICAgICAgIEFTU0VSVChpbXBvcnRhbnRXb3JkU3RhcnQgPiAxKTsK
KyAgICAgICAgICAgIHVuc2lnbmVkIGV4Y2xhbWF0aW9uT2Zmc2V0ID0gaW1wb3J0YW50V29yZFN0
YXJ0OworICAgICAgICAgICAgd2hpbGUgKC0tZXhjbGFtYXRpb25PZmZzZXQgPj0gbm9uQ29tbWVu
dFJhbmdlU3RhcnQpIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNoYXJhY3RlcnNbZXhjbGFt
YXRpb25PZmZzZXRdKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnISc6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBleGNsYW1hdGlvbk9mZnNldDsKKyAgICAgICAgICAgICAgICBjYXNlICcg
JzoKKyAgICAgICAgICAgICAgICBjYXNlICdcdCc6CisgICAgICAgICAgICAgICAgY2FzZSAnXHIn
OgorICAgICAgICAgICAgICAgIGNhc2UgJ1xuJzoKKyAgICAgICAgICAgICAgICBjYXNlICdcZic6
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgICAgIHNlYXJjaFN0YXJ0SW5kZXggPSBpbXBvcnRhbnRXb3JkU3RhcnQg
KyBpbXBvcnRhbnRMZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gVUlO
VF9NQVg7Cit9CisKK3ZvaWQgQ1NTUGFyc2VyOjptYXJrUHJvcGVydHlFbmQoYm9vbCBpc0ltcG9y
dGFudEZvdW5kLCBib29sIGlzUHJvcGVydHlQYXJzZWQpCit7CisgICAgdW5zaWduZWQgb2Zmc2V0
ID0geXl0ZXh0IC0gbV9kYXRhOworICAgIGlmICgqeXl0ZXh0ID09ICc7JykgLy8gaW5jbHVkZSBz
ZW1pY29sb24gaW50byB0aGUgcHJvcGVydHkgdGV4dAorICAgICAgICArK29mZnNldDsKKyAgICBt
X3Byb3BlcnR5RW5kT2Zmc2V0ID0gb2Zmc2V0OworICAgIGlmIChtX3Byb3BlcnR5U3RhcnRPZmZz
ZXQgIT0gVUlOVF9NQVggJiYgbV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIC8vIFRoaXMg
c3R1ZmYgaXMgb25seSBleGVjdXRlZCB3aGVuIHRoZSBzdHlsZSBkYXRhIHJldHJpZXZhbCBpcyBy
ZXF1ZXN0ZWQgYnkgY2xpZW50LgorICAgICAgICBTb3VyY2VSYW5nZSBwcm9wZXJ0eVJhbmdlID0g
U291cmNlUmFuZ2UobV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0LCBtX3Byb3BlcnR5RW5kT2Zmc2V0KTsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQmIHN0YXJ0ID0gbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0Owor
ICAgICAgICBjb25zdCB1bnNpZ25lZCYgZW5kID0gbV9wcm9wZXJ0eUVuZE9mZnNldDsKKyAgICAg
ICAgQVNTRVJUKHN0YXJ0IDwgZW5kKTsKKyAgICAgICAgU3RyaW5nIHByb3BlcnR5U3RyaW5nID0g
U3RyaW5nKG1fZGF0YSArIHN0YXJ0LCBlbmQgLSBzdGFydCkuc3RyaXBXaGl0ZVNwYWNlKCk7Cisg
ICAgICAgIGlmIChwcm9wZXJ0eVN0cmluZy5lbmRzV2l0aCgiOyIsIHRydWUpKQorICAgICAgICAg
ICAgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eVN0cmluZy5sZWZ0KHByb3BlcnR5U3RyaW5nLmxl
bmd0aCgpIC0gMSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHByb3BlcnR5Q29tcG9uZW50czsK
KyAgICAgICAgc2l6ZV90IGNvbG9uSW5kZXggPSBwcm9wZXJ0eVN0cmluZy5maW5kKCI6Iik7Cisg
ICAgICAgIEFTU0VSVChjb2xvbkluZGV4ICE9IG5vdEZvdW5kKTsKKworICAgICAgICBTdHJpbmcg
bmFtZSA9IHByb3BlcnR5U3RyaW5nLmxlZnQoY29sb25JbmRleCkuc3RyaXBXaGl0ZVNwYWNlKCk7
CisgICAgICAgIFN0cmluZyB2YWx1ZSA9IHByb3BlcnR5U3RyaW5nLnN1YnN0cmluZyhjb2xvbklu
ZGV4ICsgMSwgcHJvcGVydHlTdHJpbmcubGVuZ3RoKCkpLnN0cmlwV2hpdGVTcGFjZSgpOworICAg
ICAgICBib29sIGlzSW1wb3J0YW50ID0gaXNJbXBvcnRhbnRGb3VuZDsKKyAgICAgICAgaWYgKGlz
SW1wb3J0YW50IHx8ICFpc1Byb3BlcnR5UGFyc2VkKSB7CisgICAgICAgICAgICAvLyBOZWVkIHRv
IHN0cmlwICIhe3d9aW1wb3J0YW50IiAod2l0aCB0aGUgZm9sbG93aW5nIHRleHQpIGlmIHRoZXJl
J3MgYSBjaGFuY2UgdGhhdCBpdCBpcyBwcmVzZW50IGluIHRoZSB2YWx1ZS4KKyAgICAgICAgICAg
IHVuc2lnbmVkIGltcG9ydGFudE9mZnNldCA9IGZpbmRJbXBvcnRhbnRJblZhbHVlKHZhbHVlKTsK
KyAgICAgICAgICAgIGlmIChpbXBvcnRhbnRPZmZzZXQgIT0gVUlOVF9NQVgpIHsKKyAgICAgICAg
ICAgICAgICBpc0ltcG9ydGFudCA9IHRydWU7CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1
ZS5sZWZ0KGltcG9ydGFudE9mZnNldCkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5wcm9wZXJ0eURhdGEuYXBw
ZW5kKHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4oQ1NTUHJvcGVydHlE
YXR1bShuYW1lLCB2YWx1ZSwgaXNJbXBvcnRhbnQsIGlzUHJvcGVydHlQYXJzZWQpLCBwcm9wZXJ0
eVJhbmdlKSk7CisgICAgfQorICAgIHJlc2V0UHJvcGVydHlNYXJrcygpOworfQorCisKIHN0YXRp
YyBpbnQgY3NzUHJvcGVydHlJRChjb25zdCBVQ2hhciogcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBs
ZW5ndGgpCiB7CiAgICAgaWYgKCFsZW5ndGgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDYyMTFlNjIuLjM1N2E5Y2Ug
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1
ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5RGF0dW0uaCIKICNp
bmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5LmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU1LDE4ICs1NiwxNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBDU1NQYXJzZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRl
ZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+ID4g
U3R5bGVSdWxlUmFuZ2VzOwotCiAgICAgICAgIENTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcg
PSB0cnVlKTsKICAgICAgICAgfkNTU1BhcnNlcigpOwogCi0gICAgICAgIHZvaWQgcGFyc2VTaGVl
dChDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJlciA9IDAs
IFN0eWxlUnVsZVJhbmdlcyogcnVsZVJhbmdlTWFwID0gMCk7CisgICAgICAgIHZvaWQgcGFyc2VT
aGVldChDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJiwgaW50IHN0YXJ0TGluZU51bWJlciA9
IDAsIFN0eWxlUnVsZVJhbmdlTWFwKiBydWxlUmFuZ2VNYXAgPSAwKTsKICAgICAgICAgUGFzc1Jl
ZlB0cjxDU1NSdWxlPiBwYXJzZVJ1bGUoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYpOwog
ICAgICAgICBQYXNzUmVmUHRyPENTU1J1bGU+IHBhcnNlS2V5ZnJhbWVSdWxlKENTU1N0eWxlU2hl
ZXQqLCBjb25zdCBTdHJpbmcmKTsKICAgICAgICAgYm9vbCBwYXJzZVZhbHVlKENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uKiwgaW50IHByb3BJZCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRh
bnQpOwogICAgICAgICBzdGF0aWMgYm9vbCBwYXJzZUNvbG9yKFJHQkEzMiYgY29sb3IsIGNvbnN0
IFN0cmluZyYsIGJvb2wgc3RyaWN0ID0gZmFsc2UpOwogICAgICAgICBib29sIHBhcnNlQ29sb3Io
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmKTsKLSAgICAgICAgYm9v
bCBwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgU3Ry
aW5nJik7CisgICAgICAgIGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbiosIGNvbnN0IFN0cmluZyYsIENTU1N0eWxlU291cmNlRGF0YSogc3R5bGVTb3VyY2VE
YXRhID0gMCk7CiAgICAgICAgIGJvb2wgcGFyc2VNZWRpYVF1ZXJ5KE1lZGlhTGlzdCosIGNvbnN0
IFN0cmluZyYpOwogCiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwpAQCAtMjQ0
LDEwICsyNDMsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyB0b2tlbml6ZXIg
bWV0aG9kcyBhbmQgZGF0YQogICAgICAgICB1bnNpZ25lZCBtX3J1bGVCb2R5U3RhcnRPZmZzZXQ7
CiAgICAgICAgIHVuc2lnbmVkIG1fcnVsZUJvZHlFbmRPZmZzZXQ7Ci0gICAgICAgIFN0eWxlUnVs
ZVJhbmdlcyogbV9ydWxlUmFuZ2VzOworICAgICAgICB1bnNpZ25lZCBtX3Byb3BlcnR5U3RhcnRP
ZmZzZXQ7CisgICAgICAgIHVuc2lnbmVkIG1fcHJvcGVydHlFbmRPZmZzZXQ7CisgICAgICAgIFN0
eWxlUnVsZVJhbmdlTWFwKiBtX3J1bGVSYW5nZU1hcDsKKyAgICAgICAgUmVmUHRyPENTU1N0eWxl
U291cmNlRGF0YT4gbV9jdXJyZW50U3R5bGVEYXRhOwogICAgICAgICB2b2lkIG1hcmtSdWxlQm9k
eVN0YXJ0KCk7CiAgICAgICAgIHZvaWQgbWFya1J1bGVCb2R5RW5kKCk7CisgICAgICAgIHZvaWQg
bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICAgICAgdm9pZCBtYXJrUHJvcGVydHlFbmQoYm9vbCBp
c0ltcG9ydGFudEZvdW5kLCBib29sIGlzUHJvcGVydHlQYXJzZWQpOwogICAgICAgICB2b2lkIHJl
c2V0UnVsZUJvZHlNYXJrcygpIHsgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0ID0gbV9ydWxlQm9keUVu
ZE9mZnNldCA9IDA7IH0KKyAgICAgICAgdm9pZCByZXNldFByb3BlcnR5TWFya3MoKSB7IG1fcHJv
cGVydHlTdGFydE9mZnNldCA9IG1fcHJvcGVydHlFbmRPZmZzZXQgPSBVSU5UX01BWDsgfQorICAg
ICAgICBzdGF0aWMgdW5zaWduZWQgZmluZEltcG9ydGFudEluVmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSk7CiAgICAgICAgIGludCBsZXgodm9pZCogeXlsdmFsKTsKICAgICAgICAgaW50IHRva2Vu
KCkgeyByZXR1cm4geXlUb2s7IH0KICAgICAgICAgVUNoYXIqIHRleHQoaW50KiBsZW5ndGgpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAgYi9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eURhdHVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43ZGI1NDc3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1
bS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZmRlZiBTS0lQ
X1NUQVRJQ19DT05TVFJVQ1RPUlNfT05fR0NDCisjZGVmaW5lIENTU1BST1BFUlRZREFUVU1fSElE
RV9HTE9CQUxTIDEKKyNlbmRpZgorCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgorCisj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvU3RhdGljQ29uc3RydWN0
b3JzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJv
cGVydHlEYXR1bShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wg
aW1wb3J0YW50LCBib29sIHBhcnNlZCkKKyAgICA6IG5hbWUobmFtZSkKKyAgICAsIHZhbHVlKHZh
bHVlKQorICAgICwgaW1wb3J0YW50KGltcG9ydGFudCkKKyAgICAsIHBhcnNlZChwYXJzZWQpCit7
Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06OkNTU1Byb3BlcnR5RGF0dW0oY29uc3QgQ1NTUHJvcGVy
dHlEYXR1bSYgb3RoZXIpCisgICAgOiBuYW1lKG90aGVyLm5hbWUpCisgICAgLCB2YWx1ZShvdGhl
ci52YWx1ZSkKKyAgICAsIGltcG9ydGFudChvdGhlci5pbXBvcnRhbnQpCisgICAgLCBwYXJzZWQo
b3RoZXIucGFyc2VkKQoreworfQorCitDU1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVt
KCkKKyAgICA6IG5hbWUoIiIpCisgICAgLCB2YWx1ZSgiIikKKyAgICAsIGltcG9ydGFudChmYWxz
ZSkKKyAgICAsIHBhcnNlZChmYWxzZSkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bSYgQ1NTUHJv
cGVydHlEYXR1bTo6b3BlcmF0b3I9KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKQorewor
ICAgIG5hbWUgPSBvdGhlci5uYW1lOworICAgIHZhbHVlID0gb3RoZXIudmFsdWU7CisgICAgaW1w
b3J0YW50ID0gb3RoZXIuaW1wb3J0YW50OworICAgIHBhcnNlZCA9IG90aGVyLnBhcnNlZDsKKyAg
ICByZXR1cm4gKnRoaXM7Cit9CisKK1N0cmluZyBDU1NQcm9wZXJ0eURhdHVtOjp0b1N0cmluZygp
IGNvbnN0Cit7CisgICAgaWYgKCFuYW1lICYmIHZhbHVlID09ICJlIikKKyAgICAgICAgcmV0dXJu
IFN0cmluZygpOworCisgICAgU3RyaW5nIHJlc3VsdCA9IG5hbWU7CisgICAgcmVzdWx0ICs9ICI6
ICI7CisgICAgcmVzdWx0ICs9IHZhbHVlOworICAgIGlmIChpbXBvcnRhbnQpCisgICAgICAgIHJl
c3VsdCArPSAiICFpbXBvcnRhbnQiOworICAgIHJlc3VsdCArPSAiOyI7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworLy8gR2xvYmFsIGluaXQgcm91dGluZXMKK0RFRklORV9HTE9CQUwoQ1NTUHJv
cGVydHlEYXR1bSwgZW1wdHlDU1NQcm9wZXJ0eURhdHVtLCAiIiwgImUiLCBmYWxzZSwgZmFsc2Up
CisKKy8vIHN0YXRpYwordm9pZCBDU1NQcm9wZXJ0eURhdHVtOjppbml0KCkKK3sKKyAgICBzdGF0
aWMgYm9vbCBpbml0aWFsaXplZDsKKyAgICBpZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAgIG5l
dyAoKHZvaWQgKikgJmVtcHR5Q1NTUHJvcGVydHlEYXR1bSkgQ1NTUHJvcGVydHlEYXR1bSgiIiwg
ImUiLCBmYWxzZSwgZmFsc2UpOworICAgICAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKworbmFtZXNwYWNlIFdURiB7CisKK1dlYkNv
cmU6OkNTU1Byb3BlcnR5RGF0dW0gSGFzaFRyYWl0czxXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVt
Pjo6ZW1wdHlWYWx1ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eURhdHVtLCBlbXB0eUhhc2hWYWx1ZSwgKCIiLCAiaCIsIGZhbHNlLCBmYWxzZSkpOwor
ICAgIHJldHVybiBlbXB0eUhhc2hWYWx1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmggYi9XZWJDb3JlL2Nzcy9DU1NQ
cm9wZXJ0eURhdHVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3Yjc5
YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaApAQCAt
MCwwICsxLDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgQ1NTUHJvcGVydHlEYXR1bV9oCisjZGVmaW5lIENTU1Byb3Bl
cnR5RGF0dW1faAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx1dGls
aXR5PgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBDU1NTdHlsZVJ1bGU7CisKK3R5cGVkZWYgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNp
Z25lZD4gU291cmNlUmFuZ2U7CisKK3N0cnVjdCBDU1NQcm9wZXJ0eURhdHVtIHsKKyAgICBzdGF0
aWMgdm9pZCBpbml0KCk7CisKKyAgICBDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKTsKKyAg
ICBDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKTsKKyAgICBD
U1NQcm9wZXJ0eURhdHVtKCk7CisgICAgQUxXQVlTX0lOTElORSB+Q1NTUHJvcGVydHlEYXR1bSgp
IHsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVy
KSBjb25zdCB7IHJldHVybiBuYW1lID09IG90aGVyLm5hbWUgJiYgdmFsdWUgPT0gb3RoZXIudmFs
dWUgJiYgaW1wb3J0YW50ID09IG90aGVyLmltcG9ydGFudCAmJiBwYXJzZWQgPT0gb3RoZXIucGFy
c2VkOyB9CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVy
KSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQorCisgICAgQ1NTUHJvcGVydHlE
YXR1bSYgb3BlcmF0b3I9KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKTsKKyAgICBTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdDsKKworICAgIFN0cmluZyBuYW1lOworICAgIFN0cmluZyB2YWx1
ZTsKKyAgICBib29sIGltcG9ydGFudDsKKyAgICBib29sIHBhcnNlZDsKK307Cit0eXBlZGVmIHN0
ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBib29sPiBTb3VyY2VBd2FyZVByb3BlcnR5RGF0dW07
CisKKyNpZm5kZWYgQ1NTUFJPUEVSVFlEQVRVTV9ISURFX0dMT0JBTFMKK2V4dGVybiBjb25zdCBD
U1NQcm9wZXJ0eURhdHVtIGVtcHR5Q1NTUHJvcGVydHlEYXR1bTsKKyNlbmRpZgorCitzdHJ1Y3Qg
Q1NTU3R5bGVTb3VyY2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTU3R5bGVTb3VyY2VEYXRh
PiB7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBjcmVhdGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NTdHlsZVNvdXJjZURhdGEoKSk7
CisgICAgfQorCisgICAgLy8gUmFuZ2Ugb2YgdGhlIHN0eWxlIHRleHQgaW4gdGhlIGVuY2xvc2lu
ZyBzb3VyY2UgKHN0YXJ0IGFuZCBlbmQgb2Zmc2V0cyBpbmNsdXNpdmUpLgorICAgIFNvdXJjZVJh
bmdlIHN0eWxlQm9keVJhbmdlOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1
bSwgU291cmNlUmFuZ2U+ID4gcHJvcGVydHlEYXRhOworfTsKK3R5cGVkZWYgSGFzaE1hcDxDU1NT
dHlsZVJ1bGUqLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+IFN0eWxlUnVsZVJhbmdlTWFw
OworCitzdHJ1Y3QgQ1NTUHJvcGVydHlEYXR1bUhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBo
YXNoKENTU1Byb3BlcnR5RGF0dW0ga2V5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0hh
c2g6Omhhc2goa2V5Lm5hbWUpICsgU3RyaW5nSGFzaDo6aGFzaChrZXkudmFsdWUpICsgNyAqIGtl
eS5pbXBvcnRhbnQgKyAzICoga2V5LnBhcnNlZCArIDMxOworICAgIH0KKworICAgIHN0YXRpYyBi
b29sIGVxdWFsKENTU1Byb3BlcnR5RGF0dW0gYSwgQ1NTUHJvcGVydHlEYXR1bSBiKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGEubmFtZSA9PSBiLm5hbWUgJiYgYS52YWx1ZSA9PSBiLnZhbHVlICYm
IGEuaW1wb3J0YW50ID09IGIuaW1wb3J0YW50ICYmIGEucGFyc2VkID09IGIucGFyc2VkOworICAg
IH0KKworICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gZmFsc2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtPiB7CisgICAgdHlw
ZWRlZiBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaCBIYXNoOworfTsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtPiA6IEdlbmVyaWNI
YXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IHsKKyAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFsc2U7CisgICAgc3RhdGljIFdlYkNvcmU6OkNTU1By
b3BlcnR5RGF0dW0gZW1wdHlWYWx1ZSgpOworCisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVs
ZXRlZFZhbHVlKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0mIHNsb3QpIHsgbmV3ICgmc2xvdCkg
V2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSgiIiwgIkQiLCBmYWxzZSwgZmFsc2UpOyB9CisgICAg
c3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1
bSYgc2xvdCkgeyByZXR1cm4gIXNsb3QubmFtZS5sZW5ndGgoKSAmJiBzbG90LnZhbHVlID09ICJE
IjsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBDU1NQcm9wZXJ0eURh
dHVtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IGZmMWMyYWYuLjNjYThkMzkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtMTg5LDcgKzE4OSw3IEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldElubGluZVN0eWxlKGluIGxvbmcgbm9kZUlkLCBv
dXQgVmFsdWUgc3R5bGUpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0Q29tcHV0ZWRT
dHlsZShpbiBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlKTsKICAgICAgICAgW2hhbmRsZXI9
RE9NXSB2b2lkIGdldFN0eWxlU2hlZXQoaW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBPYmplY3Qg
c3R5bGVTaGVldCk7Ci0gICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRSdWxlUmFuZ2VzKGlu
IGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFsdWUgcmFuZ2VzKTsKKyAgICAgICAgW2hhbmRsZXI9
RE9NXSB2b2lkIGdldFN0eWxlU291cmNlRGF0YShpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IE9i
amVjdCBzdHlsZVNvdXJjZURhdGEpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgYXBwbHlT
dHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBpbiBTdHJpbmcg
cHJvcGVydHlOYW1lLCBvdXQgYm9vbGVhbiBzdWNjZXNzLCBvdXQgVmFsdWUgc3R5bGUsIG91dCBB
cnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBzZXRT
dHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgc3R5bGVUZXh0LCBvdXQgYm9vbGVh
biBzdWNjZXNzKTsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHNldFN0eWxlUHJvcGVydHko
aW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcgbmFtZSwgaW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9v
bGVhbiBzdWNjZXNzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U1N0b3JlLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAppbmRl
eCBjMmRjNGYxLi5lZTlmNGJhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUu
Y3BwCkBAIC0zNywxMSArMzcsMjAgQEAKICNpbmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgi
CiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgor
I2luY2x1ZGUgIkNhY2hlLmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRl
ICJEb2NMb2FkZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JS
ZXNvdXJjZS5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0Lmgi
CisjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NjcsNiArNzYsNyBAQCB2b2lkIEluc3BlY3RvckNTU1N0b3JlOjpyZXNldCgpCiAgICAgbV9zdHls
ZVNoZWV0VG9PZmZzZXRzLmNsZWFyKCk7CiAgICAgbV9zdHlsZVNoZWV0VG9JZC5jbGVhcigpOwog
ICAgIG1faWRUb1N0eWxlU2hlZXQuY2xlYXIoKTsKKyAgICBtX2lkVG9TdHlsZVNoZWV0VGV4dC5j
bGVhcigpOwogICAgIG1faWRUb0Rpc2FibGVkU3R5bGUuY2xlYXIoKTsKICAgICBtX2RvY3VtZW50
Tm9kZVRvSW5zcGVjdG9yU3R5bGVTaGVldE1hcC5jbGVhcigpOwogCkBAIC0xMDQsNDggKzExNCwx
ODAgQEAgQ1NTU3R5bGVTaGVldCogSW5zcGVjdG9yQ1NTU3RvcmU6Omluc3BlY3RvclN0eWxlU2hl
ZXQoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQsIGIKICAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVT
aGVldDsKIH0KIAotSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3RvcmU6
OmdldFJ1bGVSYW5nZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK1N0cmluZyBJbnNwZWN0
b3JDU1NTdG9yZTo6c3R5bGVTaGVldFRleHQobG9uZyBzdHlsZVNoZWV0SWQpCiB7CisgICAgSWRU
b1N0eWxlU2hlZXRUZXh0TWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1N0eWxlU2hlZXRUZXh0LmZp
bmQoc3R5bGVTaGVldElkKTsKKyAgICBpZiAoaXQgIT0gbV9pZFRvU3R5bGVTaGVldFRleHQuZW5k
KCkpCisgICAgICAgIHJldHVybiBpdC0+c2Vjb25kOworCisgICAgQ1NTU3R5bGVTaGVldCogc3R5
bGVTaGVldCA9IHN0eWxlU2hlZXRGb3JJZChzdHlsZVNoZWV0SWQpOwogICAgIGlmICghc3R5bGVT
aGVldCkKLSAgICAgICAgcmV0dXJuIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+KCk7Ci0gICAg
UmVmUHRyPENTU1J1bGVMaXN0PiBvcmlnaW5hbFJ1bGVMaXN0ID0gQ1NTUnVsZUxpc3Q6OmNyZWF0
ZShzdHlsZVNoZWV0LCBmYWxzZSk7CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBTdHJp
bmcgdGV4dDsKKworICAgIE5vZGUqIG93bmVyTm9kZSA9IHN0eWxlU2hlZXQtPm93bmVyTm9kZSgp
OworICAgIGlmIChvd25lck5vZGUgJiYgb3duZXJOb2RlLT5ub2RlVHlwZSgpID09IE5vZGU6OkVM
RU1FTlRfTk9ERSkgeworICAgICAgICBFbGVtZW50KiBvd25lckVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4ob3duZXJOb2RlKTsKKyAgICAgICAgaWYgKG93bmVyRWxlbWVudC0+dGFnTmFt
ZSgpLmxvd2VyKCkgPT0gInN0eWxlIikKKyAgICAgICAgICAgIHRleHQgPSBpbmxpbmVTdHlsZVNo
ZWV0VGV4dChzdHlsZVNoZWV0KTsKKyAgICB9CisgICAgaWYgKHRleHQuaXNFbXB0eSgpKQorICAg
ICAgICB0ZXh0ID0gcmVzb3VyY2VTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0KTsKKworICAgIGlm
ICghdGV4dC5pc0VtcHR5KCkpCisgICAgICAgIG1faWRUb1N0eWxlU2hlZXRUZXh0LnNldChzdHls
ZVNoZWV0SWQsIHRleHQpOworICAgIHJldHVybiB0ZXh0OworfQorCitTdHJpbmcgSW5zcGVjdG9y
Q1NTU3RvcmU6OnJlc291cmNlU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVl
dCkKK3sKKyAgICBLVVJMIHN0eWxlU2hlZXRVUkwgPSBzdHlsZVNoZWV0LT5maW5hbFVSTCgpOwor
ICAgIERvY3VtZW50KiBkb2MgPSBzdHlsZVNoZWV0LT5kb2N1bWVudCgpOworICAgIGlmICghZG9j
KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgU3RyaW5nIHRleHRFbmNvZGluZ05hbWU7
CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAgIGlmIChlcXVhbElnbm9yaW5n
RnJhZ21lbnRJZGVudGlmaWVyKHN0eWxlU2hlZXRVUkwsIGRvYy0+ZnJhbWUoKS0+bG9hZGVyKCkt
PmRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3RVUkwoKSkpIHsKKyAgICAgICAgdGV4dEVuY29kaW5n
TmFtZSA9IGRvYy0+aW5wdXRFbmNvZGluZygpOworICAgICAgICBidWZmZXIgPSBkb2MtPmZyYW1l
KCktPmxvYWRlcigpLT5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCktPm1haW5SZXNvdXJjZURh
dGEoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBjb25zdCBTdHJpbmcmIHVybCA9IHN0eWxlU2hl
ZXRVUkwuc3RyaW5nKCk7CisgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9
IGRvYy0+ZG9jTG9hZGVyKCktPmNhY2hlZFJlc291cmNlKHVybCk7CisgICAgICAgIGlmICghY2Fj
aGVkUmVzb3VyY2UpCisgICAgICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IGNhY2hlKCktPnJlc291
cmNlRm9yVVJMKHVybCk7CisKKyAgICAgICAgQVNTRVJUKGNhY2hlZFJlc291cmNlKTsgLy8gRklY
TUUoYXBhdmxvdik6IFRoaXMgbWlnaHQgYmUgdG9vIGFnZ3Jlc3NpdmUKKworICAgICAgICBib29s
IGlzVW5wdXJnZWFibGUgPSB0cnVlOworICAgICAgICBpZiAoY2FjaGVkUmVzb3VyY2UtPmlzUHVy
Z2VhYmxlKCkpIHsKKyAgICAgICAgICAgIC8vIElmIHRoZSByZXNvdXJjZSBpcyBwdXJnZWFibGUg
dGhlbiBtYWtlIGl0IHVucHVyZ2VhYmxlIHRvIGdldAorICAgICAgICAgICAgLy8gaXRzIGRhdGEu
IFRoaXMgbWlnaHQgZmFpbCwgaW4gd2hpY2ggY2FzZSB3ZSByZXR1cm4gYW4KKyAgICAgICAgICAg
IC8vIGVtcHR5IFN0cmluZy4KKyAgICAgICAgICAgIGlmICghY2FjaGVkUmVzb3VyY2UtPm1ha2VQ
dXJnZWFibGUoZmFsc2UpKQorICAgICAgICAgICAgICAgIGlzVW5wdXJnZWFibGUgPSBmYWxzZTsK
KyAgICAgICAgfQorICAgICAgICBpZiAoaXNVbnB1cmdlYWJsZSkgeworICAgICAgICAgICAgdGV4
dEVuY29kaW5nTmFtZSA9IGNhY2hlZFJlc291cmNlLT5lbmNvZGluZygpOworICAgICAgICAgICAg
YnVmZmVyID0gY2FjaGVkUmVzb3VyY2UtPmRhdGEoKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChidWZmZXIpIHsKKyAgICAgICAgVGV4dEVuY29kaW5nIGVuY29kaW5nKHRleHRFbmNvZGlu
Z05hbWUpOworICAgICAgICBpZiAoIWVuY29kaW5nLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIGVu
Y29kaW5nID0gV2luZG93c0xhdGluMUVuY29kaW5nKCk7CisgICAgICAgIHJldHVybiBlbmNvZGlu
Zy5kZWNvZGUoYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5
bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBOb2RlKiBvd25l
ck5vZGUgPSBzdHlsZVNoZWV0LT5vd25lck5vZGUoKTsKKyAgICBpZiAoIW93bmVyTm9kZSB8fCBv
d25lck5vZGUtPm5vZGVUeXBlKCkgIT0gTm9kZTo6RUxFTUVOVF9OT0RFIHx8IG1fc3R5bGVTaGVl
dFRvSWQuZmluZChzdHlsZVNoZWV0KSA9PSBtX3N0eWxlU2hlZXRUb0lkLmVuZCgpKQorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG93bmVyTm9kZSk7CisgICAgaWYgKG93bmVyRWxlbWVudC0+dGFnTmFtZSgp
Lmxvd2VyKCkgIT0gInN0eWxlIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVy
biBvd25lckVsZW1lbnQtPmlubmVyVGV4dCgpOworfQorCisKKy8vIEFsbCByYW5nZXMgYXJlOiBb
c3RhcnQ7IGVuZCkgKHN0YXJ0IC0gaW5jbHVzaXZlLCBlbmQgLSBleGNsdXNpdmUpCitib29sIElu
c3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZVNvdXJjZURhdGEoQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c3R5bGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpCit7CisgICAgaWYgKCFz
dHlsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IGlu
bGluZVN0eWxlRWxlbWVudChzdHlsZSk7CisgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAgLy8g
SW5saW5lOiBzdHlsZT0iLi4uIgorICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBz
dHlsZVNvdXJjZURhdGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOworICAgICAgICBi
b29sIHN1Y2Nlc3MgPSBnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhlbGVtZW50LCAmc3R5bGVTb3Vy
Y2VEYXRhKTsKKyAgICAgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAqcmVzdWx0ID0gc3R5bGVTb3VyY2VEYXRhOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gZ2V0UGFyZW50U3R5
bGVTaGVldChzdHlsZSk7CisgICAgaWYgKCFzdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiogcmFuZ2VzVmVj
dG9yID0gMDsKICAgICBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOjppdGVyYXRvciBpdCA9IG1fc3R5
bGVTaGVldFRvT2Zmc2V0cy5maW5kKHN0eWxlU2hlZXQpOwotICAgIFZlY3RvcjxTb3VyY2VSYW5n
ZT4qIG9mZnNldFZlY3RvciA9IDA7CiAgICAgaWYgKGl0ID09IG1fc3R5bGVTaGVldFRvT2Zmc2V0
cy5lbmQoKSkgewotICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3VyY2UgPSBtX2luc3Bl
Y3RvckNvbnRyb2xsZXItPnJlc291cmNlRm9yVVJMKHN0eWxlU2hlZXQtPmZpbmFsVVJMKCkuc3Ry
aW5nKCkpOwotICAgICAgICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAgICAgIG9mZnNldFZlY3Rv
ciA9IG5ldyBWZWN0b3I8U291cmNlUmFuZ2U+OworICAgICAgICBTdHJpbmcgdGV4dCA9IHN0eWxl
U2hlZXRUZXh0KGJpbmRTdHlsZVNoZWV0KHN0eWxlU2hlZXQpKTsKKyAgICAgICAgaWYgKCF0ZXh0
LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IG5ld1N0eWxl
U2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3R5bGVTaGVldC0+b3duZXJOb2RlKCkpOwog
ICAgICAgICAgICAgQ1NTUGFyc2VyIHA7Ci0gICAgICAgICAgICBDU1NQYXJzZXI6OlN0eWxlUnVs
ZVJhbmdlcyBydWxlUmFuZ2VNYXA7Ci0gICAgICAgICAgICBwLnBhcnNlU2hlZXQobmV3U3R5bGVT
aGVldC5nZXQoKSwgcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpLCAwLCAmcnVsZVJhbmdlTWFwKTsK
LSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IG5ld1N0eWxlU2hlZXQt
Pmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBDU1NTdHlsZVJ1
bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShuZXdTdHlsZVNoZWV0LT5pdGVtKGkpKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIXJ1bGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgICAgIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1
bnNpZ25lZD4gPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VNYXAuZmluZChydWxlKTsKLSAgICAg
ICAgICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQotICAgICAgICAgICAgICAg
ICAgICBvZmZzZXRWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5zZXQoc3R5bGVTaGVldCwgb2Zmc2V0VmVj
dG9yKTsKKyAgICAgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwIHJ1bGVSYW5nZU1hcDsKKyAgICAg
ICAgICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgpLCB0ZXh0LCAwLCAmcnVsZVJh
bmdlTWFwKTsKKyAgICAgICAgICAgIHJhbmdlc1ZlY3RvciA9IG5ldyBWZWN0b3I8UmVmUHRyPENT
U1N0eWxlU291cmNlRGF0YT4gPjsKKyAgICAgICAgICAgIGV4dHJhY3RSYW5nZXMobmV3U3R5bGVT
aGVldC5nZXQoKSwgcnVsZVJhbmdlTWFwLCByYW5nZXNWZWN0b3IpOworICAgICAgICAgICAgbV9z
dHlsZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCByYW5nZXNWZWN0b3IpOwogICAgICAg
ICB9CiAgICAgfSBlbHNlCi0gICAgICAgIG9mZnNldFZlY3RvciA9IGl0LT5zZWNvbmQ7Ci0gICAg
aWYgKCFvZmZzZXRWZWN0b3IpCi0gICAgICAgIHJldHVybiBIYXNoTWFwPGxvbmcsIFNvdXJjZVJh
bmdlPigpOworICAgICAgICByYW5nZXNWZWN0b3IgPSBpdC0+c2Vjb25kOworICAgIGlmICghcmFu
Z2VzVmVjdG9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNpZ25lZCBydWxlSW5k
ZXggPSAwOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJlc3VsdDsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8IGxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIEFTU0VSVChydWxlSW5kZXggPCBvZmZzZXRWZWN0b3ItPnNpemUo
KSk7CiAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0eWxlU2hl
ZXQtPml0ZW0oaSkpOwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgLy8gVGhpcyBtYXBzIHRoZSBzdHlsZSBpZCB0byB0aGUgcnVsZSBib2R5IHJhbmdl
LgotICAgICAgICByZXN1bHQuc2V0KGJpbmRTdHlsZShydWxlLT5zdHlsZSgpKSwgb2Zmc2V0VmVj
dG9yLT5hdChydWxlSW5kZXgpKTsKKyAgICAgICAgaWYgKHJ1bGUtPnN0eWxlKCkgPT0gc3R5bGUp
IHsKKyAgICAgICAgICAgIEFTU0VSVChydWxlSW5kZXggPCByYW5nZXNWZWN0b3ItPnNpemUoKSk7
CisgICAgICAgICAgICAqcmVzdWx0ID0gcmFuZ2VzVmVjdG9yLT5hdChydWxlSW5kZXgpOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgcnVsZUluZGV4Kys7CiAg
ICAgfQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIElu
c3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQs
IGNvbnN0IFN0eWxlUnVsZVJhbmdlTWFwJiBydWxlUmFuZ2VNYXAsIFZlY3RvcjxSZWZQdHI8Q1NT
U3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpCit7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMCwgbGVuZ3RoID0gc3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgewor
ICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShzdHlsZVNoZWV0LT5p
dGVtKGkpKTsKKyAgICAgICAgaWYgKCFydWxlKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIFN0eWxlUnVsZVJhbmdlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHJ1bGVSYW5nZU1hcC5m
aW5kKHJ1bGUpOworICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQorICAgICAg
ICAgICAgcmFuZ2VzVmVjdG9yLT5hcHBlbmQoaXQtPnNlY29uZCk7CisgICAgfQorfQorCitib29s
IEluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhOb2RlKiBub2RlLCBS
ZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlmICghbm9kZSB8fCAh
bm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0
cmluZyBzdHlsZVRleHQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdldEF0
dHJpYnV0ZSgic3R5bGUiKTsKKyAgICBpZiAoc3R5bGVUZXh0LmlzRW1wdHkoKSkgeworICAgICAg
ICAoKnJlc3VsdCktPnN0eWxlQm9keVJhbmdlLmZpcnN0ID0gMDsKKyAgICAgICAgKCpyZXN1bHQp
LT5zdHlsZUJvZHlSYW5nZS5zZWNvbmQgPSAwOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHRlbXBEZWNsYXJhdGlv
biA9IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKTsKKyAgICBDU1NQYXJzZXIg
cDsKKyAgICBwLnBhcnNlRGVjbGFyYXRpb24odGVtcERlY2xhcmF0aW9uLmdldCgpLCBzdHlsZVRl
eHQsIHJlc3VsdC0+Z2V0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitDU1NTdHlsZVNoZWV0
KiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0
aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZS0+c3R5bGVzaGVldCgpOworICAgIGlmIChz
dHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpOworCisgICAgcmV0dXJu
IDA7CiB9CiAKIENTU1N0eWxlUnVsZSogSW5zcGVjdG9yQ1NTU3RvcmU6OmFzQ1NTU3R5bGVSdWxl
KFN0eWxlQmFzZSogc3R5bGVCYXNlKQpAQCAtMjE3LDYgKzM1OSwxNyBAQCBsb25nIEluc3BlY3Rv
ckNTU1N0b3JlOjpiaW5kUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiAgICAgcmV0dXJuIGlkOwog
fQogCisvLyBzdGF0aWMKK0VsZW1lbnQqIEluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZUVs
ZW1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAgaWYgKCFzdHlsZSB8fCAh
c3R5bGUtPmlzTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgTm9kZSogbm9kZSA9IHN0YXRpY19jYXN0PENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKj4o
c3R5bGUpLT5ub2RlKCk7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0eWxlZEVsZW1lbnQo
KSB8fCBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdldElubGluZVN0eWxlRGVj
bCgpICE9IHN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
RWxlbWVudCo+KG5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTU3RvcmUuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKaW5k
ZXggODJkZTYyMi4uOGVmZDM2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTU3RvcmUuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5o
CkBAIC0yOSw2ICsyOSw4IEBACiAjaWZuZGVmIEluc3BlY3RvckNTU1N0b3JlX2gKICNkZWZpbmUg
SW5zcGVjdG9yQ1NTU3RvcmVfaAogCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgorCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTM2LDEzICszOCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIERvY3VtZW50OwotY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNz
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsK
IGNsYXNzIENTU1J1bGVMaXN0OwogY2xhc3MgQ1NTU3R5bGVSdWxlOwogY2xhc3MgQ1NTU3R5bGVT
aGVldDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEluc3BlY3RvckNv
bnRyb2xsZXI7CitjbGFzcyBOb2RlOwogY2xhc3MgU3R5bGVCYXNlOwogCiB0eXBlZGVmIHN0ZDo6
cGFpcjxTdHJpbmcsIFN0cmluZz4gUHJvcGVydHlWYWx1ZUFuZFByaW9yaXR5OwpAQCAtNTIsMjMg
KzU2LDI4IEBAIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZURlY2xhcmF0aW9uKiwgbG9uZz4gU3R5
bGVUb0lkTWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZURlY2xhcmF0
aW9uPiA+IElkVG9TdHlsZU1hcDsKIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBsb25n
PiBSdWxlVG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVSdWxl
PiA+IElkVG9SdWxlTWFwOwotdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBWZWN0b3I8
U291cmNlUmFuZ2U+KiA+IFN0eWxlU2hlZXRUb09mZnNldHNNYXA7Cit0eXBlZGVmIEhhc2hNYXA8
Q1NTU3R5bGVTaGVldCosIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiA+IFN0
eWxlU2hlZXRUb09mZnNldHNNYXA7CiB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVTaGVldCosIGxv
bmc+IFN0eWxlU2hlZXRUb0lkTWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NT
dHlsZVNoZWV0PiA+IElkVG9TdHlsZVNoZWV0TWFwOwordHlwZWRlZiBIYXNoTWFwPGxvbmcsIFN0
cmluZz4gSWRUb1N0eWxlU2hlZXRUZXh0TWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIERpc2Fi
bGVkU3R5bGVEZWNsYXJhdGlvbj4gSWRUb0Rpc2FibGVkU3R5bGVNYXA7CiB0eXBlZGVmIEhhc2hN
YXA8UmVmUHRyPERvY3VtZW50PiwgUmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4gRG9jdW1lbnRUb1N0
eWxlU2hlZXRNYXA7CiAKIGNsYXNzIEluc3BlY3RvckNTU1N0b3JlIHsKIAogcHVibGljOgorICAg
IHN0YXRpYyBDU1NTdHlsZVNoZWV0KiBnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFy
YXRpb24qKTsKKyAgICBzdGF0aWMgRWxlbWVudCogaW5saW5lU3R5bGVFbGVtZW50KENTU1N0eWxl
RGVjbGFyYXRpb24qKTsKKwogICAgIEluc3BlY3RvckNTU1N0b3JlKEluc3BlY3RvckNvbnRyb2xs
ZXIqIGluc3BlY3RvckNvbnRyb2xsZXIpOwogICAgIH5JbnNwZWN0b3JDU1NTdG9yZSgpOwogICAg
IHZvaWQgcmVzZXQoKTsKLSAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBnZXRSdWxlUmFu
Z2VzKENTU1N0eWxlU2hlZXQqKTsKKyAgICBib29sIGdldFN0eWxlU291cmNlRGF0YShDU1NTdHls
ZURlY2xhcmF0aW9uKiwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCk7CiAgICAg
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVGb3JJZChsb25nIHN0eWxlSWQpOwogICAgIENTU1N0
eWxlU2hlZXQqIHN0eWxlU2hlZXRGb3JJZChsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAgQ1NTU3R5
bGVSdWxlKiBydWxlRm9ySWQobG9uZyBzdHlsZVJ1bGVJZCk7CiAgICAgRGlzYWJsZWRTdHlsZURl
Y2xhcmF0aW9uKiBkaXNhYmxlZFN0eWxlRm9ySWQobG9uZyBzdHlsZUlkLCBib29sIGNyZWF0ZUlm
QWJzZW50KTsKKyAgICBTdHJpbmcgc3R5bGVTaGVldFRleHQobG9uZyBzdHlsZVNoZWV0SWQpOwog
ICAgIENTU1N0eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQqIG93bmVyRG9j
dW1lbnQsIGJvb2wgY3JlYXRlSWZBYnNlbnQpOwogICAgIHZvaWQgcmVtb3ZlRG9jdW1lbnQoRG9j
dW1lbnQqKTsKIApAQCAtNzgsNiArODcsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHN0
YXRpYyBDU1NTdHlsZVJ1bGUqIGFzQ1NTU3R5bGVSdWxlKFN0eWxlQmFzZSopOworICAgIFN0cmlu
ZyBpbmxpbmVTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0Kik7CisgICAgU3RyaW5nIHJlc291
cmNlU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCopOworICAgIHZvaWQgZXh0cmFjdFJhbmdl
cyhDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3R5bGVSdWxlUmFuZ2VNYXAmLCBWZWN0b3I8UmVmUHRy
PENTU1N0eWxlU291cmNlRGF0YT4gPiogcmFuZ2VzVmVjdG9yKTsKKyAgICBib29sIGdldFN0eWxl
QXR0cmlidXRlUmFuZ2VzKE5vZGUqIHBhcmVudE5vZGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURh
dGE+KiByZXN1bHQpOwogCiAgICAgU3R5bGVUb0lkTWFwIG1fc3R5bGVUb0lkOwogICAgIElkVG9T
dHlsZU1hcCBtX2lkVG9TdHlsZTsKQEAgLTg1LDggKzk4LDkgQEAgcHJpdmF0ZToKICAgICBJZFRv
UnVsZU1hcCBtX2lkVG9SdWxlOwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXAgbV9zdHlsZVNo
ZWV0VG9PZmZzZXRzOwogICAgIFN0eWxlU2hlZXRUb0lkTWFwIG1fc3R5bGVTaGVldFRvSWQ7Ci0g
ICAgSWRUb1N0eWxlU2hlZXRNYXAgbV9pZFRvU3R5bGVTaGVldDsKICAgICBJZFRvRGlzYWJsZWRT
dHlsZU1hcCBtX2lkVG9EaXNhYmxlZFN0eWxlOworICAgIElkVG9TdHlsZVNoZWV0TWFwIG1faWRU
b1N0eWxlU2hlZXQ7CisgICAgSWRUb1N0eWxlU2hlZXRUZXh0TWFwIG1faWRUb1N0eWxlU2hlZXRU
ZXh0OwogICAgIERvY3VtZW50VG9TdHlsZVNoZWV0TWFwIG1fZG9jdW1lbnROb2RlVG9JbnNwZWN0
b3JTdHlsZVNoZWV0TWFwOwogCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0b3JD
b250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGQy
NzYwZTQuLmY0ZGQ1YmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5o
IgpAQCAtMTE3MSwyNiArMTE3MiwzNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHls
ZVNoZWV0KGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PgogICAgICAg
ICAqc3R5bGVTaGVldE9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldChzdHlsZVNoZWV0
LT5kb2N1bWVudCgpLCBzdHlsZVNoZWV0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
Z2V0UnVsZVJhbmdlcyhsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiog
cnVsZVJhbmdlKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5bGVTb3VyY2VEYXRhKGxv
bmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGRhdGFPYmplY3QpCiB7Ci0gICAg
Q1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGNzc1N0b3JlKCktPnN0eWxlU2hlZXRGb3JJZChz
dHlsZVNoZWV0SWQpOwotICAgIGlmIChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmRvY3VtZW50
KCkpIHsKLSAgICAgICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcnVsZVJhbmdlcyA9IGNz
c1N0b3JlKCktPmdldFJ1bGVSYW5nZXMoc3R5bGVTaGVldCk7Ci0gICAgICAgIGlmICghcnVsZVJh
bmdlcy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgIGZv
ciAoSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT46Oml0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlcy5i
ZWdpbigpOyBpdCAhPSBydWxlUmFuZ2VzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICBpZiAo
aXQtPnNlY29uZC5zZWNvbmQpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBydWxlUmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAg
ICAgIHJlc3VsdC0+c2V0T2JqZWN0KFN0cmluZzo6bnVtYmVyKGl0LT5maXJzdCkudXRmOCgpLmRh
dGEoKSwgcnVsZVJhbmdlKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBib2R5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAg
IHJ1bGVSYW5nZS0+c2V0T2JqZWN0KCJib2R5UmFuZ2UiLCBib2R5UmFuZ2UpOwotICAgICAgICAg
ICAgICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJzdGFydCIsIGl0LT5zZWNvbmQuZmlyc3QpOwot
ICAgICAgICAgICAgICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25kLnNl
Y29uZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgKnJ1bGVSYW5nZSA9IHJl
c3VsdC5yZWxlYXNlKCk7CisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBjc3NTdG9y
ZSgpLT5zdHlsZUZvcklkKHN0eWxlSWQpOworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVy
bjsKKyAgICBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gQ1NTU3R5bGVT
b3VyY2VEYXRhOjpjcmVhdGUoKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBjc3NTdG9yZSgpLT5nZXRT
dHlsZVNvdXJjZURhdGEoc3R5bGUsICZzb3VyY2VEYXRhKTsKKyAgICBpZiAoIXN1Y2Nlc3MpCisg
ICAgICAgIHJldHVybjsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHQgPSBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJvZHlS
YW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXRPYmplY3Qo
ImJvZHlSYW5nZSIsIGJvZHlSYW5nZSk7CisgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0
Iiwgc291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2UuZmlyc3QpOworICAgIGJvZHlSYW5nZS0+c2V0
TnVtYmVyKCJlbmQiLCBzb3VyY2VEYXRhLT5zdHlsZUJvZHlSYW5nZS5zZWNvbmQpOworICAgIFJl
ZlB0cjxJbnNwZWN0b3JBcnJheT4gcHJvcGVydHlSYW5nZXMgPSBJbnNwZWN0b3JBcnJheTo6Y3Jl
YXRlKCk7CisgICAgcmVzdWx0LT5zZXRBcnJheSgicHJvcGVydHlEYXRhIiwgcHJvcGVydHlSYW5n
ZXMpOworICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+
ID4mIHByb3BlcnR5RGF0YSA9IHNvdXJjZURhdGEtPnByb3BlcnR5RGF0YTsKKyAgICBmb3IgKFZl
Y3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID46Oml0ZXJhdG9y
IGl0ID0gcHJvcGVydHlEYXRhLmJlZ2luKCk7IGl0ICE9IHByb3BlcnR5RGF0YS5lbmQoKTsgKytp
dCkgeworICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwcm9wZXJ0eVJhbmdlID0gSW5z
cGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0U3RyaW5n
KCJuYW1lIiwgaXQtPmZpcnN0Lm5hbWUpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRTdHJp
bmcoInZhbHVlIiwgaXQtPmZpcnN0LnZhbHVlKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0
Qm9vbGVhbigiaW1wb3J0YW50IiwgaXQtPmZpcnN0LmltcG9ydGFudCk7CisgICAgICAgIHByb3Bl
cnR5UmFuZ2UtPnNldEJvb2xlYW4oInBhcnNlZCIsIGl0LT5maXJzdC5wYXJzZWQpOworICAgICAg
ICBwcm9wZXJ0eVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0IiwgaXQtPnNlY29uZC5maXJzdCk7Cisg
ICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldE51bWJlcigiZW5kIiwgaXQtPnNlY29uZC5zZWNvbmQp
OworICAgICAgICBwcm9wZXJ0eVJhbmdlcy0+cHVzaE9iamVjdChwcm9wZXJ0eVJhbmdlKTsKICAg
ICB9CisgICAgKmRhdGFPYmplY3QgPSByZXN1bHQucmVsZWFzZSgpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rv
clZhbHVlPiogc3R5bGUpCkBAIC0xNDQ5LDcgKzE0NTgsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5bGVE
ZWNsYQogICAgIGlmIChiaW5kKSB7CiAgICAgICAgIGxvbmcgc3R5bGVJZCA9IGNzc1N0b3JlKCkt
PmJpbmRTdHlsZShzdHlsZSk7CiAgICAgICAgIHJlc3VsdC0+c2V0TnVtYmVyKCJpZCIsIHN0eWxl
SWQpOwotICAgICAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gZ2V0UGFyZW50
U3R5bGVTaGVldChzdHlsZSk7CisgICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hl
ZXQgPSBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChzdHlsZSk7CiAgICAg
ICAgIGlmIChwYXJlbnRTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmVzdWx0LT5zZXROdW1iZXIo
InBhcmVudFN0eWxlU2hlZXRJZCIsIGNzc1N0b3JlKCktPmJpbmRTdHlsZVNoZWV0KHBhcmVudFN0
eWxlU2hlZXQpKTsKIApAQCAtMTY2MSwyMCArMTY3MCw2IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9y
QXJyYXk+IEluc3BlY3RvckRPTUFnZW50Ojp0b0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBk
YXRhCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKLUNTU1N0eWxlU2hlZXQqIElu
c3BlY3RvckRPTUFnZW50OjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24q
IHN0eWxlKQotewotICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBzdHlsZS0+
cGFyZW50UnVsZSgpID8gc3R5bGUtPnBhcmVudFJ1bGUoKS0+cGFyZW50U3R5bGVTaGVldCgpIDog
MDsKLSAgICBpZiAoIXBhcmVudFN0eWxlU2hlZXQpIHsKLSAgICAgICAgU3R5bGVCYXNlKiBwYXJl
bnQgPSBzdHlsZS0+cGFyZW50KCk7Ci0gICAgICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5pc0NT
U1N0eWxlU2hlZXQoKSkgewotICAgICAgICAgICAgcGFyZW50U3R5bGVTaGVldCA9IHN0YXRpY19j
YXN0PENTU1N0eWxlU2hlZXQqPihwYXJlbnQpOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRTdHls
ZVNoZWV0LT5sZW5ndGgoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQot
ICAgIH0KLSAgICByZXR1cm4gcGFyZW50U3R5bGVTaGVldDsKLX0KLQogdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6b25NYXRjaEpvYnNUaW1lcihUaW1lcjxJbnNwZWN0b3JET01BZ2VudD4qKQogewog
ICAgIGlmICghbV9wZW5kaW5nTWF0Y2hKb2JzLnNpemUoKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmgKaW5kZXggZmQzYzViNS4uMDk1N2MwNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JET01BZ2VudC5oCkBAIC0xMjEsNyArMTIxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIGdldElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVj
dG9yVmFsdWU+KiBzdHlsZXMpOwogICAgICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGUobG9uZyBu
b2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQgZ2V0
U3R5bGVTaGVldChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHN0
eWxlU2hlZXRPYmplY3QpOwotICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMobG9uZyBzdHlsZVNo
ZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJ1bGVSYW5nZSk7CisgICAgICAgIHZvaWQg
Z2V0U3R5bGVTb3VyY2VEYXRhKGxvbmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IGRhdGFPYmplY3QpOwogICAgICAgICB2b2lkIGFwcGx5U3R5bGVUZXh0KGxvbmcgc3R5bGVJZCwg
Y29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBib29s
KiBzdWNjZXNzLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZU9iamVjdCwgUmVmUHRyPElu
c3BlY3RvckFycmF5PiogY2hhbmdlZFByb3BlcnRpZXMpOwogICAgICAgICB2b2lkIHNldFN0eWxl
VGV4dChsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCwgYm9vbCogc3VjY2Vzcyk7
CiAgICAgICAgIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7CkBAIC0xNDYsNyAr
MTQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNvcHlOb2RlKGxvbmcg
bm9kZUlkKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0KiBn
ZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qKTsKICAgICAgICAgdm9pZCBz
dGFydExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogICAgICAgICB2b2lkIHN0b3BMaXN0
ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66492</attachid>
            <date>2010-09-03 07:37:36 -0700</date>
            <delta_ts>2010-09-06 04:35:49 -0700</delta_ts>
            <desc>[PATCH] Account for !important in property value strings + test</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>60790</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkNDdiN2MzLi45NTBhMGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTAzICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCB1cGRhdGVkIEdUSyBiYXNlbGluZXMgb2YgYSBtYXRobWwgdGVz
dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNv
dXJjZS1vZmZzZXRzLmNzcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVz
LXNvdXJjZS1vZmZzZXRzLmNzcwppbmRleCBlZjY5ZWU2Li5mN2QzYjY5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNl
dHMuY3NzCkBAIC0xLDcgKzEsMTMgQEAKIGJvZHkgewogICAgIGZvbnQtc2l6ZTogMTJweDsKKyAg
ICBmb286IGJhciAhCisKKyAgICBpbXBvcnRhbnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3Qg
cmVjb2duaXplZCBieSBXZWJDb3JlICovOworICAgIGNvbG9yejogIiFpbXBvcnRhbnQiOworICAg
IGltcG9ydGFudDohaW1wb3J0YW50OworICAgIGNvbG9yOiAiYmFkY29sb3IiICEgaW1wb3J0YW50
IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovOwogfQogCi0vKiBjb21tZW50
IGJlZm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9yICov
ey8qIGNvbW1lbnQgKi9jb2xvcjogIzAwMDt9LyogY29tbWVudCAqLworLyogY29tbWVudCBiZWZv
cmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBj
b21tZW50ICovY29sb3I6ICNGMDBCQUE7em9vOm1vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJl
Y29nbml6ZWQgcHJvcGVydHkgKi99LyogY29tbWVudCAqLwogCi1ib2R5Lm1haW4ye2JhY2tncm91
bmQ6IGdyZWVuO30KK2JvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW4gLyogdmFsdWUgIWltcG9y
dGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBvcnRh
bnQgKi99CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1v
ZmZzZXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNl
LW9mZnNldHMtZXhwZWN0ZWQudHh0CmluZGV4IGRkYTY3YWQuLmZkMTUyMGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0
ZWQudHh0CkBAIC0xLDcgKzEsMjAgQEAKLVRlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBvZmZz
ZXQgcG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHJ1bGUgYm9kaWVzLgorVGVzdHMgdGhh
dCBwcm9wZXIgZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9ydGVk
IGZvciBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9wZXJ0aWVzLgogCi1ib2R5OiBbNS0y
OF0KLWJvZHkubWFpbjE6IFs5OC0xMjRdCi1ib2R5Lm1haW4yOiBbMTUwLTE2OV0KLWJvZHkgeyYg
ICAgZm9udC1zaXplOiAxMnB4OyZ9JiYvKiBjb21tZW50IGJlZm9yZSBzZWxlY3RvciAqL2JvZHku
bWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9yICovey8qIGNvbW1lbnQgKi9jb2xvcjogIzAw
MDt9LyogY29tbWVudCAqLyYmYm9keS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9JgorYm9keTog
WzYtMjM3XQorWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXQorWydmb28nOidiYXInICFpbXBv
cnRhbnQgbm9uLXBhcnNlZF0gQFsyNi0xMDRdCitbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicgbm9u
LXBhcnNlZF0gQFsxMDktMTMwXQorWydpbXBvcnRhbnQnOicnIG5vbi1wYXJzZWRdIEBbMTM1LTE0
NV0KK1snY29sb3InOiciYmFkY29sb3IiJyAhaW1wb3J0YW50XSBAWzE2MS0yMzBdCitib2R5Lm1h
aW4xOiBbMzA4LTM4OV0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0KK1snem9vJzonbW9v
IC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNl
ZF0gQFsyOC04MV0KK2JvZHkubWFpbjI6IFs0MTYtNTExXQorWydiYWNrZ3JvdW5kJzonZ3JlZW4g
LyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovJyAhaW1wb3J0YW50XSBAWzAtOTVdCitib2R5
Lm1haW5wYWdlOiBbMTctMTQ5XQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1LTI3XQor
WydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEnIG5vbi1wYXJzZWRdIEBbMTA3LTEzMV0KK2VsZW1l
bnQuc3R5bGU6IFswLTMxXQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMC0yMF0KK1snd2lk
dGgnOic4MCUnXSBAWzIxLTMxXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
LXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXggMDUzMzYxMS4uNDJlYjYwMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbApAQCAtMzUsNTUg
KzM1LDQzIEBAIGZ1bmN0aW9uIGZyb250ZW5kX3J1blRlc3QodGVzdENvbnRyb2xsZXIpCiAgICAg
ICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxiYWNrKHRlc3RDb250cm9sbGVyLCBzdHlsZXMpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIHZhciBtYXRjaGVkQ1NTUnVsZXMgPSBzdHlsZXMubWF0Y2hlZENT
U1J1bGVzOwotICAgICAgICAgICAgdmFyIHBhcmVudFN0eWxlU2hlZXRJZCA9IG1hdGNoZWRDU1NS
dWxlc1swXS5zdHlsZS5wYXJlbnRTdHlsZVNoZWV0SWQ7Ci0gICAgICAgICAgICBpZiAoIXBhcmVu
dFN0eWxlU2hlZXRJZCkgewotICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMu
cHVzaCgiQkFEIFNUWUxFU0hFRVQgSUQ6ICIgKyBwYXJlbnRTdHlsZVNoZWV0SWQpOwotICAgICAg
ICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0
cyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBtYXRjaGVkQ1NTUnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIg
cnVsZSA9IG1hdGNoZWRDU1NSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmdldFN0eWxlU291cmNlRGF0YShydWxlLnN0eWxlLmlkLCBmcm9udGVuZF9zdHlsZURhdGFS
ZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyLCBydWxlLCBmYWxzZSkpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFuZ2VzKHBhcmVu
dFN0eWxlU2hlZXRJZCwgZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkLmJpbmQobnVsbCwgdGVz
dENvbnRyb2xsZXIsIHBhcmVudFN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzKSk7CisgICAg
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU291cmNlRGF0YShzdHlsZXMuaW5saW5l
U3R5bGUuaWQsIGZyb250ZW5kX3N0eWxlRGF0YVJlY2VpdmVkLmJpbmQobnVsbCwgdGVzdENvbnRy
b2xsZXIsIHN0eWxlcy5pbmxpbmVTdHlsZSwgdHJ1ZSkpOwogICAgICAgICB9CiAgICAgICAgIElu
c3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5i
b2R5LmlkLCB0cnVlLCBzdHlsZXNDYWxsYmFjay5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7
CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZCh0ZXN0
Q29udHJvbGxlciwgc3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsZXMsIHJ1bGVSYW5nZXMpCitm
dW5jdGlvbiBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwgcnVsZU9y
U3R5bGUsIHNob3VsZEJhaWwsIGRhdGEpCiB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRj
aGVkQ1NTUnVsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHJ1bGUgPSBtYXRjaGVkQ1NT
UnVsZXNbaV07Ci0gICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaChydWxlLnNlbGVj
dG9yVGV4dCArICI6IFsiICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2Uuc3Rh
cnQgKyAiLSIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5nZS5lbmQgKyAiXSIp
OworICAgIHZhciBpc1J1bGUgPSAhIShydWxlT3JTdHlsZS5zdHlsZSk7CisgICAgdGVzdENvbnRy
b2xsZXIucmVzdWx0cy5wdXNoKChpc1J1bGUgPyBydWxlT3JTdHlsZS5zZWxlY3RvclRleHQgOiAi
ZWxlbWVudC5zdHlsZSIpICsgIjogWyIgKyBkYXRhLmJvZHlSYW5nZS5zdGFydCArICItIiArIGRh
dGEuYm9keVJhbmdlLmVuZCArICJdIik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLnBy
b3BlcnR5RGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgcHJvcGVydHlEYXR1bSA9IGRh
dGEucHJvcGVydHlEYXRhW2ldOworICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2go
IlsnIiArIHByb3BlcnR5RGF0dW0ubmFtZSArICInOiciICsgcHJvcGVydHlEYXR1bS52YWx1ZSAr
ICInIiArIChwcm9wZXJ0eURhdHVtLmltcG9ydGFudCA/ICIgIWltcG9ydGFudCIgOiAiIikgKyAo
cHJvcGVydHlEYXR1bS5wYXJzZWQgPyAiIiA6ICIgbm9uLXBhcnNlZCIpICsiXSBAWyIgKyBwcm9w
ZXJ0eURhdHVtLnN0YXJ0ICsgIi0iICsgcHJvcGVydHlEYXR1bS5lbmQgKyAiXSIpOwogICAgIH0K
LSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBmcm9udGVu
ZF9oYW5kbGVTdHlsZVNoZWV0LmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLX0KLQotZnVu
Y3Rpb24gZnJvbnRlbmRfaGFuZGxlU3R5bGVTaGVldCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVl
dCkKLXsKLSAgICB2YXIgdXJsID0gc3R5bGVTaGVldC5ocmVmOwotICAgIGlmICh1cmwgIT09ICIi
KSB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVSTE1hcFt1
cmxdOwotICAgICAgICBpZiAoIXJlc291cmNlKSB7Ci0gICAgICAgICAgICB0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzLnB1c2goIk5PIFJFU09VUkNFIEZPUiBVUkw6ICIgKyB1cmwpOwotICAgICAgICAg
ICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRzKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3IuZ2V0UmVz
b3VyY2VDb250ZW50KHJlc291cmNlLmlkZW50aWZpZXIsIGZyb250ZW5kX3N0eWxlU2hlZXRUZXh0
UmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiRU1QVFkgU1RZTEVTSEVFVCBIUkVGIik7
CisgICAgaWYgKHNob3VsZEJhaWwpCiAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
dGVzdENvbnRyb2xsZXIucmVzdWx0cyk7Ci0gICAgfQogfQogCi1mdW5jdGlvbiBmcm9udGVuZF9z
dHlsZVNoZWV0VGV4dFJlY2VpdmVkKHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0VGV4dCkKLXsK
LSAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goc3R5bGVTaGVldFRleHQucmVwbGFjZSgv
XG4vZywgIiYiKSk7Ci0gICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzKTsKLX0KIDwvc2NyaXB0PgorCis8c3R5bGU+CisKK2JvZHkubWFpbnBhZ2Ugewor
ICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogYXQgbGVhc3Qgb25lIHZhbGlkIHByb3BlcnR5
IGlzIG5lY2Vzc2FyeSBmb3IgV2ViQ29yZSB0byBtYXRjaCBhIHJ1bGUgKi8KKyAgICBiYWRwcm9w
ZXJ0eTogMWJhZHZhbHVlMTsKK30KKworPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgY2xhc3M9
Im1haW4xIG1haW4yIiBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxib2R5IGNsYXNzPSJtYWluMSBtYWlu
MiBtYWlucGFnZSIgb25sb2FkPSJvbmxvYWQoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7
IHdpZHRoOiA4MCUiPgogPHA+Ci1UZXN0cyB0aGF0IHByb3BlciBzdGFydC9lbmQgb2Zmc2V0IHBv
c2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBydWxlIGJvZGllcy4KK1Rlc3RzIHRoYXQgcHJv
cGVyIGRhdGEgYW5kIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3Ig
Q1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIDwvcD4KIAogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzIzMmJhLi40MmYzMjZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEwLTA5LTAzICBBbGV4YW5kZXIgUGF2
bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBzb3VyY2UtYmFzZWQgcHJvcGVydGllcyBmb3Ig
c3R5bGUgZGVjbGFyYXRpb25zIHRvIENTU1BhcnNlciBjbGllbnRzCisKKyAgICAgICAgVGhpcyBj
aGFuZ2U6CisgICAgICAgIC0gRW5hYmxlcyBJbnNwZWN0b3JDU1NTdG9yZSB0byBleHRyYWN0IENT
UyBzdHlsZXNoZWV0IHRleHQgZm9yIGFsbCBzb3VyY2UtYmFzZWQgc3R5bGVzaGVldHMsCisgICAg
ICAgICAgZXZlbiB3aXRoIHRoZSByZXNvdXJjZSB0cmFja2luZyB0dXJuZWQgb2ZmLgorICAgICAg
ICAtIEFkZHMgdG8gQ1NTUGFyc2VyIGEgY2FwYWJpbGl0eSBvZiBzb3VyY2UtcmVsYXRlZCBzdHls
ZSBkZWNsYXJhdGlvbiBkYXRhIGV4dHJhY3Rpb246CisgICAgICAgICAgKiBTdGFydC9lbmQgc291
cmNlIG9mZnNldHMgZm9yIGEgZGVjbGFyYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgc3R5
bGVzaGVldCBzdGFydCBvciB0aGUgInN0eWxlIiBhdHRyaWJ1dGUgdmFsdWUuCisgICAgICAgICAg
KiBTdGFydC9lbmQgc291cmNlIG9mZnNldHMgZm9yIENTUyBwcm9wZXJ0aWVzLCByZWxhdGl2ZSB0
byB0aGUgZGVjbGFyYXRpb24gc3RhcnQuCisgICAgICAgICAgKiBDU1MgcHJvcGVydHkgZGF0YTog
bmFtZSwgdmFsdWUsIHByaW9yaXR5LCBXZWJDb3JlIHBhcnNhYmlsaXR5IChpLmUuIGlmIHRoZSBw
cm9wZXJ0eSBpcyB1bmRlcnN0b29kIGJ5IFdlYkNvcmUpLgorICAgICAgICAtIFByb3ZpZGVzIHRo
ZSBleHRyYWN0ZWQgZGF0YSB0byB0aGUgV2ViSW5zcGVjdG9yIGZyb250ZW5kIHZpYSBJbnNwZWN0
b3JET01BZ2VudDo6Z2V0U3R5bGVTb3VyY2VEYXRhKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDk0OQorCisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb246Om5vZGUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpwYXJzZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VEZWNsYXJh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1BhcnNlcjo6bWFya1Byb3BlcnR5U3RhcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpmaW5kSW1wb3J0YW50SW5WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6Om1hcmtQcm9wZXJ0eUVuZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyZXNldFByb3BlcnR5TWFya3MpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eURhdHVtOjp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpp
bml0KToKKyAgICAgICAgKFdURjo6OjplbXB0eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJv
cGVydHlEYXR1bS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06
On5DU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06
Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6b3BlcmF0
b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaDo6aGFzaCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaDo6ZXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6cmVzZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OnN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0VGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3VyY2VEYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJh
bmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5
bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5
bGVFbGVtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisKIDIwMTAtMDktMDIgIEt3YW5nIFl1bCBT
ZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRh
bXVyYS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNTUwNjg1NC4uZDViNjY0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTk5Nyw2ICs5OTcsOCBAQAogICAg
ICAgICAgICAgJ2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgnLAogICAgICAgICAgICAg
J2Nzcy9DU1NQcm9wZXJ0eS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eS5oJywK
KyAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAnLAorICAgICAgICAgICAgJ2Nz
cy9DU1NQcm9wZXJ0eURhdHVtLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eUxvbmdo
YW5kLmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuaCcsCiAgICAg
ICAgICAgICAnY3NzL0NTU1F1aXJrUHJpbWl0aXZlVmFsdWUuaCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAzZjIzY2RkLi5jNWJi
ZTI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTQzMiw2ICs0MzIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvQ1NTUGFyc2Vy
VmFsdWVzLmNwcCBcCiAgICAgY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBcCiAgICAgY3NzL0NT
U1Byb3BlcnR5LmNwcCBcCisgICAgY3NzL0NTU1Byb3BlcnR5RGF0dW0uY3BwIFwKICAgICBjc3Mv
Q1NTUHJvcGVydHlMb25naGFuZC5jcHAgXAogICAgIGNzcy9DU1NSZWZsZWN0VmFsdWUuY3BwIFwK
ICAgICBjc3MvQ1NTUnVsZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggYjdlNTMzNC4uNmVjOGM4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0yOTM1Nyw2ICsyOTM1NywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlEYXR1bS5jcHAiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NT
UHJvcGVydHlEYXR1bS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cY3NzXENTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YzhiODhlYy4uODgzOTA0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE0NTYsNiArMTQ1Niw4IEBACiAJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURGQSAv
KiBKU0lEQkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi87IH07CiAJ
CTgyQjY1ODk4MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTcxMTg5RTM5MjAw
RTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODJCNjU4OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAg
Ki87IH07CisJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyRTNEOERD
MTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLzsgfTsKKwkJODJFM0Q4
REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAv
KiBDU1NQcm9wZXJ0eURhdHVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5
RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsKIAkJODQx
OUQyQTgxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNTEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCAqLzsgfTsKIAkJODQx
OUQyQTkxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYxMjBEOTJE
MDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwpAQCAtNzM4NCw2
ICs3Mzg2LDggQEAKIAkJODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCQ3Vyc29yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0
b3JDU1NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JD
U1NTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkI2NTg5OTExODlFNDc2
MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eURhdHVt
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJFM0Q4REQxMjJFQTBEMTAwM0FF
NUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUHJvcGVydHlEYXR1bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5
RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5NTgsNiArMTY5NjIsOCBAQAogCQkJ
CUUxRUQ4QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgg
Ki8sCiAJCQkJQTgwRTZDQ0QwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmNwcCAqLywK
IAkJCQlBODBFNkNENTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuaCAqLywKKwkJCQk4
MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5jcHAgKi8sCisJCQkJ
ODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCAqLywKIAkJCQkw
RjZFQ0Q0NDBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5jcHAgKi8sCiAJ
CQkJMEY2RUNENDMwRjI1MkYzNzAwQkRFMjcxIC8qIENTU1Byb3BlcnR5TG9uZ2hhbmQuaCAqLywK
IAkJCQlCQ0VBNDc4OTA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTUHJvcGVydHlOYW1lcy5pbiAqLywK
QEAgLTIwNDMyLDYgKzIwNDM4LDcgQEAKIAkJCQk4OTg3ODVCOTEyMkNBMkE3MDAzQUFCREEgLyog
SlNNZXRhZGF0YUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVGMTEyMkUxRTg3
MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVG
NTEyMkUxRUFDMDAzQUFCREEgLyogSlNGaWxlUmVhZGVyU3luYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMjI4OTUsNiArMjI5MDIsNyBAQAogCQkJCTg5ODc4NUI4MTIyQ0EyQTcwMDNB
QUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1
RjAxMjJFMUU4NzAwM0FBQkRBIC8qIEpTRmlsZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4OTg3ODVGNDEyMkUxRUFDMDAzQUFCREEgLyogSlNGaWxlUmVhZGVyU3luYy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk4MkUzRDhERTEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlE
YXR1bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU0dyYW1t
YXIueSBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQppbmRleCBlYzUwN2JlLi40YzRkZWM1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
R3JhbW1hci55CkBAIC0zMTQsNyArMzE0LDcgQEAgd2Via2l0X2tleWZyYW1lX3J1bGU6CiA7CiAK
IHdlYmtpdF9kZWNsczoKLSAgICBXRUJLSVRfREVDTFNfU1lNICd7JyBtYXliZV9zcGFjZSBkZWNs
YXJhdGlvbl9saXN0ICd9JyB7CisgICAgV0VCS0lUX0RFQ0xTX1NZTSAneycgbWF5YmVfc3BhY2Vf
YmVmb3JlX2RlY2xhcmF0aW9uIGRlY2xhcmF0aW9uX2xpc3QgJ30nIHsKICAgICAgICAgLyogY2Fu
IGJlIGVtcHR5ICovCiAgICAgfQogOwpAQCAtOTAzLDggKzkwMywxNSBAQCB1bmFyeV9vcGVyYXRv
cjoKICAgfCAnKycgeyAkJCA9IDE7IH0KICAgOwogCittYXliZV9zcGFjZV9iZWZvcmVfZGVjbGFy
YXRpb246CisgICAgbWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNf
Y2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgp
OworICAgIH0KKyAgOworCiBydWxlc2V0OgotICAgIHNlbGVjdG9yX2xpc3QgJ3snIG1heWJlX3Nw
YWNlIGRlY2xhcmF0aW9uX2xpc3QgY2xvc2luZ19icmFjZSB7CisgICAgc2VsZWN0b3JfbGlzdCAn
eycgbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uIGRlY2xhcmF0aW9uX2xpc3QgY2xvc2lu
Z19icmFjZSB7CiAgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+
KHBhcnNlcik7CiAgICAgICAgICQkID0gcC0+Y3JlYXRlU3R5bGVSdWxlKCQxKTsKICAgICB9CkBA
IC0xMzU1LDYgKzEzNjIsOCBAQCBkZWNsYXJhdGlvbl9saXN0OgogCiBkZWNsX2xpc3Q6CiAgICAg
ZGVjbGFyYXRpb24gJzsnIG1heWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3Rh
dGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5U3Rh
cnQoKTsKICAgICAgICAgJCQgPSAkMTsKICAgICB9CiAgICAgfCBkZWNsYXJhdGlvbiBpbnZhbGlk
X2Jsb2NrX2xpc3QgbWF5YmVfc3BhY2UgewpAQCAtMTM2NCwxMiArMTM3MywxNiBAQCBkZWNsX2xp
c3Q6CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwgZXJyb3IgJzsnIG1heWJlX3Nw
YWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFy
c2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQoKTsKICAgICAgICAgJCQgPSBmYWxz
ZTsKICAgICB9CiAgICAgfCBlcnJvciBpbnZhbGlkX2Jsb2NrX2xpc3QgZXJyb3IgJzsnIG1heWJl
X3NwYWNlIHsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfCBkZWNsX2xpc3QgZGVj
bGFyYXRpb24gJzsnIG1heWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGlj
X2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQo
KTsKICAgICAgICAgJCQgPSAkMTsKICAgICAgICAgaWYgKCQyKQogICAgICAgICAgICAgJCQgPSAk
MjsKQEAgLTEzODYsMTUgKzEzOTksMjEgQEAgZGVjbGFyYXRpb246CiAgICAgcHJvcGVydHkgJzon
IG1heWJlX3NwYWNlIGV4cHIgcHJpbyB7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgICAgIENT
U1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIGJv
b2wgaXNQcm9wZXJ0eVBhcnNlZCA9IGZhbHNlOwogICAgICAgICBpZiAoJDEgJiYgJDQpIHsKICAg
ICAgICAgICAgIHAtPm1fdmFsdWVMaXN0ID0gcC0+c2lua0Zsb2F0aW5nVmFsdWVMaXN0KCQ0KTsK
ICAgICAgICAgICAgIGludCBvbGRQYXJzZWRQcm9wZXJ0aWVzID0gcC0+bV9udW1QYXJzZWRQcm9w
ZXJ0aWVzOwogICAgICAgICAgICAgJCQgPSBwLT5wYXJzZVZhbHVlKCQxLCAkNSk7Ci0gICAgICAg
ICAgICBpZiAoISQkKQorICAgICAgICAgICAgaWYgKCEkJCkgeworICAgICAgICAgICAgICAgIGlm
IChzdGF0aWNfY2FzdDxpbnQ+KHAtPm1fbnVtUGFyc2VkUHJvcGVydGllcykgPT0gb2xkUGFyc2Vk
UHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAgaXNQcm9wZXJ0eVBhcnNlZCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgcC0+cm9sbGJhY2tMYXN0UHJvcGVydGllcyhwLT5tX251bVBhcnNl
ZFByb3BlcnRpZXMgLSBvbGRQYXJzZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAgZGVs
ZXRlIHAtPm1fdmFsdWVMaXN0OwogICAgICAgICAgICAgcC0+bV92YWx1ZUxpc3QgPSAwOwogICAg
ICAgICB9CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZCgkNSwgaXNQcm9wZXJ0eVBhcnNlZCk7
CiAgICAgfQogICAgIHwKICAgICB2YXJpYWJsZV9yZWZlcmVuY2UgbWF5YmVfc3BhY2UgewpAQCAt
MTQxNywxMSArMTQzNiwxNSBAQCBkZWNsYXJhdGlvbjoKICAgICAgICAgLyogVGhlIGRlZmF1bHQg
bW92YWJsZSB0eXBlIHRlbXBsYXRlIGhhcyBsZXR0ZXItc3BhY2luZzogLm5vbmU7ICBIYW5kbGUg
dGhpcyBieSBsb29raW5nIGZvcgogICAgICAgICBlcnJvciB0b2tlbnMgYXQgdGhlIHN0YXJ0IG9m
IGFuIGV4cHIsIHJlY292ZXIgdGhlIGV4cHIgYW5kIHRoZW4gdHJlYXQgYXMgYW4gZXJyb3IsIGNs
ZWFuaW5nCiAgICAgICAgIHVwIGFuZCBkZWxldGluZyB0aGUgc2hpZnRlZCBleHByLiAgKi8KKyAg
ICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAg
ICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0gZmFs
c2U7CiAgICAgfQogICAgIHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXhwciBwcmlv
IGVycm9yIHsKICAgICAgICAgLyogV2hlbiB3ZSBlbmNvdW50ZXIgc29tZXRoaW5nIGxpa2UgcCB7
Y29sb3I6IHJlZCAhaW1wb3J0YW50IGZhaWw7fSB3ZSBzaG91bGQgZHJvcCB0aGUgZGVjbGFyYXRp
b24gKi8KKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFy
c2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAg
ICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwKQEAgLTE0MzIsMTEgKzE0NTUsMTUgQEAgZGVjbGFy
YXRpb246CiAgICAgfAogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSB7CiAgICAgICAgIC8q
IGRpdiB7IGZvbnQtZmFtaWx5OiB9IEp1c3QgcmVkdWNlIGF3YXkgdGhpcyBwcm9wZXJ0eSB3aXRo
IG5vIHZhbHVlLiAqLworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJz
ZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsK
ICAgICAgICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfAogICAgIHByb3BlcnR5ICc6JyBtYXli
ZV9zcGFjZSBlcnJvciB7CiAgICAgICAgIC8qIGlmIHdlIGNvbWUgYWNyb3NzIHJ1bGVzIHdpdGgg
aW52YWxpZCB2YWx1ZXMgbGlrZSB0aGlzIGNhc2U6IHAgeyB3ZWlnaHQ6ICo7IH0sIGp1c3QgZGlz
Y2FyZCB0aGUgcnVsZSAqLworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQ
YXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNl
KTsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCBiL1dlYkNvcmUvY3NzL0NTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggZjc3NTlmNC4uNDA2ZmQ5MSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCkBAIC04Myw2ICs4Myw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0Tm9kZShOb2RlKiBub2RlKSB7IG1fbm9kZSA9IG5vZGU7IH0KIAorICAg
IE5vZGUqIG5vZGUoKSB7IHJldHVybiBtX25vZGU7IH0KKwogICAgIHZpcnR1YWwgYm9vbCBpc011
dGFibGVTdHlsZURlY2xhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmly
dHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNjg3MjM1Zi4uNTU3
ZWQyZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xNDcsNyArMTQ3LDEwIEBAIENTU1BhcnNlcjo6Q1NTUGFy
c2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1fZGVmYXVsdE5hbWVzcGFjZShzdGFyQXRv
bSkKICAgICAsIG1fcnVsZUJvZHlTdGFydE9mZnNldCgwKQogICAgICwgbV9ydWxlQm9keUVuZE9m
ZnNldCgwKQotICAgICwgbV9ydWxlUmFuZ2VzKDApCisgICAgLCBtX3Byb3BlcnR5U3RhcnRPZmZz
ZXQoVUlOVF9NQVgpCisgICAgLCBtX3Byb3BlcnR5RW5kT2Zmc2V0KFVJTlRfTUFYKQorICAgICwg
bV9ydWxlUmFuZ2VNYXAoMCkKKyAgICAsIG1fY3VycmVudFN0eWxlRGF0YSgwKQogICAgICwgbV9k
YXRhKDApCiAgICAgLCB5eV9zdGFydCgxKQogICAgICwgbV9saW5lTnVtYmVyKDApCkBAIC0xNTks
NiArMTYyLDcgQEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nKQogI2lm
IFlZREVCVUcgPiAwCiAgICAgY3NzeXlkZWJ1ZyA9IDE7CiAjZW5kaWYKKyAgICBDU1NQcm9wZXJ0
eURhdHVtOjppbml0KCk7CiB9CiAKIENTU1BhcnNlcjo6fkNTU1BhcnNlcigpCkBAIC0yMjMsMTYg
KzIyNywxOSBAQCB2b2lkIENTU1BhcnNlcjo6c2V0dXBQYXJzZXIoY29uc3QgY2hhciogcHJlZml4
LCBjb25zdCBTdHJpbmcmIHN0cmluZywgY29uc3QgY2hhcgogICAgIHJlc2V0UnVsZUJvZHlNYXJr
cygpOwogfQogCi12b2lkIENTU1BhcnNlcjo6cGFyc2VTaGVldChDU1NTdHlsZVNoZWV0KiBzaGVl
dCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIsIFN0eWxlUnVsZVJh
bmdlcyogcnVsZVJhbmdlTWFwKQordm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoQ1NTU3R5bGVT
aGVldCogc2hlZXQsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBT
dHlsZVJ1bGVSYW5nZU1hcCogcnVsZVJhbmdlTWFwKQogewogICAgIG1fc3R5bGVTaGVldCA9IHNo
ZWV0OwogICAgIG1fZGVmYXVsdE5hbWVzcGFjZSA9IHN0YXJBdG9tOyAvLyBSZXNldCB0aGUgZGVm
YXVsdCBuYW1lc3BhY2UuCi0gICAgbV9ydWxlUmFuZ2VzID0gcnVsZVJhbmdlTWFwOworICAgIG1f
cnVsZVJhbmdlTWFwID0gcnVsZVJhbmdlTWFwOworICAgIGlmIChydWxlUmFuZ2VNYXApCisgICAg
ICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CiAK
ICAgICBtX2xpbmVOdW1iZXIgPSBzdGFydExpbmVOdW1iZXI7CiAgICAgc2V0dXBQYXJzZXIoIiIs
IHN0cmluZywgIiIpOwogICAgIGNzc3l5cGFyc2UodGhpcyk7Ci0gICAgbV9ydWxlUmFuZ2VzID0g
MDsKKyAgICBtX3J1bGVSYW5nZU1hcCA9IDA7CisgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gMDsK
ICAgICBtX3J1bGUgPSAwOwogfQogCkBAIC0zMjksMTAgKzMzNiwxNCBAQCB2b2lkIENTU1BhcnNl
cjo6cGFyc2VTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHN0cmluZywgRG9jdW1lbnQqIGRvYywgQ1NT
U2VsZWN0b3JMaQogICAgIG1fc2VsZWN0b3JMaXN0Rm9yUGFyc2VTZWxlY3RvciA9IDA7CiB9CiAK
LWJvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nJiBzdHJpbmcpCitib29sIENTU1BhcnNlcjo6
cGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVjbGFyYXRpb24s
IGNvbnN0IFN0cmluZyYgc3RyaW5nLCBDU1NTdHlsZVNvdXJjZURhdGEqIHN0eWxlU291cmNlRGF0
YSkKIHsKKyAgICAvLyBMZW5ndGggb2YgdGhlICJALXdlYmtpdC1kZWNsc3siIHByZWZpeAorICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSAxNTsKKwogICAgIEFTU0VSVCgh
ZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKSB8fCBkZWNsYXJhdGlvbi0+c3R5bGVzaGVldCgpLT5p
c0NTU1N0eWxlU2hlZXQoKSk7CiAgICAgbV9zdHlsZVNoZWV0ID0gc3RhdGljX2Nhc3Q8Q1NTU3R5
bGVTaGVldCo+KGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkpOworICAgIG1fY3VycmVudFN0eWxl
RGF0YSA9IHN0eWxlU291cmNlRGF0YTsKIAogICAgIHNldHVwUGFyc2VyKCJALXdlYmtpdC1kZWNs
c3siLCBzdHJpbmcsICJ9ICIpOwogICAgIGNzc3l5cGFyc2UodGhpcyk7CkBAIC0zNDcsNiArMzU4
LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QKICAgICAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7
CiAgICAgfQogCisgICAgaWYgKG1fY3VycmVudFN0eWxlRGF0YSkgeworICAgICAgICBtX2N1cnJl
bnRTdHlsZURhdGEtPnN0eWxlQm9keVJhbmdlLmZpcnN0ID0gMDsKKyAgICAgICAgbV9jdXJyZW50
U3R5bGVEYXRhLT5zdHlsZUJvZHlSYW5nZS5zZWNvbmQgPSBzdHJpbmcubGVuZ3RoKCk7CisgICAg
ICAgIGZvciAoVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4g
Pjo6aXRlcmF0b3IgaXQgPSBtX2N1cnJlbnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5iZWdpbigp
OyBpdCAhPSBtX2N1cnJlbnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5lbmQoKTsgKytpdCkgewor
ICAgICAgICAgICAgKCppdCkuc2Vjb25kLmZpcnN0IC09IHByZWZpeExlbmd0aDsKKyAgICAgICAg
ICAgICgqaXQpLnNlY29uZC5zZWNvbmQgLT0gcHJlZml4TGVuZ3RoOworICAgICAgICB9CisgICAg
fQorCisgICAgaWYgKCFtX3J1bGVSYW5nZU1hcCkKKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRh
ID0gMDsKICAgICByZXR1cm4gb2s7CiB9CiAKQEAgLTUzODQsOCArNTQwNiwxMiBAQCBDU1NSdWxl
KiBDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUnVsZShWZWN0b3I8Q1NTU2VsZWN0b3IqPiogc2VsZWN0
b3JzKQogICAgICAgICBydWxlLT5zZXREZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbjo6Y3JlYXRlKHJ1bGUuZ2V0KCksIG1fcGFyc2VkUHJvcGVydGllcywgbV9udW1QYXJzZWRQ
cm9wZXJ0aWVzKSk7CiAgICAgICAgIHJlc3VsdCA9IHJ1bGUuZ2V0KCk7CiAgICAgICAgIG1fcGFy
c2VkU3R5bGVPYmplY3RzLmFwcGVuZChydWxlLnJlbGVhc2UoKSk7Ci0gICAgICAgIGlmIChtX3J1
bGVSYW5nZXMpCi0gICAgICAgICAgICBtX3J1bGVSYW5nZXMtPnNldChyZXN1bHQsIHN0ZDo6cGFp
cjx1bnNpZ25lZCwgdW5zaWduZWQ+KG1fcnVsZUJvZHlTdGFydE9mZnNldCwgbV9ydWxlQm9keUVu
ZE9mZnNldCkpOworICAgICAgICBpZiAobV9ydWxlUmFuZ2VNYXApIHsKKyAgICAgICAgICAgIEFT
U0VSVChtX2N1cnJlbnRTdHlsZURhdGEpOworICAgICAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRh
LT5zdHlsZUJvZHlSYW5nZSA9IFNvdXJjZVJhbmdlKG1fcnVsZUJvZHlTdGFydE9mZnNldCwgbV9y
dWxlQm9keUVuZE9mZnNldCk7CisgICAgICAgICAgICBtX3J1bGVSYW5nZU1hcC0+c2V0KHJlc3Vs
dCwgbV9jdXJyZW50U3R5bGVEYXRhLnJlbGVhc2UoKSk7CisgICAgICAgICAgICBtX2N1cnJlbnRT
dHlsZURhdGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOworICAgICAgICB9CiAgICAg
fQogICAgIHJlc2V0UnVsZUJvZHlNYXJrcygpOwogICAgIGNsZWFyUHJvcGVydGllcygpOwpAQCAt
NTYzOCw3ICs1NjY0LDkgQEAgdm9pZCBDU1NQYXJzZXI6OnVwZGF0ZUxhc3RTZWxlY3RvckxpbmVB
bmRQb3NpdGlvbigpCiB2b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQoKQogewogICAg
IHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKLSAgICBpZiAoIW1fcnVsZUJvZHlT
dGFydE9mZnNldCB8fCBvZmZzZXQgPCBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpCisgICAgaWYgKCp5
eXRleHQgPT0gJ3snKQorICAgICAgICArK29mZnNldDsgLy8gc2tpcCB0aGUgcnVsZSBib2R5IG9w
ZW5pbmcgYnJhY2UKKyAgICBpZiAob2Zmc2V0ID4gbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KQogICAg
ICAgICBtX3J1bGVCb2R5U3RhcnRPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTU2NDksNiArNTY3
NywxNDIgQEAgdm9pZCBDU1NQYXJzZXI6Om1hcmtSdWxlQm9keUVuZCgpCiAgICAgICAgIG1fcnVs
ZUJvZHlFbmRPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKK3ZvaWQgQ1NTUGFyc2VyOjptYXJrUHJvcGVy
dHlTdGFydCgpCit7CisgICAgdW5zaWduZWQgb2Zmc2V0ID0geXl0ZXh0IC0gbV9kYXRhOworICAg
IG1fcHJvcGVydHlTdGFydE9mZnNldCA9IG9mZnNldDsKK30KKworLy8gc3RhdGljCit1bnNpZ25l
ZCBDU1NQYXJzZXI6OmZpbmRJbXBvcnRhbnRJblZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCit7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGltcG9ydGFudFN0cmluZyA9ICJpbXBvcnRhbnQiOwor
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbXBvcnRhbnRMZW5ndGggPSA5OworICAgIGVudW0g
U3RhdGUgeworICAgICAgICBJTklUSUFMX1NUQVRFLAorICAgICAgICBTVFJJTkdfU1RBVEUsCisg
ICAgICAgIENPTU1FTlRfU1RBVEUsCisgICAgICAgIEJBTkdfU1RBVEUKKyAgICB9OworCisgICAg
dW5zaWduZWQgdmFsdWVMZW5ndGggPSB2YWx1ZS5sZW5ndGgoKTsKKyAgICBpZiAodmFsdWVMZW5n
dGggPCBpbXBvcnRhbnRMZW5ndGggKyAxKQorICAgICAgICByZXR1cm4gVUlOVF9NQVg7CisgICAg
dW5zaWduZWQgbWF4VG9rZW5TdGFydEluZGV4ID0gdmFsdWVMZW5ndGggLSBpbXBvcnRhbnRMZW5n
dGg7CisgICAgdW5zaWduZWQgY3VycmVudEluZGV4ID0gMDsKKyAgICB1bnNpZ25lZCBiYW5nSW5k
ZXggPSBVSU5UX01BWDsKKyAgICBTdGF0ZSBzdGF0ZSA9IElOSVRJQUxfU1RBVEU7CisgICAgVUNo
YXIgc3RyaW5nVGVybWluYXRvciA9IHN0YXRpY19jYXN0PFVDaGFyPigwKTsKKyAgICBjb25zdCBV
Q2hhciogY2hhcmFjdGVycyA9IHZhbHVlLmNoYXJhY3RlcnMoKTsKKyAgICB3aGlsZSAoY3VycmVu
dEluZGV4IDwgbWF4VG9rZW5TdGFydEluZGV4KSB7CisgICAgICAgIFVDaGFyIGNoID0gY2hhcmFj
dGVyc1tjdXJyZW50SW5kZXhdOworICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgIGNh
c2UgSU5JVElBTF9TVEFURToKKyAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAg
IGNhc2UgJy8nOgorICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCB2YWx1ZUxlbmd0
aCAtIDEgJiYgY2hhcmFjdGVyc1tjdXJyZW50SW5kZXggKyAxXSA9PSAnKicpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgICAgICAgICAgICAgICAgICAr
K2N1cnJlbnRJbmRleDsgLy8gc2tpcCB0aGUgZm9sbG93aW5nICcqJworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyEnOgorICAgICAg
ICAgICAgICAgIHN0YXRlID0gQkFOR19TVEFURTsKKyAgICAgICAgICAgICAgICBiYW5nSW5kZXgg
PSBjdXJyZW50SW5kZXg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
ICciJzoKKyAgICAgICAgICAgIGNhc2UgJ1wnJzoKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IFNU
UklOR19TVEFURTsKKyAgICAgICAgICAgICAgICBzdHJpbmdUZXJtaW5hdG9yID0gY2g7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
U1RSSU5HX1NUQVRFOgorICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgY2Fz
ZSAnXFwnOgorICAgICAgICAgICAgICAgICsrY3VycmVudEluZGV4OyAvLyBza2lwIHRoZSBlc2Nh
cGVkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAn
Iic6CisgICAgICAgICAgICBjYXNlICdcJyc6CisgICAgICAgICAgICAgICAgaWYgKGNoID09IHN0
cmluZ1Rlcm1pbmF0b3IpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElBTF9TVEFU
RTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIENPTU1FTlRfU1RBVEU6CisgICAgICAgICAgICBpZiAoY2ggPT0g
JyonICYmIGN1cnJlbnRJbmRleCA8IHZhbHVlTGVuZ3RoIC0gMSAmJiBjaGFyYWN0ZXJzW2N1cnJl
bnRJbmRleCArIDFdID09ICcvJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElBTF9T
VEFURTsKKyAgICAgICAgICAgICAgICArK2N1cnJlbnRJbmRleDsgLy8gc2tpcCB0aGUgZm9sbG93
aW5nICcvJworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
QkFOR19TVEFURToKKyAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAgIGNhc2Ug
JyAnOgorICAgICAgICAgICAgY2FzZSAnXHQnOgorICAgICAgICAgICAgY2FzZSAnXHInOgorICAg
ICAgICAgICAgY2FzZSAnXG4nOgorICAgICAgICAgICAgY2FzZSAnXGYnOgorICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGltcG9ydGFudEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGVja0lu
ZGV4ID0gY3VycmVudEluZGV4OworICAgICAgICAgICAgICAgIHdoaWxlIChpbXBvcnRhbnRJbmRl
eCA8IGltcG9ydGFudExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVy
c1tjaGVja0luZGV4KytdICE9IGltcG9ydGFudFN0cmluZ1tpbXBvcnRhbnRJbmRleCsrXSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBJTklUSUFMX1NUQVRFOworICAgICAgICAg
ICAgICAgICAgICAgICAgLS1jdXJyZW50SW5kZXg7IC8vIHJlLWNoZWNrIHRoZSBzYW1lIHBvc2l0
aW9uIGluIHRoZSBJTklUSUFMIHN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFuZ0lu
ZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICArK2N1cnJl
bnRJbmRleDsKKyAgICB9CisgICAgcmV0dXJuIFVJTlRfTUFYOworfQorCit2b2lkIENTU1BhcnNl
cjo6bWFya1Byb3BlcnR5RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5
UGFyc2VkKQoreworICAgIHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBp
ZiAoKnl5dGV4dCA9PSAnOycpIC8vIGluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3BlcnR5
IHRleHQKKyAgICAgICAgKytvZmZzZXQ7CisgICAgbV9wcm9wZXJ0eUVuZE9mZnNldCA9IG9mZnNl
dDsKKyAgICBpZiAobV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0ICE9IFVJTlRfTUFYICYmIG1fY3VycmVu
dFN0eWxlRGF0YSkgeworICAgICAgICAvLyBUaGlzIHN0dWZmIGlzIG9ubHkgZXhlY3V0ZWQgd2hl
biB0aGUgc3R5bGUgZGF0YSByZXRyaWV2YWwgaXMgcmVxdWVzdGVkIGJ5IGNsaWVudC4KKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgc3RhcnQgPSBtX3Byb3BlcnR5U3RhcnRPZmZzZXQ7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGVuZCA9IG1fcHJvcGVydHlFbmRPZmZzZXQ7CisgICAgICAgIEFTU0VS
VChzdGFydCA8IGVuZCk7CisgICAgICAgIFN0cmluZyBwcm9wZXJ0eVN0cmluZyA9IFN0cmluZyht
X2RhdGEgKyBzdGFydCwgZW5kIC0gc3RhcnQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICBp
ZiAocHJvcGVydHlTdHJpbmcuZW5kc1dpdGgoIjsiLCB0cnVlKSkKKyAgICAgICAgICAgIHByb3Bl
cnR5U3RyaW5nID0gcHJvcGVydHlTdHJpbmcubGVmdChwcm9wZXJ0eVN0cmluZy5sZW5ndGgoKSAt
IDEpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBwcm9wZXJ0eUNvbXBvbmVudHM7CisgICAgICAg
IHNpemVfdCBjb2xvbkluZGV4ID0gcHJvcGVydHlTdHJpbmcuZmluZCgiOiIpOworICAgICAgICBB
U1NFUlQoY29sb25JbmRleCAhPSBub3RGb3VuZCk7CisKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBw
cm9wZXJ0eVN0cmluZy5sZWZ0KGNvbG9uSW5kZXgpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAg
ICBTdHJpbmcgdmFsdWUgPSBwcm9wZXJ0eVN0cmluZy5zdWJzdHJpbmcoY29sb25JbmRleCArIDEs
IHByb3BlcnR5U3RyaW5nLmxlbmd0aCgpKS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgYm9v
bCBpc0ltcG9ydGFudCA9IGlzSW1wb3J0YW50Rm91bmQ7CisgICAgICAgIGlmIChpc0ltcG9ydGFu
dCB8fCAhaXNQcm9wZXJ0eVBhcnNlZCkgeworICAgICAgICAgICAgLy8gTmVlZCB0byBzdHJpcCAi
IXt3fWltcG9ydGFudCIgKHdpdGggdGhlIGZvbGxvd2luZyB0ZXh0KSBpZiB0aGVyZSdzIGEgY2hh
bmNlIHRoYXQgaXQgaXMgcHJlc2VudCBpbiB0aGUgdmFsdWUuCisgICAgICAgICAgICB1bnNpZ25l
ZCBpbXBvcnRhbnRPZmZzZXQgPSBmaW5kSW1wb3J0YW50SW5WYWx1ZSh2YWx1ZSk7CisgICAgICAg
ICAgICBpZiAoaW1wb3J0YW50T2Zmc2V0ICE9IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAgICAg
aXNJbXBvcnRhbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUubGVmdChp
bXBvcnRhbnRPZmZzZXQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSByYW5nZSBpcyByZWxhdGl2ZSB0byB0aGUgZGVj
bGFyYXRpb24gc3RhcnQgb2Zmc2V0LgorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnByb3Bl
cnR5RGF0YS5hcHBlbmQoCisgICAgICAgICAgICBzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwg
U291cmNlUmFuZ2U+KENTU1Byb3BlcnR5RGF0dW0obmFtZSwgdmFsdWUsIGlzSW1wb3J0YW50LCBp
c1Byb3BlcnR5UGFyc2VkKSwgU291cmNlUmFuZ2UobV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0IC0gbV9y
dWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3Byb3BlcnR5RW5kT2Zmc2V0IC0gbV9ydWxlQm9keVN0YXJ0
T2Zmc2V0KSkpOworICAgIH0KKyAgICByZXNldFByb3BlcnR5TWFya3MoKTsKK30KKwogc3RhdGlj
IGludCBjc3NQcm9wZXJ0eUlEKGNvbnN0IFVDaGFyKiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggNjIxMWU2Mi4uMzU3YTljZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVk
ZSAiQ1NTUGFyc2VyVmFsdWVzLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgogI2lu
Y2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTUsMTggKzU2LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIENTU1BhcnNlciB7CiAgICAgcHVibGljOgotICAgICAgICB0eXBlZGVm
IEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gPiBT
dHlsZVJ1bGVSYW5nZXM7Ci0KICAgICAgICAgQ1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZyA9
IHRydWUpOwogICAgICAgICB+Q1NTUGFyc2VyKCk7CiAKLSAgICAgICAgdm9pZCBwYXJzZVNoZWV0
KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyID0gMCwg
U3R5bGVSdWxlUmFuZ2VzKiBydWxlUmFuZ2VNYXAgPSAwKTsKKyAgICAgICAgdm9pZCBwYXJzZVNo
ZWV0KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyID0g
MCwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCA9IDApOwogICAgICAgICBQYXNzUmVm
UHRyPENTU1J1bGU+IHBhcnNlUnVsZShDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CiAg
ICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VLZXlmcmFtZVJ1bGUoQ1NTU3R5bGVTaGVl
dCosIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBib29sIHBhcnNlVmFsdWUoQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24qLCBpbnQgcHJvcElkLCBjb25zdCBTdHJpbmcmLCBib29sIGltcG9ydGFu
dCk7CiAgICAgICAgIHN0YXRpYyBib29sIHBhcnNlQ29sb3IoUkdCQTMyJiBjb2xvciwgY29uc3Qg
U3RyaW5nJiwgYm9vbCBzdHJpY3QgPSBmYWxzZSk7CiAgICAgICAgIGJvb2wgcGFyc2VDb2xvcihD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYpOwotICAgICAgICBib29s
IHBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJp
bmcmKTsKKyAgICAgICAgYm9vbCBwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiwgY29uc3QgU3RyaW5nJiwgQ1NTU3R5bGVTb3VyY2VEYXRhKiBzdHlsZVNvdXJjZURh
dGEgPSAwKTsKICAgICAgICAgYm9vbCBwYXJzZU1lZGlhUXVlcnkoTWVkaWFMaXN0KiwgY29uc3Qg
U3RyaW5nJik7CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CkBAIC0yNDQs
MTAgKzI0MywxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIHRva2VuaXplciBt
ZXRob2RzIGFuZCBkYXRhCiAgICAgICAgIHVuc2lnbmVkIG1fcnVsZUJvZHlTdGFydE9mZnNldDsK
ICAgICAgICAgdW5zaWduZWQgbV9ydWxlQm9keUVuZE9mZnNldDsKLSAgICAgICAgU3R5bGVSdWxl
UmFuZ2VzKiBtX3J1bGVSYW5nZXM7CisgICAgICAgIHVuc2lnbmVkIG1fcHJvcGVydHlTdGFydE9m
ZnNldDsKKyAgICAgICAgdW5zaWduZWQgbV9wcm9wZXJ0eUVuZE9mZnNldDsKKyAgICAgICAgU3R5
bGVSdWxlUmFuZ2VNYXAqIG1fcnVsZVJhbmdlTWFwOworICAgICAgICBSZWZQdHI8Q1NTU3R5bGVT
b3VyY2VEYXRhPiBtX2N1cnJlbnRTdHlsZURhdGE7CiAgICAgICAgIHZvaWQgbWFya1J1bGVCb2R5
U3RhcnQoKTsKICAgICAgICAgdm9pZCBtYXJrUnVsZUJvZHlFbmQoKTsKKyAgICAgICAgdm9pZCBt
YXJrUHJvcGVydHlTdGFydCgpOworICAgICAgICB2b2lkIG1hcmtQcm9wZXJ0eUVuZChib29sIGlz
SW1wb3J0YW50Rm91bmQsIGJvb2wgaXNQcm9wZXJ0eVBhcnNlZCk7CiAgICAgICAgIHZvaWQgcmVz
ZXRSdWxlQm9keU1hcmtzKCkgeyBtX3J1bGVCb2R5U3RhcnRPZmZzZXQgPSBtX3J1bGVCb2R5RW5k
T2Zmc2V0ID0gMDsgfQorICAgICAgICB2b2lkIHJlc2V0UHJvcGVydHlNYXJrcygpIHsgbV9wcm9w
ZXJ0eVN0YXJ0T2Zmc2V0ID0gbV9wcm9wZXJ0eUVuZE9mZnNldCA9IFVJTlRfTUFYOyB9CisgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBmaW5kSW1wb3J0YW50SW5WYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlKTsKICAgICAgICAgaW50IGxleCh2b2lkKiB5eWx2YWwpOwogICAgICAgICBpbnQgdG9rZW4o
KSB7IHJldHVybiB5eVRvazsgfQogICAgICAgICBVQ2hhciogdGV4dChpbnQqIGxlbmd0aCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcCBiL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5RGF0dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjdkYjU0NzcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVt
LmNwcApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmZGVmIFNLSVBf
U1RBVElDX0NPTlNUUlVDVE9SU19PTl9HQ0MKKyNkZWZpbmUgQ1NTUFJPUEVSVFlEQVRVTV9ISURF
X0dMT0JBTFMgMQorI2VuZGlmCisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCisKKyNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9TdGF0aWNDb25zdHJ1Y3Rv
cnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9w
ZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCBp
bXBvcnRhbnQsIGJvb2wgcGFyc2VkKQorICAgIDogbmFtZShuYW1lKQorICAgICwgdmFsdWUodmFs
dWUpCisgICAgLCBpbXBvcnRhbnQoaW1wb3J0YW50KQorICAgICwgcGFyc2VkKHBhcnNlZCkKK3sK
K30KKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1bShjb25zdCBDU1NQcm9wZXJ0
eURhdHVtJiBvdGhlcikKKyAgICA6IG5hbWUob3RoZXIubmFtZSkKKyAgICAsIHZhbHVlKG90aGVy
LnZhbHVlKQorICAgICwgaW1wb3J0YW50KG90aGVyLmltcG9ydGFudCkKKyAgICAsIHBhcnNlZChv
dGhlci5wYXJzZWQpCit7Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06OkNTU1Byb3BlcnR5RGF0dW0o
KQorICAgIDogbmFtZSgiIikKKyAgICAsIHZhbHVlKCIiKQorICAgICwgaW1wb3J0YW50KGZhbHNl
KQorICAgICwgcGFyc2VkKGZhbHNlKQoreworfQorCitDU1NQcm9wZXJ0eURhdHVtJiBDU1NQcm9w
ZXJ0eURhdHVtOjpvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpCit7Cisg
ICAgbmFtZSA9IG90aGVyLm5hbWU7CisgICAgdmFsdWUgPSBvdGhlci52YWx1ZTsKKyAgICBpbXBv
cnRhbnQgPSBvdGhlci5pbXBvcnRhbnQ7CisgICAgcGFyc2VkID0gb3RoZXIucGFyc2VkOworICAg
IHJldHVybiAqdGhpczsKK30KKworU3RyaW5nIENTU1Byb3BlcnR5RGF0dW06OnRvU3RyaW5nKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW5hbWUgJiYgdmFsdWUgPT0gImUiKQorICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CisKKyAgICBTdHJpbmcgcmVzdWx0ID0gbmFtZTsKKyAgICByZXN1bHQgKz0gIjog
IjsKKyAgICByZXN1bHQgKz0gdmFsdWU7CisgICAgaWYgKGltcG9ydGFudCkKKyAgICAgICAgcmVz
dWx0ICs9ICIgIWltcG9ydGFudCI7CisgICAgcmVzdWx0ICs9ICI7IjsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCisvLyBHbG9iYWwgaW5pdCByb3V0aW5lcworREVGSU5FX0dMT0JBTChDU1NQcm9w
ZXJ0eURhdHVtLCBlbXB0eUNTU1Byb3BlcnR5RGF0dW0sICIiLCAiZSIsIGZhbHNlLCBmYWxzZSkK
KworLy8gc3RhdGljCit2b2lkIENTU1Byb3BlcnR5RGF0dW06OmluaXQoKQoreworICAgIHN0YXRp
YyBib29sIGluaXRpYWxpemVkOworICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgbmV3
ICgodm9pZCAqKSAmZW1wdHlDU1NQcm9wZXJ0eURhdHVtKSBDU1NQcm9wZXJ0eURhdHVtKCIiLCAi
ZSIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCituYW1lc3BhY2UgV1RGIHsKKworV2ViQ29y
ZTo6Q1NTUHJvcGVydHlEYXR1bSBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+
OjplbXB0eVZhbHVlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdlYkNvcmU6OkNTU1By
b3BlcnR5RGF0dW0sIGVtcHR5SGFzaFZhbHVlLCAoIiIsICJoIiwgZmFsc2UsIGZhbHNlKSk7Cisg
ICAgcmV0dXJuIGVtcHR5SGFzaFZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaCBiL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5RGF0dW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDdiNzlh
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5oCkBAIC0w
LDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBDU1NQcm9wZXJ0eURhdHVtX2gKKyNkZWZpbmUgQ1NTUHJvcGVy
dHlEYXR1bV9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHV0aWxp
dHk+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIENTU1N0eWxlUnVsZTsKKwordHlwZWRlZiBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2ln
bmVkPiBTb3VyY2VSYW5nZTsKKworc3RydWN0IENTU1Byb3BlcnR5RGF0dW0geworICAgIHN0YXRp
YyB2b2lkIGluaXQoKTsKKworICAgIENTU1Byb3BlcnR5RGF0dW0oY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBwYXJzZWQpOworICAg
IENTU1Byb3BlcnR5RGF0dW0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpOworICAgIENT
U1Byb3BlcnR5RGF0dW0oKTsKKyAgICBBTFdBWVNfSU5MSU5FIH5DU1NQcm9wZXJ0eURhdHVtKCkg
eyB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuIG5hbWUgPT0gb3RoZXIubmFtZSAmJiB2YWx1ZSA9PSBvdGhlci52YWx1
ZSAmJiBpbXBvcnRhbnQgPT0gb3RoZXIuaW1wb3J0YW50ICYmIHBhcnNlZCA9PSBvdGhlci5wYXJz
ZWQ7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisKKyAgICBDU1NQcm9wZXJ0eURh
dHVtJiBvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpOworICAgIFN0cmlu
ZyB0b1N0cmluZygpIGNvbnN0OworCisgICAgU3RyaW5nIG5hbWU7CisgICAgU3RyaW5nIHZhbHVl
OworICAgIGJvb2wgaW1wb3J0YW50OworICAgIGJvb2wgcGFyc2VkOworfTsKK3R5cGVkZWYgc3Rk
OjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIGJvb2w+IFNvdXJjZUF3YXJlUHJvcGVydHlEYXR1bTsK
KworI2lmbmRlZiBDU1NQUk9QRVJUWURBVFVNX0hJREVfR0xPQkFMUworZXh0ZXJuIGNvbnN0IENT
U1Byb3BlcnR5RGF0dW0gZW1wdHlDU1NQcm9wZXJ0eURhdHVtOworI2VuZGlmCisKK3N0cnVjdCBD
U1NTdHlsZVNvdXJjZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NTdHlsZVNvdXJjZURhdGE+
IHsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IGNyZWF0ZSgpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU1N0eWxlU291cmNlRGF0YSgpKTsK
KyAgICB9CisKKyAgICAvLyBSYW5nZSBvZiB0aGUgc3R5bGUgdGV4dCBpbiB0aGUgZW5jbG9zaW5n
IHNvdXJjZSAoc3RhcnQgYW5kIGVuZCBvZmZzZXRzIGluY2x1c2l2ZSkuCisgICAgU291cmNlUmFu
Z2Ugc3R5bGVCb2R5UmFuZ2U7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVt
LCBTb3VyY2VSYW5nZT4gPiBwcm9wZXJ0eURhdGE7Cit9OwordHlwZWRlZiBIYXNoTWFwPENTU1N0
eWxlUnVsZSosIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4gU3R5bGVSdWxlUmFuZ2VNYXA7
CisKK3N0cnVjdCBDU1NQcm9wZXJ0eURhdHVtSGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goQ1NTUHJvcGVydHlEYXR1bSBrZXkpCisgICAgeworICAgICAgICByZXR1cm4gU3RyaW5nSGFz
aDo6aGFzaChrZXkubmFtZSkgKyBTdHJpbmdIYXNoOjpoYXNoKGtleS52YWx1ZSkgKyA3ICoga2V5
LmltcG9ydGFudCArIDMgKiBrZXkucGFyc2VkICsgMzE7CisgICAgfQorCisgICAgc3RhdGljIGJv
b2wgZXF1YWwoQ1NTUHJvcGVydHlEYXR1bSBhLCBDU1NQcm9wZXJ0eURhdHVtIGIpCisgICAgewor
ICAgICAgICByZXR1cm4gYS5uYW1lID09IGIubmFtZSAmJiBhLnZhbHVlID09IGIudmFsdWUgJiYg
YS5pbXBvcnRhbnQgPT0gYi5pbXBvcnRhbnQgJiYgYS5wYXJzZWQgPT0gYi5wYXJzZWQ7CisgICAg
fQorCisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSBmYWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKK3RlbXBsYXRlPD4g
c3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IHsKKyAgICB0eXBl
ZGVmIFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW1IYXNoIEhhc2g7Cit9OworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IDogR2VuZXJpY0hh
c2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bT4geworICAgIHN0YXRpYyBjb25zdCBi
b29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NTUHJv
cGVydHlEYXR1bSBlbXB0eVZhbHVlKCk7CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxl
dGVkVmFsdWUoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSYgc2xvdCkgeyBuZXcgKCZzbG90KSBX
ZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtKCIiLCAiRCIsIGZhbHNlLCBmYWxzZSk7IH0KKyAgICBz
dGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVt
JiBzbG90KSB7IHJldHVybiAhc2xvdC5uYW1lLmxlbmd0aCgpICYmIHNsb3QudmFsdWUgPT0gIkQi
OyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIENTU1Byb3BlcnR5RGF0
dW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggZmYxYzJhZi4uM2NhOGQzOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3IuaWRsCkBAIC0xODksNyArMTg5LDcgQEAgbW9kdWxlIGNvcmUgewogICAg
ICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0SW5saW5lU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91
dCBWYWx1ZSBzdHlsZSk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRDb21wdXRlZFN0
eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwogICAgICAgICBbaGFuZGxlcj1E
T01dIHZvaWQgZ2V0U3R5bGVTaGVldChpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IE9iamVjdCBz
dHlsZVNoZWV0KTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFJ1bGVSYW5nZXMoaW4g
bG9uZyBzdHlsZVNoZWV0SWQsIG91dCBWYWx1ZSByYW5nZXMpOworICAgICAgICBbaGFuZGxlcj1E
T01dIHZvaWQgZ2V0U3R5bGVTb3VyY2VEYXRhKGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgT2Jq
ZWN0IHN0eWxlU291cmNlRGF0YSk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBhcHBseVN0
eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIGluIFN0cmluZyBw
cm9wZXJ0eU5hbWUsIG91dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBWYWx1ZSBzdHlsZSwgb3V0IEFy
cmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHNldFN0
eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIG91dCBib29sZWFu
IHN1Y2Nlc3MpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShp
biBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29s
ZWFuIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
U3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4
IGMyZGM0ZjEuLmVlOWY0YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5j
cHAKQEAgLTM3LDExICszNywyMCBAQAogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisj
aW5jbHVkZSAiQ2FjaGUuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUg
IkRvY0xvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxl
bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJl
c291cmNlLmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIK
KyNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02
Nyw2ICs3Niw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTU3RvcmU6OnJlc2V0KCkKICAgICBtX3N0eWxl
U2hlZXRUb09mZnNldHMuY2xlYXIoKTsKICAgICBtX3N0eWxlU2hlZXRUb0lkLmNsZWFyKCk7CiAg
ICAgbV9pZFRvU3R5bGVTaGVldC5jbGVhcigpOworICAgIG1faWRUb1N0eWxlU2hlZXRUZXh0LmNs
ZWFyKCk7CiAgICAgbV9pZFRvRGlzYWJsZWRTdHlsZS5jbGVhcigpOwogICAgIG1fZG9jdW1lbnRO
b2RlVG9JbnNwZWN0b3JTdHlsZVNoZWV0TWFwLmNsZWFyKCk7CiAKQEAgLTEwNCw0OCArMTE0LDE4
MCBAQCBDU1NTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6aW5zcGVjdG9yU3R5bGVTaGVl
dChEb2N1bWVudCogb3duZXJEb2N1bWVudCwgYgogICAgIHJldHVybiBpbnNwZWN0b3JTdHlsZVNo
ZWV0OwogfQogCi1IYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBJbnNwZWN0b3JDU1NTdG9yZTo6
Z2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQorU3RyaW5nIEluc3BlY3Rv
ckNTU1N0b3JlOjpzdHlsZVNoZWV0VGV4dChsb25nIHN0eWxlU2hlZXRJZCkKIHsKKyAgICBJZFRv
U3R5bGVTaGVldFRleHRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvU3R5bGVTaGVldFRleHQuZmlu
ZChzdHlsZVNoZWV0SWQpOworICAgIGlmIChpdCAhPSBtX2lkVG9TdHlsZVNoZWV0VGV4dC5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIGl0LT5zZWNvbmQ7CisKKyAgICBDU1NTdHlsZVNoZWV0KiBzdHls
ZVNoZWV0ID0gc3R5bGVTaGVldEZvcklkKHN0eWxlU2hlZXRJZCk7CiAgICAgaWYgKCFzdHlsZVNo
ZWV0KQotICAgICAgICByZXR1cm4gSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4oKTsKLSAgICBS
ZWZQdHI8Q1NTUnVsZUxpc3Q+IG9yaWdpbmFsUnVsZUxpc3QgPSBDU1NSdWxlTGlzdDo6Y3JlYXRl
KHN0eWxlU2hlZXQsIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFN0cmlu
ZyB0ZXh0OworCisgICAgTm9kZSogb3duZXJOb2RlID0gc3R5bGVTaGVldC0+b3duZXJOb2RlKCk7
CisgICAgaWYgKG93bmVyTm9kZSAmJiBvd25lck5vZGUtPm5vZGVUeXBlKCkgPT0gTm9kZTo6RUxF
TUVOVF9OT0RFKSB7CisgICAgICAgIEVsZW1lbnQqIG93bmVyRWxlbWVudCA9IHN0YXRpY19jYXN0
PEVsZW1lbnQqPihvd25lck5vZGUpOworICAgICAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1l
KCkubG93ZXIoKSA9PSAic3R5bGUiKQorICAgICAgICAgICAgdGV4dCA9IGlubGluZVN0eWxlU2hl
ZXRUZXh0KHN0eWxlU2hlZXQpOworICAgIH0KKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAg
ICAgIHRleHQgPSByZXNvdXJjZVN0eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXQpOworCisgICAgaWYg
KCF0ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgbV9pZFRvU3R5bGVTaGVldFRleHQuc2V0KHN0eWxl
U2hlZXRJZCwgdGV4dCk7CisgICAgcmV0dXJuIHRleHQ7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JD
U1NTdG9yZTo6cmVzb3VyY2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0
KQoreworICAgIEtVUkwgc3R5bGVTaGVldFVSTCA9IHN0eWxlU2hlZXQtPmZpbmFsVVJMKCk7Cisg
ICAgRG9jdW1lbnQqIGRvYyA9IHN0eWxlU2hlZXQtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2Mp
CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsK
KyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAgaWYgKGVxdWFsSWdub3JpbmdG
cmFnbWVudElkZW50aWZpZXIoc3R5bGVTaGVldFVSTCwgZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdFVSTCgpKSkgeworICAgICAgICB0ZXh0RW5jb2RpbmdO
YW1lID0gZG9jLT5pbnB1dEVuY29kaW5nKCk7CisgICAgICAgIGJ1ZmZlciA9IGRvYy0+ZnJhbWUo
KS0+bG9hZGVyKCktPnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlRGF0
YSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsID0gc3R5bGVTaGVl
dFVSTC5zdHJpbmcoKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0g
ZG9jLT5kb2NMb2FkZXIoKS0+Y2FjaGVkUmVzb3VyY2UodXJsKTsKKyAgICAgICAgaWYgKCFjYWNo
ZWRSZXNvdXJjZSkKKyAgICAgICAgICAgIGNhY2hlZFJlc291cmNlID0gY2FjaGUoKS0+cmVzb3Vy
Y2VGb3JVUkwodXJsKTsKKworICAgICAgICBBU1NFUlQoY2FjaGVkUmVzb3VyY2UpOyAvLyBGSVhN
RShhcGF2bG92KTogVGhpcyBtaWdodCBiZSB0b28gYWdncmVzc2l2ZQorCisgICAgICAgIGJvb2wg
aXNVbnB1cmdlYWJsZSA9IHRydWU7CisgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZS0+aXNQdXJn
ZWFibGUoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlzIHB1cmdlYWJsZSB0
aGVuIG1ha2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAgICAgICAvLyBpdHMgZGF0YS4g
VGhpcyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgorICAgICAgICAgICAg
Ly8gZW1wdHkgU3RyaW5nLgorICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZS0+bWFrZVB1
cmdlYWJsZShmYWxzZSkpCisgICAgICAgICAgICAgICAgaXNVbnB1cmdlYWJsZSA9IGZhbHNlOwor
ICAgICAgICB9CisgICAgICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7CisgICAgICAgICAgICB0ZXh0
RW5jb2RpbmdOYW1lID0gY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCk7CisgICAgICAgICAgICBi
dWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAgICB9CisgICAgfQorCisgICAg
aWYgKGJ1ZmZlcikgeworICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcodGV4dEVuY29kaW5n
TmFtZSk7CisgICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKQorICAgICAgICAgICAgZW5j
b2RpbmcgPSBXaW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKKyAgICAgICAgcmV0dXJuIGVuY29kaW5n
LmRlY29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAgIH0KKworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHls
ZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIE5vZGUqIG93bmVy
Tm9kZSA9IHN0eWxlU2hlZXQtPm93bmVyTm9kZSgpOworICAgIGlmICghb3duZXJOb2RlIHx8IG93
bmVyTm9kZS0+bm9kZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUgfHwgbV9zdHlsZVNoZWV0
VG9JZC5maW5kKHN0eWxlU2hlZXQpID09IG1fc3R5bGVTaGVldFRvSWQuZW5kKCkpCisgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKKyAgICBFbGVtZW50KiBvd25lckVsZW1lbnQgPSBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4ob3duZXJOb2RlKTsKKyAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1lKCku
bG93ZXIoKSAhPSAic3R5bGUiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJu
IG93bmVyRWxlbWVudC0+aW5uZXJUZXh0KCk7Cit9CisKKworLy8gQWxsIHJhbmdlcyBhcmU6IFtz
dGFydDsgZW5kKSAoc3RhcnQgLSBpbmNsdXNpdmUsIGVuZCAtIGV4Y2x1c2l2ZSkKK2Jvb2wgSW5z
cGVjdG9yQ1NTU3RvcmU6OmdldFN0eWxlU291cmNlRGF0YShDU1NTdHlsZURlY2xhcmF0aW9uKiBz
dHlsZSwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCkKK3sKKyAgICBpZiAoIXN0
eWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gaW5s
aW5lU3R5bGVFbGVtZW50KHN0eWxlKTsKKyAgICBpZiAoZWxlbWVudCkgeworICAgICAgICAvLyBJ
bmxpbmU6IHN0eWxlPSIuLi4iCisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHN0
eWxlU291cmNlRGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIGJv
b2wgc3VjY2VzcyA9IGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKGVsZW1lbnQsICZzdHlsZVNvdXJj
ZURhdGEpOworICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICpyZXN1bHQgPSBzdHlsZVNvdXJjZURhdGE7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHls
ZVNoZWV0KHN0eWxlKTsKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0
b3IgPSAwOwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdHls
ZVNoZWV0VG9PZmZzZXRzLmZpbmQoc3R5bGVTaGVldCk7Ci0gICAgVmVjdG9yPFNvdXJjZVJhbmdl
Piogb2Zmc2V0VmVjdG9yID0gMDsKICAgICBpZiAoaXQgPT0gbV9zdHlsZVNoZWV0VG9PZmZzZXRz
LmVuZCgpKSB7Ci0gICAgICAgIEluc3BlY3RvclJlc291cmNlKiByZXNvdXJjZSA9IG1faW5zcGVj
dG9yQ29udHJvbGxlci0+cmVzb3VyY2VGb3JVUkwoc3R5bGVTaGVldC0+ZmluYWxVUkwoKS5zdHJp
bmcoKSk7Ci0gICAgICAgIGlmIChyZXNvdXJjZSkgewotICAgICAgICAgICAgb2Zmc2V0VmVjdG9y
ID0gbmV3IFZlY3RvcjxTb3VyY2VSYW5nZT47CisgICAgICAgIFN0cmluZyB0ZXh0ID0gc3R5bGVT
aGVldFRleHQoYmluZFN0eWxlU2hlZXQoc3R5bGVTaGVldCkpOworICAgICAgICBpZiAoIXRleHQu
aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gbmV3U3R5bGVT
aGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShzdHlsZVNoZWV0LT5vd25lck5vZGUoKSk7CiAg
ICAgICAgICAgICBDU1NQYXJzZXIgcDsKLSAgICAgICAgICAgIENTU1BhcnNlcjo6U3R5bGVSdWxl
UmFuZ2VzIHJ1bGVSYW5nZU1hcDsKLSAgICAgICAgICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNo
ZWV0LmdldCgpLCByZXNvdXJjZS0+c291cmNlU3RyaW5nKCksIDAsICZydWxlUmFuZ2VNYXApOwot
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gbmV3U3R5bGVTaGVldC0+
bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIENTU1N0eWxlUnVs
ZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKG5ld1N0eWxlU2hlZXQtPml0ZW0oaSkpOwotICAgICAg
ICAgICAgICAgIGlmICghcnVsZSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICAgICAgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVu
c2lnbmVkPiA+OjppdGVyYXRvciBpdCA9IHJ1bGVSYW5nZU1hcC5maW5kKHJ1bGUpOwotICAgICAg
ICAgICAgICAgIGlmIChpdCAhPSBydWxlUmFuZ2VNYXAuZW5kKCkpCi0gICAgICAgICAgICAgICAg
ICAgIG9mZnNldFZlY3Rvci0+YXBwZW5kKGl0LT5zZWNvbmQpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgbV9zdHlsZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCBvZmZzZXRWZWN0
b3IpOworICAgICAgICAgICAgU3R5bGVSdWxlUmFuZ2VNYXAgcnVsZVJhbmdlTWFwOworICAgICAg
ICAgICAgcC5wYXJzZVNoZWV0KG5ld1N0eWxlU2hlZXQuZ2V0KCksIHRleHQsIDAsICZydWxlUmFu
Z2VNYXApOworICAgICAgICAgICAgcmFuZ2VzVmVjdG9yID0gbmV3IFZlY3RvcjxSZWZQdHI8Q1NT
U3R5bGVTb3VyY2VEYXRhPiA+OworICAgICAgICAgICAgZXh0cmFjdFJhbmdlcyhuZXdTdHlsZVNo
ZWV0LmdldCgpLCBydWxlUmFuZ2VNYXAsIHJhbmdlc1ZlY3Rvcik7CisgICAgICAgICAgICBtX3N0
eWxlU2hlZXRUb09mZnNldHMuc2V0KHN0eWxlU2hlZXQsIHJhbmdlc1ZlY3Rvcik7CiAgICAgICAg
IH0KICAgICB9IGVsc2UKLSAgICAgICAgb2Zmc2V0VmVjdG9yID0gaXQtPnNlY29uZDsKLSAgICBp
ZiAoIW9mZnNldFZlY3RvcikKLSAgICAgICAgcmV0dXJuIEhhc2hNYXA8bG9uZywgU291cmNlUmFu
Z2U+KCk7CisgICAgICAgIHJhbmdlc1ZlY3RvciA9IGl0LT5zZWNvbmQ7CisgICAgaWYgKCFyYW5n
ZXNWZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVuc2lnbmVkIHJ1bGVJbmRl
eCA9IDA7Ci0gICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcmVzdWx0OwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHN0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwgbGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgQVNTRVJUKHJ1bGVJbmRleCA8IG9mZnNldFZlY3Rvci0+c2l6ZSgp
KTsKICAgICAgICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gYXNDU1NTdHlsZVJ1bGUoc3R5bGVTaGVl
dC0+aXRlbShpKSk7CiAgICAgICAgIGlmICghcnVsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAvLyBUaGlzIG1hcHMgdGhlIHN0eWxlIGlkIHRvIHRoZSBydWxlIGJvZHkgcmFuZ2Uu
Ci0gICAgICAgIHJlc3VsdC5zZXQoYmluZFN0eWxlKHJ1bGUtPnN0eWxlKCkpLCBvZmZzZXRWZWN0
b3ItPmF0KHJ1bGVJbmRleCkpOworICAgICAgICBpZiAocnVsZS0+c3R5bGUoKSA9PSBzdHlsZSkg
eworICAgICAgICAgICAgQVNTRVJUKHJ1bGVJbmRleCA8IHJhbmdlc1ZlY3Rvci0+c2l6ZSgpKTsK
KyAgICAgICAgICAgICpyZXN1bHQgPSByYW5nZXNWZWN0b3ItPmF0KHJ1bGVJbmRleCk7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBydWxlSW5kZXgrKzsKICAg
ICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSW5z
cGVjdG9yQ1NTU3RvcmU6OmV4dHJhY3RSYW5nZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwg
Y29uc3QgU3R5bGVSdWxlUmFuZ2VNYXAmIHJ1bGVSYW5nZU1hcCwgVmVjdG9yPFJlZlB0cjxDU1NT
dHlsZVNvdXJjZURhdGE+ID4qIHJhbmdlc1ZlY3RvcikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8IGxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0eWxlU2hlZXQtPml0
ZW0oaSkpOworICAgICAgICBpZiAoIXJ1bGUpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgU3R5bGVSdWxlUmFuZ2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlTWFwLmZp
bmQocnVsZSk7CisgICAgICAgIGlmIChpdCAhPSBydWxlUmFuZ2VNYXAuZW5kKCkpCisgICAgICAg
ICAgICByYW5nZXNWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKKyAgICB9Cit9CisKK2Jvb2wg
SW5zcGVjdG9yQ1NTU3RvcmU6OmdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKE5vZGUqIG5vZGUsIFJl
ZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpCit7CisgICAgaWYgKCFub2RlIHx8ICFu
b2RlLT5pc1N0eWxlZEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3Ry
aW5nIHN0eWxlVGV4dCA9IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKS0+Z2V0QXR0
cmlidXRlKCJzdHlsZSIpOworICAgIGlmIChzdHlsZVRleHQuaXNFbXB0eSgpKSB7CisgICAgICAg
ICgqcmVzdWx0KS0+c3R5bGVCb2R5UmFuZ2UuZmlyc3QgPSAwOworICAgICAgICAoKnJlc3VsdCkt
PnN0eWxlQm9keVJhbmdlLnNlY29uZCA9IDA7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gdGVtcERlY2xhcmF0aW9u
ID0gQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpOworICAgIENTU1BhcnNlciBw
OworICAgIHAucGFyc2VEZWNsYXJhdGlvbih0ZW1wRGVjbGFyYXRpb24uZ2V0KCksIHN0eWxlVGV4
dCwgcmVzdWx0LT5nZXQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0NTU1N0eWxlU2hlZXQq
IEluc3BlY3RvckNTU1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRp
b24qIHN0eWxlKQoreworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiAwOworCisgICAg
U3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHN0eWxlLT5zdHlsZXNoZWV0KCk7CisgICAgaWYgKHN0
eWxlU2hlZXQgJiYgc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCk7CisKKyAgICByZXR1cm4g
MDsKIH0KIAogQ1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JDU1NTdG9yZTo6YXNDU1NTdHlsZVJ1bGUo
U3R5bGVCYXNlKiBzdHlsZUJhc2UpCkBAIC0yMTcsNiArMzU5LDE3IEBAIGxvbmcgSW5zcGVjdG9y
Q1NTU3RvcmU6OmJpbmRSdWxlKENTU1N0eWxlUnVsZSogcnVsZSkKICAgICByZXR1cm4gaWQ7CiB9
CiAKKy8vIHN0YXRpYworRWxlbWVudCogSW5zcGVjdG9yQ1NTU3RvcmU6OmlubGluZVN0eWxlRWxl
bWVudChDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlIHx8ICFz
dHlsZS0+aXNNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICBOb2RlKiBub2RlID0gc3RhdGljX2Nhc3Q8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPihz
dHlsZSktPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzU3R5bGVkRWxlbWVudCgp
IHx8IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKS0+Z2V0SW5saW5lU3R5bGVEZWNs
KCkgIT0gc3R5bGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4obm9kZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NTdG9yZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaAppbmRl
eCA4MmRlNjIyLi44ZWZkMzZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NTdG9yZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgK
QEAgLTI5LDYgKzI5LDggQEAKICNpZm5kZWYgSW5zcGVjdG9yQ1NTU3RvcmVfaAogI2RlZmluZSBJ
bnNwZWN0b3JDU1NTdG9yZV9oCiAKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCisKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzYsMTMgKzM4LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3Mg
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwog
Y2xhc3MgQ1NTUnVsZUxpc3Q7CiBjbGFzcyBDU1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NTdHlsZVNo
ZWV0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgSW5zcGVjdG9yQ29u
dHJvbGxlcjsKK2NsYXNzIE5vZGU7CiBjbGFzcyBTdHlsZUJhc2U7CiAKIHR5cGVkZWYgc3RkOjpw
YWlyPFN0cmluZywgU3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7CkBAIC01MiwyMyAr
NTYsMjggQEAgdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlRGVjbGFyYXRpb24qLCBsb25nPiBTdHls
ZVRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRp
b24+ID4gSWRUb1N0eWxlTWFwOwogdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIGxvbmc+
IFJ1bGVUb0lkTWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZVJ1bGU+
ID4gSWRUb1J1bGVNYXA7Ci10eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVTaGVldCosIFZlY3RvcjxT
b3VyY2VSYW5nZT4qID4gU3R5bGVTaGVldFRvT2Zmc2V0c01hcDsKK3R5cGVkZWYgSGFzaE1hcDxD
U1NTdHlsZVNoZWV0KiwgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4qID4gU3R5
bGVTaGVldFRvT2Zmc2V0c01hcDsKIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgbG9u
Zz4gU3R5bGVTaGVldFRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0
eWxlU2hlZXQ+ID4gSWRUb1N0eWxlU2hlZXRNYXA7Cit0eXBlZGVmIEhhc2hNYXA8bG9uZywgU3Ry
aW5nPiBJZFRvU3R5bGVTaGVldFRleHRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgRGlzYWJs
ZWRTdHlsZURlY2xhcmF0aW9uPiBJZFRvRGlzYWJsZWRTdHlsZU1hcDsKIHR5cGVkZWYgSGFzaE1h
cDxSZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBEb2N1bWVudFRvU3R5
bGVTaGVldE1hcDsKIAogY2xhc3MgSW5zcGVjdG9yQ1NTU3RvcmUgewogCiBwdWJsaWM6CisgICAg
c3RhdGljIENTU1N0eWxlU2hlZXQqIGdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJh
dGlvbiopOworICAgIHN0YXRpYyBFbGVtZW50KiBpbmxpbmVTdHlsZUVsZW1lbnQoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiopOworCiAgICAgSW5zcGVjdG9yQ1NTU3RvcmUoSW5zcGVjdG9yQ29udHJvbGxl
ciogaW5zcGVjdG9yQ29udHJvbGxlcik7CiAgICAgfkluc3BlY3RvckNTU1N0b3JlKCk7CiAgICAg
dm9pZCByZXNldCgpOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IGdldFJ1bGVSYW5n
ZXMoQ1NTU3R5bGVTaGVldCopOworICAgIGJvb2wgZ2V0U3R5bGVTb3VyY2VEYXRhKENTU1N0eWxl
RGVjbGFyYXRpb24qLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KTsKICAgICBD
U1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZUZvcklkKGxvbmcgc3R5bGVJZCk7CiAgICAgQ1NTU3R5
bGVTaGVldCogc3R5bGVTaGVldEZvcklkKGxvbmcgc3R5bGVTaGVldElkKTsKICAgICBDU1NTdHls
ZVJ1bGUqIHJ1bGVGb3JJZChsb25nIHN0eWxlUnVsZUlkKTsKICAgICBEaXNhYmxlZFN0eWxlRGVj
bGFyYXRpb24qIGRpc2FibGVkU3R5bGVGb3JJZChsb25nIHN0eWxlSWQsIGJvb2wgY3JlYXRlSWZB
YnNlbnQpOworICAgIFN0cmluZyBzdHlsZVNoZWV0VGV4dChsb25nIHN0eWxlU2hlZXRJZCk7CiAg
ICAgQ1NTU3R5bGVTaGVldCogaW5zcGVjdG9yU3R5bGVTaGVldChEb2N1bWVudCogb3duZXJEb2N1
bWVudCwgYm9vbCBjcmVhdGVJZkFic2VudCk7CiAgICAgdm9pZCByZW1vdmVEb2N1bWVudChEb2N1
bWVudCopOwogCkBAIC03OCw2ICs4NywxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3Rh
dGljIENTU1N0eWxlUnVsZSogYXNDU1NTdHlsZVJ1bGUoU3R5bGVCYXNlKik7CisgICAgU3RyaW5n
IGlubGluZVN0eWxlU2hlZXRUZXh0KENTU1N0eWxlU2hlZXQqKTsKKyAgICBTdHJpbmcgcmVzb3Vy
Y2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0Kik7CisgICAgdm9pZCBleHRyYWN0UmFuZ2Vz
KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHlsZVJ1bGVSYW5nZU1hcCYsIFZlY3RvcjxSZWZQdHI8
Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpOworICAgIGJvb2wgZ2V0U3R5bGVB
dHRyaWJ1dGVSYW5nZXMoTm9kZSogcGFyZW50Tm9kZSwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0
YT4qIHJlc3VsdCk7CiAKICAgICBTdHlsZVRvSWRNYXAgbV9zdHlsZVRvSWQ7CiAgICAgSWRUb1N0
eWxlTWFwIG1faWRUb1N0eWxlOwpAQCAtODUsOCArOTgsOSBAQCBwcml2YXRlOgogICAgIElkVG9S
dWxlTWFwIG1faWRUb1J1bGU7CiAgICAgU3R5bGVTaGVldFRvT2Zmc2V0c01hcCBtX3N0eWxlU2hl
ZXRUb09mZnNldHM7CiAgICAgU3R5bGVTaGVldFRvSWRNYXAgbV9zdHlsZVNoZWV0VG9JZDsKLSAg
ICBJZFRvU3R5bGVTaGVldE1hcCBtX2lkVG9TdHlsZVNoZWV0OwogICAgIElkVG9EaXNhYmxlZFN0
eWxlTWFwIG1faWRUb0Rpc2FibGVkU3R5bGU7CisgICAgSWRUb1N0eWxlU2hlZXRNYXAgbV9pZFRv
U3R5bGVTaGVldDsKKyAgICBJZFRvU3R5bGVTaGVldFRleHRNYXAgbV9pZFRvU3R5bGVTaGVldFRl
eHQ7CiAgICAgRG9jdW1lbnRUb1N0eWxlU2hlZXRNYXAgbV9kb2N1bWVudE5vZGVUb0luc3BlY3Rv
clN0eWxlU2hlZXRNYXA7CiAKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RvckNv
bnRyb2xsZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggZDI3
NjBlNC4uZjRkZDViZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bi5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5RGF0dW0uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0Lmgi
CkBAIC0xMTcxLDI2ICsxMTcyLDM0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxl
U2hlZXQobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+CiAgICAgICAg
ICpzdHlsZVNoZWV0T2JqZWN0ID0gYnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0KHN0eWxlU2hlZXQt
PmRvY3VtZW50KCksIHN0eWxlU2hlZXQpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFnZW50Ojpn
ZXRSdWxlUmFuZ2VzKGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBy
dWxlUmFuZ2UpCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEobG9u
ZyBzdHlsZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogZGF0YU9iamVjdCkKIHsKLSAgICBD
U1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gY3NzU3RvcmUoKS0+c3R5bGVTaGVldEZvcklkKHN0
eWxlU2hlZXRJZCk7Ci0gICAgaWYgKHN0eWxlU2hlZXQgJiYgc3R5bGVTaGVldC0+ZG9jdW1lbnQo
KSkgewotICAgICAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBydWxlUmFuZ2VzID0gY3Nz
U3RvcmUoKS0+Z2V0UnVsZVJhbmdlcyhzdHlsZVNoZWV0KTsKLSAgICAgICAgaWYgKCFydWxlUmFu
Z2VzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gcmVzdWx0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgZm9y
IChIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VzLmJl
Z2luKCk7IGl0ICE9IHJ1bGVSYW5nZXMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgICAgIGlmIChp
dC0+c2Vjb25kLnNlY29uZCkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJ1bGVSYW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAg
ICAgcmVzdWx0LT5zZXRPYmplY3QoU3RyaW5nOjpudW1iZXIoaXQtPmZpcnN0KS51dGY4KCkuZGF0
YSgpLCBydWxlUmFuZ2UpOwotICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IGJvZHlSYW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAg
cnVsZVJhbmdlLT5zZXRPYmplY3QoImJvZHlSYW5nZSIsIGJvZHlSYW5nZSk7Ci0gICAgICAgICAg
ICAgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0IiwgaXQtPnNlY29uZC5maXJzdCk7Ci0g
ICAgICAgICAgICAgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIGl0LT5zZWNvbmQuc2Vj
b25kKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAqcnVsZVJhbmdlID0gcmVz
dWx0LnJlbGVhc2UoKTsKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGNzc1N0b3Jl
KCktPnN0eWxlRm9ySWQoc3R5bGVJZCk7CisgICAgaWYgKCFzdHlsZSkKKyAgICAgICAgcmV0dXJu
OworICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBDU1NTdHlsZVNv
dXJjZURhdGE6OmNyZWF0ZSgpOworICAgIGJvb2wgc3VjY2VzcyA9IGNzc1N0b3JlKCktPmdldFN0
eWxlU291cmNlRGF0YShzdHlsZSwgJnNvdXJjZURhdGEpOworICAgIGlmICghc3VjY2VzcykKKyAg
ICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdCA9IEluc3Bl
Y3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYm9keVJh
bmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXN1bHQtPnNldE9iamVjdCgi
Ym9keVJhbmdlIiwgYm9keVJhbmdlKTsKKyAgICBib2R5UmFuZ2UtPnNldE51bWJlcigic3RhcnQi
LCBzb3VyY2VEYXRhLT5zdHlsZUJvZHlSYW5nZS5maXJzdCk7CisgICAgYm9keVJhbmdlLT5zZXRO
dW1iZXIoImVuZCIsIHNvdXJjZURhdGEtPnN0eWxlQm9keVJhbmdlLnNlY29uZCk7CisgICAgUmVm
UHRyPEluc3BlY3RvckFycmF5PiBwcm9wZXJ0eVJhbmdlcyA9IEluc3BlY3RvckFycmF5OjpjcmVh
dGUoKTsKKyAgICByZXN1bHQtPnNldEFycmF5KCJwcm9wZXJ0eURhdGEiLCBwcm9wZXJ0eVJhbmdl
cyk7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4g
PiYgcHJvcGVydHlEYXRhID0gc291cmNlRGF0YS0+cHJvcGVydHlEYXRhOworICAgIGZvciAoVmVj
dG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPjo6aXRlcmF0b3Ig
aXQgPSBwcm9wZXJ0eURhdGEuYmVnaW4oKTsgaXQgIT0gcHJvcGVydHlEYXRhLmVuZCgpOyArK2l0
KSB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHByb3BlcnR5UmFuZ2UgPSBJbnNw
ZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRTdHJpbmco
Im5hbWUiLCBpdC0+Zmlyc3QubmFtZSk7CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldFN0cmlu
ZygidmFsdWUiLCBpdC0+Zmlyc3QudmFsdWUpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRC
b29sZWFuKCJpbXBvcnRhbnQiLCBpdC0+Zmlyc3QuaW1wb3J0YW50KTsKKyAgICAgICAgcHJvcGVy
dHlSYW5nZS0+c2V0Qm9vbGVhbigicGFyc2VkIiwgaXQtPmZpcnN0LnBhcnNlZCk7CisgICAgICAg
IHByb3BlcnR5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBpdC0+c2Vjb25kLmZpcnN0KTsKKyAg
ICAgICAgcHJvcGVydHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25kLnNlY29uZCk7
CisgICAgICAgIHByb3BlcnR5UmFuZ2VzLT5wdXNoT2JqZWN0KHByb3BlcnR5UmFuZ2UpOwogICAg
IH0KKyAgICAqZGF0YU9iamVjdCA9IHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRE9NQWdlbnQ6OmdldElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9y
VmFsdWU+KiBzdHlsZSkKQEAgLTE0NDksNyArMTQ1OCw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZShDU1NTdHlsZURl
Y2xhCiAgICAgaWYgKGJpbmQpIHsKICAgICAgICAgbG9uZyBzdHlsZUlkID0gY3NzU3RvcmUoKS0+
YmluZFN0eWxlKHN0eWxlKTsKICAgICAgICAgcmVzdWx0LT5zZXROdW1iZXIoImlkIiwgc3R5bGVJ
ZCk7Ci0gICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBnZXRQYXJlbnRT
dHlsZVNoZWV0KHN0eWxlKTsKKyAgICAgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVl
dCA9IEluc3BlY3RvckNTU1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxlKTsKICAgICAg
ICAgaWYgKHBhcmVudFN0eWxlU2hlZXQpCiAgICAgICAgICAgICByZXN1bHQtPnNldE51bWJlcigi
cGFyZW50U3R5bGVTaGVldElkIiwgY3NzU3RvcmUoKS0+YmluZFN0eWxlU2hlZXQocGFyZW50U3R5
bGVTaGVldCkpOwogCkBAIC0xNjYxLDIwICsxNjcwLDYgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JB
cnJheT4gSW5zcGVjdG9yRE9NQWdlbnQ6OnRvQXJyYXkoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRh
dGEKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAotQ1NTU3R5bGVTaGVldCogSW5z
cGVjdG9yRE9NQWdlbnQ6OmdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c3R5bGUpCi17Ci0gICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCA9IHN0eWxlLT5w
YXJlbnRSdWxlKCkgPyBzdHlsZS0+cGFyZW50UnVsZSgpLT5wYXJlbnRTdHlsZVNoZWV0KCkgOiAw
OwotICAgIGlmICghcGFyZW50U3R5bGVTaGVldCkgewotICAgICAgICBTdHlsZUJhc2UqIHBhcmVu
dCA9IHN0eWxlLT5wYXJlbnQoKTsKLSAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzQ1NT
U3R5bGVTaGVldCgpKSB7Ci0gICAgICAgICAgICBwYXJlbnRTdHlsZVNoZWV0ID0gc3RhdGljX2Nh
c3Q8Q1NTU3R5bGVTaGVldCo+KHBhcmVudCk7Ci0gICAgICAgICAgICBpZiAoIXBhcmVudFN0eWxl
U2hlZXQtPmxlbmd0aCgpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0g
ICAgfQotICAgIHJldHVybiBwYXJlbnRTdHlsZVNoZWV0OwotfQotCiB2b2lkIEluc3BlY3RvckRP
TUFnZW50Ojpvbk1hdGNoSm9ic1RpbWVyKFRpbWVyPEluc3BlY3RvckRPTUFnZW50PiopCiB7CiAg
ICAgaWYgKCFtX3BlbmRpbmdNYXRjaEpvYnMuc2l6ZSgpKSB7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuaAppbmRleCBmZDNjNWI1Li4wOTU3YzA3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKQEAgLTEyMSw3ICsxMjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZvaWQgZ2V0SW5saW5lU3R5bGUobG9uZyBub2RlSWQsIFJlZlB0cjxJbnNwZWN0
b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZShsb25nIG5v
ZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVzKTsKICAgICAgICAgdm9pZCBnZXRT
dHlsZVNoZWV0KGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piogc3R5
bGVTaGVldE9iamVjdCk7Ci0gICAgICAgIHZvaWQgZ2V0UnVsZVJhbmdlcyhsb25nIHN0eWxlU2hl
ZXRJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcnVsZVJhbmdlKTsKKyAgICAgICAgdm9pZCBn
ZXRTdHlsZVNvdXJjZURhdGEobG9uZyBzdHlsZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Piog
ZGF0YU9iamVjdCk7CiAgICAgICAgIHZvaWQgYXBwbHlTdHlsZVRleHQobG9uZyBzdHlsZUlkLCBj
b25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGJvb2wq
IHN1Y2Nlc3MsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlT2JqZWN0LCBSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+KiBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAgICAgIHZvaWQgc2V0U3R5bGVU
ZXh0KGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjc3NUZXh0LCBib29sKiBzdWNjZXNzKTsK
ICAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKTsKQEAgLTE0Niw3ICsx
NDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgY29weU5vZGUobG9uZyBu
b2RlSWQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIENTU1N0eWxlU2hlZXQqIGdl
dFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogICAgICAgICB2b2lkIHN0
YXJ0TGlzdGVuaW5nKERvY3VtZW50KiBkb2N1bWVudCk7CiAgICAgICAgIHZvaWQgc3RvcExpc3Rl
bmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66625</attachid>
            <date>2010-09-06 04:35:49 -0700</date>
            <delta_ts>2010-09-06 04:36:16 -0700</delta_ts>
            <desc>[PATCH] Fix &quot;important&quot; keyword detection + test</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>1524957</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggNmRmMjAx
Ny4uOWU0YjYwZSAxMDA2NDQKLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50
eHQKQEAgLTEyLDcgKzEyLDYgQEAgU0VUKENNQUtFX01PRFVMRV9QQVRIICIke0NNQUtFX1NPVVJD
RV9ESVJ9L2NtYWtlIikKIFNFVChKQVZBU0NSSVBUQ09SRV9ESVIgIiR7Q01BS0VfU09VUkNFX0RJ
Un0vSmF2YVNjcmlwdENvcmUiKQogU0VUKFdFQkNPUkVfRElSICIke0NNQUtFX1NPVVJDRV9ESVJ9
L1dlYkNvcmUiKQogU0VUKFdFQktJVF9ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vV2ViS2l0IikK
LVNFVChXRUJLSVRUT09MU19ESVIgIiR7Q01BS0VfU09VUkNFX0RJUn0vV2ViS2l0VG9vbHMiKQog
U0VUKERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJj
ZXMiKQogCiBJTkNMVURFKFdlYktpdE1hY3JvcykKQEAgLTEwOCwxMSArMTA3LDYgQEAgQUREX1NV
QkRJUkVDVE9SWShXZWJDb3JlKQogQUREX1NVQkRJUkVDVE9SWShXZWJLaXQpCiAKICMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSMgQWRkIHRlc3QgYnJvd3NlciBpZiBleGlzdHMKLSMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUlOQ0xVREVfSUZfRVhJU1RTKCR7V0VCS0lUVE9PTFNfRElSfS9DTWFrZUxp
c3RzJHtQT1JUfS50eHQpCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgU2V0IGNvbXBpbGVy
IGZsYWdzIGZvciBhbGwgdGFyZ2V0cwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogV0VCS0lUX1NF
VF9FWFRSQV9DT01QSUxFUl9GTEFHUygke1dURl9MSUJSQVJZX05BTUV9KQpkaWZmIC0tZ2l0IGEv
Q2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDQzNmU0ODUuLjExNDBhZDEgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMTUgKzEsMyBAQAotMjAxMC0wOS0wNCAg
THVjYXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+Ci0KLSAgICAg
ICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCi0KLSAgICAgICAgW0VG
TF0gTW92ZSB0ZXN0IGJyb3dzZXIgdG8gV2ViS2l0VG9vbHMgZGlyZWN0b3J5Ci0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIxMgotCi0gICAgICAgIEZv
bGxvdyBvdGhlciBwb3J0cyBsaWtlIFFUIGFuZCBHVEsgd2hpY2ggbW92ZWQgdGhlIHRlc3QgYnJv
d3NlciB0bwotICAgICAgICBXZWJLaXRUb29scyBkaXJlY3RvcnkuCi0KLSAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogSW5jbHVkZSB0ZXN0IGJyb3dzZXIgaWYgcG9ydCBkZWZpbmVzIG9uZS4KLQog
MjAxMC0wOS0wMiAgTHVjYXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1v
Ymk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHNFZmwudHh0IGIvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
c0VmbC50eHQKaW5kZXggOTBlZTIyYi4uNzg5N2VhNSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0c0VmbC50
eHQKQEAgLTgsMTIgKzgsNiBAQCBMSVNUKEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMK
ICAgICAke0lDVV9JMThOX0xJQlJBUklFU30KICkKIAotSUYgKEVOQUJMRV9HTElCX1NVUFBPUlQp
Ci0gIExJU1QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKLSAgICAk
e0pBVkFTQ1JJUFRDT1JFX0RJUn0vd3RmL2dvYmplY3QKLSAgKQotRU5ESUYgKCkKLQogTElTVChB
UFBFTkQgSmF2YVNjcmlwdENvcmVfTElOS19GTEFHUwogICAgICR7RUNPUkVfTERGTEFHU30KICkK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkZjBlMmNlLi43Y2JmN2Y3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUwICsxLDMg
QEAKLTIwMTAtMDktMDMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+Ci0KLSAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTM1Ci0gICAgICAgIDxyZGFyOi8vcHJvYmxlbS83
ODIzNzE0PiBUQ01hbGxvY19QYWdlSGVhcCBkb2Vzbid0IGhvbGQgYSBtdXRleCB3aGlsZSBtYW5p
cHVsYXRpbmcgc2hhcmVkIGRhdGEKLQotICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmNwcDoKLSAg
ICAgICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OmluaXRpYWxpemVTY2F2ZW5nZXIpOiBNYWtl
IHN1cmUgdG8gY3JlYXRlIGEgbm9uLXJlY3Vyc2l2ZSBtdXRleAotICAgICAgICByZWdhcmRsZXNz
IG9mIHBsYXRmb3JtIGRlZmF1bHQsIHNvIHRoYXQgd2UgY2FuIGFzc2VydCB0aGF0IGl0J3MgaGVs
ZCAodGhpcyBpcyBmb3IgcGxhdGZvcm1zCi0gICAgICAgIHRoYXQgZG9uJ3QgaGF2ZSBsaWJkaXNw
YXRjaCkuCi0gICAgICAgIChXVEY6OlRDTWFsbG9jX1BhZ2VIZWFwOjpzaWduYWxTY2F2ZW5nZXIp
OiBBc3NlcnQgdGhhdCB0aGUgbXV0ZXggaXMgaGVsZCwgc28gd2UgY2FuIGxvb2sKLSAgICAgICAg
YXQgbV9zY2F2ZW5nZVRocmVhZEFjdGl2ZS4gRm9yIHBsYXRmb3JtcyB0aGF0IGhhdmUgbGliZGlz
cGF0Y2gsIGFzc2VydCB0aGF0IHBhZ2VoZWFwX2xvY2sKLSAgICAgICAgaXMgaGVsZC4KLSAgICAg
ICAgKFdURjo6VENNYWxsb2NfUGFnZUhlYXA6OnBlcmlvZGljU2NhdmVuZ2UpOiBNYWtlIHN1cmUg
dGhhdCBwYWdlaGVhcF9sb2NrIGlzIGhlbGQgYmVmb3JlCi0gICAgICAgIG1hbmlwdWxhdGluZyBt
X3NjYXZlbmdlVGhyZWFkQWN0aXZlLiBPdGhlcndpc2UsIHRoZXJlIGlzIGFuIG9idmlvdXMgcmFj
ZSBjb25kaXRpb24sIGFuZCB3ZQotICAgICAgICBjYW4gbWFrZSB1bmJhbGFuY2VkIGNhbGxzIHRv
IGRpc3BhdGNoX3Jlc3VtZSgpLgotCi0yMDEwLTA5LTAzICBMdWNhcyBEZSBNYXJjaGkgIDxsdWNh
cy5kZW1hcmNoaUBwcm9mdXNpb24ubW9iaT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCi0KLSAgICAgICAgW0VGTF0gUmVncmVzc2lvbiAoNjY1MzEpIEJ1aWxkIGJyZWFr
IHdpdGggR2xpYiBTdXBwb3J0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTAxMQotCi0gICAgICAgIE1vdmUgR3RrVHlwZWRlZnMuaCB0byBHVHlwZWRl
ZnMuaCBhbmQgbGV0IGl0IGluc2lkZSBnb2JqZWN0IGRpcmVjdG9yeQotICAgICAgICBzaW5jZSB3
aGVuIGdsaWIgaXMgZW5hYmxlZCwgRUZMIHBvcnQgbmVlZHMgaXQsIHRvby4KLQotICAgICAgICAq
IENNYWtlTGlzdHNFZmwudHh0OiBJbmNsdWRlIGdvYmplY3QgZGlyZWN0b3J5IHRvIGZpbmQgbmV3
IGhlYWRlcgotICAgICAgICBmaWxlLgotICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4K
LSAgICAgICAgKiB3dGYvQ01ha2VMaXN0c0VmbC50eHQ6IERpdHRvLgotICAgICAgICAqIHd0Zi9Q
bGF0Zm9ybS5oOiBJbmNsdWRlIGhlYWRlciBpZiBwb3J0IGlzIEVGTCBhbmQgZ2xpYiBzdXBwb3J0
IGlzCi0gICAgICAgIGVuYWJsZWQuCi0gICAgICAgICogd3RmL2d0ay9HdGtUeXBlZGVmcy5oOiBS
ZW1vdmVkLgotICAgICAgICAqIHd0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oOiBBZGRlZC4gU2VjdGlv
bnMgc3BlY2lmaWMgdG8gR1RLIGFyZSBub3cKLSAgICAgICAgZ3VhcmRlZCBieSBQTEFURk9STShH
VEspLgotCi0yMDEwLTA5LTAzICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCi0KLSAgICAgICAgRml4IHdh
cm5pbmcgaW4gd3RmL0J5dGVBcnJheS5oCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NDY3MgotCi0gICAgICAgICogd3RmL0J5dGVBcnJheS5oOiBVc2Ug
bWF4aW1hbCBzaXplZCBhcnJheSBmb3IgTVNWQyBhbmQgdW5zaXplZCBhcnJheSBmb3Igb3RoZXIg
Y29tcGlsZXJzLgotCiAyMDEwLTA5LTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5hbSBiL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IDgzNTk4NzAuLmI0YzY1OGUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00NDIsNyArNDQy
LDcgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL2dv
YmplY3QvR093blB0ci5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HUmVmUHRyLmNw
cCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1JlZlB0ci5oIFwKLQlKYXZhU2NyaXB0
Q29yZS93dGYvZ29iamVjdC9HVHlwZWRlZnMuaCBcCisJSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9H
dGtUeXBlZGVmcy5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL01haW5UaHJlYWRHdGsuY3Bw
IFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL1RocmVhZGluZ0d0ay5jcHAgXAogCUphdmFTY3Jp
cHRDb3JlL3d0Zi9IYXNoQ291bnRlZFNldC5oIFwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3d0Zi9CeXRlQXJyYXkuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9CeXRlQXJyYXkuaAppbmRleCBm
NGQzNGE0Li5mNWY1ZGVkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvQnl0ZUFycmF5
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL0J5dGVBcnJheS5oCkBAIC0yNiw5ICsyNiw3IEBA
CiAjaWZuZGVmIEJ5dGVBcnJheV9oCiAjZGVmaW5lIEJ5dGVBcnJheV9oCiAKLSNpbmNsdWRlIDxs
aW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QbGF0
Zm9ybS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpA
QCAtODgsMTQgKzg2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHsKICAgICAgICAgfQog
ICAgICAgICBzaXplX3QgbV9zaXplOwotLy8gTVNWQyBjYW4ndCBoYW5kbGUgY29ycmVjdGx5IHVu
c2l6ZWQgYXJyYXkuCi0vLyB3YXJuaW5nIEM0MjAwOiBub25zdGFuZGFyZCBleHRlbnNpb24gdXNl
ZCA6IHplcm8tc2l6ZWQgYXJyYXkgaW4gc3RydWN0L3VuaW9uCi0vLyBDYW5ub3QgZ2VuZXJhdGUg
Y29weS1jdG9yIG9yIGNvcHktYXNzaWdubWVudCBvcGVyYXRvciB3aGVuIFVEVCBjb250YWlucyBh
IHplcm8tc2l6ZWQgYXJyYXkKLSNpZiBDT01QSUxFUihNU1ZDKQotICAgICAgICB1bnNpZ25lZCBj
aGFyIG1fZGF0YVtJTlRfTUFYXTsKLSNlbHNlCi0gICAgICAgIHVuc2lnbmVkIGNoYXIgbV9kYXRh
W107Ci0jZW5kaWYKKyAgICAgICAgdW5zaWduZWQgY2hhciBtX2RhdGFbc2l6ZW9mKHNpemVfdCld
OwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3Rz
RWZsLnR4dCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9DTWFrZUxpc3RzRWZsLnR4dAppbmRleCA2YTcx
NGFlLi4zY2QzYzhlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvQ01ha2VMaXN0c0Vm
bC50eHQKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL0NNYWtlTGlzdHNFZmwudHh0CkBAIC0xNCwx
MCArMTQsNiBAQCBJRiAoRU5BQkxFX0dMSUJfU1VQUE9SVCkKICAgICBnb2JqZWN0L0dPd25QdHIu
Y3BwCiAgICAgZ29iamVjdC9HUmVmUHRyLmNwcAogICApCi0KLSAgTElTVChBUFBFTkQgV1RGX0lO
Q0xVREVfRElSRUNUT1JJRVMKLSAgICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vd3RmL2dvYmpl
Y3QKLSAgKQogRU5ESUYgKCkKIAogTElTVChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvSmF2YVNjcmlwdENvcmUvd3Rm
L0Zhc3RNYWxsb2MuY3BwCmluZGV4IGNkMGYxN2UuLmVlNmIwMmMgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvRmFz
dE1hbGxvYy5jcHAKQEAgLTE0OTIsMjMgKzE0OTIsMTEgQEAgdm9pZCBUQ01hbGxvY19QYWdlSGVh
cDo6aW5pdCgpCiAKIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OmluaXRpYWxpemVTY2F2ZW5nZXIo
KQogewotICAgIC8vIENyZWF0ZSBhIG5vbi1yZWN1cnNpdmUgbXV0ZXguCi0jaWYgUFRIUkVBRF9N
VVRFWF9OT1JNQUwgPT0gUFRIUkVBRF9NVVRFWF9ERUZBVUxUCi0gICAgcHRocmVhZF9tdXRleF9p
bml0KCZtX3NjYXZlbmdlTXV0ZXgsIDApOwotI2Vsc2UKLSAgICBwdGhyZWFkX211dGV4YXR0cl90
IGF0dHI7Ci0gICAgcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmYXR0cik7Ci0gICAgcHRocmVhZF9t
dXRleGF0dHJfc2V0dHlwZSgmYXR0ciwgUFRIUkVBRF9NVVRFWF9OT1JNQUwpOwotCi0gICAgcHRo
cmVhZF9tdXRleF9pbml0KCZtX3NjYXZlbmdlTXV0ZXgsICZhdHRyKTsKLQotICAgIHB0aHJlYWRf
bXV0ZXhhdHRyX2Rlc3Ryb3koJmF0dHIpOwotI2VuZGlmCi0KLSAgICBwdGhyZWFkX2NvbmRfaW5p
dCgmbV9zY2F2ZW5nZUNvbmRpdGlvbiwgMCk7Ci0gICAgbV9zY2F2ZW5nZVRocmVhZEFjdGl2ZSA9
IHRydWU7Ci0gICAgcHRocmVhZF90IHRocmVhZDsKLSAgICBwdGhyZWFkX2NyZWF0ZSgmdGhyZWFk
LCAwLCBydW5TY2F2ZW5nZXJUaHJlYWQsIHRoaXMpOworICBwdGhyZWFkX211dGV4X2luaXQoJm1f
c2NhdmVuZ2VNdXRleCwgMCk7CisgIHB0aHJlYWRfY29uZF9pbml0KCZtX3NjYXZlbmdlQ29uZGl0
aW9uLCAwKTsKKyAgbV9zY2F2ZW5nZVRocmVhZEFjdGl2ZSA9IHRydWU7CisgIHB0aHJlYWRfdCB0
aHJlYWQ7CisgIHB0aHJlYWRfY3JlYXRlKCZ0aHJlYWQsIDAsIHJ1blNjYXZlbmdlclRocmVhZCwg
dGhpcyk7CiB9CiAKIHZvaWQqIFRDTWFsbG9jX1BhZ2VIZWFwOjpydW5TY2F2ZW5nZXJUaHJlYWQo
dm9pZCogY29udGV4dCkKQEAgLTE1MjIsMTAgKzE1MTAsOCBAQCB2b2lkKiBUQ01hbGxvY19QYWdl
SGVhcDo6cnVuU2NhdmVuZ2VyVGhyZWFkKHZvaWQqIGNvbnRleHQpCiAKIEFMV0FZU19JTkxJTkUg
dm9pZCBUQ01hbGxvY19QYWdlSGVhcDo6c2lnbmFsU2NhdmVuZ2VyKCkKIHsKLSAgICAvLyBtX3Nj
YXZlbmdlTXV0ZXggc2hvdWxkIGJlIGhlbGQgYmVmb3JlIGFjY2Vzc2luZyBtX3NjYXZlbmdlVGhy
ZWFkQWN0aXZlLgotICAgIEFTU0VSVChwdGhyZWFkX211dGV4X3RyeWxvY2sobV9zY2F2ZW5nZU11
dGV4KSk7Ci0gICAgaWYgKCFtX3NjYXZlbmdlVGhyZWFkQWN0aXZlICYmIHNob3VsZFNjYXZlbmdl
KCkpCi0gICAgICAgIHB0aHJlYWRfY29uZF9zaWduYWwoJm1fc2NhdmVuZ2VDb25kaXRpb24pOwor
ICBpZiAoIW1fc2NhdmVuZ2VUaHJlYWRBY3RpdmUgJiYgc2hvdWxkU2NhdmVuZ2UoKSkKKyAgICBw
dGhyZWFkX2NvbmRfc2lnbmFsKCZtX3NjYXZlbmdlQ29uZGl0aW9uKTsKIH0KIAogI2Vsc2UgLy8g
IUhBVkUoRElTUEFUQ0hfSCkKQEAgLTE1NDIsMTEgKzE1MjgsMTAgQEAgdm9pZCBUQ01hbGxvY19Q
YWdlSGVhcDo6aW5pdGlhbGl6ZVNjYXZlbmdlcigpCiAKIEFMV0FZU19JTkxJTkUgdm9pZCBUQ01h
bGxvY19QYWdlSGVhcDo6c2lnbmFsU2NhdmVuZ2VyKCkKIHsKLSAgICBBU1NFUlQoSXNIZWxkKHBh
Z2VoZWFwX2xvY2spKTsKLSAgICBpZiAoIW1fc2NhdmVuZ2luZ1NjaGVkdWxlZCAmJiBzaG91bGRT
Y2F2ZW5nZSgpKSB7Ci0gICAgICAgIG1fc2NhdmVuZ2luZ1NjaGVkdWxlZCA9IHRydWU7Ci0gICAg
ICAgIGRpc3BhdGNoX3Jlc3VtZShtX3NjYXZlbmdlVGltZXIpOwotICAgIH0KKyAgaWYgKCFtX3Nj
YXZlbmdpbmdTY2hlZHVsZWQgJiYgc2hvdWxkU2NhdmVuZ2UoKSkgeworICAgIG1fc2NhdmVuZ2lu
Z1NjaGVkdWxlZCA9IHRydWU7CisgICAgZGlzcGF0Y2hfcmVzdW1lKG1fc2NhdmVuZ2VUaW1lcik7
CisgIH0KIH0KIAogI2VuZGlmCkBAIC0yNDEyLDEzICsyMzk3LDE1IEBAIHZvaWQgVENNYWxsb2Nf
UGFnZUhlYXA6OnNjYXZlbmdlclRocmVhZCgpCiAKIHZvaWQgVENNYWxsb2NfUGFnZUhlYXA6OnBl
cmlvZGljU2NhdmVuZ2UoKQogeworICB7CiAgICAgU3BpbkxvY2tIb2xkZXIgaCgmcGFnZWhlYXBf
bG9jayk7CiAgICAgcGFnZWhlYXAtPnNjYXZlbmdlKCk7CisgIH0KIAotICAgIGlmICghc2hvdWxk
U2NhdmVuZ2UoKSkgewotICAgICAgICBtX3NjYXZlbmdpbmdTY2hlZHVsZWQgPSBmYWxzZTsKLSAg
ICAgICAgZGlzcGF0Y2hfc3VzcGVuZChtX3NjYXZlbmdlVGltZXIpOwotICAgIH0KKyAgaWYgKCFz
aG91bGRTY2F2ZW5nZSgpKSB7CisgICAgbV9zY2F2ZW5naW5nU2NoZWR1bGVkID0gZmFsc2U7Cisg
ICAgZGlzcGF0Y2hfc3VzcGVuZChtX3NjYXZlbmdlVGltZXIpOworICB9CiB9CiAjZW5kaWYgLy8g
SEFWRShESVNQQVRDSF9IKQogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm0uaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDQ5NzVmNTMuLmRlMDA3
NDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTE3LDggKzExMTcsOCBAQCBvbiBNaW5HVy4g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTI2OCAqLwogI2Rl
ZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspIHx8IChQTEFURk9STShFRkwpICYmIEVOQUJMRShHTElCX1NVUFBPUlQpKQotI2luY2x1ZGUg
IkdUeXBlZGVmcy5oIgorI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJHdGtUeXBlZGVmcy5o
IgogI2VuZGlmCiAKICNlbmRpZiAvKiBXVEZfUGxhdGZvcm1faCAqLwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmggYi9KYXZhU2NyaXB0Q29yZS93dGYv
Z29iamVjdC9HVHlwZWRlZnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmY5Mjgz
ZS4uMDAwMDAwMAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HVHlwZWRlZnMuaAor
KysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
SWdhbGlhLCBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgR3RrVHlwZWRlZnNfaAotI2RlZmluZSBH
dGtUeXBlZGVmc19oCi0KLS8qIFZhbmlsbGEgQyBjb2RlIGRvZXMgbm90IHNlZW0gdG8gYmUgYWJs
ZSB0byBoYW5kbGUgZm9yd2FyZC1kZWNsYXJhdGlvbiB0eXBlZGVmcy4gKi8KLSNpZmRlZiAgX19j
cGx1c3BsdXMKLQotdHlwZWRlZiBjaGFyIGdjaGFyOwotdHlwZWRlZiBkb3VibGUgZ2RvdWJsZTsK
LXR5cGVkZWYgZmxvYXQgZ2Zsb2F0OwotdHlwZWRlZiBpbnQgZ2ludDsKLXR5cGVkZWYgZ2ludCBn
Ym9vbGVhbjsKLXR5cGVkZWYgbG9uZyBnbG9uZzsKLXR5cGVkZWYgc2hvcnQgZ3Nob3J0OwotdHlw
ZWRlZiB1bnNpZ25lZCBjaGFyIGd1Y2hhcjsKLXR5cGVkZWYgdW5zaWduZWQgaW50IGd1aW50Owot
dHlwZWRlZiB1bnNpZ25lZCBsb25nIGd1bG9uZzsKLXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgZ3Vz
aG9ydDsKLXR5cGVkZWYgdm9pZCogZ3BvaW50ZXI7Ci0KLXR5cGVkZWYgc3RydWN0IF9HQ29uZCBH
Q29uZDsKLXR5cGVkZWYgc3RydWN0IF9HRGlyIEdEaXI7Ci10eXBlZGVmIHN0cnVjdCBfR2RrQXRv
bSogR2RrQXRvbTsKLXR5cGVkZWYgc3RydWN0IF9HZGtDdXJzb3IgR2RrQ3Vyc29yOwotdHlwZWRl
ZiBzdHJ1Y3QgX0dka0RyYWdDb250ZXh0IEdka0RyYWdDb250ZXh0OwotdHlwZWRlZiBzdHJ1Y3Qg
X0dka0RyYXdhYmxlIEdka0RyYXdhYmxlOwotdHlwZWRlZiBzdHJ1Y3QgX0dka0V2ZW50Q29uZmln
dXJlIEdka0V2ZW50Q29uZmlndXJlOwotdHlwZWRlZiBzdHJ1Y3QgX0dka1BpeGJ1ZiBHZGtQaXhi
dWY7Ci10eXBlZGVmIHN0cnVjdCBfR0Vycm9yIEdFcnJvcjsKLXR5cGVkZWYgc3RydWN0IF9HRmls
ZSBHRmlsZTsKLXR5cGVkZWYgc3RydWN0IF9HSGFzaFRhYmxlIEdIYXNoVGFibGU7Ci10eXBlZGVm
IHN0cnVjdCBfR0xpc3QgR0xpc3Q7Ci10eXBlZGVmIHN0cnVjdCBfR011dGV4IEdNdXRleDsKLXR5
cGVkZWYgc3RydWN0IF9HUGF0dGVyblNwZWMgR1BhdHRlcm5TcGVjOwotdHlwZWRlZiBzdHJ1Y3Qg
X0dWYXJpYW50IEdWYXJpYW50OwotdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7Ci0K
LSNpZiBQTEFURk9STShDQUlSTykKLXR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJv
X3N1cmZhY2VfdDsKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKQotdHlwZWRlZiBzdHJ1Y3Qg
X0d0a0FjdGlvbiBHdGtBY3Rpb247Ci10eXBlZGVmIHN0cnVjdCBfR3RrQWRqdXN0bWVudCBHdGtB
ZGp1c3RtZW50OwotdHlwZWRlZiBzdHJ1Y3QgX0d0a0JvcmRlciBHdGtCb3JkZXI7Ci10eXBlZGVm
IHN0cnVjdCBfR3RrQ2xpcGJvYXJkIEd0a0NsaXBib2FyZDsKLXR5cGVkZWYgc3RydWN0IF9HdGtD
b250YWluZXIgR3RrQ29udGFpbmVyOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a0ljb25JbmZvIEd0a0lj
b25JbmZvOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3RrTWVudTsKLXR5cGVkZWYgc3RydWN0
IF9HdGtNZW51SXRlbSBHdGtNZW51SXRlbTsKLXR5cGVkZWYgc3RydWN0IF9HdGtPYmplY3QgR3Rr
T2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1NlbGVjdGlvbkRhdGEgR3RrU2VsZWN0aW9uRGF0
YTsKLXR5cGVkZWYgc3RydWN0IF9HdGtTdHlsZSBHdGtTdHlsZTsKLXR5cGVkZWYgc3RydWN0IF9H
dGtUYXJnZXRMaXN0IEd0a1RhcmdldExpc3Q7Ci10eXBlZGVmIHN0cnVjdCBfR3RrVGhlbWVQYXJ0
cyBHdGtUaGVtZVBhcnRzOwotdHlwZWRlZiBzdHJ1Y3QgX0d0a1dpZGdldCBHdGtXaWRnZXQ7Ci0K
LSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotdHlwZWRlZiBzdHJ1Y3QgX0dka1JlY3RhbmdsZSBH
ZGtSZWN0YW5nbGU7Ci0jZWxzZQotdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9pbnQg
Y2Fpcm9fcmVjdGFuZ2xlX2ludF90OwotdHlwZWRlZiBjYWlyb19yZWN0YW5nbGVfaW50X3QgR2Rr
UmVjdGFuZ2xlOwotI2VuZGlmCi0KLSNlbmRpZgotCi0jZW5kaWYKLSNlbmRpZiAvKiBHdGtUeXBl
ZGVmc19oICovCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0d0a1R5cGVkZWZz
LmggYi9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0d0a1R5cGVkZWZzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZWU5NmY4NAotLS0gL2Rldi9udWxsCisrKyBiL0phdmFTY3Jp
cHRDb3JlL3d0Zi9ndGsvR3RrVHlwZWRlZnMuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEd0a1R5cGVk
ZWZzX2gKKyNkZWZpbmUgR3RrVHlwZWRlZnNfaAorCisvKiBWYW5pbGxhIEMgY29kZSBkb2VzIG5v
dCBzZWVtIHRvIGJlIGFibGUgdG8gaGFuZGxlIGZvcndhcmQtZGVjbGFyYXRpb24gdHlwZWRlZnMu
ICovCisjaWZkZWYgIF9fY3BsdXNwbHVzCisKK3R5cGVkZWYgY2hhciBnY2hhcjsKK3R5cGVkZWYg
ZG91YmxlIGdkb3VibGU7Cit0eXBlZGVmIGZsb2F0IGdmbG9hdDsKK3R5cGVkZWYgaW50IGdpbnQ7
Cit0eXBlZGVmIGdpbnQgZ2Jvb2xlYW47Cit0eXBlZGVmIGxvbmcgZ2xvbmc7Cit0eXBlZGVmIHNo
b3J0IGdzaG9ydDsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBndWNoYXI7Cit0eXBlZGVmIHVuc2ln
bmVkIGludCBndWludDsKK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBndWxvbmc7Cit0eXBlZGVmIHVu
c2lnbmVkIHNob3J0IGd1c2hvcnQ7Cit0eXBlZGVmIHZvaWQqIGdwb2ludGVyOworCit0eXBlZGVm
IHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7Cit0eXBlZGVmIHN0cnVjdCBf
R0NvbmQgR0NvbmQ7Cit0eXBlZGVmIHN0cnVjdCBfR0RpciBHRGlyOwordHlwZWRlZiBzdHJ1Y3Qg
X0dka0F0b20qIEdka0F0b207Cit0eXBlZGVmIHN0cnVjdCBfR2RrQ3Vyc29yIEdka0N1cnNvcjsK
K3R5cGVkZWYgc3RydWN0IF9HZGtEcmFnQ29udGV4dCBHZGtEcmFnQ29udGV4dDsKK3R5cGVkZWYg
c3RydWN0IF9HZGtEcmF3YWJsZSBHZGtEcmF3YWJsZTsKK3R5cGVkZWYgc3RydWN0IF9HZGtFdmVu
dENvbmZpZ3VyZSBHZGtFdmVudENvbmZpZ3VyZTsKK3R5cGVkZWYgc3RydWN0IF9HZGtQaXhidWYg
R2RrUGl4YnVmOwordHlwZWRlZiBzdHJ1Y3QgX0dFcnJvciBHRXJyb3I7Cit0eXBlZGVmIHN0cnVj
dCBfR0ZpbGUgR0ZpbGU7Cit0eXBlZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRhYmxlOwor
dHlwZWRlZiBzdHJ1Y3QgX0dMaXN0IEdMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0dNdXRleCBHTXV0
ZXg7Cit0eXBlZGVmIHN0cnVjdCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKK3R5cGVkZWYg
c3RydWN0IF9HdGtBY3Rpb24gR3RrQWN0aW9uOwordHlwZWRlZiBzdHJ1Y3QgX0d0a0FkanVzdG1l
bnQgR3RrQWRqdXN0bWVudDsKK3R5cGVkZWYgc3RydWN0IF9HdGtCb3JkZXIgR3RrQm9yZGVyOwor
dHlwZWRlZiBzdHJ1Y3QgX0d0a0NsaXBib2FyZCBHdGtDbGlwYm9hcmQ7Cit0eXBlZGVmIHN0cnVj
dCBfR3RrQ29udGFpbmVyIEd0a0NvbnRhaW5lcjsKK3R5cGVkZWYgc3RydWN0IF9HdGtJY29uSW5m
byBHdGtJY29uSW5mbzsKK3R5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0a01lbnU7Cit0eXBlZGVm
IHN0cnVjdCBfR3RrTWVudUl0ZW0gR3RrTWVudUl0ZW07Cit0eXBlZGVmIHN0cnVjdCBfR3RrT2Jq
ZWN0IEd0a09iamVjdDsKK3R5cGVkZWYgc3RydWN0IF9HdGtTZWxlY3Rpb25EYXRhIEd0a1NlbGVj
dGlvbkRhdGE7Cit0eXBlZGVmIHN0cnVjdCBfR3RrU3R5bGUgR3RrU3R5bGU7Cit0eXBlZGVmIHN0
cnVjdCBfR3RrVGFyZ2V0TGlzdCBHdGtUYXJnZXRMaXN0OwordHlwZWRlZiBzdHJ1Y3QgX0d0a1Ro
ZW1lUGFydHMgR3RrVGhlbWVQYXJ0czsKK3R5cGVkZWYgc3RydWN0IF9HdGtXaWRnZXQgR3RrV2lk
Z2V0OwordHlwZWRlZiBzdHJ1Y3QgX0dWYXJpYW50IEdWYXJpYW50OwordHlwZWRlZiB1bmlvbiBf
R2RrRXZlbnQgR2RrRXZlbnQ7CisKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgordHlwZWRlZiBz
dHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7CisjZWxzZQordHlwZWRlZiBzdHJ1Y3Qg
X2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90OwordHlwZWRlZiBjYWly
b19yZWN0YW5nbGVfaW50X3QgR2RrUmVjdGFuZ2xlOworI2VuZGlmCisKKyNlbmRpZgorCisjZW5k
aWYgLyogR3RrVHlwZWRlZnNfaCAqLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRkMGI3MWIuLjk1MGEwYjYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMTE5MSArMSwxNiBAQAotMjAxMC0wOS0wNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CisyMDEwLTA5LTAzICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJv
bWl1bS5vcmc+CiAKLSAgICAgICAgVW5yZXZpZXdlZCwgc2tpcHBpbmcgYSBjcmFzaGluZyBtZWRp
YSB0ZXN0LgorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAotICAgICAgICBb
R1N0cmVhbWVyXSBtdWx0aXBsZSA8dmlkZW8+IGVsZW1lbnRzICsgUHVsc2VBdWRpbyBhcmUgY3Jh
c2gtcHJvbmUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0MjM1Ci0KLSAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogU2tpcCBtZWRpYS9jb250
cm9scy1zdHlsaW5nLmh0bWwKLQotMjAxMC0wOS0wNiAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRz
dGVpbmVyQGNocm9taXVtLm9yZz4KLQotICAgICAgICBVbnJldmlld2VkOiB1cHN0cmVhbSBDaHJv
bWl1bSBTVkcgdGVzdF9leHBlY3RhdGlvbnMKLQotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKLQotMjAxMC0wOS0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFVwZGF0ZSBleHBlY3RlZCByZXN1bHRzIHRvIG1hdGNo
IGNoYW5nZSBpbiB0ZXN0LiAgUXQncyBiZWhhdmlvciBpcwotICAgICAgICB1bmNoYW5nZWQuICBJ
dCdzIGp1c3QgdGhlIHJlZHVuZGFudCBleHBlY3RhdGlvbnMgaW4gdGhlIHRlc3QgdGhhdCBhcmUK
LSAgICAgICAgY2hhbmdpbmcuCi0KLSAgICAgICAgKiBwbGF0Zm9ybS9xdC9mYXN0L2V2ZW50cy9j
b250aW51b3VzLXBsYXRmb3JtLXdoZWVsZXZlbnQtaW4tc2Nyb2xsaW5nLWRpdi1leHBlY3RlZC50
eHQ6Ci0KLTIwMTAtMDgtMzEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgotCi0gICAgICAgIFdlYiBJ
bnNwZWN0b3I6IGJyb3dzZXIgY3Jhc2hlcyBvbiBhdHRlbXB0IHRvIGV2YWx1YXRlICJhbGVydCgx
KSIgd2hpbGUgc3RheWluZyBvbiBhIGJyZWFrcG9pbnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQzCi0KLSAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXItc3VzcGVuZC1hY3RpdmUtZG9tLW9iamVjdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KLSAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXItc3VzcGVuZC1hY3RpdmUtZG9tLW9iamVjdHMuaHRt
bDogQWRkZWQuCi0KLTIwMTAtMDktMDUgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUu
Y29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgTWFrZSBD
aHJvbWl1bS9NYWMgZ2VuZXJhdGUgY29udGludW91cyBtb3VzZXdoZWVsIGV2ZW50cyB3aXRoIHRo
ZSBzYW1lIHdoZWVsRGVsdGEgdmFsdWVzIGFzIFNhZmFyaS9NYWMuCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE1NQotCi0gICAgICAgICogZmFzdC9l
dmVudHMvY29udGludW91cy1wbGF0Zm9ybS13aGVlbGV2ZW50LWluLXNjcm9sbGluZy1kaXYtZXhw
ZWN0ZWQudHh0OgotICAgICAgICAqIGZhc3QvZXZlbnRzL2NvbnRpbnVvdXMtcGxhdGZvcm0td2hl
ZWxldmVudC1pbi1zY3JvbGxpbmctZGl2Lmh0bWw6Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9ldmVudHM6IFJlbW92ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFz
dC9ldmVudHMvY29udGludW91cy1wbGF0Zm9ybS13aGVlbGV2ZW50LWluLXNjcm9sbGluZy1kaXYt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgotCi0yMDEwLTA5LTA1ICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KLQotICAgICAgICBVbnJldmlld2VkLCB0ZXN0IGV4cGVjdGF0aW9uIHVw
ZGF0ZS4KLQotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0
OgotICAgICAgICAgIEZpeCBhIGR1cGxpY2F0aW9uIHdpdGggdGVzdF9leHBlY3RhdGlvbnMudHh0
IGluIENocm9taXVtIHRyZWUuCi0KLTIwMTAtMDktMDUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb24gdXBkYXRl
LgotCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQ6IEFw
cGx5IHJlY2VudCBmYWlsdXJlcy4KLQotMjAxMC0wOS0wNSAgS2VudCBUYW11cmEgIDx0a2VudEBj
aHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgVW5yZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbiB1cGRh
dGUuCi0KLSAgICAgICAgQWRkIHN2Zy9keW5hbWljLXVwZGF0ZS8gaW1hZ2UgcmVzdWx0cyBmb3Ig
Q2hyb21pdW0td2luIGFuZCBDaHJvbWl1bS1saW51eC4KLQotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tY3gt
YXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1jeC1hdHRy
LWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLXItYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdDaXJjbGVFbGVtZW50LWRvbS1yLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNs
ZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xl
RWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVu
dC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50
LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LXN2Z2Rv
bS1yLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20t
ci1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aC1pbmZsdWVuY2VzLWhpdFRlc3Rp
bmctZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGgtaW5mbHVlbmNlcy1oaXRUZXN0
aW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aEVsZW1lbnQtZG9tLWNsaXBQYXRoVW5p
dHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aEVsZW1lbnQtZG9tLWNs
aXBQYXRoVW5pdHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LXN2
Z2RvbS1jbGlwUGF0aFVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBh
dGhFbGVtZW50LXN2Z2RvbS1jbGlwUGF0aFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0N1cnNvckVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJz
b3JFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQt
ZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LWRvbS15
LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1l
eHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdF
bGxpcHNlRWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxp
cHNlRWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1l
bnQtZG9tLXJ4LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQt
ZG9tLXJ4LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeS1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeS1hdHRy
LWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBl
Y3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeC1wcm9wLWV4cGVjdGVkLnBuZzog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tcnktcHJvcC1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tcnktcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1kaWZmdXNlQ29uc3RhbnQtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWRpZmZ1
c2VDb25zdGFudC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQtZG9tLWluLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQtZG9tLWxpZ2h0aW5nLWNvbG9yLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1saWdodGluZy1jb2xvci1hdHRy
LWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLXN1cmZh
Y2VTY2FsZS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5n
RWxlbWVudC1kb20tc3VyZmFjZVNjYWxlLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC1saWdodGluZy1jb2xvci1jc3MtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtbGlnaHRpbmctY29sb3ItY3Nz
LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdk
b20tZGlmZnVzZUNvbnN0YW50LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1kaWZmdXNlQ29uc3RhbnQtcHJvcC1leHBlY3RlZC5w
bmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20taW4t
cHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2Rv
bS1zdXJmYWNlU2NhbGUtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQtc3ZnZG9tLXN1cmZhY2VTY2FsZS1wcm9wLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGRU9mZnNldEVsZW1lbnQtZG9tLWR4LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9m
ZnNldEVsZW1lbnQtZG9tLWR5LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZz
ZXRFbGVtZW50LWRvbS1keS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1l
bnQtZG9tLWluLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50
LWRvbS1pbi1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtc3ZnZG9t
LWR4LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2Rv
bS1keC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtc3ZnZG9tLWR5
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1k
eS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtc3ZnZG9tLWluLXBy
b3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1pbi1w
cm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLWxpbWl0aW5n
Q29uZUFuZ2xlLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVt
ZW50LWRvbS1saW1pdGluZ0NvbmVBbmdsZS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNw
b3RMaWdodEVsZW1lbnQtZG9tLXBvaW50c0F0WC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRZLWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFktYXR0ci1leHBl
Y3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFotYXR0ci1l
eHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBvaW50c0F0
Wi1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXNwZWN1
bGFyRXhwb25lbnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVs
ZW1lbnQtZG9tLXNwZWN1bGFyRXhwb25lbnQtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVs
ZW1lbnQtZG9tLXotYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVs
ZW1lbnQtZG9tLXotYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50
LXN2Z2RvbS1saW1pdGluZ0NvbmVBbmdsZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tbGltaXRpbmdDb25lQW5nbGUtcHJvcC1leHBlY3Rl
ZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFgtcHJvcC1l
eHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50
c0F0WC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9t
LXBvaW50c0F0WS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRaLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFotcHJvcC1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVjdWxhckV4cG9uZW50LXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVj
dWxhckV4cG9uZW50LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVu
dC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVs
ZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVt
ZW50LXN2Z2RvbS16LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRF
bGVtZW50LXN2Z2RvbS16LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
ZG9tLWZpbHRlclJlcy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1l
bnQtZG9tLWZpbHRlclJlcy1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50
LWRvbS1maWx0ZXJVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtZG9tLWZpbHRlclVuaXRzLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50
LWRvbS1wcmltaXRpdmVVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRl
ckVsZW1lbnQtZG9tLXByaW1pdGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zp
bHRlckVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmls
dGVyRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxl
bWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
ZG9tLXgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teS1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXktYXR0ci1leHBl
Y3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzLWNhbGwtZXhw
ZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzLWNh
bGwtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlc1gt
cHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0
ZXJSZXNYLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZp
bHRlclJlc1ktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2
Z2RvbS1maWx0ZXJSZXNZLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
c3ZnZG9tLWZpbHRlclVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
RWxlbWVudC1zdmdkb20tZmlsdGVyVW5pdHMtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmls
dGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zp
bHRlckVsZW1lbnQtc3ZnZG9tLXByaW1pdGl2ZVVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tcHJpbWl0aXZlVW5pdHMtcHJvcC1leHBlY3Rl
ZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVk
LnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20taGVp
Z2h0LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy1kb20tcmVzdWx0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS1yZXN1bHQtYXR0ci1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS13aWR0aC1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS14LWF0dHItZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20teS1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1kb20teS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20taGVpZ2h0LXByb3AtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdk
b20tcmVzdWx0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS1yZXN1bHQtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS13aWR0aC1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS14LXByb3AtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20t
eS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmc6IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS13
aWR0aC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdk
b20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRv
bS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9t
LWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXByZXNl
cnZlQXNwZWN0UmF0aW8tYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1l
bnQtZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1h
Z2VFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdl
RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50
LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS14
LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20teS1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20tcHJlc2VydmVBc3BlY3RSYXRpby1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20tcHJlc2VydmVBc3Bl
Y3RSYXRpby1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXdp
ZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS13
aWR0aC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXgtcHJv
cC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1l
eHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxl
bWVudC1kb20teDItYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1k
b20teDItYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0dHIt
ZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0dHItZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdM
aW5lRWxlbWVudC1zdmdkb20teDEtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5l
RWxlbWVudC1zdmdkb20teDEtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQt
c3ZnZG9tLXgyLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3Zn
ZG9tLXgyLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15MS1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9w
LWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTItcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTItcHJvcC1leHBlY3RlZC5w
bmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20t
Z3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDEtYXR0ci1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXgxLWF0dHItZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDItYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXgyLWF0dHItZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTEtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXkxLWF0dHIt
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTItYXR0ci1l
eHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXkyLWF0
dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3Jh
ZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3Jh
ZGllbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLXgxLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LXN2Z2RvbS14MS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQtc3ZnZG9tLXgyLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXkxLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLnBuZzog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXkyLXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVj
dGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJIZWlnaHQtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJIZWlnaHQtYXR0
ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyVW5pdHMtYXR0
ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJVbml0
cy1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJXaWR0
aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtl
cldpZHRoLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW9yaWVu
dC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW9yaWVu
dC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1yZWZYLWF0dHIt
ZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWC1hdHRyLWV4
cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1yZWZZLWF0dHItZXhwZWN0ZWQu
Y2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWS1hdHRyLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJIZWlnaHQtcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJIZWlnaHQtcHJv
cC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyVW5pdHMt
cHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJr
ZXJVbml0cy1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1t
YXJrZXJXaWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQt
c3ZnZG9tLW1hcmtlcldpZHRoLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1l
bnQtc3ZnZG9tLW9yaWVudEFuZ2xlLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFy
a2VyRWxlbWVudC1zdmdkb20tb3JpZW50QW5nbGUtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50VHlwZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudFR5cGUtcHJvcC1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlgtcHJvcC1leHBlY3RlZC5wbmc6IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlktcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BbmdsZS1jYWxsLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQW5nbGUtY2Fs
bC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9B
dXRvLWNhbGwtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
c2V0T3JpZW50VG9BdXRvLWNhbGwtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRv
bS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20t
aGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrQ29u
dGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9t
LW1hc2tDb250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQt
ZG9tLW1hc2tVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50
LWRvbS1tYXNrVW5pdHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9t
LXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXdp
ZHRoLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS14LWF0dHItZXhw
ZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5w
bmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXNrRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxl
bWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0Vs
ZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVu
dC1zdmdkb20tbWFza0NvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrQ29udGVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1
bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20tbWFza1VuaXRzLXByb3AtZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXNrRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hc2tFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVt
ZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQt
c3ZnZG9tLXktcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLWhl
aWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1o
ZWlnaHQtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRl
cm5Db250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxl
bWVudC1kb20tcGF0dGVybkNvbnRlbnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQ
YXR0ZXJuRWxlbWVudC1kb20tcGF0dGVyblRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVHJhbnNmb3JtLWF0dHItZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVW5pdHMtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20tcGF0dGVyblVuaXRzLWF0
dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4
cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVy
bkVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Bh
dHRlcm5FbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0
dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVybkNvbnRlbnRVbml0cy1w
cm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblRy
YW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2
Z2RvbS1wYXR0ZXJuVHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LXN2Z2RvbS1wYXR0ZXJuVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblVuaXRzLXByb3AtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLnBuZzog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1BhdHRlcm5FbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UGF0dGVybkVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZngtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZnktYXR0ci1leHBlY3RlZC5wbmc6IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGll
bnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tci1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tci1hdHRyLWV4cGVjdGVkLnBuZzog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVj
dGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeS1w
cm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWZ4
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1meC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQt
c3ZnZG9tLWZ5LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1meS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1w
cm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdy
YWRpZW50VW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JlY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSZWN0RWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jl
Y3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RF
bGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1k
b20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS14LWF0
dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQu
Y2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5wbmc6IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jl
Y3RFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVs
ZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3Zn
ZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20t
eS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUUmVmRWxlbWVudC1kb20taHJlZi1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RSZWZFbGVtZW50LWRvbS1ocmVmLWF0dHItZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LWRvbS10cmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdUZXh0RWxlbWVudC1kb20tdHJhbnNmb3JtLWF0dHItZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS10cmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdUZXh0RWxlbWVudC1zdmdkb20tdHJhbnNmb3JtLXByb3AtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2ly
Y2xlRWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxl
bWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLXIt
YXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tci1hdHRyLWV4
cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJj
bGVFbGVtZW50LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVs
ZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoLWluZmx1ZW5j
ZXMtaGl0VGVzdGluZy1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGgtaW5mbHVlbmNl
cy1oaXRUZXN0aW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LWRvbS1jbGlw
UGF0aFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVudC1k
b20tY2xpcFBhdGhVbml0cy1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50
LXN2Z2RvbS1jbGlwUGF0aFVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQ
YXRoRWxlbWVudC1zdmdkb20tY2xpcFBhdGhVbml0cy1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Q3Vyc29yRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JF
bGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LWRvbS15
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtZG9tLXktYXR0ci1l
eHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZzog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdDdXJzb3JFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNl
RWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1l
bnQtZG9tLWN4LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tY3kt
YXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN5LWF0dHIt
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcngtYXR0ci1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ4LWF0dHItZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcnktYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RWxsaXBzZUVsZW1lbnQtZG9tLXJ5LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxl
bWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1l
bnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdk
b20tY3ktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9t
LWN5LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tcngtcHJv
cC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ4LXByb3At
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tcnktcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ5LXByb3AtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWRpZmZ1c2VDb25zdGFudC1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9t
LWRpZmZ1c2VDb25zdGFudC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQtZG9tLWluLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQtZG9tLWxpZ2h0aW5nLWNvbG9yLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tbGlnaHRpbmctY29sb3ItYXR0ci1l
eHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tc3VyZmFjZVNj
YWxlLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC1kb20tc3VyZmFjZVNjYWxlLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQtbGlnaHRpbmctY29sb3ItY3NzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1saWdodGluZy1jb2xvci1jc3MtcHJvcC1leHBl
Y3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tZGlmZnVzZUNv
bnN0YW50LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC1zdmdkb20tZGlmZnVzZUNvbnN0YW50LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQtc3ZnZG9tLWluLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20taW4tcHJvcC1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tc3VyZmFjZVNjYWxlLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20t
c3VyZmFjZVNjYWxlLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtZG9t
LWR4LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHgt
YXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHktYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keS1hdHRyLWV4cGVjdGVk
LnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtZG9tLWluLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
RU9mZnNldEVsZW1lbnQtc3ZnZG9tLWR4LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZF
T2Zmc2V0RWxlbWVudC1zdmdkb20tZHgtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0
RWxlbWVudC1zdmdkb20tZHktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRF
bGVtZW50LXN2Z2RvbS1keS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50
LXN2Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQt
c3ZnZG9tLWluLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9t
LWxpbWl0aW5nQ29uZUFuZ2xlLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1kb20tbGltaXRpbmdDb25lQW5nbGUtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBvaW50c0F0WS1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBvaW50c0F0WS1hdHRyLWV4cGVj
dGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFotYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFotYXR0
ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tc3BlY3VsYXJFeHBv
bmVudC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9t
LXNwZWN1bGFyRXhwb25lbnQtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20t
eS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXkt
YXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tei1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXotYXR0ci1leHBl
Y3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tbGltaXRpbmdDb25lQW5n
bGUtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2Rv
bS1saW1pdGluZ0NvbmVBbmdsZS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRF
bGVtZW50LXN2Z2RvbS1wb2ludHNBdFgtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFgtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0Wi1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0
Wi1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVj
dWxhckV4cG9uZW50LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC1zdmdkb20tc3BlY3VsYXJFeHBvbmVudC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZF
U3BvdExpZ2h0RWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3Bv
dExpZ2h0RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGln
aHRFbGVtZW50LXN2Z2RvbS16LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1zdmdkb20tei1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1kb20tZmlsdGVyUmVzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1l
bnQtZG9tLWZpbHRlclJlcy1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1k
b20tZmlsdGVyVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1kb20tZmlsdGVyVW5pdHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
ZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRv
bS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXByaW1p
dGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9t
LXByaW1pdGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRv
bS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS13
aWR0aC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlckVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtc3ZnZG9tLWZpbHRlclJlcy1jYWxsLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0
ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJSZXMtY2FsbC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRl
ckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlc1gtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzWC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJSZXNZLXByb3AtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJVbml0cy1wcm9wLWV4cGVjdGVk
LnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tcHJpbWl0aXZlVW5pdHMtcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tcHJpbWl0aXZlVW5pdHMtcHJv
cC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhw
ZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmc6IEFk
ZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1
bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS1oZWlnaHQtYXR0
ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1k
b20tcmVzdWx0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy1kb20tcmVzdWx0LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20td2lkdGgt
YXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXktYXR0ci1leHBlY3RlZC5w
bmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20taGVpZ2h0
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXJlc3VsdC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXJlc3Vs
dC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXgtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2
Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5w
bmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tz
dW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3At
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teC1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teC1wcm9w
LWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXktcHJvcC1l
eHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXktcHJv
cC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS1wcmVzZXJ2ZUFzcGVjdFJhdGlv
LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhw
ZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3Rl
ZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdJbWFnZUVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxl
bWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9t
LXktYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20taGVpZ2h0LXBy
b3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20taGVpZ2h0LXBy
b3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXByZXNlcnZlQXNwZWN0
UmF0aW8tcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1w
cmVzZXJ2ZUFzcGVjdFJhdGlvLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQt
c3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1z
dmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20t
eC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXgtcHJv
cC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdM
aW5lRWxlbWVudC1kb20teDEtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRv
bS14Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teDItYXR0
ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15MS1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teTEtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxl
bWVudC1kb20teTItYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14
MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDEtcHJv
cC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDItcHJvcC1leHBlY3RlZC5wbmc6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdMaW5lRWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVt
ZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1z
dmdkb20teTItcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1k
b20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZzog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0
cy1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14MS1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXgx
LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXgyLWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDIt
YXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTEtYXR0
ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15MS1h
dHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15Mi1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXkyLWF0
dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRp
ZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5p
dHMtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20t
eDEtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS14MS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLXgyLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLXkxLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC1zdmdkb20teTItcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxl
bWVudC1kb20tbWFya2VySGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtl
ckVsZW1lbnQtZG9tLW1hcmtlckhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2Vy
RWxlbWVudC1kb20tbWFya2VyVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFy
a2VyRWxlbWVudC1kb20tbWFya2VyVW5pdHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtl
ckVsZW1lbnQtZG9tLW1hcmtlcldpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01h
cmtlckVsZW1lbnQtZG9tLW1hcmtlcldpZHRoLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJr
ZXJFbGVtZW50LWRvbS1vcmllbnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2Vy
RWxlbWVudC1kb20tb3JpZW50LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50
LWRvbS1yZWZYLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9t
LXJlZlgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlktYXR0
ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWS1hdHRyLWV4
cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VySGVpZ2h0LXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlckhlaWdo
dC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyVW5p
dHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFy
a2VyVW5pdHMtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1h
cmtlcldpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3Zn
ZG9tLW1hcmtlcldpZHRoLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2
Z2RvbS1vcmllbnRBbmdsZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVt
ZW50LXN2Z2RvbS1vcmllbnRBbmdsZS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxl
bWVudC1zdmdkb20tb3JpZW50VHlwZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJr
ZXJFbGVtZW50LXN2Z2RvbS1vcmllbnRUeXBlLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJr
ZXJFbGVtZW50LXN2Z2RvbS1yZWZYLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtl
ckVsZW1lbnQtc3ZnZG9tLXJlZlgtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1l
bnQtc3ZnZG9tLXJlZlktcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVu
dC1zdmdkb20tcmVmWS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdk
b20tc2V0T3JpZW50VG9BbmdsZS1jYWxsLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJF
bGVtZW50LXN2Z2RvbS1zZXRPcmllbnRUb0FuZ2xlLWNhbGwtZXhwZWN0ZWQucG5nOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRPcmllbnRUb0F1dG8tY2FsbC1leHBlY3RlZC5jaGVja3N1
bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BdXRvLWNhbGwtZXhwZWN0
ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tz
dW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hc2tFbGVtZW50LWRvbS1tYXNrQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdNYXNrRWxlbWVudC1kb20tbWFza1VuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrVW5pdHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hc2tFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNr
RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRv
bS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS14LWF0dHIt
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFz
a0VsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNr
RWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVu
dC1zdmdkb20tbWFza0NvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXNrRWxlbWVudC1zdmdkb20tbWFza0NvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXNrRWxlbWVudC1zdmdkb20tbWFza1VuaXRzLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdNYXNrRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxl
bWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1z
dmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXktcHJv
cC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBl
Y3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5j
aGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBu
ZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Db250ZW50VW5p
dHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVHJh
bnNmb3JtLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1w
YXR0ZXJuVHJhbnNmb3JtLWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1k
b20tcGF0dGVyblVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVt
ZW50LWRvbS1wYXR0ZXJuVW5pdHMtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVt
ZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVu
dC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS14
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS14LWF0dHIt
ZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVybkNvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVybkNvbnRlbnRVbml0
cy1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5U
cmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3Zn
ZG9tLXBhdHRlcm5UcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVt
ZW50LXN2Z2RvbS1wYXR0ZXJuVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0
dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Vbml0cy1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UGF0dGVybkVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1BhdHRlcm5FbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0g
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0
dGVybkVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVy
bkVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50
LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2
Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9t
LWN4LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1k
b20tY3gtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
Y3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRv
bS1jeS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1m
eC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9t
LWZ4LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWZ5
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
ZnktYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3Jh
ZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQu
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRy
LWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1yLWF0dHItZXhw
ZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tci1hdHRyLWV4
cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWN4LXBy
b3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWN5LXBy
b3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20t
Y3ktcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20t
ZngtcHJvcC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1meC1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1meS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLWZ5LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBl
Y3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0
cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3Zn
ZG9tLWdyYWRpZW50VW5pdHMtcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50
LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9t
LWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4
cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1
bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RF
bGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRv
bS15LWF0dHItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20taGVpZ2h0LXBy
b3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJv
cC1leHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3Rl
ZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0
RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVu
dC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVFJlZkVsZW1lbnQtZG9tLWhyZWYt
YXR0ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVFJlZkVsZW1lbnQtZG9tLWhyZWYtYXR0ci1l
eHBlY3RlZC5wbmc6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LWRvbS10cmFuc2Zvcm0tYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtZG9tLXRyYW5zZm9ybS1hdHRyLWV4cGVjdGVk
LnBuZzogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtc3ZnZG9tLXRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdUZXh0RWxlbWVudC1zdmdkb20tdHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQu
cG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhwZWN0YXRpb25z
LnR4dDoKLQotMjAxMC0wOS0wNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+Ci0K
LSAgICAgICAgVW5yZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbiB1cGRhdGUuCi0KLSAgICAgICAg
VXBkYXRlIENocm9taXVtLW1hYyByZXN1bHRzIGZvciBkeW5hbWljLXVwZGF0ZXMuCi0KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVs
ZW1lbnQtc3ZnZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tcHJvcC1leHBlY3RlZC5jaGVja3N1bTog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbWFjL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1t
YWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblRy
YW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS1tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2RydF9leHBlY3RhdGlvbnMudHh0OgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKLQotMjAxMC0w
OS0wNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+Ci0KLSAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY2ODAxLgotICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC82NjgwMQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDUyNDIKLQotICAgICAgICAnYnJlYWtzIGVkaXRpbmcvcGFzdGVi
b2FyZC9vbnBhc3RlLXRleHQtaHRtbC5odG1sJyAoUmVxdWVzdGVkCi0gICAgICAgIGJ5IG13ZW5n
ZTQgb24gI3dlYmtpdCkuCi0KLSAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgotCi0yMDEw
LTA5LTA1ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgotCi0gICAgICAgIEFkZCBJbmRleGVkREIgb2JqZWN0cycg
Y29uc3RydWN0b3JzIHRvIHdpbmRvdwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQ1OTkKLQotICAgICAgICBCZWVmIHVwIGtleVJhbmdlIHRlc3QgdG8g
dmVyaWZ5IHdlJ3JlIGFjdHVhbHkgb3BlcmF0aW5nCi0gICAgICAgIG9uIHRoZSBpbnRlcmZhY2Ug
cmF0aGVyIHRoYW4gYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQWRkIGEgdGVzdCB0byB2ZXJpZnkg
dGhlIGNvbnN0YW50cy4KLQotICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy5o
dG1sOgotICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQ6
Ci0gICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5cmFuZ2UtZXhwZWN0ZWQudHh0OgotICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0cy9rZXlyYW5nZS5qczoKLSAgICAg
ICAgKCk6Ci0KLTIwMTAtMDktMDUgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCi0KLSAgICAgICAgW1F0XSB1dGY4
IGVuY29kaW5nIG9mIGNvbnNvbGUoKSBtZXNzYWdlcwotCi0gICAgICAgIFVuc2tpcDoKLSAgICAg
ICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2VtYmVkLXRhZy1udWxsLWNoYXIuaHRt
bAotICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LWVtYmVkLXRh
Zy1udWxsLWNoYXIuaHRtbAotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTI0MAotCi0gICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKLQotMjAx
MC0wOS0wNCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgotCi0gICAgICAgIEdUSyBTa2lwcGVkIGxpc3Qg
c2hvdWxkIGFsbG93IGEgZGlyZWN0b3J5IHRvIGJlIGxpc3RlZCB3aGVuIGEgZmVhdHVyZSBpcyBu
b3Qgc3VwcG9ydGVkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTIyOQotCi0gICAgICAgIFRoaXMgY2hhbmdlIHVwZGF0ZXMgdGhlIGNvbW1lbnQgaW4g
dGhlIEdUSyBTa2lwcGVkIGxpc3QgdG8gbWFrZSB0aGlzCi0gICAgICAgIGNsZWFyIGFuZCBhcHBs
aWVzIHRoZSBuZXcgcG9saWN5IGZvciB0aGUgRGV2aWNlT3JpZW50YXRpb24gYW5kCi0gICAgICAg
IERldmljZU1vdGlvbiB0ZXN0cy4KLQotICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgot
Ci0yMDEwLTA5LTA0ICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21pdW0ub3JnPgotCi0gICAg
ICAgIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeC4KLQotICAgICAgICBVcGRhdGVkIHBsYXRmb3JtIHRl
c3QgdG8gYWNjb3VudCBmb3IgeG1sIHBhcnNlciBkaWZmZXJlbmNlcwotCi0gICAgICAgICogcGxh
dGZvcm0vbWFjLWxlb3BhcmQvc3ZnL2N1c3RvbS91c2UtaW52YWxpZC1zdHlsZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL3F0L3N2Zy9jdXN0b20vdXNlLWludmFsaWQt
c3R5bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KLSAgICAgICAgKiBzdmcvY3VzdG9tL3VzZS1pbnZh
bGlkLXN0eWxlLWV4cGVjdGVkLnR4dDoKLQotMjAxMC0wOS0wNCAgSnVzdGluIFNjaHVoICA8anNj
aHVoQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1h
bm4uCi0KLSAgICAgICAgQ2hlY2sgZm9yIHByZW1hdHVyZSBkZWxldGlvbiBvZiBzdmcgdXNlIHNo
YWRvdyBzdHlsZSBlbGVtZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MzI2MAotCi0gICAgICAgICogc3ZnL2N1c3RvbS91c2UtaW52YWxpZC1zdHls
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLWludmFsaWQt
c3R5bGUuc3ZnOiBBZGRlZC4KLQotMjAxMC0wOS0wNCAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2Nr
QGdvb2dsZS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4KLQotICAgICAgICBSZW1vdmUgcGxh
dGZvcm0vYW5kcm9pZC9Ta2lwcGVkIHdoaWNoIHdhcyBlcnJvbmVvdXNseSBhZGRlZCBpbgotICAg
ICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82NjI1MS4gQW5kcm9pZCBkb2Vz
IG5vdCB1c2UgYSBTa2lwcGVkIGxpc3QuCi0KLSAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL1Nr
aXBwZWQ6IFJlbW92ZWQuCi0KLTIwMTAtMDktMDMgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9A
Y2hyb21pdW0ub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQuCi0KLSAgICAgICAgQ2xlYW51cCBv
dXRkYXRlZCBlbnRyaWVzIGluIHRlc3RfZXhwZWN0YXRpb25zLgotCi0gICAgICAgIEJVR1dLNDQ5
OTYgV0lOIDogaW5zcGVjdG9yL3JlcG9ydC1BUEktZXJyb3JzLmh0bWwgPSBURVhUCi0gICAgICAg
IEJVR1dLNDQ5OTYgV0lOIDogaW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbCA9
IFRFWFQKLSAgICAgICAgQlVHV0s0NTE4NCBXSU4gOiBpbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwt
eGh0bWwtc3RydWN0dXJlLnhodG1sID0gVElNRU9VVAotCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgotCi0yMDEwLTA5LTAzICBQZXRlciBLYXN0aW5n
ICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KLQotICAgICAgICBOb3QgcmV2aWV3ZWQsIGF0dGVtcHRl
ZCBsYXlvdXQgdGVzdCBmaXguCi0KLSAgICAgICAgUmVwb3J0IGNvcnJlY3QgKHVuem9vbWVkKSBp
bWFnZSBzaXplcyBmb3Igem9vbWVkIGltYWdlcy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMDg5Ci0KLSAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNv
dXJjZXMvb3ZhbC5wbmc6IFR3ZWFrIHRvIHRyeSB0byBhdm9pZCBjcnlwdGljIEltYWdlSU8gZXJy
b3JzLgotCi0yMDEwLTA5LTAzICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCi0KLSAgICAgICAgUmVwb3J0IGNv
cnJlY3QgKHVuem9vbWVkKSBpbWFnZSBzaXplcyBmb3Igem9vbWVkIGltYWdlcy4KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMDg5Ci0KLSAgICAgICAg
KiBmYXN0L2ltYWdlcy9yZXNvdXJjZXMvb3ZhbC5wbmc6IEFkZGVkLgotICAgICAgICAqIGZhc3Qv
aW1hZ2VzL3pvb21lZC1pbWctc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIGZh
c3QvaW1hZ2VzL3pvb21lZC1pbWctc2l6ZS5odG1sOiBBZGRlZC4KLQotMjAxMC0wOS0wMyAgWmhl
bnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQuCi0KLSAgICAg
ICAgQWRkIGZsYWt5IHRlc3QgaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5odG1sIHRvIHRlc3Rf
ZXhwZWN0YXRpb25zLgotCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0OgotCi0yMDEwLTA5LTAzICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4K
LQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBSRUdSRVNTSU9O
IChyNjY0NTIpOiBTZW5kaW5nIG9mIG11bHRpcGFydCBmb3JtcyB3aXRoIGZpbGVzIGlzIGJyb2tl
bi4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTU5
Ci0KLSAgICAgICAgVXBkYXRlZCByZWxhdGVkIHRlc3RzIHRvIGluY2x1ZGUgZHVtcGluZyBjb250
ZW50IHR5cGUuCi0KLSAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9y
bS1kYXRhLWV4cGVjdGVkLnR4dDoKLSAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRh
L3NlbmQtZm9ybS1kYXRhLXdpdGgtc2xpY2VkLWZpbGUtZXhwZWN0ZWQudHh0OgotICAgICAgICAq
IGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvdXBsb2FkLWV2ZW50cy1leHBlY3RlZC50eHQ6Ci0g
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvbXVsdGlwYXJ0LXBv
c3QtZWNoby5waHA6Ci0KLTIwMTAtMDktMDMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KyAgICAgICAgUHJvdmlkZSBzb3VyY2UtYmFzZWQgcHJvcGVydGllcyBmb3Igc3R5bGUgZGVjbGFy
YXRpb25zIHRvIENTU1BhcnNlciBjbGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDk0OQogCi0gICAgICAgIFVucmV2aWV3ZWQuCi0KLSAgICAg
ICAgQ2xlYW4gdXAgdGhlIG91dGRhdGVkIGVudHJpZXMgaW4gdGVzdF9leHBlY3RhdGlvbnMuCi0K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6Ci0KLTIw
MTAtMDktMDMgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgotCi0gICAgICAgIFtDaHJvbWl1bV0gTWFrZSBz
dXJlIHRoYXQgdGhlIHdpZHRoIG9mIHRoZSBtZW51IGxpc3QgaXMgYWx3YXlzIGNvbnN0YW50IHVu
ZGVyIGxheW91dCB0ZXN0cy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1MTk2Ci0KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhwZWN0
YXRpb25zLnR4dDogUmVtb3ZlIG5vdy1wYXNzaW5nIHRlc3RzLgotCi0yMDEwLTA5LTAzICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQuCi0KLSAg
ICAgICAgQWRkZWQgbmV3IGV4cGVjdGVkIHJlc3VsdCB0aGF0IHdhc24ndCBjb21taXR0ZWQgaW4g
cjY2NzY0LgotCi0gICAgICAgICogZWRpdGluZy9zdHlsZS9wdXNoLWRvd24taW1wbGljaXQtc3R5
bGVzLWFyb3VuZC1saXN0LWV4cGVjdGVkLnR4dDoKLQotMjAxMC0wOS0wMyAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgot
Ci0gICAgICAgIEZpeGVkIGEgdGVzdCBjb21taXR0ZWQgaW4gcjY2NzQzLgotCi0gICAgICAgICog
ZWRpdGluZy9zdHlsZS9zY3JpcHQtdGVzdHMvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91
bmQtbGlzdC5qczoKLSAgICAgICAgKHNlbGVjdExhc3RXb3JkKToKLQotMjAxMC0wOS0wMyAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgotCi0gICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5
IEFuZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICBbUXRdIGZhc3QvdGV4dC9kZWNvbXBvc2VkLWFm
dGVyLXN0YWNrZWQtZGlhY3JpdGljcy5odG1sIGZhaWxzIG9uIFF0IExpbnV4Ci0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE5NAotCi0gICAgICAgICog
cGxhdGZvcm0vcXQvU2tpcHBlZDogU2tpcCBmYXN0L3RleHQvZGVjb21wb3NlZC1hZnRlci1zdGFj
a2VkLWRpYWNyaXRpY3MuaHRtbAotCi0yMDEwLTA5LTAzICBaaGVueWFvIE1vICA8em1vQGdvb2ds
ZS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZC4KLQotICAgICAgICBBZGQgZmFpbGluZyB0ZXN0
IChpbiBDaHJvbWl1bSBMaW51eCkgZmFzdC90ZXh0L2RlY29tcG9zZWQtYWZ0ZXItc3RhY2tlZC1k
aWFjcml0aWNzLmh0bWwgdG8gdGVzdF9leHBlY3RhdGlvbnMuCi0KLSAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6Ci0KLTIwMTAtMDktMDMgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLgotCi0gICAgICAgIEFk
ZCBmYWlsaW5nIHRlc3QgKGNocm9taXVtIGxpbnV4KSBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1p
bXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3QuaHRtbCB0byB0ZXN0X2V4cGVjdGF0aW9ucy4KLQot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKLQotMjAx
MC0wOS0wMyAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgotCi0gICAgICAgIFVuZXZpZXdl
ZC4KLQotICAgICAgICBBZGQgVElNRU9VVCB0ZXN0IGluc3BlY3Rvci9lbGVtZW50cy1wYW5lbC14
aHRtbC1zdHJ1Y3R1cmUueGh0bWwgdG8gY2hyb21pdW0gdGVzdF9leHBlY3RhdGlvbnMuCi0KLSAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6Ci0KLTIwMTAt
MDktMDMgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KLQotICAgICAgICBVbnJldmlld2Vk
LgotCi0gICAgICAgIFJlYmFzZWxpbmUgYWZ0ZXIgcjY2NzMxLgotCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXIt
ZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3Vz
ZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC5jaGVja3N1bTogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1t
b3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgotICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1z
dmctcm9vdC1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLnR4
dDogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9t
b3VzZS1tb3ZlLW9uLXN2Zy1yb290LXN0YW5kYWxvbmUtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVk
LgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91c2UtbW92
ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFp
bmVyLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQucG5n
OiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3Vz
ZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWlu
ZXItc3RhbmRhbG9uZS1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLXN0
YW5kYWxvbmUtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
Y3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3QtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgot
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24t
c3ZnLXJvb3QtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92
ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1y
b290LXN0YW5kYWxvbmUtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LXN0YW5kYWxvbmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KLQotMjAxMC0wOS0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KLQotICAgICAg
ICBDYW4ndCB1bmJvbGQgYm9sZGVkIGxpc3QgaXRlbSB3aGVuIGxpc3QgaXMgc3Vycm91bmRlZCBi
eSA8Yj4gdGFnCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNTA4NgotCi0gICAgICAgIEFkZGVkIGEgcmVncmVzc2lvbiB0ZXN0IGZvciB0aGUgYnVnIGJl
Y2F1c2UgdGhlIGJ1ZyBoYXMgYmVlbiBmaXhlZCBieSBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC82NjMyNC4KLSAgICAgICAgVGhlIHRlc3QgZW5zdXJlcyBXZWJLaXQgcmVtb3ZlcyBp
bXBsaWNpdGx5IHN0eWxlZCBlbGVtZW50IHN1Y2ggYXMgYiBhcm91bmQgbGlzdCBlbGVtZW50Ci0g
ICAgICAgIHdoZW4gc3R5bGUgaXMgdG9nZ2xlZCBpbnNpZGUgdGhlIGxpc3QuCi0KLSAgICAgICAg
KiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KLSAgICAgICAgKiBlZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBs
aWNpdC1zdHlsZXMtYXJvdW5kLWxpc3QuaHRtbDogQWRkZWQuCi0gICAgICAgICogZWRpdGluZy9z
dHlsZS9zY3JpcHQtdGVzdHMvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1hcm91bmQtbGlzdC5q
czogQWRkZWQuCi0gICAgICAgICh0ZXN0U2luZ2xlVG9nZ2xlKToKLSAgICAgICAgKHNlbGVjdEFs
bCk6Ci0gICAgICAgIChzZWxlY3RUZXN0KToKLSAgICAgICAgKHNlbGVjdEZpcnN0V29yZCk6Ci0g
ICAgICAgIChzZWxlY3RTZWNvbmRXb3JkKToKLSAgICAgICAgKHNlbGVjdExhc3RUd29Xb3Jkcyk6
Ci0KLTIwMTAtMDktMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCi0KLSAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzgzOTI2NTU+IFJFR1JFU1NJT04gKHI1NzIxNSk6IERlY29tcG9zZWQgZGlhY3JpdGljcyByZW5k
ZXIgaW5jb3JyZWN0bHkgd2hlbiBwcmVjZWRlZCBieSBzdGFja2VkIGRpYWNyaXRpY3MKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTgyCi0KLSAgICAg
ICAgKiBmYXN0L3RleHQvZGVjb21wb3NlZC1hZnRlci1zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KLSAgICAgICAgKiBmYXN0L3RleHQvZGVjb21wb3NlZC1hZnRlci1zdGFj
a2VkLWRpYWNyaXRpY3MuaHRtbDogQWRkZWQuCi0KLTIwMTAtMDktMDMgIE1paGFpIFBhcnBhcml0
YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFu
Zy4KLQotICAgICAgICBwbGF5LXN0YXRlLmh0bWwgYW5kIHN1c3BlbmQtcmVzdW1lLWFuaW1hdG9u
Lmh0bWwgbm93IHBhc3Mgb24gQ2hyb21pdW0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MTU4Ci0KLSAgICAgICAgVHdvIGFuaW1hdGlvbiB0ZXN0cyBu
b3cgcGFzcyByZWxpYWJseSB3aXRoIGJvdGggdGVzdF9zaGVsbCBhbmQgQ2hyb21pdW0KLSAgICAg
ICAgRFJUIGR1ZSB0byByNjY2NDEgYW5kIGh0dHA6Ly9jcnJldi5jb20vNTgzNjkuCi0KLSAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhwZWN0YXRpb25zLnR4dDoKLSAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6Ci0KLTIwMTAtMDktMDMgIEFu
ZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBZdXJ5IFNlbWlraGF0c2t5LgotCi0gICAgICAgIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNv
bGUteGhyLWxvZ2dpbmcuaHRtbCBhbmQgaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFy
LWNvbnZlcnNpb24uaHRtbCBhcmUgZmFpbGluZyBvbiBjaHJvbWl1bSB3aW4gYm90Ci0gICAgICAg
IFVzZSBDR0kgYXMgdGFyZ2V0IGZvciBQT1NUIHJlcXVlc3QgdG8gcHJldmVudCBIVFRQIDQwNSBv
biBhcGFjaGUgMS54IChjeWd3aW4pLgotICAgICAgICBDaGFuZ2VkIE1JTUUgdHlwZSBmb3IgLmpz
IHRvIGFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCBpbiBsaWdodHRwZC5jb25mIGZvcgotICAgICAg
ICBjb25zaXN0ZW5jeSB3aXRoIGFwYWNoZSB1c2VkIG9uIG90aGVyIHBsYXRmb3Jtcy4KLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTM3Ci0KLSAgICAg
ICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4
dDoKLSAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0
bWw6IFVzZSBwb3N0LXRhcmdldC5jZ2kgd2hlbiBkb2luZyBQT1NUIHJlcXVlc3QuCi0gICAgICAg
ICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQu
dHh0OgotICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJz
aW9uLmh0bWw6IFVzZSBwb3N0LXRhcmdldC5jZ2kgd2hlbiBkb2luZyBQT1NUIHJlcXVlc3QuCi0g
ICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1leHBlY3Rl
ZC50eHQ6Ci0gICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVy
cy5odG1sOiBVc2UgcG9zdC10YXJnZXQuY2dpIHdoZW4gZG9pbmcgUE9TVCByZXF1ZXN0Ci0gICAg
ICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaTogQWRk
ZWQuIFVzZWQgYXMgYSB0YXJnZXQgb2YgUE9TVCByZXF1ZXN0cyBieSByZXNvdXJjZSB0ZXN0cy4K
LSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuIEN1c3RvbSBleHBlY3RhdGlv
biBubyBsb25nZXIgcmVxdWlyZWQuCi0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0OiBSZS1lbmFibGVkIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbCAmIHJl
c291cmNlLWhhci1jb252ZXJzaW9uLmh0bWwuCi0gICAgICAgICogcGxhdGZvcm0vd2luL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LiBDdXN0b20gZXhwZWN0YXRpb24gbm8gbG9uZ2VyIHJlcXVpcmVkLgotICAgICAgICAqIHBsYXRm
b3JtL3dpbi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4gQ3VzdG9tIGV4cGVjdGF0aW9uIG5vIGxvbmdlciByZXF1aXJlZC4KLQot
MjAxMC0wOS0wMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCi0KLSAgICAgICAgU1ZHIGF0bGFzIG1h
cCBzbGlkZXIgZG9lc24ndCB3b3JrIHByb3Blcmx5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTEwNwotCi0gICAgICAgICogcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLWV4cGVjdGVkLmNoZWNrc3VtOiBB
ZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2
Zy1jb250YWluZXItZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
c3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1j
b250YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCi0gICAgICAgICog
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLXN0YW5k
YWxvbmUtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1
c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24t
c3ZnLXJvb3QtZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgotICAgICAgICAqIHBsYXRmb3JtL21h
Yy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3QtZXhwZWN0ZWQucG5nOiBBZGRlZC4K
LSAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290
LWV4cGVjdGVkLnR4dDogQWRkZWQuCi0gICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20v
bW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1y
b290LXN0YW5kYWxvbmUtZXhwZWN0ZWQucG5nOiBBZGRlZC4KLSAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LXN0YW5kYWxvbmUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KLSAgICAgICAgKiBzdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRh
aW5lci1zdGFuZGFsb25lLnN2ZzogQWRkZWQuCi0gICAgICAgICogc3ZnL2N1c3RvbS9tb3VzZS1t
b3ZlLW9uLXN2Zy1jb250YWluZXIueGh0bWw6IEFkZGVkLgotICAgICAgICAqIHN2Zy9jdXN0b20v
bW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLnN2ZzogQWRkZWQuCi0gICAgICAgICog
c3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LnhodG1sOiBBZGRlZC4KLQotMjAxMC0w
OS0wMyAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgotCi0gICAgICAgIFdlYiBJbnNwZWN0b3I6
IHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiB0byBmcm9udC1lbmQgd2hlbiBicmVha2luZyBvbiBE
T00gZXZlbnQKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ0Njc5Ci0KLSAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Mi5q
czoKLSAgICAgICAgKGluaXRpYWxpemVfRGVidWdnZXJUZXN0Lkluc3BlY3RvclRlc3QuX3BhdXNl
ZFNjcmlwdCk6Ci0KLTIwMTAtMDktMDMgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU3RldmUgQmxvY2suCi0KLSAgICAgICAgRml4IGFu
ZCBiZWVmIHVwIEluZGV4ZWREQiBsYXlvdXQgdGVzdAotICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMzUKLQotICAgICAgICBJbXBsZW1lbnQgc29tZSBm
aXhtZXMgYW5kIHN1Y2guCi0KLSAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1i
YXNpY3MtZXhwZWN0ZWQudHh0OgotICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10
ZXN0cy9kYXRhYmFzZS1iYXNpY3MuanM6Ci0gICAgICAgIChvcGVuU3VjY2Vzcyk6Ci0gICAgICAg
IChzZXRWZXJzaW9uQWdhaW4pOgotICAgICAgICAoY3JlYXRlT2JqZWN0U3RvcmUpOgotICAgICAg
ICAoY2hlY2tPYmplY3RTdG9yZSk6Ci0KLTIwMTAtMDgtMzEgIEplcmVteSBPcmxvdyAgPGpvcmxv
d0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgU3RldmUgQmxvY2suCi0KLSAg
ICAgICAgSURCQ3Vyc29yLmNvbnRpbnVlKCkgc2hvdWxkIHJldXNlIHRoZSAub3BlbkN1cnNvcidz
IElEQlJlcXVlc3Qgb2JqZWN0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDk1MwotCi0gICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3Rv
cmUtY3Vyc29yLmh0bWw6Ci0KLTIwMTAtMDktMDMgIEFudG9uIE11aGluICA8YW50b25tQGNocm9t
aXVtLm9yZz4KLQotICAgICAgICBVbnJldmlld2VkIGZpeCwgdXBkYXRpbmcgQ2hyb21pdW0ncyBl
eGVjdGF0aW9ucy4KLQotICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3BsdWdpbnMv
ZW1iZWQtYXR0cmlidXRlcy1zdHlsZS1leHBlY3RlZC5jaGVja3N1bToKLSAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0
ZWQucG5nOgotCi0yMDEwLTA5LTAzICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3Jn
PgotCi0gICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgotCi0gICAgICAgIEFkZHMgdGV4
dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcigpIHRvIGF2b2lkIHVzaW5nIHBpeGVs
IHRlc3RzIGZvciBzcGVsbGNoZWNraW5nIHRlc3RzCi0gICAgICAgIGFuZCBpbXBsZW1lbnRzIGl0
IGZvciBNYWMuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MTgzMgotCi0gICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRp
dGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZCB0aGUgZXhwZWN0ZWQgcmVzdWx0IGZvcgotICAgICAg
ICBzcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbC4KLSAgICAgICAgKiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sOiBBZGRlZCBhIHRleHQgdGVzdCBvZiBz
cGVsbGNoZWtlciBBUElzCi0gICAgICAgIGZvciBjb250ZW50ZWRpdGFibGUgPGRpdj4gZWxlbWVu
dHMuCi0gICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS1leHBlY3Rl
ZC50eHQ6IEFkZGVkIHRoZSBleHBlY3RlZCByZXN1bHQgZm9yIHNwZWxsaW5nLXRleHRhcmVhLmh0
bWwuCi0gICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sOiBB
ZGRlZCBhIHRleHQgdGVzdCBvZiBzcGVsbGNoZWNrZXIgQVBJcwotICAgICAgICBmb3IgPHRleHRh
cmVhPiBlbGVtZW50cy4KLSAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQ6IFNraXBwZWQgdGhlIG5ldyB0ZXN0cyBiZWNhdXNlCi0gICAgICAgIHRleHRJbnB1
dENvbnRyb2xsZXIuaGFzU3BlbGluZ01hcmtlcigpIGlzIG5vdCBpbXBsZW1lbnRlZC4KLSAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogZGl0dG8uCi0gICAgICAgICogcGxhdGZvcm0vcXQv
U2tpcHBlZDogZGl0dG8uCi0gICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IGRpdHRvLgor
ICAgICAgICAqIGluc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzczoK
KyAgICAgICAgKGJvZHkpOgorICAgICAgICAoLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3IgKi9i
b2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqLyk6CisgICAgICAgIChib2R5Lm1h
aW4yKToKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWw6CiAK
IDIwMTAtMDktMDMgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRl
ZGl0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM3YWY4MjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTEgKzAsMCBAQAotVGhpcyB0ZXN0cyB3ZSBjYW4gd3JpdGUgdGV4dCB0ZXN0cyBmb3Igc3Bl
bGxjaGVja2Vycy4gVG8gdGVzdCBtYW51YWxseSwgdHlwZSAnenogJyBpbiB0aGUgY29udGVudGVk
aXRhYmxlIDxkaXY+IGVsZW1lbnQgYW5kIHNlZSB0aGV5IGFyZSBtYXJrZWQgYXMgbWlzc3BlbGxl
ZC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLXp6wqAKLVBBU1MgJ3p6JyBpcyBt
YXJrZWQgYXMgbWlzc3BlbGxlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTFkMjhkMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzkg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIg
bGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08
dGl0bGU+RWRpdGluZyBUZXN0PC90aXRsZT4gCi08L2hlYWQ+IAotPGJvZHk+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PC9k
aXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3Jp
cHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1kZXNjcmlwdGlvbignVGhpcyB0ZXN0cyB3ZSBj
YW4gd3JpdGUgdGV4dCB0ZXN0cyBmb3Igc3BlbGxjaGVja2Vycy4gVG8gdGVzdCBtYW51YWxseSwg
dHlwZSBcJ3p6IFwnIGluIHRoZSBjb250ZW50ZWRpdGFibGUgJmx0O2RpdiZndDsgZWxlbWVudCBh
bmQgc2VlIHRoZXkgYXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLicpOwotCi1mdW5jdGlvbiBsb2dS
ZXN1bHQocmVzdWx0KSB7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgdGVzdFBhc3NlZCgnXCd6
elwnIGlzIG1hcmtlZCBhcyBtaXNzcGVsbGVkLicpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdFBh
c3NlZCgnXCd6elwnIGlzIG5vdCBtYXJrZWQgYXMgbWlzc3BlbGxlZC4nKTsKLX0KLQotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIC8vIFR5cGUgdGhlIHRlc3QgdGV4dCAn
enogJy4KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmZvY3VzKCk7Ci0gICAg
dHlwZUNoYXJhY3RlckNvbW1hbmQoJ3onKTsKLSAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCgneicp
OwotICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7Ci0KLSAgICAvLyBUZXN0IHRoZSBhYm92
ZSAnenonIGlzIG1hcmtlZCBhcyBtaXNzcGVsbGVkLiBXZSB0ZXN0IGl0IG9ubHkgb24gcGxhdGZv
cm1zIHRoYXQgaW1wbGVtZW50Ci0gICAgLy8gdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGlu
Z01hcmtlcigpIHRvIGF2b2lkIGV4Y2VwdGlvbnMuCi0gICAgaWYgKHRleHRJbnB1dENvbnRyb2xs
ZXIgJiYgdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcikKLSAgICAgICAgbG9n
UmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMCwgMikpOwotfQot
Ci12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLXRleHRhcmVhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctdGV4dGFyZWEtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmYWMwN2NlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctdGV4dGFyZWEtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTEg
KzAsMCBAQAotVGhpcyB0ZXN0cyB3ZSBjYW4gd3JpdGUgdGV4dCB0ZXN0cyBmb3Igc3BlbGxjaGVj
a2Vycy4gVG8gdGVzdCBtYW51YWxseSwgdHlwZSAnenogJyBpbiB0aGUgPHRleHRhcmVhPiBlbGVt
ZW50IGFuZCBzZWUgdGhleSBhcmUgbWFya2VkIGFzIG1pc3NwZWxsZWQuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi0KLVBBU1MgJ3p6JyBpcyBtYXJrZWQgYXMgbWlzc3BlbGxlZC4K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzOTI1YjkuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyIgbGFuZ3VhZ2U9Imph
dmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0u
Li9lZGl0aW5nLmpzIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pjwvc2NyaXB0PgotPHRpdGxlPkVkaXRpbmcgVGVzdDwvdGl0bGU+IAotPC9oZWFkPiAKLTxib2R5
PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08dGV4dGFyZWEgaWQ9InRlc3QiIGNvbHM9Ijgw
IiByb3dzPSIxMCI+PC90ZXh0YXJlYT4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlw
dCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWRlc2NyaXB0
aW9uKCdUaGlzIHRlc3RzIHdlIGNhbiB3cml0ZSB0ZXh0IHRlc3RzIGZvciBzcGVsbGNoZWNrZXJz
LiBUbyB0ZXN0IG1hbnVhbGx5LCB0eXBlIFwnenogXCcgaW4gdGhlICZsdDt0ZXh0YXJlYSZndDsg
ZWxlbWVudCBhbmQgc2VlIHRoZXkgYXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLicpOwotCi1mdW5j
dGlvbiBsb2dSZXN1bHQocmVzdWx0KSB7Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgdGVzdFBh
c3NlZCgnXCd6elwnIGlzIG1hcmtlZCBhcyBtaXNzcGVsbGVkLicpOwotICAgIGVsc2UKLSAgICAg
ICAgdGVzdFBhc3NlZCgnXCd6elwnIGlzIG5vdCBtYXJrZWQgYXMgbWlzc3BlbGxlZC4nKTsKLX0K
LQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIC8vIFR5cGUgdGhlIHRl
c3QgdGV4dCAnenogJy4KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmZvY3Vz
KCk7Ci0gICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJ3onKTsKLSAgICB0eXBlQ2hhcmFjdGVyQ29t
bWFuZCgneicpOwotICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcgJyk7Ci0KLSAgICAvLyBUZXN0
IHRoZSBhYm92ZSAnenonIGlzIG1hcmtlZCBhcyBtaXNzcGVsbGVkLiBXZSB0ZXN0IGl0IG9ubHkg
b24gcGxhdGZvcm1zIHRoYXQgaW1wbGVtZW50Ci0gICAgLy8gdGV4dElucHV0Q29udHJvbGxlci5o
YXNTcGVsbGluZ01hcmtlcigpIHRvIGF2b2lkIGV4Y2VwdGlvbnMuCi0gICAgaWYgKHRleHRJbnB1
dENvbnRyb2xsZXIgJiYgdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcikKLSAg
ICAgICAgbG9nUmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMCwg
MikpOwotfQotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0
eWxlL3B1c2gtZG93bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9wdXNoLWRvd24taW1wbGljaXQtc3R5bGVzLWFyb3Vu
ZC1saXN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNhMTI0
NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL3B1c2gtZG93bi1pbXBs
aWNpdC1zdHlsZXMtYXJvdW5kLWxpc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MjUgKzAsMCBAQAotVGVzdCB0byBtYWtlIHN1cmUgd2UgcHVzaCBkb3duIGlubGluZSBzdHlsZXMg
cHJvcGVybHkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGJvbGQgb24g
Zmlyc3Qgd29yZCBvZiA8Yj48dWw+PGxpPjxiPmE8L2I+PC9saT48L3VsPjwvYj4geWllbGRzIDx1
bD48bGk+YTwvbGk+PC91bD4KLVBBU1MgYm9sZCBvbiBmaXJzdCB3b3JkIG9mIDxiPjx1bD48bGk+
aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PC91bD48L2I+IHlpZWxkcyA8dWw+PGxpPmhlbGxvPC9s
aT48bGkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyAiPndvcmxkPC9saT48L3VsPgotUEFTUyBi
b2xkIG9uIGxhc3Qgd29yZCBvZiA8dWw+PGxpPmhlbGxvPC9saT48bGkgc3R5bGU9ImZvbnQtd2Vp
Z2h0OiBib2xkOyAiPndvcmxkPC9saT48L3VsPiB5aWVsZHMgPHVsPjxsaT5oZWxsbzwvbGk+PGxp
PndvcmxkPC9saT48L3VsPgotUEFTUyBib2xkIG9uIGZpcnN0IHdvcmQgb2YgPGI+PHVsPjxsaT5o
ZWxsbyB3b3JsZDwvbGk+PGxpPndlYmtpdDwvbGk+PC91bD48L2I+IHlpZWxkcyA8dWw+PGxpPmhl
bGxvPGI+IHdvcmxkPC9iPjwvbGk+PGxpIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsgIj53ZWJr
aXQ8L2xpPjwvdWw+Ci1QQVNTIGl0YWxpYyBvbiBmaXJzdCB3b3JkIG9mIDxpPjx1bD48bGk+PGk+
YTwvaT48L2xpPjwvdWw+PC9pPiB5aWVsZHMgPHVsPjxsaT5hPC9saT48L3VsPgotUEFTUyBpdGFs
aWMgb24gZmlyc3Qgd29yZCBvZiA8aT48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwv
dWw+PC9pPiB5aWVsZHMgPHVsPjxsaT5oZWxsbzwvbGk+PGxpIHN0eWxlPSJmb250LXN0eWxlOiBp
dGFsaWM7ICI+d29ybGQ8L2xpPjwvdWw+Ci1QQVNTIGl0YWxpYyBvbiBsYXN0IHdvcmQgb2YgPHVs
PjxsaT5oZWxsbzwvbGk+PGxpIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7ICI+d29ybGQ8L2xp
PjwvdWw+IHlpZWxkcyA8dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+Ci1QQVNT
IGl0YWxpYyBvbiBmaXJzdCB3b3JkIG9mIDxpPjx1bD48bGk+aGVsbG8gd29ybGQ8L2xpPjxsaT53
ZWJraXQ8L2xpPjwvdWw+PC9pPiB5aWVsZHMgPHVsPjxsaT5oZWxsbzxpPiB3b3JsZDwvaT48L2xp
PjxsaSBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyAiPndlYmtpdDwvbGk+PC91bD4KLVBBU1Mg
dW5kZXJsaW5lIG9uIGZpcnN0IHdvcmQgb2YgPHU+PHVsPjxsaT48dT5hPC91PjwvbGk+PC91bD48
L3U+IHlpZWxkcyA8dWw+PGxpPmE8L2xpPjwvdWw+Ci1QQVNTIHVuZGVybGluZSBvbiBmaXJzdCB3
b3JkIG9mIDx1Pjx1bD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PC91bD48L3U+IHlpZWxk
cyA8dWw+PGxpPmhlbGxvPC9saT48bGkgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5l
OyAiPndvcmxkPC9saT48L3VsPgotUEFTUyB1bmRlcmxpbmUgb24gbGFzdCB3b3JkIG9mIDx1bD48
bGk+aGVsbG88L2xpPjxsaSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7ICI+d29y
bGQ8L2xpPjwvdWw+IHlpZWxkcyA8dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+
Ci1QQVNTIHVuZGVybGluZSBvbiBmaXJzdCB3b3JkIG9mIDx1Pjx1bD48bGk+aGVsbG8gd29ybGQ8
L2xpPjxsaT53ZWJraXQ8L2xpPjwvdWw+PC91PiB5aWVsZHMgPHVsPjxsaT5oZWxsbzx1PiB3b3Js
ZDwvdT48L2xpPjxsaSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7ICI+d2Via2l0
PC9saT48L3VsPgotUEFTUyBzdHJpa2V0aHJvdWdoIG9uIGZpcnN0IHdvcmQgb2YgPHM+PHVsPjxs
aT48cz5hPC9zPjwvbGk+PC91bD48L3M+IHlpZWxkcyA8dWw+PGxpPmE8L2xpPjwvdWw+Ci1QQVNT
IHN0cmlrZXRocm91Z2ggb24gZmlyc3Qgd29yZCBvZiA8cz48dWw+PGxpPmhlbGxvPC9saT48bGk+
d29ybGQ8L2xpPjwvdWw+PC9zPiB5aWVsZHMgPHVsPjxsaT5oZWxsbzwvbGk+PGxpIHN0eWxlPSJ0
ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgIj53b3JsZDwvbGk+PC91bD4KLVBBU1Mgc3Ry
aWtldGhyb3VnaCBvbiBsYXN0IHdvcmQgb2YgPHVsPjxsaT5oZWxsbzwvbGk+PGxpIHN0eWxlPSJ0
ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgIj53b3JsZDwvbGk+PC91bD4geWllbGRzIDx1
bD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PC91bD4KLVBBU1Mgc3RyaWtldGhyb3VnaCBv
biBmaXJzdCB3b3JkIG9mIDxzPjx1bD48bGk+aGVsbG8gd29ybGQ8L2xpPjxsaT53ZWJraXQ8L2xp
PjwvdWw+PC9zPiB5aWVsZHMgPHVsPjxsaT5oZWxsbzxzPiB3b3JsZDwvcz48L2xpPjxsaSBzdHls
ZT0idGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7ICI+d2Via2l0PC9saT48L3VsPgotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1h
cm91bmQtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9wdXNoLWRvd24taW1w
bGljaXQtc3R5bGVzLWFyb3VuZC1saXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDQwMzFhY2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9wdXNo
LWRvd24taW1wbGljaXQtc3R5bGVzLWFyb3VuZC1saXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxMyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Ci08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wdXNoLWRvd24taW1wbGljaXQtc3R5bGVzLWFyb3Vu
ZC1saXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9zY3JpcHQtdGVzdHMvcHVzaC1kb3duLWltcGxp
Y2l0LXN0eWxlcy1hcm91bmQtbGlzdC5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvc2Ny
aXB0LXRlc3RzL3B1c2gtZG93bi1pbXBsaWNpdC1zdHlsZXMtYXJvdW5kLWxpc3QuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0ZDVlYWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zdHlsZS9zY3JpcHQtdGVzdHMvcHVzaC1kb3duLWltcGxpY2l0LXN0eWxlcy1h
cm91bmQtbGlzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLWRlc2NyaXB0aW9u
KCdUZXN0IHRvIG1ha2Ugc3VyZSB3ZSBwdXNoIGRvd24gaW5saW5lIHN0eWxlcyBwcm9wZXJseS4n
KTsKLQotdmFyIHRlc3RDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
LXRlc3RDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gdHJ1ZTsKLWRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQodGVzdENvbnRhaW5lcik7Ci0KLWZ1bmN0aW9uIHRlc3RTaW5nbGVUb2dnbGUodG9n
Z2xlQ29tbWFuZCwgc2VsZWN0b3IsIGluaXRpYWxDb250ZW50cywgZXhwZWN0ZWRDb250ZW50cykK
LXsKLSAgICB0ZXN0Q29udGFpbmVyLmlubmVySFRNTCA9IGluaXRpYWxDb250ZW50czsKLSAgICB2
YXIgc2VsZWN0ZWQgPSBzZWxlY3Rvcih0ZXN0Q29udGFpbmVyKTsKLSAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgnc3R5bGVXaXRoQ1NTJywgZmFsc2UsICdmYWxzZScpOwotICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKHRvZ2dsZUNvbW1hbmQsIGZhbHNlLCBudWxsKTsKLSAgICB2YXIgYWN0aW9uID0g
dG9nZ2xlQ29tbWFuZCArICcgb24gJyArIHNlbGVjdGVkICsgJyBvZiAnICsgaW5pdGlhbENvbnRl
bnRzICsgIiB5aWVsZHMgIiArIHRlc3RDb250YWluZXIuaW5uZXJIVE1MOwotICAgIGlmICh0ZXN0
Q29udGFpbmVyLmlubmVySFRNTCA9PSBleHBlY3RlZENvbnRlbnRzKQotICAgICAgICB0ZXN0UGFz
c2VkKGFjdGlvbik7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKGFjdGlvbiArICIsIGV4
cGVjdGVkICIgKyBleHBlY3RlZENvbnRlbnRzKTsKLX0KLQotZnVuY3Rpb24gc2VsZWN0Rmlyc3RX
b3JkKGNvbnRhaW5lcikgewotICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihj
b250YWluZXIsIDApOwotICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcs
ICdmb3J3YXJkJywgJ3dvcmQnKTsKLSAgICByZXR1cm4gJ2ZpcnN0IHdvcmQnOwotfQotCi1mdW5j
dGlvbiBzZWxlY3RMYXN0V29yZChjb250YWluZXIpIHsKLSAgICB3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuc2V0UG9zaXRpb24oY29udGFpbmVyLCBjb250YWluZXIuY2hpbGROb2Rlcy5sZW5ndGgpOwot
ICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ2V4dGVuZCcsICdiYWNrd2FyZCcsICd3
b3JkJyk7Ci0gICAgcmV0dXJuICdsYXN0IHdvcmQnOwotfQotCi10ZXN0U2luZ2xlVG9nZ2xlKCJi
b2xkIiwgc2VsZWN0Rmlyc3RXb3JkLCAnPGI+PHVsPjxsaT48Yj5hPC9iPjwvbGk+PC91bD48L2I+
JywgJzx1bD48bGk+YTwvbGk+PC91bD4nKTsKLXRlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCBzZWxl
Y3RGaXJzdFdvcmQsICc8Yj48dWw+PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PC9i
PicsICc8dWw+PGxpPmhlbGxvPC9saT48bGkgc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyAiPndv
cmxkPC9saT48L3VsPicpOwotdGVzdFNpbmdsZVRvZ2dsZSgiYm9sZCIsIHNlbGVjdExhc3RXb3Jk
LCAnPHVsPjxsaT5oZWxsbzwvbGk+PGxpIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsgIj53b3Js
ZDwvbGk+PC91bD4nLCAnPHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48L3VsPicpOwot
dGVzdFNpbmdsZVRvZ2dsZSgiYm9sZCIsIHNlbGVjdEZpcnN0V29yZCwgJzxiPjx1bD48bGk+aGVs
bG8gd29ybGQ8L2xpPjxsaT53ZWJraXQ8L2xpPjwvdWw+PC9iPicsICc8dWw+PGxpPmhlbGxvPGI+
IHdvcmxkPC9iPjwvbGk+PGxpIHN0eWxlPSJmb250LXdlaWdodDogYm9sZDsgIj53ZWJraXQ8L2xp
PjwvdWw+Jyk7Ci0KLXRlc3RTaW5nbGVUb2dnbGUoIml0YWxpYyIsIHNlbGVjdEZpcnN0V29yZCwg
JzxpPjx1bD48bGk+PGk+YTwvaT48L2xpPjwvdWw+PC9pPicsICc8dWw+PGxpPmE8L2xpPjwvdWw+
Jyk7Ci10ZXN0U2luZ2xlVG9nZ2xlKCJpdGFsaWMiLCBzZWxlY3RGaXJzdFdvcmQsICc8aT48dWw+
PGxpPmhlbGxvPC9saT48bGk+d29ybGQ8L2xpPjwvdWw+PC9pPicsICc8dWw+PGxpPmhlbGxvPC9s
aT48bGkgc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYzsgIj53b3JsZDwvbGk+PC91bD4nKTsKLXRl
c3RTaW5nbGVUb2dnbGUoIml0YWxpYyIsIHNlbGVjdExhc3RXb3JkLCAnPHVsPjxsaT5oZWxsbzwv
bGk+PGxpIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7ICI+d29ybGQ8L2xpPjwvdWw+JywgJzx1
bD48bGk+aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PC91bD4nKTsKLXRlc3RTaW5nbGVUb2dnbGUo
Iml0YWxpYyIsIHNlbGVjdEZpcnN0V29yZCwgJzxpPjx1bD48bGk+aGVsbG8gd29ybGQ8L2xpPjxs
aT53ZWJraXQ8L2xpPjwvdWw+PC9pPicsICc8dWw+PGxpPmhlbGxvPGk+IHdvcmxkPC9pPjwvbGk+
PGxpIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7ICI+d2Via2l0PC9saT48L3VsPicpOwotCi10
ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCBzZWxlY3RGaXJzdFdvcmQsICc8dT48dWw+PGxp
Pjx1PmE8L3U+PC9saT48L3VsPjwvdT4nLCAnPHVsPjxsaT5hPC9saT48L3VsPicpOwotdGVzdFNp
bmdsZVRvZ2dsZSgidW5kZXJsaW5lIiwgc2VsZWN0Rmlyc3RXb3JkLCAnPHU+PHVsPjxsaT5oZWxs
bzwvbGk+PGxpPndvcmxkPC9saT48L3VsPjwvdT4nLCAnPHVsPjxsaT5oZWxsbzwvbGk+PGxpIHN0
eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgIj53b3JsZDwvbGk+PC91bD4nKTsKLXRl
c3RTaW5nbGVUb2dnbGUoInVuZGVybGluZSIsIHNlbGVjdExhc3RXb3JkLCAnPHVsPjxsaT5oZWxs
bzwvbGk+PGxpIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgIj53b3JsZDwvbGk+
PC91bD4nLCAnPHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48L3VsPicpOwotdGVzdFNp
bmdsZVRvZ2dsZSgidW5kZXJsaW5lIiwgc2VsZWN0Rmlyc3RXb3JkLCAnPHU+PHVsPjxsaT5oZWxs
byB3b3JsZDwvbGk+PGxpPndlYmtpdDwvbGk+PC91bD48L3U+JywgJzx1bD48bGk+aGVsbG88dT4g
d29ybGQ8L3U+PC9saT48bGkgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAiPndl
YmtpdDwvbGk+PC91bD4nKTsKLQotdGVzdFNpbmdsZVRvZ2dsZSgic3RyaWtldGhyb3VnaCIsIHNl
bGVjdEZpcnN0V29yZCwgJzxzPjx1bD48bGk+PHM+YTwvcz48L2xpPjwvdWw+PC9zPicsICc8dWw+
PGxpPmE8L2xpPjwvdWw+Jyk7Ci10ZXN0U2luZ2xlVG9nZ2xlKCJzdHJpa2V0aHJvdWdoIiwgc2Vs
ZWN0Rmlyc3RXb3JkLCAnPHM+PHVsPjxsaT5oZWxsbzwvbGk+PGxpPndvcmxkPC9saT48L3VsPjwv
cz4nLCAnPHVsPjxsaT5oZWxsbzwvbGk+PGxpIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IGxpbmUt
dGhyb3VnaDsgIj53b3JsZDwvbGk+PC91bD4nKTsKLXRlc3RTaW5nbGVUb2dnbGUoInN0cmlrZXRo
cm91Z2giLCBzZWxlY3RMYXN0V29yZCwgJzx1bD48bGk+aGVsbG88L2xpPjxsaSBzdHlsZT0idGV4
dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7ICI+d29ybGQ8L2xpPjwvdWw+JywgJzx1bD48bGk+
aGVsbG88L2xpPjxsaT53b3JsZDwvbGk+PC91bD4nKTsKLXRlc3RTaW5nbGVUb2dnbGUoInN0cmlr
ZXRocm91Z2giLCBzZWxlY3RGaXJzdFdvcmQsICc8cz48dWw+PGxpPmhlbGxvIHdvcmxkPC9saT48
bGk+d2Via2l0PC9saT48L3VsPjwvcz4nLCAnPHVsPjxsaT5oZWxsbzxzPiB3b3JsZDwvcz48L2xp
PjxsaSBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7ICI+d2Via2l0PC9saT48
L3VsPicpOwotCi1kb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOwotCi12
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2NvbnRpbnVvdXMtcGxhdGZvcm0td2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2NvbnRpbnVvdXMtcGxhdGZv
cm0td2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2LWV4cGVjdGVkLnR4dAppbmRleCA5NjlhYzU2
Li44NWQ5MWNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb250aW51b3Vz
LXBsYXRmb3JtLXdoZWVsZXZlbnQtaW4tc2Nyb2xsaW5nLWRpdi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY29udGludW91cy1wbGF0Zm9ybS13aGVlbGV2ZW50LWlu
LXNjcm9sbGluZy1kaXYtZXhwZWN0ZWQudHh0CkBAIC0xLDYgKzEsNiBAQAotUEFTUyBldmVudC53
aGVlbERlbHRhWSBpcyB3aW5kb3cuZXhwZWN0ZWRTY3JvbGxUb3AqLTMKLVBBU1MgZXZlbnQud2hl
ZWxEZWx0YVggaXMgd2luZG93LmV4cGVjdGVkU2Nyb2xsTGVmdCotMwotUEFTUyBldmVudC53aGVl
bERlbHRhIGlzIHdpbmRvdy5leHBlY3RlZFNjcm9sbFRvcCotMworRkFJTCBldmVudC53aGVlbERl
bHRhWSBzaG91bGQgYmUgLTI0MDAwLiBXYXMgLTYwMC4KK0ZBSUwgZXZlbnQud2hlZWxEZWx0YVgg
c2hvdWxkIGJlIC0xMjAwMC4gV2FzIC0zMDAuCitGQUlMIGV2ZW50LndoZWVsRGVsdGEgc2hvdWxk
IGJlIC0yNDAwMC4gV2FzIC02MDAuCiBQQVNTIGRpdi5zY3JvbGxUb3AgaXMgd2luZG93LmV4cGVj
dGVkU2Nyb2xsVG9wCiBQQVNTIGRpdi5zY3JvbGxMZWZ0IGlzIHdpbmRvdy5leHBlY3RlZFNjcm9s
bExlZnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvY29udGludW91cy1w
bGF0Zm9ybS13aGVlbGV2ZW50LWluLXNjcm9sbGluZy1kaXYuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2NvbnRpbnVvdXMtcGxhdGZvcm0td2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2
Lmh0bWwKaW5kZXggNzk4NzU2MC4uZmVjMTA0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvY29udGludW91cy1wbGF0Zm9ybS13aGVlbGV2ZW50LWluLXNjcm9sbGluZy1kaXYu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9jb250aW51b3VzLXBsYXRmb3JtLXdo
ZWVsZXZlbnQtaW4tc2Nyb2xsaW5nLWRpdi5odG1sCkBAIC0zOSwxMyArMzksMTMgQEAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIG1vdXNld2hlZWxIYW5kbGVyKGUpCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgZXZlbnQgPSBlOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC53
aGVlbERlbHRhWSIsICJ3aW5kb3cuZXhwZWN0ZWRTY3JvbGxUb3AqLTMiKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgiZXZlbnQud2hlZWxEZWx0YVgiLCAid2luZG93LmV4cGVjdGVkU2Nyb2xs
TGVmdCotMyIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC53aGVlbERlbHRhWSIs
ICJ3aW5kb3cuZXhwZWN0ZWRTY3JvbGxUb3AqLTEyMCIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJldmVudC53aGVlbERlbHRhWCIsICJ3aW5kb3cuZXhwZWN0ZWRTY3JvbGxMZWZ0Ki0xMjAi
KTsKIAogICAgICAgICAgICAgICAgIGlmIChlLndoZWVsRGVsdGFZKQotICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZSgiZXZlbnQud2hlZWxEZWx0YSIsICJ3aW5kb3cuZXhwZWN0ZWRTY3JvbGxU
b3AqLTMiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoImV2ZW50LndoZWVsRGVsdGEi
LCAid2luZG93LmV4cGVjdGVkU2Nyb2xsVG9wKi0xMjAiKTsKICAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIHNob3VsZEJlKCJldmVudC53aGVlbERlbHRhIiwgIndpbmRv
dy5leHBlY3RlZFNjcm9sbExlZnQqLTMiKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUo
ImV2ZW50LndoZWVsRGVsdGEiLCAid2luZG93LmV4cGVjdGVkU2Nyb2xsTGVmdCotMTIwIik7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIDwvc2NyaXB0PgogICAgIDwvaGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9vdmFsLnBuZyBiL0xheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL3Jlc291cmNlcy9vdmFsLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjk2YjFjYS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9mYXN0L2lt
YWdlcy9yZXNvdXJjZXMvb3ZhbC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3pvb21lZC1pbWctc2l6ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy96b29tZWQtaW1nLXNpemUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBmM2JjNmI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL3pvb21lZC1pbWctc2l6ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSw0NiArMCwwIEBACi1JZGVhbGx5LCBhbGwgb3ZhbHMgYmVsb3cgc2hvdWxkIGJlIHJl
cG9ydGVkIGFzIGhhdmluZyB3aWR0aD0zNywgaGVpZ2h0PTMzLiBDdXJyZW50bHkgcm91bmRpbmcg
cHJldmVudHMgdXMgZnJvbSBkb2luZyB0aGlzLgotCi0KLVpvb20gMSUgUEFTUzogMTAweDEwMCBj
bG9zZSBlbm91Z2ggdG8gMzd4MzMKLQotCi1ab29tIDIlIFBBU1M6IDUweDUwIGNsb3NlIGVub3Vn
aCB0byAzN3gzMwotCi0KLVpvb20gMyUgUEFTUzogMzN4MzMgY2xvc2UgZW5vdWdoIHRvIDM3eDMz
Ci0KLQotWm9vbSA0JSBQQVNTOiAyNXgyNSBjbG9zZSBlbm91Z2ggdG8gMzd4MzMKLQotCi1ab29t
IDUlIFBBU1M6IDIweDIwIGNsb3NlIGVub3VnaCB0byAzN3gzMwotCi0KLVpvb20gMzAlIFBBU1M6
IDM2eDMwIGNsb3NlIGVub3VnaCB0byAzN3gzMwotCi0KLVpvb20gMzMlIFBBU1M6IDM2eDMwIGNs
b3NlIGVub3VnaCB0byAzN3gzMwotCi0KLVpvb20gNTAlIFBBU1M6IDM2eDMyIGNsb3NlIGVub3Vn
aCB0byAzN3gzMwotCi0KLVpvb20gNzAlIFBBU1M6IDM1eDMyIGNsb3NlIGVub3VnaCB0byAzN3gz
MwotCi0KLVpvb20gMTAwJSBQQVNTOiAzN3gzMwotCi0KLVpvb20gMTExJSBQQVNTOiAzN3gzMwot
Ci0KLVpvb20gMTUwJSBQQVNTOiAzN3gzMwotCi0KLVpvb20gMzMzJSBQQVNTOiAzN3gzMwotCi0K
LVpvb20gNDAwJSBQQVNTOiAzN3gzMwotCi0KLVpvb20gMTIzNCUgUEFTUzogMzd4MzMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL3pvb21lZC1pbWctc2l6ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvem9vbWVkLWltZy1zaXplLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRlNmEyNmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvem9vbWVkLWltZy1zaXplLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MyArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotICA8aGVhZD4KLSAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLSAgICAgIGZ1bmN0
aW9uIHVwZGF0ZSgpIHsKLSAgICAgICAgLy8gVGhlc2UgYXJyYXlzIHdpbGwgYmVjb21lIHVubmVj
ZXNzYXJ5IGlmIHdlIGZpeCB0aGUgcm91bmRpbmcgaXNzdWVzIHRoYXQgbWFrZSB1cyBub3QgYWx3
YXlzIHJlcG9ydCAiMzd4MzMiLgotICAgICAgICB2YXIgZXhwZWN0ZWRXaWR0aHMgPSBbMTAwLCA1
MCwgMzMsIDI1LCAyMCwgMzYsIDM2LCAzNiwgMzUsIDM3LCAzNywgMzcsIDM3LCAzNywgMzddOwot
ICAgICAgICB2YXIgZXhwZWN0ZWRIZWlnaHRzID0gWzEwMCwgNTAsIDMzLCAyNSwgMjAsIDMwLCAz
MCwgMzIsIDMyLCAzMywgMzMsIDMzLCAzMywgMzMsIDMzXTsKLSAgICAgICAgZm9yIChpID0gMDsg
aSA8IDE1OyArK2kpIHsKLSAgICAgICAgICB2YXIgb3ZhbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdvdmFsJyArIGkpOwotICAgICAgICAgIHZhciBzdGF0dXMgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnc3RhdHVzJyArIGkpOwotICAgICAgICAgIHZhciBzaXplcyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdzaXplcycgKyBpKTsKLSAgICAgICAgICBpZiAoKG92YWwud2lkdGggPT0g
ZXhwZWN0ZWRXaWR0aHNbaV0pICYmIChvdmFsLmhlaWdodCA9PSBleHBlY3RlZEhlaWdodHNbaV0p
KSB7Ci0gICAgICAgICAgICBzdGF0dXMuc3R5bGUuY29sb3IgPSAiZ3JlZW4iOwotICAgICAgICAg
ICAgc3RhdHVzLmlubmVySFRNTCA9ICJQQVNTIjsKLSAgICAgICAgICAgIHNpemVzLmlubmVySFRN
TCA9IG92YWwud2lkdGggKyAieCIgKyBvdmFsLmhlaWdodCArICgoKG92YWwud2lkdGggIT0gMzcp
IHx8IChvdmFsLmhlaWdodCAhPSAzMykpID8gIiBjbG9zZSBlbm91Z2ggdG8gMzd4MzMiIDogIiIp
OwotICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdGF0dXMuc3R5bGUuY29sb3IgPSAi
cmVkIjsKLSAgICAgICAgICAgIHN0YXR1cy5pbm5lckhUTUwgPSAiRkFJTCI7Ci0gICAgICAgICAg
ICBzaXplcy5pbm5lckhUTUwgPSBvdmFsLndpZHRoICsgIngiICsgb3ZhbC5oZWlnaHQgKyAiIG5v
dCBjbG9zZSBlbm91Z2ggdG8gMzd4MzMiOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
fQotICAgICAgd2luZG93Lm9ubG9hZCA9IHVwZGF0ZTsKLSAgICA8L3NjcmlwdD4KLSAgPC9oZWFk
PgotICA8Ym9keT4KLSAgICA8cD5JZGVhbGx5LCBhbGwgb3ZhbHMgYmVsb3cgc2hvdWxkIGJlIHJl
cG9ydGVkIGFzIGhhdmluZyB3aWR0aD0zNywgaGVpZ2h0PTMzLiAgQ3VycmVudGx5IHJvdW5kaW5n
IHByZXZlbnRzIHVzIGZyb20gZG9pbmcgdGhpcy48L3A+Ci0gICAgPGltZyBpZD0ib3ZhbDAiIHNy
Yz0icmVzb3VyY2VzL292YWwucG5nIiBzdHlsZT0iem9vbTogMSUiPgotICAgIDxwPlpvb20gMSUg
PHNwYW4gaWQ9InN0YXR1czAiPjwvc3Bhbj46IDxzcGFuIGlkPSJzaXplczAiPjwvc3Bhbj48L3A+
Ci0gICAgPGltZyBpZD0ib3ZhbDEiIHNyYz0icmVzb3VyY2VzL292YWwucG5nIiBzdHlsZT0iem9v
bTogMiUiPgotICAgIDxwPlpvb20gMiUgPHNwYW4gaWQ9InN0YXR1czEiPjwvc3Bhbj46IDxzcGFu
IGlkPSJzaXplczEiPjwvc3Bhbj48L3A+Ci0gICAgPGltZyBpZD0ib3ZhbDIiIHNyYz0icmVzb3Vy
Y2VzL292YWwucG5nIiBzdHlsZT0iem9vbTogMyUiPgotICAgIDxwPlpvb20gMyUgPHNwYW4gaWQ9
InN0YXR1czIiPjwvc3Bhbj46IDxzcGFuIGlkPSJzaXplczIiPjwvc3Bhbj48L3A+Ci0gICAgPGlt
ZyBpZD0ib3ZhbDMiIHNyYz0icmVzb3VyY2VzL292YWwucG5nIiBzdHlsZT0iem9vbTogNCUiPgot
ICAgIDxwPlpvb20gNCUgPHNwYW4gaWQ9InN0YXR1czMiPjwvc3Bhbj46IDxzcGFuIGlkPSJzaXpl
czMiPjwvc3Bhbj48L3A+Ci0gICAgPGltZyBpZD0ib3ZhbDQiIHNyYz0icmVzb3VyY2VzL292YWwu
cG5nIiBzdHlsZT0iem9vbTogNSUiPgotICAgIDxwPlpvb20gNSUgPHNwYW4gaWQ9InN0YXR1czQi
Pjwvc3Bhbj46IDxzcGFuIGlkPSJzaXplczQiPjwvc3Bhbj48L3A+Ci0gICAgPGltZyBpZD0ib3Zh
bDUiIHNyYz0icmVzb3VyY2VzL292YWwucG5nIiBzdHlsZT0iem9vbTogMzAlIj4KLSAgICA8cD5a
b29tIDMwJSA8c3BhbiBpZD0ic3RhdHVzNSI+PC9zcGFuPjogPHNwYW4gaWQ9InNpemVzNSI+PC9z
cGFuPjwvcD4KLSAgICA8aW1nIGlkPSJvdmFsNiIgc3JjPSJyZXNvdXJjZXMvb3ZhbC5wbmciIHN0
eWxlPSJ6b29tOiAzMyUiPgotICAgIDxwPlpvb20gMzMlIDxzcGFuIGlkPSJzdGF0dXM2Ij48L3Nw
YW4+OiA8c3BhbiBpZD0ic2l6ZXM2Ij48L3NwYW4+PC9wPgotICAgIDxpbWcgaWQ9Im92YWw3IiBz
cmM9InJlc291cmNlcy9vdmFsLnBuZyIgc3R5bGU9Inpvb206IDUwJSI+Ci0gICAgPHA+Wm9vbSA1
MCUgPHNwYW4gaWQ9InN0YXR1czciPjwvc3Bhbj46IDxzcGFuIGlkPSJzaXplczciPjwvc3Bhbj48
L3A+Ci0gICAgPGltZyBpZD0ib3ZhbDgiIHNyYz0icmVzb3VyY2VzL292YWwucG5nIiBzdHlsZT0i
em9vbTogNzAlIj4KLSAgICA8cD5ab29tIDcwJSA8c3BhbiBpZD0ic3RhdHVzOCI+PC9zcGFuPjog
PHNwYW4gaWQ9InNpemVzOCI+PC9zcGFuPjwvcD4KLSAgICA8aW1nIGlkPSJvdmFsOSIgc3JjPSJy
ZXNvdXJjZXMvb3ZhbC5wbmciIHN0eWxlPSJ6b29tOiAxMDAlIj4KLSAgICA8cD5ab29tIDEwMCUg
PHNwYW4gaWQ9InN0YXR1czkiPjwvc3Bhbj46IDxzcGFuIGlkPSJzaXplczkiPjwvc3Bhbj48L3A+
Ci0gICAgPGltZyBpZD0ib3ZhbDEwIiBzcmM9InJlc291cmNlcy9vdmFsLnBuZyIgc3R5bGU9Inpv
b206IDExMSUiPgotICAgIDxwPlpvb20gMTExJSA8c3BhbiBpZD0ic3RhdHVzMTAiPjwvc3Bhbj46
IDxzcGFuIGlkPSJzaXplczEwIj48L3NwYW4+PC9wPgotICAgIDxpbWcgaWQ9Im92YWwxMSIgc3Jj
PSJyZXNvdXJjZXMvb3ZhbC5wbmciIHN0eWxlPSJ6b29tOiAxNTAlIj4KLSAgICA8cD5ab29tIDE1
MCUgPHNwYW4gaWQ9InN0YXR1czExIj48L3NwYW4+OiA8c3BhbiBpZD0ic2l6ZXMxMSI+PC9zcGFu
PjwvcD4KLSAgICA8aW1nIGlkPSJvdmFsMTIiIHNyYz0icmVzb3VyY2VzL292YWwucG5nIiBzdHls
ZT0iem9vbTogMzMzJSI+Ci0gICAgPHA+Wm9vbSAzMzMlIDxzcGFuIGlkPSJzdGF0dXMxMiI+PC9z
cGFuPjogPHNwYW4gaWQ9InNpemVzMTIiPjwvc3Bhbj48L3A+Ci0gICAgPGltZyBpZD0ib3ZhbDEz
IiBzcmM9InJlc291cmNlcy9vdmFsLnBuZyIgc3R5bGU9Inpvb206IDQwMCUiPgotICAgIDxwPlpv
b20gNDAwJSA8c3BhbiBpZD0ic3RhdHVzMTMiPjwvc3Bhbj46IDxzcGFuIGlkPSJzaXplczEzIj48
L3NwYW4+PC9wPgotICAgIDxpbWcgaWQ9Im92YWwxNCIgc3JjPSJyZXNvdXJjZXMvb3ZhbC5wbmci
IHN0eWxlPSJ6b29tOiAxMjM0JSI+Ci0gICAgPHA+Wm9vbSAxMjM0JSA8c3BhbiBpZD0ic3RhdHVz
MTQiPjwvc3Bhbj46IDxzcGFuIGlkPSJzaXplczE0Ij48L3NwYW4+PC9wPgotICA8L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvZGVjb21wb3NlZC1hZnRl
ci1zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0
L2RlY29tcG9zZWQtYWZ0ZXItc3RhY2tlZC1kaWFjcml0aWNzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjJkYjRiMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvZGVjb21wb3NlZC1hZnRlci1zdGFja2VkLWRpYWNyaXRpY3MtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1lzIDhuJdlzIAKLVBBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9kZWNvbXBvc2VkLWFmdGVyLXN0YWNrZWQtZGlh
Y3JpdGljcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2RlY29tcG9zZWQtYWZ0ZXItc3Rh
Y2tlZC1kaWFjcml0aWNzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkYTQ0
MWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L2RlY29tcG9zZWQtYWZ0ZXIt
c3RhY2tlZC1kaWFjcml0aWNzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogNzJweDsiPgotICAgIDxzcGFu
IGlkPSJyZWZlcmVuY2UiPmUmI3gwMzAwOzwvc3Bhbj48c3BhbiBpZD0idGVzdCI+JiN4MWUxNztl
JiN4MDMwMDs8L3NwYW4+Ci08L2Rpdj4KLTxkaXYgaWQ9InJlc3VsdCI+VGVzdCBkaWQgbm90IHJ1
bi48L2Rpdj4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgdmFyIHJl
ZmVyZW5jZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWZlcmVuY2UiKS5maXJzdENoaWxk
OwotICAgIHZhciByZWZlcmVuY2VSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Ci0gICAg
cmVmZXJlbmNlUmFuZ2Uuc2V0U3RhcnQocmVmZXJlbmNlLCAwKTsKLSAgICByZWZlcmVuY2VSYW5n
ZS5zZXRFbmQocmVmZXJlbmNlLCAyKTsKLSAgICB2YXIgcmVmZXJlbmNlV2lkdGggPSByZWZlcmVu
Y2VSYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDsKLQotICAgIHZhciB0ZXN0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5maXJzdENoaWxkOwotICAgIHZhciB0ZXN0
UmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwotICAgIHRlc3RSYW5nZS5zZXRTdGFydCh0
ZXN0LCAxKTsKLSAgICB0ZXN0UmFuZ2Uuc2V0RW5kKHRlc3QsIDMpOwotICAgIHZhciB0ZXN0V2lk
dGggPSB0ZXN0UmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7Ci0KLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gdGVzdFdpZHRoID09PSBy
ZWZlcmVuY2VXaWR0aCA/ICJQQVNTIiA6ICJGQUlMIjsKLTwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1s
b2dnaW5nLWV4cGVjdGVkLnR4dAppbmRleCA1NWY1MGM0Li44NWNiMzMxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXho
ci1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMTQsMTEgKzE0LDExIEBAIFhIUiBmaW5pc2hlZCBs
b2FkaW5nOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4
aXN0cy5odG1sCiBjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6NDBzZW5kaW5nIGEgR0VUIHJlcXVl
c3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sCiByZXNvdXJjZXMveGhyLWRv
ZXMtbm90LWV4aXN0Lmh0bWxGYWlsZWQgdG8gbG9hZCByZXNvdXJjZTogdGhlIHNlcnZlciByZXNw
b25kZWQgd2l0aCBhIHN0YXR1cyBvZiA0MDQgKE5vdCBGb3VuZCkKIFhIUiBmaW5pc2hlZCBsb2Fk
aW5nOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMt
bm90LWV4aXN0Lmh0bWwiLgotY29uc29sZS14aHItbG9nZ2luZy5odG1sOjQwc2VuZGluZyBhIFBP
U1QgcmVxdWVzdCB0byByZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpCi1YSFIgZmluaXNoZWQgbG9h
ZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Bvc3QtdGFy
Z2V0LmNnaSIuCitjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6NDBzZW5kaW5nIGEgUE9TVCByZXF1
ZXN0IHRvIHJlc291cmNlcy94aHItZXhpc3RzLmh0bWwKK1hIUiBmaW5pc2hlZCBsb2FkaW5nOiAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1s
Ii4KIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoyMWRpc2FibGVkCiBjb25zb2xlLXhoci1sb2dn
aW5nLmh0bWw6NDBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1leGlzdHMu
aHRtbAogY29uc29sZS14aHItbG9nZ2luZy5odG1sOjQwc2VuZGluZyBhIEdFVCByZXF1ZXN0IHRv
IHJlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3QuaHRtbAogcmVzb3VyY2VzL3hoci1kb2VzLW5v
dC1leGlzdC5odG1sRmFpbGVkIHRvIGxvYWQgcmVzb3VyY2U6IHRoZSBzZXJ2ZXIgcmVzcG9uZGVk
IHdpdGggYSBzdGF0dXMgb2YgNDA0IChOb3QgRm91bmQpCi1jb25zb2xlLXhoci1sb2dnaW5nLmh0
bWw6NDBzZW5kaW5nIGEgUE9TVCByZXF1ZXN0IHRvIHJlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kK
K2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDo0MHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVz
b3VyY2VzL3hoci1leGlzdHMuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLmh0bWwKaW5kZXggODI1ZGMwNS4u
MWM3NTgyZSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29u
c29sZS14aHItbG9nZ2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbApAQCAtMzEsNyArMzEsNyBAQCBmdW5jdGlvbiBt
YWtlUmVxdWVzdHMoKQogICAgIC8vIDIuIFBhZ2UgdGhhdCBkb2Vzbid0IGV4aXN0LgogICAgIHJl
cXVlc3RIZWxwZXIoIkdFVCIsICJyZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwiKTsK
ICAgICAvLyAzLiBQT1NUIHRvIGEgcGFnZS4KLSAgICByZXF1ZXN0SGVscGVyKCJQT1NUIiwgInJl
c291cmNlcy9wb3N0LXRhcmdldC5jZ2kiKTsKKyAgICByZXF1ZXN0SGVscGVyKCJQT1NUIiwgInJl
c291cmNlcy94aHItZXhpc3RzLmh0bWwiKTsKIH0KIAogZnVuY3Rpb24gcmVxdWVzdEhlbHBlciht
ZXRob2QsIHVybCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyLXRlc3QyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXItdGVzdDIuanMKaW5kZXggNmMxOWZmOS4uODBiOThhNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdDIuanMKQEAgLTg5LDEwICs4
OSwxMCBAQCBJbnNwZWN0b3JUZXN0LmNhcHR1cmVTdGFja1RyYWNlID0gZnVuY3Rpb24oY2FsbEZy
YW1lcykKICAgICB9CiB9OwogCi1JbnNwZWN0b3JUZXN0Ll9wYXVzZWRTY3JpcHQgPSBmdW5jdGlv
bihkZXRhaWxzKQorSW5zcGVjdG9yVGVzdC5fcGF1c2VkU2NyaXB0ID0gZnVuY3Rpb24oY2FsbEZy
YW1lcykKIHsKICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2NyaXB0IGV4ZWN1dGlvbiBw
YXVzZWQuIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5fY2FsbEZyYW1lcyA9IGRldGFpbHMuY2FsbEZy
YW1lczsKKyAgICBJbnNwZWN0b3JUZXN0Ll9jYWxsRnJhbWVzID0gY2FsbEZyYW1lczsKICAgICBp
ZiAoSW5zcGVjdG9yVGVzdC5fd2FpdFVudGlsUGF1c2VkQ2FsbGJhY2spIHsKICAgICAgICAgdmFy
IGNhbGxiYWNrID0gSW5zcGVjdG9yVGVzdC5fd2FpdFVudGlsUGF1c2VkQ2FsbGJhY2s7CiAgICAg
ICAgIGRlbGV0ZSBJbnNwZWN0b3JUZXN0Ll93YWl0VW50aWxQYXVzZWRDYWxsYmFjazsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252
ZXJzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLWhhci1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAppbmRleCAyOTk0OTQzLi5mYzgzNDBi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1o
YXItY29udmVyc2lvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CkBAIC0xMDcsNyAr
MTA3LDcgQEAgUGFnZSByZWxvYWRlZC4KICAgICAgICAgdGltZSA6IDxudW1iZXI+CiAgICAgICAg
IHJlcXVlc3QgOiB7CiAgICAgICAgICAgICBtZXRob2QgOiAiUE9TVCIKLSAgICAgICAgICAgIHVy
bCA6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdl
dC5jZ2kiCisgICAgICAgICAgICB1cmwgOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwiCiAgICAgICAgICAgICBoZWFkZXJz
IDogPG9iamVjdD4KICAgICAgICAgICAgIGhlYWRlcnNTaXplIDogLTEKICAgICAgICAgICAgIGJv
ZHlTaXplIDogPG51bWJlcj4KQEAgLTExNywxMiArMTE3LDEyIEBAIFBhZ2UgcmVsb2FkZWQuCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2UgOiB7Ci0gICAgICAgICAg
ICBzdGF0dXMgOiAyMDAKLSAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiT0siCisgICAgICAgICAg
ICBzdGF0dXMgOiA0MDQKKyAgICAgICAgICAgIHN0YXR1c1RleHQgOiAiTm90IEZvdW5kIgogICAg
ICAgICAgICAgaGVhZGVycyA6IDxvYmplY3Q+CiAgICAgICAgICAgICBjb250ZW50IDogewogICAg
ICAgICAgICAgICAgIHNpemUgOiA8bnVtYmVyPgotICAgICAgICAgICAgICAgIG1pbWVUeXBlIDog
ImFwcGxpY2F0aW9uL3htbCIKKyAgICAgICAgICAgICAgICBtaW1lVHlwZSA6ICJ0ZXh0L2h0bWwi
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZWRpcmVjdFVSTCA6ICIiCiAgICAgICAgICAg
ICBoZWFkZXJzU2l6ZSA6IC0xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbAppbmRleCAxNDI3M2Fk
Li41MGM2Y2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZS1oYXItY29udmVyc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlLWhhci1jb252ZXJzaW9uLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAg
dmFyIHRlc3QgPSBmdW5jdGlvbigpCiBmdW5jdGlvbiBkb1hIUigpCiB7CiAgICAgdmFyIHhociA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vcGVuKCJQT1NUIiwgInJlc291cmNlcy9w
b3N0LXRhcmdldC5jZ2kiLCBmYWxzZSk7CisgICAgeGhyLm9wZW4oIlBPU1QiLCAicmVzb3VyY2Vz
L3hoci1kb2VzLW5vdC1leGlzdC5odG1sIiwgZmFsc2UpOwogICAgIHhoci5zZXRSZXF1ZXN0SGVh
ZGVyKCJDb250ZW50LVR5cGUiLCAidGV4dC94bWwiKTsKICAgICB4aHIuc2VuZCgiPHhtbD48L3ht
bD4iKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKaW5kZXggNzNhYjA4NS4u
MzhjNGQ0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTgsNyArOCw3
IEBAIFRlc3RzIHRoYXQgcmVzb3VyY2VzIHBhbmVsIHNob3dzIGZvcm0gZGF0YSBwYXJhbWV0ZXJz
LgogICAgIHRpbWUgOiA8bnVtYmVyPgogICAgIHJlcXVlc3QgOiB7CiAgICAgICAgIG1ldGhvZCA6
ICJQT1NUIgotICAgICAgICB1cmwgOiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci9y
ZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0xPXF1ZXJ5VmFsdWUxJnF1ZXJ5UGFy
YW0yPSIKKyAgICAgICAgdXJsIDogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2VzL3Jlc291cmNlLWZvcm0tZGF0YS1yZWNlaXZlci1pZnJhbWUuaHRtbD9xdWVyeVBhcmFt
MT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0iCiAgICAgICAgIGhlYWRlcnMgOiA8b2JqZWN0Pgog
ICAgICAgICBoZWFkZXJzU2l6ZSA6IC0xCiAgICAgICAgIGJvZHlTaXplIDogLTEKQEAgLTQyLDEy
ICs0MiwxMiBAQCBUZXN0cyB0aGF0IHJlc291cmNlcyBwYW5lbCBzaG93cyBmb3JtIGRhdGEgcGFy
YW1ldGVycy4KICAgICAgICAgc3RhdHVzVGV4dCA6ICJPSyIKICAgICAgICAgaGVhZGVycyA6IDxv
YmplY3Q+CiAgICAgICAgIGNvbnRlbnQgOiB7Ci0gICAgICAgICAgICBzaXplIDogMTQKLSAgICAg
ICAgICAgIG1pbWVUeXBlIDogImFwcGxpY2F0aW9uL3htbCIKKyAgICAgICAgICAgIHNpemUgOiAz
MAorICAgICAgICAgICAgbWltZVR5cGUgOiAidGV4dC9odG1sIgogICAgICAgICB9CiAgICAgICAg
IHJlZGlyZWN0VVJMIDogIiIKICAgICAgICAgaGVhZGVyc1NpemUgOiAtMQotICAgICAgICBib2R5
U2l6ZSA6IDE0CisgICAgICAgIGJvZHlTaXplIDogMzAKICAgICB9CiAgICAgdGltaW5ncyA6IHsK
ICAgICAgICAgYmxvY2tlZCA6IC0xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLmh0bWwKaW5kZXggMzFmYmQ4OC4uZTg3
ZTY5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2UtcGFyYW1ldGVycy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlLXBhcmFtZXRlcnMuaHRtbApAQCAtNDEsNyArNDEsNyBAQCBmdW5jdGlvbiBmcm9u
dGVuZF9lbmFibGVSZXNvdXJjZVRyYWNraW5nKHRlc3RDb250cm9sbGVyKQogCiBmdW5jdGlvbiBm
cm9udGVuZF9kdW1wRm9ybURhdGEodGVzdENvbnRyb2xsZXIpCiB7Ci0gICAgdmFyIHJlc291cmNl
ID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFwWyJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5z
cGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2k/cXVlcnlQYXJhbTE9cXVlcnlWYWx1ZTEm
cXVlcnlQYXJhbTI9Il07CisgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNl
VVJMTWFwWyJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9yZXNvdXJj
ZS1mb3JtLWRhdGEtcmVjZWl2ZXItaWZyYW1lLmh0bWw/cXVlcnlQYXJhbTE9cXVlcnlWYWx1ZTEm
cXVlcnlQYXJhbTI9Il07CiAKICAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc2FibGVSZXNvdXJjZVRy
YWNraW5nKGZhbHNlKTsKIApAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiBmcm9udGVuZF9kdW1w
Rm9ybURhdGEodGVzdENvbnRyb2xsZXIpCiA8cD4KIFRlc3RzIHRoYXQgcmVzb3VyY2VzIHBhbmVs
IHNob3dzIGZvcm0gZGF0YSBwYXJhbWV0ZXJzLgogPC9wPgotPGZvcm0gdGFyZ2V0PSJ0YXJnZXQt
aWZyYW1lIiBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpP3F1ZXJ5UGFyYW0xPXF1ZXJ5VmFsdWUxJnF1
ZXJ5UGFyYW0yPSI+Cis8Zm9ybSB0YXJnZXQ9InRhcmdldC1pZnJhbWUiIG1ldGhvZD0iUE9TVCIg
YWN0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9yZXNvdXJj
ZS1mb3JtLWRhdGEtcmVjZWl2ZXItaWZyYW1lLmh0bWw/cXVlcnlQYXJhbTE9cXVlcnlWYWx1ZTEm
cXVlcnlQYXJhbTI9Ij4KIDxpbnB1dCBuYW1lPSJmb3JtUGFyYW0xIiB2YWx1ZT0iZm9ybVZhbHVl
MSI+CiA8aW5wdXQgbmFtZT0iZm9ybVBhcmFtMiI+CiA8aW5wdXQgaWQ9InN1Ym1pdCIgdHlwZT0i
c3VibWl0Ij4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9wb3N0LXRhcmdldC5jZ2kgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCA2Yjk2NWI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAK
LSMhL3Vzci9iaW4vcGVybCAtd1QNCi0NCi1wcmludCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlv
bi94bWxcblxuIjsNCi1wcmludCAiPHhtbD40MjwveG1sPlxuIjsNCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRh
dGEtZXhwZWN0ZWQudHh0CmluZGV4IGIxMzhjMjUuLjZjNzg5ZjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3Jt
LWRhdGEtZXhwZWN0ZWQudHh0CkBAIC0xMCwxMSArMTAsMTEgQEAgU2VuZGluZyBGb3JtRGF0YSBj
b250YWluaW5nIG9uZSBmaWxlIHdpdGggZW1wdHkgbmFtZToKIFNlbmRpbmcgRm9ybURhdGEgY29u
dGFpbmluZyBvbmUgc3RyaW5nOgogc3RyaW5nPWZvbwogU2VuZGluZyBGb3JtRGF0YSBjb250YWlu
aW5nIG9uZSBmaWxlOgotZmlsZT1maWxlLWZvci1kcmFnLXRvLXNlbmQudHh0OnRleHQvcGxhaW46
MTIzNDU2Nzg5MAorZmlsZT1maWxlLWZvci1kcmFnLXRvLXNlbmQudHh0OjEyMzQ1Njc4OTAKIFNl
bmRpbmcgRm9ybURhdGEgY29udGFpbmluZyBvbmUgc3RyaW5nIGFuZCBvbmUgZmlsZToKLXN0cmlu
ZzE9Zm9vJmZpbGUxPWZpbGUtZm9yLWRyYWctdG8tc2VuZC50eHQ6dGV4dC9wbGFpbjoxMjM0NTY3
ODkwCitzdHJpbmcxPWZvbyZmaWxlMT1maWxlLWZvci1kcmFnLXRvLXNlbmQudHh0OjEyMzQ1Njc4
OTAKIFNlbmRpbmcgRm9ybURhdGEgY29udGFpbmluZyB0d28gc3RyaW5ncyBhbmQgdHdvIGZpbGVz
Ogotc3RyaW5nMT1mb28mc3RyaW5nMj1iYXImZmlsZTE9ZmlsZS1mb3ItZHJhZy10by1zZW5kLnR4
dDp0ZXh0L3BsYWluOjEyMzQ1Njc4OTAmZmlsZTI9ZmlsZS1mb3ItZHJhZy10by1zZW5kLnR4dDp0
ZXh0L3BsYWluOjEyMzQ1Njc4OTAKK3N0cmluZzE9Zm9vJnN0cmluZzI9YmFyJmZpbGUxPWZpbGUt
Zm9yLWRyYWctdG8tc2VuZC50eHQ6MTIzNDU2Nzg5MCZmaWxlMj1maWxlLWZvci1kcmFnLXRvLXNl
bmQudHh0OjEyMzQ1Njc4OTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3Jt
ZGF0YS9zZW5kLWZvcm0tZGF0YS13aXRoLXNsaWNlZC1maWxlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtd2l0aC1zbGlj
ZWQtZmlsZS1leHBlY3RlZC50eHQKaW5kZXggMzgwMGUzOS4uZjdhNTBhNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS13aXRo
LXNsaWNlZC1maWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLXdpdGgtc2xpY2VkLWZpbGUtZXhwZWN0ZWQudHh0
CkBAIC02LDExICs2LDExIEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBTZW5kaW5nIEZvcm1E
YXRhIGNvbnRhaW5pbmcgb25lIHNsaWNlZCBmaWxlIHdpdGggZW1wdHkgbmFtZToKIAogU2VuZGlu
ZyBGb3JtRGF0YSBjb250YWluaW5nIG9uZSBzbGljZWQgZmlsZToKLWZpbGU9QmxvYjo6MjM0NTYK
K2ZpbGU9QmxvYjoyMzQ1NgogU2VuZGluZyBGb3JtRGF0YSBjb250YWluaW5nIG9uZSBzdHJpbmcg
YW5kIG9uZSBzbGljZWQgZmlsZToKLXN0cmluZzE9Zm9vJmZpbGUxPUJsb2I6OjIzNDU2CitzdHJp
bmcxPWZvbyZmaWxlMT1CbG9iOjIzNDU2CiBTZW5kaW5nIEZvcm1EYXRhIGNvbnRhaW5pbmcgdHdv
IHN0cmluZ3MgYW5kIHR3byBzbGljZWQgZmlsZXM6Ci1zdHJpbmcxPWZvbyZzdHJpbmcyPWJhciZm
aWxlMT1CbG9iOjoyMzQ1NiZmaWxlMj1CbG9iOjo0NQorc3RyaW5nMT1mb28mc3RyaW5nMj1iYXIm
ZmlsZTE9QmxvYjoyMzQ1NiZmaWxlMj1CbG9iOjQ1CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9jYWwvZm9ybWRhdGEvdXBsb2FkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3VwbG9hZC1ldmVudHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGJjNzYxOTEuLjUzMDMxOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bG9jYWwvZm9ybWRhdGEvdXBsb2FkLWV2ZW50cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS91cGxvYWQtZXZlbnRzLWV4cGVjdGVkLnR4dApA
QCAtNiw3ICs2LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIGxvYWRzdGFydCBldmVudCBm
aXJlZCBvbiBYTUxIdHRwUmVxdWVzdFVwbG9hZDogW29iamVjdCBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRdCiBvbnByb2dyZXNzIGV2ZW50IGZpcmVkIG9uIFhNTEh0dHBSZXF1ZXN0VXBsb2Fk
OiBbb2JqZWN0IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudF0KIGxvYWQgZXZlbnQgZmlyZWQg
b24gWE1MSHR0cFJlcXVlc3RVcGxvYWQ6IFtvYmplY3QgWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50XQotc3RyaW5nMT1mb28mZmlsZTE9ZmlsZS1mb3ItZHJhZy10by1zZW5kLnR4dDp0ZXh0L3Bs
YWluOjEyMzQ1Njc4OTAKK3N0cmluZzE9Zm9vJmZpbGUxPWZpbGUtZm9yLWRyYWctdG8tc2VuZC50
eHQ6MTIzNDU2Nzg5MAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9tdWx0aXBhcnQtcG9zdC1lY2hvLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL211bHRpcGFydC1wb3N0LWVjaG8ucGhwCmluZGV4
IDllNzI4MWIuLmY0M2I1ODggMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL211bHRpcGFydC1wb3N0LWVjaG8ucGhwCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL211bHRpcGFydC1wb3N0
LWVjaG8ucGhwCkBAIC0yMSw3ICsyMSw3IEBAIGZvcmVhY2ggKCRfRklMRVMgYXMgJGtleSA9PiAk
dmFsdWUpIHsKICAgICAgICAgICAgICRjb250ZW50ID0gZnJlYWQoJGZwLCAkZmlsZVsnc2l6ZSdd
KTsKICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICB9Ci0gICAgICAgICR2YWx1ZXNb
XSA9ICRrZXkgLiAnPScgLiAkZmlsZVsnbmFtZSddIC4gJzonIC4gJGZpbGVbJ3R5cGUnXSAuICc6
JyAuICRjb250ZW50OworICAgICAgICAkdmFsdWVzW10gPSAka2V5IC4gJz0nIC4gJGZpbGVbJ25h
bWUnXSAuICc6JyAuICRjb250ZW50OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXN1c3BlbmQtYWN0aXZlLWRvbS1vYmplY3RzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1zdXNwZW5kLWFjdGl2ZS1kb20t
b2JqZWN0cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyYmRh
N2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXN1c3BlbmQt
YWN0aXZlLWRvbS1vYmplY3RzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICsw
LDAgQEAKLUFMRVJUOiAxCi1UZXN0cyB0aGF0IGJyb3dzZXIgd29uJ3QgY3Jhc2ggaWYgdXNlciBl
dmFsdWF0ZXMgc29tZXRoaW5nIGluIHRoZSBjb25zb2xlIHRoYXQgd291bGQgc3VzcGVuZCBhY3Rp
dmUgZG9tIG9iamVjdHMgKGUuZy4gaWYgdXNlciBhdHRlbXB0cyB0byBzaG93IGFuIGFsZXJ0KSB3
aGVuIHNjcmlwdCBleGVjdXRpb24gaXMgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCBhbmQgYWxsIGFj
dGl2ZSBkb20gb2JqZWN0cyBhcmUgYWxyZWFkeSBzdXNwZW5kZWQuCi0KLURlYnVnZ2VyIHdhcyBl
bmFibGVkLgotU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLgotU2NyaXB0IGV4ZWN1dGlvbiBw
YXVzZWQuCi1TaG93biBhbGVydCB3aGlsZSBzdGF5aW5nIG9uIGEgYnJlYWtwb2ludC4KLVNjcmlw
dCBleGVjdXRpb24gcmVzdW1lZC4KLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXN1c3BlbmQtYWN0aXZlLWRvbS1vYmpl
Y3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItc3VzcGVuZC1hY3RpdmUt
ZG9tLW9iamVjdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZlNWViZi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItc3VzcGVuZC1hY3Rp
dmUtZG9tLW9iamVjdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0Mi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oKSB7Ci0gICAgc2V0VGltZW91dCgidm9pZCAwIiwgMCk7IC8vIENyZWF0ZSBhIHRp
bWVyIHRoYXQgd2lsbCBiZSBzdXNwZW5kZWQgb24gYSBicmVha3BvaW50LgotICAgIGRlYnVnZ2Vy
OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKCJz
Y3JpcHRzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5zdGFydERlYnVnZ2VyVGVzdChzdGFydERlYnVn
Z2VyVGVzdENhbGxiYWNrKTsKLQotICAgIGZ1bmN0aW9uIHN0YXJ0RGVidWdnZXJUZXN0Q2FsbGJh
Y2soKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgic2V0
VGltZW91dCh0ZXN0RnVuY3Rpb24sIDApIiwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU2V0IHRpbWVyIGZvciB0ZXN0IGZ1bmN0aW9uLiIp
OwotICAgICAgICB9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LndhaXRVbnRpbFBhdXNlZChm
dW5jdGlvbihjYWxsRnJhbWVzKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5Db25zb2xlKCJhbGVydCgxKSIsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTaG93biBhbGVydCB3aGlsZSBzdGF5aW5nIG9uIGEg
YnJlYWtwb2ludC4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVi
dWdnZXJUZXN0KCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi19Ci0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD4KLVRl
c3RzIHRoYXQgYnJvd3NlciB3b24ndCBjcmFzaCBpZiB1c2VyIGV2YWx1YXRlcyBzb21ldGhpbmcg
aW4gdGhlIGNvbnNvbGUKLXRoYXQgd291bGQgc3VzcGVuZCBhY3RpdmUgZG9tIG9iamVjdHMgKGUu
Zy4gaWYgdXNlciBhdHRlbXB0cyB0byBzaG93IGFuIGFsZXJ0KQotd2hlbiBzY3JpcHQgZXhlY3V0
aW9uIGlzIHBhdXNlZCBvbiBhIGJyZWFrcG9pbnQgYW5kIGFsbCBhY3RpdmUgZG9tIG9iamVjdHMK
LWFyZSBhbHJlYWR5IHN1c3BlbmRlZC4KLTwvcD4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNl
dHMuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9m
ZnNldHMuY3NzCmluZGV4IGVmNjllZTYuLjQ1MjEwZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcworKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKQEAg
LTEsNyArMSwxNCBAQAogYm9keSB7CiAgICAgZm9udC1zaXplOiAxMnB4OworICAgIGZvbzogYmFy
ICEKKworICAgIGltcG9ydGFudCAvKiAhaW1wb3J0YW50IHByb3BlcnR5IG5vdCByZWNvZ25pemVk
IGJ5IFdlYkNvcmUgKi87CisgICAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7CisgICAgY29sb3J6
OiAiIWltcG9ydGFudCI7CisgICAgaW1wb3J0YW50OiFpbXBvcnRhbnQ7CisgICAgY29sb3I6ICJi
YWRjb2xvciIgISBpbXBvcnRhbnQgLyogZ29vZCBwcm9wZXJ0eSB3aXRoIHN0cmFuZ2UgdmFsdWUg
Ki87CiB9CiAKLS8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1l
bnQgYWZ0ZXIgc2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjMDAwO30vKiBjb21tZW50
ICovCisvKiBjb21tZW50IGJlZm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFm
dGVyIHNlbGVjdG9yICovey8qIGNvbW1lbnQgKi9jb2xvcjogI0YwMEJBQTt6b286bW9vIC8qIG5v
dCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqL30vKiBjb21tZW50ICovCiAK
LWJvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW47fQorYm9keS5tYWluMntiYWNrZ3JvdW5kOiBn
cmVlbiAvKiB2YWx1ZSAhaW1wb3J0YW50IGNvbW1lbnQgKi8gIWltcG9ydGFudCAvKiBubyBzZW1p
Y29sb24sIHZlcnkgIWltcG9ydGFudCAqL30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQKaW5kZXggZGRhNjdhZC4u
MmQyNzlmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Ut
b2Zmc2V0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1z
b3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwyMSBAQAotVGVzdHMgdGhhdCBw
cm9wZXIgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9ydGVkIGZvciBDU1MgcnVs
ZSBib2RpZXMuCitUZXN0cyB0aGF0IHByb3BlciBkYXRhIGFuZCBzdGFydC9lbmQgb2Zmc2V0IHBv
c2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBzdHlsZSBkZWNsYXJhdGlvbnMgYW5kIHByb3Bl
cnRpZXMuCiAKLWJvZHk6IFs1LTI4XQotYm9keS5tYWluMTogWzk4LTEyNF0KLWJvZHkubWFpbjI6
IFsxNTAtMTY5XQotYm9keSB7JiAgICBmb250LXNpemU6IDEycHg7Jn0mJi8qIGNvbW1lbnQgYmVm
b3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi97Lyog
Y29tbWVudCAqL2NvbG9yOiAjMDAwO30vKiBjb21tZW50ICovJiZib2R5Lm1haW4ye2JhY2tncm91
bmQ6IGdyZWVuO30mCitib2R5OiBbNi0yNjZdCitbJ2ZvbnQtc2l6ZSc6JzEycHgnXSBAWzUtMjFd
CitbJ2Zvbyc6J2JhcicgIWltcG9ydGFudCBub24tcGFyc2VkXSBAWzI2LTEwNF0KK1snaGVpZ2h0
JzonMTAwJScgIWltcG9ydGFudF0gQFsxMDktMTMzXQorWydjb2xvcnonOiciIWltcG9ydGFudCIn
IG5vbi1wYXJzZWRdIEBbMTM4LTE1OV0KK1snaW1wb3J0YW50JzonJyBub24tcGFyc2VkXSBAWzE2
NC0xNzRdCitbJ2NvbG9yJzonImJhZGNvbG9yIicgIWltcG9ydGFudF0gQFsxOTAtMjU5XQorYm9k
eS5tYWluMTogWzMzNy00MThdCitbJ2NvbG9yJzonI0YwMEJBQSddIEBbMTMtMjhdCitbJ3pvbyc6
J21vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1bnJlY29nbml6ZWQgcHJvcGVydHkgKi8nIG5vbi1w
YXJzZWRdIEBbMjgtODFdCitib2R5Lm1haW4yOiBbNDQ1LTU0MF0KK1snYmFja2dyb3VuZCc6J2dy
ZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLycgIWltcG9ydGFudF0gQFswLTk1XQor
Ym9keS5tYWlucGFnZTogWzE3LTE0OV0KK1sndGV4dC1kZWNvcmF0aW9uJzonbm9uZSddIEBbNS0y
N10KK1snYmFkcHJvcGVydHknOicxYmFkdmFsdWUxJyBub24tcGFyc2VkXSBAWzEwNy0xMzFdCitl
bGVtZW50LnN0eWxlOiBbMC0zMV0KK1snZm9udC13ZWlnaHQnOidub3JtYWwnXSBAWzAtMjBdCitb
J3dpZHRoJzonODAlJ10gQFsyMS0zMV0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCmluZGV4IDA1MzM2MTEuLjQyZWI2MDEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKQEAgLTM1
LDU1ICszNSw0MyBAQCBmdW5jdGlvbiBmcm9udGVuZF9ydW5UZXN0KHRlc3RDb250cm9sbGVyKQog
ICAgICAgICBmdW5jdGlvbiBzdHlsZXNDYWxsYmFjayh0ZXN0Q29udHJvbGxlciwgc3R5bGVzKQog
ICAgICAgICB7CiAgICAgICAgICAgICB2YXIgbWF0Y2hlZENTU1J1bGVzID0gc3R5bGVzLm1hdGNo
ZWRDU1NSdWxlczsKLSAgICAgICAgICAgIHZhciBwYXJlbnRTdHlsZVNoZWV0SWQgPSBtYXRjaGVk
Q1NTUnVsZXNbMF0uc3R5bGUucGFyZW50U3R5bGVTaGVldElkOwotICAgICAgICAgICAgaWYgKCFw
YXJlbnRTdHlsZVNoZWV0SWQpIHsKLSAgICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1
bHRzLnB1c2goIkJBRCBTVFlMRVNIRUVUIElEOiAiICsgcGFyZW50U3R5bGVTaGVldElkKTsKLSAg
ICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJl
c3VsdHMpOwotICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAg
dmFyIHJ1bGUgPSBtYXRjaGVkQ1NTUnVsZXNbaV07CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
QmFja2VuZC5nZXRTdHlsZVNvdXJjZURhdGEocnVsZS5zdHlsZS5pZCwgZnJvbnRlbmRfc3R5bGVE
YXRhUmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlciwgcnVsZSwgZmFsc2UpKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0UnVsZVJhbmdlcyhw
YXJlbnRTdHlsZVNoZWV0SWQsIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZC5iaW5kKG51bGws
IHRlc3RDb250cm9sbGVyLCBwYXJlbnRTdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcykpOwor
ICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNvdXJjZURhdGEoc3R5bGVzLmlu
bGluZVN0eWxlLmlkLCBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RD
b250cm9sbGVyLCBzdHlsZXMuaW5saW5lU3R5bGUsIHRydWUpKTsKICAgICAgICAgfQogICAgICAg
ICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlcyhXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1l
bnQuYm9keS5pZCwgdHJ1ZSwgc3R5bGVzQ2FsbGJhY2suYmluZChudWxsLCB0ZXN0Q29udHJvbGxl
cikpOwogICAgIH0pOwogfQogCi1mdW5jdGlvbiBmcm9udGVuZF9ydWxlUmFuZ2VzUmVjZWl2ZWQo
dGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzLCBydWxlUmFuZ2Vz
KQorZnVuY3Rpb24gZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2ZWQodGVzdENvbnRyb2xsZXIsIHJ1
bGVPclN0eWxlLCBzaG91bGRCYWlsLCBkYXRhKQogewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bWF0Y2hlZENTU1J1bGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBydWxlID0gbWF0Y2hl
ZENTU1J1bGVzW2ldOwotICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2gocnVsZS5z
ZWxlY3RvclRleHQgKyAiOiBbIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdl
LnN0YXJ0ICsgIi0iICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2UuZW5kICsg
Il0iKTsKKyAgICB2YXIgaXNSdWxlID0gISEocnVsZU9yU3R5bGUuc3R5bGUpOworICAgIHRlc3RD
b250cm9sbGVyLnJlc3VsdHMucHVzaCgoaXNSdWxlID8gcnVsZU9yU3R5bGUuc2VsZWN0b3JUZXh0
IDogImVsZW1lbnQuc3R5bGUiKSArICI6IFsiICsgZGF0YS5ib2R5UmFuZ2Uuc3RhcnQgKyAiLSIg
KyBkYXRhLmJvZHlSYW5nZS5lbmQgKyAiXSIpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0
YS5wcm9wZXJ0eURhdGEubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdmFyIHByb3BlcnR5RGF0dW0g
PSBkYXRhLnByb3BlcnR5RGF0YVtpXTsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5w
dXNoKCJbJyIgKyBwcm9wZXJ0eURhdHVtLm5hbWUgKyAiJzonIiArIHByb3BlcnR5RGF0dW0udmFs
dWUgKyAiJyIgKyAocHJvcGVydHlEYXR1bS5pbXBvcnRhbnQgPyAiICFpbXBvcnRhbnQiIDogIiIp
ICsgKHByb3BlcnR5RGF0dW0ucGFyc2VkID8gIiIgOiAiIG5vbi1wYXJzZWQiKSArIl0gQFsiICsg
cHJvcGVydHlEYXR1bS5zdGFydCArICItIiArIHByb3BlcnR5RGF0dW0uZW5kICsgIl0iKTsKICAg
ICB9Ci0gICAgSW5zcGVjdG9yQmFja2VuZC5nZXRTdHlsZVNoZWV0KHN0eWxlU2hlZXRJZCwgZnJv
bnRlbmRfaGFuZGxlU3R5bGVTaGVldC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7Ci19Ci0K
LWZ1bmN0aW9uIGZyb250ZW5kX2hhbmRsZVN0eWxlU2hlZXQodGVzdENvbnRyb2xsZXIsIHN0eWxl
U2hlZXQpCi17Ci0gICAgdmFyIHVybCA9IHN0eWxlU2hlZXQuaHJlZjsKLSAgICBpZiAodXJsICE9
PSAiIikgewotICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxN
YXBbdXJsXTsKLSAgICAgICAgaWYgKCFyZXNvdXJjZSkgewotICAgICAgICAgICAgdGVzdENvbnRy
b2xsZXIucmVzdWx0cy5wdXNoKCJOTyBSRVNPVVJDRSBGT1IgVVJMOiAiICsgdXJsKTsKLSAgICAg
ICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgV2ViSW5zcGVjdG9yLmdl
dFJlc291cmNlQ29udGVudChyZXNvdXJjZS5pZGVudGlmaWVyLCBmcm9udGVuZF9zdHlsZVNoZWV0
VGV4dFJlY2VpdmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIkVNUFRZIFNUWUxFU0hFRVQgSFJF
RiIpOworICAgIGlmIChzaG91bGRCYWlsKQogICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwotICAgIH0KIH0KIAotZnVuY3Rpb24gZnJvbnRl
bmRfc3R5bGVTaGVldFRleHRSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldFRleHQp
Ci17Ci0gICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHN0eWxlU2hlZXRUZXh0LnJlcGxh
Y2UoL1xuL2csICImIikpOwotICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRy
b2xsZXIucmVzdWx0cyk7Ci19CiA8L3NjcmlwdD4KKworPHN0eWxlPgorCitib2R5Lm1haW5wYWdl
IHsKKyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IC8qIGF0IGxlYXN0IG9uZSB2YWxpZCBwcm9w
ZXJ0eSBpcyBuZWNlc3NhcnkgZm9yIFdlYkNvcmUgdG8gbWF0Y2ggYSBydWxlICovCisgICAgYmFk
cHJvcGVydHk6IDFiYWR2YWx1ZTE7Cit9CisKKzwvc3R5bGU+CiA8L2hlYWQ+CiAKLTxib2R5IGNs
YXNzPSJtYWluMSBtYWluMiIgb25sb2FkPSJvbmxvYWQoKSI+Cis8Ym9keSBjbGFzcz0ibWFpbjEg
bWFpbjIgbWFpbnBhZ2UiIG9ubG9hZD0ib25sb2FkKCkiIHN0eWxlPSJmb250LXdlaWdodDogbm9y
bWFsOyB3aWR0aDogODAlIj4KIDxwPgotVGVzdHMgdGhhdCBwcm9wZXIgc3RhcnQvZW5kIG9mZnNl
dCBwb3NpdGlvbnMgYXJlIHJlcG9ydGVkIGZvciBDU1MgcnVsZSBib2RpZXMuCitUZXN0cyB0aGF0
IHByb3BlciBkYXRhIGFuZCBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQg
Zm9yIENTUyBzdHlsZSBkZWNsYXJhdGlvbnMgYW5kIHByb3BlcnRpZXMuCiA8L3A+CiAKIDwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2FuZHJvaWQvU2tpcHBlZApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mNGFiMzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vYW5kcm9pZC9Ta2lwcGVkCkBAIC0wLDAgKzEsMiBAQAorIyBGdWxsIFNjcmVlbiBzdXBw
b3J0IGlzIG5vdCB5ZXQgZW5hYmxlZC4KK2Z1bGxzY3JlZW4vCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5
bGUtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQuY2hlY2tzdW0KaW5kZXgg
OTcwYzhlMi4uNmVmMzA5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvcGx1Z2lucy9lbWJlZC1hdHRyaWJ1dGVzLXN0eWxlLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3BsdWdpbnMvZW1iZWQt
YXR0cmlidXRlcy1zdHlsZS1leHBlY3RlZC5jaGVja3N1bQpAQCAtMSArMSBAQAotNTg2YjJmMGY3
YzQ0ZTQ5MTM0NWI4NTA5MmEwZWYzYjQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis2MjM4
OWRhMDU4ZWNlMjA0YjU1ODA3OGNjNDFjNGQ2MwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3BsdWdpbnMv
ZW1iZWQtYXR0cmlidXRlcy1zdHlsZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9wbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc3R5bGUtZXhwZWN0ZWQu
cG5nCmluZGV4IDgyNWU3MjguLjE0ZTU5ZmQgMTAwNjQ0CkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3BsdWdpbnMvZW1iZWQtYXR0cmlidXRlcy1zdHls
ZS1leHBlY3RlZC5wbmcgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
cGx1Z2lucy9lbWJlZC1hdHRyaWJ1dGVzLXN0eWxlLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91
c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250
YWluZXItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZm
YjE4ZTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQuY2hlY2tzdW0K
KysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi03MzQ5YWQ5NDFhMzAyZTgxMThlOTNjODBjNjU3
YTE1ZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29u
dGFpbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDJhNGM5YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3Zn
LWNvbnRhaW5lci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1s
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDQxMQotICBSZW5kZXJCbG9jayB7aHRtbH0g
YXQgKDAsMCkgc2l6ZSA4MDB4NDExCi0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDAsMCkgc2l6
ZSA4MDB4NDExCi0gICAgICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg1MywzMikgc2l6ZSAzNTN4
Mzc0Ci0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwMywzMDMpIHNpemUgMTAw
eDEwMAotICAgICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDMwMywzMDMpIHNpemUgMTAw
eDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNNDAwLjAw
LDM1MC4wMCBMMzk5LjkwLDM1My4xNCBMMzk5LjYxLDM1Ni4yNyBMMzk5LjExLDM1OS4zNyBMMzk4
LjQzLDM2Mi40MyBMMzk3LjU1LDM2NS40NSBMMzk2LjQ5LDM2OC40MSBMMzk1LjI0LDM3MS4yOSBM
MzkzLjgyLDM3NC4wOSBMMzkyLjIyLDM3Ni43OSBMMzkwLjQ1LDM3OS4zOSBMMzg4LjUzLDM4MS44
NyBMMzg2LjQ1LDM4NC4yMyBMMzg0LjIzLDM4Ni40NSBMMzgxLjg3LDM4OC41MyBMMzc5LjM5LDM5
MC40NSBMMzc2Ljc5LDM5Mi4yMiBMMzc0LjA5LDM5My44MiBMMzcxLjI5LDM5NS4yNCBMMzY4LjQx
LDM5Ni40OSBMMzY1LjQ1LDM5Ny41NSBMMzYyLjQzLDM5OC40MyBMMzU5LjM3LDM5OS4xMSBMMzU2
LjI3LDM5OS42MSBMMzUzLjE0LDM5OS45MCBMMzUwLjAwLDQwMC4wMCBMMzQ2Ljg2LDM5OS45MCBM
MzQzLjczLDM5OS42MSBMMzQwLjYzLDM5OS4xMSBMMzM3LjU3LDM5OC40MyBMMzM0LjU1LDM5Ny41
NSBMMzMxLjU5LDM5Ni40OSBMMzI4LjcxLDM5NS4yNCBMMzI1LjkxLDM5My44MiBMMzIzLjIxLDM5
Mi4yMiBMMzIwLjYxLDM5MC40NSBMMzE4LjEzLDM4OC41MyBMMzE1Ljc3LDM4Ni40NSBMMzEzLjU1
LDM4NC4yMyBMMzExLjQ3LDM4MS44NyBMMzA5LjU1LDM3OS4zOSBMMzA3Ljc4LDM3Ni43OSBMMzA2
LjE4LDM3NC4wOSBMMzA0Ljc2LDM3MS4yOSBMMzAzLjUxLDM2OC40MSBMMzAyLjQ1LDM2NS40NSBM
MzAxLjU3LDM2Mi40MyBMMzAwLjg5LDM1OS4zNyBMMzAwLjM5LDM1Ni4yNyBMMzAwLjEwLDM1My4x
NCBMMzAwLjAwLDM1MC4wMCBMMzAwLjEwLDM0Ni44NiBMMzAwLjM5LDM0My43MyBMMzAwLjg5LDM0
MC42MyBMMzAxLjU3LDMzNy41NyBMMzAyLjQ1LDMzNC41NSBMMzAzLjUxLDMzMS41OSBMMzA0Ljc2
LDMyOC43MSBMMzA2LjE4LDMyNS45MSBMMzA3Ljc4LDMyMy4yMSBMMzA5LjU1LDMyMC42MSBMMzEx
LjQ3LDMxOC4xMyBMMzEzLjU1LDMxNS43NyBMMzE1Ljc3LDMxMy41NSBMMzE4LjEzLDMxMS40NyBM
MzIwLjYxLDMwOS41NSBMMzIzLjIxLDMwNy43OCBMMzI1LjkxLDMwNi4xOCBMMzI4LjcxLDMwNC43
NiBMMzMxLjU5LDMwMy41MSBMMzM0LjU1LDMwMi40NSBMMzM3LjU3LDMwMS41NyBMMzQwLjYzLDMw
MC44OSBMMzQzLjczLDMwMC4zOSBMMzQ2Ljg2LDMwMC4xMCBMMzUwLjAwLDMwMC4wMCBMMzUzLjE0
LDMwMC4xMCBMMzU2LjI3LDMwMC4zOSBMMzU5LjM3LDMwMC44OSBMMzYyLjQzLDMwMS41NyBMMzY1
LjQ1LDMwMi40NSBMMzY4LjQxLDMwMy41MSBMMzcxLjI5LDMwNC43NiBMMzc0LjA5LDMwNi4xOCBM
Mzc2Ljc5LDMwNy43OCBMMzc5LjM5LDMwOS41NSBMMzgxLjg3LDMxMS40NyBMMzg0LjIzLDMxMy41
NSBMMzg2LjQ1LDMxNS43NyBMMzg4LjUzLDMxOC4xMyBMMzkwLjQ1LDMyMC42MSBMMzkyLjIyLDMy
My4yMSBMMzkzLjgyLDMyNS45MSBMMzk1LjI0LDMyOC43MSBMMzk2LjQ5LDMzMS41OSBMMzk3LjU1
LDMzNC41NSBMMzk4LjQzLDMzNy41NyBMMzk5LjExLDM0MC42MyBMMzk5LjYxLDM0My43MyBMMzk5
LjkwLDM0Ni44NiBaIl0KLSAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDU2LDM1KSBz
aXplIDI4OHgxOSBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg4eDE5Ci0gICAgICAgICAgICBjaHVuayAxICht
aWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICg1Ni4wMCw1MC4wMCkgc3RhcnRPZmZzZXQgMCBl
bmRPZmZzZXQgNDkgd2lkdGggMjg4LjAwOiAiVGhlIGNpcmNsZSBzaG91bGQgc3RheSBpbiB0aGUg
Ym90dG9tLXJpZ2h0IGNvcm5lciIKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MAotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi1jYXJl
dDogcG9zaXRpb24gMjUgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDMge3RleHR9IG9mIGNo
aWxkIDEge3N2Z30gb2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRh
bG9uZS1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLXN0YW5kYWxvbmUtZXhw
ZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmYjE4ZTkuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3Rv
bS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTczNDlhZDk0MWEzMDJlODExOGU5M2M4MGM2
NTdhMTVkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1j
b250YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFu
ZGFsb25lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzc0ZWQy
Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
Y3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFuZGFsb25lLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA0MDZ4NDA2Ci0gIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDUzLDMyKSBzaXplIDM1M3gz
NzQKLSAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgzMDMsMzAzKSBzaXplIDEwMHgxMDAK
LSAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDMwMywzMDMpIHNpemUgMTAweDEwMCBbZmls
bD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNNDAwLjAwLDM1MC4wMCBM
Mzk5LjkwLDM1My4xNCBMMzk5LjYxLDM1Ni4yNyBMMzk5LjExLDM1OS4zNyBMMzk4LjQzLDM2Mi40
MyBMMzk3LjU1LDM2NS40NSBMMzk2LjQ5LDM2OC40MSBMMzk1LjI0LDM3MS4yOSBMMzkzLjgyLDM3
NC4wOSBMMzkyLjIyLDM3Ni43OSBMMzkwLjQ1LDM3OS4zOSBMMzg4LjUzLDM4MS44NyBMMzg2LjQ1
LDM4NC4yMyBMMzg0LjIzLDM4Ni40NSBMMzgxLjg3LDM4OC41MyBMMzc5LjM5LDM5MC40NSBMMzc2
Ljc5LDM5Mi4yMiBMMzc0LjA5LDM5My44MiBMMzcxLjI5LDM5NS4yNCBMMzY4LjQxLDM5Ni40OSBM
MzY1LjQ1LDM5Ny41NSBMMzYyLjQzLDM5OC40MyBMMzU5LjM3LDM5OS4xMSBMMzU2LjI3LDM5OS42
MSBMMzUzLjE0LDM5OS45MCBMMzUwLjAwLDQwMC4wMCBMMzQ2Ljg2LDM5OS45MCBMMzQzLjczLDM5
OS42MSBMMzQwLjYzLDM5OS4xMSBMMzM3LjU3LDM5OC40MyBMMzM0LjU1LDM5Ny41NSBMMzMxLjU5
LDM5Ni40OSBMMzI4LjcxLDM5NS4yNCBMMzI1LjkxLDM5My44MiBMMzIzLjIxLDM5Mi4yMiBMMzIw
LjYxLDM5MC40NSBMMzE4LjEzLDM4OC41MyBMMzE1Ljc3LDM4Ni40NSBMMzEzLjU1LDM4NC4yMyBM
MzExLjQ3LDM4MS44NyBMMzA5LjU1LDM3OS4zOSBMMzA3Ljc4LDM3Ni43OSBMMzA2LjE4LDM3NC4w
OSBMMzA0Ljc2LDM3MS4yOSBMMzAzLjUxLDM2OC40MSBMMzAyLjQ1LDM2NS40NSBMMzAxLjU3LDM2
Mi40MyBMMzAwLjg5LDM1OS4zNyBMMzAwLjM5LDM1Ni4yNyBMMzAwLjEwLDM1My4xNCBMMzAwLjAw
LDM1MC4wMCBMMzAwLjEwLDM0Ni44NiBMMzAwLjM5LDM0My43MyBMMzAwLjg5LDM0MC42MyBMMzAx
LjU3LDMzNy41NyBMMzAyLjQ1LDMzNC41NSBMMzAzLjUxLDMzMS41OSBMMzA0Ljc2LDMyOC43MSBM
MzA2LjE4LDMyNS45MSBMMzA3Ljc4LDMyMy4yMSBMMzA5LjU1LDMyMC42MSBMMzExLjQ3LDMxOC4x
MyBMMzEzLjU1LDMxNS43NyBMMzE1Ljc3LDMxMy41NSBMMzE4LjEzLDMxMS40NyBMMzIwLjYxLDMw
OS41NSBMMzIzLjIxLDMwNy43OCBMMzI1LjkxLDMwNi4xOCBMMzI4LjcxLDMwNC43NiBMMzMxLjU5
LDMwMy41MSBMMzM0LjU1LDMwMi40NSBMMzM3LjU3LDMwMS41NyBMMzQwLjYzLDMwMC44OSBMMzQz
LjczLDMwMC4zOSBMMzQ2Ljg2LDMwMC4xMCBMMzUwLjAwLDMwMC4wMCBMMzUzLjE0LDMwMC4xMCBM
MzU2LjI3LDMwMC4zOSBMMzU5LjM3LDMwMC44OSBMMzYyLjQzLDMwMS41NyBMMzY1LjQ1LDMwMi40
NSBMMzY4LjQxLDMwMy41MSBMMzcxLjI5LDMwNC43NiBMMzc0LjA5LDMwNi4xOCBMMzc2Ljc5LDMw
Ny43OCBMMzc5LjM5LDMwOS41NSBMMzgxLjg3LDMxMS40NyBMMzg0LjIzLDMxMy41NSBMMzg2LjQ1
LDMxNS43NyBMMzg4LjUzLDMxOC4xMyBMMzkwLjQ1LDMyMC42MSBMMzkyLjIyLDMyMy4yMSBMMzkz
LjgyLDMyNS45MSBMMzk1LjI0LDMyOC43MSBMMzk2LjQ5LDMzMS41OSBMMzk3LjU1LDMzNC41NSBM
Mzk4LjQzLDMzNy41NyBMMzk5LjExLDM0MC42MyBMMzk5LjYxLDM0My43MyBMMzk5LjkwLDM0Ni44
NiBaIl0KLSAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoNTYsMzUpIHNpemUgMjg4eDE5IGNv
bnRhaW5zIDEgY2h1bmsocykKLSAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDI4OHgxOQotICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1
biAxIGF0ICg1Ni4wMCw1MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQgNDkgd2lkdGggMjg4
LjAwOiAiVGhlIGNpcmNsZSBzaG91bGQgc3RheSBpbiB0aGUgYm90dG9tLXJpZ2h0IGNvcm5lciIK
LWNhcmV0OiBwb3NpdGlvbiAyNSBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMyB7dGV4dH0g
b2YgY2hpbGQgMCB7c3ZnfSBvZiBkb2N1bWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTVmMDI1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9v
dC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWNjNjNiODJm
ZDhkZThkOWM3OTJjNzlkOWFmYjgxOWJjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9t
b3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmZTkxMTkuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1t
b3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAg
QEAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAotICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDExCi0gIFJlbmRlckJsb2NrIHto
dG1sfSBhdCAoMCwwKSBzaXplIDgwMHg0MTEKLSAgICBSZW5kZXJCb2R5IHtib2R5fSBhdCAoMCww
KSBzaXplIDgwMHg0MTEKLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDk2LDMyKSBzaXpl
IDIxNHgyMjQKLSAgICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTUwLDE1MCkgc2l6ZSAx
MDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0yNDcu
MDAsMTk3LjAwIEwyNDYuOTAsMjAwLjE0IEwyNDYuNjEsMjAzLjI3IEwyNDYuMTEsMjA2LjM3IEwy
NDUuNDMsMjA5LjQzIEwyNDQuNTUsMjEyLjQ1IEwyNDMuNDksMjE1LjQxIEwyNDIuMjQsMjE4LjI5
IEwyNDAuODIsMjIxLjA5IEwyMzkuMjIsMjIzLjc5IEwyMzcuNDUsMjI2LjM5IEwyMzUuNTMsMjI4
Ljg3IEwyMzMuNDUsMjMxLjIzIEwyMzEuMjMsMjMzLjQ1IEwyMjguODcsMjM1LjUzIEwyMjYuMzks
MjM3LjQ1IEwyMjMuNzksMjM5LjIyIEwyMjEuMDksMjQwLjgyIEwyMTguMjksMjQyLjI0IEwyMTUu
NDEsMjQzLjQ5IEwyMTIuNDUsMjQ0LjU1IEwyMDkuNDMsMjQ1LjQzIEwyMDYuMzcsMjQ2LjExIEwy
MDMuMjcsMjQ2LjYxIEwyMDAuMTQsMjQ2LjkwIEwxOTcuMDAsMjQ3LjAwIEwxOTMuODYsMjQ2Ljkw
IEwxOTAuNzMsMjQ2LjYxIEwxODcuNjMsMjQ2LjExIEwxODQuNTcsMjQ1LjQzIEwxODEuNTUsMjQ0
LjU1IEwxNzguNTksMjQzLjQ5IEwxNzUuNzEsMjQyLjI0IEwxNzIuOTEsMjQwLjgyIEwxNzAuMjEs
MjM5LjIyIEwxNjcuNjEsMjM3LjQ1IEwxNjUuMTMsMjM1LjUzIEwxNjIuNzcsMjMzLjQ1IEwxNjAu
NTUsMjMxLjIzIEwxNTguNDcsMjI4Ljg3IEwxNTYuNTUsMjI2LjM5IEwxNTQuNzgsMjIzLjc5IEwx
NTMuMTgsMjIxLjA5IEwxNTEuNzYsMjE4LjI5IEwxNTAuNTEsMjE1LjQxIEwxNDkuNDUsMjEyLjQ1
IEwxNDguNTcsMjA5LjQzIEwxNDcuODksMjA2LjM3IEwxNDcuMzksMjAzLjI3IEwxNDcuMTAsMjAw
LjE0IEwxNDcuMDAsMTk3LjAwIEwxNDcuMTAsMTkzLjg2IEwxNDcuMzksMTkwLjczIEwxNDcuODks
MTg3LjYzIEwxNDguNTcsMTg0LjU3IEwxNDkuNDUsMTgxLjU1IEwxNTAuNTEsMTc4LjU5IEwxNTEu
NzYsMTc1LjcxIEwxNTMuMTgsMTcyLjkxIEwxNTQuNzgsMTcwLjIxIEwxNTYuNTUsMTY3LjYxIEwx
NTguNDcsMTY1LjEzIEwxNjAuNTUsMTYyLjc3IEwxNjIuNzcsMTYwLjU1IEwxNjUuMTMsMTU4LjQ3
IEwxNjcuNjEsMTU2LjU1IEwxNzAuMjEsMTU0Ljc4IEwxNzIuOTEsMTUzLjE4IEwxNzUuNzEsMTUx
Ljc2IEwxNzguNTksMTUwLjUxIEwxODEuNTUsMTQ5LjQ1IEwxODQuNTcsMTQ4LjU3IEwxODcuNjMs
MTQ3Ljg5IEwxOTAuNzMsMTQ3LjM5IEwxOTMuODYsMTQ3LjEwIEwxOTcuMDAsMTQ3LjAwIEwyMDAu
MTQsMTQ3LjEwIEwyMDMuMjcsMTQ3LjM5IEwyMDYuMzcsMTQ3Ljg5IEwyMDkuNDMsMTQ4LjU3IEwy
MTIuNDUsMTQ5LjQ1IEwyMTUuNDEsMTUwLjUxIEwyMTguMjksMTUxLjc2IEwyMjEuMDksMTUzLjE4
IEwyMjMuNzksMTU0Ljc4IEwyMjYuMzksMTU2LjU1IEwyMjguODcsMTU4LjQ3IEwyMzEuMjMsMTYw
LjU1IEwyMzMuNDUsMTYyLjc3IEwyMzUuNTMsMTY1LjEzIEwyMzcuNDUsMTY3LjYxIEwyMzkuMjIs
MTcwLjIxIEwyNDAuODIsMTcyLjkxIEwyNDIuMjQsMTc1LjcxIEwyNDMuNDksMTc4LjU5IEwyNDQu
NTUsMTgxLjU1IEwyNDUuNDMsMTg0LjU3IEwyNDYuMTEsMTg3LjYzIEwyNDYuNjEsMTkwLjczIEwy
NDYuOTAsMTkzLjg2IFoiXQotICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoOTksMzUp
IHNpemUgMjAyeDE5IGNvbnRhaW5zIDEgY2h1bmsocykKLSAgICAgICAgICBSZW5kZXJTVkdJbmxp
bmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAyMDJ4MTkKLSAgICAgICAgICAgIGNodW5rIDEg
KG1pZGRsZSBhbmNob3IpIHRleHQgcnVuIDEgYXQgKDk5LjUwLDUwLjAwKSBzdGFydE9mZnNldCAw
IGVuZE9mZnNldCAzNCB3aWR0aCAyMDEuMDA6ICJUaGUgY2lyY2xlIHNob3VsZCBiZSBpbiB0aGUg
bWlkZGxlIgotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi0gICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLWNhcmV0OiBwb3NpdGlvbiAx
NiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMyB7dGV4dH0gb2YgY2hpbGQgMSB7c3ZnfSBv
ZiBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9uZS1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91
c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTVmMDI1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9v
dC1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotY2M2M2I4MmZkOGRlOGQ5Yzc5MmM3OWQ5YWZiODE5YmMKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9uZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvY3VzdG9tL21vdXNlLW1v
dmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9uZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDVkYTQwZTEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LXN0YW5kYWxv
bmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxh
eWVyIGF0ICgwLDApIHNpemUgNDA2eDQwNgotICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg5Niwz
Mikgc2l6ZSAyMTR4MjI0Ci0gICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTUwLDE1MCkgc2l6
ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0y
NDcuMDAsMTk3LjAwIEwyNDYuOTAsMjAwLjE0IEwyNDYuNjEsMjAzLjI3IEwyNDYuMTEsMjA2LjM3
IEwyNDUuNDMsMjA5LjQzIEwyNDQuNTUsMjEyLjQ1IEwyNDMuNDksMjE1LjQxIEwyNDIuMjQsMjE4
LjI5IEwyNDAuODIsMjIxLjA5IEwyMzkuMjIsMjIzLjc5IEwyMzcuNDUsMjI2LjM5IEwyMzUuNTMs
MjI4Ljg3IEwyMzMuNDUsMjMxLjIzIEwyMzEuMjMsMjMzLjQ1IEwyMjguODcsMjM1LjUzIEwyMjYu
MzksMjM3LjQ1IEwyMjMuNzksMjM5LjIyIEwyMjEuMDksMjQwLjgyIEwyMTguMjksMjQyLjI0IEwy
MTUuNDEsMjQzLjQ5IEwyMTIuNDUsMjQ0LjU1IEwyMDkuNDMsMjQ1LjQzIEwyMDYuMzcsMjQ2LjEx
IEwyMDMuMjcsMjQ2LjYxIEwyMDAuMTQsMjQ2LjkwIEwxOTcuMDAsMjQ3LjAwIEwxOTMuODYsMjQ2
LjkwIEwxOTAuNzMsMjQ2LjYxIEwxODcuNjMsMjQ2LjExIEwxODQuNTcsMjQ1LjQzIEwxODEuNTUs
MjQ0LjU1IEwxNzguNTksMjQzLjQ5IEwxNzUuNzEsMjQyLjI0IEwxNzIuOTEsMjQwLjgyIEwxNzAu
MjEsMjM5LjIyIEwxNjcuNjEsMjM3LjQ1IEwxNjUuMTMsMjM1LjUzIEwxNjIuNzcsMjMzLjQ1IEwx
NjAuNTUsMjMxLjIzIEwxNTguNDcsMjI4Ljg3IEwxNTYuNTUsMjI2LjM5IEwxNTQuNzgsMjIzLjc5
IEwxNTMuMTgsMjIxLjA5IEwxNTEuNzYsMjE4LjI5IEwxNTAuNTEsMjE1LjQxIEwxNDkuNDUsMjEy
LjQ1IEwxNDguNTcsMjA5LjQzIEwxNDcuODksMjA2LjM3IEwxNDcuMzksMjAzLjI3IEwxNDcuMTAs
MjAwLjE0IEwxNDcuMDAsMTk3LjAwIEwxNDcuMTAsMTkzLjg2IEwxNDcuMzksMTkwLjczIEwxNDcu
ODksMTg3LjYzIEwxNDguNTcsMTg0LjU3IEwxNDkuNDUsMTgxLjU1IEwxNTAuNTEsMTc4LjU5IEwx
NTEuNzYsMTc1LjcxIEwxNTMuMTgsMTcyLjkxIEwxNTQuNzgsMTcwLjIxIEwxNTYuNTUsMTY3LjYx
IEwxNTguNDcsMTY1LjEzIEwxNjAuNTUsMTYyLjc3IEwxNjIuNzcsMTYwLjU1IEwxNjUuMTMsMTU4
LjQ3IEwxNjcuNjEsMTU2LjU1IEwxNzAuMjEsMTU0Ljc4IEwxNzIuOTEsMTUzLjE4IEwxNzUuNzEs
MTUxLjc2IEwxNzguNTksMTUwLjUxIEwxODEuNTUsMTQ5LjQ1IEwxODQuNTcsMTQ4LjU3IEwxODcu
NjMsMTQ3Ljg5IEwxOTAuNzMsMTQ3LjM5IEwxOTMuODYsMTQ3LjEwIEwxOTcuMDAsMTQ3LjAwIEwy
MDAuMTQsMTQ3LjEwIEwyMDMuMjcsMTQ3LjM5IEwyMDYuMzcsMTQ3Ljg5IEwyMDkuNDMsMTQ4LjU3
IEwyMTIuNDUsMTQ5LjQ1IEwyMTUuNDEsMTUwLjUxIEwyMTguMjksMTUxLjc2IEwyMjEuMDksMTUz
LjE4IEwyMjMuNzksMTU0Ljc4IEwyMjYuMzksMTU2LjU1IEwyMjguODcsMTU4LjQ3IEwyMzEuMjMs
MTYwLjU1IEwyMzMuNDUsMTYyLjc3IEwyMzUuNTMsMTY1LjEzIEwyMzcuNDUsMTY3LjYxIEwyMzku
MjIsMTcwLjIxIEwyNDAuODIsMTcyLjkxIEwyNDIuMjQsMTc1LjcxIEwyNDMuNDksMTc4LjU5IEwy
NDQuNTUsMTgxLjU1IEwyNDUuNDMsMTg0LjU3IEwyNDYuMTEsMTg3LjYzIEwyNDYuNjEsMTkwLjcz
IEwyNDYuOTAsMTkzLjg2IFoiXQotICAgIFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg5OSwzNSkg
c2l6ZSAyMDJ4MTkgY29udGFpbnMgMSBjaHVuayhzKQotICAgICAgUmVuZGVyU1ZHSW5saW5lVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjAyeDE5Ci0gICAgICAgIGNodW5rIDEgKG1pZGRsZSBh
bmNob3IpIHRleHQgcnVuIDEgYXQgKDk5LjUwLDUwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAzNCB3aWR0aCAyMDEuMDA6ICJUaGUgY2lyY2xlIHNob3VsZCBiZSBpbiB0aGUgbWlkZGxlIgot
Y2FyZXQ6IHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAzIHt0ZXh0fSBv
ZiBjaGlsZCAwIHtzdmd9IG9mIGRvY3VtZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQt
ZG9tLWN4LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLWN4LWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1M2Ex
YzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotM2VjNTI1NWQxMTZmNzNkNjg4MTM5
NjgyZDVlMTM5NzcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Np
cmNsZUVsZW1lbnQtZG9tLWN4LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRv
bS1jeC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRi
ZmY2Zi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLWN4LWF0dHIt
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVs
ZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9t
LWN5LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDM3ZDBjMjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNTU1MTJjMDc5ZTkwZTg4
MTU5MTZiM2QwOWNjZmM0ODYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0NpcmNsZUVsZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVt
ZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjc2OWJlYS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLWN5
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Np
cmNsZUVsZW1lbnQtZG9tLXItYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVu
dC1kb20tci1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1YjU1MGE5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tci1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZDZhODFkYWUzZTMx
NDg4NjQzMDUyMTQyYmU4MWUxMjIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLXItYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVs
ZW1lbnQtZG9tLXItYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZlZjdjYzQuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1y
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Np
cmNsZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVs
ZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJhNWVkZjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LXN2Z2Rv
bS1jeC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
NGI1OTMwZGIzNWE4Njk2MWUwMWEzNjdmNGM0MGQ0MzIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdDaXJjbGVFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzVhYmY0Mi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0
ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0YjNiZmUuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdDaXJjbGVFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotM2IyODgzOTI4MjlkOWQ5ZDM1YzA5ZmM3NzMyODFlNmQK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQt
c3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LXN2Z2RvbS1jeS1w
cm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmM3NGIyNi4u
MDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1l
bnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdk
b20tci1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjZTUzZDYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tci1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYjY0ZjVmZDBjMWE4
NWQ3ZTVlMTQ2YTdjMTliNTM3NDQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNs
ZUVsZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM0NDc1NmQuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50
LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0NsaXBQYXRoLWluZmx1ZW5jZXMtaGl0VGVzdGluZy1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHQ2xpcFBhdGgtaW5mbHVlbmNlcy1oaXRUZXN0aW5nLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzdjN2MwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBh
dGgtaW5mbHVlbmNlcy1oaXRUZXN0aW5nLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwK
QEAgLTEgKzAsMCBAQAotNWEyZDYyYjM5ZDBkMzMxMGE1NzBlZTBkMGU1MjBhNTYKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoLWluZmx1ZW5jZXMtaGl0
VGVzdGluZy1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoLWluZmx1ZW5jZXMtaGl0VGVzdGluZy1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1N2FiMjguLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aC1pbmZsdWVuY2VzLWhpdFRlc3RpbmctZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVu
dC1kb20tY2xpcFBhdGhVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aEVs
ZW1lbnQtZG9tLWNsaXBQYXRoVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWQwNTNjMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxl
bWVudC1kb20tY2xpcFBhdGhVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotZWRlMWNmYTJiNmIwODRhMjVkZWIxYzM0Yzg5MzQ3NzAKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVudC1kb20t
Y2xpcFBhdGhVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LWRvbS1j
bGlwUGF0aFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmMTJjYmNlLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LWRv
bS1jbGlwUGF0aFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVudC1zdmdkb20tY2xpcFBhdGhVbml0cy1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aEVsZW1lbnQtc3ZnZG9tLWNsaXBQYXRoVW5pdHMt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY3
ZmQ2NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVudC1zdmdkb20tY2xpcFBhdGhVbml0
cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNzlk
OGU3ZjJlN2Q5ZjBjZTIyNDYzNmUyZDdkYWY3NTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVudC1zdmdkb20tY2xpcFBhdGhVbml0cy1wcm9w
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LXN2Z2RvbS1jbGlwUGF0aFVuaXRzLXBy
b3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZDgzODc0Li4w
MDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LXN2Z2RvbS1jbGlwUGF0aFVu
aXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0N1cnNvckVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxl
bWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzNjRmM2Y0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teC1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYzhlYmU2ZjQ1
YmIxZWEyYjg3YzE3ZTkyYzc3YmFhYzYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNv
ckVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYzMTdiOTQuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LWRv
bS14LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0N1cnNvckVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxl
bWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMTJhNjY3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teS1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZjUyZGI0ZDRl
NzY4YTFkMDg0MDcxYzI3MmQ5Y2IwMDYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNv
ckVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI0ZDUzZGMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LWRv
bS15LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0N1cnNvckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29y
RWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmZDdmZGQyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdk
b20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
OGM4YzNkYjhiZTc0ZTcyMTY2ZjlmZGE0YmM1ZTIzMTcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjOTA1MzYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdD
dXJzb3JFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjQ0ZGQ1Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Q3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotN2I3MzlmNDRmMGE2M2Q3ZmY5NzE2YTE0OWFkYjRiMDYKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9t
LXktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3NmJhOTUuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1j
eC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tY3gtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ2NTQwOS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotODk1MzMxNjNmNGZhMmM5ODgwZjhiMTBk
N2MyODM1YTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlw
c2VFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9t
LWN4LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWMx
OWY2Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN4LWF0dHIt
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VF
bGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1k
b20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggN2E0YTUwNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeS1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNDUyYTRkNDNjZmUx
NDY5NDhkMWFkOTBjZTIxNDA4YjUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBz
ZUVsZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3YzIwNmNiLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQt
ZG9tLWN5LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxp
cHNlRWxlbWVudC1kb20tcngtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTdlODc5Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRv
bS1yeC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
MGYwOGFlZTFjY2Q1MDc4YWUxYzk3YmQxMzk2MWRmM2IKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeC1hdHRyLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ4LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlOTQ4MWFmLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxs
aXBzZUVsZW1lbnQtZG9tLXJ4LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeS1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcnktYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI1OTIzMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlw
c2VFbGVtZW50LWRvbS1yeS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotNDAwZGMyMzc2OGZhYmM0OWMzZjEyZDM3MGFhMzQ5YWEKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LWRvbS1yeS1hdHRy
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ5LWF0dHItZXhwZWN0ZWQucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzZmMjc0Li4wMDAwMDAwCkJpbmFyeSBm
aWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ5LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1jeC1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjlmY2UwNy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNzVkZDVkMWJkZDU5MDIzNWZhZjY1MTY4
N2FhMjgwMDYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlw
c2VFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQt
c3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyZTgyZWI0Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9t
LWN4LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxp
cHNlRWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTM1NTA2Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50
LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotMTlmZjQxMzUzZGRkMjcyZjNiOWRhMDkyZWMzMWU0ZDgKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjhlNTZmLi4wMDAwMDAwCkJpbmFyeSBm
aWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tcngtcHJvcC1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWM0MTRmYy4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZDUyNzI5OTExNGRlZGIzMmIxZjM4
MzNiZGFmY2U1MTkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Vs
bGlwc2VFbGVtZW50LXN2Z2RvbS1yeC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1l
bnQtc3ZnZG9tLXJ4LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2MGVmNjYwLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3Zn
ZG9tLXJ4LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdF
bGxpcHNlRWxlbWVudC1zdmdkb20tcnktcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZDljYWNlOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVt
ZW50LXN2Z2RvbS1yeS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotMDRiNmZhYmViMWRiNDU1NDhhNzVkZGNmYzRjMTI3YzAKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeS1wcm9w
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ5LXByb3AtZXhwZWN0ZWQu
cG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2Q4ZDA3Li4wMDAwMDAwCkJpbmFy
eSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ5LXByb3AtZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC1kb20tZGlmZnVzZUNvbnN0YW50LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudC1kb20tZGlmZnVzZUNvbnN0YW50LWF0dHItZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxMGIxMGQuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWRpZmZ1c2VDb25zdGFudC1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotM2QzYWExMjBlNWIwNTFk
NWZmOTMxZTU1ZWY3NjAyMjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tZGlmZnVzZUNvbnN0YW50LWF0dHItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWRpZmZ1c2VDb25zdGFu
dC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ4NTA4
ZC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20t
ZGlmZnVzZUNvbnN0YW50LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20taW4tYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjJhYjZhLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNjk2OGVlMDBkZjNhNWY1MGIw
MjIzZWQxODhlZDIyOGMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20taW4tYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20taW4tYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ODU5ZjUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWluLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20t
bGlnaHRpbmctY29sb3ItYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LWRvbS1saWdodGluZy1jb2xvci1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzRhMmJkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50LWRvbS1saWdodGluZy1jb2xvci1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZDBhZTBlNDUyNmNhY2VhNjIxNjI5MDkx
NzIxMGIxMGMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tbGlnaHRpbmctY29sb3ItYXR0ci1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tbGlnaHRpbmctY29sb3ItYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmNzZjM2MuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWxpZ2h0aW5nLWNv
bG9yLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tc3VyZmFjZVNjYWxlLWF0dHItZXhwZWN0ZWQu
Y2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tc3VyZmFjZVNjYWxlLWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4NGE3
OGUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLXN1cmZhY2VT
Y2FsZS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
ZjMyZmNlZDE2ODllNDA2NTJiNzc2NjhmODU5MzJmY2YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tc3VyZmFjZVNj
YWxlLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLXN1
cmZhY2VTY2FsZS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZTAwZjEwOS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC1kb20tc3VyZmFjZVNjYWxlLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1saWdodGluZy1jb2xv
ci1jc3MtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LWxpZ2h0aW5nLWNvbG9yLWNzcy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyYWFmMWZmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LWxpZ2h0aW5nLWNvbG9yLWNzcy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotY2JjMWJmZDgzODA2OGRhNDVjY2E5ZjEwNTMwMWE1ZDAK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC1saWdodGluZy1jb2xvci1jc3MtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC1saWdodGluZy1jb2xvci1jc3MtcHJvcC1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzNzk4NTQuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtbGlnaHRpbmctY29sb3ItY3NzLXByb3At
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tZGlmZnVzZUNvbnN0YW50LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tZGlmZnVzZUNvbnN0YW50
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0
MzRkOGEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtc3ZnZG9tLWRp
ZmZ1c2VDb25zdGFudC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotNDJlNjc0NGZkODlhOTViYTM5ZGE3OTkzNTM1MjM0ZDkKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdk
b20tZGlmZnVzZUNvbnN0YW50LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQtc3ZnZG9tLWRpZmZ1c2VDb25zdGFudC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGNlOWFkNC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tZGlmZnVzZUNvbnN0YW50LXByb3AtZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC1zdmdkb20taW4tcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODkzY2U1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNDA2MTI3ZjQ3ZTI0ZmIzN2JhNDYzYTQ4MTFhMWRmY2QK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC1zdmdkb20taW4tcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0
aW5nRWxlbWVudC1zdmdkb20taW4tcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI3MDY4ZGQuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQtc3ZnZG9tLWluLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tc3Vy
ZmFjZVNjYWxlLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudC1zdmdkb20tc3VyZmFjZVNjYWxlLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZDk5ZDIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQtc3ZnZG9tLXN1cmZhY2VTY2FsZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNDA1MmQwZjVhNTgyZGY2MDZlNmNmMTczODQy
NWU2NmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tc3VyZmFjZVNjYWxlLXByb3AtZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtc3ZnZG9tLXN1cmZhY2VTY2FsZS1wcm9wLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTk2MjkwZS4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tc3VyZmFjZVNj
YWxlLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFT2Zmc2V0RWxlbWVudC1kb20tZHgtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZz
ZXRFbGVtZW50LWRvbS1keC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwNWI4YWY4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRv
bS1keC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
NjkxZGVmODNiMmI1OGY5MGU2Y2ZmYjMwYWYzMWNlNTUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHgtYXR0ci1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHgtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmYjMxYTYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
RU9mZnNldEVsZW1lbnQtZG9tLWR4LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHktYXR0ci1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keS1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTY1MzRhLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVPZmZzZXRFbGVtZW50LWRvbS1keS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotYzJlOTk2MjI2NWQ5ZjExNGYxNDE0NjA2NzQ0N2Q2NzcKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20t
ZHktYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHktYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmZmJhOGYuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtZG9tLWR5LWF0dHItZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20t
aW4tYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1pbi1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTc1NWRi
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZDBjMzNlMDRkYzQzMmI3MmNiMmE1
OWYxNWZmZjA0MGYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZF
T2Zmc2V0RWxlbWVudC1kb20taW4tYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVu
dC1kb20taW4tYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY4MTZiOTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtZG9tLWlu
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZF
T2Zmc2V0RWxlbWVudC1zdmdkb20tZHgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZz
ZXRFbGVtZW50LXN2Z2RvbS1keC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2Njg3ZWMyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50
LXN2Z2RvbS1keC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotNzQyNTQzMDM5OGZjNTdiOTExMTMxZmZjMGE2YmUwZjcKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20tZHgtcHJvcC1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20tZHgtcHJvcC1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxZDFjYjcuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtc3ZnZG9tLWR4LXByb3AtZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20t
ZHktcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keS1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjMw
NzRiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keS1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOGQwMTVjMzU0NjhjZDBk
NjRjZDYzYTI3N2VjMWIxOWIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20tZHktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zm
c2V0RWxlbWVudC1zdmdkb20tZHktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDliZDk3NjguLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVs
ZW1lbnQtc3ZnZG9tLWR5LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20taW4tcHJvcC1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTA0YTk0Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotZmE4Zjg0MTczY2M5ODNmYzlkZjY5OTg1ZmVmODVkNmUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1z
dmdkb20taW4tcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20taW4t
cHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2NGFkODEu
LjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtc3ZnZG9tLWluLXByb3At
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1kb20tbGltaXRpbmdDb25lQW5nbGUtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1saW1pdGluZ0NvbmVBbmdsZS1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTJkYzU1Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1saW1pdGluZ0NvbmVBbmdsZS1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNTBlOTFkYTRjNjJi
NDljMTJhZjRmNjhjZTdjODNhN2MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tbGltaXRpbmdDb25lQW5nbGUtYXR0ci1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tbGltaXRpbmdDb25lQW5nbGUtYXR0
ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExZDdhMWYuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLWxpbWl0aW5nQ29u
ZUFuZ2xlLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2MDE2MjIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBvaW50c0F0WC1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYzNmNjk5YWIwZGU4ODdiYmNjY2NhYjBl
NmU0MTJlODkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3Bv
dExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RM
aWdodEVsZW1lbnQtZG9tLXBvaW50c0F0WC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjA2ZjI1OC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3Bv
dExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRZ
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRz
QXRZLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRkNzIzMzMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBvaW50c0F0
WS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOWVj
MWI0NjM0OGQ3OTJlYzdjYWFjNmVmMzM2ZjZmOTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRZLWF0dHItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBvaW50c0F0WS1hdHRyLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Y2NTIyNS4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRZLWF0dHItZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0
RWxlbWVudC1kb20tcG9pbnRzQXRaLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1kb20tcG9pbnRzQXRaLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3YWE4MjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdo
dEVsZW1lbnQtZG9tLXBvaW50c0F0Wi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotOWYyNTg0MTE5OWM0M2U5MzU2NGFlYzY1ZmE3MmIwOWUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1k
b20tcG9pbnRzQXRaLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9t
LXBvaW50c0F0Wi1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWFjNGM3Yi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1k
b20tcG9pbnRzQXRaLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tc3BlY3VsYXJFeHBvbmVudC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXNwZWN1bGFyRXhwb25l
bnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MmYxZDdmZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tc3BlY3VsYXJF
eHBvbmVudC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotY2NkMDlmMGU1ZjJiZmQzNDdmMWIxNjY2MTRiNGE2OTUKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tc3BlY3VsYXJFeHBv
bmVudC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1zcGVjdWxh
ckV4cG9uZW50LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1NDc4ZTdkLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRv
bS1zcGVjdWxhckV4cG9uZW50LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA4NjExZi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFU3BvdExpZ2h0RWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotYTk2NWU3ZWQxMDkxYTA1ZDgwNjg0MGNlOGM4MjM4YWQKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVu
dC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS14LWF0
dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODUyYzQ5Li4w
MDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS14LWF0dHItZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0
RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmYxYjMwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20teS1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotM2Q0NDcz
MmM4NGZiMGY5YWRlOTMzNjczOTc4ZjQ1NzcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5Njg2NzFkLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tei1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXotYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzM0N2MwMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tei1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYTI4NjNmMjdkNDBjYjhlOGRkMDFjNGMwNDY1ZDdiODYK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC1kb20tei1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS16
LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTdhNjc1
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS16LWF0dHIt
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1zdmdkb20tbGltaXRpbmdDb25lQW5nbGUtcHJvcC1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1saW1pdGluZ0NvbmVBbmdsZS1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYWJlZDY5Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1saW1pdGluZ0NvbmVBbmds
ZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotODFi
ZTkzNGM0OTU5NjYzNzExOTI4NDgzNWRjYzU0MGEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tbGltaXRpbmdDb25lQW5n
bGUtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tbGltaXRp
bmdDb25lQW5nbGUtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZhYjg0MzkuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQt
c3ZnZG9tLWxpbWl0aW5nQ29uZUFuZ2xlLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRY
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9p
bnRzQXRYLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGYyYjdjYmUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBv
aW50c0F0WC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotODVjMjVlZGZkZDE5OWExYmQyODU3YjM1ZGM0MmM2ZDkKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRY
LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0
WC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzRhMjU0
Ny4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9p
bnRzQXRYLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0
ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhMDZkMWYuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0WS1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotY2I2ZWVjM2YwYzEyYjlk
MzBlMDdmMzhhMzc2MTc0NWQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0WS1wcm9wLWV4cGVjdGVkLnBu
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI1Mzk3Mi4uMDAwMDAwMApCaW5hcnkg
ZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC1zdmdkb20tcG9pbnRzQXRaLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRaLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxMjZmYTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RM
aWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0Wi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMjQyN2NiYTEyNWE1ZDJhODc5YzM3MTE4ZjY3MWJiNDUK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxl
bWVudC1zdmdkb20tcG9pbnRzQXRaLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVs
ZW1lbnQtc3ZnZG9tLXBvaW50c0F0Wi1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjZjODEyMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRaLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tc3BlY3Vs
YXJFeHBvbmVudC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQt
c3ZnZG9tLXNwZWN1bGFyRXhwb25lbnQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZGZkMmVkZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0
RWxlbWVudC1zdmdkb20tc3BlY3VsYXJFeHBvbmVudC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYjRhYTQzMTc5OWMzN2I4ZGY0M2UzNWFhZjY5MWFl
MzYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0
RWxlbWVudC1zdmdkb20tc3BlY3VsYXJFeHBvbmVudC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVjdWxhckV4cG9uZW50LXByb3AtZXhwZWN0ZWQucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjA2YWYzLi4wMDAwMDAwCkJpbmFyeSBm
aWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVjdWxhckV4cG9uZW50LXByb3At
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdo
dEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOWI2MTBkZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVu
dC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotYmJmOGFkNjRjZTYzM2UwYTU3NjU0ZTU3YWQ1YzE3Y2IKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20teC1wcm9w
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNDhkZDk5Li4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQu
cG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVu
dC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQt
c3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmViNDIyZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20t
eS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZGM1
YTY5YTMzNjRmMDMyYjNlNWJjZDgyYzk0OGQyZjQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzUyNjlmLi4wMDAwMDAwCkJpbmFyeSBmaWxl
cyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20t
ei1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXot
cHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAz
MTg3NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tei1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNGZlMmE1YzY4ZjBl
NTdiNDQ4MTI0NGI0N2ZjNzZlOWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tei1wcm9wLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS16LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBmYTQxMzQyLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LXN2Z2RvbS16LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWZpbHRlclJlcy1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1maWx0ZXJSZXMtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTU5MGQzNi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWZpbHRlclJlcy1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYjBmMmE5ZWVmNTJkOGVlOTBjMzk4
MjM2YWRjM2I4YmIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zp
bHRlckVsZW1lbnQtZG9tLWZpbHRlclJlcy1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxl
bWVudC1kb20tZmlsdGVyUmVzLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlOWYyYTRjLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1kb20tZmlsdGVyUmVzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWZpbHRlclVuaXRzLWF0dHItZXhwZWN0ZWQu
Y2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWZpbHRlclVuaXRzLWF0dHItZXhwZWN0ZWQu
Y2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmMjU0MjguLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1maWx0ZXJVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYWExNWMwMjk1OWNiZmJmMjEzMGEwYjJh
NjFjNTU3NTQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRl
ckVsZW1lbnQtZG9tLWZpbHRlclVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVt
ZW50LWRvbS1maWx0ZXJVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTZhNTU1NC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1l
bnQtZG9tLWZpbHRlclVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJlNGMwMC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlckVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotM2MxMzE4MDU1MzY0ZjU3MTViZDAyOGExODVmYzZlM2YKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9t
LWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20taGVpZ2h0LWF0
dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDE3YzBjLi4w
MDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1l
bnQtZG9tLXByaW1pdGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtZG9tLXByaW1pdGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkMjU5ODguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVt
ZW50LWRvbS1wcmltaXRpdmVVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotYWI0NzYxZWZlNTMwOWQ3NzE1ZTliNGM3NzIwNWFiYWUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXBy
aW1pdGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1wcmlt
aXRpdmVVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDg2N2YxNC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXBy
aW1pdGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0g
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlckVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRhZmMyNTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJF
bGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotNzgyYTk2ZWM1NmUyNTY5NzhlY2EzZTFmNzRmOWIxODQKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXdpZHRoLWF0
dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVk
LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjllMDM0MC4uMDAwMDAwMApCaW5h
cnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXgtYXR0
ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjE0N2I0Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNjFlYjE0NTBjZGQ4ZDFkYWFlZmEzM2I0MmU4MWFhOWUK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
ZG9tLXgtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXgtYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0NTI1ZTcuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXktYXR0
ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YmM4MWE2Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZGFlOTA1MmJlMTFlMTNhMTcwNGVhOWNjODE3OGM0YTQK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
ZG9tLXktYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXktYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhMTRkNGQuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZp
bHRlclJlcy1jYWxsLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1m
aWx0ZXJSZXMtY2FsbC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjU4NWEyMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRl
clJlcy1jYWxsLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
YzA5MWQ4N2MwMjBlZTRhZGUyODlhYzQ5YjVlNTU0YjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlcy1jYWxsLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzLWNhbGwtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YTc1MTY5Li4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzLWNhbGwtZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
c3ZnZG9tLWZpbHRlclJlc1gtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1zdmdkb20tZmlsdGVyUmVzWC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhM2E1NGYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1z
dmdkb20tZmlsdGVyUmVzWC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotOTVlNTRkNjFjOTUzOTdjZjhiNDE3OWVkYjgzZjZiN2EKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRl
clJlc1gtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJl
c1gtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmYzli
YzEuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJS
ZXNYLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlc1ktcHJvcC1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzEyMTQ2Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMWY1NzEzNzQwYjZjZGFjMWM2NmI1OWQzZDg3YWU2
NzgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1l
bnQtc3ZnZG9tLWZpbHRlclJlc1ktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
c3ZnZG9tLWZpbHRlclJlc1ktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQ2YTJiYTguLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50
LXN2Z2RvbS1maWx0ZXJSZXNZLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclVuaXRzLXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclVuaXRzLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBkNTU3ZDEu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJVbml0cy1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZWNkMzc5ZmQ4YzVh
MzhkNWM3NGI3ZTE1MDA5Nzg2Y2YKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclVuaXRzLXByb3AtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJVbml0cy1wcm9wLWV4cGVjdGVkLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGE1MzM4OS4uMDAwMDAwMApCaW5hcnkgZmls
ZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclVuaXRzLXByb3AtZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9t
LWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1o
ZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTRkYTQ4YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWhlaWdodC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOWQ2Njkx
OWM1YTQ3M2M1ZWFjOWFiMGQ3YWU2ZTM3NDMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDBhOWI1Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXByaW1pdGl2
ZVVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXBy
aW1pdGl2ZVVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGEyZTY4MTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1w
cmltaXRpdmVVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotNmNiODdjYjMwYTM0ZjZhNzI1NjFiN2Y0YzYzZTJiZGEKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXByaW1pdGl2
ZVVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1wcmltaXRp
dmVVbml0cy1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZmIwN2FkOS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXBy
aW1pdGl2ZVVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjY2Q5MDcuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
aWx0ZXJFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotZTI3YjdmNzAzNDkzZWJkODg1MDVmYTdhODljMWNlMGQKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3Zn
ZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS13aWR0
aC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDIxYTNm
OC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXdpZHRoLXBy
b3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRl
ckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzOGM1MDUwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMzA2NmEy
NzY5NDU5ZDc4ZDAxOGM4ZWYwMGIzZWZmZjMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc2ZWIwY2EuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJF
bGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzY2UzZmFlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotYTIzNWU0MDM5MDQyZjgwYWNlODJjMDk1OTQ0ZGNhMmQKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXktcHJv
cC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3YTdmZWEuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxYzdlYzIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotN2IwMWNlZTBmNjExZTJiNjc1
YTFhYjJmNTg3MDFhMTYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20taGVpZ2h0LWF0dHItZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLWhlaWdodC1h
dHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODMzYzM4Zi4u
MDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20tcmVzdWx0LWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1kb20tcmVzdWx0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZhMGI5N2YuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMtZG9tLXJlc3VsdC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotMzZkZjU1YjBiNzQ1ODBlZTExM2IyODU1ODY2MTg1YjgKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy1kb20tcmVzdWx0LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXJlc3VsdC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzExN2NkZi4uMDAwMDAwMApCaW5hcnkgZmlsZXMg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20tcmVzdWx0LWF0dHItZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS13aWR0aC1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTNkYzZkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS13aWR0aC1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMzNhOGZl
OWFkMGFlNGNlZWRjZmQ5ZjFkZGMzYmQxOWQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20td2lkdGgt
YXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1k
b20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGMwMGMyYWMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20t
eC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODM2MTdkZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotNzUyZGVkNTliOWM2OWVkN2I2N2MzNjgzNjI5NDc3YTgKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLWRvbS14LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA4OWVhNzBmLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDI3ZjE5YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotZDM4Mjc0MWM0OWJiNGY2MTViNjc0OTIzZWRkMDdlMjMKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy1kb20teS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS15LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzNzE2YjVhLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcy1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmOWE0ZTMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLWhlaWdodC1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNmFiMzEzNDA4
ZDdmNGM4YTBhMTk3NzAyYjU1MmNiNmIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20taGVpZ2h0
LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMt
c3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggN2Y2ZGNiNS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy1zdmdkb20tcmVzdWx0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20tcmVzdWx0LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5ZGIwNjUuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXJlc3VsdC1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZGUzZTgzNDRjNDNm
Y2JiYmU1ZGUwYTBhOWMzMmE3MmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20tcmVzdWx0LXBy
b3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3Zn
ZG9tLXJlc3VsdC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjVmNDQyYS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy1zdmdkb20tcmVzdWx0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYmZiY2M5Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZTUwZTkyM2FkYzcwOWVmNmMy
OWZjNTdjYWE2ZTQ0YjcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20td2lkdGgtcHJvcC1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20td2lk
dGgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1Y2Q4
NGYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20t
eC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzRjMmRkNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotOTNmOTIzNzE1Yjc1Y2ViNWQ4NzdmMDZkOTUwNDAyYjMKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NTllNWY1Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQu
cG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODJhYTNkMC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20teS1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZTc5ZDBhZmU1YjUwZTEw
OGQ0MjZlYWQ1NGFkM2VkODIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20teS1wcm9wLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS15LXBy
b3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTU4ODQ1Li4w
MDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiY2M3ZGM2Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMzJlN2JlYjkzZjM4MWJmN2U3ZWVhOWQ5
MGY5NWQwMGMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk3MmFlMzkuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS13aWR0aC1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20td2lkdGgtYXR0
ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY1NmI2
ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMTM5MmY5ZGNkMjMw
ZGYwZGJmMzM4YzJkYTBkODlkNTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjEzMjlhLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS14
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS14LWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlODA5
YjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teC1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMWQ0N2Y4Yzc5ZDhlYTY4
YzVjNjFlMTJlNGZiMTA1MmYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3Jl
aWduT2JqZWN0RWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYjBhYTM3Yi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQu
Y2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzODdkYzYuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotM2VhMGM0YmJiMTQ4ZjJmOTgyMWUzMGIzNjc5Yzk1
MTEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MGI3ZGM0ZC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRv
bS15LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjI0ODZkLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZTYwM2RlNjA3YzdkNWVhMmFkYjJl
NTFhZDdlNTNlYmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkyM2YyOTYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2
Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTdjMDRkMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotNjg1NDU3MzUxZmY5ZWY0NmNmM2IzODZjYzE4ZjU2OTQKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS13
aWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXdp
ZHRoLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYjA3
Y2QzLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9t
LXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0g
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZmE2YjIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMWM5ZWRmM2NmNDEyZTJmODQ2OTY2ZTRiMzMyMmM2OWIK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RF
bGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZGQ1MTNjMS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50
LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhNzRlYzAuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOTY5YjgzZmEwZmYzOGRmMDYwZDNhMmM3MWQxMzIy
NjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNGU4NmQxZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0g
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYTRhYjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVs
ZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotMDJjMjMxMjY4ZjU1ZGJkMzE0ZGI1MzVlMjFmZTI2ZWIKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0
dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVk
LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUxYzJhOC4uMDAwMDAwMApCaW5h
cnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20tcHJlc2Vy
dmVBc3BlY3RSYXRpby1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9t
LXByZXNlcnZlQXNwZWN0UmF0aW8tYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmRkNzVlMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1k
b20tcHJlc2VydmVBc3BlY3RSYXRpby1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotMWE0NDFmMWNmYmY2NThmOWNjMmRiYWViYTE4Zjk4ZTEKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20tcHJl
c2VydmVBc3BlY3RSYXRpby1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS1w
cmVzZXJ2ZUFzcGVjdFJhdGlvLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlY2E3MmNlLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50
LWRvbS1wcmVzZXJ2ZUFzcGVjdFJhdGlvLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGM5NjIzLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHSW1hZ2VFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotNTVmMzdmNzJiYThkZjhkMzkxMTQ3NDM4YzVmMzRlM2IKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20t
d2lkdGgtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20td2lkdGgtYXR0ci1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2ZjJjMjEuLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQu
cG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20t
eC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXgtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzFiNDkxZC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMGM5NGM5NDBjMzMzMTE3MDkwZDg2Y2UyNDI2Y2Y3
YTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVu
dC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS14LWF0dHItZXhw
ZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTAxMWU4Li4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20teS1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDE0YTZmMS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ltYWdlRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotYmIxZTc5ZTRhOGQzMzI4ODUxMmY3N2M0MTA5Y2UyNmUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20t
eS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQu
cG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzgyZmY5Li4wMDAwMDAwCkJpbmFy
eSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20taGVpZ2h0LXBy
b3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4MDY3M2Iu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMzRmNGRlNDYxNzc2MDkzZTE0
MzNiZWY3Yzk3ODY4NmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ltYWdlRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVs
ZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmYyZGI3Mi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVu
dC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20tcHJlc2VydmVBc3BlY3RSYXRpby1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXByZXNlcnZlQXNwZWN0
UmF0aW8tcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggODMwMDZiNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20tcHJlc2VydmVB
c3BlY3RSYXRpby1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotNTJhY2MzMzE5NGMxMzQ5ZjAwZTI2YmZlM2FhN2NiNTEKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20tcHJlc2VydmVBc3Bl
Y3RSYXRpby1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1wcmVzZXJ2
ZUFzcGVjdFJhdGlvLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiZjIyM2RiLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2Rv
bS1wcmVzZXJ2ZUFzcGVjdFJhdGlvLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZGY5NWFmLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNGQ0YTNlYjg1NTc2MGNjNTdhZDhkMzk1YjRlNjQ1
YjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVu
dC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20t
d2lkdGgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYy
ZDBmNjYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXdpZHRo
LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0lt
YWdlRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1l
bnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOGVlOTYwZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNWRlMjQz
MDU0ZjQ0YjA4ZTBlY2M2N2U2YzA0ZDQzNzYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
SW1hZ2VFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0YWEzMGUwLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVt
ZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjU0YTYwMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVu
dC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotZWQyY2E4ZTczMWZlOTY4N2NjMTVjNDEzOWY2MmE5OTEKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYzM3YzMwLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teDEtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTdlYzQxNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVF
bGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotMzEyMTA1MGMxZGMxYzRiNjI3ZTg4MzkyYzc5MGRjNGUKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXgxLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWJmM2U3Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TGluZUVsZW1lbnQtZG9tLXgxLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS14Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdMaW5lRWxlbWVudC1kb20teDItYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDQwYjRlMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50
LWRvbS14Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotMmFmZjllNjY1MjE3NTkwYWNmM2FlZjY2NzMzOTNkMGQKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS14Mi1hdHRyLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXgyLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlNjE3ODA0Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVs
ZW1lbnQtZG9tLXgyLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15MS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdM
aW5lRWxlbWVudC1kb20teTEtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzU0NDIxZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15
MS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNWZl
NDNlNmRkYWY5ODAwOTViMzAwZjY1M2M0Yzc0M2MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15MS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TGluZUVsZW1lbnQtZG9tLXkxLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyZWRlODVlLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQt
ZG9tLXkxLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0xpbmVFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxl
bWVudC1kb20teTItYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODgwZGU2MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15Mi1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZDhiODBiMjQ5
YmEwMmU5NGEzOGFjMjU3OThjZDYyNzYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVs
ZW1lbnQtZG9tLXkyLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1M2EyNWQ2Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXky
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xp
bmVFbGVtZW50LXN2Z2RvbS14MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVu
dC1zdmdkb20teDEtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWMxM2JjMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14MS1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZjE1MzA1
MWI0MTdjNjkwNzc5NjA3ZjI5ZWE2NzkzM2MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14MS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TGluZUVsZW1lbnQtc3ZnZG9tLXgxLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjOTVhZGJkLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1l
bnQtc3ZnZG9tLXgxLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdMaW5lRWxlbWVudC1zdmdkb20teDItcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggN2VkNmY5ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50
LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotNTEyYzRiMDFmMjNiYTY4YWFiNTZjNzBlNzBmMDM4YWMKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXgyLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDUyZmNkLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXgyLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q4ZmIyYi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotOTMwNmY1ZDkzNjIzYzJjZGE4NTdlMzk3MWZlZjY5NDkKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15
MS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXkxLXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTM1YTQzLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXkxLXByb3AtZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15Mi1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTItcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZlOGFjMS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMmQ3NmI1ODIzNjI3NjVmZDUxMjJjNmExMDQ3
ZjZmZjIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVt
ZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXky
LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzM5ZWNl
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXkyLXByb3AtZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzdhMjAyLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZjExNjQ1
MDFmZTE2OTU2ODgzYmZlOGYzMTAxZDc3NzIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0t
YXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRU
cmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRiM2ZmN2YuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQt
ZG9tLWdyYWRpZW50VHJhbnNmb3JtLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0
cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLWdy
YWRpZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTlmMjJkZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1k
b20tZ3JhZGllbnRVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotMjgzY2U0M2FkMGRhNGEzOGRjNDBmMzNlMTc2OTY0NjUKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20t
Z3JhZGllbnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1MTQ2N2JkLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDEtYXR0
ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14MS1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTNiOWY2
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMDg0OWYzYWU4NGI3ZTY3
ODE1ZTlkZGZlNzg0MThmNWMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDEtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC1kb20teDEtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDU3Mzg4NmIuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQtZG9tLXgxLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwg
ZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDItYXR0ci1l
eHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14Mi1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDkxNTlhLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14Mi1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMjI1OGM1MDM1MDA5M2FjMGJi
MDI1M2VjMTcxMGU4MDcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDItYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC1kb20teDItYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDQ5NTE2ZjIuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQtZG9tLXgyLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTEtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15MS1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWRmMjhiLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15MS1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYWZkYzk3ODIxN2Y2ZTFjNGJiMTUx
MTQ0YjNiNjg2OTAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC1kb20teTEtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC1kb20teTEtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM3NTY0MjkuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQtZG9tLXkxLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTItYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZTVmNjI2Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZjAyZGVmNTdhZDc5NzgyODAwZjc1MWNl
YTBiNmVhMTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC1kb20teTItYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC1kb20teTItYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI2OWQyMTYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQtZG9tLXkyLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zv
cm0tcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NjA2ZjRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMGUyYjkyNzUzMzg4ZmFjNDYzMjEwZDhmYWMwMzZj
ZWEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVhZGU0N2QuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJh
bnNmb3JtLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5p
dHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NWMwYjA2MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3Jh
ZGllbnRVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotYTcxMjJiOTY2Mzg3N2Q1OGFmMWRjZDI2YTY2NjcyYmQKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3Jh
ZGllbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1ncmFkaWVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3YjBiODkyLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20t
eDEtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS14MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkN2U2Zjg1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14
MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMjll
MmUxZDc4ZjVkZGU1ZDVjODJlNmJlZjU0ZTdmNGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teDEtcHJvcC1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teDEtcHJvcC1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiYzZkOTguLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXgxLXByb3AtZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC1zdmdkb20teDItcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzNGMwMWQ2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotZDA5OWNjZDJhYzJjZWVhYTNlMzlmOWI4OGM3ZDM0ODEKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdk
b20teDItcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20t
eDItcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE4NjE1
NmIuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9t
LXgyLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2EwOTgwLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMTI5NDdmYTVmMDNkNjQwNDkxMGI0ZjJmYjdkZDM5
ODgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRp
ZW50RWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU0YTVlZTYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQtc3ZnZG9tLXkxLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teTItcHJvcC1leHBl
Y3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiODNjNmExLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotY2JmMmVkMGVhOGUzOWIx
ZDBhNWY0OWYzYzU2NWViZTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teTItcHJvcC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teTItcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmNjdjNTYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXkyLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlckhl
aWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJI
ZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjVlNmFkYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlckhlaWdo
dC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZTRi
NmJhZGFmZTJlYmI3ZDgyZThkYjI5ZDc4MDkyZmIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlckhlaWdodC1hdHRyLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VySGVpZ2h0LWF0dHItZXhwZWN0ZWQu
cG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MmEzNjBkLi4wMDAwMDAwCkJpbmFy
eSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VySGVpZ2h0LWF0dHItZXhwZWN0ZWQu
cG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9t
LW1hcmtlclVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9t
LW1hcmtlclVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDZlYTdlNjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJr
ZXJVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotNWRhMjdjODY3YjFjNDkyOGJiMzdjYjAxYThjNTc5NjcKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlclVuaXRzLWF0dHIt
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJVbml0cy1hdHRyLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q5NTlmZS4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlclVuaXRzLWF0dHItZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQt
ZG9tLW1hcmtlcldpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQt
ZG9tLW1hcmtlcldpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDlhYzkwY2QuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1t
YXJrZXJXaWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotYjk4Yzk0YjkyOGU0ZjU1YWIyZGQwYzUxMGM0ZWEyOGQKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlcldpZHRoLWF0
dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJXaWR0aC1hdHRyLWV4
cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTVlMDViMi4uMDAwMDAw
MApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlcldpZHRoLWF0dHItZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1l
bnQtZG9tLW9yaWVudC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRv
bS1vcmllbnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjZlMWFlMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW9yaWVudC1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYTJiNzhm
MWFjMjc4MjFhNmEwNzQzYmRlMjZjYjFhMjUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW9yaWVudC1hdHRyLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFya2VyRWxlbWVudC1kb20tb3JpZW50LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1ZTk0NWIwLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFy
a2VyRWxlbWVudC1kb20tb3JpZW50LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlm
ZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlgtYXR0ci1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWC1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzBiN2EwLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFya2VyRWxlbWVudC1kb20tcmVmWC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotZWJlZTY1ZWZiMWNhN2ZmNWJiN2U2OGQ4ZGZkOGNlYmQKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJl
ZlgtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlgtYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzMmEyMjUuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1yZWZYLWF0dHItZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJl
ZlktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWS1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNzUzNDI0
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWS1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOTFiMjNkY2M4ZjA0MjQzMzNkMzg5
YjllYzFlOTA5ZWIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01h
cmtlckVsZW1lbnQtZG9tLXJlZlktYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQt
ZG9tLXJlZlktYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY0Yzg3MjMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1yZWZZ
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01h
cmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlckhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJIZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUzYWZiYS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlckhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNTcwZmFmZDcxZjk2NzJkZDQzNWIwMzJjNjBh
ZDk3MDkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVs
ZW1lbnQtc3ZnZG9tLW1hcmtlckhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxl
bWVudC1zdmdkb20tbWFya2VySGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5MjQwMTVjLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2Vy
RWxlbWVudC1zdmdkb20tbWFya2VySGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlclVuaXRz
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlclVu
aXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDUyNGIxNGMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJVbml0
cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOTQy
NjlmYTgwNmRhNTY4M2UxMzNlYzUzNjA5ZTk4NjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlclVuaXRzLXByb3AtZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJVbml0cy1wcm9wLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI3OTVhZC4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlclVuaXRzLXByb3AtZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1l
bnQtc3ZnZG9tLW1hcmtlcldpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVs
ZW1lbnQtc3ZnZG9tLW1hcmtlcldpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMWE4ZTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVt
ZW50LXN2Z2RvbS1tYXJrZXJXaWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotYjlkNTBhYjU1OTg1OTZhNDJkOTljYjVkMDA4YTliZGIKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9t
LW1hcmtlcldpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1t
YXJrZXJXaWR0aC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMGU3YzdlYS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9t
LW1hcmtlcldpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudEFuZ2xlLXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudEFuZ2xlLXByb3AtZXhwZWN0
ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5OWIxYmEuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1vcmllbnRBbmdsZS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNDQxOTM5OGU4OTU1OWRiYzU4
N2FjYzc1MjdkYmQ3NzAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudEFuZ2xlLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXJrZXJFbGVtZW50LXN2Z2RvbS1vcmllbnRBbmdsZS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg3ZDEwZi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudEFuZ2xlLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVu
dFR5cGUtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3Jp
ZW50VHlwZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NTlmZDI5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50
VHlwZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
NjQ0ODczNTMyM2M5NzVlZjY0ZTdlZTk5NmY2MDIzZGYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudFR5cGUtcHJvcC1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudFR5cGUtcHJvcC1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxZTMyMDYuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1vcmllbnRUeXBlLXByb3AtZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1l
bnQtc3ZnZG9tLXJlZlgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1z
dmdkb20tcmVmWC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwYTQ0YTA3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVm
WC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMTYz
NzAzNDAyZDEyZmI4MTg2NGJjYWM4ZTI2NjU1MzQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlgtcHJvcC1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiOGZlY2UuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1yZWZYLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlktcHJvcC1l
eHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWS1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjJlNjNmLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWS1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYWM4NDcwZWRkY2FjYmUzYWE2YWE5ZDg2
MGJjZTg4NjUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtl
ckVsZW1lbnQtc3ZnZG9tLXJlZlktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQt
c3ZnZG9tLXJlZlktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDVjODFiN2UuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2Rv
bS1yZWZZLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQW5nbGUtY2FsbC1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BbmdsZS1jYWxsLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjVlNzI2Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BbmdsZS1jYWxs
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYjRkZjI4NWFi
ZDhkM2U1NmU4MzQ4OWU5YWE4OTkyZWIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQW5nbGUtY2FsbC1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQW5nbGUtY2FsbC1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4NDc1NjAuLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRPcmllbnRUb0FuZ2xl
LWNhbGwtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01h
cmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQXV0by1jYWxsLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRPcmllbnRUb0F1dG8tY2FsbC1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U4MzkyYS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQXV0by1jYWxsLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMWEzMDk5NGE3MmRhYmQzYTc2
MThjOWM0ZWIwMzIxMjkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQXV0by1jYWxsLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BdXRvLWNhbGwtZXhwZWN0ZWQucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOTc5YTg0Li4wMDAwMDAwCkJpbmFyeSBm
aWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BdXRvLWNhbGwtZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRv
bS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLWhlaWdo
dC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
MTA4Njc5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYzZkNzcyYTRmZDBlMTdl
Yjc2OTk4NDdhZjVlYmQxZjUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR01hc2tFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVt
ZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEzOTVjOGQuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20t
aGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR01hc2tFbGVtZW50LWRvbS1tYXNrQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5MGMzMjguLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXNrRWxlbWVudC1kb20tbWFza0NvbnRlbnRVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZWFjMWMwMTgzMWFhOTYzYmI4M2UxYzIw
ZDAxYTU3NDkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tF
bGVtZW50LWRvbS1tYXNrQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxl
bWVudC1kb20tbWFza0NvbnRlbnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTFiZmVkMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tF
bGVtZW50LWRvbS1tYXNrQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrVW5pdHMtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLW1hc2tVbml0cy1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTI1OTZhLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLW1hc2tVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMjQyMzljMmNkMTQ5ZjUzMDFjMTIzOGFj
ZDI4NzFjMTEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tF
bGVtZW50LWRvbS1tYXNrVW5pdHMtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRv
bS1tYXNrVW5pdHMtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ3MGM2YWUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20tbWFz
a1VuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR01hc2tFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNr
RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmIyMjQzNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS13
aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
ZGFhYzE0ZGVkMDY3YzNhMTg5MTc1MTljNjc1YWViNTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3NTM0NDBmLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFz
a0VsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0g
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR01hc2tFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFiNDc5ZGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1k
b20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
YTdmNTgyZGYzZWRmMGMwNDY4MTBjYWZhYzk2MmViYjAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdNYXNrRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOTZlZWQ5ZC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50
LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR01hc2tFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVt
ZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJiYTBlNjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20teS1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZTJlMTQ5YmYyNGU2
NGRlZTIzZDJkODUxYjNlMTBiNjIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hc2tFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVu
dC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OGI4ZGIxZC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS15LWF0dHIt
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVt
ZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQt
c3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMDdmNWE4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLWhl
aWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
N2M3NDhiM2FhZWZlMTNhNDIyZGQ3YWEzNmMyYjJhOWIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwNjM0YzcuLjAwMDAwMDAKQmluYXJ5IGZpbGVz
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXNrRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrQ29udGVu
dFVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNr
Q29udGVudFVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI5OGI0MTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20tbWFz
a0NvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotNWI3YTc0MjQzNTY0ZDM1ODg2MTk4YzE4NWY3OWYwYjUKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrQ29udGVu
dFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20tbWFza0NvbnRl
bnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZWI4NGEzYy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNr
Q29udGVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOGNiYTEwLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNGYyOTE5ZmQ2NGQ0ZTVhNDc2ZDVhMDJjYzgyM2Yz
NGMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50
LXN2Z2RvbS1tYXNrVW5pdHMtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2Rv
bS1tYXNrVW5pdHMtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk3NWNjYzYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20t
bWFza1VuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdNYXNrRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBhNWRiZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVt
ZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotN2IyN2IzZTNiOWJiMGQ4ZjRkNDhjYWExZjc5N2VjOWQKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS13aWR0aC1w
cm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2MzNWYyLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS14
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMTFjZTMuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZjExMjBiZDVjNzlmZTQ3YjY3NDM0Yzg4MjNh
NzU4M2EKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVt
ZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20teC1w
cm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2M0NDEyMS4u
MDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2
Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS15LXBy
b3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1MTQy
ZWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNzE2NjI4YjEzM2RlZDkyNDY2N2U2
NDA0MDBmOTMwZDYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01h
c2tFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdk
b20teS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzQy
OWU4ZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS15LXByb3At
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1l
bnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiZTJlZDJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLWhl
aWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
MmVhNWM3ODlmZDQyYzQwYThkZjViMWM5NzZhM2M3YWEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhM2JhZWQuLjAwMDAwMDAKQmluYXJ5IGZpbGVz
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdQYXR0ZXJuRWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuQ29u
dGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1w
YXR0ZXJuQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwZTIwOGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1k
b20tcGF0dGVybkNvbnRlbnRVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotZjY4NTZjYjEzZGJiOTg0MjExZTIzODU5YTliODQxZTcKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1w
YXR0ZXJuQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1k
b20tcGF0dGVybkNvbnRlbnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzVlNzBjYS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LWRvbS1wYXR0ZXJuQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVHJh
bnNmb3JtLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0
ZXJuVHJhbnNmb3JtLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVhZmFjYWYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20tcGF0
dGVyblRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotMTIyNTFmNzQyZGY1NGQ2NmEzYTA2MzY3MzVlMjdmNTQKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVHJh
bnNmb3JtLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20tcGF0dGVyblRy
YW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTE2MTA2YS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0
ZXJuVHJhbnNmb3JtLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVW5pdHMtYXR0ci1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Vbml0cy1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NTVlYTcyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Vbml0cy1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNTg1YTM1ZjRkNDE5ZjVhYjczNGI1
ZWQ1NmQzZDBiMmEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Bh
dHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVW5pdHMtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRl
cm5FbGVtZW50LWRvbS1wYXR0ZXJuVW5pdHMtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQwNDhmYWMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0
ZXJuRWxlbWVudC1kb20tcGF0dGVyblVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQwN2FiYS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYTU1ZjUwNzkxZTQ0NWU2YzgzMThiYzg4OTFi
Njg5MmMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9t
LXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NjM2OWI2Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXdpZHRo
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Bh
dHRlcm5FbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVt
ZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZiYzk2ZjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teC1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNjhjOTJkNWIx
NWNlODQxNGNkZmY2YzE2NzFlMmZiYjEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0
ZXJuRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDQ0YWUwMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50
LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1BhdHRlcm5FbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRl
cm5FbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM3NjU3OTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20t
eS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMGI1
ZDVjZDBlN2U5ZjE1ZDhjYjgxN2NiOGQzMDllMjYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdQYXR0ZXJuRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODUwN2RmMS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMThiMDNlLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMjVkNTQyMGU5OTk1YTIwNjU4NGU1YTk0NjQ0ZmM1
OTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVt
ZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2
Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDg0NTQ5NzkuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdk
b20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuQ29udGVudFVuaXRzLXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuQ29udGVudFVu
aXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDc0N2YyOTIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVybkNv
bnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotY2FmMTFjZjkyODhmNDhiMmZmNzMxYWIzN2ZkNjAyYTcKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuQ29u
dGVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0
dGVybkNvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNmVmYWI3Zi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50
LXN2Z2RvbS1wYXR0ZXJuQ29udGVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVHJh
bnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1w
YXR0ZXJuVHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDgzZTI5MmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdk
b20tcGF0dGVyblRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwK
QEAgLTEgKzAsMCBAQAotNTg2ZTRkMjAzNGNiZDE0MDBlZWUzYTkwMWQwZTQyZDcKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1w
YXR0ZXJuVHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdk
b20tcGF0dGVyblRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjNlMGZhYy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVt
ZW50LXN2Z2RvbS1wYXR0ZXJuVHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVW5p
dHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRl
cm5Vbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3OTBmZThjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRl
cm5Vbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA
QAotMDUyYmY1NDQwZTExMGU1M2Y0OGE0ZDA2MTNlYjIwMzgKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVW5pdHMt
cHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVW5pdHMt
cHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2ZjU0MzQu
LjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblVu
aXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1BhdHRlcm5FbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQ
YXR0ZXJuRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2Q1NGY4MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwK
QEAgLTEgKzAsMCBAQAotMzBiMTAyOGIwNzA0ZjE4OWQxMjMwOGRmNjRmYzg3ZDcKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS13
aWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXdpZHRoLXBy
b3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMjY1M2YzLi4w
MDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3At
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50
LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJkOGY3MzEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20teC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotN2UyODYw
ZTVkNjAzMmUxYzI4ZTcxZTE1ZWE5ZWNlMTcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdQYXR0ZXJuRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDNlYjIzOC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRl
cm5FbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZjk2NDkuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQ
YXR0ZXJuRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251
bGwKQEAgLTEgKzAsMCBAQAotYzgzZDBkNjM2ZDZkMDgzMjMwMDliNzIxMmQzYmYwOWIKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2Rv
bS15LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20teS1wcm9wLWV4
cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjM5MTM1ZS4uMDAwMDAw
MApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQu
cG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxZTk2OWM2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRv
bS1jeC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
OWI0Y2VlZTk0OTllYTdlMDliMzQxMGI1MDE5ZjNjZTcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3gtYXR0ci1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwOWUxNjIuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWN4LWF0dHItZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC1kb20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LWRvbS1jeS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwYWQyZjZmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1j
eS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMmJi
YjhhMWQ3MTQyNGZkMGY4YjM0ODUxZDg4M2E4NzIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzZTI3MWQuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1k
b20tZngtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRv
bS1meC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMWVjYjViLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meC1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMmQ3NTQ2
MDI0OThkZGE4NzY5ZWU0OTc3YWYyNGY3NDgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZngtYXR0ci1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZngtYXR0ci1leHBlY3RlZC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxNTY4ZjEuLjAwMDAwMDAKQmluYXJ5IGZpbGVz
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWZ4LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
ZnktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1m
eS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
MmNiNDc1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meS1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotN2RmMjlmNTI3
YmY2Nzk4NTM4YWFlOTRhNTJmNjI1MTMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZnktYXR0ci1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZnktYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmZjg4MzYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWZ5LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3Jh
ZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTIyOTZlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotN2MxODJkMWVkYjQxMzQ5MWYyOTZiOGQ4
NTBmNmEwNzAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3MTlmOTIuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWdyYWRpZW50VHJhbnNm
b3JtLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLWdyYWRpZW50VW5pdHMtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE2MzAzNC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYzQ2YWEz
YzY1NTk0NWZiM2QyYWRlZGZiODk2ZjVlNDYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRy
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRz
LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWQyYzI0
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFk
aWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tci1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLXItYXR0ci1leHBlY3RlZC5jaGVja3N1bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQyNWZjNy4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC1kb20tci1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotMmVmMDExYzM5MDYxOWU5YzZmYjQ2ZmUwNjRmM2E0N2QKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC1kb20tci1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRv
bS1yLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Njgx
MGY3Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1y
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhODNkZGI5Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotY2QwZGEwYWNjMTYyODBmMWY3OGExZTU1ZjlmNjAwZWIK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZiMTk4ZjAuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZWI1NGIyLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOTIzMGVhYzkzMTBmNjgzNzky
YWYxZDY3OWI4YThjNmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwMmE5MjIuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2
L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20t
ZngtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS1meC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiNDgyNGM3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1m
eC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMTA1
OGI1OTZkODE2M2Q0MjcxZmU2NGM0NzZkNjUyNWEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZngtcHJvcC1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZngtcHJvcC1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyZDU0NWYuLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWZ4LXByb3AtZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC1zdmdkb20tZnktcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LXN2Z2RvbS1meS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0ODAyZWI3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1meS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAg
LTEgKzAsMCBAQAotZDc4MDllNTI2ZTdlNDlmMzY2OWYzMWYzYTM0YzE3YWUKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdk
b20tZnktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20t
ZnktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEzNGJj
MzEuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9t
LWZ5LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBl
Y3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRy
YW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MjEwYjk0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwK
QEAgLTEgKzAsMCBAQAotNjcyNjQ3NjJjOGRlZTBkMzRkMmQ5ZGNmMTlkMjEzMTAKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1z
dmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0MGUzZWEuLjAwMDAwMDAKQmluYXJ5IGZpbGVz
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3At
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDcwNGNlOS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYWYxOTQ1
ZGVhOWVjMmM5ODY0ODQ5ZGI3MDk1YjFjMGMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1w
cm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVu
dFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
MGQxMDQ5Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1ncmFkaWVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQyM2IwYS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMzY0NmJkMWUzOGU3YzFjYmIz
NjQ1MmE3MzYzZDViYzgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkOGM3MzIxLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251
bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjMzYzJlLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMWVhMGUyMzBmYmQxOWI4N2IxODEyZDM0ZjQ0NWVlYWIK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRv
bS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0
ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYTFhODQuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRv
bS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20td2lkdGgt
YXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQz
NGQ4Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMTMwYzlmMTEzYWQyYjc1MmI2
MjI2YjAyMTE1ZWY1MjIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JlY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQt
ZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzYjI5ODVkLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXdpZHRo
LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jl
Y3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRv
bS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGYzMmY1YzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMmY5NWM2ODNlYTA3YTIwMzVj
Njc2YTEwN2YxNjU3NDgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JlY3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20t
eC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhjODA4
NS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0
ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRv
bS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS15LWF0dHItZXhw
ZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmM2Q0ZTUuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisr
KyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZWNiN2ExMzk4ODczYmY4NWNhNjNjNDIyZTc4NWFh
MjQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50
LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGRkZTEyYi4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGFuZCAv
ZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQt
cHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzY3MTRk
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNTc3ZDIwNWFjNTA1YmMzZjk2
OGUyOGJlYjRlODY4YmQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JlY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVt
ZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDJjN2I0ZWUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1z
dmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSZWN0RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTcxZTM2OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RF
bGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwK
QEAgLTEgKzAsMCBAQAotNDFmMzg0MjZkOGEzMmUxODM1OTVkZjkwYTJjZTVjZmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS13aWR0
aC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhw
ZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWM1ZTRmLi4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQu
cG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2Rv
bS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS14LXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhYjNmODUu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZTcwZDA0MTAxMDM4OWJhYzA1YTRiZDQ0
OGUwNGE0NjAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RF
bGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20t
eC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDlhN2Ni
ZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhw
ZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50
LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS15
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1
NjEwYTYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotYmVjMjI0N2YyZDMxMGE2NzRh
NmU0N2Q2YmJjOWIwN2QKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JlY3RFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1z
dmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTUxYTk5Ni4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS15LXBy
b3AtZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RSZWZF
bGVtZW50LWRvbS1ocmVmLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RSZWZFbGVtZW50LWRv
bS1ocmVmLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDlkZmQzMzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUUmVmRWxlbWVudC1kb20taHJlZi1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZWM5MTkxYzI5MTBj
OGYwMWY0OGU4MGNmOTA1Y2JmNzMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1RSZWZFbGVtZW50LWRvbS1ocmVmLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUUmVmRWxl
bWVudC1kb20taHJlZi1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYWZiODMwMy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RSZWZFbGVtZW50LWRvbS1o
cmVmLWF0dHItZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1RleHRFbGVtZW50LWRvbS10cmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4
dEVsZW1lbnQtZG9tLXRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZjczYTI2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQt
ZG9tLXRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEg
KzAsMCBAQAotMjJiOGRmMWVlYmFjNmM4ZTQxZTVhYmRmNzAzMjRhMWQKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LWRvbS10cmFuc2Zvcm0tYXR0
ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LWRvbS10cmFuc2Zvcm0tYXR0ci1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyMWZmYmYuLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdUZXh0RWxlbWVudC1kb20tdHJhbnNmb3JtLWF0dHItZXhwZWN0ZWQucG5n
IGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS10
cmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtc3ZnZG9tLXRy
YW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4YjE1YzkzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtc3ZnZG9tLXRyYW5zZm9y
bS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotNWZk
NThjMTYyZDllMDlhYmYyNzc2ZTA5YjQ2ZjQ3N2MKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS10cmFuc2Zvcm0tcHJvcC1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS10cmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1OTA0ZjAuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdUZXh0RWxlbWVudC1zdmdkb20tdHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQucG5nIGFu
ZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXByZXNl
cnZlQXNwZWN0UmF0aW8tcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLW1hYy9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdk
b20tcHJlc2VydmVBc3BlY3RSYXRpby1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkY2FkNDdmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLW1hYy9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1z
dmdkb20tcHJlc2VydmVBc3BlY3RSYXRpby1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotYzRmY2JjMjJjZGZlMGY5YTkyZTdhNGQ4YzgzNTU4YzYKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjNDlkZDMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotY2YyNDRlYTJj
OGE0N2E5MGRlZWNhNDEzMDA2ZDUwYTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblRyYW5zZm9ybS1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5UcmFuc2Zvcm0tcHJv
cC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDBhYTJm
Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblRyYW5zZm9ybS1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMWNlODVi
ZGJlZjNhOWExYWUxNzdmNmU0MGU3NzQyODUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3Jt
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1t
YWMvc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdy
YWRpZW50VHJhbnNmb3JtLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDg2YzFiZGUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0tbWFjL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotMzBmMzk5ZWFhYTNkMWNhZmZlOTBhOGY5YzQ2NjdkOWQKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhjNGQ0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZS1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYyIEBACitUZXN0cyB0aGF0IHJl
c291cmNlcyBwYW5lbCBzaG93cyBmb3JtIGRhdGEgcGFyYW1ldGVycy4KKworICAKKworeworICAg
IHBhZ2VyZWYgOiAiYWJvdXQ6YmxhbmsiCisgICAgc3RhcnRlZERhdGVUaW1lIDogPHN0cmluZz4K
KyAgICB0aW1lIDogPG51bWJlcj4KKyAgICByZXF1ZXN0IDogeworICAgICAgICBtZXRob2QgOiAi
UE9TVCIKKyAgICAgICAgdXJsIDogImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVz
b3VyY2VzL3Jlc291cmNlLWZvcm0tZGF0YS1yZWNlaXZlci1pZnJhbWUuaHRtbD9xdWVyeVBhcmFt
MT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFtMj0iCisgICAgICAgIGhlYWRlcnMgOiA8b2JqZWN0Pgor
ICAgICAgICBoZWFkZXJzU2l6ZSA6IC0xCisgICAgICAgIGJvZHlTaXplIDogLTEKKyAgICAgICAg
cXVlcnlTdHJpbmcgOiB7CisgICAgICAgICAgICAwIDogeworICAgICAgICAgICAgICAgIG5hbWUg
OiAicXVlcnlQYXJhbTEiCisgICAgICAgICAgICAgICAgdmFsdWUgOiAicXVlcnlWYWx1ZTEiCisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAxIDogeworICAgICAgICAgICAgICAgIG5hbWUgOiAi
cXVlcnlQYXJhbTIiCisgICAgICAgICAgICAgICAgdmFsdWUgOiAiIgorICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHBvc3REYXRhIDogeworICAgICAgICAgICAgbWltZVR5cGUgOiAi
YXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIgorICAgICAgICAgICAgdGV4dCA6ICJm
b3JtUGFyYW0xPWZvcm1WYWx1ZTEmZm9ybVBhcmFtMj0iCisgICAgICAgICAgICBwYXJhbXMgOiB7
CisgICAgICAgICAgICAgICAgMCA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJmb3Jt
UGFyYW0xIgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA6ICJmb3JtVmFsdWUxIgorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAxIDogeworICAgICAgICAgICAgICAgICAgICBu
YW1lIDogImZvcm1QYXJhbTIiCisgICAgICAgICAgICAgICAgICAgIHZhbHVlIDogIiIKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmVzcG9u
c2UgOiB7CisgICAgICAgIHN0YXR1cyA6IDIwMAorICAgICAgICBzdGF0dXNUZXh0IDogIk9LIgor
ICAgICAgICBoZWFkZXJzIDogPG9iamVjdD4KKyAgICAgICAgY29udGVudCA6IHsKKyAgICAgICAg
ICAgIHNpemUgOiAzMAorICAgICAgICAgICAgbWltZVR5cGUgOiAidGV4dC9odG1sIgorICAgICAg
ICB9CisgICAgICAgIHJlZGlyZWN0VVJMIDogIiIKKyAgICAgICAgaGVhZGVyc1NpemUgOiAtMQor
ICAgICAgICBib2R5U2l6ZSA6IDMwCisgICAgfQorICAgIHRpbWluZ3MgOiB7CisgICAgICAgIGJs
b2NrZWQgOiAtMQorICAgICAgICBkbnMgOiAtMQorICAgICAgICBjb25uZWN0IDogLTEKKyAgICAg
ICAgc2VuZCA6IC0xCisgICAgICAgIHdhaXQgOiA8bnVtYmVyPgorICAgICAgICByZWNlaXZlIDog
PG51bWJlcj4KKyAgICAgICAgc3NsIDogLTEKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3Zn
LWNvbnRhaW5lci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzVkNGY3NS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1t
b3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAt
MSArMCwwIEBACi0yNGYwZDY3OTJkZDJmMzZjNWM4ODVhNDEyMzY4YmE2NgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3Zl
LW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1N2E1MDI4Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1leHBl
Y3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5l
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1
c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMTk5MDQ2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5l
ci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi1sYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDANCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwDQot
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDExDQotICBSZW5kZXJCbG9jayB7aHRtbH0gYXQgKDAs
MCkgc2l6ZSA4MDB4NDExDQotICAgIFJlbmRlckJvZHkge2JvZHl9IGF0ICgwLDApIHNpemUgODAw
eDQxMQ0KLSAgICAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDUzLDMyKSBzaXplIDM1M3gzNzQN
Ci0gICAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDMwMywzMDMpIHNpemUgMTAweDEw
MA0KLSAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJjbGV9IGF0ICgzMDMsMzAzKSBzaXplIDEwMHgx
MDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTQwMC4wMCwz
NTAuMDAgTDM5OS45MCwzNTMuMTQgTDM5OS42MSwzNTYuMjcgTDM5OS4xMSwzNTkuMzcgTDM5OC40
MywzNjIuNDMgTDM5Ny41NSwzNjUuNDUgTDM5Ni40OSwzNjguNDEgTDM5NS4yNCwzNzEuMjkgTDM5
My44MiwzNzQuMDkgTDM5Mi4yMiwzNzYuNzkgTDM5MC40NSwzNzkuMzkgTDM4OC41MywzODEuODcg
TDM4Ni40NSwzODQuMjMgTDM4NC4yMywzODYuNDUgTDM4MS44NywzODguNTMgTDM3OS4zOSwzOTAu
NDUgTDM3Ni43OSwzOTIuMjIgTDM3NC4wOSwzOTMuODIgTDM3MS4yOSwzOTUuMjQgTDM2OC40MSwz
OTYuNDkgTDM2NS40NSwzOTcuNTUgTDM2Mi40MywzOTguNDMgTDM1OS4zNywzOTkuMTEgTDM1Ni4y
NywzOTkuNjEgTDM1My4xNCwzOTkuOTAgTDM1MC4wMCw0MDAuMDAgTDM0Ni44NiwzOTkuOTAgTDM0
My43MywzOTkuNjEgTDM0MC42MywzOTkuMTEgTDMzNy41NywzOTguNDMgTDMzNC41NSwzOTcuNTUg
TDMzMS41OSwzOTYuNDkgTDMyOC43MSwzOTUuMjQgTDMyNS45MSwzOTMuODIgTDMyMy4yMSwzOTIu
MjIgTDMyMC42MSwzOTAuNDUgTDMxOC4xMywzODguNTMgTDMxNS43NywzODYuNDUgTDMxMy41NSwz
ODQuMjMgTDMxMS40NywzODEuODcgTDMwOS41NSwzNzkuMzkgTDMwNy43OCwzNzYuNzkgTDMwNi4x
OCwzNzQuMDkgTDMwNC43NiwzNzEuMjkgTDMwMy41MSwzNjguNDEgTDMwMi40NSwzNjUuNDUgTDMw
MS41NywzNjIuNDMgTDMwMC44OSwzNTkuMzcgTDMwMC4zOSwzNTYuMjcgTDMwMC4xMCwzNTMuMTQg
TDMwMC4wMCwzNTAuMDAgTDMwMC4xMCwzNDYuODYgTDMwMC4zOSwzNDMuNzMgTDMwMC44OSwzNDAu
NjMgTDMwMS41NywzMzcuNTcgTDMwMi40NSwzMzQuNTUgTDMwMy41MSwzMzEuNTkgTDMwNC43Niwz
MjguNzEgTDMwNi4xOCwzMjUuOTEgTDMwNy43OCwzMjMuMjEgTDMwOS41NSwzMjAuNjEgTDMxMS40
NywzMTguMTMgTDMxMy41NSwzMTUuNzcgTDMxNS43NywzMTMuNTUgTDMxOC4xMywzMTEuNDcgTDMy
MC42MSwzMDkuNTUgTDMyMy4yMSwzMDcuNzggTDMyNS45MSwzMDYuMTggTDMyOC43MSwzMDQuNzYg
TDMzMS41OSwzMDMuNTEgTDMzNC41NSwzMDIuNDUgTDMzNy41NywzMDEuNTcgTDM0MC42MywzMDAu
ODkgTDM0My43MywzMDAuMzkgTDM0Ni44NiwzMDAuMTAgTDM1MC4wMCwzMDAuMDAgTDM1My4xNCwz
MDAuMTAgTDM1Ni4yNywzMDAuMzkgTDM1OS4zNywzMDAuODkgTDM2Mi40MywzMDEuNTcgTDM2NS40
NSwzMDIuNDUgTDM2OC40MSwzMDMuNTEgTDM3MS4yOSwzMDQuNzYgTDM3NC4wOSwzMDYuMTggTDM3
Ni43OSwzMDcuNzggTDM3OS4zOSwzMDkuNTUgTDM4MS44NywzMTEuNDcgTDM4NC4yMywzMTMuNTUg
TDM4Ni40NSwzMTUuNzcgTDM4OC41MywzMTguMTMgTDM5MC40NSwzMjAuNjEgTDM5Mi4yMiwzMjMu
MjEgTDM5My44MiwzMjUuOTEgTDM5NS4yNCwzMjguNzEgTDM5Ni40OSwzMzEuNTkgTDM5Ny41NSwz
MzQuNTUgTDM5OC40MywzMzcuNTcgTDM5OS4xMSwzNDAuNjMgTDM5OS42MSwzNDMuNzMgTDM5OS45
MCwzNDYuODYgWiJdDQotICAgICAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoNTYsMzUpIHNp
emUgMjg4eDE5IGNvbnRhaW5zIDEgY2h1bmsocykNCi0gICAgICAgICAgUmVuZGVyU1ZHSW5saW5l
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjg4eDE5DQotICAgICAgICAgICAgY2h1bmsgMSAo
bWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoNTYuMDAsNTAuMDApIHN0YXJ0T2Zmc2V0IDAg
ZW5kT2Zmc2V0IDQ5IHdpZHRoIDI4OC4wMDogIlRoZSBjaXJjbGUgc2hvdWxkIHN0YXkgaW4gdGhl
IGJvdHRvbS1yaWdodCBjb3JuZXIiDQotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwDQotICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwDQot
Y2FyZXQ6IHBvc2l0aW9uIDI1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAzIHt0ZXh0fSBv
ZiBjaGlsZCAxIHtzdmd9IG9mIGJvZHkNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3Rh
bmRhbG9uZS1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFuZGFsb25lLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWQ0Zjc1Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9t
L21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3Vt
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMjRmMGQ2NzkyZGQyZjM2YzVjODg1YTQxMjM2
OGJhNjYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250
YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRhbG9u
ZS1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3YTUwMjguLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLXN0YW5kYWxvbmUtZXhwZWN0ZWQu
cG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3Rh
bmRhbG9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZDA2NDcuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92
ZS1vbi1zdmctY29udGFpbmVyLXN0YW5kYWxvbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwDQotICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMA0KLWxheWVyIGF0ICgwLDApIHNpemUgNDA2eDQwNg0K
LSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoNTMsMzIpIHNpemUgMzUzeDM3NA0KLSAgICBSZW5k
ZXJTVkdDb250YWluZXIge2d9IGF0ICgzMDMsMzAzKSBzaXplIDEwMHgxMDANCi0gICAgICBSZW5k
ZXJQYXRoIHtjaXJjbGV9IGF0ICgzMDMsMzAzKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwODAwMF19XSBbZGF0YT0iTTQwMC4wMCwzNTAuMDAgTDM5OS45MCwzNTMu
MTQgTDM5OS42MSwzNTYuMjcgTDM5OS4xMSwzNTkuMzcgTDM5OC40MywzNjIuNDMgTDM5Ny41NSwz
NjUuNDUgTDM5Ni40OSwzNjguNDEgTDM5NS4yNCwzNzEuMjkgTDM5My44MiwzNzQuMDkgTDM5Mi4y
MiwzNzYuNzkgTDM5MC40NSwzNzkuMzkgTDM4OC41MywzODEuODcgTDM4Ni40NSwzODQuMjMgTDM4
NC4yMywzODYuNDUgTDM4MS44NywzODguNTMgTDM3OS4zOSwzOTAuNDUgTDM3Ni43OSwzOTIuMjIg
TDM3NC4wOSwzOTMuODIgTDM3MS4yOSwzOTUuMjQgTDM2OC40MSwzOTYuNDkgTDM2NS40NSwzOTcu
NTUgTDM2Mi40MywzOTguNDMgTDM1OS4zNywzOTkuMTEgTDM1Ni4yNywzOTkuNjEgTDM1My4xNCwz
OTkuOTAgTDM1MC4wMCw0MDAuMDAgTDM0Ni44NiwzOTkuOTAgTDM0My43MywzOTkuNjEgTDM0MC42
MywzOTkuMTEgTDMzNy41NywzOTguNDMgTDMzNC41NSwzOTcuNTUgTDMzMS41OSwzOTYuNDkgTDMy
OC43MSwzOTUuMjQgTDMyNS45MSwzOTMuODIgTDMyMy4yMSwzOTIuMjIgTDMyMC42MSwzOTAuNDUg
TDMxOC4xMywzODguNTMgTDMxNS43NywzODYuNDUgTDMxMy41NSwzODQuMjMgTDMxMS40NywzODEu
ODcgTDMwOS41NSwzNzkuMzkgTDMwNy43OCwzNzYuNzkgTDMwNi4xOCwzNzQuMDkgTDMwNC43Niwz
NzEuMjkgTDMwMy41MSwzNjguNDEgTDMwMi40NSwzNjUuNDUgTDMwMS41NywzNjIuNDMgTDMwMC44
OSwzNTkuMzcgTDMwMC4zOSwzNTYuMjcgTDMwMC4xMCwzNTMuMTQgTDMwMC4wMCwzNTAuMDAgTDMw
MC4xMCwzNDYuODYgTDMwMC4zOSwzNDMuNzMgTDMwMC44OSwzNDAuNjMgTDMwMS41NywzMzcuNTcg
TDMwMi40NSwzMzQuNTUgTDMwMy41MSwzMzEuNTkgTDMwNC43NiwzMjguNzEgTDMwNi4xOCwzMjUu
OTEgTDMwNy43OCwzMjMuMjEgTDMwOS41NSwzMjAuNjEgTDMxMS40NywzMTguMTMgTDMxMy41NSwz
MTUuNzcgTDMxNS43NywzMTMuNTUgTDMxOC4xMywzMTEuNDcgTDMyMC42MSwzMDkuNTUgTDMyMy4y
MSwzMDcuNzggTDMyNS45MSwzMDYuMTggTDMyOC43MSwzMDQuNzYgTDMzMS41OSwzMDMuNTEgTDMz
NC41NSwzMDIuNDUgTDMzNy41NywzMDEuNTcgTDM0MC42MywzMDAuODkgTDM0My43MywzMDAuMzkg
TDM0Ni44NiwzMDAuMTAgTDM1MC4wMCwzMDAuMDAgTDM1My4xNCwzMDAuMTAgTDM1Ni4yNywzMDAu
MzkgTDM1OS4zNywzMDAuODkgTDM2Mi40MywzMDEuNTcgTDM2NS40NSwzMDIuNDUgTDM2OC40MSwz
MDMuNTEgTDM3MS4yOSwzMDQuNzYgTDM3NC4wOSwzMDYuMTggTDM3Ni43OSwzMDcuNzggTDM3OS4z
OSwzMDkuNTUgTDM4MS44NywzMTEuNDcgTDM4NC4yMywzMTMuNTUgTDM4Ni40NSwzMTUuNzcgTDM4
OC41MywzMTguMTMgTDM5MC40NSwzMjAuNjEgTDM5Mi4yMiwzMjMuMjEgTDM5My44MiwzMjUuOTEg
TDM5NS4yNCwzMjguNzEgTDM5Ni40OSwzMzEuNTkgTDM5Ny41NSwzMzQuNTUgTDM5OC40MywzMzcu
NTcgTDM5OS4xMSwzNDAuNjMgTDM5OS42MSwzNDMuNzMgTDM5OS45MCwzNDYuODYgWiJdDQotICAg
IFJlbmRlclNWR1RleHQge3RleHR9IGF0ICg1NiwzNSkgc2l6ZSAyODh4MTkgY29udGFpbnMgMSBj
aHVuayhzKQ0KLSAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDI4OHgxOQ0KLSAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAo
NTYuMDAsNTAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDQ5IHdpZHRoIDI4OC4wMDogIlRo
ZSBjaXJjbGUgc2hvdWxkIHN0YXkgaW4gdGhlIGJvdHRvbS1yaWdodCBjb3JuZXIiDQotY2FyZXQ6
IHBvc2l0aW9uIDI1IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAzIHt0ZXh0fSBvZiBjaGls
ZCAwIHtzdmd9IG9mIGRvY3VtZW50DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21v
dXNlLW1vdmUtb24tc3ZnLXJvb3QtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGIyODBjMTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWZkMjk1ZjVmNDNmNDMyM2Y2ODky
ZjZjNzdmY2U3YzY4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1z
dmctcm9vdC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWNiODhlOC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2
Zy1yb290LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1z
dmctcm9vdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2I2ODVhOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLWxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMA0KLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDANCi1sYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg0MTENCi0gIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBz
aXplIDgwMHg0MTENCi0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDAsMCkgc2l6ZSA4MDB4NDEx
DQotICAgICAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOTYsMzIpIHNpemUgMjE0eDIyNA0KLSAg
ICAgICAgUmVuZGVyUGF0aCB7Y2lyY2xlfSBhdCAoMTUwLDE1MCkgc2l6ZSAxMDB4MTAwIFtmaWxs
PXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW2RhdGE9Ik0yNDcuMDAsMTk3LjAwIEwy
NDYuOTAsMjAwLjE0IEwyNDYuNjEsMjAzLjI3IEwyNDYuMTEsMjA2LjM3IEwyNDUuNDMsMjA5LjQz
IEwyNDQuNTUsMjEyLjQ1IEwyNDMuNDksMjE1LjQxIEwyNDIuMjQsMjE4LjI5IEwyNDAuODIsMjIx
LjA5IEwyMzkuMjIsMjIzLjc5IEwyMzcuNDUsMjI2LjM5IEwyMzUuNTMsMjI4Ljg3IEwyMzMuNDUs
MjMxLjIzIEwyMzEuMjMsMjMzLjQ1IEwyMjguODcsMjM1LjUzIEwyMjYuMzksMjM3LjQ1IEwyMjMu
NzksMjM5LjIyIEwyMjEuMDksMjQwLjgyIEwyMTguMjksMjQyLjI0IEwyMTUuNDEsMjQzLjQ5IEwy
MTIuNDUsMjQ0LjU1IEwyMDkuNDMsMjQ1LjQzIEwyMDYuMzcsMjQ2LjExIEwyMDMuMjcsMjQ2LjYx
IEwyMDAuMTQsMjQ2LjkwIEwxOTcuMDAsMjQ3LjAwIEwxOTMuODYsMjQ2LjkwIEwxOTAuNzMsMjQ2
LjYxIEwxODcuNjMsMjQ2LjExIEwxODQuNTcsMjQ1LjQzIEwxODEuNTUsMjQ0LjU1IEwxNzguNTks
MjQzLjQ5IEwxNzUuNzEsMjQyLjI0IEwxNzIuOTEsMjQwLjgyIEwxNzAuMjEsMjM5LjIyIEwxNjcu
NjEsMjM3LjQ1IEwxNjUuMTMsMjM1LjUzIEwxNjIuNzcsMjMzLjQ1IEwxNjAuNTUsMjMxLjIzIEwx
NTguNDcsMjI4Ljg3IEwxNTYuNTUsMjI2LjM5IEwxNTQuNzgsMjIzLjc5IEwxNTMuMTgsMjIxLjA5
IEwxNTEuNzYsMjE4LjI5IEwxNTAuNTEsMjE1LjQxIEwxNDkuNDUsMjEyLjQ1IEwxNDguNTcsMjA5
LjQzIEwxNDcuODksMjA2LjM3IEwxNDcuMzksMjAzLjI3IEwxNDcuMTAsMjAwLjE0IEwxNDcuMDAs
MTk3LjAwIEwxNDcuMTAsMTkzLjg2IEwxNDcuMzksMTkwLjczIEwxNDcuODksMTg3LjYzIEwxNDgu
NTcsMTg0LjU3IEwxNDkuNDUsMTgxLjU1IEwxNTAuNTEsMTc4LjU5IEwxNTEuNzYsMTc1LjcxIEwx
NTMuMTgsMTcyLjkxIEwxNTQuNzgsMTcwLjIxIEwxNTYuNTUsMTY3LjYxIEwxNTguNDcsMTY1LjEz
IEwxNjAuNTUsMTYyLjc3IEwxNjIuNzcsMTYwLjU1IEwxNjUuMTMsMTU4LjQ3IEwxNjcuNjEsMTU2
LjU1IEwxNzAuMjEsMTU0Ljc4IEwxNzIuOTEsMTUzLjE4IEwxNzUuNzEsMTUxLjc2IEwxNzguNTks
MTUwLjUxIEwxODEuNTUsMTQ5LjQ1IEwxODQuNTcsMTQ4LjU3IEwxODcuNjMsMTQ3Ljg5IEwxOTAu
NzMsMTQ3LjM5IEwxOTMuODYsMTQ3LjEwIEwxOTcuMDAsMTQ3LjAwIEwyMDAuMTQsMTQ3LjEwIEwy
MDMuMjcsMTQ3LjM5IEwyMDYuMzcsMTQ3Ljg5IEwyMDkuNDMsMTQ4LjU3IEwyMTIuNDUsMTQ5LjQ1
IEwyMTUuNDEsMTUwLjUxIEwyMTguMjksMTUxLjc2IEwyMjEuMDksMTUzLjE4IEwyMjMuNzksMTU0
Ljc4IEwyMjYuMzksMTU2LjU1IEwyMjguODcsMTU4LjQ3IEwyMzEuMjMsMTYwLjU1IEwyMzMuNDUs
MTYyLjc3IEwyMzUuNTMsMTY1LjEzIEwyMzcuNDUsMTY3LjYxIEwyMzkuMjIsMTcwLjIxIEwyNDAu
ODIsMTcyLjkxIEwyNDIuMjQsMTc1LjcxIEwyNDMuNDksMTc4LjU5IEwyNDQuNTUsMTgxLjU1IEwy
NDUuNDMsMTg0LjU3IEwyNDYuMTEsMTg3LjYzIEwyNDYuNjEsMTkwLjczIEwyNDYuOTAsMTkzLjg2
IFoiXQ0KLSAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDk5LDM1KSBzaXplIDIwMngx
OSBjb250YWlucyAxIGNodW5rKHMpDQotICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDIwMngxOQ0KLSAgICAgICAgICAgIGNodW5rIDEgKG1pZGRsZSBh
bmNob3IpIHRleHQgcnVuIDEgYXQgKDk5LjUwLDUwLjAwKSBzdGFydE9mZnNldCAwIGVuZE9mZnNl
dCAzNCB3aWR0aCAyMDEuMDA6ICJUaGUgY2lyY2xlIHNob3VsZCBiZSBpbiB0aGUgbWlkZGxlIg0K
LSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MA0KLSAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MA0KLWNhcmV0OiBwb3NpdGlvbiAxNiBvZiBj
aGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMyB7dGV4dH0gb2YgY2hpbGQgMSB7c3ZnfSBvZiBib2R5
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0
b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1v
bi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiMjgwYzE4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9u
ZS1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWZkMjk1ZjVm
NDNmNDMyM2Y2ODkyZjZjNzdmY2U3YzY4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91
c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3Qt
c3RhbmRhbG9uZS1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlj
Yjg4ZTguLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFu
ZGFsb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9uZS1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyYzA4NzAuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1z
dmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAs
MCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwDQotICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMA0KLWxheWVyIGF0ICgwLDApIHNpemUgNDA2eDQwNg0KLSAgUmVuZGVyU1ZH
Um9vdCB7c3ZnfSBhdCAoOTYsMzIpIHNpemUgMjE0eDIyNA0KLSAgICBSZW5kZXJQYXRoIHtjaXJj
bGV9IGF0ICgxNTAsMTUwKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwODAwMF19XSBbZGF0YT0iTTI0Ny4wMCwxOTcuMDAgTDI0Ni45MCwyMDAuMTQgTDI0Ni42MSwy
MDMuMjcgTDI0Ni4xMSwyMDYuMzcgTDI0NS40MywyMDkuNDMgTDI0NC41NSwyMTIuNDUgTDI0My40
OSwyMTUuNDEgTDI0Mi4yNCwyMTguMjkgTDI0MC44MiwyMjEuMDkgTDIzOS4yMiwyMjMuNzkgTDIz
Ny40NSwyMjYuMzkgTDIzNS41MywyMjguODcgTDIzMy40NSwyMzEuMjMgTDIzMS4yMywyMzMuNDUg
TDIyOC44NywyMzUuNTMgTDIyNi4zOSwyMzcuNDUgTDIyMy43OSwyMzkuMjIgTDIyMS4wOSwyNDAu
ODIgTDIxOC4yOSwyNDIuMjQgTDIxNS40MSwyNDMuNDkgTDIxMi40NSwyNDQuNTUgTDIwOS40Mywy
NDUuNDMgTDIwNi4zNywyNDYuMTEgTDIwMy4yNywyNDYuNjEgTDIwMC4xNCwyNDYuOTAgTDE5Ny4w
MCwyNDcuMDAgTDE5My44NiwyNDYuOTAgTDE5MC43MywyNDYuNjEgTDE4Ny42MywyNDYuMTEgTDE4
NC41NywyNDUuNDMgTDE4MS41NSwyNDQuNTUgTDE3OC41OSwyNDMuNDkgTDE3NS43MSwyNDIuMjQg
TDE3Mi45MSwyNDAuODIgTDE3MC4yMSwyMzkuMjIgTDE2Ny42MSwyMzcuNDUgTDE2NS4xMywyMzUu
NTMgTDE2Mi43NywyMzMuNDUgTDE2MC41NSwyMzEuMjMgTDE1OC40NywyMjguODcgTDE1Ni41NSwy
MjYuMzkgTDE1NC43OCwyMjMuNzkgTDE1My4xOCwyMjEuMDkgTDE1MS43NiwyMTguMjkgTDE1MC41
MSwyMTUuNDEgTDE0OS40NSwyMTIuNDUgTDE0OC41NywyMDkuNDMgTDE0Ny44OSwyMDYuMzcgTDE0
Ny4zOSwyMDMuMjcgTDE0Ny4xMCwyMDAuMTQgTDE0Ny4wMCwxOTcuMDAgTDE0Ny4xMCwxOTMuODYg
TDE0Ny4zOSwxOTAuNzMgTDE0Ny44OSwxODcuNjMgTDE0OC41NywxODQuNTcgTDE0OS40NSwxODEu
NTUgTDE1MC41MSwxNzguNTkgTDE1MS43NiwxNzUuNzEgTDE1My4xOCwxNzIuOTEgTDE1NC43OCwx
NzAuMjEgTDE1Ni41NSwxNjcuNjEgTDE1OC40NywxNjUuMTMgTDE2MC41NSwxNjIuNzcgTDE2Mi43
NywxNjAuNTUgTDE2NS4xMywxNTguNDcgTDE2Ny42MSwxNTYuNTUgTDE3MC4yMSwxNTQuNzggTDE3
Mi45MSwxNTMuMTggTDE3NS43MSwxNTEuNzYgTDE3OC41OSwxNTAuNTEgTDE4MS41NSwxNDkuNDUg
TDE4NC41NywxNDguNTcgTDE4Ny42MywxNDcuODkgTDE5MC43MywxNDcuMzkgTDE5My44NiwxNDcu
MTAgTDE5Ny4wMCwxNDcuMDAgTDIwMC4xNCwxNDcuMTAgTDIwMy4yNywxNDcuMzkgTDIwNi4zNywx
NDcuODkgTDIwOS40MywxNDguNTcgTDIxMi40NSwxNDkuNDUgTDIxNS40MSwxNTAuNTEgTDIxOC4y
OSwxNTEuNzYgTDIyMS4wOSwxNTMuMTggTDIyMy43OSwxNTQuNzggTDIyNi4zOSwxNTYuNTUgTDIy
OC44NywxNTguNDcgTDIzMS4yMywxNjAuNTUgTDIzMy40NSwxNjIuNzcgTDIzNS41MywxNjUuMTMg
TDIzNy40NSwxNjcuNjEgTDIzOS4yMiwxNzAuMjEgTDI0MC44MiwxNzIuOTEgTDI0Mi4yNCwxNzUu
NzEgTDI0My40OSwxNzguNTkgTDI0NC41NSwxODEuNTUgTDI0NS40MywxODQuNTcgTDI0Ni4xMSwx
ODcuNjMgTDI0Ni42MSwxOTAuNzMgTDI0Ni45MCwxOTMuODYgWiJdDQotICAgIFJlbmRlclNWR1Rl
eHQge3RleHR9IGF0ICg5OSwzNSkgc2l6ZSAyMDJ4MTkgY29udGFpbnMgMSBjaHVuayhzKQ0KLSAg
ICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIwMngxOQ0KLSAg
ICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoOTkuNTAsNTAuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDM0IHdpZHRoIDIwMS4wMDogIlRoZSBjaXJjbGUgc2hv
dWxkIGJlIGluIHRoZSBtaWRkbGUiDQotY2FyZXQ6IHBvc2l0aW9uIDE2IG9mIGNoaWxkIDAgeyN0
ZXh0fSBvZiBjaGlsZCAzIHt0ZXh0fSBvZiBjaGlsZCAwIHtzdmd9IG9mIGRvY3VtZW50DQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Np
cmNsZUVsZW1lbnQtZG9tLWN4LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE3YmRlNDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20t
Y3gtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTlj
ODFmMzEyZGJmMWE1MGM3YzJmODM2ZTRkOTUxNjg0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdD
aXJjbGVFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmRmYWI4MS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50
LWRvbS1jeC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHQ2lyY2xlRWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVs
ZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZiZmNjZjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tY3ktYXR0
ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWY2NjI2YjMz
Y2QzODU4Y2M5NDNhNzcxOTliNjYyNjQ5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVF
bGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWE3YjFjMy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LWRvbS1j
eS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2ly
Y2xlRWxlbWVudC1kb20tci1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1k
b20tci1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1NjI5NmNhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLXItYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWIyZjg5OWZmMGViM2Q3ODlk
ODZhNWRiNzY3NGRhNzJkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Q2lyY2xlRWxlbWVudC1kb20tci1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9t
LXItYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0YTk3
NDAuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1kb20tci1hdHRyLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1z
dmdkb20tY3gtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLWN4
LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3
Y2U5ZDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTJkZTI3NzkwZGI0MTcyZTli
NmNjOTg2NTNlMWZkODFhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Q2lyY2xlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50
LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTk0MWY1YS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVtZW50LXN2Z2RvbS1j
eC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2ly
Y2xlRWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1l
bnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI1YTJkY2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tY3kt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLThmZmJh
YWExYjYxMjUxYWM2Nzg0YjA5NmQzMTYxMjAzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdD
aXJjbGVFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNTI5NDZlYi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDaXJjbGVFbGVt
ZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Q2lyY2xlRWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhYWRjNWU2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQt
c3ZnZG9tLXItcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLWM4ODY2ZTkxOGRhODVjODBkODFkMDZiMGYwN2QxNzNmClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0NpcmNsZUVsZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4OWU4NWUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2ly
Y2xlRWxlbWVudC1zdmdkb20tci1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGgtaW5mbHVlbmNlcy1oaXRUZXN0aW5nLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHQ2xpcFBhdGgtaW5mbHVlbmNlcy1oaXRUZXN0aW5nLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWY3YWI1Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Ns
aXBQYXRoLWluZmx1ZW5jZXMtaGl0VGVzdGluZy1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTIwMTUyZDA5MjA0MGJjNWExZjQzOTc3M2EzYWI2Yzc0ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGgtaW5mbHVlbmNlcy1o
aXRUZXN0aW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoLWluZmx1ZW5jZXMtaGl0VGVzdGluZy1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwZmQ4NzAuLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGgtaW5mbHVlbmNlcy1oaXRUZXN0aW5nLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LWRv
bS1jbGlwUGF0aFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aEVsZW1lbnQt
ZG9tLWNsaXBQYXRoVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjI1MTlkZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDbGlwUGF0aEVsZW1lbnQtZG9t
LWNsaXBQYXRoVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWViMWM2ZjRjMzdjMDAxNDBlNWQ4ZjNhNTY2N2JiMDJkClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LWRvbS1jbGlwUGF0aFVu
aXRzLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBhdGhFbGVtZW50LWRvbS1jbGlwUGF0aFVuaXRz
LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzEyODE1
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVudC1kb20tY2xpcFBhdGhVbml0
cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xp
cFBhdGhFbGVtZW50LXN2Z2RvbS1jbGlwUGF0aFVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0g
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdDbGlwUGF0aEVsZW1lbnQtc3ZnZG9tLWNsaXBQYXRoVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY0ODc3OS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdDbGlwUGF0aEVsZW1lbnQtc3ZnZG9tLWNsaXBQYXRoVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWQwYmQ0YjA1MmRkYjllNWYzMGFkM2I4
MjJjZTUzMTk5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBh
dGhFbGVtZW50LXN2Z2RvbS1jbGlwUGF0aFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2xpcFBh
dGhFbGVtZW50LXN2Z2RvbS1jbGlwUGF0aFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMmYwNmZkLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Ns
aXBQYXRoRWxlbWVudC1zdmdkb20tY2xpcFBhdGhVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTYyZmY2Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0N1cnNvckVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTJkYzU2MzM2ZWFlOGMyNjE1NDg1MTYyMGNmZDY5OWJkClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teC1hdHRy
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3MzkwMWEuLjAwMDAwMDAKQmluYXJ5IGZpbGVz
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHQ3Vyc29yRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYzhhYzA5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1l
bnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLWU4YjY1MTkyM2YzYTY1YmIxMDQ4Y2M5NjVjMjgzZTAwClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0N1cnNvckVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRkMTVkMGMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxl
bWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vy
c29yRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA4YjVlM2RhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3Zn
ZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LTdhZWM5OTMxZTBkNjQzODk0ZTA3NzIwNmY1NTkwMDkwClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBu
ZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDdiZDcxMDIuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29y
RWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzEyOWZlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNvckVsZW1l
bnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLWIzOTk4YTk1NDQ1NWQxMzE2YjM0ZTljOWJmMzAwMTVlClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0N1cnNvckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4YmFkNzEuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Q3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN4LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmI5ZTI0Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNl
RWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLTZhNmMzNTFhNjJmYTEzMjUzYTU4YjliYzExYWI1YjBmClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN4LWF0dHItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN4LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjdjYzA3Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0VsbGlwc2VFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZjMzk0Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNl
RWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLTFiYmZmN2IyNjZhNjIxZmU3MzlkY2JlZDNhY2FiNGFmClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN5LWF0dHItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN5LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDg0ZmU0Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0VsbGlwc2VFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ4LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcngtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA1NjNhOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNl
RWxlbWVudC1kb20tcngtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLTc4ZGY5NWJmMjYwNDZmYjY5MWYyMmI2OGViMGY2NTU0ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ4LWF0dHItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ4LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTVhZWE2Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0VsbGlwc2VFbGVtZW50LWRvbS1yeC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ5LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcnktYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTU4MGI0NC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNl
RWxlbWVudC1kb20tcnktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLTE2OTk1MGM3YWJiNjljYmZlNzhhMzRlZjdlYThiZTEyClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ5LWF0dHItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLXJ5LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMjg2OGI4Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0VsbGlwc2VFbGVtZW50LWRvbS1yeS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjg2NzZhNy4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdF
bGxpcHNlRWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLWIxNmI1YjZjM2Y2ZjA4OTVlZDQyYmEzYTliYjFhNDg1ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9t
LWN4LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AtZXhw
ZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTMxYzc0Li4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9t
LWN5LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tY3ktcHJv
cC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDg2MWFh
Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWMxMWJkMjEzYTEyZTA3MTliY2Jl
M2Y1MWFhZjgxMTdhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxs
aXBzZUVsZW1lbnQtc3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQt
c3ZnZG9tLWN5LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAyNmMxMDBhLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1j
eS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxs
aXBzZUVsZW1lbnQtc3ZnZG9tLXJ4LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxl
bWVudC1zdmdkb20tcngtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNzA0NGM3Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20t
cngtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWQ5
MGJmN2FlZTNjMmU1ZTFhMGNlZGI1NjQxMzVlYzg3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ4LXByb3AtZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ4LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyNDVhZDc0Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlw
c2VFbGVtZW50LXN2Z2RvbS1yeC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ5LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdFbGxpcHNlRWxlbWVudC1zdmdkb20tcnktcHJvcC1leHBlY3RlZC5jaGVja3N1bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRmOGYyNS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxp
cHNlRWxlbWVudC1zdmdkb20tcnktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTQ3YmIzNTc4ZmNlZmVmMDE2MDBmZTBhN2EyM2ViNDM5ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ5
LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ5LXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTQ5M2VjLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1yeS1wcm9wLWV4cGVjdGVkLnBuZyBh
bmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LWRvbS1kaWZmdXNlQ29uc3RhbnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC1kb20tZGlmZnVzZUNvbnN0YW50LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhMjY0OTkuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1kaWZmdXNlQ29uc3RhbnQtYXR0ci1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTYxZTY1MzM1NTVhNGM4NTg3Y2E4
ZmZjZjY3MDUxN2ZiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1kaWZmdXNlQ29uc3RhbnQtYXR0ci1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWRpZmZ1c2VDb25zdGFudC1hdHRyLWV4
cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E1ZjlkNC4uMDAwMDAw
MApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9tLWRpZmZ1c2VDb25z
dGFudC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzM0NTllLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20taW4tYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLWMwM2E4YmQ2NGYxZDA0ZGE4MmIxZDQ4MGZiYzI1ODU1Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC1kb20taW4tYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU1MGExOTIuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LWRvbS1pbi1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1saWdodGluZy1jb2xvci1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1saWdodGluZy1jb2xv
ci1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
ZjQxMDBiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tbGlnaHRp
bmctY29sb3ItYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLTllMWQ0NmY1OTIwNjU0M2M5ODZjMzgyZTZjZTdlMTkxClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1saWdodGlu
Zy1jb2xvci1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20t
bGlnaHRpbmctY29sb3ItYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYyNmI2NGMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LWRvbS1saWdodGluZy1jb2xvci1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWRvbS1zdXJmYWNl
U2NhbGUtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1k
b20tc3VyZmFjZVNjYWxlLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGM5YmJkM2MuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LWRvbS1zdXJmYWNlU2NhbGUtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTRjZGIwNDljZTVjZTE3ZDQ4Yzc4M2Q1NTNlOWM5ODE1ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LWRvbS1zdXJmYWNlU2NhbGUtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQtZG9tLXN1cmZhY2VTY2FsZS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZmFmMzNmYS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQtZG9tLXN1cmZhY2VTY2FsZS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWxpZ2h0
aW5nLWNvbG9yLWNzcy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LWxpZ2h0aW5nLWNvbG9yLWNzcy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZmNkMDg1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC1saWdodGluZy1jb2xvci1jc3MtcHJvcC1leHBlY3RlZC5jaGVja3N1bQor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTIwMDExZGZhNDYzZjhjNGQxNDljNGFkMzFkYmZk
YjE2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50LWxpZ2h0aW5nLWNvbG9yLWNzcy1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC1saWdodGluZy1jb2xvci1jc3MtcHJvcC1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZDA0YjguLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LWxpZ2h0aW5nLWNvbG9yLWNzcy1wcm9wLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50LXN2Z2RvbS1kaWZmdXNlQ29uc3RhbnQtcHJvcC1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tZGlmZnVzZUNvbnN0YW50LXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlYjdiZjgu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1kaWZmdXNlQ29u
c3RhbnQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LTBjZDM5Y2MyODY4Y2M4N2RiMzc1OTk4NmJlMDA5NzcyClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1kaWZmdXNl
Q29uc3RhbnQtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtc3Zn
ZG9tLWRpZmZ1c2VDb25zdGFudC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmRiYjkwNS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQtc3ZnZG9tLWRpZmZ1c2VDb25zdGFudC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2
Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LXN2Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyZTYwMjRlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1z
dmdkb20taW4tcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLTZmMjBkYjE2YzEyMDEwMGE0NGNhYzBhOGZiNTYzNGY4ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1pbi1w
cm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20taW4tcHJv
cC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiMzlhN2IuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1pbi1w
cm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1zdXJmYWNlU2NhbGUtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tc3VyZmFjZVNjYWxlLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmOWE4OWIu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1zdXJmYWNlU2Nh
bGUtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWNk
YTg1YjkxMGFkYmMwOGU4YzUxNWMzMDk0ZTY3OTlmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LXN2Z2RvbS1zdXJmYWNlU2Nh
bGUtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtc3ZnZG9tLXN1
cmZhY2VTY2FsZS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOTZhYzA4Yi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQtc3ZnZG9tLXN1cmZhY2VTY2FsZS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDdjODI5Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zm
c2V0RWxlbWVudC1kb20tZHgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWY4NDU5MWM1NWUxMzM2NDQ1M2Y0NmJiMzFlZjI4N2Q4ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keC1hdHRy
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHgtYXR0ci1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlM2E2NmUuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keS1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keS1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZWRjYmQ3Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFT2Zmc2V0RWxlbWVudC1kb20tZHktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLWI5YzZiNjA3ODQ3YTI3MDM0MWNhZmYyYmQ0NjMyZWQ5ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1k
eS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20tZHktYXR0ci1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZTA1ODIuLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1pbi1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODFhYmQyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20taW4tYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTM0OWY4NDE4OGViZWRjMjBjOTBmYzljYzQ2MGQ3NTE1
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50
LWRvbS1pbi1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1kb20taW4tYXR0ci1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkM2U4MmMuLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1pbi1hdHRyLWV4cGVjdGVkLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2Rv
bS1keC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmEz
MzBmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20tZHgtcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTQ5ZTBjMzhkNDk3ZWM1N2Fi
ZGM5Y2Y1NjVlNzcwZTg2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxl
bWVudC1zdmdkb20tZHgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGM2YjgzYTEuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2
Z2RvbS1keC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVP
ZmZzZXRFbGVtZW50LXN2Z2RvbS1keS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkNGU1ZTIwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVu
dC1zdmdkb20tZHktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTIyNTdkOTVlNDNkZTNmZDA3ZjZkMjBiMzgzNGMxNjZmClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keS1wcm9wLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20tZHktcHJvcC1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmYzA3NGIuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1pbi1wcm9w
LWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1pbi1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Nzc2NWNkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20taW4tcHJvcC1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWFhZjI5MzkwODJjZDg5ZDYxNWQxNDgwNTky
MDgwMTAzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRF
bGVtZW50LXN2Z2RvbS1pbi1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdk
b20taW4tcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4
MDY1Y2YuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1pbi1w
cm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LWRvbS1saW1pdGluZ0NvbmVBbmdsZS1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1saW1pdGluZ0NvbmVBbmdsZS1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGM0OGE4Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tbGltaXRpbmdDb25lQW5nbGUtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTNmZDEyYjJiMDJmMjRj
ZTJjOTcwZWEwZmIwYzQzMzk1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1saW1pdGluZ0NvbmVBbmdsZS1hdHRyLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tbGltaXRpbmdDb25lQW5nbGUtYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlNGMxMjYuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1saW1pdGluZ0NvbmVBbmdsZS1h
dHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFgtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3Bv
dExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRYLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZTBiMjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGln
aHRFbGVtZW50LWRvbS1wb2ludHNBdFgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTEwZDkzN2MyMWU3MWEzOWMwYjcwMTNlZWQ3OTEzMmRjClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRv
bS1wb2ludHNBdFgtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBv
aW50c0F0WC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODNiMWNkMy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXBv
aW50c0F0WC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFktYXR0ci1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRZLWF0dHItZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhOTNjMmIuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFktYXR0ci1leHBlY3RlZC5jaGVja3N1bQor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTljODYxNTlhNzk1MWI2OTY0NTFkYWQyN2FhNzhk
ODY3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRF
bGVtZW50LWRvbS1wb2ludHNBdFktYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQtZG9tLXBvaW50c0F0WS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzVhMzk5OS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQtZG9tLXBvaW50c0F0WS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFotYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tcG9pbnRzQXRaLWF0dHItZXhwZWN0
ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwNjMwYjIuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFotYXR0ci1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWY5ZTRhMmNhYjRkMDNmMWFkMWUy
MWZlYzcwNzkxYzE5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFotYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RM
aWdodEVsZW1lbnQtZG9tLXBvaW50c0F0Wi1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNGY1NjhjMC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RM
aWdodEVsZW1lbnQtZG9tLXBvaW50c0F0Wi1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1zcGVjdWxhckV4cG9u
ZW50LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXNwZWN1
bGFyRXhwb25lbnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTk2NTkxNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXNw
ZWN1bGFyRXhwb25lbnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLTJmOGM0NTBiZTcxOTc2NWFiNmMxZjFmMjFmYWI4ZjkwClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1zcGVjdWxh
ckV4cG9uZW50LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1zcGVj
dWxhckV4cG9uZW50LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlNDgxN2JhLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1k
b20tc3BlY3VsYXJFeHBvbmVudC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjExNzY3MC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNw
b3RMaWdodEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTk2ZTVhY2Q4OWYyOTFhNGY3YmUyZmI0ZWZhMzIwNTlhClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS14
LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxM2I5MGNmLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBh
bmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS15
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXktYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMxYTMwZC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWY2MWY5OTEwNmMxZDQyMzkzM2NkYTYw
MTkwOWMyZjc4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50
LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
MmE4NmUzLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20teS1h
dHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LWRvbS16LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVs
ZW1lbnQtZG9tLXotYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggODdkYTY2MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXot
YXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTNiM2Nm
YzExZTQ2MzM5MmZjNzczOGZjMGY3MGU2YzZhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS16LWF0dHItZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVTcG90TGlnaHRFbGVtZW50LWRvbS16LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwYjk0YTVmLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExp
Z2h0RWxlbWVudC1kb20tei1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1saW1pdGluZ0NvbmVBbmdsZS1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1saW1pdGlu
Z0NvbmVBbmdsZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiZWYwOTkxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20t
bGltaXRpbmdDb25lQW5nbGUtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWU4ZWQ1YzI1ZGYyNmFlNjRiNzUwOGVmMWZiMGMxNzE3ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1s
aW1pdGluZ0NvbmVBbmdsZS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1z
dmdkb20tbGltaXRpbmdDb25lQW5nbGUtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDlhY2I0NzMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGln
aHRFbGVtZW50LXN2Z2RvbS1saW1pdGluZ0NvbmVBbmdsZS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1w
b2ludHNBdFgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdk
b20tcG9pbnRzQXRYLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE1YmY0MWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2Rv
bS1wb2ludHNBdFgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLWUxZGVmYjcxMWY0Nzg3MDVmMWM2MzI2NGFmOGY3NjVjClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNB
dFgtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0
WC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjdiODgy
Yi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50
c0F0WC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFktcHJvcC1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tcG9pbnRzQXRZLXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1NmUyY2QuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFktcHJvcC1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTVkZDRlY2IyMGQ1MDhhNmY0NWZhM2Jm
ZTQyYjI1MTIyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RM
aWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0WS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmFhMDE3Yi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNw
b3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0WS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2lu
dHNBdFotcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20t
cG9pbnRzQXRaLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg4ZDEwOTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1w
b2ludHNBdFotcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLTcyOTI5N2M5YTkyYTA3YzI0YmViNDA5ODc1MDFjODMzClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFot
cHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0Wi1w
cm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDljNTQ1NC4u
MDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXBvaW50c0F0
Wi1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVT
cG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVjdWxhckV4cG9uZW50LXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXNwZWN1bGFyRXhwb25lbnQtcHJvcC1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBkNmI3YS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXNwZWN1bGFyRXhwb25lbnQt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWJkZWIz
NzgwMzgyMjlhYmIyYzMyYmZlMjdiZWQ0NjVhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVjdWxhckV4cG9uZW50LXBy
b3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1zcGVjdWxhckV4cG9u
ZW50LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2Ew
NzVjLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20tc3Bl
Y3VsYXJFeHBvbmVudC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFlZmMyMi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNw
b3RMaWdodEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTY5MjhmYjBkZGRhOWRiMTQwNjVhODIzODNjYmI3ZmM0ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2
Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS14LXBy
b3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTkwZjIxLi4w
MDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20teC1wcm9wLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRF
bGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1l
bnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTdkZmVmOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9t
LXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWY0
NWZmNDA2NjhmODM0MjlkZWMxNTNiY2NjZjA1MzYyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZmM1Y2I4Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS16LXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXotcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjAwNjgwMi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXotcHJvcC1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTA0MGRhMTdjODI3NWUzMmIwOTFjZGZi
ZTRmMGYzY2I2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90
TGlnaHRFbGVtZW50LXN2Z2RvbS16LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVt
ZW50LXN2Z2RvbS16LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiZWM5ODZiLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1z
dmdkb20tei1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyRWxlbWVudC1kb20tZmlsdGVyUmVzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
aWx0ZXJFbGVtZW50LWRvbS1maWx0ZXJSZXMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmMxNWNjYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVt
ZW50LWRvbS1maWx0ZXJSZXMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWMzODlmYzI4MGUwZDE3MmZlNjQxZGJiNmNkNTRhZDc1ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20tZmlsdGVyUmVz
LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20tZmlsdGVyUmVzLWF0dHItZXhw
ZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNGU3ODhiLi4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWZpbHRlclJlcy1hdHRyLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20t
ZmlsdGVyVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWZp
bHRlclVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg1OGU0YjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20tZmlsdGVyVW5p
dHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWMw
YmE2MDhkNDE0Mjg4NWQzMWQzNDQ0ZmU5OGNmMGU2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20tZmlsdGVyVW5pdHMtYXR0ci1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1maWx0ZXJVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODcxODgyNC4uMDAwMDAwMApCaW5hcnkgZmls
ZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1maWx0ZXJVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20taGVpZ2h0LWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTVkNDE0Yy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTJiMzBhM2U0MGFjNTEwZjIwNGNiM2EyNmY4
NTZiNzMwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxl
bWVudC1kb20taGVpZ2h0LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20taGVp
Z2h0LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMmUw
ODQ5Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWhlaWdodC1hdHRy
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxl
bWVudC1kb20tcHJpbWl0aXZlVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtZG9tLXByaW1pdGl2ZVVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmODhhZjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1kb20tcHJpbWl0aXZlVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLWY4OWE3NDEyYWRhOTEzYzA2NjAxNzdmYzQzOWQwNzQ4ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20tcHJpbWl0
aXZlVW5pdHMtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1wcmltaXRpdmVV
bml0cy1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmU2
OTIxNS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1wcmltaXRpdmVV
bml0cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhjOWRmNjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20td2lk
dGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTU2
MDY1NDkxNTMyODhlNWU4NjcxNjA0Yjk2ZjE5YzdhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGaWx0ZXJFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTg5YmMyMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJF
bGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5MzNkZGNkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9t
LXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWQw
ZGFjZmM2NWQ5MzgzMDc0ZGM0N2Y0MzU3Njc5NWU1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zp
bHRlckVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc3ZjgyYjkuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1k
b20teC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1kb20teS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4MWVjOGMwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLXktYXR0ci1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTgzY2JiYmQ0YTRmZWNl
NDBhNDY0MGI1NTBlOTBlMmI4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQt
ZG9tLXktYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5
ZWZmMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teS1hdHRyLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1zdmdkb20tZmlsdGVyUmVzLWNhbGwtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50
LXN2Z2RvbS1maWx0ZXJSZXMtY2FsbC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzM3MjU3My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2Rv
bS1maWx0ZXJSZXMtY2FsbC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTAyNjEyNTEzYWM3ZDk5MmQ2ZGY1YTE3M2M4OGZjM2U3ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzLWNh
bGwtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzLWNhbGwtZXhw
ZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OGRiZTBkLi4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlcy1jYWxsLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1z
dmdkb20tZmlsdGVyUmVzWC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1z
dmdkb20tZmlsdGVyUmVzWC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhYTIwNTU4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9t
LWZpbHRlclJlc1gtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTg2YjgyZTYzOTg0YmNhODUyM2MxZjM0OGYyM2RmMTBkClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzWC1w
cm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlc1gtcHJvcC1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0YTA5ZDEuLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzWC1wcm9wLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1zdmdkb20tZmlsdGVyUmVzWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1zdmdkb20tZmlsdGVyUmVzWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3MTBjY2VlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3Zn
ZG9tLWZpbHRlclJlc1ktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWM3M2RhZmVjZWQxODUyMTZkYzg5YTA0Y2EyYjZkMzJlClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVz
WS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlc1ktcHJv
cC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzMjY2MzEuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyUmVzWS1wcm9w
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxl
bWVudC1zdmdkb20tZmlsdGVyVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVs
ZW1lbnQtc3ZnZG9tLWZpbHRlclVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiYjQzZjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVu
dC1zdmdkb20tZmlsdGVyVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTM4YjIwNTBmZjk3MzEwNjY5MGU2MDlkYWE3MTcxMTdiClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tZmls
dGVyVW5pdHMtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJV
bml0cy1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDli
MmRkMC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1maWx0ZXJV
bml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0
ZXJFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggY2Y0MWU5MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50
LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLTI3ODA3Zjc4OTc4NGM1N2EzYTRhMWRlMDI1NTZkODZmClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXBy
b3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDhiNzc0Li4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20t
cHJpbWl0aXZlVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3Zn
ZG9tLXByaW1pdGl2ZVVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg5Njg2NDMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdk
b20tcHJpbWl0aXZlVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLTc1MmIwYTFmNTFhNGFkNzUyZTRmZWZmNmRhZmZkNzFhClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20tcHJpbWl0
aXZlVW5pdHMtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1wcmltaXRp
dmVVbml0cy1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmM5NjQxNS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS1wcmlt
aXRpdmVVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg1Y2M2NGQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxl
bWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWQ4NjkwZTdmYmVlY2ZmYzI4ODU4NDljNzRlNWQ3NzMyClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20td2lkdGgt
cHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU3YzFjZC4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20t
eC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teC1wcm9wLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2VhYThkLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTc0NmQzNDNjMDQ5ZjFlMDcxYzg0NjM4MDIy
MjFjMTQ4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxl
bWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXgt
cHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQyZjI2ZmUu
LjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1z
dmdkb20teS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teS1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzYx
MWE2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTJkNzkxMWZlOTJhMjQxMGRlMjhh
Y2E5MWRlYmY0ZmZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmls
dGVyRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3Zn
ZG9tLXktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1
YjRjMTEuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teS1wcm9w
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20taGVpZ2h0LWF0dHItZXhw
ZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiOWFlOGMuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS1oZWlnaHQt
YXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTJiZTg2
MjViMjZhYWFjYzQ1NmIzZWQ2NjE5MjA3ODJlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS1oZWlnaHQt
YXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9t
LWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDA4OTMyMS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS1yZXN1
bHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy1kb20tcmVzdWx0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhiYWY0ZGQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLWRvbS1yZXN1bHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTk4OTA5YWExY2M5MmI5ZGFmMDYyNWE5NGJmZjE4ZGIzClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLWRvbS1yZXN1bHQtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXJlc3VsdC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzlmZDk3YS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXJlc3VsdC1hdHRyLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYWRiMTZkLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20td2lkdGgtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTkxYjQwOWI3YTUzY2NkMWQ2
NTdkM2Q1NzQzZGQzNTNmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS13aWR0aC1hdHRyLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20td2lkdGgtYXR0ci1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkMjUyODcuLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS13
aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS14LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXgtYXR0ci1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2ZiNGQ3OC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXgtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTNhY2YyOTQ0ZDJl
ZjM4OGNjNWEwYjM2ODI1YmZjNTBiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS14LWF0dHItZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS14LWF0dHItZXhw
ZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzY1YzdiLi4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20teC1h
dHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0g
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXktYXR0ci1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZiYWY5MC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXktYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTA3OTcwZmQzNzcxN2FlNDg1
MDU4ZWIzZjVhMDdhODlkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS15LWF0dHItZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLWRvbS15LWF0dHItZXhwZWN0ZWQu
cG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZDM0MDI3Li4wMDAwMDAwCkJpbmFy
eSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20teS1hdHRyLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1
bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20taGVpZ2h0LXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0ODNhODcu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS1o
ZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LWQxMzJhZjQ3YWFhNDFiYmRkOTY0NDczMzg1Y2ZjZDkwClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2Rv
bS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOGJlNTBkYy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLXN2Z2RvbS1yZXN1bHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20tcmVzdWx0LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNzNhNjQuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS1yZXN1bHQtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWE5MzUwNzJhMDNiZDVj
MTA2YzY3YWE2YzZlMDUyZjkwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS1yZXN1bHQtcHJvcC1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXJl
c3VsdC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFm
OWEzYy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMtc3ZnZG9tLXJlc3VsdC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS13
aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmYTNjZGY4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTI5NzIzNTZjOGVmYTZjMjcwNmQ2MDFkMTk2NzM1NTI1
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhMTgyZTMuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS13aWR0aC1w
cm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXgtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzcyM2YyNi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXgtcHJv
cC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTYzZTAzZDI4
YWE4MjQzYzU4ZDdiZjk3N2E3YWVlYTRiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS14LXByb3At
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS14
LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTcwNTBj
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS15LXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9t
LXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MWE5ZTFhYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMt
c3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLTNmODNmZTAxZmQxODVkNTJhYWNlMDI2NjgwODhlODY2ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2
Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhNDUyNWQ5Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2JmMGQ0Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTkxZTc2MWUwZDg2Mjg4YjE5
Mjk1MDM2ZWI5YTFkYWQ1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDUwYTZiZGYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHIt
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjgxN2NkNy4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWE1YTZjYWZiNWY1ZjU1ODcx
NTFiZTQyNjc0MThlZjViClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzNjg0NmYxLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25P
YmplY3RFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hl
Y2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlZDRmMTIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTgxNTBlZjE4NDIzZDQ3MmMwODM1Y2Y1MzdlYmJhY2I1
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20t
eC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ2MmRi
OC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teC1hdHRy
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RF
bGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDRiODBkODkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9t
LXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTZl
ZjEyOWJhZjQ1Nzg2OWJmM2Y1YjZlOTE3OTE4ZDFhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWQ5ZTBlMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdo
dC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
ZmNmMTY3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTg4Nzli
Y2M4OWI1YzFkZTVkMDljNzAwZWE5MDNkNTE4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlN2UwYWUuLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNTkwMGY5Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWIwMTI3NDNlMzE1Mjg2NDRiZmY3YjhlNGVhZWZlYmZiClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9t
LXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXdp
ZHRoLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTAw
YTEzLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS13
aWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0ZWQ4MTEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTRiNTNhZGY0OTBiMmJmZmY5YWZlNGJiMzlmZTg5YTFhClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3Zn
ZG9tLXgtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teC1w
cm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTE0MmNhMS4u
MDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teC1wcm9w
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRlMTY5YzUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTQ0ZTBmNTJkYzkzNGZiYmFjN2Y4MjM5ZjI5YjI5OWNjClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtc3ZnZG9tLXktcHJv
cC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk5MzE2Yy4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS1o
ZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0LWF0
dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmNDkw
ZGUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWEyNDgyODZlNzM0ZDE0MWFhODc0
NmQzY2UxZGRmYTRmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1h
Z2VFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9t
LWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YmNiZGY4NS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLWhlaWdodC1h
dHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VF
bGVtZW50LWRvbS1wcmVzZXJ2ZUFzcGVjdFJhdGlvLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJ
bWFnZUVsZW1lbnQtZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tYXR0ci1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNThjYTYwZi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJ
bWFnZUVsZW1lbnQtZG9tLXByZXNlcnZlQXNwZWN0UmF0aW8tYXR0ci1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTk5ZGUzNjllN2MzMjczYTQ1ZTdmZjM0ZWI4
YjJhYzUxClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVt
ZW50LWRvbS1wcmVzZXJ2ZUFzcGVjdFJhdGlvLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVt
ZW50LWRvbS1wcmVzZXJ2ZUFzcGVjdFJhdGlvLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjYmU2OTExLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdl
RWxlbWVudC1kb20tcHJlc2VydmVBc3BlY3RSYXRpby1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4
cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODI5ZTkwLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ltYWdlRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTNkMTE0OTE5OWRlNDdlNWM0MzM4MjFmMzU3MmExYzIyClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS13
aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmMzE5ZTEuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBh
bmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS14LWF0dHIt
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJkMjEzMy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdJbWFnZUVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTM5YjA2MzZjOGEwOGFhMmVjZjM2NzY5MmEzMzYwODEyClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS14LWF0dHIt
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MmQ4NzVjLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ltYWdlRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0g
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdJbWFnZUVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZThmY2JmNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtZG9t
LXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTdi
NWIxZWFkNzgxMTA2ZTk0NDYyNTg2MWNkZGE2OWE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1h
Z2VFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMjc0NDkwLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20t
eS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1h
Z2VFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxl
bWVudC1zdmdkb20taGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk0YzU3MWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2Rv
bS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLWNiZjc5YTFiNTExN2UzYTlkZjlkMTZlOWVmMWE1YjdkClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBl
Y3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTg1OTUwYS4uMDAwMDAwMApCaW5hcnkgZmls
ZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1wcmVzZXJ2ZUFz
cGVjdFJhdGlvLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXBy
ZXNlcnZlQXNwZWN0UmF0aW8tcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTU1ZjJmZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9t
LXByZXNlcnZlQXNwZWN0UmF0aW8tcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLWZiNWU1YzMxMDA0ZGM1N2UzM2ZhMGFlMTRhNzUzN2RjClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1wcmVz
ZXJ2ZUFzcGVjdFJhdGlvLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1w
cmVzZXJ2ZUFzcGVjdFJhdGlvLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNjk2ODJiLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1z
dmdkb20tcHJlc2VydmVBc3BlY3RSYXRpby1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MWQ4NjJmLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ltYWdlRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLThlNmU3ZDBlNGVkMjkwOGJjMzE2OTE4OGE2MGExZjEz
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2
Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20td2lkdGgt
cHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5YTJiYjQu
LjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50
LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXgt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTRm
NzNmNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTEzNjMwNjgwYzg0ZDNkMDE3NDgy
NzFkYzQwMWNmOTI1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1h
Z2VFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2Rv
bS14LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWVh
OTEwLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teC1wcm9wLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50
LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXkt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQz
NDQxMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWNkMmRhYmU4YzVmY2YwODk5M2Iz
MmU0ZGYwYmEyYTFlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1h
Z2VFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2Rv
bS15LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMWQ5
Y2U0Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1zdmdkb20teS1wcm9wLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQt
ZG9tLXgxLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teDEtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJmMjk2NC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teDEtYXR0ci1leHBlY3RlZC5jaGVja3N1bQor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTg3OWUzZTllZGQ2NTBkYjAxZTdlM2RhN2U3N2M5
YTgxClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQt
ZG9tLXgxLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXgxLWF0dHItZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZjcyMDM0Li4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXgyLWF0dHItZXhwZWN0
ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teDItYXR0ci1leHBlY3RlZC5jaGVja3N1bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM3OTdlZC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5l
RWxlbWVudC1kb20teDItYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWJiMDNmYzAwZWYxOGRkMWIyNjQ1MWMyMDRmYWJkZTFlClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXgyLWF0dHItZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXgyLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjZTQ0Y2I1Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVF
bGVtZW50LWRvbS14Mi1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5l
RWxlbWVudC1kb20teTEtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjE0YWE0NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teTEtYXR0
ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTkzNDNhODE5
MWNkNDdkNGIxOWYxZTBmNGFjN2Y5YjUwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1l
bnQtZG9tLXkxLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NjdhZDEzLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15MS1hdHRy
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1l
bnQtZG9tLXkyLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teTItYXR0
ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZjMmNh
MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1kb20teTItYXR0ci1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWYzZDY3YzMyYTk2MjdmMzE5NDBjYzNhMDM2
ZTk3OGZjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1l
bnQtZG9tLXkyLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkyLWF0dHItZXhw
ZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAw
CkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXgxLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDEtcHJvcC1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTE3NTA0MC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDEtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLWQwYWQwYTQ4NDA4MDQ5YTQ1ODgwYTM2ZTk2MTZmMjdhClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9t
LXgxLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXgxLXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14MS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXgyLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDItcHJvcC1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdhOGFiZC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDItcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTJiZjk1ODU1NjljNWJhMjgwNmY3ZTQ2MzlkN2RkMWVlClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9t
LXgyLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXgyLXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXkxLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgwZTNiZi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTgyMWJiZWVmYjNjNjlhYTkwMGQxZjNhYzEzMWZhNzk1Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9t
LXkxLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXkxLXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXkyLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTItcHJvcC1leHBlY3RlZC5j
aGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y4MzMyZS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTItcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTNkMWEwYTYwZTllYzg4YWE5ODAwYjMxNTY5Mzc0YTUzClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9t
LXkyLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXkyLXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1n
cmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGE1MjkzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTY5YmE4ODA5NDkwYzVkODU2MjEzMjZkZGJi
YWUyMTlhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRy
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLWdyYWRpZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODk0MGZhYy4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLWdyYWRpZW50VW5pdHMtYXR0ci1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTFkZmMwNWY0NDc0ZWQ1ODRmNjBk
MzVmNzBlZjNjYWQ1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJpbmFyeSBm
aWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRyLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1MThkOTc3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20t
eDEtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTJi
NjY3MGQzOGMxYTZhYTYwNWQ0ZDQ5NTUwM2UxOTI5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDEtYXR0ci1leHBlY3RlZC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVz
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14MS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14Mi1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14Mi1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTkyYmZl
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teDItYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWJjY2UzYzY2ZjRhNGFiNGM4
OGY2ZmM3MDU0OWQ3NWZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS14Mi1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC1kb20teDItYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LWRvbS14Mi1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15MS1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15MS1hdHRyLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWVmMGJiLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTEtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWY5NjQwNGNhNTI1OTM5YTI2YTBhYjFhM2ZkNzkwZmQx
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LWRvbS15MS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1k
b20teTEtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2
N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15
MS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4ZTUwYzAyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC1kb20teTItYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWUwMDRjNmY3MWQ5MzE1NTdiZWE0MjAyYTVhNTRiMjA1ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15Mi1h
dHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTItYXR0ci1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS15Mi1hdHRyLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YzlkZjJhLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJv
cC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTQyMDE0MDBl
ZDYyYzFjMTQwNGFmZmZjNjkwMDNmM2VkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1w
cm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRU
cmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFVu
aXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9t
LWdyYWRpZW50VW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzRjNmJjZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQt
c3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTcyYzQ1MTdhMThiNTNiYmU2MTZkMjMyMmY4NjhlY2JmClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS1ncmFkaWVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LXN2Z2RvbS1ncmFkaWVudFVuaXRzLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS14MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS14MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlZDY4MDI4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teDEt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWVmZGRk
MGE2NmE3MWMyYmIyN2M3YWZiYTA0MGFhODBjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14MS1wcm9wLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teDEtcHJvcC1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14MS1wcm9wLWV4cGVjdGVkLnBuZyBh
bmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2
Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0NWJlNTU1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20t
eDItcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWQz
OTdlMDQxOTdjNzdkMGEyNGNiODA1NzI4MTgxMGZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teDItcHJvcC1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14Mi1wcm9wLWV4cGVjdGVkLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmYTZhOWM0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdk
b20teTEtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LWUyNDVkYzgxZTk2MmNlMjVkMDM4ZDNkYjFhYWM1NjBlClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teTEtcHJvcC1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15MS1wcm9wLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1M2E2MDczLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1z
dmdkb20teTItcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLTJkMzk3NTZkNWI2MDM3N2E3MzE4ZGRjOTFjOWJkZDdkClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9w
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teTItcHJvcC1leHBl
Y3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAK
QmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1k
b20tbWFya2VySGVpZ2h0LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRv
bS1tYXJrZXJIZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjdjOTk3Ni4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJr
ZXJIZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAg
QEAKLWQxNmM2NWNlNzczMmNjNjQwOTE4NzMzNzM5NmEwOGUxClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VySGVpZ2h0LWF0dHIt
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VySGVpZ2h0LWF0dHItZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlckhlaWdodC1hdHRyLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20t
bWFya2VyVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1h
cmtlclVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDlkNDRkYzEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyVW5p
dHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTJl
ZDdlYjM0YjI2MWFjZDgwYmE4ZWJmZDY2ZTJmMzRhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyVW5pdHMtYXR0ci1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY3YWQxMy4uMDAwMDAwMApCaW5hcnkgZmls
ZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXJrZXJFbGVtZW50LWRvbS1tYXJrZXJVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyV2lk
dGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW1hcmtlcldpZHRo
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQz
NTViODMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyV2lkdGgtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWFkMjdiMThlY2Fm
YmY0N2ZhYWQ0ZjBiZTlhZTBmZmJmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyV2lkdGgtYXR0ci1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXJrZXJFbGVtZW50LWRvbS1tYXJrZXJXaWR0aC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNjY3YWQxMy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJr
ZXJFbGVtZW50LWRvbS1tYXJrZXJXaWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tb3JpZW50LWF0dHItZXhwZWN0
ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LWRvbS1vcmllbnQtYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGE5NjFjMS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdNYXJrZXJFbGVtZW50LWRvbS1vcmllbnQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTM0ZWVlMGE4ZGE0ZGViYTJjYTdjYzRiMWMxYjM5MmMzClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20t
b3JpZW50LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tb3JpZW50LWF0dHIt
ZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAw
MDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLW9yaWVudC1hdHRyLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20t
cmVmWC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWC1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGFkZDQ3
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlgtYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWVmYzVmOWRhNmE2NTQ1MzkzNTA5ZmY3
Y2M0MTMwZWU5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2Vy
RWxlbWVudC1kb20tcmVmWC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJl
ZlgtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2Fk
MTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWC1hdHRyLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVu
dC1kb20tcmVmWS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVm
WS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
OTU3ZjFlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlktYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTlmY2EzYTRjZmUyZGUyZDFk
OTg0YmYyMWVmMzhlMjFjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFya2VyRWxlbWVudC1kb20tcmVmWS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQt
ZG9tLXJlZlktYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tcmVmWS1h
dHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2Vy
RWxlbWVudC1zdmdkb20tbWFya2VySGVpZ2h0LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJr
ZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJIZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjExNmI2NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJF
bGVtZW50LXN2Z2RvbS1tYXJrZXJIZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTZkNjI3M2EzNTI3OGViZTg0ZGE3Yzk1ZGVjMDg4ODdkClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdk
b20tbWFya2VySGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
bWFya2VySGVpZ2h0LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2NjdhZDEzLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9t
LW1hcmtlckhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyVW5pdHMtcHJvcC1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlclVuaXRzLXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyNGIwYzUuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTk5OWQ0MzZiNzRiMzUwMmRmZDQyYTEw
MDZmNmY4ZjI5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2Vy
RWxlbWVudC1zdmdkb20tbWFya2VyVW5pdHMtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVt
ZW50LXN2Z2RvbS1tYXJrZXJVbml0cy1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNjY3YWQxMy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVt
ZW50LXN2Z2RvbS1tYXJrZXJVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyV2lkdGgtcHJvcC1l
eHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW1hcmtlcldpZHRoLXByb3At
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2YzZiOGQu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyV2lkdGgtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLThlNDQ1MjUyMTE0MjQ3
NTJmNDc1OWVhNjU5NzFjYmFhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFya2VyRWxlbWVudC1zdmdkb20tbWFya2VyV2lkdGgtcHJvcC1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJXaWR0aC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY3YWQxMy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJXaWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50QW5n
bGUtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudEFu
Z2xlLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE2MzA4OTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50QW5nbGUt
cHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWM0NmE0
Yzg1ZmFjNDRhOTc3Nzg0YWRhYzQxOGRiMzhiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50QW5nbGUtcHJvcC1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1vcmllbnRBbmdsZS1wcm9wLWV4cGVjdGVkLnBu
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY3YWQxMy4uMDAwMDAwMApCaW5hcnkg
ZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1vcmllbnRBbmdsZS1wcm9wLWV4cGVjdGVkLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
b3JpZW50VHlwZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
b3JpZW50VHlwZS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyYjRiZjM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVu
dFR5cGUtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LTZkYzM1YzE5YTE2NWI0MTFmN2Q4NzNmM2E5ZDMxMDVhClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50VHlwZS1wcm9wLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLW9yaWVudFR5cGUtcHJvcC1leHBlY3Rl
ZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmlu
YXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50VHlwZS1wcm9wLWV4cGVjdGVk
LnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdk
b20tcmVmWC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVm
WC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
YzA4Mjg3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlgtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTRkMzg3ZWFjYTU1ZDA1
MjY3NzM5MjcxYjdjZDkzN2E4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVs
ZW1lbnQtc3ZnZG9tLXJlZlgtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1z
dmdkb20tcmVmWC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFya2VyRWxlbWVudC1zdmdkb20tcmVmWS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjFiMDgzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1l
bnQtc3ZnZG9tLXJlZlktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLWVkZDY0YTU2ODZhM2Q1NTNlOWYwNGFkNGNkY2FiYTA0ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWS1wcm9w
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlktcHJvcC1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tcmVmWS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3Jp
ZW50VG9BbmdsZS1jYWxsLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
c2V0T3JpZW50VG9BbmdsZS1jYWxsLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiYTNmNjgyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9t
LXNldE9yaWVudFRvQW5nbGUtY2FsbC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLTI2MzE0NmMwYjNkMjFiZTRlYzdmMzZhNzRlYWQyOTg1ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3Jp
ZW50VG9BbmdsZS1jYWxsLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9y
aWVudFRvQW5nbGUtY2FsbC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
c2V0T3JpZW50VG9BbmdsZS1jYWxsLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BdXRvLWNhbGwtZXhw
ZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRPcmllbnRUb0F1dG8tY2Fs
bC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDMyMWVm
ZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRPcmllbnRUb0F1dG8tY2Fs
bC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWY0YzFmMzc0
ZmQ5Y2IxNjgwYmM3N2YzODFmYTM3ZjVhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BdXRvLWNhbGwtZXhwZWN0
ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tc2V0T3JpZW50VG9BdXRvLWNhbGwtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdhZDEzLi4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXNldE9yaWVudFRvQXV0by1jYWxsLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQt
ZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLWhlaWdo
dC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1
YWFkYmFkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTE5NTU4NjJmMmRmNTMzMDIw
M2QzOWEyOTU3ZjNmMGNmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFza0VsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRv
bS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY2N2FkMTMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLWhlaWdodC1h
dHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0Vs
ZW1lbnQtZG9tLW1hc2tDb250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tF
bGVtZW50LWRvbS1tYXNrQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjMWI0NzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1l
bnQtZG9tLW1hc2tDb250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTliZDdmOTE3YzBhMDg4NmFlNDdiNzc0NDc5MDg1ZjE2ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLW1hc2tD
b250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20tbWFza0NvbnRl
bnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjY3YWQxMy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20tbWFza0NvbnRl
bnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFza0VsZW1lbnQtZG9tLW1hc2tVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFz
a0VsZW1lbnQtZG9tLW1hc2tVbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzNTEwZGRhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRv
bS1tYXNrVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLWNkNTc2MjhjNjQ2Zjc1NzQ4OTQxNzA1ZTM1NzNiODEyClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLW1hc2tVbml0cy1hdHRyLWV4
cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS1tYXNrVW5pdHMtYXR0ci1leHBlY3RlZC5wbmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyY2NjMTIuLjAwMDAwMDAKQmluYXJ5IGZp
bGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLW1hc2tVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhw
ZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk2ZmJlOS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdNYXNrRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLWU1YWE4MDJkMzMxYTgxNjZjZmU2YWI2MWQ3Zjg0NTIzClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXdpZHRo
LWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQu
cG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzhkYmViLi4wMDAwMDAwCkJpbmFy
eSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hc2tFbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmZjM3ZTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0Vs
ZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTk0ZDIzMjE3MGE2NjAwMGQwN2UwMWY1ZDJhMjljOGYzClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXNrRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYTgzMmI0MC4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVu
dC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFza0VsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50
LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGNjMjljMWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLXktYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWNiYTdkMmZjNjdkZjQ2NjQz
MTZjYWViOTI4ZTRkMTlkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFza0VsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20teS1h
dHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJjYzJmYy4u
MDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBu
ZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLWhl
aWdodC1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLWhlaWdodC1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMGNk
ZGJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTQ1MzQ1NzIxNjM3N2VhMmFj
NDZjNjdhOTMyMmY2NDc1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFza0VsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50
LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM1ZTg3ZTcuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9t
LWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tDb250ZW50VW5pdHMtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrQ29udGVudFVuaXRzLXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyMDJlNDYuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tDb250ZW50VW5pdHMtcHJvcC1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWU1MzQ5NDljYzljMzgyMmU1NzU2
MzYxMmQ2ODU0NjZmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFz
a0VsZW1lbnQtc3ZnZG9tLW1hc2tDb250ZW50VW5pdHMtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNr
RWxlbWVudC1zdmdkb20tbWFza0NvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc5NDhiZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXNrRWxlbWVudC1zdmdkb20tbWFza0NvbnRlbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tVbml0
cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tVbml0cy1w
cm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTlh
ZTA1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS1tYXNrVW5pdHMtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWQxNzY2Y2ZmMzdkODZm
NjBhYzUzYjA3MTEzMTI1N2JhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFza0VsZW1lbnQtc3ZnZG9tLW1hc2tVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tF
bGVtZW50LXN2Z2RvbS1tYXNrVW5pdHMtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ5ZDZjZTEuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1l
bnQtc3ZnZG9tLW1hc2tVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQ3ZjM0Mi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNr
RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLWRmODE2YTkzNDUxN2UwMTA4MGEwZTQzMGY2ZDUyZGYwClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRo
LXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0
ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODhkZDY1Li4wMDAwMDAwCkJp
bmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBh
bmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXgtcHJv
cC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQu
Y2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxMTgwN2QuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLWY4NDUwZDdhZmYzNDQ2YTgxNmUyMWVmMjExMjliNjMxClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9t
LXgtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVk
LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Q1OTQ2Mi4uMDAwMDAwMApCaW5h
cnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBl
Y3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlOGVhNWMuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFza0VsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxs
CkBAIC0xICswLDAgQEAKLTUyNWYyZmI2ODFmMjVlYTQ0MzBjMDgyNTA5YzY3ODc2ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXktcHJv
cC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzlhZWYyZC4uMDAwMDAwMApCaW5hcnkgZmls
ZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdNYXNrRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxs
IGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVj
dGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2ZhMWVkLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1BhdHRlcm5FbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTU5YjRhYWNkMTk0YjlmMzZmMGM4YmNkNDEyOTk5OGVl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQt
ZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1oZWlnaHQt
YXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzYjczYTcu
LjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4
cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1l
bnQtZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRl
cm5FbGVtZW50LWRvbS1wYXR0ZXJuQ29udGVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljNDdjMGIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0
dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTdkZWUyMjdlMWEwMTZiOWVmZjlkMDE1OTI5
YTA0NGJkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVs
ZW1lbnQtZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJu
RWxlbWVudC1kb20tcGF0dGVybkNvbnRlbnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk1MDEyNi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQ
YXR0ZXJuRWxlbWVudC1kb20tcGF0dGVybkNvbnRlbnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBh
bmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRl
cm5UcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1w
YXR0ZXJuVHJhbnNmb3JtLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNiZjZhY2YuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBh
dHRlcm5UcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0x
ICswLDAgQEAKLTZmZTg4ODE1MjljYzNhNzVhNjM5YmM5NzY3ZDg0NmFhClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5UcmFu
c2Zvcm0tYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20tcGF0dGVyblRyYW5z
Zm9ybS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBk
NmFiZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20tcGF0dGVyblRy
YW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Vbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Vbml0cy1hdHRyLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjFjOWJmLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Bh
dHRlcm5FbGVtZW50LWRvbS1wYXR0ZXJuVW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWVjM2FiNGFkNDAwM2QwMzRmOTU1OGU1MjZkZTkxZWVh
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQt
ZG9tLXBhdHRlcm5Vbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS1w
YXR0ZXJuVW5pdHMtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDdkYTkxMzYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBh
dHRlcm5Vbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQ
YXR0ZXJuRWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjAwYzA5MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVu
dC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLTRhZmUxMjE5MzVhZmI3ZGE2MjEyODI0MTBlODllN2U5ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhw
ZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTdkNDZmLi4wMDAwMDAwCkJpbmFyeSBmaWxl
cyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1BhdHRlcm5FbGVtZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzYmI5ZmYuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0
dGVybkVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLWRmZDA0MjlkN2UyZWQ3ZWYwY2IxYTA3ZGEyYTk0YmFhClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXgtYXR0ci1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTJjZDI4ZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9T
VkdQYXR0ZXJuRWxlbWVudC1kb20teC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1BhdHRlcm5FbGVtZW50LWRvbS15LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiYjFjNDIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVs
ZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICsw
LDAgQEAKLWU0ZTMwNzJjZmNkYTVhNTVkZmQ2M2MzZDhjN2YxYjg1ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOTUwNTdmOS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0
ZXJuRWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTY4NmU5Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTNiN2NiYzY5MjI5MzhkYzY4Y2QyMWEzZTIxMDIxZjA2
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQt
c3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1o
ZWlnaHQtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlj
OWRiNjcuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdo
dC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0
dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtcHJvcC1leHBlY3RlZC5jaGVj
a3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuQ29udGVudFVuaXRzLXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5NDU5YWUuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtcHJv
cC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTliOGFmZGQw
MjY3YTQwN2Q4MjAzYzRmM2E3YmExMzczClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Db250ZW50VW5pdHMtcHJvcC1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVybkNvbnRlbnRVbml0cy1w
cm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDVkMTUyMC4u
MDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVybkNvbnRl
bnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5UcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5j
aGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11
cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVHJhbnNmb3JtLXByb3AtZXhw
ZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwZjdlZjMuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5UcmFuc2Zvcm0tcHJvcC1l
eHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTA5YWQwMDhjNTYx
MTg0YjEyYjZiMGMyMDVhYmNkNDc4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5UcmFuc2Zvcm0tcHJvcC1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblRyYW5zZm9ybS1wcm9wLWV4cGVj
dGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjBlYTZlYi4uMDAwMDAwMApC
aW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVyblRyYW5zZm9ybS1wcm9w
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVs
ZW1lbnQtc3ZnZG9tLXBhdHRlcm5Vbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVy
bkVsZW1lbnQtc3ZnZG9tLXBhdHRlcm5Vbml0cy1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1M2FhYjZlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5F
bGVtZW50LXN2Z2RvbS1wYXR0ZXJuVW5pdHMtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTkzNTU0YWVmZmQ3YTM5NjU5NTYwMmNiNWFmMDYwODZkClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3Zn
ZG9tLXBhdHRlcm5Vbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2Rv
bS1wYXR0ZXJuVW5pdHMtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDFmNzBmMGUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3Zn
ZG9tLXBhdHRlcm5Vbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hl
Y2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAzMjBiZS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQ
YXR0ZXJuRWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLWRjNjczOTcyNWFmNjg0NjRhYzgxMmE0NjQxYjY0NTZlClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3Zn
ZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXdpZHRo
LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmRkZTk5
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9w
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVs
ZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2
Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDY5OWQzNjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1l
eHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTNkOTBiMGY0NGY4
YmViNGI0NDg3NGY2MWY5MWM5NmUzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJu
RWxlbWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYWEyZDJjNS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1z
dmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRl
cm5FbGVtZW50LXN2Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY3YzEyMjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3Zn
ZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LTI4NjFhYWM1ODE4YjRjNjE5ZGVjMzU2ODQ5MTE5OTAxClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNGZlMWU2NS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0
ZXJuRWxlbWVudC1zdmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVk
LmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzE0OGM5Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3gtYXR0ci1leHBlY3RlZC5jaGVja3N1bQor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWUzZTVkMzIxYjg1OThkMzMzNTA2NDk1MjEwY2I1
OTlhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LWRvbS1jeC1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC1kb20tY3gtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE4NWZhNDAuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRv
bS1jeC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YTUzMGVkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC1kb20tY3ktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLTA3ZjA0YmM5YzgzZDVlYTRlYjhhOGJmNjdhYjFiMTRkClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1j
eS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9z
dmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3ktYXR0ci1l
eHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM3N2IyMDAuLjAwMDAw
MDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1jeS1hdHRyLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LWRvbS1meC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LWRvbS1meC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiZjgwNGM0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
ZngtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWYz
NmFjMTVhMmNkYWJjODA1MjYwZWI1Y2FmMjI5ZjU4ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meC1hdHRyLWV4cGVjdGVk
LnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZngtYXR0ci1leHBlY3RlZC5wbmcKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NDQ2YWIuLjAwMDAwMDAKQmluYXJ5IGZpbGVz
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rl
di9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meS1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meS1hdHRy
LWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyODM4Zjgx
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZnktYXR0ci1leHBlY3Rl
ZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTNjYjU4OGVhYWY5ZmIyNzNk
ZjdmNDI3N2RmN2Y1YzFmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC1kb20tZnktYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhlMWMyNTguLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LWRvbS1meS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1h
dHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVu
dFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwOWUxNDQwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20t
Z3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBA
IC0xICswLDAgQEAKLTEyOWFhMDZjNmVlZmMzMjczNDU3ZDFkMjc1YzM1NWI5ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1n
cmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC1kb20tZ3JhZGllbnRUcmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDczODIwY2MuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQg
L2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1n
cmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQtZG9tLWdyYWRpZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggN2JhYzNlMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQtZG9tLWdyYWRpZW50VW5pdHMtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLTEyZTUyYmFkZGE4OWUzZDYxZDk0MjczMjJhOGRjMWU1ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlMjBlNGVjLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC1kb20tZ3JhZGllbnRVbml0cy1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9u
dWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1yLWF0dHIt
ZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLXItYXR0ci1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTJiYWZiMy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtZG9tLXItYXR0ci1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWJlNDgwN2Q1YjZmYjNkMDE2MDY5MDEy
NzE5NDcxYzI2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LWRvbS1yLWF0dHItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LWRvbS1yLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwNDY4NjdjLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC1kb20tci1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwYjQ0N2IzLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTlmNjc1NDM0N2M1YmEzYjNhMjM3ZDk4MWJlZGQxNzhj
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC1zdmdkb20tY3gtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGJjYzZiZjMuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LXN2Z2RvbS1jeC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTI1MGNhLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5jaGVja3N1bQor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTdiNWJkNTVkMTIxOTRjZmYzZGM2YzEzOTNkMTZl
MzhhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC1zdmdkb20tY3ktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJjZWVkOTIuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LXN2Z2RvbS1jeS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1meC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1meC1wcm9wLWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMjU2ZjA1Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVz
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZngtcHJvcC1leHBlY3RlZC5jaGVja3N1
bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWViNWU3ODhkNzU4YzQxZjM0NWM3NGI2MDBk
OWE5OTgzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LXN2Z2RvbS1meC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50
RWxlbWVudC1zdmdkb20tZngtcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDhhMmIwMmYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1meC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1meS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1meS1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZTMyMWJmLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRh
dGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZnktcHJvcC1leHBlY3RlZC5jaGVj
a3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTg1YjI0MTU3NzlmYTgzMGRjNTJkYjRm
M2UzYjhiZDNmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LXN2Z2RvbS1meS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC1zdmdkb20tZnktcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGJlOGRjYWUuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50LXN2Z2RvbS1meS1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZl
cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5z
Zm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2Rv
bS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlZGQ2OGZkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWViNzdlMTM0NjU3NDQ2NjBlNmUxYTE5MzkxMTRkMTYx
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5w
bmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YjkzNTMuLjAwMDAwMDAKQmluYXJ5
IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFRyYW5zZm9ybS1w
cm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFVuaXRzLXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzQ5YmY2Yi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMtcHJv
cC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWFmMTQ1NmM3
Nzk4ODZjYTc2ODQyYWY4ZmI3ZTgyYzFjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFVuaXRzLXByb3At
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1ncmFkaWVudFVuaXRz
LXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxODFlZTA3
Li4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3Jh
ZGllbnRVbml0cy1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQuY2hlY2tz
dW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5jaGVja3N1
bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjViMjdkNi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXItcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTFkMmExOTkzYzAyYTIyYjg0MWQ3NjJlMDM1ZjU0Zjhk
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LXN2Z2RvbS1yLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5ZDU0MDNiLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1z
dmdkb20tci1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVs
ZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1NjgzZmY5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS1oZWln
aHQtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTI0
ODhmOWQxZTgxZTkwMGE2ZTc1OGE4ZGJiNmMyMDNmClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JlY3RFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNmYjY4ZjYuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1l
bnQtZG9tLWhlaWdodC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0gYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdS
ZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTI0ZDg2MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20t
d2lkdGgtYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAK
LWMyYjE1ZjUxYjZkNGIyMjI3NWExZmI5NWU0MTQwMmE5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5n
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHItZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2NDZmY2VmLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVt
ZW50LWRvbS13aWR0aC1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RF
bGVtZW50LWRvbS14LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdiYjJhNTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXgtYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTA1MGEyZTkzOWM4
NDA2Mzg1MWE2NWI2ZTAwYjFhOTdhClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXgtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1k
b20teC1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTA5
NjBiZi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20teC1hdHRyLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9t
LXktYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LWRvbS15LWF0dHItZXhwZWN0
ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzYWJhNTguLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXktYXR0ci1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTRjMThlNjQxM2Q5MTM5NTM4NDVhMWE3MGM4NmZmYmQ3Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXkt
YXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNlMWM0NS4uMDAwMDAwMApCaW5hcnkgZmls
ZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdSZWN0RWxlbWVudC1kb20teS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRp
ZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVk
LmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTUzNTAxLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JlY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLTk4MGM4MjViNDc0NzE2OWQ5NzAyMGU2YTUyNTc3ZTFjClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9t
LWhlaWdodC1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJv
cC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkMjM3NTcuLjAw
MDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3Zn
ZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20td2lk
dGgtcHJvcC1leHBlY3RlZC5jaGVja3N1bQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZWVmMDY5ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWU5ZGY0YWU0OGZlNzIx
ZjFhZjE0YzRhMzZlZDZlMzM2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1l
bnQtc3ZnZG9tLXdpZHRoLXByb3AtZXhwZWN0ZWQucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzYjRhMDBiLi4wMDAwMDAwCkJpbmFyeSBmaWxlcyBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2Z2Rv
bS13aWR0aC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVt
ZW50LXN2Z2RvbS14LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDMyYWM2MDMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXgtcHJv
cC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWYzOTkxMDQ0
ZTBmMzkzYjExODRlNWMwYTY2ZDIzYjFiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXgtcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxl
bWVudC1zdmdkb20teC1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjllYmZmNy4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20t
eC1wcm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVj
dEVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1JlY3RFbGVtZW50LXN2
Z2RvbS15LXByb3AtZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUyMGJjNTkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBl
Y3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTM5ZGZhNDE0MWFkYzBk
NWViMWQyYWUxZTJlMGMxNWQwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXktcHJvcC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1z
dmdkb20teS1wcm9wLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MWM2YjkxMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20teS1wcm9w
LWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVFJlZkVsZW1l
bnQtZG9tLWhyZWYtYXR0ci1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RSZWZFbGVtZW50LWRvbS1ocmVm
LWF0dHItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5
OTQxNDguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVFJlZkVsZW1lbnQtZG9tLWhyZWYtYXR0ci1leHBlY3RlZC5j
aGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTUwZGYyM2NmZDdlZjRjNDk0MmM1
MzUyOGE0YmNhMDZjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVFJl
ZkVsZW1lbnQtZG9tLWhyZWYtYXR0ci1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUUmVmRWxlbWVudC1kb20taHJl
Zi1hdHRyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTU3OWFi
ZS4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUUmVmRWxlbWVudC1kb20taHJlZi1hdHRyLWV4cGVj
dGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtZG9t
LXRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtZG9tLXRyYW5z
Zm9ybS1hdHRyLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlYWI5NTNiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LWRvbS10cmFuc2Zvcm0tYXR0ci1l
eHBlY3RlZC5jaGVja3N1bQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTRjM2NmMGU3ZTNl
NTdlN2M0MjUzZWE2MDM3OGFmMmM1ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHVGV4dEVsZW1lbnQtZG9tLXRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRF
bGVtZW50LWRvbS10cmFuc2Zvcm0tYXR0ci1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDM5MzlhODAuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQt
ZG9tLXRyYW5zZm9ybS1hdHRyLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtc3ZnZG9tLXRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNr
c3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHVGV4dEVsZW1lbnQtc3ZnZG9tLXRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLmNoZWNrc3Vt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWQ3YTYxLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1Rl
eHRFbGVtZW50LXN2Z2RvbS10cmFuc2Zvcm0tcHJvcC1leHBlY3RlZC5jaGVja3N1bQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLWY1NjkyNjQ5ODdiNjQzYTRkYjJmMGU0MTkwNzRhNDhhClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtc3ZnZG9t
LXRyYW5zZm9ybS1wcm9wLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9zdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS10cmFuc2Zv
cm0tcHJvcC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5MGJm
ZjQuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL3N2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtc3ZnZG9tLXRyYW5zZm9ybS1w
cm9wLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZHJ0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhwZWN0YXRpb25zLnR4dAppbmRleCBlZTRiZWE0Li43
ZmQ5ZjBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhw
ZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9kcnRfZXhw
ZWN0YXRpb25zLnR4dApAQCAtMzMsNiArMzMsMTkwIEBAIEJVR19EUlQgV0lOIE1BQyA6IGh0dHAv
dGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtd2l0aC1zbGljZWQtZmlsZS5odG1s
CiBCVUc0ODQzMSBXSU4gTUFDIExJTlVYIDogcGx1Z2lucy9nZXR1cmxub3RpZnktZHVyaW5nLWRv
Y3VtZW50LXRlYXJkb3duLmh0bWwgPSBURVhUCiBCVUc0ODQzMSBXSU4gTUFDIExJTlVYIDogcGx1
Z2lucy9vcGVuLWFuZC1jbG9zZS13aW5kb3ctd2l0aC1wbHVnaW4uaHRtbCA9IFRFWFQKIAorLy8g
TmVlZHMgaW52ZXN0aWdhdGlvbiwgdGhlc2Ugc2hvdWxkIG1hdGNoIHRlc3Rfc2hlbGwuCisvLyBO
b3RlOiBXZSBjYW4ndCB1c2UgdGhlIHJlYmFzZWxpbmUgdG9vbCBmb3IgdGhlc2UgdGVzdHMgYXQg
dGhpcyBtb21lbnQuCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R0NpcmNsZUVsZW1lbnQtZG9tLWN4LWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElO
VVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0NpcmNsZUVsZW1lbnQtZG9tLWN5LWF0dHIuaHRt
bCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0Np
cmNsZUVsZW1lbnQtZG9tLXItYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6
IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tY3gtcHJvcC5odG1s
ID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2ly
Y2xlRWxlbWVudC1zdmdkb20tY3ktcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5V
WCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ2lyY2xlRWxlbWVudC1zdmdkb20tci1wcm9wLmh0
bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdD
bGlwUGF0aC1pbmZsdWVuY2VzLWhpdFRlc3RpbmcuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4g
TElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0NsaXBQYXRoRWxlbWVudC1kb20tY2xpcFBh
dGhVbml0cy1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdDbGlwUGF0aEVsZW1lbnQtc3ZnZG9tLWNsaXBQYXRoVW5pdHMtcHJvcC5o
dG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
Q3Vyc29yRWxlbWVudC1kb20teC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVY
IDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdDdXJzb3JFbGVtZW50LWRvbS15LWF0dHIuaHRtbCA9
IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0N1cnNv
ckVsZW1lbnQtc3ZnZG9tLXgtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6
IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHQ3Vyc29yRWxlbWVudC1zdmdkb20teS1wcm9wLmh0bWwg
PSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxp
cHNlRWxlbWVudC1kb20tY3gtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6
IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtZG9tLWN5LWF0dHIuaHRtbCA9
IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlw
c2VFbGVtZW50LWRvbS1yeC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDog
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdFbGxpcHNlRWxlbWVudC1kb20tcnktYXR0ci5odG1sID0g
SU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBz
ZUVsZW1lbnQtc3ZnZG9tLWN4LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVgg
OiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0VsbGlwc2VFbGVtZW50LXN2Z2RvbS1jeS1wcm9wLmh0
bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdF
bGxpcHNlRWxlbWVudC1zdmdkb20tcngtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBM
SU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRWxsaXBzZUVsZW1lbnQtc3ZnZG9tLXJ5LXBy
b3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVz
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20tZGlmZnVzZUNvbnN0YW50LWF0dHIuaHRt
bCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1kb20taW4tYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3
IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LWRvbS1saWdodGluZy1jb2xvci1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJ
TlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtZG9t
LXN1cmZhY2VTY2FsZS1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtc3ZnZG9tLWRpZmZ1
c2VDb25zdGFudC1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtc3ZnZG9tLWluLXByb3Au
aHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1zdmdkb20tc3VyZmFjZVNjYWxlLXByb3AuaHRtbCA9
IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zm
c2V0RWxlbWVudC1kb20tZHgtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6
IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVPZmZzZXRFbGVtZW50LWRvbS1keS1hdHRyLmh0bWwg
PSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9m
ZnNldEVsZW1lbnQtZG9tLWluLWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVgg
OiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFT2Zmc2V0RWxlbWVudC1zdmdkb20tZHgtcHJvcC5o
dG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVPZmZzZXRFbGVtZW50LXN2Z2RvbS1keS1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lO
IExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRU9mZnNldEVsZW1lbnQtc3ZnZG9tLWlu
LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ZpbHRlckVsZW1lbnQtZG9tLWZpbHRlclJlcy1hdHRyLmh0bWwgPSBJTUFHRQorQlVH
NTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRv
bS1maWx0ZXJVbml0cy1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS1oZWlnaHQtYXR0ci5odG1sID0g
SU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
RWxlbWVudC1kb20tcHJpbWl0aXZlVW5pdHMtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJ
TiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20td2lkdGgt
YXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRmlsdGVyRWxlbWVudC1kb20teC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lO
IExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LWRvbS15LWF0dHIu
aHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlcy1jYWxsLmh0bWwgPSBJTUFHRQorQlVHNTAx
OTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJFbGVtZW50LXN2Z2Rv
bS1maWx0ZXJSZXNYLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLWZpbHRlclJlc1ktcHJvcC5o
dG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RmlsdGVyRWxlbWVudC1zdmdkb20tZmlsdGVyVW5pdHMtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUw
MTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdk
b20taGVpZ2h0LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXByaW1pdGl2ZVVuaXRzLXByb3Au
aHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBX
SU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZpbHRlckVsZW1lbnQtc3ZnZG9tLXgt
cHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRmlsdGVyRWxlbWVudC1zdmdkb20teS1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcg
V0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMtZG9tLWhlaWdodC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJ
TlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMtZG9tLXJlc3VsdC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDog
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMt
ZG9tLXdpZHRoLWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy1kb20teC1h
dHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRl
cy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMtZG9tLXktYXR0ci5odG1sID0g
SU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS1oZWlnaHQtcHJvcC5odG1sID0gSU1B
R0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS1yZXN1bHQtcHJvcC5odG1sID0gSU1BR0UK
K0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLXN2Z2RvbS13aWR0aC1wcm9wLmh0bWwgPSBJTUFHRQorQlVH
NTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXMtc3ZnZG9tLXgtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJ
TiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzLXN2Z2RvbS15LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVgg
OiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS1oZWlnaHQt
YXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQtZG9tLXdpZHRoLWF0dHIuaHRtbCA9IElNQUdFCitC
VUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RF
bGVtZW50LWRvbS14LWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LWRvbS15LWF0dHIuaHRtbCA9
IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3
IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQt
c3ZnZG9tLXdpZHRoLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS14LXByb3AuaHRt
bCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LXN2Z2RvbS15LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBX
SU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20taGVpZ2h0
LWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRh
dGVzL1NWR0ltYWdlRWxlbWVudC1kb20tcHJlc2VydmVBc3BlY3RSYXRpby1hdHRyLmh0bWwgPSBJ
TUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVs
ZW1lbnQtZG9tLXdpZHRoLWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBz
dmcvZHluYW1pYy11cGRhdGVzL1NWR0ltYWdlRWxlbWVudC1kb20teC1hdHRyLmh0bWwgPSBJTUFH
RQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1l
bnQtZG9tLXktYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVtZW50LXN2Z2RvbS1oZWlnaHQtcHJvcC5odG1sID0gSU1B
R0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VFbGVt
ZW50LXN2Z2RvbS13aWR0aC1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDog
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXgtcHJvcC5odG1sID0g
SU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHSW1hZ2VF
bGVtZW50LXN2Z2RvbS15LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBz
dmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS14MS1hdHRyLmh0bWwgPSBJTUFH
RQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVu
dC1kb20teDItYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtZG9tLXkxLWF0dHIuaHRtbCA9IElNQUdFCitCVUc1
MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVFbGVtZW50LWRvbS15
Mi1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teDEtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3
IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZUVsZW1lbnQtc3ZnZG9tLXgy
LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRh
dGVzL1NWR0xpbmVFbGVtZW50LXN2Z2RvbS15MS1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcg
V0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lRWxlbWVudC1zdmdkb20teTIt
cHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFRyYW5zZm9ybS1hdHRyLmh0
bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLWdyYWRpZW50VW5pdHMtYXR0ci5odG1sID0gSU1BR0UK
K0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LWRvbS14MS1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDog
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtZG9tLXgyLWF0dHIu
aHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC1kb20teTEtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3
IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
LWRvbS15Mi1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VW5pdHMt
cHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS14MS1wcm9wLmh0bWwgPSBJTUFHRQor
QlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQtc3ZnZG9tLXgyLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVgg
OiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20teTEt
cHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LXN2Z2RvbS15Mi1wcm9wLmh0bWwgPSBJTUFHRQor
QlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50
LWRvbS1tYXJrZXJIZWlnaHQtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6
IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyVW5pdHMtYXR0
ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHTWFya2VyRWxlbWVudC1kb20tbWFya2VyV2lkdGgtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUw
MTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1kb20t
b3JpZW50LWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtZG9tLXJlZlgtYXR0ci5odG1sID0gSU1BR0UKK0JV
RzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1k
b20tcmVmWS1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFt
aWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1tYXJrZXJIZWlnaHQtcHJvcC5odG1s
ID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFy
a2VyRWxlbWVudC1zdmdkb20tbWFya2VyVW5pdHMtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3
IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20t
bWFya2VyV2lkdGgtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50QW5nbGUtcHJvcC5o
dG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
TWFya2VyRWxlbWVudC1zdmdkb20tb3JpZW50VHlwZS1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAx
OTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2Rv
bS1yZWZYLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1p
Yy11cGRhdGVzL1NWR01hcmtlckVsZW1lbnQtc3ZnZG9tLXJlZlktcHJvcC5odG1sID0gSU1BR0UK
K0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHTWFya2VyRWxlbWVu
dC1zdmdkb20tc2V0T3JpZW50VG9BbmdsZS1jYWxsLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lO
IExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXJrZXJFbGVtZW50LXN2Z2RvbS1zZXRP
cmllbnRUb0F1dG8tY2FsbC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtZG9tLWhlaWdodC1hdHRyLmh0bWwgPSBJTUFH
RQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVu
dC1kb20tbWFza0NvbnRlbnRVbml0cy1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJ
TlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20tbWFza1VuaXRzLWF0
dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVz
L1NWR01hc2tFbGVtZW50LWRvbS13aWR0aC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lO
IExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1kb20teC1hdHRyLmh0
bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdN
YXNrRWxlbWVudC1kb20teS1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDog
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdNYXNrRWxlbWVudC1zdmdkb20taGVpZ2h0LXByb3AuaHRt
bCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR01h
c2tFbGVtZW50LXN2Z2RvbS1tYXNrQ29udGVudFVuaXRzLXByb3AuaHRtbCA9IElNQUdFCitCVUc1
MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2Rv
bS1tYXNrVW5pdHMtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9k
eW5hbWljLXVwZGF0ZXMvU1ZHTWFza0VsZW1lbnQtc3ZnZG9tLXdpZHRoLXByb3AuaHRtbCA9IElN
QUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVt
ZW50LXN2Z2RvbS14LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcv
ZHluYW1pYy11cGRhdGVzL1NWR01hc2tFbGVtZW50LXN2Z2RvbS15LXByb3AuaHRtbCA9IElNQUdF
CitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVt
ZW50LWRvbS1oZWlnaHQtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2
Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5Db250ZW50VW5p
dHMtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXBhdHRlcm5UcmFuc2Zvcm0tYXR0ci5odG1sID0g
SU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVy
bkVsZW1lbnQtZG9tLXBhdHRlcm5Vbml0cy1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lO
IExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1kb20td2lkdGgt
YXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXgtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJ
TiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUGF0dGVybkVsZW1lbnQtZG9tLXktYXR0
ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMv
U1ZHUGF0dGVybkVsZW1lbnQtc3ZnZG9tLWhlaWdodC1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAx
OTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdk
b20tcGF0dGVybkNvbnRlbnRVbml0cy1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJ
TlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20tcGF0dGVy
blVuaXRzLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1p
Yy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS13aWR0aC1wcm9wLmh0bWwgPSBJTUFH
RQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxl
bWVudC1zdmdkb20teC1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3Zn
L2R5bmFtaWMtdXBkYXRlcy9TVkdQYXR0ZXJuRWxlbWVudC1zdmdkb20teS1wcm9wLmh0bWwgPSBJ
TUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQtZG9tLWN4LWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElO
VVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tY3kt
YXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1meC1hdHRyLmh0bWwgPSBJTUFHRQorQlVH
NTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQtZG9tLWZ5LWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcv
ZHluYW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tZ3JhZGllbnRUcmFu
c2Zvcm0tYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LWRvbS1ncmFkaWVudFVuaXRzLWF0dHIu
aHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC1kb20tci1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcg
V0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQt
c3ZnZG9tLWN4LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tY3ktcHJvcC5odG1s
ID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LXN2Z2RvbS1meC1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcg
V0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQt
c3ZnZG9tLWZ5LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRVbml0
cy1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLXItcHJvcC5odG1sID0gSU1BR0UK
K0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQt
ZG9tLWhlaWdodC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5
bmFtaWMtdXBkYXRlcy9TVkdSZWN0RWxlbWVudC1kb20td2lkdGgtYXR0ci5odG1sID0gSU1BR0UK
K0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQt
ZG9tLXgtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtZG9tLXktYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3
IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLWhl
aWdodC1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdSZWN0RWxlbWVudC1zdmdkb20td2lkdGgtcHJvcC5odG1sID0gSU1BR0UKK0JV
RzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3Zn
ZG9tLXgtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHUmVjdEVsZW1lbnQtc3ZnZG9tLXktcHJvcC5odG1sID0gSU1BR0UKK0JVRzUw
MTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHVFJlZkVsZW1lbnQtZG9tLWhy
ZWYtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHVGV4dEVsZW1lbnQtZG9tLXRyYW5zZm9ybS1hdHRyLmh0bWwgPSBJTUFHRQorQlVH
NTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUZXh0RWxlbWVudC1zdmdk
b20tdHJhbnNmb3JtLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcv
ZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1kb20tbGltaXRpbmdDb25lQW5n
bGUtYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVw
ZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2ludHNBdFgtYXR0ci5odG1sID0gSU1B
R0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGln
aHRFbGVtZW50LWRvbS1wb2ludHNBdFktYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBM
SU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1wb2lu
dHNBdFotYXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWlj
LXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS1zcGVjdWxhckV4cG9uZW50LWF0dHIu
aHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NW
R0ZFU3BvdExpZ2h0RWxlbWVudC1kb20teC1hdHRyLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lO
IExJTlVYIDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtZG9tLXkt
YXR0ci5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0
ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LWRvbS16LWF0dHIuaHRtbCA9IElNQUdFCitCVUc1MDE5
NyBXSU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1z
dmdkb20tbGltaXRpbmdDb25lQW5nbGUtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBM
SU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1w
b2ludHNBdFgtcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5h
bWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFktcHJvcC5o
dG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZH
RkVTcG90TGlnaHRFbGVtZW50LXN2Z2RvbS1wb2ludHNBdFotcHJvcC5odG1sID0gSU1BR0UKK0JV
RzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRFbGVt
ZW50LXN2Z2RvbS1zcGVjdWxhckV4cG9uZW50LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBX
SU4gTElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC1zdmdk
b20teC1wcm9wLmh0bWwgPSBJTUFHRQorQlVHNTAxOTcgV0lOIExJTlVYIDogc3ZnL2R5bmFtaWMt
dXBkYXRlcy9TVkdGRVNwb3RMaWdodEVsZW1lbnQtc3ZnZG9tLXktcHJvcC5odG1sID0gSU1BR0UK
K0JVRzUwMTk3IFdJTiBMSU5VWCA6IHN2Zy9keW5hbWljLXVwZGF0ZXMvU1ZHRkVTcG90TGlnaHRF
bGVtZW50LXN2Z2RvbS16LXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTUFDIExJTlVY
IDogc3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQtbGlnaHRp
bmctY29sb3ItY3NzLXByb3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTUFDIExJTlVYIDog
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdJbWFnZUVsZW1lbnQtc3ZnZG9tLXByZXNlcnZlQXNwZWN0
UmF0aW8tcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBNQUMgTElOVVggOiBzdmcvZHlu
YW1pYy11cGRhdGVzL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC1zdmdkb20tZ3JhZGllbnRUcmFu
c2Zvcm0tcHJvcC5odG1sID0gSU1BR0UKK0JVRzUwMTk3IFdJTiBNQUMgTElOVVggOiBzdmcvZHlu
YW1pYy11cGRhdGVzL1NWR1BhdHRlcm5FbGVtZW50LXN2Z2RvbS1wYXR0ZXJuVHJhbnNmb3JtLXBy
b3AuaHRtbCA9IElNQUdFCitCVUc1MDE5NyBXSU4gTUFDIExJTlVYIDogc3ZnL2R5bmFtaWMtdXBk
YXRlcy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQtc3ZnZG9tLWdyYWRpZW50VHJhbnNmb3JtLXBy
b3AuaHRtbCA9IElNQUdFCisKIC8vIE5lZWQgdG8gaW1wbGVtZW50IHNvbWV0aGluZz8KIEJVR19E
UlQgV0lOIDogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9jb25zb2xlLWxvZy1iZWZvcmUt
ZnJhbWUtbmF2aWdhdGlvbi5odG1sID0gQ1JBU0gKIC8vIEluc3BlY3RvciB0ZXN0cyBpbiBEZWJ1
ZyBidWlsZCBhcmUgdmVyeSBzbG93LiAgSWYgd2UgcmVtb3ZlIFNMT1csIHdlJ2xsIHNlZQpAQCAt
NDEsMTUgKzIyNSwxMiBAQCBCVUdfRFJUIFdJTiBERUJVRyBTTE9XIDogaW5zcGVjdG9yID0gUEFT
UwogCiAKIC8vIFdlYkdMIHRlc3RzIHNvbWV0aW1lcyBmYWlsIG9ubHkgb24gdGhlIGJ1aWxkYm90
LgotQlVHX0RSVCBNQUMgOiBmYXN0L2NhbnZhcy93ZWJnbC9iYWQtYXJndW1lbnRzLXRlc3QuaHRt
bCA9IFRFWFQKIEJVR19EUlQgTUFDIDogZmFzdC9jYW52YXMvd2ViZ2wvYnVmZmVyLWJpbmQtdGVz
dC5odG1sID0gVEVYVCBQQVNTCiBCVUdfRFJUIE1BQyA6IGZhc3QvY2FudmFzL3dlYmdsL2J1ZmZl
ci1kYXRhLWFycmF5LWJ1ZmZlci5odG1sID0gVEVYVCBQQVNTCiBCVUdfRFJUIE1BQyA6IGZhc3Qv
Y2FudmFzL3dlYmdsL2NhbnZhcy10ZXN0Lmh0bWwgPSBURVhUIFBBU1MKIEJVR19EUlQgTUFDIDog
ZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwt
YW50aWFsaWFzLmh0bWwgPSBURVhUIFBBU1MKIEJVR19EUlQgTUFDIDogZmFzdC9jYW52YXMvd2Vi
Z2wvY29udGV4dC1hdHRyaWJ1dGVzLmh0bWwgPSBURVhUIFBBU1MKIEJVR19EUlQgTUFDIDogZmFz
dC9jYW52YXMvd2ViZ2wvY29weS10ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC5odG1sID0gVEVY
VCBQQVNTCi1CVUdfRFJUIE1BQyA6IGZhc3QvY2FudmFzL3dlYmdsL2Nzcy13ZWJraXQtY2FudmFz
LXJlcGFpbnQuaHRtbCA9IElNQUdFK1RFWFQKLUJVR19EUlQgTUFDIDogZmFzdC9jYW52YXMvd2Vi
Z2wvY3NzLXdlYmtpdC1jYW52YXMuaHRtbCA9IElNQUdFK1RFWFQKIEJVR19EUlQgTUFDIDogZmFz
dC9jYW52YXMvd2ViZ2wvZHJhdy1hcnJheXMtb3V0LW9mLWJvdW5kcy5odG1sID0gVEVYVCBQQVNT
CiBCVUdfRFJUIE1BQyA6IGZhc3QvY2FudmFzL3dlYmdsL2RyYXctZWxlbWVudHMtb3V0LW9mLWJv
dW5kcy5odG1sID0gVEVYVCBQQVNTCiBCVUdfRFJUIE1BQyA6IGZhc3QvY2FudmFzL3dlYmdsL2Vy
cm9yLXJlcG9ydGluZy5odG1sID0gVEVYVCBQQVNTCkBAIC05NCw2ICsyNzUsOCBAQCBCVUdfRFJU
IE1BQyA6IGZhc3QvY2FudmFzL3dlYmdsL3RleHR1cmUtbnBvdC5odG1sID0gVEVYVCBQQVNTCiBC
VUdfRFJUIE1BQyA6IGZhc3QvY2FudmFzL3dlYmdsL3RleHR1cmUtdHJhbnNwYXJlbnQtcGl4ZWxz
LWluaXRpYWxpemVkLmh0bWwgPSBURVhUIFBBU1MKIEJVR19EUlQgTUFDIDogZmFzdC9jYW52YXMv
d2ViZ2wvdHJpYW5nbGUuaHRtbCA9IFRFWFQgUEFTUwogQlVHX0RSVCBNQUMgOiBmYXN0L2NhbnZh
cy93ZWJnbC92aWV3cG9ydC11bmNoYW5nZWQtdXBvbi1yZXNpemUuaHRtbCA9IFRFWFQgUEFTUwor
QlVHX0RSVCBNQUMgOiBmYXN0L2NhbnZhcy93ZWJnbC9jc3Mtd2Via2l0LWNhbnZhcy1yZXBhaW50
Lmh0bWwgPSBJTUFHRStURVhUCitCVUdfRFJUIE1BQyA6IGZhc3QvY2FudmFzL3dlYmdsL2Nzcy13
ZWJraXQtY2FudmFzLmh0bWwgPSBJTUFHRStURVhUCiAKIC8vIE1pc2MuCiBCVUdfRFJUIE1BQyA6
IGZhc3QvYmFja2dyb3VuZHMvc29saWQtY29sb3ItY29udGV4dC1yZXN0b3JlLmh0bWwgPSBJTUFH
RQpAQCAtMTIxLDYgKzMwNCw3IEBAIEJVR19EUlQgV0lOIDogcGx1Z2lucy9lbWJlZC1hdHRyaWJ1
dGVzLXNldHRpbmcuaHRtbCA9IFRFWFQKIEJVR19EUlQgV0lOIDogcGx1Z2lucy9lbWJlZC1hdHRy
aWJ1dGVzLXN0eWxlLmh0bWwgPSBJTUFHRQogQlVHX0RSVCBMSU5VWCA6IHBsdWdpbnMvZW1iZWQt
YXR0cmlidXRlcy1zdHlsZS5odG1sID0gSU1BR0UrVEVYVAogQlVHX0RSVCBXSU4gTUFDIExJTlVY
IDogc3RvcmFnZS9kb21zdG9yYWdlL3F1b3RhLmh0bWwgPSBURVhUCitCVUdfRFJUIFdJTiBNQUMg
TElOVVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS1yb3RhdGUt
cHJvcC5odG1sID0gSU1BR0UrVEVYVAogQlVHX0RSVCBXSU4gTUFDIExJTlVYIDogdXNlcnNjcmlw
dHMvdXNlci1zY3JpcHQtdG9wLWZyYW1lLW9ubHkuaHRtbCA9IFRFWFQKIEJVR19EUlQgTUFDIDog
ZmFzdC9ldmVudHMvc3RhbmRhbG9uZS1pbWFnZS1kcmFnLXRvLWVkaXRhYmxlLmh0bWwgPSBJTUFH
RStURVhUCiBCVUdfRFJUIExJTlVYIDogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctaW1hZ2UtaW4t
YWJvdXQtYmxhbmstZnJhbWUuaHRtbCA9IENSQVNICkBAIC0xNTQsNyArMzM4LDYgQEAgQlVHX0RS
VCBMSU5VWCA6IHN2Zy9XM0MtU1ZHLTEuMS9wc2VydmVycy1ncmFkLTEzLWIuc3ZnID0gSU1BR0UK
IEJVR19EUlQgTElOVVggOiBzdmcvYmF0aWsvdGV4dC92ZXJ0aWNhbFRleHQuc3ZnID0gSU1BR0Ur
VEVYVAogQlVHX0RSVCBMSU5VWCA6IHN2Zy9jdXN0b20vcGF0dGVybi1leGNlc3NpdmUtbWFsbG9j
LnN2ZyA9IElNQUdFIFBBU1MKIEJVR19EUlQgTElOVVggOiBzdmcvY3VzdG9tL3JhZGlhbC1ncmFk
aWVudC13aXRoLW91dHN0YW5kaW5nLWZvY2FsUG9pbnQuc3ZnID0gSU1BR0UKLUJVR19EUlQgTElO
VVggOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC1saWdo
dGluZy1jb2xvci1jc3MtcHJvcC5odG1sID0gSU1BR0UKIEJVR19EUlQgTElOVVggOiBzdmcvaGl4
aWUvcGVyZi8wMDEueG1sID0gVEVYVAogQlVHX0RSVCBMSU5VWCA6IHN2Zy9oaXhpZS9wZXJmLzAw
Mi54bWwgPSBURVhUCiBCVUdfRFJUIExJTlVYIDogc3ZnL3pvb20vcGFnZS96b29tLWNvb3Jkcy12
aWV3YXR0ci0wMS1iLnN2ZyA9IElNQUdFCkBAIC0yMDYsMyArMzg5LDgyIEBAIEJVR19EUlQgV0lO
IDogY3NzMi4xL3QwOTA1LWM0MTQtZmx0LWZpdC0wMS1kLWcuaHRtbCA9IElNQUdFK1RFWFQKIEJV
R19EUlQgV0lOIDogY3NzMi4xL3QwOTA1LWM1NTI1LWZsdGJsY2stMDAtZC1hZy5odG1sID0gSU1B
R0UrVEVYVAogQlVHX0RSVCBXSU4gOiBjc3MyLjEvdDA5MDUtYzU1MjUtZmx0aHctMDAtYy1nLmh0
bWwgPSBJTUFHRStURVhUCiBCVUdfRFJUIFdJTiA6IGNzczIuMS90MDkwNS1jNTUyNi1mbHRody0w
MC1jLWcuaHRtbCA9IElNQUdFK1RFWFQKK0JVR19EUlQgV0lOIDogZWRpdGluZy9wYXN0ZWJvYXJk
LzQ2NDEwMzMuaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGVkaXRpbmcvcGFzdGVib2FyZC80
OTQ0NzcwLTEuaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGVkaXRpbmcvcGFzdGVib2FyZC80
OTQ0NzcwLTIuaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGVkaXRpbmcvcGFzdGVib2FyZC9z
ZWxlY3QtZWxlbWVudC0xLmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBlZGl0aW5nL3NlbGVj
dGlvbi9jYXJldC1iZWZvcmUtc2VsZWN0Lmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBlZGl0
aW5nL3NlbGVjdGlvbi9yZXBsYWNlZC1ib3VuZGFyaWVzLTMuaHRtbCA9IElNQUdFCitCVUdfRFJU
IFdJTiA6IGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1ib3guaHRtbCA9IElNQUdFCitCVUdfRFJU
IFdJTiA6IGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1lbGVtZW50LXBhcmFncmFwaC1ib3VuZGFy
eS5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1hdm9p
ZGFuY2UuaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvYmxvY2svbWFyZ2luLWNvbGxh
cHNlLzEwMy5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9jc3MvY3NzMi1zeXN0ZW0t
Zm9udHMuaHRtbCA9IElNQUdFK1RFWFQKK0JVR19EUlQgV0lOIDogZmFzdC9mb3Jtcy8wMDMuaHRt
bCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvZm9ybXMvMDA0Lmh0bWwgPSBJTUFHRQorQlVH
X0RSVCBXSU4gOiBmYXN0L2Zvcm1zL0hUTUxPcHRpb25FbGVtZW50X2xhYmVsMDEuaHRtbCA9IElN
QUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvZm9ybXMvSFRNTE9wdGlvbkVsZW1lbnRfbGFiZWwwMi5o
dG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9mb3Jtcy9IVE1MT3B0aW9uRWxlbWVudF9s
YWJlbDAzLmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L2Zvcm1zL0hUTUxPcHRpb25F
bGVtZW50X2xhYmVsMDQuaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvZm9ybXMvSFRN
TE9wdGlvbkVsZW1lbnRfbGFiZWwwNi5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9m
b3Jtcy9IVE1MT3B0aW9uRWxlbWVudF9sYWJlbDA3Lmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4g
OiBmYXN0L2Zvcm1zL2Jhc2ljLXNlbGVjdHMuaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGZh
c3QvZm9ybXMvY29udHJvbC1jbGlwLW92ZXJmbG93Lmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4g
OiBmYXN0L2Zvcm1zL2NvbnRyb2wtcmVzdHJpY3QtbGluZS1oZWlnaHQuaHRtbCA9IElNQUdFCitC
VUdfRFJUIFdJTiA6IGZhc3QvZm9ybXMvZGlzYWJsZWQtc2VsZWN0LWNoYW5nZS1pbmRleC5odG1s
ID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9mb3Jtcy9mb3JtLWVsZW1lbnQtZ2VvbWV0cnku
aHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvZm9ybXMvbWVudWxpc3QtZGVzZWxlY3Qt
dXBkYXRlLmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L2Zvcm1zL21lbnVsaXN0LW5v
LW92ZXJmbG93Lmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L2Zvcm1zL21lbnVsaXN0
LXJlc3RyaWN0LWxpbmUtaGVpZ2h0Lmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L2Zv
cm1zL21lbnVsaXN0LXNlcGFyYXRvci1wYWludGluZy5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lO
IDogZmFzdC9mb3Jtcy9tZW51bGlzdC1zdHlsZS1jb2xvci5odG1sID0gSU1BR0UKK0JVR19EUlQg
V0lOIDogZmFzdC9mb3Jtcy9tZW51bGlzdC13aWR0aC1jaGFuZ2UuaHRtbCA9IElNQUdFCitCVUdf
RFJUIFdJTiA6IGZhc3QvZm9ybXMvb3B0aW9uLXNjcmlwdC5odG1sID0gSU1BR0UKK0JVR19EUlQg
V0lOIDogZmFzdC9mb3Jtcy9vcHRpb24tc3RyaXAtd2hpdGVzcGFjZS5odG1sID0gSU1BR0UKK0JV
R19EUlQgV0lOIDogZmFzdC9mb3Jtcy9vcHRpb24tdGV4dC1jbGlwLmh0bWwgPSBJTUFHRQorQlVH
X0RSVCBXSU4gOiBmYXN0L2Zvcm1zL3NlYXJjaC1zdHlsZWQuaHRtbCA9IFRFWFQKK0JVR19EUlQg
V0lOIDogZmFzdC9mb3Jtcy9zZWxlY3QtYWxpZ24uaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6
IGZhc3QvZm9ybXMvc2VsZWN0LWJhc2VsaW5lLmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBm
YXN0L2Zvcm1zL3NlbGVjdC1jaGFuZ2UtbGlzdGJveC10by1wb3B1cC5odG1sID0gSU1BR0UKK0JV
R19EUlQgV0lOIDogZmFzdC9mb3Jtcy9zZWxlY3QtZGlydHktcGFyZW50LXByZWYtd2lkdGhzLmh0
bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L2Zvcm1zL3NlbGVjdC1kaXNhYmxlZC1hcHBl
YXJhbmNlLmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L2Zvcm1zL3NlbGVjdC1zZWxl
Y3RlZC5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9mb3Jtcy9zZWxlY3Qtc2l6ZS5o
dG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9mb3Jtcy9zZWxlY3Qtc3R5bGUuaHRtbCA9
IElNQUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvZm9ybXMvc3R1ZmYtb24tbXktb3B0Z3JvdXAuaHRt
bCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvZ3JhZGllbnRzL3JhZGlhbC1jZW50ZXJlZC5o
dG1sID0gSU1BR0UrVEVYVAorQlVHX0RSVCBXSU4gOiBmYXN0L2h0bWwva2V5Z2VuLmh0bWwgPSBJ
TUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L2ludmFsaWQvMDE0Lmh0bWwgPSBJTUFHRQorQlVHX0RS
VCBXSU4gOiBmYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy5odG1sID0gSU1BR0UKK0JVR19EUlQg
V0lOIDogZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtcmVwbGFjZS5odG1sID0gVEVY
VAorQlVHX0RSVCBXSU4gOiBmYXN0L3BhcnNlci9kb2N1bWVudC13cml0ZS1vcHRpb24uaHRtbCA9
IElNQUdFCitCVUdfRFJUIFdJTiA6IGZhc3QvcmVwbGFjZWQvcmVwbGFjZWQtYnJlYWtpbmctbWl4
dHVyZS5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9yZXBsYWNlZC9yZXBsYWNlZC1i
cmVha2luZy5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC9yZXBsYWNlZC90aHJlZS1z
ZWxlY3RzLWJyZWFrLmh0bWwgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBmYXN0L3JlcGxhY2VkL3dp
ZHRoMTAwcGVyY2VudC1tZW51bGlzdC5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC90
ZXh0L2F0c3VpLXNwYWNpbmctZmVhdHVyZXMuaHRtbCA9IElNQUdFCitCVUdfRFJUIFdJTiA6IGZh
c3QvdGV4dC9iYWNrc2xhc2gtdG8teWVuLXNpZ24uaHRtbCA9IElNQUdFK1RFWFQKK0JVR19EUlQg
V0lOIDogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmlkaS1tZW51bGlzdC5odG1sID0gSU1BR0UK
K0JVR19EUlQgV0lOIDogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvYmlkaS1taXJyb3ItaGUtYXIu
aHRtbCA9IElNQUdFK1RFWFQKK0JVR19EUlQgV0lOIDogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwv
aGluZGktc3BhY2luZy5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFzdC90ZXh0L2ludGVy
bmF0aW9uYWwvaGluZGktd2hpdGVzcGFjZS5odG1sID0gSU1BR0UKK0JVR19EUlQgV0lOIDogZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvcGxhbmUyLmh0bWwgPSBJTUFHRStURVhUCitCVUdfRFJUIFdJ
TiA6IGh0dHAvdGVzdHMvbG9jYWwvc2VuZC1zbGljZWQtZHJhZ2dlZC1maWxlLmh0bWwgPSBURVhU
CitCVUdfRFJUIFdJTiA6IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9saW5rLW9wZW5z
LW5ldy13aW5kb3cuaHRtbCA9IFRFWFQKK0JVR19EUlQgV0lOIDogc3ZnL2JhdGlrL3RleHQvdGV4
dEZlYXR1cmVzLnN2ZyA9IElNQUdFCitCVUdfRFJUIFdJTiA6IHN2Zy9iYXRpay90ZXh0L3ZlcnRp
Y2FsVGV4dC5zdmcgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBzdmcvY3VzdG9tL3RleHQtbGlua2lu
Zy5zdmcgPSBJTUFHRQorQlVHX0RSVCBXSU4gOiBzdmcvdGV4dC90ZXh0LWludHJvLTA1LXQuc3Zn
ID0gSU1BR0UKK0JVR19EUlQgV0lOIDogdGFibGVzL21vemlsbGEvYnVncy9idWcxMTg4Lmh0bWwg
PSBJTUFHRQorQlVHX0RSVCBXSU4gOiB0YWJsZXMvbW96aWxsYS9idWdzL2J1ZzE4MzU5Lmh0bWwg
PSBJTUFHRQorQlVHX0RSVCBXSU4gOiB0YWJsZXMvbW96aWxsYS9idWdzL2J1ZzI0NzktMy5odG1s
ID0gSU1BR0UKK0JVR19EUlQgV0lOIDogdGFibGVzL21vemlsbGEvYnVncy9idWcyOTMyNi5odG1s
ID0gSU1BR0UKK0JVR19EUlQgV0lOIDogdGFibGVzL21vemlsbGEvYnVncy9idWczMzg1NS5odG1s
ID0gSU1BR0UKK0JVR19EUlQgV0lOIDogdGFibGVzL21vemlsbGEvYnVncy9idWc0MzgyLmh0bWwg
PSBJTUFHRQorQlVHX0RSVCBXSU4gOiB0YWJsZXMvbW96aWxsYS9idWdzL2J1Zzk2MzM0Lmh0bWwg
PSBJTUFHRQorQlVHX0RSVCBXSU4gOiB0YWJsZXMvbW96aWxsYS9jb3JlL21hcmdpbnMuaHRtbCA9
IElNQUdFCitCVUdfRFJUIFdJTiA6IHRhYmxlcy9tb3ppbGxhL2RvbS90YWJsZURvbS5odG1sID0g
SU1BR0UKK0JVR19EUlQgV0lOIDogdHJhbnNmb3Jtcy8yZC96b29tLW1lbnVsaXN0Lmh0bWwgPSBJ
TUFHRQorCisvLyBUZXN0cyB0aGF0IHBhc3MgdW5kZXIgdGhlIERSVCBvbmx5CitCVUdfRFJUIDog
YW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24uaHRtbCA9IFBBU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL2NvbnRpbnVvdXMt
cGxhdGZvcm0td2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRzL2NvbnRpbnVvdXMtcGxhdGZvcm0t
d2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zOTFkZDZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvY29udGludW91cy1wbGF0Zm9ybS13aGVl
bGV2ZW50LWluLXNjcm9sbGluZy1kaXYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorUEFT
UyBldmVudC53aGVlbERlbHRhWSBpcyB3aW5kb3cuZXhwZWN0ZWRTY3JvbGxUb3AqLTEyMAorUEFT
UyBldmVudC53aGVlbERlbHRhWCBpcyB3aW5kb3cuZXhwZWN0ZWRTY3JvbGxMZWZ0Ki0xMjAKK1BB
U1MgZXZlbnQud2hlZWxEZWx0YSBpcyB3aW5kb3cuZXhwZWN0ZWRTY3JvbGxUb3AqLTEyMAorUEFT
UyBkaXYuc2Nyb2xsVG9wIGlzIHdpbmRvdy5leHBlY3RlZFNjcm9sbFRvcAorUEFTUyBkaXYuc2Ny
b2xsTGVmdCBpcyB3aW5kb3cuZXhwZWN0ZWRTY3JvbGxMZWZ0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYTEyYmIwMi4u
M2NhZjM0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dApAQCAtOTYsNiArOTYsNyBAQCBCVUcyNDE4MiBXSU4gREVCVUcgU0xP
VzogaW5zcGVjdG9yL2NvbnNvbGUtZGlyeG1sLmh0bWwgPSBQQVNTCiBCVUcyNDE4MiBERUJVRyBT
TE9XIDogZmFzdC9kb20vV2luZG93L3dpbmRvdy1mdW5jdGlvbi1mcmFtZS1nZXR0ZXItcHJlY2Vk
ZW5jZS5odG1sID0gUEFTUwogQlVHMjQxODIgU0xPVyBERUJVRyA6IGZhc3QvZnJhbWVzL2ZyYW1l
LWxpbWl0Lmh0bWwgPSBQQVNTCiBCVUcyNDE4MiBTTE9XIDogaHR0cC90ZXN0cy9jYWNoZS9zdWJy
ZXNvdXJjZS1mYWlsb3Zlci10by1uZXR3b3JrLmh0bWwgPSBQQVNTCitCVUcyNDE4MiBTTE9XIDog
YW5pbWF0aW9ucy9wbGF5LXN0YXRlLmh0bWwgPSBQQVNTIFRFWFQKIAogLy8gVXN1YWxseSA8MXMg
aW4gcmVsZWFzZSwgfjFzIGluIGRlYnVnLCBidXQgb2NjYXNpb25hbGx5ID41cyBpbiByZWxlYXNl
LgogQlVHMjczMzUgV0lOIFJFTEVBU0UgOiBwbHVnaW5zL2VtYmVkLWF0dHJpYnV0ZXMtc2V0dGlu
Zy5odG1sID0gUEFTUyBUSU1FT1VUCkBAIC04NTAsMjIgKzg1MSw2IEBAIEJVRzEwMjg0IE1BQyA6
IHN2Zy9jdXN0b20vcGF0aC1iYWQtZGF0YS5zdmcgPSBGQUlMCiAvLyAod3JvbmcgYmFzZWxpbmUg
d2FzIGNvbW1pdHRlZCkuIE5vIGlkZWEgYWJvdXQgd2hlbiBpdCByZWFsbHkgc3RhcnRlZCB0byBm
YWlsLgogQlVHNTI2OTIgV0lOIExJTlVYIDogc3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxlbS04
MC10LnN2ZyA9IElNQUdFK1RFWFQKIAotLy8gTmV3IGluIFdLIHI2NTg4MCwgc29tZSBwcm9iYWJs
eSBqdXN0IG5lZWQgcmViYXNlbGluaW5nLCBvdGhlcnMgaGF2ZSByZWFsIGRpZmZzCi1CVUdXSzQ0
NTE0IDogc3ZnL2NsaXAtcGF0aC9jbGlwLWluLW1hc2stb2JqZWN0Qm91bmRpbmdCb3guc3ZnID0g
SU1BR0UKLUJVR1dLNDQ1MTQgOiBzdmcvY2xpcC1wYXRoL2NsaXAtaW4tbWFzay11c2VyU3BhY2VP
blVzZS5zdmcgPSBJTUFHRQotQlVHV0s0NDUxNCA6IHN2Zy9jbGlwLXBhdGgvY2xpcC1pbi1tYXNr
LnN2ZyA9IElNQUdFCi1CVUdXSzQ0NTE0IDogc3ZnL2NsaXAtcGF0aC9kZWVwLW5lc3RlZC1jbGlw
LWluLW1hc2stZGlmZmVyZW50LXVuaXRUeXBlcy5zdmcgPSBJTUFHRStURVhUCi1CVUdXSzQ0NTE0
IDogc3ZnL2NsaXAtcGF0aC9kZWVwLW5lc3RlZC1jbGlwLWluLW1hc2stcGFubmluZy5zdmcgPSBJ
TUFHRStURVhUCi1CVUdXSzQ0NTE0IDogc3ZnL2NsaXAtcGF0aC9kZWVwLW5lc3RlZC1jbGlwLWlu
LW1hc2suc3ZnID0gSU1BR0UrVEVYVAotQlVHV0s0NDUxNCA6IHN2Zy9jbGlwLXBhdGgvbmVzdGVk
LWNsaXAtaW4tbWFzay1pbWFnZS1iYXNlZC1jbGlwcGluZy5zdmcgPSBJTUFHRQotQlVHV0s0NDUx
NCA6IHN2Zy9jbGlwLXBhdGgvbmVzdGVkLWNsaXAtaW4tbWFzay1wYXRoLWFuZC1pbWFnZS1iYXNl
ZC1jbGlwcGluZy5zdmcgPSBJTUFHRQotQlVHV0s0NDUxNCA6IHN2Zy9jbGlwLXBhdGgvbmVzdGVk
LWNsaXAtaW4tbWFzay1wYXRoLWJhc2VkLWNsaXBwaW5nLnN2ZyA9IElNQUdFCi0vLyBSZWJhc2Vs
aW5lZCBpbiBXSyByNjU4NzQsIExpbnV4IGhhcyBtaXNzaW5nIGxpbmVzCi1CVUdXSzQ0NTE0IExJ
TlVYIFdJTiA6IHN2Zy9jdXN0b20vbWlzc2luZy14bGluay5zdmcgPSBURVhUCi0vLyBBbHNvIGZh
aWwgc2luY2UgV0sgcm9sbCA2NTg1OTo2NTg4NQotQlVHV0s0NDUxNCBNQUMgOiBmYXN0L2JhY2tn
cm91bmRzL3N2Zy1hcy1iYWNrZ3JvdW5kLTYuaHRtbCA9IElNQUdFCi1CVUdXSzQ0NTE0IE1BQyA6
IHN2Zy96b29tL3BhZ2Uvem9vbS1tYXNrLXdpdGgtcGVyY2VudGFnZXMuc3ZnID0gSU1BR0UKLQog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIC8vIEVuZCBTVkcgUmVncmVzc2lvbnMKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzc0
LDcgKzIzNTksNyBAQCBCVUczMjAxOCBERUJVRyA6IHdlYnNvY2tldC90ZXN0cy9zaW1wbGUtc3Ry
ZXNzLmh0bWwgPSBQQVNTIFRFWFQgVElNRU9VVAogQlVHMzE4MDMgTUFDIExJTlVYIDogZWRpdGlu
Zy9pbnNlcnRpbmcvMTI4ODIuaHRtbCA9IElNQUdFIFBBU1MKIAogLy8gZnJvbSBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC81MzA4NgotQlVHMzIxNTMgOiBzdmcvZHluYW1pYy11cGRh
dGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS1yb3RhdGUtcHJvcC5odG1sID0gSU1BR0UrVEVYVAor
QlVHMzIxNTMgOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVtZW50LXN2Z2RvbS1yb3Rh
dGUtcHJvcC5odG1sID0gVEVYVAogCiAvLyBhIGJ1bmNoIG9mIHRlc3RzIGJyb2tlbiBiZWZvcmUg
dGhlIGZsYWtpbmVzcyBmaXgsIGkgd2lsbCBkZWFsIHdpdGggdGhlc2UKIC8vIGFmdGVyIHRoZSBt
YWpvciBmbGFraW5lc3MgZ29lcyBhd2F5CkBAIC0yNDY0LDYgKzI0NDksOCBAQCBCVUczNjk2NiA6
IGZhc3QvbG9hZGVyL2Fib3V0LWJsYW5rLWhhc2gta2VwdC5odG1sID0gRkFJTAogQlVHMzc0NjMg
TUFDIERFQlVHIDogc3ZnL2N1c3RvbS90cmFuc2Zvcm0taWdub3JlLWFmdGVyLWludmFsaWQuc3Zn
ID0gUEFTUyBDUkFTSAogCiAvLyBCdWdzIHRoYXQgd2VudCB1bnJlcG9ydGVkIHdoZW4gd2UgdXBz
dHJlYW1lZCBydW5fd2Via2l0X3Rlc3RzCisvLyBOZXcgdGVzdCwgYWRkZWQgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvNTU3MzcKK0JVRzM3ODk2IDogZmFzdC9ldmVudHMvcmVtb3Zl
LWNoaWxkLW9uc2Nyb2xsLmh0bWwgPSBUSU1FT1VUCiAvLyBUaGlzIG9uZSBtYXkgYmUgYW4gYWN0
dWFsIHJlZ3Jlc3Npb24hIFN0YXJ0ZWQgYmVpbmcgZmxha3kgYWZ0ZXIKIC8vIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvbG9nLz92ZXJib3NlPW9uJnJldj01NTc0MiZzdG9wX3Jldj01NTcxMAogQlVH
Mzc4OTYgTElOVVggOiBmYXN0L2V2ZW50cy9zdGFuZGFsb25lLWltYWdlLWRyYWctdG8tZWRpdGFi
bGUuaHRtbCA9IElNQUdFIElNQUdFK1RFWFQgUEFTUyBURVhUCkBAIC0yNTc4LDYgKzI1NjUsOSBA
QCBCVUc0MjY5NiA6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhv
cml6YXRpb24td2l0aC1lbWJlZGRlci5odAogLy8gU3RhcnRlZCBmYWlsaW5nIGF0IHI1Nzk2OQog
QlVHODcyOSBNQUMgOiBodHRwL3Rlc3RzL211bHRpcGFydC9pbnZhbGlkLWltYWdlLWRhdGEuaHRt
bCA9IElNQUdFCiAKKy8vIFN0YXJ0ZWQgZmFpbGluZyBhdCByNTgwNTgKK0JVR1dLMzgwMjAgV0lO
IExJTlVYIE1BQyA6IGZhc3QvZXZlbnRzL3RvdWNoL3NlbmQtb25jYW5jZWwtZXZlbnQuaHRtbCA9
IFRFWFQKKwogLy8gU3RhcnRlZCBmYWlsaW5nIGF0IHI1ODE1MgogQlVHV0szODAzOCBXSU4gTElO
VVggTUFDIDogZmFzdC91cmwvZmlsZS1odHRwLWJhc2UuaHRtbCA9IFRFWFQKIApAQCAtMjc1OSwx
MCArMjc0OSw2IEBAIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJh
ZGl1c0RvdWJsZTA3Lmh0bWwgPSBJTUFHRQogQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2Jv
cmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDguaHRtbCA9IElNQUdFCiBCVUdXSzQxMzExIFdJTiBM
SU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUwOS5odG1sID0gSU1BR0UKIAot
Ly8gTmVlZCB0byBpbXBsZW1lbnQgdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtl
cnMoKS4KLUJVR1dLNDE4MzIgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0
bWwgPSBGQUlMCi1CVUdXSzQxODMyIDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50
ZWRpdGFibGUuaHRtbCA9IEZBSUwKLQogLy8gRmxha3kgdGVzdHMuCiBCVUc0NDM0NSBMSU5VWCA6
IHN2Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhlZC0wMDkueG1sID0gSU1BR0UgUEFTUwogQlVH
NDQzNDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pvb20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElN
QUdFIFBBU1MKQEAgLTMwMjUsNiArMzAxMSwxMCBAQCBCVUc1MTQxNiA6IGZhc3QvZG9tL0Rldmlj
ZU1vdGlvbi93aW5kb3ctcHJvcGVydHkuaHRtbCA9IFRFWFQKIC8vIFNsb3cgdGVzdCBpbnRyb2R1
Y2VkIGluIHI2NDgxNwogQlVHNTE1NzEgV0lOIDogaHR0cC90ZXN0cy9taXNjL2JhZC1jaGFyc2V0
LWFsaWFzLmh0bWwgPSBUSU1FT1VUCiAKKy8vIHRlc3Rfc2hlbGwgZG9lc24ndCBleHBvc2UgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnN1c3BlbmQvUmVzdW1lQW5pbWF0aW9ucy4KKy8vIFdpbGwgcGFz
cyBvbmNlIHdlJ3ZlIHN3aXRjaGVkIHRvIHRoZSBDaHJvbWl1bSBEUlQuCitXT05URklYIFNLSVA6
IGFuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLmh0bWwgPSBURVhUCisKIC8vIFBy
b2JhYmx5IHJlYmFzZWxpbmUsIGJ1dCB3YW50IHRvIG1ha2Ugc3VyZSBiZWZvcmUgZG9pbmcgc28K
IEJVR0pBUEhFVCBXSU4gOiBzdmcvY3VzdG9tL3Jlc291cmNlLWludmFsaWRhdGUtb24tdGFyZ2V0
LXVwZGF0ZS5zdmcgPSBJTUFHRQogCkBAIC0zMDM0LDExICszMDI0LDI5IEBAIEJVRzUxODU0IFdJ
TiBTTE9XIDogaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWluLWNvcnJl
Y3QtY29udGV4dC5oCiAKIC8vIFJlZ3Jlc3Npb25zIGZyb20gcjY1MjI5CiBCVUdXSzQzOTEyIFdJ
TiBMSU5VWCA6IHN2Zy9XM0MtU1ZHLTEuMS9tYXNraW5nLWludHJvLTAxLWYuc3ZnID0gSU1BR0UK
K0JVR1dLNDM5MTIgV0lOIDogc3ZnL1czQy1TVkctMS4xL21hc2tpbmctbWFzay0wMS1iLnN2ZyA9
IElNQUdFCitCVUdXSzQzOTEyIExJTlVYIFJFTEVBU0UgOiBzdmcvVzNDLVNWRy0xLjEvbWFza2lu
Zy1tYXNrLTAxLWIuc3ZnID0gSU1BR0UKIEJVR1dLNDM5MTIgV0lOIExJTlVYIDogc3ZnL2JhdGlr
L21hc2tpbmcvbWFza1JlZ2lvbnMuc3ZnID0gSU1BR0UKK0JVR1dLNDM5MTIgV0lOIExJTlVYIDog
c3ZnL2Nzcy9jaXJjbGUtaW4tbWFzay13aXRoLXNoYWRvdy5zdmcgPSBJTUFHRQorQlVHV0s0Mzkx
MiBXSU4gTElOVVggOiBzdmcvY3NzL21hc2std2l0aC1zaGFkb3cuc3ZnID0gSU1BR0UKIEJVR1dL
NDM5MTIgV0lOIExJTlVYIDogc3ZnL2N1c3RvbS9ncmF5c2NhbGUtZ3JhZGllbnQtbWFzay5zdmcg
PSBJTUFHRQorQlVHV0s0MzkxMiBXSU4gTElOVVggOiBzdmcvY3VzdG9tL2pzLWxhdGUtbWFzay1h
bmQtb2JqZWN0LWNyZWF0aW9uLnN2ZyA9IElNQUdFCitCVUdXSzQzOTEyIFdJTiBMSU5VWCA6IHN2
Zy9jdXN0b20vanMtbGF0ZS1tYXNrLWNyZWF0aW9uLnN2ZyA9IElNQUdFCitCVUdXSzQzOTEyIFdJ
TiBMSU5VWCA6IHN2Zy9jdXN0b20vbWFzay1jaGFuZ2VzLnN2ZyA9IElNQUdFCisvL0JVRzQzNDk2
IExJTlVYIDogc3ZnL2N1c3RvbS9tYXNrLWNoYW5nZXMuc3ZnID0gSU1BR0UgUEFTUworQlVHV0s0
MzkxMiBXSU4gTElOVVggOiBzdmcvY3VzdG9tL21hc2stY2hpbGQtY2hhbmdlcy5zdmcgPSBJTUFH
RQorQlVHV0s0MzkxMiBXSU4gTElOVVggOiBzdmcvY3VzdG9tL21hc2stY29sb3JzcGFjZS5zdmcg
PSBJTUFHRQorQlVHV0s0MzkxMiBXSU4gTElOVVggOiBzdmcvY3VzdG9tL21hc2stb24tbXVsdGlw
bGUtb2JqZWN0cy5zdmcgPSBJTUFHRQorQlVHV0s0MzkxMiBXSU4gTElOVVggOiBzdmcvY3VzdG9t
L21hc2std2l0aC1hbGwtdW5pdHMuc3ZnID0gSU1BR0UKK0JVR1dLNDM5MTIgV0lOIExJTlVYIDog
c3ZnL2N1c3RvbS9tYXNrLXdpdGgtZGVmYXVsdC12YWx1ZS5zdmcgPSBJTUFHRQogQlVHV0s0Mzkx
MiBXSU4gTElOVVggOiBzdmcvem9vbS9wYWdlL3pvb20tbWFzay13aXRoLXBlcmNlbnRhZ2VzLnN2
ZyA9IElNQUdFCiBCVUdXSzQzOTEyIFdJTiBMSU5VWCA6IHN2Zy9jdXN0b20vYWJzb2x1dGUtc2l6
ZWQtY29udGVudC13aXRoLXJlc291cmNlcy54aHRtbCA9IElNQUdFCiAKKy8vIFNhbWUgc3ltcHRv
bXMsIGZhaWxpbmcgYXMgb2YgcjY1NDQ5CitCVUdXSzQzOTEyIDogc3ZnL1czQy1TVkctMS4xL2Zp
bHRlcnMtY29sb3ItMDEtYi5zdmcgPSBJTUFHRQorQlVHV0s0MzkxMiA6IHN2Zy9XM0MtU1ZHLTEu
MS9maWx0ZXJzLWNvbXBvc2l0ZS0wMi1iLnN2ZyA9IElNQUdFCitCVUdXSzQzOTEyIDogc3ZnL1cz
Qy1TVkctMS4xL2ZpbHRlcnMtb2Zmc2V0LTAxLWIuc3ZnID0gSU1BR0UKKwogLy8gVGltZXMgb3V0
IGZyZXF1ZW50bHkgc2luY2UgdGhlIHRlc3Qgd2FzIGFkZGVkCiBCVUc1MjAxNyBNQUMgTElOVVgg
OiBodHRwL3Rlc3RzL21pc2MvaXNpbmRleC13aXRoLW5vLWZvcm0uaHRtbCA9IFBBU1MgVElNRU9V
VAogCkBAIC0zMTI4LDkgKzMxMzYsMTcgQEAgQlVHV0s0NDk2MSA6IGZhc3Qvbm90aWZpY2F0aW9u
cy9ub3RpZmljYXRpb25zLWNsaWNrLWV2ZW50Lmh0bWwgPSBUSU1FT1VUCiBCVUdXSzQ0OTY3IE1B
QyA6IGZhc3QvbXVsdGljb2wvcGFnaW5hdGUtYmxvY2stcmVwbGFjZWQuaHRtbCA9IElNQUdFCiBC
VUdXSzQ0OTY3IE1BQyA6IGZhc3QvbXVsdGljb2wvZmxvYXQtcGFnaW5hdGUuaHRtbCA9IElNQUdF
CiAKKy8vIE5ldyB0ZXN0cyBpbiByNjY1MjMgYW5kIHI2NjUxNgorQlVHV0s0NDk5NiBXSU4gOiBp
bnNwZWN0b3IvcmVwb3J0LUFQSS1lcnJvcnMuaHRtbCA9IFRFWFQKK0JVR1dLNDQ5OTYgV0lOIDog
aW5zcGVjdG9yL3JlcG9ydC1wcm90b2NvbC1lcnJvcnMuaHRtbCA9IFRFWFQKKwogLy8gTm90IGZv
Y3VzaW5nIGFuIGFuY2hvciB3aGVuIHRhYiBpcyBwcmVzc2VkLgogQlVHV0s0NTA2MSA6IGZhc3Qv
Zm9ybXMvZm9jdXMyLmh0bWwgPSBGQUlMCiAKKy8vIEZhaWxpbmcgYWZ0ZXIgcjY2NjY5CitCVUdX
SzY2NjY5IFdJTiA6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRt
bCA9IFRFWFQKK0JVR1dLNjY2NjkgV0lOIDogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Ut
aGFyLWNvbnZlcnNpb24uaHRtbCA9IFRFWFQKKwogLy8gRmxha3kgdGVzdHMKIEJVRzU0MzI5IE1B
QyA6IGZhc3QvZm9ybXMvc2VsZWN0LWJhc2VsaW5lLmh0bWwgPSBJTUFHRQogQlVHNTQzMzAgTUFD
IDogZmFzdC9mb3Jtcy9pbnB1dC1zcGluYnV0dG9uLWNhcHR1cmluZy5odG1sID0gVEVYVApAQCAt
MzE0MSw5ICszMTU3LDMgQEAgQlVHNTQzNDggTElOVVggOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZG9tLXdyaXRlLWlubmVySFRNTC5odG1sID0gUEFTUwogCiAvLyBSZWdyZXNzZWQg
aW4gcjY2Njg5CiBCVUdUT05ZIExJTlVYIDogZmFzdC90ZXh0L2F0c3VpLXNwYWNpbmctZmVhdHVy
ZXMuaHRtbCA9IElNQUdFK1RFWFQKLQotLy8gTmV3IHRlc3QgaW4gcjY2NzQwCi1CVUdXSzQ1MTkz
IExJTlVYIDogZmFzdC90ZXh0L2RlY29tcG9zZWQtYWZ0ZXItc3RhY2tlZC1kaWFjcml0aWNzLmh0
bWwgPSBURVhUCi0KLS8vIFJlZ3Jlc3NlZCBpbiByNjY3MTIKLUJVR1dLNDUyMDkgV0lOIDogaW5z
cGVjdG9yL2RvbS1icmVha3BvaW50cy5odG1sID0gUEFTUyBUSU1FT1VUCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCmluZGV4IGZlZTMzMjkuLmFmZjdhY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC0xLDkgKzEsNyBAQAogIyBXZSBzaG91bGQga2VlcCB0aGUgdGVzdHMgbGlzdGVkIGlu
IHRoZSBzYW1lIG9yZGVyIGFzIHRoZXkgYXBwZWFyIGluIHRoZSBvdXRwdXQuCiAjIFRoaXMgbWFr
ZXMgaXQgZWFzaWVyIHRvIGxvb2sgZm9yIGRpZmZlcmVuY2VzIG9uIHRoZSBhY3R1YWwgb3V0cHV0
IGFuZAogIyB3aGF0IHRoZSBza2lwIGxpc3QgY29udGFpbnMuCi0jIEFsc28sIG5vIGdyb3VwaW5n
IHNob3VsZCBvY2N1ci4gRXZlcnkgdGVzdCBmb3IgaXRzZWxmLiBBbiBleGNlcHRpb24gaXMgd2hl
bgotIyBhbiBlbnRpcmUgZGlyZWN0b3J5IG9mIHRlc3RzIGlzIHRvIGJlIHNraXBwZWQgZHVlIHRv
IHRoZSBmZWF0dXJlIGJlaW5nCi0jIHVuc3VwcG9ydGVkLgorIyBBbHNvLCBubyBncm91cGluZyBz
aG91bGQgb2NjdXIuIEV2ZXJ5IHRlc3QgZm9yIGl0c2VsZi4KICMKICMgWW91IGNhbiBnZXQgYSBs
aXN0IG9mIGFjdHVhbCBmYWlsZWQvdGltZWQgb3V0L2NyYXNoZWQvbmV3IHRlc3RzIGJ5IHBpcGlu
ZwogIyB0aGUgb3V0cHV0IG9mIHJ1bm5pbmcgdGhlIHRlc3RzIHRvIHRoaXMgY29tbWFuZDoKQEAg
LTEwMTUsOCArMTAxMyw2IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3VucmVuZGVyZWQtc3BhY2UuaHRt
bAogZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxhcml0eS5odG1sCiBlZGl0aW5nL3NwZWxs
aW5nL2lubGluZV9zcGVsbGluZ19tYXJrZXJzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1hdHRyaWJ1dGUuaHRtbAotZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRp
dGFibGUuaHRtbAotZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiBlZGl0
aW5nL3N0eWxlLzUwNjU5MTAuaHRtbAogZWRpdGluZy9zdHlsZS9hcHBsZS1zdHlsZS1lZGl0YWJs
ZS1taXguaHRtbAogZWRpdGluZy9zdHlsZS9ibG9jay1zdHlsZS0wMDEuaHRtbApAQCAtMTA4Nyw4
ICsxMDgzLDEzIEBAIGZhc3QvZG9tL2NsaWVudC13aWR0aC1oZWlnaHQtcXVpcmtzLmh0bWwKIGZh
c3QvZG9tL2NsaWVudC13aWR0aC1oZWlnaHQuaHRtbAogZmFzdC9kb20vY3NzVGFyZ2V0LWNyYXNo
Lmh0bWwKIGZhc3QvZG9tL2ZyYW1lLWxvYWRpbmctdmlhLWRvY3VtZW50LXdyaXRlLmh0bWwKLWZh
c3QvZG9tL0RldmljZU1vdGlvbgotZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24KK2Zhc3QvZG9t
L0RldmljZU1vdGlvbi9jcmVhdGUtZXZlbnQuaHRtbAorZmFzdC9kb20vRGV2aWNlTW90aW9uL29w
dGlvbmFsLWV2ZW50LXByb3BlcnRpZXMuaHRtbAorZmFzdC9kb20vRGV2aWNlTW90aW9uL3dpbmRv
dy1wcm9wZXJ0eS5odG1sCitmYXN0L2RvbS9EZXZpY2VPcmllbnRhdGlvbi9iYXNpYy1vcGVyYXRp
b24uaHRtbAorZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vY3JlYXRlLWV2ZW50Lmh0bWwKK2Zh
c3QvZG9tL0RldmljZU9yaWVudGF0aW9uL29wdGlvbmFsLWV2ZW50LXByb3BlcnRpZXMuaHRtbAor
ZmFzdC9kb20vRGV2aWNlT3JpZW50YXRpb24vd2luZG93LXByb3BlcnR5Lmh0bWwKIGZhc3QvZG9t
L0dlb2xvY2F0aW9uL2NhbGxiYWNrLWV4Y2VwdGlvbi5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlv
bi9kZWxheWVkLXBlcm1pc3Npb24tYWxsb3dlZC5odG1sCiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9k
ZWxheWVkLXBlcm1pc3Npb24tZGVuaWVkLmh0bWwKQEAgLTU4MDIsNyArNTgwMyw2IEBAIG1lZGlh
L3ZpZGVvLWxheWVyLWNyYXNoLmh0bWwKIG1lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbAog
bWVkaWEvYWRvcHQtbm9kZS1jcmFzaC5odG1sCiBtZWRpYS92aWRlby10cmFuc2Zvcm1lZC5odG1s
Ci1tZWRpYS9jb250cm9scy1zdHlsaW5nLmh0bWwKIAogIyBOZWVkIHRvIGltcGxlbWVudCBpbm5l
ci1zcGluLWJ1dHRvbiBvciBvdXRlci1zcGluLWJ1dHRvbgogZmFzdC9mb3Jtcy9pbnB1dC1hcHBl
YXJhbmNlLXNwaW5idXR0b24tZGlzYWJsZWQtcmVhZG9ubHkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvc3ZnL2N1c3RvbS91c2UtaW52YWxpZC1zdHls
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9zdmcvY3Vz
dG9tL3VzZS1pbnZhbGlkLXN0eWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjk3MzdiMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
bGVvcGFyZC9zdmcvY3VzdG9tL3VzZS1pbnZhbGlkLXN0eWxlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDcgKzAsMCBAQAotVGhpcyBwYWdlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcg
ZXJyb3JzOgotCi1lcnJvciBvbiBsaW5lIDEwIGF0IGNvbHVtbiA4ODogT3BlbmluZyBhbmQgZW5k
aW5nIHRhZyBtaXNtYXRjaDoganVuayBsaW5lIDAgYW5kIHN2ZwotQmVsb3cgaXMgYSByZW5kZXJp
bmcgb2YgdGhlIHBhZ2UgdXAgdG8gdGhlIGZpcnN0IGVycm9yLgotCi1UaGlzIHNob3VsZCBub3Qg
Y3Jhc2gsIGJ1dCBkaXNwbGF5IGFuIGVycm9yIGRvY3VtZW50LgotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWlu
ZXItZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3Rv
bS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ZDZjNzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLWV4cGVj
dGVkLmNoZWNrc3VtCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotOGRjN2I5MTMxODBhMzA5
YWU2NWNhZjA1ZDllYWViYmYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1j
b250YWluZXItZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzkzZjIwMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXIt
ZXhwZWN0ZWQucG5nIGFuZCAvZGV2L251bGwgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92
ZS1vbi1zdmctY29udGFpbmVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTViNTUwZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3Zn
L2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTQgKzAsMCBAQAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi0gIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg0
MTAKLSAgUmVuZGVyQmxvY2sge2h0bWx9IGF0ICgwLDApIHNpemUgODAweDQxMAotICAgIFJlbmRl
ckJvZHkge2JvZHl9IGF0ICgwLDApIHNpemUgODAweDQxMAotICAgICAgUmVuZGVyU1ZHUm9vdCB7
c3ZnfSBhdCAoNDUsMzMpIHNpemUgMzYxeDM3MwotICAgICAgICBSZW5kZXJTVkdDb250YWluZXIg
e2d9IGF0ICgzMDMsMzAzKSBzaXplIDEwMHgxMDAKLSAgICAgICAgICBSZW5kZXJQYXRoIHtjaXJj
bGV9IGF0ICgzMDMsMzAzKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwODAwMF19XSBbZGF0YT0iTTQwMC4wMCwzNTAuMDAgTDM5OS45MCwzNTMuMTQgTDM5OS42MSwz
NTYuMjcgTDM5OS4xMSwzNTkuMzcgTDM5OC40MywzNjIuNDMgTDM5Ny41NSwzNjUuNDUgTDM5Ni40
OSwzNjguNDEgTDM5NS4yNCwzNzEuMjkgTDM5My44MiwzNzQuMDkgTDM5Mi4yMiwzNzYuNzkgTDM5
MC40NSwzNzkuMzkgTDM4OC41MywzODEuODcgTDM4Ni40NSwzODQuMjMgTDM4NC4yMywzODYuNDUg
TDM4MS44NywzODguNTMgTDM3OS4zOSwzOTAuNDUgTDM3Ni43OSwzOTIuMjIgTDM3NC4wOSwzOTMu
ODIgTDM3MS4yOSwzOTUuMjQgTDM2OC40MSwzOTYuNDkgTDM2NS40NSwzOTcuNTUgTDM2Mi40Mywz
OTguNDMgTDM1OS4zNywzOTkuMTEgTDM1Ni4yNywzOTkuNjEgTDM1My4xNCwzOTkuOTAgTDM1MC4w
MCw0MDAuMDAgTDM0Ni44NiwzOTkuOTAgTDM0My43MywzOTkuNjEgTDM0MC42MywzOTkuMTEgTDMz
Ny41NywzOTguNDMgTDMzNC41NSwzOTcuNTUgTDMzMS41OSwzOTYuNDkgTDMyOC43MSwzOTUuMjQg
TDMyNS45MSwzOTMuODIgTDMyMy4yMSwzOTIuMjIgTDMyMC42MSwzOTAuNDUgTDMxOC4xMywzODgu
NTMgTDMxNS43NywzODYuNDUgTDMxMy41NSwzODQuMjMgTDMxMS40NywzODEuODcgTDMwOS41NSwz
NzkuMzkgTDMwNy43OCwzNzYuNzkgTDMwNi4xOCwzNzQuMDkgTDMwNC43NiwzNzEuMjkgTDMwMy41
MSwzNjguNDEgTDMwMi40NSwzNjUuNDUgTDMwMS41NywzNjIuNDMgTDMwMC44OSwzNTkuMzcgTDMw
MC4zOSwzNTYuMjcgTDMwMC4xMCwzNTMuMTQgTDMwMC4wMCwzNTAuMDAgTDMwMC4xMCwzNDYuODYg
TDMwMC4zOSwzNDMuNzMgTDMwMC44OSwzNDAuNjMgTDMwMS41NywzMzcuNTcgTDMwMi40NSwzMzQu
NTUgTDMwMy41MSwzMzEuNTkgTDMwNC43NiwzMjguNzEgTDMwNi4xOCwzMjUuOTEgTDMwNy43OCwz
MjMuMjEgTDMwOS41NSwzMjAuNjEgTDMxMS40NywzMTguMTMgTDMxMy41NSwzMTUuNzcgTDMxNS43
NywzMTMuNTUgTDMxOC4xMywzMTEuNDcgTDMyMC42MSwzMDkuNTUgTDMyMy4yMSwzMDcuNzggTDMy
NS45MSwzMDYuMTggTDMyOC43MSwzMDQuNzYgTDMzMS41OSwzMDMuNTEgTDMzNC41NSwzMDIuNDUg
TDMzNy41NywzMDEuNTcgTDM0MC42MywzMDAuODkgTDM0My43MywzMDAuMzkgTDM0Ni44NiwzMDAu
MTAgTDM1MC4wMCwzMDAuMDAgTDM1My4xNCwzMDAuMTAgTDM1Ni4yNywzMDAuMzkgTDM1OS4zNywz
MDAuODkgTDM2Mi40MywzMDEuNTcgTDM2NS40NSwzMDIuNDUgTDM2OC40MSwzMDMuNTEgTDM3MS4y
OSwzMDQuNzYgTDM3NC4wOSwzMDYuMTggTDM3Ni43OSwzMDcuNzggTDM3OS4zOSwzMDkuNTUgTDM4
MS44NywzMTEuNDcgTDM4NC4yMywzMTMuNTUgTDM4Ni40NSwzMTUuNzcgTDM4OC41MywzMTguMTMg
TDM5MC40NSwzMjAuNjEgTDM5Mi4yMiwzMjMuMjEgTDM5My44MiwzMjUuOTEgTDM5NS4yNCwzMjgu
NzEgTDM5Ni40OSwzMzEuNTkgTDM5Ny41NSwzMzQuNTUgTDM5OC40MywzMzcuNTcgTDM5OS4xMSwz
NDAuNjMgTDM5OS42MSwzNDMuNzMgTDM5OS45MCwzNDYuODYgWiJdCi0gICAgICAgIFJlbmRlclNW
R1RleHQge3RleHR9IGF0ICg0OCwzNikgc2l6ZSAzMDR4MTggY29udGFpbnMgMSBjaHVuayhzKQot
ICAgICAgICAgIFJlbmRlclNWR0lubGluZVRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMwNHgx
OAotICAgICAgICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoNDgu
NTAsNTAuMDApIHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDQ5IHdpZHRoIDMwMy4wMDogIlRoZSBj
aXJjbGUgc2hvdWxkIHN0YXkgaW4gdGhlIGJvdHRvbS1yaWdodCBjb3JuZXIiCi0gICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAotY2FyZXQ6IHBvc2l0aW9uIDQ5IG9mIGNoaWxkIDAgeyN0ZXh0
fSBvZiBjaGlsZCAzIHt0ZXh0fSBvZiBjaGlsZCAxIHtzdmd9IG9mIGJvZHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNv
bnRhaW5lci1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLXN0YW5kYWxvbmUt
ZXhwZWN0ZWQuY2hlY2tzdW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ZDZjNzcu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2Ut
bW92ZS1vbi1zdmctY29udGFpbmVyLXN0YW5kYWxvbmUtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9k
ZXYvbnVsbApAQCAtMSArMCwwIEBACi04ZGM3YjkxMzE4MGEzMDlhZTY1Y2FmMDVkOWVhZWJiZgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFuZGFsb25l
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNl
LW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFuZGFsb25lLWV4cGVjdGVkLnBuZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzkzZjIwMi4uMDAwMDAwMApCaW5hcnkgZmlsZXMgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWlu
ZXItc3RhbmRhbG9uZS1leHBlY3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3Zn
LWNvbnRhaW5lci1zdGFuZGFsb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFuZGFsb25lLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY5ZDNiNi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9u
LXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgNDA2eDQwNgotICBSZW5k
ZXJTVkdSb290IHtzdmd9IGF0ICg0NSwzMykgc2l6ZSAzNjF4MzczCi0gICAgUmVuZGVyU1ZHQ29u
dGFpbmVyIHtnfSBhdCAoMzAzLDMwMykgc2l6ZSAxMDB4MTAwCi0gICAgICBSZW5kZXJQYXRoIHtj
aXJjbGV9IGF0ICgzMDMsMzAzKSBzaXplIDEwMHgxMDAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29s
b3I9IzAwODAwMF19XSBbZGF0YT0iTTQwMC4wMCwzNTAuMDAgTDM5OS45MCwzNTMuMTQgTDM5OS42
MSwzNTYuMjcgTDM5OS4xMSwzNTkuMzcgTDM5OC40MywzNjIuNDMgTDM5Ny41NSwzNjUuNDUgTDM5
Ni40OSwzNjguNDEgTDM5NS4yNCwzNzEuMjkgTDM5My44MiwzNzQuMDkgTDM5Mi4yMiwzNzYuNzkg
TDM5MC40NSwzNzkuMzkgTDM4OC41MywzODEuODcgTDM4Ni40NSwzODQuMjMgTDM4NC4yMywzODYu
NDUgTDM4MS44NywzODguNTMgTDM3OS4zOSwzOTAuNDUgTDM3Ni43OSwzOTIuMjIgTDM3NC4wOSwz
OTMuODIgTDM3MS4yOSwzOTUuMjQgTDM2OC40MSwzOTYuNDkgTDM2NS40NSwzOTcuNTUgTDM2Mi40
MywzOTguNDMgTDM1OS4zNywzOTkuMTEgTDM1Ni4yNywzOTkuNjEgTDM1My4xNCwzOTkuOTAgTDM1
MC4wMCw0MDAuMDAgTDM0Ni44NiwzOTkuOTAgTDM0My43MywzOTkuNjEgTDM0MC42MywzOTkuMTEg
TDMzNy41NywzOTguNDMgTDMzNC41NSwzOTcuNTUgTDMzMS41OSwzOTYuNDkgTDMyOC43MSwzOTUu
MjQgTDMyNS45MSwzOTMuODIgTDMyMy4yMSwzOTIuMjIgTDMyMC42MSwzOTAuNDUgTDMxOC4xMywz
ODguNTMgTDMxNS43NywzODYuNDUgTDMxMy41NSwzODQuMjMgTDMxMS40NywzODEuODcgTDMwOS41
NSwzNzkuMzkgTDMwNy43OCwzNzYuNzkgTDMwNi4xOCwzNzQuMDkgTDMwNC43NiwzNzEuMjkgTDMw
My41MSwzNjguNDEgTDMwMi40NSwzNjUuNDUgTDMwMS41NywzNjIuNDMgTDMwMC44OSwzNTkuMzcg
TDMwMC4zOSwzNTYuMjcgTDMwMC4xMCwzNTMuMTQgTDMwMC4wMCwzNTAuMDAgTDMwMC4xMCwzNDYu
ODYgTDMwMC4zOSwzNDMuNzMgTDMwMC44OSwzNDAuNjMgTDMwMS41NywzMzcuNTcgTDMwMi40NSwz
MzQuNTUgTDMwMy41MSwzMzEuNTkgTDMwNC43NiwzMjguNzEgTDMwNi4xOCwzMjUuOTEgTDMwNy43
OCwzMjMuMjEgTDMwOS41NSwzMjAuNjEgTDMxMS40NywzMTguMTMgTDMxMy41NSwzMTUuNzcgTDMx
NS43NywzMTMuNTUgTDMxOC4xMywzMTEuNDcgTDMyMC42MSwzMDkuNTUgTDMyMy4yMSwzMDcuNzgg
TDMyNS45MSwzMDYuMTggTDMyOC43MSwzMDQuNzYgTDMzMS41OSwzMDMuNTEgTDMzNC41NSwzMDIu
NDUgTDMzNy41NywzMDEuNTcgTDM0MC42MywzMDAuODkgTDM0My43MywzMDAuMzkgTDM0Ni44Niwz
MDAuMTAgTDM1MC4wMCwzMDAuMDAgTDM1My4xNCwzMDAuMTAgTDM1Ni4yNywzMDAuMzkgTDM1OS4z
NywzMDAuODkgTDM2Mi40MywzMDEuNTcgTDM2NS40NSwzMDIuNDUgTDM2OC40MSwzMDMuNTEgTDM3
MS4yOSwzMDQuNzYgTDM3NC4wOSwzMDYuMTggTDM3Ni43OSwzMDcuNzggTDM3OS4zOSwzMDkuNTUg
TDM4MS44NywzMTEuNDcgTDM4NC4yMywzMTMuNTUgTDM4Ni40NSwzMTUuNzcgTDM4OC41MywzMTgu
MTMgTDM5MC40NSwzMjAuNjEgTDM5Mi4yMiwzMjMuMjEgTDM5My44MiwzMjUuOTEgTDM5NS4yNCwz
MjguNzEgTDM5Ni40OSwzMzEuNTkgTDM5Ny41NSwzMzQuNTUgTDM5OC40MywzMzcuNTcgTDM5OS4x
MSwzNDAuNjMgTDM5OS42MSwzNDMuNzMgTDM5OS45MCwzNDYuODYgWiJdCi0gICAgUmVuZGVyU1ZH
VGV4dCB7dGV4dH0gYXQgKDQ4LDM2KSBzaXplIDMwNHgxOCBjb250YWlucyAxIGNodW5rKHMpCi0g
ICAgICBSZW5kZXJTVkdJbmxpbmVUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMDR4MTgKLSAg
ICAgICAgY2h1bmsgMSAobWlkZGxlIGFuY2hvcikgdGV4dCBydW4gMSBhdCAoNDguNTAsNTAuMDAp
IHN0YXJ0T2Zmc2V0IDAgZW5kT2Zmc2V0IDQ5IHdpZHRoIDMwMy4wMDogIlRoZSBjaXJjbGUgc2hv
dWxkIHN0YXkgaW4gdGhlIGJvdHRvbS1yaWdodCBjb3JuZXIiCi1jYXJldDogcG9zaXRpb24gNDkg
b2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDMge3RleHR9IG9mIGNoaWxkIDAge3N2Z30gb2Yg
ZG9jdW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L21vdXNlLW1vdmUtb24tc3ZnLXJvb3QtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LWV4cGVjdGVkLmNo
ZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTEyOWIzLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3Zn
LXJvb3QtZXhwZWN0ZWQuY2hlY2tzdW0KKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi00MDUx
MDI1NTY0YmJkODg4ZDc1NWRmMTJhNmEwYmEzNgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNlLW1v
dmUtb24tc3ZnLXJvb3QtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2
Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGJiNjA4M2MuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1leHBl
Y3RlZC5wbmcgYW5kIC9kZXYvbnVsbCBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmct
cm9vdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU5Yzk4OTIu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2Ut
bW92ZS1vbi1zdmctcm9vdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCww
IEBACi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDQxMAotICBSZW5kZXJCbG9jayB7
aHRtbH0gYXQgKDAsMCkgc2l6ZSA4MDB4NDEwCi0gICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDAs
MCkgc2l6ZSA4MDB4NDEwCi0gICAgICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICg5MCwzMykgc2l6
ZSAyMjZ4MjIzCi0gICAgICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE1MCwxNTApIHNpemUg
MTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNMjQ3
LjAwLDE5Ny4wMCBMMjQ2LjkwLDIwMC4xNCBMMjQ2LjYxLDIwMy4yNyBMMjQ2LjExLDIwNi4zNyBM
MjQ1LjQzLDIwOS40MyBMMjQ0LjU1LDIxMi40NSBMMjQzLjQ5LDIxNS40MSBMMjQyLjI0LDIxOC4y
OSBMMjQwLjgyLDIyMS4wOSBMMjM5LjIyLDIyMy43OSBMMjM3LjQ1LDIyNi4zOSBMMjM1LjUzLDIy
OC44NyBMMjMzLjQ1LDIzMS4yMyBMMjMxLjIzLDIzMy40NSBMMjI4Ljg3LDIzNS41MyBMMjI2LjM5
LDIzNy40NSBMMjIzLjc5LDIzOS4yMiBMMjIxLjA5LDI0MC44MiBMMjE4LjI5LDI0Mi4yNCBMMjE1
LjQxLDI0My40OSBMMjEyLjQ1LDI0NC41NSBMMjA5LjQzLDI0NS40MyBMMjA2LjM3LDI0Ni4xMSBM
MjAzLjI3LDI0Ni42MSBMMjAwLjE0LDI0Ni45MCBMMTk3LjAwLDI0Ny4wMCBMMTkzLjg2LDI0Ni45
MCBMMTkwLjczLDI0Ni42MSBMMTg3LjYzLDI0Ni4xMSBMMTg0LjU3LDI0NS40MyBMMTgxLjU1LDI0
NC41NSBMMTc4LjU5LDI0My40OSBMMTc1LjcxLDI0Mi4yNCBMMTcyLjkxLDI0MC44MiBMMTcwLjIx
LDIzOS4yMiBMMTY3LjYxLDIzNy40NSBMMTY1LjEzLDIzNS41MyBMMTYyLjc3LDIzMy40NSBMMTYw
LjU1LDIzMS4yMyBMMTU4LjQ3LDIyOC44NyBMMTU2LjU1LDIyNi4zOSBMMTU0Ljc4LDIyMy43OSBM
MTUzLjE4LDIyMS4wOSBMMTUxLjc2LDIxOC4yOSBMMTUwLjUxLDIxNS40MSBMMTQ5LjQ1LDIxMi40
NSBMMTQ4LjU3LDIwOS40MyBMMTQ3Ljg5LDIwNi4zNyBMMTQ3LjM5LDIwMy4yNyBMMTQ3LjEwLDIw
MC4xNCBMMTQ3LjAwLDE5Ny4wMCBMMTQ3LjEwLDE5My44NiBMMTQ3LjM5LDE5MC43MyBMMTQ3Ljg5
LDE4Ny42MyBMMTQ4LjU3LDE4NC41NyBMMTQ5LjQ1LDE4MS41NSBMMTUwLjUxLDE3OC41OSBMMTUx
Ljc2LDE3NS43MSBMMTUzLjE4LDE3Mi45MSBMMTU0Ljc4LDE3MC4yMSBMMTU2LjU1LDE2Ny42MSBM
MTU4LjQ3LDE2NS4xMyBMMTYwLjU1LDE2Mi43NyBMMTYyLjc3LDE2MC41NSBMMTY1LjEzLDE1OC40
NyBMMTY3LjYxLDE1Ni41NSBMMTcwLjIxLDE1NC43OCBMMTcyLjkxLDE1My4xOCBMMTc1LjcxLDE1
MS43NiBMMTc4LjU5LDE1MC41MSBMMTgxLjU1LDE0OS40NSBMMTg0LjU3LDE0OC41NyBMMTg3LjYz
LDE0Ny44OSBMMTkwLjczLDE0Ny4zOSBMMTkzLjg2LDE0Ny4xMCBMMTk3LjAwLDE0Ny4wMCBMMjAw
LjE0LDE0Ny4xMCBMMjAzLjI3LDE0Ny4zOSBMMjA2LjM3LDE0Ny44OSBMMjA5LjQzLDE0OC41NyBM
MjEyLjQ1LDE0OS40NSBMMjE1LjQxLDE1MC41MSBMMjE4LjI5LDE1MS43NiBMMjIxLjA5LDE1My4x
OCBMMjIzLjc5LDE1NC43OCBMMjI2LjM5LDE1Ni41NSBMMjI4Ljg3LDE1OC40NyBMMjMxLjIzLDE2
MC41NSBMMjMzLjQ1LDE2Mi43NyBMMjM1LjUzLDE2NS4xMyBMMjM3LjQ1LDE2Ny42MSBMMjM5LjIy
LDE3MC4yMSBMMjQwLjgyLDE3Mi45MSBMMjQyLjI0LDE3NS43MSBMMjQzLjQ5LDE3OC41OSBMMjQ0
LjU1LDE4MS41NSBMMjQ1LjQzLDE4NC41NyBMMjQ2LjExLDE4Ny42MyBMMjQ2LjYxLDE5MC43MyBM
MjQ2LjkwLDE5My44NiBaIl0KLSAgICAgICAgUmVuZGVyU1ZHVGV4dCB7dGV4dH0gYXQgKDkzLDM2
KSBzaXplIDIxNHgxOCBjb250YWlucyAxIGNodW5rKHMpCi0gICAgICAgICAgUmVuZGVyU1ZHSW5s
aW5lVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjE0eDE4Ci0gICAgICAgICAgICBjaHVuayAx
IChtaWRkbGUgYW5jaG9yKSB0ZXh0IHJ1biAxIGF0ICg5My4wMCw1MC4wMCkgc3RhcnRPZmZzZXQg
MCBlbmRPZmZzZXQgMzQgd2lkdGggMjE0LjAwOiAiVGhlIGNpcmNsZSBzaG91bGQgYmUgaW4gdGhl
IG1pZGRsZSIKLSAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAotICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCi1jYXJldDogcG9zaXRpb24g
MzQgb2YgY2hpbGQgMCB7I3RleHR9IG9mIGNoaWxkIDMge3RleHR9IG9mIGNoaWxkIDEge3N2Z30g
b2YgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20v
bW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1z
dGFuZGFsb25lLWV4cGVjdGVkLmNoZWNrc3VtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzZTEyOWIzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9uZS1leHBlY3RlZC5jaGVja3N1bQor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTQwNTEwMjU1NjRiYmQ4ODhkNzU1ZGYxMmE2YTBi
YTM2ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25l
LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL21vdXNl
LW1vdmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9uZS1leHBlY3RlZC5wbmcKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGJiNjA4M2MuLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFs
b25lLWV4cGVjdGVkLnBuZyBhbmQgL2Rldi9udWxsIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFu
ZGFsb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9t
L21vdXNlLW1vdmUtb24tc3ZnLXJvb3Qtc3RhbmRhbG9uZS1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkNTlhZjcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25l
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi0gIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXll
ciBhdCAoMCwwKSBzaXplIDQwNng0MDYKLSAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoOTAsMzMp
IHNpemUgMjI2eDIyMwotICAgIFJlbmRlclBhdGgge2NpcmNsZX0gYXQgKDE1MCwxNTApIHNpemUg
MTAweDEwMCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFtkYXRhPSJNMjQ3
LjAwLDE5Ny4wMCBMMjQ2LjkwLDIwMC4xNCBMMjQ2LjYxLDIwMy4yNyBMMjQ2LjExLDIwNi4zNyBM
MjQ1LjQzLDIwOS40MyBMMjQ0LjU1LDIxMi40NSBMMjQzLjQ5LDIxNS40MSBMMjQyLjI0LDIxOC4y
OSBMMjQwLjgyLDIyMS4wOSBMMjM5LjIyLDIyMy43OSBMMjM3LjQ1LDIyNi4zOSBMMjM1LjUzLDIy
OC44NyBMMjMzLjQ1LDIzMS4yMyBMMjMxLjIzLDIzMy40NSBMMjI4Ljg3LDIzNS41MyBMMjI2LjM5
LDIzNy40NSBMMjIzLjc5LDIzOS4yMiBMMjIxLjA5LDI0MC44MiBMMjE4LjI5LDI0Mi4yNCBMMjE1
LjQxLDI0My40OSBMMjEyLjQ1LDI0NC41NSBMMjA5LjQzLDI0NS40MyBMMjA2LjM3LDI0Ni4xMSBM
MjAzLjI3LDI0Ni42MSBMMjAwLjE0LDI0Ni45MCBMMTk3LjAwLDI0Ny4wMCBMMTkzLjg2LDI0Ni45
MCBMMTkwLjczLDI0Ni42MSBMMTg3LjYzLDI0Ni4xMSBMMTg0LjU3LDI0NS40MyBMMTgxLjU1LDI0
NC41NSBMMTc4LjU5LDI0My40OSBMMTc1LjcxLDI0Mi4yNCBMMTcyLjkxLDI0MC44MiBMMTcwLjIx
LDIzOS4yMiBMMTY3LjYxLDIzNy40NSBMMTY1LjEzLDIzNS41MyBMMTYyLjc3LDIzMy40NSBMMTYw
LjU1LDIzMS4yMyBMMTU4LjQ3LDIyOC44NyBMMTU2LjU1LDIyNi4zOSBMMTU0Ljc4LDIyMy43OSBM
MTUzLjE4LDIyMS4wOSBMMTUxLjc2LDIxOC4yOSBMMTUwLjUxLDIxNS40MSBMMTQ5LjQ1LDIxMi40
NSBMMTQ4LjU3LDIwOS40MyBMMTQ3Ljg5LDIwNi4zNyBMMTQ3LjM5LDIwMy4yNyBMMTQ3LjEwLDIw
MC4xNCBMMTQ3LjAwLDE5Ny4wMCBMMTQ3LjEwLDE5My44NiBMMTQ3LjM5LDE5MC43MyBMMTQ3Ljg5
LDE4Ny42MyBMMTQ4LjU3LDE4NC41NyBMMTQ5LjQ1LDE4MS41NSBMMTUwLjUxLDE3OC41OSBMMTUx
Ljc2LDE3NS43MSBMMTUzLjE4LDE3Mi45MSBMMTU0Ljc4LDE3MC4yMSBMMTU2LjU1LDE2Ny42MSBM
MTU4LjQ3LDE2NS4xMyBMMTYwLjU1LDE2Mi43NyBMMTYyLjc3LDE2MC41NSBMMTY1LjEzLDE1OC40
NyBMMTY3LjYxLDE1Ni41NSBMMTcwLjIxLDE1NC43OCBMMTcyLjkxLDE1My4xOCBMMTc1LjcxLDE1
MS43NiBMMTc4LjU5LDE1MC41MSBMMTgxLjU1LDE0OS40NSBMMTg0LjU3LDE0OC41NyBMMTg3LjYz
LDE0Ny44OSBMMTkwLjczLDE0Ny4zOSBMMTkzLjg2LDE0Ny4xMCBMMTk3LjAwLDE0Ny4wMCBMMjAw
LjE0LDE0Ny4xMCBMMjAzLjI3LDE0Ny4zOSBMMjA2LjM3LDE0Ny44OSBMMjA5LjQzLDE0OC41NyBM
MjEyLjQ1LDE0OS40NSBMMjE1LjQxLDE1MC41MSBMMjE4LjI5LDE1MS43NiBMMjIxLjA5LDE1My4x
OCBMMjIzLjc5LDE1NC43OCBMMjI2LjM5LDE1Ni41NSBMMjI4Ljg3LDE1OC40NyBMMjMxLjIzLDE2
MC41NSBMMjMzLjQ1LDE2Mi43NyBMMjM1LjUzLDE2NS4xMyBMMjM3LjQ1LDE2Ny42MSBMMjM5LjIy
LDE3MC4yMSBMMjQwLjgyLDE3Mi45MSBMMjQyLjI0LDE3NS43MSBMMjQzLjQ5LDE3OC41OSBMMjQ0
LjU1LDE4MS41NSBMMjQ1LjQzLDE4NC41NyBMMjQ2LjExLDE4Ny42MyBMMjQ2LjYxLDE5MC43MyBM
MjQ2LjkwLDE5My44NiBaIl0KLSAgICBSZW5kZXJTVkdUZXh0IHt0ZXh0fSBhdCAoOTMsMzYpIHNp
emUgMjE0eDE4IGNvbnRhaW5zIDEgY2h1bmsocykKLSAgICAgIFJlbmRlclNWR0lubGluZVRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDIxNHgxOAotICAgICAgICBjaHVuayAxIChtaWRkbGUgYW5j
aG9yKSB0ZXh0IHJ1biAxIGF0ICg5My4wMCw1MC4wMCkgc3RhcnRPZmZzZXQgMCBlbmRPZmZzZXQg
MzQgd2lkdGggMjE0LjAwOiAiVGhlIGNpcmNsZSBzaG91bGQgYmUgaW4gdGhlIG1pZGRsZSIKLWNh
cmV0OiBwb3NpdGlvbiAzNCBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMyB7dGV4dH0gb2Yg
Y2hpbGQgMCB7c3ZnfSBvZiBkb2N1bWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggOWM5
MjEwYi4uMzI2OWViOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yMjk3LDEwICsyMjk3
LDYgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1saW5lYnJlYWsuaHRtbAogZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLmh0bWwKIAotIyB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VycygpIGlz
IG5vdCBpbXBsZW1lbnRlZC4KLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVkaXRh
YmxlLmh0bWwKLWVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAotCiAjID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5nL3N0eWxlIHRlc3RzCiAjID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICMKQEAgLTU0NTEsNiArNTQ0NywzIEBAIGh0dHAvdGVzdHMvbG9j
YWwvYmxvYi9zZW5kLWRhdGEtYmxvYi5odG1sCiAKICMgRnVsbCBTY3JlZW4gc3VwcG9ydCBpcyBu
b3QgeWV0IGVuYWJsZWQuCiBmdWxsc2NyZWVuLwotCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTE5NAotZmFzdC90ZXh0L2RlY29tcG9zZWQtYWZ0ZXItc3RhY2tl
ZC1kaWFjcml0aWNzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zh
c3QvZXZlbnRzL2NvbnRpbnVvdXMtcGxhdGZvcm0td2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZXZlbnRzL2NvbnRp
bnVvdXMtcGxhdGZvcm0td2hlZWxldmVudC1pbi1zY3JvbGxpbmctZGl2LWV4cGVjdGVkLnR4dApp
bmRleCBiM2FkOWRiLi5kOTQwNmVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9mYXN0L2V2ZW50cy9jb250aW51b3VzLXBsYXRmb3JtLXdoZWVsZXZlbnQtaW4tc2Nyb2xsaW5n
LWRpdi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9ldmVu
dHMvY29udGludW91cy1wbGF0Zm9ybS13aGVlbGV2ZW50LWluLXNjcm9sbGluZy1kaXYtZXhwZWN0
ZWQudHh0CkBAIC0xLDkgKzEsOSBAQAotRkFJTCBldmVudC53aGVlbERlbHRhWSBzaG91bGQgYmUg
LTYwMC4gV2FzIDAuCi1GQUlMIGV2ZW50LndoZWVsRGVsdGFYIHNob3VsZCBiZSAtMzAwLiBXYXMg
LTEyMDAwLgotRkFJTCBldmVudC53aGVlbERlbHRhIHNob3VsZCBiZSAtMzAwLiBXYXMgLTEyMDAw
LgotRkFJTCBldmVudC53aGVlbERlbHRhWSBzaG91bGQgYmUgLTYwMC4gV2FzIC0yNDAwMC4KLUZB
SUwgZXZlbnQud2hlZWxEZWx0YVggc2hvdWxkIGJlIC0zMDAuIFdhcyAwLgotRkFJTCBldmVudC53
aGVlbERlbHRhIHNob3VsZCBiZSAtNjAwLiBXYXMgLTI0MDAwLgorRkFJTCBldmVudC53aGVlbERl
bHRhWSBzaG91bGQgYmUgLTI0MDAwLiBXYXMgMC4KK1BBU1MgZXZlbnQud2hlZWxEZWx0YVggaXMg
d2luZG93LmV4cGVjdGVkU2Nyb2xsTGVmdCotMTIwCitQQVNTIGV2ZW50LndoZWVsRGVsdGEgaXMg
d2luZG93LmV4cGVjdGVkU2Nyb2xsTGVmdCotMTIwCitQQVNTIGV2ZW50LndoZWVsRGVsdGFZIGlz
IHdpbmRvdy5leHBlY3RlZFNjcm9sbFRvcCotMTIwCitGQUlMIGV2ZW50LndoZWVsRGVsdGFYIHNo
b3VsZCBiZSAtMTIwMDAuIFdhcyAwLgorUEFTUyBldmVudC53aGVlbERlbHRhIGlzIHdpbmRvdy5l
eHBlY3RlZFNjcm9sbFRvcCotMTIwCiBQQVNTIGRpdi5zY3JvbGxUb3AgaXMgd2luZG93LmV4cGVj
dGVkU2Nyb2xsVG9wCiBQQVNTIGRpdi5zY3JvbGxMZWZ0IGlzIHdpbmRvdy5leHBlY3RlZFNjcm9s
bExlZnQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvc3ZnL2N1c3RvbS91
c2UtaW52YWxpZC1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9z
dmcvY3VzdG9tL3VzZS1pbnZhbGlkLXN0eWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDZiOWJjZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9zdmcvY3VzdG9tL3VzZS1pbnZhbGlkLXN0eWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDcgKzAsMCBAQAotVGhpcyBwYWdlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgZXJy
b3JzOgotCi1lcnJvciBvbiBsaW5lIDEwIGF0IGNvbHVtbiA2OiBPcGVuaW5nIGFuZCBlbmRpbmcg
dGFnIG1pc21hdGNoLgotQmVsb3cgaXMgYSByZW5kZXJpbmcgb2YgdGhlIHBhZ2UgdXAgdG8gdGhl
IGZpcnN0IGVycm9yLgotCi1UaGlzIHNob3VsZCBub3QgY3Jhc2gsIGJ1dCBkaXNwbGF5IGFuIGVy
cm9yIGRvY3VtZW50LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDI0NzBlNDUuLjUz
ZWRkMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04NzgsMTAgKzg3OCw2IEBAIGNh
bnZhcy9waGlsaXAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5
MTA0CiBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sCiAKLSMg
dGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcnMoKSBpcyBub3QgaW1wbGVtZW50
ZWQuCi1lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sCi1lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKLQogIyBJbmRleGVkREIgaXMgbm90
IHlldCBlbmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmMzMWNhNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwyNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBlbmFi
bGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVz
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjE6IGRpc2FibGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6
IHNlbmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IHNl
bmRpbmcgYSAlcyByZXF1ZXN0IHRvICVzCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IHNlbmRp
bmcgYSAlcyByZXF1ZXN0IHRvICVzCitUZXN0cyB0aGF0IFhNTEh0dHBSZXF1ZXN0IExvZ2dpbmcg
d29ya3Mgd2hlbiBFbmFibGVkIGFuZCBkb2Vzbid0IHNob3cgbG9ncyB3aGVuIERpc2FibGVkLgor
Citjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6MTFlbmFibGVkCitjb25zb2xlLXhoci1sb2dnaW5n
Lmh0bWw6NDBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1leGlzdHMuaHRt
bAorWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwiLgorY29uc29sZS14aHItbG9nZ2luZy5odG1sOjQw
c2VuZGluZyBhIEdFVCByZXF1ZXN0IHRvIHJlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3QuaHRt
bAorcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sRmFpbGVkIHRvIGxvYWQgcmVzb3Vy
Y2U6IHRoZSBzZXJ2ZXIgcmVzcG9uZGVkIHdpdGggYSBzdGF0dXMgb2YgNDA0IChOb3QgRm91bmQp
CitYSFIgZmluaXNoZWQgbG9hZGluZzogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sIi4KK2NvbnNvbGUteGhyLWxvZ2dpbmcu
aHRtbDo0MHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1leGlzdHMuaHRt
bAorcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbEZhaWxlZCB0byBsb2FkIHJlc291cmNlOiB0aGUg
c2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9mIDQwNSAoTWV0aG9kIE5vdCBBbGxvd2Vk
KQorWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9y
L3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwiLgorY29uc29sZS14aHItbG9nZ2luZy5odG1sOjIx
ZGlzYWJsZWQKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDo0MHNlbmRpbmcgYSBHRVQgcmVxdWVz
dCB0byByZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sCitjb25zb2xlLXhoci1sb2dnaW5nLmh0bWw6
NDBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5o
dG1sCityZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWxGYWlsZWQgdG8gbG9hZCByZXNv
dXJjZTogdGhlIHNlcnZlciByZXNwb25kZWQgd2l0aCBhIHN0YXR1cyBvZiA0MDQgKE5vdCBGb3Vu
ZCkKK2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDo0MHNlbmRpbmcgYSBQT1NUIHJlcXVlc3QgdG8g
cmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbAorcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbEZhaWxl
ZCB0byBsb2FkIHJlc291cmNlOiB0aGUgc2VydmVyIHJlc3BvbmRlZCB3aXRoIGEgc3RhdHVzIG9m
IDQwNSAoTWV0aG9kIE5vdCBBbGxvd2VkKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtcGFyYW1ldGVycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2UtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNWU4ZjEyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDYyIEBACitUZXN0cyB0aGF0IHJlc291cmNlcyBwYW5lbCBzaG93cyBmb3Jt
IGRhdGEgcGFyYW1ldGVycy4KKworICAKKworeworICAgIHBhZ2VyZWYgOiAiYWJvdXQ6Ymxhbmsi
CisgICAgc3RhcnRlZERhdGVUaW1lIDogPHN0cmluZz4KKyAgICB0aW1lIDogPG51bWJlcj4KKyAg
ICByZXF1ZXN0IDogeworICAgICAgICBtZXRob2QgOiAiUE9TVCIKKyAgICAgICAgdXJsIDogImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3Jlc291cmNlLWZvcm0tZGF0
YS1yZWNlaXZlci1pZnJhbWUuaHRtbD9xdWVyeVBhcmFtMT1xdWVyeVZhbHVlMSZxdWVyeVBhcmFt
Mj0iCisgICAgICAgIGhlYWRlcnMgOiA8b2JqZWN0PgorICAgICAgICBoZWFkZXJzU2l6ZSA6IC0x
CisgICAgICAgIGJvZHlTaXplIDogLTEKKyAgICAgICAgcXVlcnlTdHJpbmcgOiB7CisgICAgICAg
ICAgICAwIDogeworICAgICAgICAgICAgICAgIG5hbWUgOiAicXVlcnlQYXJhbTEiCisgICAgICAg
ICAgICAgICAgdmFsdWUgOiAicXVlcnlWYWx1ZTEiCisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAxIDogeworICAgICAgICAgICAgICAgIG5hbWUgOiAicXVlcnlQYXJhbTIiCisgICAgICAgICAg
ICAgICAgdmFsdWUgOiAiIgorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHBvc3RE
YXRhIDogeworICAgICAgICAgICAgbWltZVR5cGUgOiAiYXBwbGljYXRpb24veC13d3ctZm9ybS11
cmxlbmNvZGVkIgorICAgICAgICAgICAgdGV4dCA6ICJmb3JtUGFyYW0xPWZvcm1WYWx1ZTEmZm9y
bVBhcmFtMj0iCisgICAgICAgICAgICBwYXJhbXMgOiB7CisgICAgICAgICAgICAgICAgMCA6IHsK
KyAgICAgICAgICAgICAgICAgICAgbmFtZSA6ICJmb3JtUGFyYW0xIgorICAgICAgICAgICAgICAg
ICAgICB2YWx1ZSA6ICJmb3JtVmFsdWUxIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAxIDogeworICAgICAgICAgICAgICAgICAgICBuYW1lIDogImZvcm1QYXJhbTIiCisgICAg
ICAgICAgICAgICAgICAgIHZhbHVlIDogIiIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmVzcG9uc2UgOiB7CisgICAgICAgIHN0YXR1cyA6
IDQwNQorICAgICAgICBzdGF0dXNUZXh0IDogIk1ldGhvZCBOb3QgQWxsb3dlZCIKKyAgICAgICAg
aGVhZGVycyA6IDxvYmplY3Q+CisgICAgICAgIGNvbnRlbnQgOiB7CisgICAgICAgICAgICBzaXpl
IDogMzQ1CisgICAgICAgICAgICBtaW1lVHlwZSA6ICJ0ZXh0L2h0bWwiCisgICAgICAgIH0KKyAg
ICAgICAgcmVkaXJlY3RVUkwgOiAiIgorICAgICAgICBoZWFkZXJzU2l6ZSA6IC0xCisgICAgICAg
IGJvZHlTaXplIDogMzQ1CisgICAgfQorICAgIHRpbWluZ3MgOiB7CisgICAgICAgIGJsb2NrZWQg
OiAtMQorICAgICAgICBkbnMgOiAtMQorICAgICAgICBjb25uZWN0IDogLTEKKyAgICAgICAgc2Vu
ZCA6IC0xCisgICAgICAgIHdhaXQgOiA8bnVtYmVyPgorICAgICAgICByZWNlaXZlIDogPG51bWJl
cj4KKyAgICAgICAgc3NsIDogLTEKKyAgICB9Cit9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmZjQ3NjU1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2NvbnN0YW50cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzNSAr
MCwwIEBACi1UZXN0IEluZGV4ZWREQidzIGNvbnN0YW50cy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgSURCS2V5UmFuZ2UuU0lOR0xFIGlzIDAKLVBBU1MgSURCS2V5UmFu
Z2UuTEVGVF9PUEVOIGlzIDEKLVBBU1MgSURCS2V5UmFuZ2UuUklHSFRfT1BFTiBpcyAyCi1QQVNT
IElEQktleVJhbmdlLkxFRlRfQk9VTkQgaXMgNAotUEFTUyBJREJLZXlSYW5nZS5SSUdIVF9CT1VO
RCBpcyA4Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlVOS05PV05fRVJSIGlzIDAKLVBBU1Mg
SURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIgaXMgMQotUEFTUyBJREJEYXRh
YmFzZUV4Y2VwdGlvbi5OT1RfRk9VTkRfRVJSIGlzIDIKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRp
b24uQ09OU1RSQUlOVF9FUlIgaXMgMwotUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VS
UiBpcyA0Ci1QQVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9BTExPV0VEX0VSUiBpcyA1Ci1Q
QVNTIElEQkRhdGFiYXNlRXhjZXB0aW9uLlNFUklBTF9FUlIgaXMgMTEKLVBBU1MgSURCRGF0YWJh
c2VFeGNlcHRpb24uUkVDT1ZFUkFCTEVfRVJSIGlzIDIxCi1QQVNTIElEQkRhdGFiYXNlRXhjZXB0
aW9uLlRSQU5TSUVOVF9FUlIgaXMgMzEKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uVElNRU9V
VF9FUlIgaXMgMzIKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24uREVBRExPQ0tfRVJSIGlzIDMz
Ci1QQVNTIElEQlJlcXVlc3QuTE9BRElORyBpcyAxCi1QQVNTIElEQlJlcXVlc3QuRE9ORSBpcyAy
Ci1QQVNTIElEQkN1cnNvci5ORVhUIGlzIDAKLVBBU1MgSURCQ3Vyc29yLk5FWFRfTk9fRFVQTElD
QVRFIGlzIDEKLVBBU1MgSURCQ3Vyc29yLlBSRVYgaXMgMgotUEFTUyBJREJDdXJzb3IuUFJFVl9O
T19EVVBMSUNBVEUgaXMgMwotUEFTUyBJREJUcmFuc2FjdGlvbi5SRUFEX1dSSVRFIGlzIDAKLVBB
U1MgSURCVHJhbnNhY3Rpb24uUkVBRF9PTkxZIGlzIDEKLVBBU1MgSURCVHJhbnNhY3Rpb24uU05B
UFNIT1RfUkVBRCBpcyAyCi1QQVNTIElEQlRyYW5zYWN0aW9uLlZFUlNJT05fQ0hBTkdFIGlzIDMK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jb25zdGFudHMuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2NvbnN0YW50cy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkZDI0OTE3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2NvbnN0YW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCJ3MgY29uc3RhbnRzLiIp
OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBzaG91bGRC
ZSgiSURCS2V5UmFuZ2UuU0lOR0xFIiwgIjAiKTsKLSAgICBzaG91bGRCZSgiSURCS2V5UmFuZ2Uu
TEVGVF9PUEVOIiwgIjEiKTsKLSAgICBzaG91bGRCZSgiSURCS2V5UmFuZ2UuUklHSFRfT1BFTiIs
ICIyIik7Ci0gICAgc2hvdWxkQmUoIklEQktleVJhbmdlLkxFRlRfQk9VTkQiLCAiNCIpOwotICAg
IHNob3VsZEJlKCJJREJLZXlSYW5nZS5SSUdIVF9CT1VORCIsICI4Iik7Ci0KLSAgICBzaG91bGRC
ZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVU5LTk9XTl9FUlIiLCAiMCIpOwotICAgIHNob3VsZEJl
KCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUiIsICIxIik7Ci0gICAgc2hv
dWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLk5PVF9GT1VORF9FUlIiLCAiMiIpOwotICAgIHNo
b3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIsICIzIik7Ci0gICAg
c2hvdWxkQmUoIklEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSIiwgIjQiKTsKLSAgICBzaG91
bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uTk9UX0FMTE9XRURfRVJSIiwgIjUiKTsKLSAgICBz
aG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uU0VSSUFMX0VSUiIsICIxMSIpOwotICAgIHNo
b3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5SRUNPVkVSQUJMRV9FUlIiLCAiMjEiKTsKLSAg
ICBzaG91bGRCZSgiSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNJRU5UX0VSUiIsICIzMSIpOwot
ICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5USU1FT1VUX0VSUiIsICIzMiIpOwot
ICAgIHNob3VsZEJlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbi5ERUFETE9DS19FUlIiLCAiMzMiKTsK
LQotICAgIHNob3VsZEJlKCJJREJSZXF1ZXN0LkxPQURJTkciLCAiMSIpOwotICAgIHNob3VsZEJl
KCJJREJSZXF1ZXN0LkRPTkUiLCAiMiIpOwotCi0gICAgc2hvdWxkQmUoIklEQkN1cnNvci5ORVhU
IiwgIjAiKTsKLSAgICBzaG91bGRCZSgiSURCQ3Vyc29yLk5FWFRfTk9fRFVQTElDQVRFIiwgIjEi
KTsKLSAgICBzaG91bGRCZSgiSURCQ3Vyc29yLlBSRVYiLCAiMiIpOwotICAgIHNob3VsZEJlKCJJ
REJDdXJzb3IuUFJFVl9OT19EVVBMSUNBVEUiLCAiMyIpOwotCi0gICAgc2hvdWxkQmUoIklEQlRy
YW5zYWN0aW9uLlJFQURfV1JJVEUiLCAiMCIpOwotICAgIHNob3VsZEJlKCJJREJUcmFuc2FjdGlv
bi5SRUFEX09OTFkiLCAiMSIpOwotICAgIHNob3VsZEJlKCJJREJUcmFuc2FjdGlvbi5TTkFQU0hP
VF9SRUFEIiwgIjIiKTsKLSAgICBzaG91bGRCZSgiSURCVHJhbnNhY3Rpb24uVkVSU0lPTl9DSEFO
R0UiLCAiMyIpOwotfQotCi10ZXN0KCk7Ci0KLXZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwotZG9uZSgpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2RhdGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9kYXRhYmFzZS1iYXNpY3MtZXhwZWN0ZWQu
dHh0CmluZGV4IGZjMjI0Y2MuLjEzMjFmNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL2RhdGFiYXNlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvZGF0YWJhc2UtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAtMjMs
NiArMjMsMTEgQEAgUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBB
U1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAogZGIgPSBl
dmVudC5yZXN1bHQKK1BBU1MgZGIubmFtZSBpcyAibmFtZSIKK1BBU1MgZGIub2JqZWN0U3RvcmVz
IGlzIFtdCitQQVNTIGRiLm9iamVjdFN0b3Jlcy5sZW5ndGggaXMgMAorUEFTUyBkYi5vYmplY3RT
dG9yZXMuY29udGFpbnMoJycpIGlzIGZhbHNlCisKIFRlc3Rpbmcgc2V0VmVyc2lvbi4KIGRiLnNl
dFZlcnNpb24oInZlcnNpb24gYSIpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVl
CkBAIC0zMSwxOCArMzYsNiBAQCBQQVNTICdhYm9ydCcgaW4gcmVzdWx0IGlzIHRydWUKIFBBU1Mg
J3JlYWR5U3RhdGUnIGluIHJlc3VsdCBpcyB0cnVlCiBBbiBldmVudCBzaG91bGQgZmlyZSBzaG9y
dGx5Li4uCiAKLVN1Y2Nlc3MgZXZlbnQgZmlyZWQ6Ci1QQVNTICdyZXN1bHQnIGluIGV2ZW50IGlz
IHRydWUKLVBBU1MgJ2NvZGUnIGluIGV2ZW50IGlzIGZhbHNlCi1QQVNTICdtZXNzYWdlJyBpbiBl
dmVudCBpcyBmYWxzZQotUEFTUyAnc291cmNlJyBpbiBldmVudCBpcyB0cnVlCi1QQVNTIGV2ZW50
LnNvdXJjZSAhPSBudWxsIGlzIHRydWUKLVBBU1MgJ29uc3VjY2VzcycgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKLVBBU1MgJ29uZXJyb3InIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdh
Ym9ydCcgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKLVBBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50
LnRhcmdldCBpcyB0cnVlCi1QQVNTIGV2ZW50LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRh
cmdldC5ET05FCi0KIGRiLnNldFZlcnNpb24oInZlcnNpb24gYiIpCiBQQVNTICdvbnN1Y2Nlc3Mn
IGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAt
NTAsNDcgKzQzLDggQEAgUEFTUyAnYWJvcnQnIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFk
eVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQogQW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4u
LgogCi1TdWNjZXNzIGV2ZW50IGZpcmVkOgotUEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVl
Ci1QQVNTICdjb2RlJyBpbiBldmVudCBpcyBmYWxzZQotUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQg
aXMgZmFsc2UKLVBBU1MgJ3NvdXJjZScgaW4gZXZlbnQgaXMgdHJ1ZQotUEFTUyBldmVudC5zb3Vy
Y2UgIT0gbnVsbCBpcyB0cnVlCi1QQVNTICdvbnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0
cnVlCi1QQVNTICdvbmVycm9yJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAnYWJvcnQn
IGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJn
ZXQgaXMgdHJ1ZQotUEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQu
RE9ORQotCiBQQVNTIGRiLnZlcnNpb24gaXMgInZlcnNpb24gYiIKLVBBU1MgZGIubmFtZSBpcyAi
bmFtZSIKLVBBU1MgZGIub2JqZWN0U3RvcmVzIGlzIFtdCi1QQVNTIGRiLm9iamVjdFN0b3Jlcy5s
ZW5ndGggaXMgMAotUEFTUyBkYi5vYmplY3RTdG9yZXMuY29udGFpbnMoJycpIGlzIGZhbHNlCi1k
Yi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdDEyMyIpCi1QQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3Vs
dCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQotUEFTUyAnYWJvcnQn
IGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQot
QW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgotCi1TdWNjZXNzIGV2ZW50IGZpcmVkOgot
UEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCi1QQVNTICdjb2RlJyBpbiBldmVudCBpcyBm
YWxzZQotUEFTUyAnbWVzc2FnZScgaW4gZXZlbnQgaXMgZmFsc2UKLVBBU1MgJ3NvdXJjZScgaW4g
ZXZlbnQgaXMgdHJ1ZQotUEFTUyBldmVudC5zb3VyY2UgIT0gbnVsbCBpcyB0cnVlCi1QQVNTICdv
bnN1Y2Nlc3MnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQotUEFTUyAnYWJvcnQnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCi1Q
QVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQotUEFTUyBldmVudC50YXJn
ZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQotCi1QQVNTIGRiLm9iamVjdFN0b3Jl
cyBpcyBbJ3Rlc3QxMjMnXQotUEFTUyBkYi5vYmplY3RTdG9yZXMubGVuZ3RoIGlzIDEKLVBBU1Mg
ZGIub2JqZWN0U3RvcmVzLmNvbnRhaW5zKCcnKSBpcyBmYWxzZQotUEFTUyBkYi5vYmplY3RTdG9y
ZXMuY29udGFpbnMoJ3Rlc3Q0NTYnKSBpcyBmYWxzZQotUEFTUyBkYi5vYmplY3RTdG9yZXMuY29u
dGFpbnMoJ3Rlc3QxMjMnKSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIva2V5cmFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cmFuZ2UtZXhwZWN0ZWQudHh0CmluZGV4IDY1MjhhMTEuLmE1MTBhODAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXJhbmdlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlyYW5nZS1leHBlY3RlZC50eHQK
QEAgLTMsMzMgKzMsNiBAQCBUZXN0IEluZGV4ZWREQidzIEtleVJhbmdlLgogT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgogCiAKLVBBU1MgJ1NJTkdMRScgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQot
UEFTUyAnTEVGVF9PUEVOJyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCi1QQVNTICdSSUdIVF9PUEVO
JyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCi1QQVNTICdMRUZUX0JPVU5EJyBpbiBJREJLZXlSYW5n
ZSBpcyB0cnVlCi1QQVNTICdSSUdIVF9CT1VORCcgaW4gSURCS2V5UmFuZ2UgaXMgdHJ1ZQotUEFT
UyAnbGVmdCcgaW4gSURCS2V5UmFuZ2UgaXMgZmFsc2UKLVBBU1MgJ3JpZ2h0JyBpbiBJREJLZXlS
YW5nZSBpcyBmYWxzZQotUEFTUyAnZmxhZ3MnIGluIElEQktleVJhbmdlIGlzIGZhbHNlCi1QQVNT
ICdvbmx5JyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCi1QQVNTICdsZWZ0Qm91bmQnIGluIElEQktl
eVJhbmdlIGlzIHRydWUKLVBBU1MgJ3JpZ2h0Qm91bmQnIGluIElEQktleVJhbmdlIGlzIHRydWUK
LVBBU1MgJ2JvdW5kJyBpbiBJREJLZXlSYW5nZSBpcyB0cnVlCi0KLWluc3RhbmNlID0gSURCS2V5
UmFuZ2Uub25seSgxKQotUEFTUyAnU0lOR0xFJyBpbiBpbnN0YW5jZSBpcyB0cnVlCi1QQVNTICdM
RUZUX09QRU4nIGluIGluc3RhbmNlIGlzIHRydWUKLVBBU1MgJ1JJR0hUX09QRU4nIGluIGluc3Rh
bmNlIGlzIHRydWUKLVBBU1MgJ0xFRlRfQk9VTkQnIGluIGluc3RhbmNlIGlzIHRydWUKLVBBU1Mg
J1JJR0hUX0JPVU5EJyBpbiBpbnN0YW5jZSBpcyB0cnVlCi1QQVNTICdsZWZ0JyBpbiBpbnN0YW5j
ZSBpcyB0cnVlCi1QQVNTICdyaWdodCcgaW4gaW5zdGFuY2UgaXMgdHJ1ZQotUEFTUyAnZmxhZ3Mn
IGluIGluc3RhbmNlIGlzIHRydWUKLVBBU1MgJ29ubHknIGluIGluc3RhbmNlIGlzIGZhbHNlCi1Q
QVNTICdsZWZ0Qm91bmQnIGluIGluc3RhbmNlIGlzIGZhbHNlCi1QQVNTICdyaWdodEJvdW5kJyBp
biBpbnN0YW5jZSBpcyBmYWxzZQotUEFTUyAnYm91bmQnIGluIGluc3RhbmNlIGlzIGZhbHNlCi0K
IElEQktleVJhbmdlLm9ubHkoMSkKIFBBU1Mga2V5UmFuZ2UubGVmdCBpcyAxCiBQQVNTIGtleVJh
bmdlLnJpZ2h0IGlzIDEKQEAgLTE0NCw0ICsxMTcsMyBAQCBQQVNTIHJpZ2h0RmxhZ3MgaXMga2V5
UmFuZ2UuUklHSFRfT1BFTiB8IGtleVJhbmdlLlJJR0hUX0JPVU5ECiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLmh0bWwgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1jdXJzb3IuaHRtbAppbmRleCAyNWU5NDU2
Li5iYzY5YjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1jdXJzb3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9v
YmplY3RzdG9yZS1jdXJzb3IuaHRtbApAQCAtMTk1LDcgKzE5NSwxMCBAQCBmdW5jdGlvbiBjdXJz
b3JJdGVyYXRpb24oKQogICAgIHdpbmRvdy5leHBlY3RlZEluZGV4ID0gYXNjZW5kaW5nID8gZXhw
ZWN0ZWRJbmRleCsxIDogZXhwZWN0ZWRJbmRleC0xOwogICAgIHRlc3RXaXRoaW5Cb3VuZHMoKTsK
IAotICAgIGV2ZW50LnJlc3VsdC5jb250aW51ZSgpOworICAgIHJlcXVlc3QgPSBldmVudC5yZXN1
bHQuY29udGludWUoKTsKKyAgICAvLyBGSVhNRTogVGhlIHNwZWMgc2F5cyB3ZSBzaG91bGQgbm90
IHJldHVybiBhbiBJREJSZXF1ZXN0IGFuZCBpbnN0ZWFkIHJlLXVzZSB0aGUgb3JpZ2luYWwgcmVx
dWVzdC4KKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGN1cnNvckl0ZXJhdGlvbjsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0KICAKIG9wZW5EYXRhYmFz
ZSgpOyAvLyBUaGUgZmlyc3Qgc3RlcC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3NjcmlwdC10ZXN0cy9kYXRhYmFzZS1iYXNpY3MuanMgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMvZGF0YWJhc2UtYmFzaWNzLmpzCmluZGV4IDEw
MTM5ZmUuLjA0ZWJiZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3NjcmlwdC10ZXN0cy9kYXRhYmFzZS1iYXNpY3MuanMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2RhdGFiYXNlLWJhc2ljcy5qcwpAQCAtNywxMyArNywx
NSBAQCBmdW5jdGlvbiBvcGVuU3VjY2VzcygpCiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50KGV2ZW50
KTsKIAogICAgIHZhciBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQucmVzdWx0Iik7Ci0gICAg
ZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRi
Lm5hbWUiLCAibmFtZSIpOworICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZXMiLCAiW10iKTsK
KyAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVzLmxlbmd0aCIsICIwIik7CisgICAgc2hvdWxk
QmUoImRiLm9iamVjdFN0b3Jlcy5jb250YWlucygnJykiLCAiZmFsc2UiKTsKKyAgICAvLyBGSVhN
RTogVGVzdCAuaXRlbSgpIG9uY2UgaXQncyBwb3NzaWJsZSB0byBnZXQgYmFjayBhIG5vbi1lbXB0
eSBsaXN0LgogCi0gICAgLy8gV2UgbXVzdCBkbyBzb21ldGhpbmcgYXN5bmNocm9ub3VzIGJlZm9y
ZSBhbnl0aGluZyBzeW5jaHJvbm91cyBzaW5jZQotICAgIC8vIGRlbGV0ZUFsbE9iamVjdFN0b3Jl
cyBvbmx5IHNjaGVkdWxlcyB0aGUgb2JqZWN0IHN0b3JlcyB0byBiZSByZW1vdmVkLgotICAgIC8v
IFdlIGRvbid0IGtub3cgZm9yIHN1cmUgd2hldGhlciBpdCdzIGhhcHBlbmVkIHVudGlsIGFuIElE
QlJlcXVlc3Qgb2JqZWN0Ci0gICAgLy8gdGhhdCB3YXMgY3JlYXRlZCBhZnRlciB0aGUgcmVtb3Zl
cyBmaXJlcy4KKyAgICAvLyBGSVhNRTogVGVzdCB0aGUgb3RoZXIgcHJvcGVydGllcyBvZiBJREJE
YXRhYmFzZSBhcyB0aGV5J3JlIHdyaXR0ZW4uCiAKKyAgICBkZWJ1ZygiIik7CiAgICAgZGVidWco
IlRlc3Rpbmcgc2V0VmVyc2lvbi4iKTsKICAgICByZXN1bHQgPSBldmFsQW5kTG9nKCdkYi5zZXRW
ZXJzaW9uKCJ2ZXJzaW9uIGEiKScpOwogICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwpAQCAtMjMs
MzcgKzI1LDE1IEBAIGZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKIAogZnVuY3Rpb24gc2V0VmVyc2lv
bkFnYWluKCkKIHsKLSAgICB2ZXJpZnlTdWNjZXNzRXZlbnQoZXZlbnQpOwotCiAgICAgcmVzdWx0
ID0gZXZhbEFuZExvZygnZGIuc2V0VmVyc2lvbigidmVyc2lvbiBiIiknKTsKICAgICB2ZXJpZnlS
ZXN1bHQocmVzdWx0KTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gY3JlYXRlT2JqZWN0U3RvcmU7
CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGNoZWNrVmVyc2lvbjsKICAgICByZXN1bHQub25FcnJv
ciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQogCi1mdW5jdGlvbiBjcmVhdGVPYmplY3RT
dG9yZSgpCitmdW5jdGlvbiBjaGVja1ZlcnNpb24oKQogewotICAgIHZlcmlmeVN1Y2Nlc3NFdmVu
dChldmVudCk7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJkYi52ZXJzaW9uIiwgInZlcnNp
b24gYiIpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZGIubmFtZSIsICJuYW1lIik7Ci0g
ICAgc2hvdWxkQmUoImRiLm9iamVjdFN0b3JlcyIsICJbXSIpOwotICAgIHNob3VsZEJlKCJkYi5v
YmplY3RTdG9yZXMubGVuZ3RoIiwgIjAiKTsKLSAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVz
LmNvbnRhaW5zKCcnKSIsICJmYWxzZSIpOwotCi0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygnZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInRlc3QxMjMiKScpOwotICAgIHZlcmlmeVJlc3VsdChyZXN1bHQp
OwotICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBjaGVja09iamVjdFN0b3JlOwotICAgIHJlc3VsdC5v
bkVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrT2Jq
ZWN0U3RvcmUoKQotewotICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7Ci0gICAgc2hvdWxk
QmUoImRiLm9iamVjdFN0b3JlcyIsICJbJ3Rlc3QxMjMnXSIpOwotICAgIHNob3VsZEJlKCJkYi5v
YmplY3RTdG9yZXMubGVuZ3RoIiwgIjEiKTsKLSAgICBzaG91bGRCZSgiZGIub2JqZWN0U3RvcmVz
LmNvbnRhaW5zKCcnKSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJkYi5vYmplY3RTdG9yZXMu
Y29udGFpbnMoJ3Rlc3Q0NTYnKSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJkYi5vYmplY3RT
dG9yZXMuY29udGFpbnMoJ3Rlc3QxMjMnKSIsICJ0cnVlIik7CiAKICAgICBkb25lKCk7CiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMva2V5
cmFuZ2UuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9zY3JpcHQtdGVzdHMva2V5
cmFuZ2UuanMKaW5kZXggYTViNThmNC4uOTA3ZDgxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvc2NyaXB0LXRlc3RzL2tleXJhbmdlLmpzCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3NjcmlwdC10ZXN0cy9rZXlyYW5nZS5qcwpAQCAtMzksMzcg
KzM5LDYgQEAgZnVuY3Rpb24gY2hlY2tCb3VuZEtleVJhbmdlKGxlZnQsIHJpZ2h0LCBvcGVuTGVm
dCwgb3BlblJpZ2h0KQogCiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBzaG91bGRCZVRydWUoIidT
SU5HTEUnIGluIElEQktleVJhbmdlIik7Ci0gICAgc2hvdWxkQmVUcnVlKCInTEVGVF9PUEVOJyBp
biBJREJLZXlSYW5nZSIpOwotICAgIHNob3VsZEJlVHJ1ZSgiJ1JJR0hUX09QRU4nIGluIElEQktl
eVJhbmdlIik7Ci0gICAgc2hvdWxkQmVUcnVlKCInTEVGVF9CT1VORCcgaW4gSURCS2V5UmFuZ2Ui
KTsKLSAgICBzaG91bGRCZVRydWUoIidSSUdIVF9CT1VORCcgaW4gSURCS2V5UmFuZ2UiKTsKLSAg
ICBzaG91bGRCZUZhbHNlKCInbGVmdCcgaW4gSURCS2V5UmFuZ2UiKTsKLSAgICBzaG91bGRCZUZh
bHNlKCIncmlnaHQnIGluIElEQktleVJhbmdlIik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiJ2ZsYWdz
JyBpbiBJREJLZXlSYW5nZSIpOwotICAgIHNob3VsZEJlVHJ1ZSgiJ29ubHknIGluIElEQktleVJh
bmdlIik7Ci0gICAgc2hvdWxkQmVUcnVlKCInbGVmdEJvdW5kJyBpbiBJREJLZXlSYW5nZSIpOwot
ICAgIHNob3VsZEJlVHJ1ZSgiJ3JpZ2h0Qm91bmQnIGluIElEQktleVJhbmdlIik7Ci0gICAgc2hv
dWxkQmVUcnVlKCInYm91bmQnIGluIElEQktleVJhbmdlIik7Ci0KLSAgICBkZWJ1ZygiIik7Ci0K
LSAgICB2YXIgaW5zdGFuY2UgPSBldmFsQW5kTG9nKCJpbnN0YW5jZSA9IElEQktleVJhbmdlLm9u
bHkoMSkiKTsKLSAgICBzaG91bGRCZVRydWUoIidTSU5HTEUnIGluIGluc3RhbmNlIik7Ci0gICAg
c2hvdWxkQmVUcnVlKCInTEVGVF9PUEVOJyBpbiBpbnN0YW5jZSIpOwotICAgIHNob3VsZEJlVHJ1
ZSgiJ1JJR0hUX09QRU4nIGluIGluc3RhbmNlIik7Ci0gICAgc2hvdWxkQmVUcnVlKCInTEVGVF9C
T1VORCcgaW4gaW5zdGFuY2UiKTsKLSAgICBzaG91bGRCZVRydWUoIidSSUdIVF9CT1VORCcgaW4g
aW5zdGFuY2UiKTsKLSAgICBzaG91bGRCZVRydWUoIidsZWZ0JyBpbiBpbnN0YW5jZSIpOwotICAg
IHNob3VsZEJlVHJ1ZSgiJ3JpZ2h0JyBpbiBpbnN0YW5jZSIpOwotICAgIHNob3VsZEJlVHJ1ZSgi
J2ZsYWdzJyBpbiBpbnN0YW5jZSIpOwotICAgIHNob3VsZEJlRmFsc2UoIidvbmx5JyBpbiBpbnN0
YW5jZSIpOwotICAgIHNob3VsZEJlRmFsc2UoIidsZWZ0Qm91bmQnIGluIGluc3RhbmNlIik7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgiJ3JpZ2h0Qm91bmQnIGluIGluc3RhbmNlIik7Ci0gICAgc2hvdWxk
QmVGYWxzZSgiJ2JvdW5kJyBpbiBpbnN0YW5jZSIpOwotCi0gICAgZGVidWcoIiIpOwotCiAgICAg
Y2hlY2tTaW5nbGVLZXlSYW5nZSgxKTsKICAgICBjaGVja1NpbmdsZUtleVJhbmdlKCInYSciKTsK
IApAQCAtOTksNyArNjgsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBjaGVja0JvdW5kS2V5UmFu
Z2UoIidhYWQnIiwgIidhYmQnIiwgZmFsc2UsIHRydWUpOwogICAgIGNoZWNrQm91bmRLZXlSYW5n
ZSgiJ2FhZSciLCAiJ2FiZSciLCB0cnVlLCBmYWxzZSk7CiAgICAgY2hlY2tCb3VuZEtleVJhbmdl
KCInYWFmJyIsICInYWJmJyIsIHRydWUsIHRydWUpOwotCiB9CiAKIHRlc3QoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctY29udGFpbmVyLXN0
YW5kYWxvbmUuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1j
b250YWluZXItc3RhbmRhbG9uZS5zdmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNm
ZTZhM2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9u
LXN2Zy1jb250YWluZXItc3RhbmRhbG9uZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCww
IEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjQwMCIg
aGVpZ2h0PSI0MDAiIHN0eWxlPSJib3JkZXI6IHNvbGlkIj4KLSAgICA8Zz4KLSAgICAgICAgPGNp
cmNsZSBjeD0iMzUwIiBjeT0iMzUwIiByPSI1MCIgZmlsbD0iZ3JlZW4iIG9ubW91c2Vkb3duPSJz
dGFydE1vdmUoKSIvPgotICAgIDwvZz4KLSAgICA8dGV4dCB4PSIyMDAiIHk9IjUwIiB0ZXh0LWFu
Y2hvcj0ibWlkZGxlIj5UaGUgY2lyY2xlIHNob3VsZCBzdGF5IGluIHRoZSBib3R0b20tcmlnaHQg
Y29ybmVyPC90ZXh0PgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHZhciByb290ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoInN2ZyIpWzBdOwotICAgICAgICB2YXIgY29udGFpbmVyID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImciKVswXTsKLSAgICAgICAgdmFyIGNpcmNs
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjaXJjbGUiKVswXTsKLSAgICAKLSAg
ICAgICAgZnVuY3Rpb24gbW92ZShldnQpIHsKLSAgICAgICAgICAgIHZhciBtYXRyaXggPSBjb250
YWluZXIuZ2V0U2NyZWVuQ1RNKCk7Ci0gICAgICAgICAgICB2YXIgcG9pbnQgPSByb290LmNyZWF0
ZVNWR1BvaW50KCk7Ci0gICAgICAgICAgICBwb2ludC54ID0gZXZ0LmNsaWVudFg7Ci0gICAgICAg
ICAgICBwb2ludC55ID0gZXZ0LmNsaWVudFk7Ci0gICAgICAgICAgICBwb2ludCA9IHBvaW50Lm1h
dHJpeFRyYW5zZm9ybShtYXRyaXguaW52ZXJzZSgpKTsKLSAgICAgICAgICAgIGNpcmNsZS5jeC5i
YXNlVmFsLnZhbHVlID0gcG9pbnQueDsKLSAgICAgICAgICAgIGNpcmNsZS5jeS5iYXNlVmFsLnZh
bHVlID0gcG9pbnQueTsKLSAgICAgICAgfQotICAgIAotICAgICAgICBmdW5jdGlvbiBzdGFydE1v
dmUoKSB7Ci0gICAgICAgICAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3Zl
IiwgbW92ZSwgZmFsc2UpOwotICAgICAgICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZXVwIiwgc3RvcE1vdmUsIGZhbHNlKTsKLSAgICAgICAgfQotICAgIAotICAgICAgICBmdW5jdGlv
biBzdG9wTW92ZSgpIHsKLSAgICAgICAgICAgIGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVy
KCJtb3VzZW1vdmUiLCBtb3ZlLCBmYWxzZSk7Ci0gICAgICAgICAgICByb290LnJlbW92ZUV2ZW50
TGlzdGVuZXIoIm1vdXNldXAiLCBzdG9wTW92ZSwgZmFsc2UpOwotICAgIAotICAgICAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLSAgICAKLSAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAKLSAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgewotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMzUwLCAzNTApOwot
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygyMDAsIDIwMCk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7Ci0gICAgICAgIH0KLSAgICA8L3NjcmlwdD4KLTwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXIueGh0bWwgYi9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci54aHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTg5ZGUzZS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci54aHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTxodG1sIHhtbG5zPSdodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sJz4KLTxib2R5IHN0eWxlPSJtYXJnaW46IDBweDsgcGFkZGluZzogMHB4Ij4K
LTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAwIiBoZWln
aHQ9IjQwMCIgc3R5bGU9ImJvcmRlcjogc29saWQiPgotICAgIDxnPgotICAgICAgICA8Y2lyY2xl
IGN4PSIzNTAiIGN5PSIzNTAiIHI9IjUwIiBmaWxsPSJncmVlbiIgb25tb3VzZWRvd249InN0YXJ0
TW92ZSgpIi8+Ci0gICAgPC9nPgotICAgIDx0ZXh0IHg9IjIwMCIgeT0iNTAiIHRleHQtYW5jaG9y
PSJtaWRkbGUiPlRoZSBjaXJjbGUgc2hvdWxkIHN0YXkgaW4gdGhlIGJvdHRvbS1yaWdodCBjb3Ju
ZXI8L3RleHQ+Ci08L3N2Zz4KLTxzY3JpcHQ+Ci0gICAgdmFyIHJvb3QgPSBkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgic3ZnIilbMF07Ci0gICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJnIilbMF07Ci0gICAgdmFyIGNpcmNsZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjaXJjbGUiKVswXTsKLQotICAgIGZ1bmN0aW9uIG1vdmUo
ZXZ0KSB7Ci0gICAgICAgIHZhciBtYXRyaXggPSBjb250YWluZXIuZ2V0U2NyZWVuQ1RNKCk7Ci0g
ICAgICAgIHZhciBwb2ludCA9IHJvb3QuY3JlYXRlU1ZHUG9pbnQoKTsKLSAgICAgICAgcG9pbnQu
eCA9IGV2dC5jbGllbnRYOwotICAgICAgICBwb2ludC55ID0gZXZ0LmNsaWVudFk7Ci0gICAgICAg
IHBvaW50ID0gcG9pbnQubWF0cml4VHJhbnNmb3JtKG1hdHJpeC5pbnZlcnNlKCkpOwotICAgICAg
ICBjaXJjbGUuY3guYmFzZVZhbC52YWx1ZSA9IHBvaW50Lng7Ci0gICAgICAgIGNpcmNsZS5jeS5i
YXNlVmFsLnZhbHVlID0gcG9pbnQueTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdGFydE1vdmUo
KSB7Ci0gICAgICAgIGNvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBtb3Zl
LCBmYWxzZSk7Ci0gICAgICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHN0b3BN
b3ZlLCBmYWxzZSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RvcE1vdmUoKSB7Ci0gICAgICAg
IGNvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBtb3ZlLCBmYWxzZSk7
Ci0gICAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHN0b3BNb3ZlLCBm
YWxzZSk7Ci0KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICB9Ci0KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Ci0KLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0g
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzUwKTsKLSAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwMCwg
MjAwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgIH0KLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9tb3Vz
ZS1tb3ZlLW9uLXN2Zy1yb290LXN0YW5kYWxvbmUuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LXN0YW5kYWxvbmUuc3ZnCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzZmNiYTExLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N2Zy9jdXN0
b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFuZGFsb25lLnN2ZworKysgL2Rldi9udWxsCkBA
IC0xLDQxICswLDAgQEAKLTxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3
aWR0aD0iNDAwIiBoZWlnaHQ9IjQwMCIgc3R5bGU9ImJvcmRlcjogc29saWQiPgotICAgIDxjaXJj
bGUgY3g9IjM1MCIgY3k9IjM1MCIgcj0iNTAiIGZpbGw9ImdyZWVuIiBvbm1vdXNlZG93bj0ic3Rh
cnRNb3ZlKCkiLz4KLSAgICA8dGV4dCB4PSIyMDAiIHk9IjUwIiB0ZXh0LWFuY2hvcj0ibWlkZGxl
Ij5UaGUgY2lyY2xlIHNob3VsZCBiZSBpbiB0aGUgbWlkZGxlPC90ZXh0PgotICAgIDxzY3JpcHQ+
Ci0gICAgICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN2ZyIp
WzBdOwotICAgICAgICB2YXIgY2lyY2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImNpcmNsZSIpWzBdOwotICAgIAotICAgICAgICBmdW5jdGlvbiBtb3ZlKGV2dCkgewotICAgICAg
ICAgICAgdmFyIG1hdHJpeCA9IHJvb3QuZ2V0U2NyZWVuQ1RNKCk7Ci0gICAgICAgICAgICB2YXIg
cG9pbnQgPSByb290LmNyZWF0ZVNWR1BvaW50KCk7Ci0gICAgICAgICAgICBwb2ludC54ID0gZXZ0
LmNsaWVudFg7Ci0gICAgICAgICAgICBwb2ludC55ID0gZXZ0LmNsaWVudFk7Ci0gICAgICAgICAg
ICBwb2ludCA9IHBvaW50Lm1hdHJpeFRyYW5zZm9ybShtYXRyaXguaW52ZXJzZSgpKTsKLSAgICAg
ICAgICAgIGNpcmNsZS5jeC5iYXNlVmFsLnZhbHVlID0gcG9pbnQueDsKLSAgICAgICAgICAgIGNp
cmNsZS5jeS5iYXNlVmFsLnZhbHVlID0gcG9pbnQueTsKLSAgICAgICAgfQotICAgIAotICAgICAg
ICBmdW5jdGlvbiBzdGFydE1vdmUoKSB7Ci0gICAgICAgICAgICByb290LmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlbW92ZSIsIG1vdmUsIGZhbHNlKTsKLSAgICAgICAgICAgIHJvb3QuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2V1cCIsIHN0b3BNb3ZlLCBmYWxzZSk7Ci0gICAgICAgIH0KLSAgICAKLSAg
ICAgICAgZnVuY3Rpb24gc3RvcE1vdmUoKSB7Ci0gICAgICAgICAgICByb290LnJlbW92ZUV2ZW50
TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG1vdmUsIGZhbHNlKTsKLSAgICAgICAgICAgIHJvb3QucmVt
b3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHN0b3BNb3ZlLCBmYWxzZSk7Ci0gICAgCi0gICAg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgfQotICAgIAotICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIAotICAgICAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygzNTAs
IDM1MCk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwMCwgMjAwKTsKLSAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKLSAgICAgICAgfQotICAgIDwvc2NyaXB0PgotPC9zdmc+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3QueGh0bWwg
Yi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLXJvb3QueGh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlMzdlYjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1yb290LnhodG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWwgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnPgotPGJvZHkgc3R5bGU9Im1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHgiPgotPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAw
IiBzdHlsZT0iYm9yZGVyOiBzb2xpZCI+Ci0gICAgPGNpcmNsZSBjeD0iMzUwIiBjeT0iMzUwIiBy
PSI1MCIgZmlsbD0iZ3JlZW4iIG9ubW91c2Vkb3duPSJzdGFydE1vdmUoKSIvPgotICAgIDx0ZXh0
IHg9IjIwMCIgeT0iNTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiPlRoZSBjaXJjbGUgc2hvdWxkIGJl
IGluIHRoZSBtaWRkbGU8L3RleHQ+Ci08L3N2Zz4KLTxzY3JpcHQ+Ci0gICAgdmFyIHJvb3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3ZnIilbMF07Ci0gICAgdmFyIGNpcmNsZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjaXJjbGUiKVswXTsKLQotICAgIGZ1bmN0
aW9uIG1vdmUoZXZ0KSB7Ci0gICAgICAgIHZhciBtYXRyaXggPSByb290LmdldFNjcmVlbkNUTSgp
OwotICAgICAgICB2YXIgcG9pbnQgPSByb290LmNyZWF0ZVNWR1BvaW50KCk7Ci0gICAgICAgIHBv
aW50LnggPSBldnQuY2xpZW50WDsKLSAgICAgICAgcG9pbnQueSA9IGV2dC5jbGllbnRZOwotICAg
ICAgICBwb2ludCA9IHBvaW50Lm1hdHJpeFRyYW5zZm9ybShtYXRyaXguaW52ZXJzZSgpKTsKLSAg
ICAgICAgY2lyY2xlLmN4LmJhc2VWYWwudmFsdWUgPSBwb2ludC54OwotICAgICAgICBjaXJjbGUu
Y3kuYmFzZVZhbC52YWx1ZSA9IHBvaW50Lnk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gc3RhcnRN
b3ZlKCkgewotICAgICAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG1vdmUs
IGZhbHNlKTsKLSAgICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgc3RvcE1v
dmUsIGZhbHNlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdG9wTW92ZSgpIHsKLSAgICAgICAg
cm9vdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCBtb3ZlLCBmYWxzZSk7Ci0gICAg
ICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHN0b3BNb3ZlLCBmYWxzZSk7
Ci0KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLSAgICB9Ci0KLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Ci0KLSAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDM1MCwgMzUwKTsKLSAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7Ci0gICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwMCwgMjAwKTsK
LSAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtaW52YWxp
ZC1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1pbnZhbGlk
LXN0eWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBiYzIx
ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1pbnZhbGlkLXN0eWxl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotVGhpcyBwYWdlIGNv
bnRhaW5zIHRoZSBmb2xsb3dpbmcgZXJyb3JzOgotCi1lcnJvciBvbiBsaW5lIDEwIGF0IGNvbHVt
biA3OiBPcGVuaW5nIGFuZCBlbmRpbmcgdGFnIG1pc21hdGNoOiBqdW5rIGxpbmUgMCBhbmQgc3Zn
Ci1CZWxvdyBpcyBhIHJlbmRlcmluZyBvZiB0aGUgcGFnZSB1cCB0byB0aGUgZmlyc3QgZXJyb3Iu
Ci0KLVRoaXMgc2hvdWxkIG5vdCBjcmFzaCwgYnV0IGRpc3BsYXkgYW4gZXJyb3IgZG9jdW1lbnQu
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdXNlLWludmFsaWQtc3R5bGUu
c3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtaW52YWxpZC1zdHlsZS5zdmcKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NzM0MjguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS91c2UtaW52YWxpZC1zdHlsZS5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi08c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6
eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KLSAgICA8c2NyaXB0Pg0KLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQotICAgIDwvc2NyaXB0Pg0KLSAgICA8dGV4
dCB5PSIyMCI+VGhpcyBzaG91bGQgbm90IGNyYXNoLCBidXQgZGlzcGxheSBhbiBlcnJvciBkb2N1
bWVudC48L3RleHQ+DQotICAgIDxzdHlsZSBpZD0iY3Jhc2giPjwvc3R5bGU+DQotICAgIDx1c2Ug
eGxpbms6aHJlZj0iI2NyYXNoIiAvPg0KLSAgICA8anVuaz4NCi08L3N2Zz4NCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDExYWJmZmYuLjQy
ZjMyNmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDE0OTcgKzEsNjYgQEAKLTIwMTAtMDktMDYgIEFudG9uIE11aGluICA8YW50b25t
QGNocm9taXVtLm9yZz4KKzIwMTAtMDktMDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KIAotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAg
IFt2OF0gYnlwYXNzIGNhY2hlcyB3aGVuIHF1ZXJ5IG1lbW9yeSB1c2FnZSBmcm9tIHBvc3QgR0Mg
YW5kIGluIGNyYXNoIGhhbmRsZXIuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NTAzNgotCi0gICAgICAgIEFkZCBDaHJvbWl1bS1zcGVjaWZpYyBBUEkg
dG8gcXVlcnkgYWN0dWFsIG1lbW9yeSB1c2FnZSB3aGljaCBieXBhc3NlcyBhbnkgY2FjaGVzLgot
Ci0gICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaDoKLQotMjAxMC0w
OS0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIFJlbmFtZSBTZWN1cml0eU9yaWdpbjo6Y2FuTG9h
ZCB0byBjYW5EaXNwbGF5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NTIxNAotCi0gICAgICAgIGNhbkxvYWQgaXMgYSBwcmV0dHkgb3BhcXVlIG5hbWUu
ICBUaGlzIGZ1bmN0aW9uIGlzIHJlYWxseSBhYm91dCB3aGV0aGVyCi0gICAgICAgIHlvdSBjYW4g
ZGlzcGxheSB0aGUgY29udGVudHMgb2YgdGhlIFVSTCBpbiBhbiBpZnJhbWUsIGFuIGltYWdlLCBv
ciBhCi0gICAgICAgIHBsdWdpbi4KLQotICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgotICAgICAg
ICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50Ojppc1NhZmVUb0xvYWRVUkwpOgotICAgICAgICAqIGxvYWRlci9DYWNoZS5jcHA6
Ci0gICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cmVxdWVzdFJlc291cmNlKToKLSAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkZXIuY3BwOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWRGcmFtZVJlcXVlc3QpOgotICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKLSAgICAg
ICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFnZSk6Ci0gICAgICAgICogbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2Fk
TWVkaWFQbGF5ZXJQcm94eVBsdWdpbik6Ci0gICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRl
cjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdldCk6Ci0gICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxv
YWRlcjo6bG9hZFN1YmZyYW1lKToKLSAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjps
b2FkUGx1Z2luKToKLSAgICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgotICAg
ICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZSk6Ci0gICAgICAgICogcGFn
ZS9TZWN1cml0eU9yaWdpbi5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
Y2FuRGlzcGxheSk6Ci0gICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgotICAgICAgICAq
IHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojps
b2FkKToKLQotMjAxMC0wOC0zMSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCi0KLSAgICAgICAgV2Vi
IEluc3BlY3RvcjogYnJvd3NlciBjcmFzaGVzIG9uIGF0dGVtcHQgdG8gZXZhbHVhdGUgImFsZXJ0
KDEpIiB3aGlsZSBzdGF5aW5nIG9uIGEgYnJlYWtwb2ludAotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ5NDMKLQotICAgICAgICBUZXN0OiBpbnNwZWN0
b3IvZGVidWdnZXItc3VzcGVuZC1hY3RpdmUtZG9tLW9iamVjdHMuaHRtbAotCi0gICAgICAgICog
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgotICAgICAgICAoV2ViQ29yZTo6UGFnZUdy
b3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIpOgotCi0yMDEwLTA5LTA1ICBL
ZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCi0KLSAgICAgICAgQWRkIHVuaXQgdGVzdHMgZm9yIHJlZC1ibGFjayB0cmVl
IGFuZCAoUE9EKSBhcmVuYQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDUwNjAKLQotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RBcmVu
YS5oOiBNYWRlIERlZmF1bHRDaHVua1NpemUgcHVibGljIHNvIHVuaXQgdGVzdHMgY2FuIGFjY2Vz
cyBpdC4gRml4ZWQgY29weXJpZ2h0IGhlYWRlci4KLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvUE9ESW50ZXJ2YWwuaDogRml4ZWQgY29weXJpZ2h0IGhlYWRlci4KLSAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9ESW50ZXJ2YWxUcmVlLmg6IEZpeGVkIGNvcHlyaWdodCBo
ZWFkZXIuCi0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPRFJlZEJsYWNrVHJlZS5o
OiBGaXhlZCBjb3B5cmlnaHQgaGVhZGVyLgotCi0yMDEwLTA5LTA1ICBKZXJlbXkgT3Jsb3cgIDxq
b3Jsb3dAY2hyb21pdW0ub3JnPgorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
IAotICAgICAgICBSZXZpZXdlZCBieSBOYXRlIENoYXBpbi4KLQotICAgICAgICBBZGQgdGhlIGNv
bmNlcHQgb2YgY2xhc3MgbWV0aG9kcyB0byBiaW5kaW5ncyAoZm9yIEluZGV4ZWREQidzIElEQktl
eVJhbmdlKS4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ1MDQ0Ci0KLSAgICAgICAgSW5kZXhlZERCJ3MgSURCS2V5UmFuZ2UgaGFzIHdoYXQsIGluIG90
aGVyIGxhbmd1YWdlcywgYXJlIGNhbGxlZCBjbGFzcwotICAgICAgICBtZXRob2RzLiBJbiBqYXZh
U2NyaXB0IHRlcm1zLCB0aGVzZSBhcmUgbWV0aG9kcyBvbmx5IGFjY2Vzc2libGUgZnJvbSB0aGVp
cgotICAgICAgICBjb25zdHJ1Y3RvciBhbmQgbm90IGluc3RhbmNlcy4gVGhpcyBjaGFuZ2UgYWRk
cyBzdWNoIHN1cHBvcnQgdG8gVjguIFRoZXJlCi0gICAgICAgIGFyZSBhbHJlYWR5IG90aGVyIGZl
YXR1cmVzIHJlcXVpcmVkIGZvciBJbmRleGVkREIgdGhhdCBKU0MgZG9lc24ndCB5ZXQKLSAgICAg
ICAgc3VwcG9ydCwgc28gSSdsbCBhZGQgdGhpcyB0byB0aGUgbGlzdCBvZiB0b2RvIGl0ZW1zIGlu
IHRoZSBtYXN0ZXIgYnVnCi0gICAgICAgIGZvciB0aGF0LgotCi0gICAgICAgIFRoZSBiaW5kaW5n
cyB0ZXN0cyBjb3ZlciB0aGlzLiBNeSBuZXh0IHBhdGNoIHdpbGwgY2hhbmdlIFdlYkNvcmUgdG8g
dXNlCi0gICAgICAgIHRoaXMgYW5kIGl0J2xsIGhhdmUgYXNzb2NpYXRlZCBsYXlvdXQgdGVzdHMu
Ci0KLSAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKLSAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwOgotICAgICAg
ICAoV2ViRE9NVGVzdE9iajo6Y2xhc3NNZXRob2QpOgotICAgICAgICAoV2ViRE9NVGVzdE9iajo6
Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwpOgotICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdE9iai5oOgotICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOgotICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9jbGFzc19tZXRob2QpOgotICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9jbGFzc19tZXRo
b2Rfd2l0aF9vcHRpb25hbCk6Ci0gICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5oOgotICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPYmouY3BwOgotICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25TdGF0aWNNZXRob2QpOgotICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoT3B0aW9uYWwpOgotICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKLSAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvT2JqQy9ET01UZXN0T2JqLmg6Ci0gICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09i
akMvRE9NVGVzdE9iai5tbToKLSAgICAgICAgKC1bRE9NVGVzdE9iaiBjbGFzc01ldGhvZF0pOgot
ICAgICAgICAoLVtET01UZXN0T2JqIGNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsOl0pOgotICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKLSAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OlRlc3RP
YmpJbnRlcm5hbDo6Y2xhc3NNZXRob2RDYWxsYmFjayk6Ci0gICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqSW50ZXJuYWw6OmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsQ2FsbGJhY2spOgotICAgICAgICAo
V2ViQ29yZTo6Q29uZmlndXJlVjhUZXN0T2JqVGVtcGxhdGUpOgotICAgICAgICAqIHN0b3JhZ2Uv
SURCS2V5UmFuZ2UuaWRsOgotCi0yMDEwLTA5LTA1ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgotCi0gICAgICAg
IEFkZCBJbmRleGVkREIgb2JqZWN0cycgY29uc3RydWN0b3JzIHRvIHdpbmRvdwotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ1OTkKLQotICAgICAgICBB
bHNvIGFkZCBhIGZvcmdvdHRlbiBjb25zdGFudCB0byBJREJUcmFuc2FjdGlvbiwgYW5kCi0gICAg
ICAgIGNoYW5nZSBJREJLZXlSYW5nZSBvdmVyIHRvIHVzaW5nIHRoZSBWOFN0YXRpYyBhdHRyaWJ1
dGUKLSAgICAgICAgc28gaXQgYWN0dWFsbHkgYmVoYXZlcyBhcyBpdCdzIHN1cHBvc2VkIHRvLgot
Ci0gICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6Ci0g
ICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJDdXJzb3JFbmFibGVk
KToKLSAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQkRhdGFiYXNl
RW5hYmxlZCk6Ci0gICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJE
YXRhYmFzZUVycm9yRW5hYmxlZCk6Ci0gICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjppREJEYXRhYmFzZUV4Y2VwdGlvbkVuYWJsZWQpOgotICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCRXJyb3JFdmVudEVuYWJsZWQpOgotICAgICAgICAo
V2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCRXZlbnRFbmFibGVkKToKLSAgICAg
ICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQkZhY3RvcnlFbmFibGVkKToK
LSAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlEQkluZGV4RW5hYmxl
ZCk6Ci0gICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppREJLZXlSYW5n
ZUVuYWJsZWQpOgotICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURC
T2JqZWN0U3RvcmVFbmFibGVkKToKLSAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OmlEQlJlcXVlc3RFbmFibGVkKToKLSAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmlEQlN1Y2Nlc3NFdmVudEVuYWJsZWQpOgotICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6aURCVHJhbnNhY3Rpb25FbmFibGVkKToKLSAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFy
KToKLSAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aW5kZXhlZERCKToKLSAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5oOgotICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKLSAgICAgICAg
KiBzdG9yYWdlL0lEQktleVJhbmdlLmlkbDoKLSAgICAgICAgKiBzdG9yYWdlL0lEQlRyYW5zYWN0
aW9uLmg6Ci0gICAgICAgICogc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5pZGw6Ci0KLTIwMTAtMDkt
MDQgIEp1c3RpbiBTY2h1aCAgPGpzY2h1aEBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3
ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgotCi0gICAgICAgIFByZXZlbnQgcHJlbWF0dXJlIGRl
bGV0aW9uIG9mIHN2ZyB1c2Ugc2hhZG93IHRyZWUKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMjYwCi0KLSAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS91
c2UtaW52YWxpZC1zdHlsZS5zdmcKLQotICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDoK
LSAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KToK
LSAgICAgICAgKFdlYkNvcmU6OlNWR1VzZUVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQpOgot
ICAgICAgICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgUHJvdmlk
ZSBzb3VyY2UtYmFzZWQgcHJvcGVydGllcyBmb3Igc3R5bGUgZGVjbGFyYXRpb25zIHRvIENTU1Bh
cnNlciBjbGllbnRzCiAKLTIwMTAtMDktMDMgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1
cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgotCi0gICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4dCB0byBhdm9pZCBsYXllciB2aW9s
YXRpb25zCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MjI5MgotCi0gICAgICAgIENyZWF0ZSBhbmQgcHJvdmlkZSBhY2Nlc3MgdG8gTmV0d29ya2luZ0Nv
bnRleHQgaW4gRnJhbWVMb2FkZXIuCi0KLSAgICAgICAgSW4gdGhlIFdlYktpdCBsYXllciB3ZSBh
ZGRlZCBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgRnJhbWVOZXR3b3JraW5nQ29udGV4dAot
ICAgICAgICBzbyBlYWNoIHBvcnQncyBGcmFtZUxvYWRlckNsaWVudCBjYW4gYWRkIGFueSBwb3J0
IHNwZWNpZmljIGluZm9ybWF0aW9uIHRvIE5ldHdvcmtpbmdDb250ZXh0Ci0gICAgICAgIFRoZSBO
ZXR3b3JraW5nQ29udGV4dCBpcywgdGhlcmVmb3JlLCBjcmVhdGVkIGJ5IGEgRnJhbWVMb2FkZXJD
bGllbnQgYW5kIHN0b3JlZAotICAgICAgICBpbiB0aGUgRnJhbWVMb2FkZXIgZm9yIGVhY2ggZnJh
bWUgY3JlYXRlZC4gUGVvcGxlIG11c3QgYWx3YXlzIHVzZSBpdAotICAgICAgICBieSBjYWxsaW5n
IEZyYW1lTG9hZGVyOjpuZXR3b3JraW5nQ29udGV4dCgpIGFuZCBuZXZlciB0aHJvdWdoIHRoZWly
IEZyYW1lTG9hZGVyQ2xpZW50LgotICAgICAgICBUaGUgbGlmZXRpbWUgY3ljbGUgb2YgTmV0d29y
a2luZ0NvbnRleHQgaXMga2VwdCBieSBhIFJlZlB0ciwgc28gdGhlIG9iamVjdCBpcyBSZWZDb3Vu
dGVkLgotCi0gICAgICAgIEl0IGlzIHN0aWxsIGEgcHJlcGFyYXRpb24gdG8gTmV0d29ya2luZ0Nv
bnRleHQgdG8gYmUgYWN0aXZhdGVkIGFuZAotICAgICAgICB3b3JrIGZvciBhbGwgcG9ydHMuCi0K
LSAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKLSAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6Ci0gICAgICAgIChXZWJDb3JlOjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCk6Ci0gICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKLSAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp+RnJhbWVMb2FkZXIpOgotICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmluaXQpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Om5l
dHdvcmtpbmdDb250ZXh0KToKLSAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKLSAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKLQotMjAxMC0wOS0wMyAgS2ludWtvIFlh
c3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCi0KLSAgICAgICAgVjgvSlMgYmluZGluZ3Mgc2hvdWxkIG5vdCBwZXJmb3JtIHR5cGUg
Y2hlY2tzIGlmIHRoZSBwYXJhbWV0ZXIgaGFzIENhbGxiYWNrIGF0dHJpYnV0ZQotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxNDMKLQotICAgICAgICBO
byBuZXcgdGVzdHMsIHNob3VsZCBub3QgYWZmZWN0IGV4aXN0aW5nIGlkbHMuCi0KLSAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKLSAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKLSAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUpOgotICAgICAgICAoV2ViQ29yZTo6anNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKToKLSAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6Ci0gICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6
Om92ZXJsb2FkZWRNZXRob2Q1Q2FsbGJhY2spOgotICAgICAgICAoV2ViQ29yZTo6VGVzdE9iaklu
dGVybmFsOjpvdmVybG9hZGVkTWV0aG9kQ2FsbGJhY2spOgotCi0yMDEwLTA5LTAzICBLZW5uZXRo
IFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCBDaHJvbWl1
bSBidWlsZCBmaXguIEZpeCBicmVha2FnZSBvbiBXaW5kb3dzIGFmdGVyCi0gICAgICAgIHI2Njc4
NyAvIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIyMyAuCi0KLSAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwOgot
ICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6Ci0KLTIwMTAtMDktMDMgIEphbWVz
IFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJ1c3NlbGwuCi0KLSAgICAgICAgW2Nocm9taXVtXSBUZXh0IHNvbWV0aW1lcyBmYWls
cyB0byBkaXNwbGF5IGluIGFjY2VsZXJhdGVkIDJkIGNhbnZhc2VzCi0gICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIyMwotCi0gICAgICAgIENhbGxzIFBs
YXRmb3JtQ29udGV4dFNraWE6OnByZXBhcmVGb3JTb2Z0d2FyZURyYXcoKSBiZWZvcmUgZHJhd2lu
ZyBnbHlwaHMKLSAgICAgICAgdXNpbmcgc2tpYSB0byBlbnN1cmUgdGhhdCB0aGUgYmFja2luZyBz
dG9yZSBzdGF0ZSBpcyBjb25zaXN0ZW50LgotCi0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRy
YXdHbHlwaHMpOgotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51
eC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKToKLQotMjAxMC0wOS0w
MyAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgotCi0gICAgICAgIEFkZCB0aGlyZHBhcnR5IGRpcmVjdG9yeSBhbmQg
aW5jb3Jwb3JhdGUgR0xVIHRlc3NlbGxhdG9yCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NDcwNwotCi0gICAgICAgIFRoaXMgZGlyZWN0b3J5IGlzIGlu
dGVuZGVkIHRvIGNvbnRhaW4gY29waWVzIG9mIHRoaXJkLXBhcnR5IGxpYnJhcmllcyB1c2VkCi0g
ICAgICAgIGJ5IFdlYkNvcmUsIGluIHBhcnRpY3VsYXIgdGhvc2Ugd2hpY2ggbWF5IHJlcXVpcmUg
c29tZSBtb2RpZmljYXRpb24gaW4KLSAgICAgICAgb3JkZXIgdG8gaW5jb3Jwb3JhdGUuCi0KLSAg
ICAgICAgTm8gdGVzdHMgYXQgdGhpcyB0aW1lOyB0aGVzZSBzb3VyY2VzIGFyZSBiZWluZyBhZGRl
ZCBpbiBwcmVwYXJhdGlvbiBmb3IKLSAgICAgICAgaW5jb3Jwb3JhdGluZyBvdGhlciBjb2RlIHdo
aWNoIHVzZXMgdGhlbSwgYXQgd2hpY2ggcG9pbnQgdGhlIGNvZGUgd2lsbCBiZQotICAgICAgICBl
eGVyY2lzZWQgYW5kIHRlc3RhYmxlLgotCi0gICAgICAgICogdGhpcmRwYXJ0eTogQWRkZWQuCi0g
ICAgICAgICogdGhpcmRwYXJ0eS9SRUFETUUudHh0OiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBh
cnR5L2dsdTogQWRkZWQuCi0gICAgICAgICogdGhpcmRwYXJ0eS9nbHUvTElDRU5TRS50eHQ6IEFk
ZGVkLgotICAgICAgICAqIHRoaXJkcGFydHkvZ2x1L1JFQURNRS53ZWJraXQ6IEFkZGVkLgotICAg
ICAgICAqIHRoaXJkcGFydHkvZ2x1L2dsdW9zLmg6IEFkZGVkLgotICAgICAgICAqIHRoaXJkcGFy
dHkvZ2x1L2ludGVybmFsX2dsdS5oOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBhcnR5L2dsdS9s
aWJ0ZXNzOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL0dOVW1ha2Vm
aWxlOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL0ltYWtlZmlsZTog
QWRkZWQuCi0gICAgICAgICogdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9SRUFETUU6IEFkZGVkLgot
ICAgICAgICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvYWxnLW91dGxpbmU6IEFkZGVkLgotICAg
ICAgICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvZGljdC1saXN0Lmg6IEFkZGVkLgotICAgICAg
ICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvZGljdC5jOiBBZGRlZC4KLSAgICAgICAgKiB0aGly
ZHBhcnR5L2dsdS9saWJ0ZXNzL2RpY3QuaDogQWRkZWQuCi0gICAgICAgICogdGhpcmRwYXJ0eS9n
bHUvbGlidGVzcy9nZW9tLmM6IEFkZGVkLgotICAgICAgICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRl
c3MvZ2VvbS5oOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lbWFs
bG9jLmM6IEFkZGVkLgotICAgICAgICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvbWVtYWxsb2Mu
aDogQWRkZWQuCi0gICAgICAgICogdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZXNoLmM6IEFkZGVk
LgotICAgICAgICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvbWVzaC5oOiBBZGRlZC4KLSAgICAg
ICAgKiB0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL25vcm1hbC5jOiBBZGRlZC4KLSAgICAgICAgKiB0
aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL25vcm1hbC5oOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBh
cnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS1oZWFwLmM6IEFkZGVkLgotICAgICAgICAqIHRoaXJk
cGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlxLWhlYXAuaDogQWRkZWQuCi0gICAgICAgICogdGhp
cmRwYXJ0eS9nbHUvbGlidGVzcy9wcmlvcml0eXEtc29ydC5oOiBBZGRlZC4KLSAgICAgICAgKiB0
aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS5jOiBBZGRlZC4KLSAgICAgICAgKiB0aGly
ZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS5oOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBh
cnR5L2dsdS9saWJ0ZXNzL3JlbmRlci5jOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBhcnR5L2ds
dS9saWJ0ZXNzL3JlbmRlci5oOiBBZGRlZC4KLSAgICAgICAgKiB0aGlyZHBhcnR5L2dsdS9saWJ0
ZXNzL3N3ZWVwLmM6IEFkZGVkLgotICAgICAgICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3Mvc3dl
ZXAuaDogQWRkZWQuCi0gICAgICAgICogdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy90ZXNzLmM6IEFk
ZGVkLgotICAgICAgICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzcy5oOiBBZGRlZC4KLSAg
ICAgICAgKiB0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3Rlc3Ntb25vLmM6IEFkZGVkLgotICAgICAg
ICAqIHRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzc21vbm8uaDogQWRkZWQuCi0KLTIwMTAtMDkt
MDMgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2Njc4MS4KLSAgICAgICAgaHR0cDovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvNjY3ODEKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1MjIwCi0KLSAgICAgICAgQnJlYWtzIHRoZSBidWlsZC4gQWRkcyBh
IG1hYy1zcGVjaWZpYyBmaWxlIHRvCi0gICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzIHdpdGhvdXQg
I2lmIFBMQVRGT1JNKCkgZ3VhcmRzIGFuZCBjaGFuZ2VzCi0gICAgICAgIHRoZSBHcmFwaGljc0Nv
bnRleHQzRCBpbnRlcmZhY2Ugd2l0aG91dCB1cGRhdGluZyBhbGwKLSAgICAgICAgaW1wbGVtZW50
YXRpb25zIChSZXF1ZXN0ZWQgYnkgamFtZXNyIG9uICN3ZWJraXQpLgotCi0gICAgICAgICogV2Vi
Q29yZS5neXBpOgotICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
LSAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHA6Ci0gICAgICAgIChXZWJDb3Jl
OjpXZWJHTE9iamVjdDo6ZGVsZXRlT2JqZWN0KToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9BTkdMRVdlYktpdEJyaWRnZS5oOgotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmg6Ci0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0wuY3BwOiBSZW1vdmVkLgotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21h
Yy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMpOgotICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgotICAgICAgICAoV2ViQ29yZTo6ZW5z
dXJlQ29udGV4dCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFy
ZVRleHR1cmUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmFjdGl2ZVRl
eHR1cmUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaFNoYWRl
cik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6YmluZEF0dHJpYkxvY2F0
aW9uKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpiaW5kQnVmZmVyKToK
LSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRSZW5kZXJidWZmZXIpOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRUZXh0dXJlKToKLSAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZENvbG9yKToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEVxdWF0aW9uKToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEVxdWF0aW9uU2VwYXJhdGUpOgotICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRnVuYyk6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YmxlbmRGdW5jU2VwYXJhdGUpOgotICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJ1ZmZlckRhdGEpOgotICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmJ1ZmZlclN1YkRhdGEpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmNoZWNrRnJhbWVidWZmZXJTdGF0dXMpOgotICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyQ29sb3IpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmNsZWFyKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpjbGVhckRlcHRoKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjbGVh
clN0ZW5jaWwpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNvbG9yTWFz
ayk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlcik6
Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleEltYWdlMkQpOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToK
LSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjdWxsRmFjZSk6Ci0gICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhGdW5jKToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aE1hc2spOgotICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OmRldGFjaFNoYWRlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6ZGlzYWJsZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGlz
YWJsZVZlcnRleEF0dHJpYkFycmF5KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpkcmF3QXJyYXlzKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpk
cmF3RWxlbWVudHMpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmVuYWJs
ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZW5hYmxlVmVydGV4QXR0
cmliQXJyYXkpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmZpbmlzaCk6
Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Zmx1c2gpOgotICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKToKLSAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpmcmFtZWJ1ZmZlclRleHR1cmUyRCk6
Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZnJvbnRGYWNlKToKLSAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZW5lcmF0ZU1pcG1hcCk6Ci0gICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0QWN0aXZlQXR0cmliKToKLSAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRBY3RpdmVVbmlmb3JtKToKLSAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRhY2hlZFNoYWRlcnMpOgotICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEF0dHJpYkxvY2F0aW9uKToKLSAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6Ci0g
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXJyb3IpOgotICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFN0cmluZyk6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6aGludCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6aXNCdWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmlzRW5hYmxlZCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aXNGcmFt
ZWJ1ZmZlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aXNQcm9ncmFt
KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjppc1JlbmRlcmJ1ZmZlcik6
Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aXNTaGFkZXIpOgotICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmlzVGV4dHVyZSk6Ci0gICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6bGluZVdpZHRoKToKLSAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpsaW5rUHJvZ3JhbSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cGl4ZWxTdG9yZWkpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OnBvbHlnb25PZmZzZXQpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnJlYWRQaXhlbHMpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJl
bGVhc2VTaGFkZXJDb21waWxlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6cmVuZGVyYnVmZmVyU3RvcmFnZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6c2FtcGxlQ292ZXJhZ2UpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnNjaXNzb3IpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNoYWRl
clNvdXJjZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbEZ1
bmMpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxGdW5jU2Vw
YXJhdGUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxNYXNr
KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsTWFza1NlcGFy
YXRlKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsT3ApOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxPcFNlcGFyYXRlKToK
LSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhQYXJhbWV0ZXJmKToKLSAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhQYXJhbWV0ZXJpKToKLSAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtMWYpOgotICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVuaWZvcm0xZnYpOgotICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OnVuaWZvcm0yZik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6dW5pZm9ybTJmdik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6dW5pZm9ybTNmKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1
bmlmb3JtM2Z2KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3Jt
NGYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVuaWZvcm00ZnYpOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVuaWZvcm0xaSk6Ci0gICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybTFpdik6Ci0gICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybTJpKToKLSAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtMml2KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjp1bmlmb3JtM2kpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnVuaWZvcm0zaXYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVu
aWZvcm00aSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybTRp
dik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybU1hdHJpeDJm
dik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybU1hdHJpeDNm
dik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybU1hdHJpeDRm
dik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXNlUHJvZ3JhbSk6Ci0g
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVQcm9ncmFtKToKLSAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWIxZik6Ci0gICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliMWZ2KToKLSAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWIyZik6Ci0gICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliMmZ2KToKLSAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWIzZik6Ci0gICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliM2Z2KToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWI0Zik6Ci0gICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliNGZ2KToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWJQb2ludGVyKToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2aWV3cG9ydCk6Ci0gICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6Z2V0Qm9vbGVhbnYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmdldEJ1ZmZlclBhcmFtZXRlcml2KToKLSAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpnZXRGbG9hdHYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OmdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KToKLSAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlZ2Vydik6Ci0gICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0UHJvZ3JhbWl2KToKLSAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRQcm9ncmFtSW5mb0xvZyk6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYpOgotICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlcml2KToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJJbmZvTG9nKToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRTaGFkZXJTb3VyY2UpOgotICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFRleFBhcmFtZXRlcmZ2KToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRUZXhQYXJhbWV0ZXJpdik6Ci0gICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0VW5pZm9ybWZ2KToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtaXYpOgotICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmdldFVuaWZvcm1Mb2NhdGlvbik6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0VmVydGV4QXR0cmliZnYpOgotICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFZlcnRleEF0dHJpYml2KToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQpOgotICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdlMkQpOgotICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleFN1YkltYWdlMkQpOgotICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUJ1ZmZlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Y3JlYXRlRnJhbWVidWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNyZWF0ZVByb2dyYW0pOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmNyZWF0ZVJlbmRlcmJ1ZmZlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Y3JlYXRlU2hhZGVyKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpjcmVhdGVUZXh0dXJlKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpkZWxldGVCdWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmRlbGV0ZUZyYW1lYnVmZmVyKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpkZWxldGVQcm9ncmFtKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpkZWxldGVSZW5kZXJidWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmRlbGV0ZVNoYWRlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6
ZGVsZXRlVGV4dHVyZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2l6
ZUluQnl0ZXMpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnN5bnRoZXNp
emVHTEVycm9yKToKLQotMjAxMC0wOS0wMyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21p
dW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KLQotICAgICAg
ICBGb3JjZSAyZCBjYW52YXNlcyB0byBiZSByZW5kZXJlZCBpbiBzb2Z0d2FyZSB3aGVuIHRoZSBj
b21wb3NpdGUgb3BlcmF0aW9uIGlzbid0IHNvdXJjZS1vdmVyCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTIxNgotCi0gICAgICAgIFRoZSBjdXJyZW50
IGFjY2VsZXJhdGVkIDJkIGNhbnZhcyBpbXBsZW1lbnRhdGlvbiBpcyB2ZXJ5IHNsb3cgZm9yIGNv
bXBvc2l0ZSBvcGVyYXRpb25zIG90aGVyCi0gICAgICAgIHRoYW4gdGhlIGRlZmF1bHQuICBUaGlz
IHBhdGNoIGZvcmNlcyBhIGNhbnZhcyB0byBiZSByZW5kZXJlZCBpbiBzb2Z0d2FyZSBpZiBhbnkg
b3RoZXIgb3BlcmF0aW9uCi0gICAgICAgIGlzIHNldCB1bnRpbCB3ZSBhY2NlbGVyYXRlIHRoZSBy
ZXN0LgotCi0gICAgICAgIFRlc3RlZCBieSBhbnkgb2YgdGhlIGZhc3QvY2FudmFzIHRlc3RzIHRo
YXQgdXNlIGEgbm9uLWRlZmF1bHQgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uLgotCi0gICAgICAg
ICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKLSAgICAgICAgKFdl
YkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0R2xvYmFsQ29tcG9zaXRlT3BlcmF0
aW9uKToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNr
aWEuY3BwOgotICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0U2hhcmVk
R3JhcGhpY3NDb250ZXh0M0QpOgotCi0yMDEwLTA5LTAzICBQYXVsIFNhd2F5YSAgPHBzYXdheWFA
YXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IENocmlzIE1hcnJpbi4KLQotICAgICAg
ICBSZWZhY3RvcmVkIG91dCBNYWMgc3BlY2lmaWMgY29kZSBmb3IgcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dyYXBoaWNzQ29udGV4dDNELm1tIGZpbGUuCi0gICAgICAgIExlZnQgZ2VuZXJhbCBPcGVu
R0wgY29kZSBpbiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAu
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDYyNQot
Ci0gICAgICAgICogV2ViQ29yZS5neXBpOgotICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKLSAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHA6Ci0g
ICAgICAgIChXZWJDb3JlOjpXZWJHTE9iamVjdDo6ZGVsZXRlT2JqZWN0KToKLSAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oOgotICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6Ci0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwOiBDb3BpZWQgZnJvbSBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW0uCi0gICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OmF0dGFjaFNoYWRlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6YmluZEF0dHJpYkxvY2F0aW9uKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpiaW5kQnVmZmVyKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpiaW5kRnJhbWVidWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmJpbmRSZW5kZXJidWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmJpbmRUZXh0dXJlKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVu
ZENvbG9yKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEVxdWF0
aW9uKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEVxdWF0aW9u
U2VwYXJhdGUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRnVu
Yyk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6YmxlbmRGdW5jU2VwYXJh
dGUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJ1ZmZlckRhdGEpOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmJ1ZmZlclN1YkRhdGEpOgotICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrRnJhbWVidWZmZXJTdGF0dXMp
OgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyQ29sb3IpOgotICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyKToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKToKLSAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpjbGVhclN0ZW5jaWwpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmNvbG9yTWFzayk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29tcGlsZVNoYWRlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Y29weVRleEltYWdlMkQpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmNvcHlUZXhTdWJJbWFnZTJEKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpjdWxsRmFjZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhG
dW5jKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aE1hc2spOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UpOgotICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRldGFjaFNoYWRlcik6Ci0gICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZSk6Ci0gICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpkcmF3QXJyYXlzKToKLSAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpkcmF3RWxlbWVudHMpOgotICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmVuYWJsZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OmZpbmlzaCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Zmx1c2gpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpm
cmFtZWJ1ZmZlclRleHR1cmUyRCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6ZnJvbnRGYWNlKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZW5l
cmF0ZU1pcG1hcCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0QWN0
aXZlQXR0cmliKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRBY3Rp
dmVVbmlmb3JtKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRh
Y2hlZFNoYWRlcnMpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEF0
dHJpYkxvY2F0aW9uKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRF
cnJvcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0U3RyaW5nKToK
LSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoaW50KToKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjppc0J1ZmZlcik6Ci0gICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6aXNFbmFibGVkKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjppc0ZyYW1lYnVmZmVyKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjppc1Byb2dyYW0pOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmlzUmVuZGVyYnVmZmVyKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpp
c1NoYWRlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aXNUZXh0dXJl
KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpsaW5lV2lkdGgpOgotICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQcm9ncmFtKToKLSAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwaXhlbFN0b3JlaSk6Ci0gICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cG9seWdvbk9mZnNldCk6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6cmVsZWFzZVNoYWRlckNvbXBpbGVyKToKLSAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEOjpyZW5kZXJidWZmZXJTdG9yYWdlKToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzYW1wbGVDb3ZlcmFnZSk6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6c2Npc3Nvcik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6c2hhZGVyU291cmNlKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzdGVuY2lsRnVuYyk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6c3RlbmNpbEZ1bmNTZXBhcmF0ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6c3RlbmNpbE1hc2spOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OnN0ZW5jaWxNYXNrU2VwYXJhdGUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnN0ZW5jaWxPcCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c3Rl
bmNpbE9wU2VwYXJhdGUpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRl
eFBhcmFtZXRlcmYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnRleFBh
cmFtZXRlcmkpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVuaWZvcm0x
Zik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybTFmdik6Ci0g
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybTJmKToKLSAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtMmZ2KToKLSAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtM2YpOgotICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnVuaWZvcm0zZnYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OnVuaWZvcm00Zik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6dW5pZm9ybTRmdik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dW5p
Zm9ybTFpKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtMWl2
KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp1bmlmb3JtMmkpOgotICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVuaWZvcm0yaXYpOgotICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnVuaWZvcm0zaSk6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6dW5pZm9ybTNpdik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6dW5pZm9ybTRpKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjp1bmlmb3JtNGl2KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
Ojp1bmlmb3JtTWF0cml4MmZ2KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
Ojp1bmlmb3JtTWF0cml4M2Z2KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
Ojp1bmlmb3JtTWF0cml4NGZ2KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
Ojp1c2VQcm9ncmFtKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxp
ZGF0ZVByb2dyYW0pOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRl
eEF0dHJpYjFmKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhB
dHRyaWIxZnYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0
dHJpYjJmKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRy
aWIyZnYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJp
YjNmKToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWIz
ZnYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYjRm
KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWI0ZnYp
OgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYlBvaW50
ZXIpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZpZXdwb3J0KToKLSAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRCb29sZWFudik6Ci0gICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0QnVmZmVyUGFyYW1ldGVyaXYpOgotICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEZsb2F0dik6Ci0gICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1l
dGVyaXYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVnZXJ2
KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRQcm9ncmFtaXYpOgot
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFByb2dyYW1JbmZvTG9nKToK
LSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXJpdik6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0U2hhZGVy
aXYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlckluZm9M
b2cpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFNoYWRlclNvdXJj
ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0VGV4UGFyYW1ldGVy
ZnYpOgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFRleFBhcmFtZXRl
cml2KToKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRVbmlmb3JtZnYp
OgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFVuaWZvcm1pdik6Ci0g
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0VW5pZm9ybUxvY2F0aW9uKToK
LSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRWZXJ0ZXhBdHRyaWJmdik6
Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0VmVydGV4QXR0cmliaXYp
OgotICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmdldFZlcnRleEF0dHJpYk9m
ZnNldCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2UyRCk6
Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dGV4U3ViSW1hZ2UyRCk6Ci0g
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlQnVmZmVyKToKLSAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVGcmFtZWJ1ZmZlcik6Ci0gICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlUHJvZ3JhbSk6Ci0gICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlUmVuZGVyYnVmZmVyKToKLSAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVTaGFkZXIpOgotICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZVRleHR1cmUpOgotICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZUJ1ZmZlcik6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6ZGVsZXRlRnJhbWVidWZmZXIpOgotICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVByb2dyYW0pOgotICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmRlbGV0ZVJlbmRlcmJ1ZmZlcik6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6ZGVsZXRlU2hhZGVyKToKLSAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpkZWxldGVUZXh0dXJlKToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9tYWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW06Ci0gICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6ZW5zdXJlQ29udGV4dCk6Ci0gICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6aXNFcnJvckdlbmVyYXRlZE9uT3V0T2ZCb3VuZHNBY2Nlc3Nlcyk6Ci0KLTIw
MTAtMDktMDMgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCi0KLSAgICAgICAgW2Nocm9taXVtXSBJbXBsZW1l
bnQgSW1hZ2VCdWZmZXJTa2lhOjpkcmF3IG9uIHRoZSBHUFUgd2hlbiBwb3NzaWJsZQotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMDcKLQotICAgICAg
ICBXaGVuIGRyYXdpbmcgZnJvbSBhbiBJbWFnZUJ1ZmZlciBpbnRvIGEgR3JhcGhpY3NDb250ZXh0
LCBhdHRlbXB0IHRvIGRvIHRoZQotICAgICAgICBkcmF3IGluIGhhcmR3YXJlIHdoZW4gcG9zc2li
bGUuICBUaGlzIGlzIGhvdyBjYW52YXMgMmQncyBkcmF3SW1hZ2UoY2FudmFzLCAuLi4pCi0gICAg
ICAgIGlzIGltcGxlbWVudGVkLiAgQWRkcyBuZXcgQVBJIHRvIERyYXdpbmdCdWZmZXIgdG8gcmVx
dWVzdCBhIHRleHR1cmUgY29udGFpbmluZwotICAgICAgICB0aGUgRHJhd2luZ0J1ZmZlcidzIGN1
cnJlbnQgcmVuZGVyaW5nIHJlc3VsdHMuCi0KLSAgICAgICAgVGVzdDogY292ZXJlZCBmYXN0L2Nh
bnZhcy9kcmF3SW1hZ2UuaHRtbCBhbmQgYWxsIG90aGVyIHRlc3RzIHRoYXQgZHJhdyBmcm9tIG9u
ZQotICAgICAgICAyZCBjYW52YXMgaW50byBhbm90aGVyLgotCi0gICAgICAgICogaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0ltYWdlKToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9EcmF3aW5nQnVmZmVyQ2hyb21pdW0uY3BwOgotICAgICAgICAoV2ViQ29y
ZTo6RHJhd2luZ0J1ZmZlcjo6Z2V0UmVuZGVyaW5nUmVzdWx0c0FzVGV4dHVyZSk6Ci0gICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaDoKLSAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6Ci0gICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlcjo6ZHJhdyk6Ci0KLTIwMTAtMDktMDMgIEphbWVzIFJvYmluc29uICA8amFt
ZXNyQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwu
Ci0KLSAgICAgICAgW2Nocm9taXVtXSBOdWxsIG91dCBDYW52YXMyRExheWVyQ2hyb21pdW0ncyBi
YWNrIHJlZmVyZW5jZSB0byBEcmF3aW5nQnVmZmVyIG9uIGRlc3RydWN0aW9uCi0gICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE4NwotCi0gICAgICAgIENh
bnZhczJETGF5ZXJDaHJvbWl1bSBrZWVwcyBhIGJhY2sgcmVmZXJlbmNlIHRvIGEgRHJhd2luZ0J1
ZmZlci4gIFRoaXMgaGFzIHRvIGJlIGEgcmF3IHBvaW50ZXIKLSAgICAgICAgYmVjYXVzZSB0aGUg
RHJhd2luZ0J1ZmZlciBob2xkcyBhIFJlZlB0ciB0byB0aGUgQ2FudmFzMkRMYXllckNocm9taXVt
LiAgU2luY2UgdGhlIGxheWVyIGNhbgotICAgICAgICBvdXRsaXZlIHRoZSBidWZmZXIsIHRoaXMg
YmFjayByZWZlcmVuY2UgaGFzIHRvIGJlIGV4cGxpY2l0bHkgY2xlYXJlZCB3aGVuIHRoZSBEcmF3
aW5nQnVmZmVyCi0gICAgICAgIGlzIGRlc3Ryb3llZC4KLQotICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5jcHA6Ci0gICAgICAgIChXZWJD
b3JlOjpDYW52YXMyRExheWVyQ2hyb21pdW06OnNldERyYXdpbmdCdWZmZXIpOgotICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5oOgotICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5j
cHA6Ci0gICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjp+RHJhd2luZ0J1ZmZlcik6Ci0K
LTIwMTAtMDktMDMgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KLQotICAgICAgICBBZGQgaW50ZXJ2YWwgdHJlZSBj
YXBhYmxlIG9mIGhvbGRpbmcgcGxhaW4gb2xkIGRhdGEgKFBPRCkKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTYwCi0KLSAgICAgICAgQWRkaW5nIGFu
IGludGVydmFsIHRyZWUgY3VycmVudGx5IGNhcGFibGUgb2YgaG9sZGluZyB0eXBlcyB3aGljaAot
ICAgICAgICBkbyBub3QgcmVxdWlyZSB0aGVpciBkZXN0cnVjdG9ycyB0byBiZSBjYWxsZWQuIFBP
RCBpcyBhIHNsaWdodAotICAgICAgICBtaXNub21lciB3aGljaCB3aWxsIGJlIGNvcnJlY3RlZCBz
b29uLCBob3BlZnVsbHkgYnkgcmVtb3ZpbmcgdGhpcwotICAgICAgICByZXN0cmljdGlvbi4KLQot
ICAgICAgICBUaGlzIGNsYXNzIGlzIGJhc2VkIG9uIHRoZSBhdWdtZW50YWJsZSBwcm9wZXJ0eSBv
ZiB0aGUgcmVkL2JsYWNrCi0gICAgICAgIHRyZWUgaW50ZWdyYXRlZCB1bmRlciBidWcgNDUwNTku
Ci0KLSAgICAgICAgVW5pdCB0ZXN0cyBmb3IgdGhlIFBPREludGVydmFsVHJlZSB3aWxsIGJlIGlu
dGVncmF0ZWQgc2VwYXJhdGVseQotICAgICAgICB1bmRlciBidWcgNDUxNjEuCi0KLSAgICAgICAg
KiBXZWJDb3JlLmd5cGk6Ci0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVy
dmFsLmg6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWw6OlBPREludGVydmFs
KToKLSAgICAgICAgKFdlYkNvcmU6OlBPREludGVydmFsOjpsb3cpOgotICAgICAgICAoV2ViQ29y
ZTo6UE9ESW50ZXJ2YWw6OmhpZ2gpOgotICAgICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWw6OmRh
dGEpOgotICAgICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWw6Om92ZXJsYXBzKToKLSAgICAgICAg
KFdlYkNvcmU6OlBPREludGVydmFsOjpvcGVyYXRvcjwpOgotICAgICAgICAoV2ViQ29yZTo6UE9E
SW50ZXJ2YWw6Om9wZXJhdG9yPT0pOgotICAgICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWw6Om1h
eEhpZ2gpOgotICAgICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWw6OnNldE1heEhpZ2gpOgotICAg
ICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWw6OnRvU3RyaW5nKToKLSAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvUE9ESW50ZXJ2YWxUcmVlLmg6IEFkZGVkLgotICAgICAgICAoV2ViQ29y
ZTo6UE9ESW50ZXJ2YWxUcmVlOjpQT0RJbnRlcnZhbFRyZWUpOgotICAgICAgICAoV2ViQ29yZTo6
UE9ESW50ZXJ2YWxUcmVlOjphbGxPdmVybGFwcyk6Ci0gICAgICAgIChXZWJDb3JlOjpQT0RJbnRl
cnZhbFRyZWU6OmNyZWF0ZUludGVydmFsKToKLSAgICAgICAgKFdlYkNvcmU6OlBPREludGVydmFs
VHJlZTo6Y2hlY2tJbnZhcmlhbnRzKToKLSAgICAgICAgKFdlYkNvcmU6OlBPREludGVydmFsVHJl
ZTo6aW5pdCk6Ci0gICAgICAgIChXZWJDb3JlOjpQT0RJbnRlcnZhbFRyZWU6OnNlYXJjaEZvck92
ZXJsYXBzRnJvbSk6Ci0gICAgICAgIChXZWJDb3JlOjpQT0RJbnRlcnZhbFRyZWU6OnVwZGF0ZU5v
ZGUpOgotICAgICAgICAoV2ViQ29yZTo6UE9ESW50ZXJ2YWxUcmVlOjpjaGVja0ludmFyaWFudHNG
cm9tTm9kZSk6Ci0gICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvU3RyaW5nKToKLQotMjAxMC0wOS0w
MiAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgotCi0gICAgICAgIFtjaHJvbWl1bV0gR3JhY2VmdWxs
eSBzd2l0Y2ggb3ZlciB0byBzb2Z0d2FyZSBjb21wb3NpdGluZyBpZiB0aGUgYWNjZWxlcmF0ZWQK
LSAgICAgICAgY29tcG9zaXRvciBmYWlscyB0byBpbml0aWFsaXplLiBMYXllclJlbmRlcmVyQ2hy
b21pdW06OmNyZWF0ZSgpIHdpbGwgbm93IHJldHVybiAwCi0gICAgICAgIGlmIHRoZSBHTEVTMkNv
bnRleHQgcGFzc2VkIHRvIGl0IGlzIE5VTEwgb3IgdGhlIExheWVyUmVuZGVyZXJDaHJvbWl1bSBm
YWlsZWQgdG8gaW5pdGlhbGl6ZQotICAgICAgICBoYXJkd2FyZSByZW5kZXJpbmcuCi0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTEyNAotICAgICAgICAK
LSAgICAgICAgVGVzdGVkIGJ5IGZvcmNpbmcgdGhlIGNyZWF0aW9uIG9mIHRoZSBnbGVzMiBjb250
ZXh0IHRvIGZhaWwgYW5kIGxvYWRpbmcgcGFnZXMgdGhhdCBub3JtYWxseSB0cmlnZ2VyCi0gICAg
ICAgIHRoZSBjb21wb3NpdG9yLgotCi0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6Y3JlYXRlKToKLSAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJD
aHJvbWl1bTo6TGF5ZXJSZW5kZXJlckNocm9taXVtKToKLSAgICAgICAgKFdlYkNvcmU6OkxheWVy
UmVuZGVyZXJDaHJvbWl1bTo6bWFrZUNvbnRleHRDdXJyZW50KToKLQotMjAxMC0wOS0wMyAgUGV0
ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgotCi0gICAgICAgIFJlcG9ydCBjb3JyZWN0ICh1bnpvb21lZCkgaW1hZ2Ug
c2l6ZXMgZm9yIHpvb21lZCBpbWFnZXMuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MjA4OQotCi0gICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL3pvb21l
ZC1pbWctc2l6ZS5odG1sCi0KLSAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOiBG
YWN0b3Igcm91bmRpbmcgY29kZSBvdXQgdG8gYSB0ZW1wbGF0aXplZCBmdW5jdGlvbiBzbyBpdCBj
YW4gYmUgc2hhcmVkLgotICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1
dGVMZW5ndGhJbnQpOgotICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1
dGVMZW5ndGhJbnRGb3JMZW5ndGgpOgotICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6OmNvbXB1dGVMZW5ndGhTaG9ydCk6Ci0gICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
Lmg6IEZhY3RvciByb3VuZGluZyBjb2RlIG91dCB0byBhIHRlbXBsYXRpemVkIGZ1bmN0aW9uIHNv
IGl0IGNhbiBiZSBzaGFyZWQuCi0gICAgICAgIChXZWJDb3JlOjpyb3VuZEZvckltcHJlY2lzZUNv
bnZlcnNpb24pOgotICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6IFJlcG9ydCB1
bnpvb21lZCBzaXplIHRvIHNjcmlwdCB0aGF0IHF1ZXJpZXMgYW4gaW1hZ2UncyB3aWR0aCBvciBo
ZWlnaHQuCi0gICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6Ci0gICAg
ICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWlnaHQpOgotICAgICAgICAqIGxvYWRl
ci9JbWFnZURvY3VtZW50LmNwcDogUmVwb3J0IHVuem9vbWVkIHNpemUgaW4gdGhlIHBhZ2UgdGl0
bGUgd2hlbiB2aWV3aW5nIGEgc3RhbmRhbG9uZSBpbWFnZS4KLSAgICAgICAgKFdlYkNvcmU6Oklt
YWdlRG9jdW1lbnRQYXJzZXI6OmZpbmlzaCk6Ci0gICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oOiBVc2Ugc2hhcmVkIHJvdW5kaW5nIGNvZGUgZnJvbSBDU1NQcmltaXRpdmVWYWx1ZSB0
byBjb21wZW5zYXRlIGZvciBpbmV4YWN0bmVzcyBpbiB6b29tZWQgc2l6ZXMuCi0gICAgICAgIChX
ZWJDb3JlOjphZGp1c3RGb3JBYnNvbHV0ZVpvb20pOgotCi0yMDEwLTA5LTAzICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByNjY3NzAuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdl
c2V0LzY2NzcwCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTIwMAotCi0gICAgICAgIEJyb2tlIFdpbmRvd3MgaW4gYSB3YXkgSSBjYW4ndCBmaWd1cmUg
b3V0IG5vdyB0byBmaXgKLSAgICAgICAgKFJlcXVlc3RlZCBieSBhYmFydGggb24gI3dlYmtpdCku
Ci0KLSAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKLSAgICAgICAgKiBXZWJDb3JlLmd5cGk6Ci0g
ICAgICAgICogV2ViQ29yZS5wcm86Ci0gICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6Ci0gICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgotICAg
ICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0RPTVdpbmRvdy5oOgotICAgICAgICAoV2Vi
Q29yZTo6Ojpjb21wbGV0ZVVSTCk6Ci0gICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5n
RnJhbWUuaDogUmVtb3ZlZC4KLSAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdMb2Nh
dGlvbi5oOiBSZW1vdmVkLgotICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRp
bmcuaDoKLSAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmcuaDogUmVtb3ZlZC4KLSAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOgotICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpzaG91bGRBbGxvd05h
dmlnYXRpb24pOgotICAgICAgICAoV2ViQ29yZTo6dG9MZXhpY2FsRnJhbWUpOgotICAgICAgICAo
V2ViQ29yZTo6dG9EeW5hbWljRnJhbWUpOgotICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKToKLSAgICAgICAgKFdlYkNvcmU6OmNvbXBsZXRlVVJMKToKLSAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6Om5hdmln
YXRlSWZBbGxvd2VkKToKLSAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRpb246OnJlcGxhY2UpOgot
ICAgICAgICAqIGJpbmRpbmdzL2pzL3NwZWNpYWxpemF0aW9uL0pTQmluZGluZ1N0YXRlLmNwcDog
UmVtb3ZlZC4KLSAgICAgICAgKiBiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdT
dGF0ZS5oOiBSZW1vdmVkLgotICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgotICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OmNv
bXBsZXRlVVJMKToKLSAgICAgICAgKFdlYkNvcmU6Om5hdmlnYXRlSWZBbGxvd2VkKToKLSAgICAg
ICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHA6Ci0gICAgICAgIChX
ZWJDb3JlOjpWOExvY2F0aW9uOjpyZXBsYWNlQ2FsbGJhY2spOgotICAgICAgICAqIGJpbmRpbmdz
L3Y4L3NwZWNpYWxpemF0aW9uL1Y4QmluZGluZ1N0YXRlLmNwcDoKLSAgICAgICAgKiBiaW5kaW5n
cy92OC9zcGVjaWFsaXphdGlvbi9WOEJpbmRpbmdTdGF0ZS5oOgotCi0yMDEwLTA5LTAzICBKaWFu
IExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KLQotICAgICAgICBSRUdSRVNTSU9OIChyNjY0NTIpOiBTZW5kaW5nIG9mIG11bHRpcGFy
dCBmb3JtcyB3aXRoIGZpbGVzIGlzIGJyb2tlbi4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTU5Ci0KLSAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0Zvcm1EYXRhLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhOjphcHBlbmRLZXlWYWx1
ZVBhaXJJdGVtcyk6Ci0KLTIwMTAtMDktMDMgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAZ29v
Z2xlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgIE1v
dmVzIGxvY2F0aW9uLnJlcGxhY2UgYmluZGluZ3MgbG9naWMgaW50byBiaW5kaW5ncy9nZW5lcmlj
IGFuZAotICAgICAgICBpbnN0YW50aWF0ZXMgaXQgZm9yIEpTQyBhbmQgVjguCi0KLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0ODkxCi0KLSAgICAgICAg
Q292ZXJlZCBieSBleGlzdGluZyBsb2NhdGlvbi5yZXBsYWNlIHRlc3RzLgorICAgICAgICBUaGlz
IGNoYW5nZToKKyAgICAgICAgLSBFbmFibGVzIEluc3BlY3RvckNTU1N0b3JlIHRvIGV4dHJhY3Qg
Q1NTIHN0eWxlc2hlZXQgdGV4dCBmb3IgYWxsIHNvdXJjZS1iYXNlZCBzdHlsZXNoZWV0cywKKyAg
ICAgICAgICBldmVuIHdpdGggdGhlIHJlc291cmNlIHRyYWNraW5nIHR1cm5lZCBvZmYuCisgICAg
ICAgIC0gQWRkcyB0byBDU1NQYXJzZXIgYSBjYXBhYmlsaXR5IG9mIHNvdXJjZS1yZWxhdGVkIHN0
eWxlIGRlY2xhcmF0aW9uIGRhdGEgZXh0cmFjdGlvbjoKKyAgICAgICAgICAqIFN0YXJ0L2VuZCBz
b3VyY2Ugb2Zmc2V0cyBmb3IgYSBkZWNsYXJhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBz
dHlsZXNoZWV0IHN0YXJ0IG9yIHRoZSAic3R5bGUiIGF0dHJpYnV0ZSB2YWx1ZS4KKyAgICAgICAg
ICAqIFN0YXJ0L2VuZCBzb3VyY2Ugb2Zmc2V0cyBmb3IgQ1NTIHByb3BlcnRpZXMsIHJlbGF0aXZl
IHRvIHRoZSBkZWNsYXJhdGlvbiBzdGFydC4KKyAgICAgICAgICAqIENTUyBwcm9wZXJ0eSBkYXRh
OiBuYW1lLCB2YWx1ZSwgcHJpb3JpdHksIFdlYkNvcmUgcGFyc2FiaWxpdHkgKGkuZS4gaWYgdGhl
IHByb3BlcnR5IGlzIHVuZGVyc3Rvb2QgYnkgV2ViQ29yZSkuCisgICAgICAgIC0gUHJvdmlkZXMg
dGhlIGV4dHJhY3RlZCBkYXRhIHRvIHRoZSBXZWJJbnNwZWN0b3IgZnJvbnRlbmQgdmlhIEluc3Bl
Y3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CiAKLSAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKICAgICAgICAgKiBXZWJDb3JlLmd5cGk6CiAgICAgICAgICogV2ViQ29yZS5wcm86CiAg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CiAgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgotICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMv
QmluZGluZ0RPTVdpbmRvdy5oOgotICAgICAgICAoV2ViQ29yZTo6OjpjcmVhdGVXaW5kb3cpOgot
ICAgICAgICAoV2ViQ29yZTo6OjpvcGVuKToKLSAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0Jp
bmRpbmdGcmFtZS5oOiBBZGRlZC4KLSAgICAgICAgKFdlYkNvcmU6Ojo6bmF2aWdhdGVJZkFsbG93
ZWQpOgotICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvQmluZGluZ0xvY2F0aW9uLmg6IEFkZGVk
LgotICAgICAgICAoV2ViQ29yZTo6OjpyZXBsYWNlKToKLSAgICAgICAgKiBiaW5kaW5ncy9nZW5l
cmljL0dlbmVyaWNCaW5kaW5nLmg6Ci0gICAgICAgIChXZWJDb3JlOjpjb21wbGV0ZVVSTCk6Ci0g
ICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nLmg6IEFkZGVkLgotICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6Ci0gICAgICAgICogYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OnNob3VsZEFsbG93TmF2aWdhdGlvbik6
Ci0gICAgICAgIChXZWJDb3JlOjp0b0xleGljYWxGcmFtZSk6Ci0gICAgICAgIChXZWJDb3JlOjp0
b0R5bmFtaWNGcmFtZSk6Ci0gICAgICAgIChXZWJDb3JlOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUp
OgotICAgICAgICAoV2ViQ29yZTo6Y29tcGxldGVVUkwpOgotICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTTG9jYXRpb25DdXN0b20uY3BwOgotICAgICAgICAoV2ViQ29yZTo6bmF2aWdhdGVJZkFsbG93
ZWQpOgotICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6cmVwbGFjZSk6Ci0gICAgICAgICog
YmluZGluZ3MvanMvc3BlY2lhbGl6YXRpb24vSlNCaW5kaW5nU3RhdGUuY3BwOiBBZGRlZC4KLSAg
ICAgICAgKFdlYkNvcmU6Ojo6Z2V0QWN0aXZlRnJhbWUpOgotICAgICAgICAoV2ViQ29yZTo6Ojpn
ZXRGaXJzdEZyYW1lKToKLSAgICAgICAgKFdlYkNvcmU6Ojo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KToKLSAgICAgICAgKFdlYkNvcmU6Ojo6YWxsb3dzQWNjZXNzRnJvbUZyYW1lKToKLSAgICAgICAg
KiBiaW5kaW5ncy9qcy9zcGVjaWFsaXphdGlvbi9KU0JpbmRpbmdTdGF0ZS5oOiBBZGRlZC4KLSAg
ICAgICAgKiBiaW5kaW5ncy92OC9WOEJpbmRpbmcuaDoKLSAgICAgICAgKiBiaW5kaW5ncy92OC9W
OFV0aWxpdGllcy5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpjb21wbGV0ZVVSTCk6Ci0gICAgICAg
IChXZWJDb3JlOjpuYXZpZ2F0ZUlmQWxsb3dlZCk6Ci0gICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TG9jYXRpb25DdXN0b20uY3BwOgotICAgICAgICAoV2ViQ29yZTo6VjhMb2NhdGlvbjo6
cmVwbGFjZUNhbGxiYWNrKToKLSAgICAgICAgKiBiaW5kaW5ncy92OC9zcGVjaWFsaXphdGlvbi9W
OEJpbmRpbmdTdGF0ZS5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjo6OmFsbG93c0FjY2Vzc0Zyb21G
cmFtZSk6Ci0gICAgICAgICogYmluZGluZ3Mvdjgvc3BlY2lhbGl6YXRpb24vVjhCaW5kaW5nU3Rh
dGUuaDoKLQotMjAxMC0wOS0wMyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0u
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCi0KLSAgICAgICAgW0Nocm9t
aXVtXSBNYWtlIHN1cmUgdGhhdCB0aGUgd2lkdGggb2YgdGhlIG1lbnUgbGlzdCBpcyBhbHdheXMg
Y29uc3RhbnQgdW5kZXIgbGF5b3V0IHRlc3RzLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxOTYKLQotICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtV2luLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6Om1lbnVMaXN0QnV0dG9uV2lk
dGgpOiBBZGRlZC4KLSAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBh
aW50TWVudUxpc3QpOiBVc2UgbWVudUxpc3RCdXR0b25XaWR0aCBpbnN0ZWFkIG9mIGFsd2F5cwot
ICAgICAgICAgIHF1ZXJ5aW5nIHN5c3RlbSBtZXRyaWNzLgotCi0yMDEwLTA5LTAzICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KLQotICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByNjY3MzIuCi0gICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzY2NzMyCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NTE5NQotCi0gICAgICAgIHRoZSBwYXRjaCBpcyBub3QgbWF0Y2hlZCB3aXRoIGdlbmVy
YWwgcHVibGlzaC9zdWJzY3JpYmUgc2NoZW1lCi0gICAgICAgIGltcGxlbWVudGVkIGluIHRoZSBJ
bnNwZWN0b3IgQVBJIChSZXF1ZXN0ZWQgYnkgbG9pc2xvIG9uCi0gICAgICAgICN3ZWJraXQpLgot
Ci0gICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucG06Ci0gICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3Rvci5pZGw6Ci0gICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcDoKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNo
Q2hpbGROb2Rlc1RvRnJvbnRlbmQpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdl
bnQ6OmdldENoaWxkTm9kZXMpOgotICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5oOgotICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6Ci0gICAgICAg
IChXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLmdldENoaWxkTm9kZXNBc3luYy5teWNh
bGxiYWNrKToKLSAgICAgICAgKFdlYkluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuZ2V0Q2hp
bGROb2Rlc0FzeW5jKToKLSAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRl
YmFyUGFuZS5qczoKLSAgICAgICAgKFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJv
dG90eXBlLnJlc2V0KToKLQotMjAxMC0wOS0wMyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hy
b21pdW0ub3JnPgotCi0gICAgICAgIFtjaHJvbWl1bV0gQ29tcGlsZSBmaXhlcyBmb3IgNjY3NDYK
LQotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQz
RC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1h
Z2UyRCk6Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6dGV4U3Vi
SW1hZ2UyRCk6Ci0KLTIwMTAtMDktMDMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCi0KLSAgICAgICAgQWRk
IEF1ZGlvUGFyYW0gZmlsZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ0OTk1Ci0KLSAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlvIEFQSSBp
cyBub3QgeWV0IGltcGxlbWVudGVkLgotCi0gICAgICAgICogd2ViYXVkaW86IEFkZGVkLgotICAg
ICAgICAqIHdlYmF1ZGlvL0F1ZGlvUGFyYW0uaDogQWRkZWQuCi0gICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtOjpjcmVhdGUpOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6QXVkaW9Q
YXJhbSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjp2YWx1ZSk6Ci0gICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRWYWx1ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb1Bh
cmFtOjpuYW1lKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW06Om1pblZhbHVlKToKLSAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW06Om1heFZhbHVlKToKLSAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvUGFyYW06OmRlZmF1bHRWYWx1ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFt
Ojp1bml0cyk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpzbW9vdGhlZFZhbHVlKToK
LSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW06OnNtb290aCk6Ci0gICAgICAgIChXZWJDb3Jl
OjpBdWRpb1BhcmFtOjpyZXNldFNtb290aGVkVmFsdWUpOgotICAgICAgICAoV2ViQ29yZTo6QXVk
aW9QYXJhbTo6c2V0U21vb3RoaW5nQ29uc3RhbnQpOgotICAgICAgICAqIHdlYmF1ZGlvL0F1ZGlv
UGFyYW0uaWRsOiBBZGRlZC4KLQotMjAxMC0wOS0wMyAgQ2hyaXMgUm9nZXJzICA8Y3JvZ2Vyc0Bn
b29nbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KLQotICAg
ICAgICBhdWRpbyBlbmdpbmU6IGFkZCBBdWRpb0NoYW5uZWwgZmlsZXMKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTIxCi0KLSAgICAgICAgTm8gbmV3
IHRlc3RzIHNpbmNlIGF1ZGlvIEFQSSBpcyBub3QgeWV0IGltcGxlbWVudGVkLgotCi0gICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcDogQWRkZWQuCi0gICAgICAgIChXZWJD
b3JlOjpBdWRpb0NoYW5uZWw6OnNjYWxlKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ2hhbm5l
bDo6Y29weUZyb20pOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9DaGFubmVsOjpjb3B5RnJvbVJh
bmdlKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ2hhbm5lbDo6c3VtRnJvbSk6Ci0gICAgICAg
IChXZWJDb3JlOjpBdWRpb0NoYW5uZWw6Om1heEFic1ZhbHVlKToKLSAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9BdWRpb0NoYW5uZWwuaDogQWRkZWQuCi0gICAgICAgIChXZWJDb3JlOjpBdWRpb0No
YW5uZWw6OkF1ZGlvQ2hhbm5lbCk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0NoYW5uZWw6OnNl
dCk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0NoYW5uZWw6Omxlbmd0aCk6Ci0gICAgICAgIChX
ZWJDb3JlOjpBdWRpb0NoYW5uZWw6OmRhdGEpOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9DaGFu
bmVsOjp6ZXJvKToKLQotMjAxMC0wOS0wMyAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFy
b2dhLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgotCi0gICAgICAgIFtX
SU5DRV0gUmVtb3ZlIHVzYWdlIG9mIGNlX3RleHRjb2RlY3MuaAotICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxNjkKLQotICAgICAgICBjZV90ZXh0Y29k
ZWNzLmggd2FzIGEgbm9uIHB1YmxpYyBoZWFkZXIgZm9yIChub3QgcmVxdWlyZWQpCi0gICAgICAg
IGFkZGl0b25hbCBjb2RlY3MgaW4gdGhlIG9yaWdpbmFsIFRvcmNoIE1vYmlsZSBwb3J0LgotCi0g
ICAgICAgICogcGxhdGZvcm0vdGV4dC93aW5jZS9UZXh0Q29kZWNXaW5DRS5jcHA6Ci0gICAgICAg
IChXZWJDb3JlOjpMYW5ndWFnZU1hbmFnZXI6Okxhbmd1YWdlTWFuYWdlcik6Ci0gICAgICAgIChX
ZWJDb3JlOjpkZWNvZGUpOgotCi0yMDEwLTA5LTAzICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdv
b2dsZS5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgotCi0gICAg
ICAgIEluaXRpYWwgcGF0Y2ggZm9yIGF1ZGlvIGVuZ2luZTogQXVkaW9CdXMgYW5kIGhlbHBlciBj
bGFzc2VzCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NDQ1MgotCi0gICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBhdWRpbyBBUEkgaXMgbm90IHlldCBp
bXBsZW1lbnRlZC4KLQotICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcDogQWRk
ZWQuCi0gICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6QXVkaW9CdXMpOgotICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9CdXM6OnNldENoYW5uZWxNZW1vcnkpOgotICAgICAgICAoV2ViQ29yZTo6QXVk
aW9CdXM6Onplcm8pOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OmNoYW5uZWxCeVR5cGUp
OgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnRvcG9sb2d5TWF0Y2hlcyk6Ci0gICAgICAg
IChXZWJDb3JlOjpBdWRpb0J1czo6Y3JlYXRlQnVmZmVyRnJvbVJhbmdlKToKLSAgICAgICAgKFdl
YkNvcmU6OkF1ZGlvQnVzOjptYXhBYnNWYWx1ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0J1
czo6bm9ybWFsaXplKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzY2FsZSk6Ci0gICAg
ICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Y29weUZyb20pOgotICAgICAgICAoV2ViQ29yZTo6QXVk
aW9CdXM6OnN1bUZyb20pOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OnByb2Nlc3NXaXRo
R2FpbkZyb21Nb25vU3RlcmVvKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpwcm9jZXNz
V2l0aEdhaW5Gcm9tKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpjb3B5V2l0aEdhaW5G
cm9tKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVzOjpzdW1XaXRoR2FpbkZyb20pOgotICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmg6IEFkZGVkLgotICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9CdXM6Om51bWJlck9mQ2hhbm5lbHMpOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9C
dXM6OmNoYW5uZWwpOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6Omxlbmd0aCk6Ci0gICAg
ICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c2FtcGxlUmF0ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpB
dWRpb0J1czo6c2V0U2FtcGxlUmF0ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6c2V0
R2Fpbik6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0J1czo6Z2Fpbik6Ci0gICAgICAgIChXZWJD
b3JlOjpBdWRpb0J1czo6cmVzZXQpOgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdXM6OkF1ZGlv
QnVzKToKLSAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmg6IEFk
ZGVkLgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlcjo6fkF1ZGlvU291cmNl
UHJvdmlkZXIpOgotCi0yMDEwLTA5LTAzICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgotCi0gICAgICAgIEFk
ZCBQYW5uZXIgZmlsZXMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1MDc2Ci0KLSAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGF1ZGlvIEFQSSBpcyBu
b3QgeWV0IGltcGxlbWVudGVkLgotCi0gICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGFubmVyLmNw
cDogQWRkZWQuCi0gICAgICAgIChXZWJDb3JlOjpQYW5uZXI6OmNyZWF0ZSk6Ci0gICAgICAgICog
cGxhdGZvcm0vYXVkaW8vUGFubmVyLmg6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6UGFubmVy
Ojp+UGFubmVyKToKLSAgICAgICAgKFdlYkNvcmU6OlBhbm5lcjo6cGFubmluZ01vZGVsKToKLSAg
ICAgICAgKFdlYkNvcmU6OlBhbm5lcjo6UGFubmVyKToKLQotMjAxMC0wOS0wMyAgQ2hyaXMgUm9n
ZXJzICA8Y3JvZ2Vyc0Bnb29nbGUuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGgg
UnVzc2VsbC4KLQotICAgICAgICBBZGQgQXVkaW9MaXN0ZW5lciBmaWxlcwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMDYKLQotICAgICAgICBObyBu
ZXcgdGVzdHMgc2luY2UgYXVkaW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCi0KLSAgICAg
ICAgKiB3ZWJhdWRpbzogQWRkZWQuCi0gICAgICAgICogd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5j
cHA6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5l
cik6Ci0gICAgICAgICogd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5oOiBBZGRlZC4KLSAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OmNyZWF0ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRp
b0xpc3RlbmVyOjpzZXRQb3NpdGlvbik6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVy
Ojpwb3NpdGlvbik6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVyOjpzZXRPcmllbnRh
dGlvbik6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVyOjpvcmllbnRhdGlvbik6Ci0g
ICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVyOjpzZXRVcFZlY3Rvcik6Ci0gICAgICAgIChX
ZWJDb3JlOjpBdWRpb0xpc3RlbmVyOjp1cFZlY3Rvcik6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRp
b0xpc3RlbmVyOjpzZXRWZWxvY2l0eSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVy
Ojp2ZWxvY2l0eSk6Ci0gICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVyOjpzZXREb3BwbGVy
RmFjdG9yKToKLSAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OmRvcHBsZXJGYWN0b3Ip
OgotICAgICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6c2V0U3BlZWRPZlNvdW5kKToKLSAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OnNwZWVkT2ZTb3VuZCk6Ci0gICAgICAgICog
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5pZGw6IEFkZGVkLgotCi0yMDEwLTA5LTAzICBDaHJpcyBS
b2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+Ci0KLSAgICAgICAgVW5yZXZpZXdlZAotCi0gICAg
ICAgIEFkZCBXZWJDb3JlL3dlYmF1ZGlvIGFuZCBXZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYyBk
aXJlY3RvcmllcyBpbiBwcmVwYXJhdGlvbiBmb3IgbGFuZGluZyByZXZpZXdlZCBwYXRjaGVzCi0g
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE4NQotCi0g
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjOiBBZGRlZC4KLSAgICAgICAgKiB3ZWJhdWRpbzog
QWRkZWQuCi0KLTIwMTAtMDktMDMgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9y
Zz4KLQotICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBNYXJyaW4uCi0KLSAgICAgICAgTXVsdGlw
bGUgYWNjZWxlcmF0ZWQgMkQgY2FudmFzZXMgc2hvdWxkIGJlIGFibGUgdG8gdXNlIHRoZSBzYW1l
IEdyYXBoaWNzQ29udGV4dDNECi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDkyNgotCi0gICAgICAgIFRoaXMgYWxsb3dzIG1hbnkgYWNjZWxlcmF0ZWQg
MmQgY2FudmFzZXMgdG8gcmVuZGVyIHVzaW5nIGEgc2luZ2xlIHVuZGVybHlpbmcgR3JhcGhpY3ND
b250ZXh0M0QuCi0gICAgICAgIEl0IGludHJvZHVjZXMgYSBuZXcgY2xhc3MgU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QgdGhhdCBtYW5hZ2VzIHNldmVyYWwgY2FsbGVycy4gIFRoaXMgY2xhc3MgY291
bGQKLSAgICAgICAgYWxzbyBjYWNoZSB0aGUgY3VycmVudCBzdGF0ZSB0byBhdm9pZCBpc3N1aW5n
IHJlZHVuZGFudCBjYWxscywgYWx0aG91Z2ggaW4gdGhpcyBmaXJzdCBjdXQgaXQgZG9lc24ndC4K
LSAgICAgICAgVGhlIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEIGlzIHByb3ZpZGVkIHRocm91Z2gg
dGhlIENocm9tZUNsaWVudCBzbyB0aGF0IGl0cyBsaWZldGltZSBjYW4gYmUgdGllZCB0byB0aGF0
Ci0gICAgICAgIG9mIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb21wb3NpdG9yIGluZnJhc3RydWN0
dXJlLgotCi0gICAgICAgIEFjY2VsZXJhdGVkIDJkIGNhbnZhc2VzIG1haW50YWluIGEgcmVmZXJl
bmNlIHRvIGEgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgYW5kIGhhdmUgb3duZXJzaGlwIG9mIGEg
Q2FudmFzRnJhbWVidWZmZXIsCi0gICAgICAgIHdoaWNoIHJlcHJlc2VudHMgdGhlIGNhbnZhcydz
IHJlbmRlcmluZyB0YXJnZXQuICBUaGUgY29tcG9zaXRpbmcgbGF5ZXIgZm9yIGFuIGFjY2VsZXJh
dGVkIDJkIGNhbnZhcyBpcwotICAgICAgICBhd2FyZSBvbmx5IG9mIHRoZSBjYW52YXMncyBDYW52
YXNGcmFtZWJ1ZmZlci4gIFRoaXMgbWVhbnMgdGhhdCBXZWJHTCBhbmQgMmQgY2FudmFzZXMgYXJl
IG5vIGxvbmdlciB0cmVhdGVkCi0gICAgICAgIGFzIHRoZSBzYW1lIHRpbWUgb2YgbGF5ZXIgYnkg
dGhlIGNvbXBvc2l0b3IuCi0KLSAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBjYW52YXMgdGVz
dHMuCi0KLSAgICAgICAgKiBXZWJDb3JlLmd5cGk6Ci0gICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5jcHA6Ci0gICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dC5oOgotICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDo6cGFpbnRzSW50b0NhbnZhc0J1ZmZlcik6Ci0gICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5k
ZXJpbmdDb250ZXh0OjpwbGF0Zm9ybUxheWVyKToKLSAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgotICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpOgotICAgICAgICAoV2ViQ29y
ZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpwYWludHNJbnRvQ2FudmFzQnVmZmVyKToKLSAg
ICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cmVzZXQpOgotICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3KToKLSAgICAgICAg
KFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6cGxhdGZvcm1MYXllcik6Ci0gICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmg6Ci0gICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKLSAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGFpbnRzSW50b0NhbnZhc0J1ZmZlcik6Ci0gICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6Ci0gICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdyYXBoaWNzQ29udGV4dDNEKToKLSAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGxhdGZvcm1MYXllcik6Ci0gICAgICAgICog
bG9hZGVyL0VtcHR5Q2xpZW50cy5oOgotICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGll
bnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKToKLSAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hy
b21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKToKLSAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJT
eW5jKToKLSAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgotICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50OjpnZXRTaGFyZWRHcmFwaGljc0NvbnRleHQzRCk6Ci0gICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKLSAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgotICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpzeW5jU29mdHdhcmVDYW52YXMpOgotICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgotICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJDaHJvbWl1bS5jcHA6IEFkZGVkLgotICAgICAg
ICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckNocm9taXVtOjpjcmVhdGUpOgotICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzMkRMYXllckNocm9taXVtOjpDYW52YXMyRExheWVyQ2hyb21pdW0pOgotICAg
ICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckNocm9taXVtOjp+Q2FudmFzMkRMYXllckNocm9t
aXVtKToKLSAgICAgICAgKFdlYkNvcmU6OkNhbnZhczJETGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29u
dGVudHMpOgotICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckNocm9taXVtOjpzZXRUZXh0
dXJlQ2hhbmdlZCk6Ci0gICAgICAgIChXZWJDb3JlOjpDYW52YXMyRExheWVyQ2hyb21pdW06OnRl
eHR1cmVJZCk6Ci0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRM
YXllckNocm9taXVtLmg6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6Q2FudmFzMkRMYXllckNo
cm9taXVtOjpkcmF3c0NvbnRlbnQpOgotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NhbnZhc0xheWVyQ2hyb21pdW0uY3BwOgotICAgICAgICAoV2ViQ29yZTo6Q2FudmFzTGF5
ZXJDaHJvbWl1bTo6Q2FudmFzTGF5ZXJDaHJvbWl1bSk6Ci0gICAgICAgIChXZWJDb3JlOjpDYW52
YXNMYXllckNocm9taXVtOjp+Q2FudmFzTGF5ZXJDaHJvbWl1bSk6Ci0gICAgICAgIChXZWJDb3Jl
OjpDYW52YXNMYXllckNocm9taXVtOjpkcmF3KToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9DYW52YXNMYXllckNocm9taXVtLmg6Ci0gICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcDogQWRkZWQuCi0gICAgICAg
IChXZWJDb3JlOjpnZW5lcmF0ZUNvbG9yVGV4dHVyZSk6Ci0gICAgICAgIChXZWJDb3JlOjpEcmF3
aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKToKLSAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZm
ZXI6On5EcmF3aW5nQnVmZmVyKToKLSAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnB1
Ymxpc2hUb1BsYXRmb3JtTGF5ZXIpOgotICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6
cmVzZXQpOgotICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6cGxhdGZvcm1MYXllcik6
Ci0gICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR0xFUzJDYW52YXMuY3BwOgot
ICAgICAgICAoV2ViQ29yZTo6R0xFUzJDYW52YXM6OkdMRVMyQ2FudmFzKToKLSAgICAgICAgKFdl
YkNvcmU6OkdMRVMyQ2FudmFzOjp+R0xFUzJDYW52YXMpOgotICAgICAgICAoV2ViQ29yZTo6R0xF
UzJDYW52YXM6OmJpbmRGcmFtZWJ1ZmZlcik6Ci0gICAgICAgIChXZWJDb3JlOjpHTEVTMkNhbnZh
czo6Y2xlYXJSZWN0KToKLSAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ2FudmFzOjpmaWxsUmVjdCk6
Ci0gICAgICAgIChXZWJDb3JlOjpHTEVTMkNhbnZhczo6ZHJhd1RleHR1cmVkUmVjdCk6Ci0gICAg
ICAgIChXZWJDb3JlOjpHTEVTMkNhbnZhczo6ZHJhd1RleHR1cmVkUmVjdFRpbGUpOgotICAgICAg
ICAoV2ViQ29yZTo6R0xFUzJDYW52YXM6OmRyYXdRdWFkKToKLSAgICAgICAgKFdlYkNvcmU6OkdM
RVMyQ2FudmFzOjpjcmVhdGVUZXh0dXJlKToKLSAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ2FudmFz
OjpnZXRUZXh0dXJlKToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVT
MkNhbnZhcy5oOgotICAgICAgICAoV2ViQ29yZTo6R0xFUzJDYW52YXM6OmNvbnRleHQpOgotICAg
ICAgICAoV2ViQ29yZTo6R0xFUzJDYW52YXM6OmRyYXdpbmdCdWZmZXIpOgotICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6Ci0gICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENvbnRlbnRzVG9DYW52YXMp
OgotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oOgotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJD
aHJvbWl1bS5jcHA6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6V2ViR0xMYXllckNocm9taXVt
OjpjcmVhdGUpOgotICAgICAgICAoV2ViQ29yZTo6V2ViR0xMYXllckNocm9taXVtOjpXZWJHTExh
eWVyQ2hyb21pdW0pOgotICAgICAgICAoV2ViQ29yZTo6V2ViR0xMYXllckNocm9taXVtOjp1cGRh
dGVDb250ZW50cyk6Ci0gICAgICAgIChXZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OnNldENv
bnRleHQpOgotICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJD
aHJvbWl1bS5oOiBBZGRlZC4KLSAgICAgICAgKFdlYkNvcmU6OldlYkdMTGF5ZXJDaHJvbWl1bTo6
ZHJhd3NDb250ZW50KToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1
ZmZlci5jcHA6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6Y3JlYXRl
KToKLSAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OmJpbmQpOgotICAgICAgICAoV2Vi
Q29yZTo6RHJhd2luZ0J1ZmZlcjo6c2V0V2lsbFB1Ymxpc2hDYWxsYmFjayk6Ci0gICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaDogQWRkZWQuCi0gICAgICAgIChX
ZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpzaXplKToKLSAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdlYkNv
cmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUpOgotICAgICAgICAoV2ViQ29yZTo6
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKToKLSAgICAg
ICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjp+U2hhcmVkR3JhcGhpY3NDb250
ZXh0M0QpOgotICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VD
b250ZXh0Q3VycmVudCk6Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQz
RDo6c2Npc3Nvcik6Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6
ZW5hYmxlKToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpkaXNh
YmxlKToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckNv
bG9yKToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhcik6
Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0FycmF5cyk6
Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXJyb3IpOgot
ICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVnZXJ2KToK
LSAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVGcmFtZWJ1
ZmZlcik6Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRl
VGV4dHVyZSk6Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6ZGVs
ZXRlRnJhbWVidWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6OmRlbGV0ZVRleHR1cmUpOgotICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250
ZXh0M0Q6OmZyYW1lYnVmZmVyVGV4dHVyZTJEKToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdy
YXBoaWNzQ29udGV4dDNEOjp0ZXhQYXJhbWV0ZXJpKToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZTJEKToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhTdWJJbWFnZTJEKToKLSAgICAgICAgKFdlYkNvcmU6OlNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToKLSAgICAgICAgKFdlYkNvcmU6OlNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEOjpzdXBwb3J0c0JHUkEpOgotICAgICAgICAoV2ViQ29yZTo6
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldFRleHR1cmUpOgotICAgICAgICAoV2ViQ29yZTo6
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmFwcGx5Q29tcG9zaXRlT3BlcmF0b3IpOgotICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OnVzZVF1YWRWZXJ0aWNlcyk6Ci0g
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6c2V0QWN0aXZlVGV4dHVy
ZSk6Ci0gICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6YmluZFRleHR1
cmUpOgotICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OnVzZUZpbGxT
b2xpZFByb2dyYW0pOgotICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OnVzZVRleHR1cmVQcm9ncmFtKToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgotICAgICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0Q6OnNldFZpZXdwb3J0KToKLSAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEOjpwYWludHNJbnRvQ2FudmFzQnVmZmVyKToKLSAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaDogQWRkZWQuCi0gICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1cmUuY3BwOgotICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnN5bmNTb2Z0d2FyZUNhbnZhcyk6Ci0gICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OnNldFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKToKLSAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHA6Ci0gICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcDoKLSAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtQ29udGV4dFNraWE6On5QbGF0Zm9ybUNvbnRleHRTa2lhKToKLSAgICAgICAg
KFdlYkNvcmU6OldpbGxQdWJsaXNoQ2FsbGJhY2tJbXBsOjpjcmVhdGUpOgotICAgICAgICAoV2Vi
Q29yZTo6V2lsbFB1Ymxpc2hDYWxsYmFja0ltcGw6OndpbGxQdWJsaXNoKToKLSAgICAgICAgKFdl
YkNvcmU6OldpbGxQdWJsaXNoQ2FsbGJhY2tJbXBsOjpXaWxsUHVibGlzaENhbGxiYWNrSW1wbCk6
Ci0gICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXRTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRCk6Ci0gICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjp1cGxv
YWRTb2Z0d2FyZVRvSGFyZHdhcmUpOgotICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0
U2tpYTo6cmVhZGJhY2tIYXJkd2FyZVRvU29mdHdhcmUpOgotICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oOgotICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwOgotICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbik6Ci0KLTIwMTAtMDktMDMgIENo
cmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBL
ZW5uZXRoIFJ1c3NlbGwuCi0KLSAgICAgICAgQWRkIGF1ZGlvIGRpc3RhbmNlIGVmZmVjdCBmaWxl
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ3MDUK
LQotICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgYXVkaW8gQVBJIGlzIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQuCi0KLSAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9EaXN0YW5jZS5jcHA6IEFkZGVkLgot
ICAgICAgICAoV2ViQ29yZTo6RGlzdGFuY2VFZmZlY3Q6OkRpc3RhbmNlRWZmZWN0KToKLSAgICAg
ICAgKFdlYkNvcmU6OkRpc3RhbmNlRWZmZWN0OjpnYWluKToKLSAgICAgICAgKFdlYkNvcmU6OkRp
c3RhbmNlRWZmZWN0OjpsaW5lYXJHYWluKToKLSAgICAgICAgKFdlYkNvcmU6OkRpc3RhbmNlRWZm
ZWN0OjppbnZlcnNlR2Fpbik6Ci0gICAgICAgIChXZWJDb3JlOjpEaXN0YW5jZUVmZmVjdDo6ZXhw
b25lbnRpYWxHYWluKToKLSAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9EaXN0YW5jZS5oOiBBZGRl
ZC4KLSAgICAgICAgKFdlYkNvcmU6OkRpc3RhbmNlRWZmZWN0Ojptb2RlbCk6Ci0gICAgICAgIChX
ZWJDb3JlOjpEaXN0YW5jZUVmZmVjdDo6c2V0TW9kZWwpOgotICAgICAgICAoV2ViQ29yZTo6RGlz
dGFuY2VFZmZlY3Q6OnNldFJlZkRpc3RhbmNlKToKLSAgICAgICAgKFdlYkNvcmU6OkRpc3RhbmNl
RWZmZWN0OjpzZXRNYXhEaXN0YW5jZSk6Ci0gICAgICAgIChXZWJDb3JlOjpEaXN0YW5jZUVmZmVj
dDo6c2V0Um9sbG9mZkZhY3Rvcik6Ci0gICAgICAgIChXZWJDb3JlOjpEaXN0YW5jZUVmZmVjdDo6
cmVmRGlzdGFuY2UpOgotICAgICAgICAoV2ViQ29yZTo6RGlzdGFuY2VFZmZlY3Q6Om1heERpc3Rh
bmNlKToKLSAgICAgICAgKFdlYkNvcmU6OkRpc3RhbmNlRWZmZWN0Ojpyb2xsb2ZmRmFjdG9yKToK
LQotMjAxMC0wOS0wMyAgSm9obm55IERpbmcgIDxqbmRAY2hyb21pdW0ub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IEFkYW0gQmFydGguCi0KLSAgICAgICAgU2F2ZSB0aGUgZ2VzdHVyZSBzdGF0
ZSB0byB0cmFjayB0aGUgdXNlciBnZXN0dXJlIHN0YXRlIGFjcm9zcyBhc3luYyBmb3JtIHN1Ym1p
c3Npb24uCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NDk2OQotCi0gICAgICAgIGZhc3QvZXZlbnRzL3BvcHVwLWJsb2NrZWQtdG8tcG9zdC1ibGFuay5o
dG1sIGNhbiBjb3ZlciB0aGUgdGVzdCBpbiBXZWJLaXQuCi0gICAgICAgIEEgVUkgdGVzdCB3aWxs
IGJlIGFkZGVkIGluIGNocm9taXVtIHRvIGFkZHJlc3MgY2hyb21pdW0ncyBidWcuCi0KLSAgICAg
ICAgKiBsb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwOgotICAgICAgICAoV2ViQ29yZTo6U2No
ZWR1bGVkRm9ybVN1Ym1pc3Npb246OlNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uKToKLSAgICAgICAg
KFdlYkNvcmU6OlNjaGVkdWxlZEZvcm1TdWJtaXNzaW9uOjpmaXJlKToKLSAgICAgICAgKFdlYkNv
cmU6OlJlZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKToKLQotMjAxMC0w
OS0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgotCi0gICAgICAgIFJldmlld2Vk
IGJ5IEFuZGVycyBDYXJsc3Nvbi4KLQotICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5MjY1NT4g
UkVHUkVTU0lPTiAocjU3MjE1KTogRGVjb21wb3NlZCBkaWFjcml0aWNzIHJlbmRlciBpbmNvcnJl
Y3RseSB3aGVuIHByZWNlZGVkIGJ5IHN0YWNrZWQgZGlhY3JpdGljcwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxODIKLQotICAgICAgICBUZXN0OiBm
YXN0L3RleHQvZGVjb21wb3NlZC1hZnRlci1zdGFja2VkLWRpYWNyaXRpY3MuaHRtbAotCi0gICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpGb250
Ojpjb2RlUGF0aCk6IERvIG5vdCBiYWlsIG91dCBpZiB0aGUgcnVuIGNvbnRhaW5zIHN0YWNrZWQg
ZGlhY3JpdGljcywgc2luY2UKLSAgICAgICAgaXQgbWF5IGFsc28gY29udGFpbiBjaGFyYWN0ZXJz
IHRoYXQgcmVxdWlyZSB0aGUgY29tcGxleCB0ZXh0IGNvZGUgcGF0aC4KLQotMjAxMC0wOS0wMyAg
TWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmll
d2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCi0KLSAgICAgICAgV2ViIEluc3BlY3RvcjogQ2xlYW51
cCBhZnRlciByNjYxMTcgLSBleHRyYWN0IGhlYXAgc25hcHNob3QKLSAgICAgICAgdmlldyBzdHls
ZXMgaW50byBhIGRlZGljYXRlZCAuY3NzCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQ1MTc4Ci0KLSAgICAgICAgKiBXZWJDb3JlLmd5cGk6Ci0gICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6Ci0gICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9XZWJLaXQucXJjOgotICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaGVh
cFByb2ZpbGVyLmNzczogQWRkZWQuCi0gICAgICAgICguaGVhcC1zbmFwc2hvdC1zaWRlYmFyLXRy
ZWUtaXRlbSAuaWNvbik6Ci0gICAgICAgICguaGVhcC1zbmFwc2hvdC1zaWRlYmFyLXRyZWUtaXRl
bS5zbWFsbCAuaWNvbik6Ci0gICAgICAgICguaGVhcC1zbmFwc2hvdC12aWV3KToKLSAgICAgICAg
KC5oZWFwLXNuYXBzaG90LXZpZXcudmlzaWJsZSk6Ci0gICAgICAgICguaGVhcC1zbmFwc2hvdC12
aWV3IC5kYXRhLWdyaWQpOgotICAgICAgICAoLmhlYXAtc25hcHNob3QtdmlldyAuZGF0YS1ncmlk
IHRoLmNvdW50LWNvbHVtbik6Ci0gICAgICAgICguaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRhLWdy
aWQgdGQuY291bnQtY29sdW1uKToKLSAgICAgICAgKC5oZWFwLXNuYXBzaG90LXZpZXcgLmRhdGEt
Z3JpZCB0aC5zaXplLWNvbHVtbik6Ci0gICAgICAgICguaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRh
LWdyaWQgdGQuc2l6ZS1jb2x1bW4pOgotICAgICAgICAoLmhlYXAtc25hcHNob3QtdmlldyAuZGF0
YS1ncmlkIHRoLmNvdW50RGVsdGEtY29sdW1uKToKLSAgICAgICAgKC5oZWFwLXNuYXBzaG90LXZp
ZXcgLmRhdGEtZ3JpZCB0ZC5jb3VudERlbHRhLWNvbHVtbik6Ci0gICAgICAgICguaGVhcC1zbmFw
c2hvdC12aWV3IC5kYXRhLWdyaWQgdGguc2l6ZURlbHRhLWNvbHVtbik6Ci0gICAgICAgICguaGVh
cC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQgdGQuc2l6ZURlbHRhLWNvbHVtbik6Ci0gICAgICAg
ICgjaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LWNvbnRhaW5lcik6Ci0gICAgICAgICguaGVhcC1zbmFw
c2hvdC1zdW1tYXJ5KToKLSAgICAgICAgKC5oZWFwLXNuYXBzaG90LXN1bW1hcnkgY2FudmFzLnN1
bW1hcnktZ3JhcGgpOgotICAgICAgICAoLmhlYXAtc25hcHNob3Qtc3VtbWFyeS1sYWJlbCk6Ci0g
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzOgotICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6Ci0KLTIwMTAtMDktMDMgIFphaGVlciBB
aG1hZCA8emFoZWVyLm1vdEBnbWFpbC5jb20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCi0KLSAgICAgICAgW0dUS10gY29tcGlsYXRpb24gaXNzdWUgd2l0aCBKU1RpbWVSYW5n
ZXMgd2hlbiB2aWRlbyB0dXJuZWQgb2ZmCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NDI0OQotCi0gICAgICAgIE1vdmUgdGhlIEpTVGltZVJhbmdlcyBv
dXRzaWRlIEVOQUJMRV9WSURFTyBpbiBHTlVNYWtlZmlsZS5hbQotICAgICAgICAqIFdlYkNvcmUv
R05VTWFrZWZpbGUuYW0KLQotMjAxMC0wOS0wMyAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0Bj
aHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KLQot
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBjbGVhbnVwIGluc3BlY3RvciBhcGkuIGdldENoaWxkTm9k
ZXMgc2hvdWxkIHJldHVybiBhcnJheSBvZiBjaGlsZCBub2RlcyBhcyBhbiBvdXRwdXQgdmFsdWUu
Ci0KLSAgICAgICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGluc3BlY3RvciBh
cGkgaGFzIHNvbWUgdW5uZWNlc3NhcnkgY29tcGxleGl0eS4gCi0gICAgICAgIEFzIGV4YW1wbGUg
V2ViSW5zcGVjdG9yIGlzIHJlcXVlc3RpbmcgY2hpbGQgbm9kZXMgb2YgYSBub2RlIGJ5IGdldENo
aWxkTm9kZXMKLSAgICAgICAgYnV0IERPTSBhZ2VudCBpcyBhY3R1YWxseSBwdXNoaW5nIHRoZSBj
aGlsZCBub2RlcyB2aWEgc2V0Q2hpbGROb2RlcyBldmVudCBjYWxsIGFuZAotICAgICAgICBzZW5k
IGJhY2sgYW4gZW1wdHkgcmVzcG9uc2UgbWVzc2FnZS4KLQotICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUxNzIKLQotICAgICAgICAqIGluc3BlY3Rvci9D
b2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtOgotICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3Iu
aWRsOgotICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHA6Ci0gICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6Z2V0Q2hpbGROb2Rlc0FycmF5KToKLSAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQp
OgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmdldENoaWxkTm9kZXMpOgot
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgotICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6Ci0gICAgICAgIChXZWJJbnNwZWN0b3IuRE9NQWdl
bnQucHJvdG90eXBlLmdldENoaWxkTm9kZXNBc3luYy5teWNhbGxiYWNrKToKLSAgICAgICAgKFdl
Ykluc3BlY3Rvci5ET01BZ2VudC5wcm90b3R5cGUuZ2V0Q2hpbGROb2Rlc0FzeW5jKToKLSAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5qczoKLSAgICAgICAg
KFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJvdG90eXBlLnJlc2V0KToKLQotMjAx
MC0wOS0wMyAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCi0KLSAgICAgICAgU1ZHIGF0bGFzIG1hcCBz
bGlkZXIgZG9lc24ndCB3b3JrIHByb3Blcmx5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTEwNwotCi0gICAgICAgIFNWRyAxLjEgMm5kIGVkaXRpb24g
cmVsYXhlcyBoaXQgdGVzdGluZyBydWxlcy4gVGhlIG91dGVybW9zdCA8c3ZnPiBzaG91bGQgcmVh
Y3QKLSAgICAgICAgdG8gbW91c2UgZXZlbnRzLCBpbiBzdGFuZGFsb25lIGFuZCBjb21wb3VuZCBk
b2N1bWVudHMsIGlmIHRoZSBtb3VzZSBsb2NhdGlvbiBpcwotICAgICAgICB3aXRoaW4gdGhlIGlu
dHJpbnNpYyBib3VuZGFyaWVzIG9mIHRoZSA8c3ZnPiBlbGVtZW50LgotCi0gICAgICAgIFRlc3Rz
OiBzdmcvY3VzdG9tL21vdXNlLW1vdmUtb24tc3ZnLWNvbnRhaW5lci1zdGFuZGFsb25lLnN2Zwot
ICAgICAgICAgICAgICAgc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1jb250YWluZXIueGh0
bWwKLSAgICAgICAgICAgICAgIHN2Zy9jdXN0b20vbW91c2UtbW92ZS1vbi1zdmctcm9vdC1zdGFu
ZGFsb25lLnN2ZwotICAgICAgICAgICAgICAgc3ZnL2N1c3RvbS9tb3VzZS1tb3ZlLW9uLXN2Zy1y
b290LnhodG1sCi0KLSAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHA6Ci0gICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpub2RlQXRQb2ludCk6Ci0KLTIwMTAtMDktMDMg
IFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KLQotICAgICAgICBXZWIgSW5zcGVjdG9yOiBwcm92
aWRlIG1vcmUgaW5mb3JtYXRpb24gdG8gZnJvbnQtZW5kIHdoZW4gYnJlYWtpbmcgb24gRE9NIGV2
ZW50Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDY3
OQotCi0gICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgotICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKToKLSAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6OnBhcnNlckluc2VydEJlZm9yZSk6Ci0gICAgICAgIChXZWJDb3JlOjpDb250YWluZXJO
b2RlOjpyZXBsYWNlQ2hpbGQpOgotICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6YXBw
ZW5kQ2hpbGQpOgotICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cGFyc2VyQWRkQ2hp
bGQpOgotICAgICAgICAoV2ViQ29yZTo6bm90aWZ5Q2hpbGRJbnNlcnRlZCk6Ci0gICAgICAgIChX
ZWJDb3JlOjpkaXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyk6Ci0gICAgICAgICogZG9tL0VsZW1l
bnQuY3BwOgotICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0QXR0cmlidXRlKToKLSAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlbW92ZUF0dHJpYnV0ZSk6CisgICAgICAgICogY3NzL0NT
U0dyYW1tYXIueToKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpub2RlKToKKyAg
ICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6
Q1NTUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VTaGVldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVTdHlsZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Zmlu
ZEltcG9ydGFudEluVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjptYXJrUHJv
cGVydHlFbmQpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6cmVzZXRQcm9wZXJ0eU1hcmtzKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVy
dHlEYXR1bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6
Q1NTUHJvcGVydHlEYXR1bSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpv
cGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6dG9TdHJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6aW5pdCk6CisgICAgICAgIChX
VEY6Ojo6ZW1wdHlWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5RGF0dW0uaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjp+Q1NTUHJvcGVydHlEYXR1
bSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj09KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yIT0pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlEYXR1bUhhc2g6Omhhc2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVy
dHlEYXR1bUhhc2g6OmVxdWFsKToKICAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoK
LSAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6Ci0gICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsSW5zZXJ0RE9NTm9kZUltcGwpOgotICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkSW5zZXJ0RE9NTm9kZUltcGwp
OgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFJlbW92ZURPTU5v
ZGVJbXBsKToKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlbW92
ZURPTU5vZGVJbXBsKToKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Ondp
bGxNb2RpZnlET01BdHRySW1wbCk6Ci0gICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpkaWRNb2RpZnlET01BdHRySW1wbCk6Ci0gICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaDoKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Ondp
bGxJbnNlcnRET01Ob2RlKToKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6
OmRpZEluc2VydERPTU5vZGUpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6d2lsbFJlbW92ZURPTU5vZGUpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJv
bGxlcjo6d2lsbE1vZGlmeURPTUF0dHIpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlkTW9kaWZ5RE9NQXR0cik6Ci0gICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyOjppbnNwZWN0b3JDb250cm9sbGVyRm9yTm9kZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNT
U1N0b3JlOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6c3R5
bGVTaGVldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OnJlc291
cmNlU3R5bGVTaGVldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6
OmlubGluZVN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0
b3JlOjpnZXRTdHlsZVNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
U3RvcmU6OmV4dHJhY3RSYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3Rv
cmU6OmdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNTU1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDU1NTdG9yZS5oOgogICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2Vu
dC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6fkluc3BlY3RvckRP
TUFnZW50KToKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpzaG91bGRCcmVh
a09uTm9kZUluc2VydGlvbik6Ci0gICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
c2hvdWxkQnJlYWtPbk5vZGVSZW1vdmFsKToKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRP
TUFnZW50OjpzaG91bGRCcmVha09uQXR0cmlidXRlTW9kaWZpY2F0aW9uKToKLSAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpkaWRJbnNlcnRET01Ob2RlKToKLSAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpkaWRSZW1vdmVET01Ob2RlKToKLSAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpkaWRNb2RpZnlET01BdHRyKToKLSAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpjcmVhdGVCcmVha3BvaW50KToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUpOgogICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgotICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcDoKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOgotICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6fkluc3BlY3RvckRlYnVnZ2VyQWdlbnQpOgotICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGF1c2UpOgotICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6YnJlYWtQcm9ncmFtKToKLSAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oOgotICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JWYWx1ZXMuaDoKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclZhbHVlOjpp
c051bGwpOgotICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5qczoKLSAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50SXRlbSk6Ci0gICAgICAg
IChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludEl0ZW0ucHJvdG90eXBlLl9lbmFibGVDaGFuZ2VkKToK
LSAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKLSAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHQucHJvdG90eXBlLmdldCBsaW5lc0NvdW50KToKLSAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKLSAgICAgICAgKFdlYkluc3BlY3Rvci5wYXVz
ZWRTY3JpcHQpOgotCi0yMDEwLTA4LTMxICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0u
b3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgotCi0gICAgICAgIElEQkN1
cnNvci5jb250aW51ZSgpIHNob3VsZCByZXVzZSB0aGUgLm9wZW5DdXJzb3IncyBJREJSZXF1ZXN0
IG9iamVjdAotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDQ5NTMKLQotICAgICAgICBUaGlzIGlzIHRvIG1hdGNoIHRoZSBzcGVjLiBUaGlzIHJlcXVpcmVz
IGEgbW9kaWZpY2F0aW9uIHRvIElEQlJlcXVlc3Qgc28KLSAgICAgICAgdGhhdCBtdWx0aXBsZSBl
dmVudHMgY2FuIGJlIHF1ZXVlZCB1cC4KLQotICAgICAgICBOb3RlIHRoYXQgdGhlIGluaXRpYWwg
c3RhdGUgZm9yIElEQlJlcXVlc3Qgd2FzIHJlbW92ZWQgZnJvbSB0aGUgc3BlYy4KLQotICAgICAg
ICBUZXN0OiBtb2RpZmllZCBleGlzdGluZyB0ZXN0IHRvIHZlcmlmeSBuZXcgYmVoYXZpb3IuCi0K
LSAgICAgICAgKiBzdG9yYWdlL0lEQkFueS5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpJREJBbnk6
OmNyZWF0ZUludmFsaWQpOgotICAgICAgICAoV2ViQ29yZTo6SURCQW55OjpjcmVhdGVOdWxsKToK
LSAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6c2V0TnVsbCk6Ci0gICAgICAgICogc3RvcmFnZS9J
REJBbnkuaDoKLSAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6Y3JlYXRlKToKLSAgICAgICAgKiBz
dG9yYWdlL0lEQkN1cnNvci5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OklEQkN1
cnNvcik6Ci0gICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgot
ICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yLmg6Ci0gICAgICAgIChXZWJDb3JlOjpJREJDdXJz
b3I6OmNyZWF0ZSk6Ci0gICAgICAgICogc3RvcmFnZS9JREJDdXJzb3IuaWRsOgotICAgICAgICAq
IHN0b3JhZ2UvSURCUmVxdWVzdC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpJ
REJSZXF1ZXN0KToKLSAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6On5JREJSZXF1ZXN0KToK
LSAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6OnJlc2V0UmVhZHlTdGF0ZSk6Ci0gICAgICAg
IChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvbkVycm9yKToKLSAgICAgICAgKFdlYkNvcmU6OklEQlJl
cXVlc3Q6Om9uU3VjY2Vzcyk6Ci0gICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjphYm9ydCk6
Ci0gICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp0aW1lckZpcmVkKToKLSAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OnNjaGVkdWxlRXZlbnQpOgotICAgICAgICAqIHN0b3JhZ2UvSURC
UmVxdWVzdC5oOgotICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5pZGw6Ci0KLTIwMTAtMDkt
MDMgIEJoYXJhdGh3YWFqIFNyaW5pdmFzYW4gIDxiaGFyYXRod2Fhai5zQGdtYWlsLmNvbT4KLQot
ICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCi0KLSAgICAgICAgSW5pdGlhbGl6ZSBrZXli
b2FyZCBldmVudHMgYmVmb3JlIHBhc3NpbmcgcGx1Z2lucy4KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0NzcxCi0KLSAgICAgICAgTm8gbmV3IHRlc3Rz
IG5lZWRlZCBzaW5jZSB0aGlzIGlzIGEgdHJpdmlhbCBmaXguCi0KLSAgICAgICAgKiBwbHVnaW5z
L2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6Omhh
bmRsZUtleWJvYXJkRXZlbnQpOgotCi0yMDEwLTA5LTAzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVy
eXNAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQuIEZpeCBRdCBjb21waWxhdGlv
bi4KLQotICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHA6Ci0gICAgICAgIChXZWJD
b3JlOjpIVE1MRW1iZWRFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKToKLQotMjAxMC0wOS0w
MyAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBLZW50IFRhbXVyYS4KLQotICAgICAgICBBZGRzIHRleHRJbnB1dENvbnRyb2xsZXIuaGFz
U3BlbGxpbmdNYXJrZXIoKSB0byBhdm9pZCB1c2luZyBwaXhlbCB0ZXN0cyBmb3Igc3BlbGxjaGVj
a2luZyB0ZXN0cwotICAgICAgICBhbmQgaW1wbGVtZW50cyBpdCBmb3IgTWFjLgotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE4MzIKLQotICAgICAgICBU
ZXN0czogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAotICAg
ICAgICAgICAgICAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCi0KLSAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0ZWQgc3ltYm9scyB1c2VkIGJ5IFtXZWJGcmFt
ZSBoYXNTcGVsbGluZ01hcmtlcjpsZW5ndGg6XS4KLQotMjAxMC0wOS0wMiAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgotCi0gICAgICAgIFJFR1JFU1NJT046IENyYXNoIG9jY3VycyBhdCBvYmpjX21zZ1Nl
bmQgd2hlbiBjbG9zaW5nIGEgd2luZG93IHRoYXQgaXMgZGlzcGxheWluZyB0aGUgd2ViIGluc3Bl
Y3RvcgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQy
MzAKLQotICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgotICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQpOgotICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2xvc2UpOgotICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudC5oOgotICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNj
b25uZWN0RnJvbUJhY2tlbmQpOiBkb24ndCB0cnkgdG8gbm90aWZ5IEluc3BlY3RvckNvbnRyb2xs
ZXIKLSAgICAgICAgdGhhdCBmcm9udGVuZCBjbG9zZXMgaWYgSW5zcGVjdG9yQ29udHJvbGxlciB0
cmlnZ2VyZWQgdGhlIGFjdGlvbi4KLSAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0Lmg6Ci0gICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6
Ci0gICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHVi
LmpzOgotICAgICAgICAoLldlYkluc3BlY3Rvci5JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLnBy
b3RvdHlwZS5kaXNjb25uZWN0RnJvbUJhY2tlbmQpOgotICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzOgotICAgICAgICAoV2ViSW5zcGVjdG9yLmRpc2Nvbm5lY3RGcm9t
QmFja2VuZCk6Ci0KLTIwMTAtMDktMDMgIEdpcmlzaCBSYW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9y
d2FyZGJpYXMuaW4+Ci0KLSAgICAgICAgUmV2aWV3ZWQtYnkgU2ltb24gSGF1c21hbm4uCi0KLSAg
ICAgICAgUGFzc2luZyBhIDMyLWJpdCBkZXB0aCBYIHBpeG1hcCB0byBOUEFQSSB3aW5kb3dsZXNz
IHBsdWdpbnMgaXMgdG9vIGluZWZmaWNpZW50LiAKLSAgICAgICAgSW5zdGVhZCwgcGFzcyBhIFgg
UGl4bWFwIHRoYXQgaGFzIHNhbWUgZGVwdGggYXMgdGhlIHNjcmVlbiBkZXB0aCBzaW5jZSBncmFw
aGljcyAKLSAgICAgICAgb3BlcmF0aW9ucyBhcmUgb3B0aW1pemVkIGZvciB0aGlzIGRlcHRoLgot
Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE2Nwot
Ci0gICAgICAgICogcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcDoKLSAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblBhY2thZ2U6OmRldGVybWluZVF1aXJrcyk6CiAKIDIwMTAtMDktMDIgIEt3YW5nIFl1
bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggZDM2MTgxMC4uOWY3ZWVm
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC0zOTEsOCArMzkxLDYgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFVMaXN0RWxlbWVudC5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50LmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNUaW1lUmFuZ2VzLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1RpbWVSYW5nZXMu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ltYWdlRGF0YS5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNJbWFnZURhdGEuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0luamVjdGVkU2NyaXB0SG9zdC5jcHAgXApAQCAtMzEzNiw2ICszMTM0LDEwIEBAIGlmIEVOQUJM
RV9ERUJVRwogd2ViY29yZV9jcHBmbGFncyArPSAtREdTVF9ESVNBQkxFX0RFUFJFQ0FURUQKIGVu
ZGlmICMgRU5EIEVOQUJMRV9ERUJVRwogCit3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNUaW1lUmFuZ2VzLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1RpbWVSYW5nZXMuaAorCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0F1ZGlvQ29uc3RydWN0b3IuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1ZTZjNmIzLi5lOGI0ZmU3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTMxNCw3ICszMTQsNiBAQCBfX1pON1dlYkNvcmUxNFNWR1NNSUxFbGVtZW50MTNpc1NN
SUxFbGVtZW50RVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnkyNHJlZ2lz
dGVyVVJMU2NoZW1lQXNMb2NhbEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2NoZW1l
UmVnaXN0cnkyNXJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmVFUktOM1dURjZTdHJpbmdFCiBfX1pO
N1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MzJyZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVu
dEVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xMGNhbkRpc3Bs
YXlFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0VQTlNfOERvY3VtZW50RQogX19aTjdXZWJDb3Jl
MTRTZWN1cml0eU9yaWdpbjE2Y3JlYXRlRnJvbVN0cmluZ0VSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xOHNldExvY2FsTG9hZFBvbGljeUVOUzBfMTVMb2NhbExv
YWRQb2xpY3lFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMThzaG91bGRIaWRlUmVmZXJy
ZXJFUktOU180S1VSTEVSS04zV1RGNlN0cmluZ0UKQEAgLTMyMyw2ICszMjIsNyBAQCBfX1pON1dl
YkNvcmUxNFNlY3VyaXR5T3JpZ2luMjlhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUVSS1Mw
X1JLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjMycmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktTMF9SS04zV1RGNlN0cmluZ0VTNl9iCiBfX1pON1dl
YkNvcmUxNFNlY3VyaXR5T3JpZ2luNDBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJM
U2NoZW1lRWJSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3Jl
YXRlRVJLTlNfNEtVUkxFaQorX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjdjYW5Mb2FkRVJL
TlNfNEtVUkxFUktOM1dURjZTdHJpbmdFUE5TXzhEb2N1bWVudEUKIF9fWk43V2ViQ29yZTE1QXJj
aGl2ZVJlc291cmNlNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOU18xMlNoYXJlZEJ1ZmZlckVF
RVJLTlNfNEtVUkxFUktOUzFfNlN0cmluZ0VTQV9TQV9SS05TXzE2UmVzb3VyY2VSZXNwb25zZUUK
IF9fWk43V2ViQ29yZTE1RE9NV3JhcHBlcldvcmxkMTV1bnJlZ2lzdGVyV29ybGRFdgogX19aTjdX
ZWJDb3JlMTVET01XcmFwcGVyV29ybGREMUV2CkBAIC00NjIsNyArNDYyLDYgQEAgX19aTjdXZWJD
b3JlMjNSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYxMFBhc3NS
ZWZQdHJJTlNfMTZEb2MKIF9fWk43V2ViQ29yZTIzY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXNFUE5T
XzhEb2N1bWVudEVSS04zV1RGNlZlY3RvcklQTlNfNE5vZGVFTG0wRUVFCiBfX1pON1dlYkNvcmUy
NEJpbmFyeVByb3BlcnR5TGlzdFdyaXRlcjE3d3JpdGVQcm9wZXJ0eUxpc3RFdgogX19aTjdXZWJD
b3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVu
dE1hcmtlcjEwTWFya2VyVHlwZUUKLV9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFy
a2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtl
cjEwTWFya2VyVHlwZUUKIF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYK
IF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnU3R5bGVzRXYKQEAgLTg1Niw3ICs4NTUs
NiBAQCBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3MTZjb250ZW50c1RvV2luZG93RVJLTlNfOElu
dFBvaW50RQogX19aTks3V2ViQ29yZTEwU2Nyb2xsVmlldzE4dmlzaWJsZUNvbnRlbnRSZWN0RWIK
IF9fWk5LN1dlYkNvcmUxMUNhY2hlZEltYWdlNWltYWdlRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1l
TG9hZGVyMTBpc0NvbXBsZXRlRXYKLV9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMTJibG9ja2Vk
RXJyb3JFUktOU18xNVJlc291cmNlUmVxdWVzdEUKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQogX19aTks3V2ViQ29yZTEx
RnJhbWVMb2FkZXIxNGZyYW1lSGFzTG9hZGVkRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVy
MTZvdXRnb2luZ1JlZmVycmVyRXYKQEAgLTg4OCw3ICs4ODYsNiBAQCBfX1pOSzdXZWJDb3JlMTJF
dmVudEhhbmRsZXIyMGN1cnJlbnRLZXlib2FyZEV2ZW50RXYKIF9fWk5LN1dlYkNvcmUxMkljb25E
YXRhYmFzZTEyZGF0YWJhc2VQYXRoRXYKIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTI0c2hv
dWxkU3RvcFRocmVhZEFjdGl2aXR5RXYKIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTlpc0Vu
YWJsZWRFdgotX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0N2NoaWxkQXRFagogX19aTks3V2Vi
Q29yZTEyUmVuZGVyT2JqZWN0MTRlbmNsb3NpbmdMYXllckV2CiBfX1pOSzdXZWJDb3JlMTJSZW5k
ZXJPYmplY3QxNWxvY2FsVG9BYnNvbHV0ZUVOU18xMEZsb2F0UG9pbnRFYmIKIF9fWk5LN1dlYkNv
cmUxMlJlbmRlcldpZGdldDE0d2luZG93Q2xpcFJlY3RFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzMzIxY2JiLi5kNWI2NjRi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtOTk3LDYgKzk5Nyw4IEBACiAgICAgICAgICAgICAnY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5LmNwcCcsCiAgICAg
ICAgICAgICAnY3NzL0NTU1Byb3BlcnR5LmgnLAorICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0
eURhdHVtLmNwcCcsCisgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5RGF0dW0uaCcsCiAgICAg
ICAgICAgICAnY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwJywKICAgICAgICAgICAgICdjc3Mv
Q1NTUHJvcGVydHlMb25naGFuZC5oJywKICAgICAgICAgICAgICdjc3MvQ1NTUXVpcmtQcmltaXRp
dmVWYWx1ZS5oJywKQEAgLTIyNzIsMTEgKzIyNzQsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL1BhdGhDRy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2NnL1BhdHRlcm5DRy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2NnL1Ry
YW5zZm9ybWF0aW9uTWF0cml4Q0cuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uY3BwJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJDaHJvbWl1bS5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyQ2hy
b21pdW0uaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRHJhd2lu
Z0J1ZmZlckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Dcm9zc1Byb2Nlc3NGb250TG9hZGluZy5oJywKQEAg
LTIzMjMsOCArMjMyMiw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaCcsCi0gICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNwcCcsCi0g
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVt
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURh
dGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3Jt
RGF0YUNvY29hLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
QmxlbmQuY3BwJywKQEAgLTIzNDYsMTQgKzIzNDMsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmgnLAotICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvZ3B1L1BPREFyZW5hLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9QT0RJbnRlcnZhbC5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9ncHUv
UE9ESW50ZXJ2YWxUcmVlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Q
T0RSZWRCbGFja1RyZWUuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1No
YXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9TaGFkZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvU2hhZGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9Tb2xp
ZEZpbGxTaGFkZXIuY3BwJywKQEAgLTI2MTIsOCArMjYwMyw4IEBACiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZU9ic2VydmVyLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291
cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCcs
CisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvSW50UmVjdC5oJywKQEAgLTQyOTAsNyArNDI4MSw2IEBACiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9XZWxjb21lVmlldy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9m
cm9udC1lbmQvYXVkaXRzLmNzcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9o
ZWFwUHJvZmlsZXIuY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2hlbHBT
Y3JlZW4uY3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5j
c3MnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yU3ludGF4SGln
aGxpZ2h0LmNzcycsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwppbmRleCAzZjIzY2RkLi5jNWJiZTI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTQzMiw2ICs0MzIsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBjc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBcCiAgICAgY3NzL0NTU1By
aW1pdGl2ZVZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU1Byb3BlcnR5LmNwcCBcCisgICAgY3NzL0NT
U1Byb3BlcnR5RGF0dW0uY3BwIFwKICAgICBjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAgXAog
ICAgIGNzcy9DU1NSZWZsZWN0VmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTUnVsZS5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjNlNDlmNS4uNmVjOGM4MiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yOTM1Nyw2ICsyOTM1NywxNCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxj
c3NcQ1NTUHJvcGVydHlEYXR1bS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlEYXR1bS5oIg0KKwkJCQk+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXENTU1Byb3Bl
cnR5TG9uZ2hhbmQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KQEAgLTUyMjU2LDEwICs1MjI2
NCw2IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXGhlYXBQcm9maWxlci5jc3MiDQotCQkJCQk+DQot
CQkJCTwvRmlsZT4NCi0JCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XGZyb250LWVuZFxIZWFwU25hcHNob3RWaWV3LmpzIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOGI4OGVjLi44
ODM5MDQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTQ1Niw2ICsxNDU2LDggQEAKIAkJODFCRTIwRDMxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vy
c29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJF
MjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLzsgfTsKIAkJODJCNjU4OTgx
MTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyog
SW5zcGVjdG9yQ1NTU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3Rv
cmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJC
NjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNwcCAqLzsgfTsKKwkJ
ODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4REMxMjJFQTBEMTAw
M0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwICovOyB9OworCQk4MkUzRDhERjEyMkVBMEQx
MDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3Bl
cnR5RGF0dW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OwogCQk4NDE5RDJBODEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4
RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovOyB9OwogCQk4NDE5RDJBOTEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYg
LyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CkBAIC03Mzg0LDYgKzczODYsOCBA
QAogCQk4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODJCNjU4OTcxMTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3Jl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckNTU1N0b3JlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAv
KiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNwZWN0b3JDU1NTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5RGF0dW0uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NT
UHJvcGVydHlEYXR1bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQcm9w
ZXJ0eURhdHVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE0MTIwRDky
RDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE2MTIw
RDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjk1OCw2ICsxNjk2Miw4IEBACiAJCQkJRTFFRDhBQzIw
Q0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCAqLywKIAkJCQlB
ODBFNkNDRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuY3BwICovLAogCQkJCUE4MEU2
Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5oICovLAorCQkJCTgyRTNEOERDMTIy
RUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLywKKwkJCQk4MkUzRDhERDEy
MkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovLAogCQkJCTBGNkVDRDQ0MEYy
NTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCAqLywKIAkJCQkwRjZFQ0Q0
MzBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5oICovLAogCQkJCUJDRUE0
Nzg5MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluICovLApAQCAtMjA0MzIs
NiArMjA0MzgsNyBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01ldGFkYXRh
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUYxMTIyRTFFODcwMDNBQUJEQSAv
KiBKU0ZpbGVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUY1MTIyRTFFQUMw
MDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MkUzRDhE
RjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yMjg5NSw2ICsyMjkwMiw3IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJBNzAwM0FBQkRBIC8qIEpT
TWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODVGMDEyMkUxRTg3
MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4
NUY0MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCBiL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKaW5kZXggOTE3NjhiMC4uZmI0M2YzZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC01NiwxOSArNTYs
NyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRJbmRleGVkREJFbmFibGVkKGJvb2wg
aXNFbmFibGVkKSB7IGlzSW5kZXhlZERCRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIHN0YXRp
YyBib29sIGluZGV4ZWREQkVuYWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0K
LSAgICBzdGF0aWMgYm9vbCBpREJDdXJzb3JFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJF
bmFibGVkOyB9Ci0gICAgc3RhdGljIGJvb2wgaURCRGF0YWJhc2VFbmFibGVkKCkgeyByZXR1cm4g
aXNJbmRleGVkREJFbmFibGVkOyB9Ci0gICAgc3RhdGljIGJvb2wgaURCRGF0YWJhc2VFcnJvckVu
YWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KLSAgICBzdGF0aWMgYm9vbCBp
REJEYXRhYmFzZUV4Y2VwdGlvbkVuYWJsZWQoKSB7IHJldHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7
IH0KLSAgICBzdGF0aWMgYm9vbCBpREJFcnJvckV2ZW50RW5hYmxlZCgpIHsgcmV0dXJuIGlzSW5k
ZXhlZERCRW5hYmxlZDsgfQotICAgIHN0YXRpYyBib29sIGlEQkV2ZW50RW5hYmxlZCgpIHsgcmV0
dXJuIGlzSW5kZXhlZERCRW5hYmxlZDsgfQotICAgIHN0YXRpYyBib29sIGlEQkZhY3RvcnlFbmFi
bGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9Ci0gICAgc3RhdGljIGJvb2wgaURC
SW5kZXhFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9Ci0gICAgc3RhdGlj
IGJvb2wgaURCS2V5UmFuZ2VFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9
Ci0gICAgc3RhdGljIGJvb2wgaURCT2JqZWN0U3RvcmVFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRl
eGVkREJFbmFibGVkOyB9Ci0gICAgc3RhdGljIGJvb2wgaURCUmVxdWVzdEVuYWJsZWQoKSB7IHJl
dHVybiBpc0luZGV4ZWREQkVuYWJsZWQ7IH0KLSAgICBzdGF0aWMgYm9vbCBpREJTdWNjZXNzRXZl
bnRFbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9Ci0gICAgc3RhdGljIGJv
b2wgaURCVHJhbnNhY3Rpb25FbmFibGVkKCkgeyByZXR1cm4gaXNJbmRleGVkREJFbmFibGVkOyB9
CisgICAgc3RhdGljIGJvb2wgaURCS2V5UmFuZ2VFbmFibGVkKCkgeyByZXR1cm4gaW5kZXhlZERC
RW5hYmxlZCgpOyB9CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgc3RhdGljIGJvb2wgYXVkaW9F
bmFibGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpp
bmRleCAxYTExNGE0Li44NGUzOTE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTExMzQsMTQgKzExMzQsOSBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0
ZXJzQ2hlY2tFeHByZXNzaW9uCiAgICAgICAgICMgRm9yIERPTVN0cmluZywgTnVsbCwgVW5kZWZp
bmVkIGFuZCBhbnkgT2JqZWN0IGFyZSBhY2NlcHRlZCB0b28sIGFzCiAgICAgICAgICMgdGhlc2Ug
YXJlIGFjY2VwdGFibGUgdmFsdWVzIGZvciBhIERPTVN0cmluZyBhcmd1bWVudCAoYW55IE9iamVj
dCBjYW4KICAgICAgICAgIyBiZSBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcgdmlhIC50b1N0cmluZyku
Ci0gICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKSkgewotICAg
ICAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5pc051bGwoKSB8fCAke3Zh
bHVlfS5pc1VuZGVmaW5lZCgpIHx8ICR7dmFsdWV9LmlzU3RyaW5nKCkgfHwgJHt2YWx1ZX0uaXNP
YmplY3QoKSkiKTsKLSAgICAgICAgfSBlbHNpZiAoJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNhbGxiYWNrIn0pIHsKLSAgICAgICAgICAgICMgRm9yIENhbGxiYWNrcyBvbmx5IGNo
ZWNrcyBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciBvYmplY3QuCi0gICAgICAgICAgICBwdXNoKEBh
bmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LmlzTnVsbCgpIHx8ICR7dmFsdWV9LmlzT2JqZWN0KCkp
Iik7Ci0gICAgICAgIH0gZWxzaWYgKCFJc05hdGl2ZVR5cGUoJHR5cGUpKSB7Ci0gICAgICAgICAg
ICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LmlzTnVsbCgpIHx8ICgke3ZhbHVlfS5p
c09iamVjdCgpICYmIGFzT2JqZWN0KCR7dmFsdWV9KS0+aW5oZXJpdHMoJkpTJHt0eXBlfTo6c19p
bmZvKSkpIik7Ci0gICAgICAgIH0KKyAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3Zh
bHVlfS5pc051bGwoKSB8fCAke3ZhbHVlfS5pc1VuZGVmaW5lZCgpIHx8ICR7dmFsdWV9LmlzU3Ry
aW5nKCkgfHwgJHt2YWx1ZX0uaXNPYmplY3QoKSkiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJp
bmdUeXBlKCR0eXBlKTsKKyAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS5p
c051bGwoKSB8fCAoJHt2YWx1ZX0uaXNPYmplY3QoKSAmJiBhc09iamVjdCgke3ZhbHVlfSktPmlu
aGVyaXRzKCZKUyR7dHlwZX06OnNfaW5mbykpKSIpIHVubGVzcyBJc05hdGl2ZVR5cGUoJHR5cGUp
OworCiAgICAgICAgICRwYXJhbWV0ZXJJbmRleCsrOwogICAgIH0KICAgICBteSAkcmVzID0gam9p
bigiICYmICIsIEBhbmRFeHByZXNzaW9uKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCmluZGV4IGE0NmM2N2MuLjAyODE2OWYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTAzMSwxNCArMTAzMSw4IEBAIHN1
YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVja0V4cHJlc3Npb24KICAgICAgICAgIyBGb3IgRE9NU3Ry
aW5nLCBOdWxsLCBVbmRlZmluZWQgYW5kIGFueSBPYmplY3QgYXJlIGFjY2VwdGVkIHRvbywgYXMK
ICAgICAgICAgIyB0aGVzZSBhcmUgYWNjZXB0YWJsZSB2YWx1ZXMgZm9yIGEgRE9NU3RyaW5nIGFy
Z3VtZW50IChhbnkgT2JqZWN0IGNhbgogICAgICAgICAjIGJlIGNvbnZlcnRlZCB0byBhIHN0cmlu
ZyB2aWEgLnRvU3RyaW5nKS4KLSAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5
cGUoJHR5cGUpKSB7Ci0gICAgICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9
LT5Jc051bGwoKSB8fCAke3ZhbHVlfS0+SXNVbmRlZmluZWQoKSB8fCAke3ZhbHVlfS0+SXNTdHJp
bmcoKSB8fCAke3ZhbHVlfS0+SXNPYmplY3QoKSkiKTsKLSAgICAgICAgfSBlbHNpZiAoJHBhcmFt
ZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKLSAgICAgICAgICAgICMg
Rm9yIENhbGxiYWNrcyBvbmx5IGNoZWNrcyBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciBvYmplY3Qu
Ci0gICAgICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LT5Jc051bGwoKSB8
fCAke3ZhbHVlfS0+SXNPYmplY3QoKSkiKTsKLSAgICAgICAgfSBlbHNpZiAoSXNXcmFwcGVyVHlw
ZSgkdHlwZSkpIHsKLSAgICAgICAgICAgIHB1c2goQGFuZEV4cHJlc3Npb24sICIoJHt2YWx1ZX0t
PklzTnVsbCgpIHx8IFY4JHt0eXBlfTo6SGFzSW5zdGFuY2UoJHZhbHVlKSkiKTsKLSAgICAgICAg
fQorICAgICAgICBwdXNoKEBhbmRFeHByZXNzaW9uLCAiKCR7dmFsdWV9LT5Jc051bGwoKSB8fCAk
e3ZhbHVlfS0+SXNVbmRlZmluZWQoKSB8fCAke3ZhbHVlfS0+SXNTdHJpbmcoKSB8fCAke3ZhbHVl
fS0+SXNPYmplY3QoKSkiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsK
KyAgICAgICAgcHVzaChAYW5kRXhwcmVzc2lvbiwgIigke3ZhbHVlfS0+SXNOdWxsKCkgfHwgVjgk
e3R5cGV9OjpIYXNJbnN0YW5jZSgkdmFsdWUpKSIpIGlmIElzV3JhcHBlclR5cGUoJHR5cGUpOwog
CiAgICAgICAgICRwYXJhbWV0ZXJJbmRleCsrOwogICAgIH0KQEAgLTExNTAsNyArMTE0NCw3IEBA
IEVORAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIFY4U1ZHUE9EVHlwZVdy
YXBwZXI8JG5hdGl2ZUNsYXNzTmFtZT4qIGltcFdyYXBwZXIgPSBWOFNWR1BPRFR5cGVXcmFwcGVy
PCRuYXRpdmVDbGFzc05hbWU+Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTtcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICRuYXRpdmVDbGFzc05hbWUgaW1wSW5zdGFu
Y2UgPSAqaW1wV3JhcHBlcjtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
ICAgICRuYXRpdmVDbGFzc05hbWUqIGltcCA9ICZpbXBJbnN0YW5jZTtcbiIpOwotICAgIH0gZWxz
aWYgKCEkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNsYXNzTWV0
aG9kIn0pIHsKKyAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8
PEVORCk7CiAgICAgJHtpbXBsQ2xhc3NOYW1lfSogaW1wID0gVjgke2ltcGxDbGFzc05hbWV9Ojp0
b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKIEVORApAQCAtMTc3MSw5ICsxNzY1LDYgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgaWYgKCRhdHRyRXh0LT57IlY4T25JbnN0YW5j
ZSJ9KSB7CiAgICAgICAgICAgICBuZXh0OwogICAgICAgICB9Ci0gICAgICAgIGlmICgkYXR0ckV4
dC0+eyJDbGFzc01ldGhvZCJ9KSB7Ci0gICAgICAgICAgICBuZXh0OwotICAgICAgICB9CiAgICAg
ICAgIGlmICgkYXR0ckV4dC0+eyJFbmFibGVkQXRSdW50aW1lIn0gfHwgUmVxdWlyZXNDdXN0b21T
aWduYXR1cmUoJGZ1bmN0aW9uKSB8fCAkYXR0ckV4dC0+eyJWOERvTm90Q2hlY2tTaWduYXR1cmUi
fSkgewogICAgICAgICAgICAgbmV4dDsKICAgICAgICAgfQpAQCAtMTk1OSw5ICsxOTUwLDYgQEAg
RU5ECiAgICAgICAgIGlmICgkYXR0ckV4dC0+eyJWOE9uSW5zdGFuY2UifSkgewogICAgICAgICAg
ICAgJHRlbXBsYXRlID0gImluc3RhbmNlIjsKICAgICAgICAgfQotICAgICAgICBpZiAoJGF0dHJF
eHQtPnsiQ2xhc3NNZXRob2QifSkgewotICAgICAgICAgICAgJHRlbXBsYXRlID0gImRlc2MiOwot
ICAgICAgICB9CiAKICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gIiI7CiAgICAgICAgIGlmICgk
YXR0ckV4dC0+eyJFbmFibGVkQXRSdW50aW1lIn0pIHsKQEAgLTE5OTcsNyArMTk4NSw3IEBAIEVO
RAogICAgICAgfQogCiAgICAgICBteSAkc2lnbmF0dXJlID0gImRlZmF1bHRTaWduYXR1cmUiOwot
ICAgICAgaWYgKCRhdHRyRXh0LT57IlY4RG9Ob3RDaGVja1NpZ25hdHVyZSJ9IHx8ICRhdHRyRXh0
LT57IkNsYXNzTWV0aG9kIn0pIHsKKyAgICAgIGlmICgkYXR0ckV4dC0+eyJWOERvTm90Q2hlY2tT
aWduYXR1cmUifSkgewogICAgICAgICAgICRzaWduYXR1cmUgPSAidjg6OkxvY2FsPHY4OjpTaWdu
YXR1cmU+KCkiOwogICAgICAgfQogCkBAIC0yNTcwLDEwICsyNTU4LDYgQEAgc3ViIEdlbmVyYXRl
RnVuY3Rpb25DYWxsU3RyaW5nKCkKICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nID0gInJlc3VsdC4k
e25hbWV9KCI7CiAgICAgfQogCi0gICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ2xhc3NNZXRob2QifSkgewotICAgICAgICAkZnVuY3Rpb25TdHJpbmcg
PSAiJHtpbXBsQ2xhc3NOYW1lfTo6JHtuYW1lfSgiOwotICAgIH0KLQogICAgIG15ICRyZXR1cm5z
TGlzdEl0ZW1Qb2RUeXBlID0gMDsKICAgICAjIFNWRyBsaXN0cyBmdW5jdGlvbnMgdGhhdCByZXR1
cm4gUE9EIHR5cGVzIHJlcXVpcmUgc3BlY2lhbCBoYW5kbGluZwogICAgIGlmIChJc1NWR0xpc3RU
eXBlTmVlZGluZ1NwZWNpYWxIYW5kbGluZygkaW1wbENsYXNzTmFtZSkgJiYgSXNTVkdMaXN0TWV0
aG9kKCRuYW1lKSAmJiAkcmV0dXJuc1BvZFR5cGUpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAppbmRleCA5Y2NlYjNjLi44ODJl
NjMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9N
VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRP
TVRlc3RPYmouY3BwCkBAIC03NDksMjIgKzc0OSw2IEBAIHZvaWQgV2ViRE9NVGVzdE9iajo6bWV0
aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdvT3B0aW9uYWxBcmdzKGludCBub25PcHQsIGludCBv
CiAgICAgaW1wbCgpLT5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mo
bm9uT3B0LCBvcHQxLCBvcHQyKTsKIH0KIAotdm9pZCBXZWJET01UZXN0T2JqOjpjbGFzc01ldGhv
ZCgpCi17Ci0gICAgaWYgKCFpbXBsKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGltcGwoKS0+
Y2xhc3NNZXRob2QoKTsKLX0KLQotaW50IFdlYkRPTVRlc3RPYmo6OmNsYXNzTWV0aG9kV2l0aE9w
dGlvbmFsKGludCBhcmcpCi17Ci0gICAgaWYgKCFpbXBsKCkpCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgcmV0dXJuIGltcGwoKS0+Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoYXJnKTsKLX0KLQog
V2ViQ29yZTo6VGVzdE9iaiogdG9XZWJDb3JlKGNvbnN0IFdlYkRPTVRlc3RPYmomIHdyYXBwZXIp
CiB7CiAgICAgcmV0dXJuIHdyYXBwZXIuaW1wbCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggMDM3YTFkMy4uNzcwY2U1MSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RP
YmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9i
ai5oCkBAIC0xNTAsOCArMTUwLDYgQEAgcHVibGljOgogICAgIHZvaWQgbWV0aG9kV2l0aE9wdGlv
bmFsQXJnKGludCBvcHQpOwogICAgIHZvaWQgbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0
aW9uYWxBcmcoaW50IG5vbk9wdCwgaW50IG9wdCk7CiAgICAgdm9pZCBtZXRob2RXaXRoTm9uT3B0
aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoaW50IG5vbk9wdCwgaW50IG9wdDEsIGludCBvcHQy
KTsKLSAgICB2b2lkIGNsYXNzTWV0aG9kKCk7Ci0gICAgaW50IGNsYXNzTWV0aG9kV2l0aE9wdGlv
bmFsKGludCBhcmcpOwogCiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaW1wbCgpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0T2JqLmNwcAppbmRleCBjOWMxMGQ3Li4zYzI3YjgxIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9i
ai5jcHAKQEAgLTM2NCwyNSArMzY0LDYgQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0
aF9ub25fb3B0aW9uYWxfYXJnX2FuZF90d29fb3B0aW9uYWxfYXJncyhXZWJLaXRET00KICAgICBp
dGVtLT5tZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3Mobm9uX29wdCwg
b3B0MSwgb3B0Mik7CiB9CiAKLXZvaWQKLXdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfbWV0aG9k
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoc2VsZik7Ci0gICAgV2ViQ29yZTo6
VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgaXRlbS0+Y2xhc3NNZXRo
b2QoKTsKLX0KLQotZ2xvbmcKLXdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfbWV0aG9kX3dpdGhf
b3B0aW9uYWwoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgZ2xvbmcgYXJnKQotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChzZWxmLCAwKTsKLSAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKLSAgICBnbG9uZyByZXMgPSBpdGVtLT5jbGFzc01ldGhvZFdpdGhPcHRpb25hbChhcmcp
OwotICAgIHJldHVybiByZXM7Ci19Ci0KIGdsb25nCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9y
ZWFkX29ubHlfaW50X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKaW5kZXggOGVlOGYwNC4uNGNjNzk2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKQEAgLTEyNCwxMiAr
MTI0LDYgQEAgd2Via2l0X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9ub25fb3B0aW9uYWxfYXJn
X2FuZF9vcHRpb25hbF9hcmcoV2ViS2l0RE9NVGVzdE8KIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X2RvbV90ZXN0X29ial9tZXRob2Rfd2l0aF9ub25fb3B0aW9uYWxfYXJnX2FuZF90d29fb3B0aW9u
YWxfYXJncyhXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyBub25fb3B0LCBnbG9uZyBvcHQx
LCBnbG9uZyBvcHQyKTsKIAotV0VCS0lUX0FQSSB2b2lkCi13ZWJraXRfZG9tX3Rlc3Rfb2JqX2Ns
YXNzX21ldGhvZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKLQotV0VCS0lUX0FQSSBnbG9uZwot
d2Via2l0X2RvbV90ZXN0X29ial9jbGFzc19tZXRob2Rfd2l0aF9vcHRpb25hbChXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBnbG9uZyBhcmcpOwotCiBXRUJLSVRfQVBJIGdsb25nCiB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9yZWFkX29ubHlfaW50X2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmlu
ZGV4IDYzYmMzNjguLjJhMzlhYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIGJvb2wgSlNUZXN0T2JqQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IElkZW50CiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpCiAjZW5kaWYKIAotc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzWzQ3
XSA9CitzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVW
YWx1ZXNbNDVdID0KIHsKICAgICB7ICJDT05TVF9WQUxVRV8wIiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpz
VGVzdE9iakNPTlNUX1ZBTFVFXzApLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwK
ICAgICB7ICJDT05TVF9WQUxVRV8xIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZB
TFVFXzEpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKQEAgLTIyMyw4ICsyMjMs
NiBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVW
YWx1ZXNbNDddID0KICAgICB7ICJtZXRob2RXaXRoTm9uQ2FsbGJhY2tBcmdBbmRDYWxsYmFja0Fy
ZyIsIERvbnREZWxldGUgfCBGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhOb25DYWxsYmFja0Fy
Z0FuZENhbGxiYWNrQXJnKSwgKGludHB0cl90KTIgVEhVTktfR0VORVJBVE9SKDApIH0sCiAgICAg
eyAibWV0aG9kV2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciLCBEb250RGVsZXRlIHwgRnVuY3Rp
b24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyksIChpbnRwdHJfdCkx
IFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgIm92ZXJsb2FkZWRNZXRob2QiLCBEb250RGVs
ZXRlIHwgRnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNU
ZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKSwgKGludHB0cl90KTIgVEhV
TktfR0VORVJBVE9SKDApIH0sCi0gICAgeyAiY2xhc3NNZXRob2QiLCBEb250RGVsZXRlIHwgRnVu
Y3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZCksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigw
KSB9LAotICAgIHsgImNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsIiwgRG9udERlbGV0ZSB8IEZ1bmN0
aW9uLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uQ2xhc3NNZXRob2RXaXRoT3B0aW9uYWwpLCAoaW50cHRyX3QpMSBUSFVOS19H
RU5FUkFUT1IoMCkgfSwKICAgICB7IDAsIDAsIDAsIDAgVEhVTktfR0VORVJBVE9SKDApIH0KIH07
CiAKQEAgLTE0MTcsMjMgKzE0MTUsNiBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDUoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpOwotICAgIGlmICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RP
Ymo6OnNfaW5mbykpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0
KHRoaXNWYWx1ZSkpOwotICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihj
YXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPD0gMCB8
fCAhZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkgewotICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLSAgICBSZWZQdHI8VGVzdENhbGxiYWNrPiBjYWxs
YmFjayA9IEpTVGVzdENhbGxiYWNrOjpjcmVhdGUoYXNPYmplY3QoZXhlYy0+YXJndW1lbnQoMCkp
LCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSk7Ci0KLSAgICBpbXAtPm92ZXJsb2FkZWRNZXRo
b2QoY2FsbGJhY2spOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25PdmVybG9hZGVkTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoKGV4ZWMt
PmFyZ3VtZW50Q291bnQoKSA9PSAyICYmIChleGVjLT5hcmd1bWVudCgwKS5pc051bGwoKSB8fCAo
ZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSAmJiBhc09iamVjdChleGVjLT5hcmd1bWVudCgw
KSktPmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpKSAmJiAoZXhlYy0+YXJndW1lbnQoMSku
aXNOdWxsKCkgfHwgZXhlYy0+YXJndW1lbnQoMSkuaXNVbmRlZmluZWQoKSB8fCBleGVjLT5hcmd1
bWVudCgxKS5pc1N0cmluZygpIHx8IGV4ZWMtPmFyZ3VtZW50KDEpLmlzT2JqZWN0KCkpKSkKQEAg
LTE0NDQsNDcgKzE0MjUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZChFeGVjU3RhdAogICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMyhleGVjKTsKICAg
ICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID09IDEpCiAgICAgICAgIHJldHVybiBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q0KGV4ZWMpOwotICAgIGlmICgoZXhl
Yy0+YXJndW1lbnRDb3VudCgpID09IDEgJiYgKGV4ZWMtPmFyZ3VtZW50KDApLmlzTnVsbCgpIHx8
IGV4ZWMtPmFyZ3VtZW50KDApLmlzT2JqZWN0KCkpKSkKLSAgICAgICAgcmV0dXJuIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDUoZXhlYyk7CiAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZXhlYyk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZChFeGVjU3RhdGUqIGV4ZWMpCi17
Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT5ob3N0VGhpc1ZhbHVlKCk7Ci0gICAgaWYg
KCF0aGlzVmFsdWUuaW5oZXJpdHMoJkpTVGVzdE9iajo6c19pbmZvKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3Rh
dGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7Ci0gICAgVGVzdE9iaiog
aW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0KLSAgICBp
bXAtPmNsYXNzTWV0aG9kKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbkNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAg
ICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPmhvc3RUaGlzVmFsdWUoKTsKLSAgICBpZiAoIXRo
aXNWYWx1ZS5pbmhlcml0cygmSlNUZXN0T2JqOjpzX2luZm8pKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdCh0aGlzVmFsdWUpKTsKLSAgICBUZXN0T2JqKiBpbXAg
PSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLQotICAgIGludCBh
cmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAw
KSB7Ci0KLSAgICAgICAgSlNDOjpKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGV4ZWMsIGltcC0+
Y2xhc3NNZXRob2RXaXRoT3B0aW9uYWwoKSk7Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKLSAgICB9Ci0KLSAgICBpbnQgYXJnID0gZXhlYy0+YXJndW1lbnQoMCkudG9J
bnQzMihleGVjKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0KLQotICAgIEpTQzo6SlNWYWx1ZSBy
ZXN1bHQgPSBqc051bWJlcihleGVjLCBpbXAtPmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsKGFyZykp
OwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKLX0KLQogLy8gQ29uc3RhbnQg
Z2V0dGVycwogCiBKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzAoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggMjE2OGIzZi4uOTkzZGY4YyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKQEAgLTExOSw4ICsxMTksNiBA
QCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25NZXRob2RXaXRoQ2FsbGJhY2tBcgogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE5vbkNhbGxiYWNrQXJnQW5k
Q2FsbGJhY2tBcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhDYWxsYmFja0FuZE9w
dGlvbmFsQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kKEpTQzo6RXhl
Y1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25DbGFzc01ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uQ2xhc3NNZXRo
b2RXaXRoT3B0aW9uYWwoSlNDOjpFeGVjU3RhdGUqKTsKIC8vIEF0dHJpYnV0ZXMKIAogSlNDOjpK
U1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5SW50QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNW
YWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCmluZGV4IDEzMmIyMTUuLjRhMGYwNjUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBAIC0x
NDIsOCArMTQyLDYgQEAgZW51bSB7CiAtICh2b2lkKW1ldGhvZFdpdGhPcHRpb25hbEFyZzooaW50
KW9wdDsKIC0gKHZvaWQpbWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmc6KGlu
dClub25PcHQgb3B0OihpbnQpb3B0OwogLSAodm9pZCltZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdB
bmRUd29PcHRpb25hbEFyZ3M6KGludClub25PcHQgb3B0MTooaW50KW9wdDEgb3B0MjooaW50KW9w
dDI7Ci0tICh2b2lkKWNsYXNzTWV0aG9kOwotLSAoaW50KWNsYXNzTWV0aG9kV2l0aE9wdGlvbmFs
OihpbnQpYXJnOwogQGVuZAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCA5NzI1YjI0Li4wMWZjZjM0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC02
MzQsMTggKzYzNCw2IEBACiAgICAgSU1QTC0+bWV0aG9kV2l0aE5vbk9wdGlvbmFsQXJnQW5kVHdv
T3B0aW9uYWxBcmdzKG5vbk9wdCwgb3B0MSwgb3B0Mik7CiB9CiAKLS0gKHZvaWQpY2xhc3NNZXRo
b2QKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1Q
TC0+Y2xhc3NNZXRob2QoKTsKLX0KLQotLSAoaW50KWNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsOihp
bnQpYXJnCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IHJldHVybiBJTVBMLT5jbGFzc01ldGhvZFdpdGhPcHRpb25hbChhcmcpOwotfQotCiBAZW5kCiAK
IFdlYkNvcmU6OlRlc3RPYmoqIGNvcmUoRE9NVGVzdE9iaiAqd3JhcHBlcikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggODlkZmRmNy4uOTRmNzM0YiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTEzNSwxMyArMTM1
LDggQEAgbW9kdWxlIHRlc3QgewogICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRob2QoaW4g
VGVzdE9iaiBvYmpBcmcsIGluIFtPcHRpb25hbF0gbG9uZyBpbnRBcmcpOwogICAgICAgICB2b2lk
ICAgIG92ZXJsb2FkZWRNZXRob2QoaW4gRE9NU3RyaW5nIHN0ckFyZyk7CiAgICAgICAgIHZvaWQg
ICAgb3ZlcmxvYWRlZE1ldGhvZChpbiBsb25nIGludEFyZyk7Ci0gICAgICAgIHZvaWQgICAgb3Zl
cmxvYWRlZE1ldGhvZChpbiBbQ2FsbGJhY2tdIFRlc3RDYWxsYmFjayBjYWxsYmFjayk7CiAjZW5k
aWYKIAotICAgICAgICAvLyBDbGFzcyBtZXRob2RzIHdpdGhpbiBKYXZhU2NyaXB0IChsaWtlIHdo
YXQncyB1c2VkIGZvciBJREJLZXlSYW5nZSkuCi0gICAgICAgIFtDbGFzc01ldGhvZF0gdm9pZCBj
bGFzc01ldGhvZCgpOwotICAgICAgICBbQ2xhc3NNZXRob2RdIGxvbmcgY2xhc3NNZXRob2RXaXRo
T3B0aW9uYWwoaW4gW09wdGlvbmFsXSBsb25nIGFyZyk7Ci0KICAgICAgICAgLy8gT2JqZWN0aXZl
QyByZXNlcnZlZCB3b3Jkcy4KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICBk
ZXNjcmlwdGlvbjsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgICBpZDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDhm
ODI0ZDkuLjUyODg3ZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcApAQCAtOTc1LDE3ICs5NzUsNiBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IG92ZXJsb2FkZWRNZXRob2Q0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cwogICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAotc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kNUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vdmVybG9hZGVkTWV0
aG9kNSIpOwotICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xk
ZXIoKSk7Ci0gICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMCB8fCAhYXJnc1swXS0+SXNPYmplY3Qo
KSkKLSAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoVFlQRV9NSVNNQVRDSF9FUlIpOwotICAgIFJl
ZlB0cjxUZXN0Q2FsbGJhY2s+IGNhbGxiYWNrID0gVjhUZXN0Q2FsbGJhY2s6OmNyZWF0ZShhcmdz
WzBdLCBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGltcC0+b3ZlcmxvYWRlZE1l
dGhvZChjYWxsYmFjayk7Ci0gICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZhbHVlPigpOwotfQot
CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2RDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmou
b3ZlcmxvYWRlZE1ldGhvZCIpOwpAQCAtOTk3LDI5ICs5ODYsMTAgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBvdmVybG9hZGVkTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKICAgICAgICAgcmV0dXJuIG92ZXJsb2FkZWRNZXRob2QzQ2FsbGJhY2soYXJncyk7
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMSkKICAgICAgICAgcmV0dXJuIG92ZXJsb2FkZWRN
ZXRob2Q0Q2FsbGJhY2soYXJncyk7Ci0gICAgaWYgKChhcmdzLkxlbmd0aCgpID09IDEgJiYgKGFy
Z3NbMF0tPklzTnVsbCgpIHx8IGFyZ3NbMF0tPklzT2JqZWN0KCkpKSkKLSAgICAgICAgcmV0dXJu
IG92ZXJsb2FkZWRNZXRob2Q1Q2FsbGJhY2soYXJncyk7CiAgICAgVjhQcm94eTo6dGhyb3dUeXBl
RXJyb3IoKTsKICAgICByZXR1cm4gbm90SGFuZGxlZEJ5SW50ZXJjZXB0b3IoKTsKIH0KIAotc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjbGFzc01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jbGFzc01ldGhv
ZCIpOwotICAgIFRlc3RPYmo6OmNsYXNzTWV0aG9kKCk7Ci0gICAgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OlZhbHVlPigpOwotfQotCi1zdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNsYXNzTWV0
aG9kV2l0aE9wdGlvbmFsQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKLXsKLSAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsIik7Ci0gICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPD0gMCkgewotICAgICAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5l
dyhUZXN0T2JqOjpjbGFzc01ldGhvZFdpdGhPcHRpb25hbCgpKTsKLSAgICB9Ci0gICAgRVhDRVBU
SU9OX0JMT0NLKGludCwgYXJnLCB0b0ludDMyKGFyZ3NbMF0pKTsKLSAgICByZXR1cm4gdjg6Oklu
dGVnZXI6Ok5ldyhUZXN0T2JqOjpjbGFzc01ldGhvZFdpdGhPcHRpb25hbChhcmcpKTsKLX0KLQog
fSAvLyBuYW1lc3BhY2UgVGVzdE9iakludGVybmFsCiAKIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0
cmlidXRlIFRlc3RPYmpBdHRyc1tdID0gewpAQCAtMTE5Myw4ICsxMTYzLDYgQEAgc3RhdGljIHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBDb25maWd1cmVWOFRlc3RPYmpUZW1w
bGF0ZSh2ODo6UGVyc2kKICAgICB2ODo6SGFuZGxlPHY4OjpGdW5jdGlvblRlbXBsYXRlPiBjdXN0
b21BcmdzQW5kRXhjZXB0aW9uQXJndltjdXN0b21BcmdzQW5kRXhjZXB0aW9uQXJnY10gPSB7IFY4
bG9nOjpHZXRSYXdUZW1wbGF0ZSgpIH07CiAgICAgdjg6OkhhbmRsZTx2ODo6U2lnbmF0dXJlPiBj
dXN0b21BcmdzQW5kRXhjZXB0aW9uU2lnbmF0dXJlID0gdjg6OlNpZ25hdHVyZTo6TmV3KGRlc2Ms
IGN1c3RvbUFyZ3NBbmRFeGNlcHRpb25BcmdjLCBjdXN0b21BcmdzQW5kRXhjZXB0aW9uQXJndik7
CiAgICAgcHJvdG8tPlNldCh2ODo6U3RyaW5nOjpOZXcoImN1c3RvbUFyZ3NBbmRFeGNlcHRpb24i
KSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50ZXJuYWw6OmN1c3RvbUFyZ3NB
bmRFeGNlcHRpb25DYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIGN1c3RvbUFyZ3NB
bmRFeGNlcHRpb25TaWduYXR1cmUpKTsKLSAgICBkZXNjLT5TZXQodjg6OlN0cmluZzo6TmV3KCJj
bGFzc01ldGhvZCIpLCB2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFRlc3RPYmpJbnRlcm5hbDo6
Y2xhc3NNZXRob2RDYWxsYmFjaywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KCksIHY4OjpMb2NhbDx2
ODo6U2lnbmF0dXJlPigpKSk7Ci0gICAgZGVzYy0+U2V0KHY4OjpTdHJpbmc6Ok5ldygiY2xhc3NN
ZXRob2RXaXRoT3B0aW9uYWwiKSwgdjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhUZXN0T2JqSW50
ZXJuYWw6OmNsYXNzTWV0aG9kV2l0aE9wdGlvbmFsQ2FsbGJhY2ssIHY4OjpIYW5kbGU8djg6OlZh
bHVlPigpLCB2ODo6TG9jYWw8djg6OlNpZ25hdHVyZT4oKSkpOwogICAgIGJhdGNoQ29uZmlndXJl
Q29uc3RhbnRzKGRlc2MsIHByb3RvLCBUZXN0T2JqQ29uc3RzLCBzaXplb2YoVGVzdE9iakNvbnN0
cykgLyBzaXplb2YoKlRlc3RPYmpDb25zdHMpKTsKIAogICAgIC8vIEN1c3RvbSB0b1N0cmluZyB0
ZW1wbGF0ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55IGIvV2ViQ29yZS9j
c3MvQ1NTR3JhbW1hci55CmluZGV4IGVjNTA3YmUuLjRjNGRlYzUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKQEAgLTMx
NCw3ICszMTQsNyBAQCB3ZWJraXRfa2V5ZnJhbWVfcnVsZToKIDsKIAogd2Via2l0X2RlY2xzOgot
ICAgIFdFQktJVF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9uX2xpc3QgJ30n
IHsKKyAgICBXRUJLSVRfREVDTFNfU1lNICd7JyBtYXliZV9zcGFjZV9iZWZvcmVfZGVjbGFyYXRp
b24gZGVjbGFyYXRpb25fbGlzdCAnfScgewogICAgICAgICAvKiBjYW4gYmUgZW1wdHkgKi8KICAg
ICB9CiA7CkBAIC05MDMsOCArOTAzLDE1IEBAIHVuYXJ5X29wZXJhdG9yOgogICB8ICcrJyB7ICQk
ID0gMTsgfQogICA7CiAKK21heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlvbjoKKyAgICBtYXli
ZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+
KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CisgICAgfQorICA7CisK
IHJ1bGVzZXQ6Ci0gICAgc2VsZWN0b3JfbGlzdCAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25f
bGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICBzZWxlY3Rvcl9saXN0ICd7JyBtYXliZV9zcGFjZV9i
ZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKICAgICAg
ICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKICAgICAg
ICAgJCQgPSBwLT5jcmVhdGVTdHlsZVJ1bGUoJDEpOwogICAgIH0KQEAgLTEzNTUsNiArMTM2Miw4
IEBAIGRlY2xhcmF0aW9uX2xpc3Q6CiAKIGRlY2xfbGlzdDoKICAgICBkZWNsYXJhdGlvbiAnOycg
bWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJz
ZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgpOwogICAgICAgICAk
JCA9ICQxOwogICAgIH0KICAgICB8IGRlY2xhcmF0aW9uIGludmFsaWRfYmxvY2tfbGlzdCBtYXli
ZV9zcGFjZSB7CkBAIC0xMzY0LDEyICsxMzczLDE2IEBAIGRlY2xfbGlzdDoKICAgICAgICAgJCQg
PSBmYWxzZTsKICAgICB9CiAgICAgfCBlcnJvciAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICBD
U1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBw
LT5tYXJrUHJvcGVydHlTdGFydCgpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8
IGVycm9yIGludmFsaWRfYmxvY2tfbGlzdCBlcnJvciAnOycgbWF5YmVfc3BhY2UgewogICAgICAg
ICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8IGRlY2xfbGlzdCBkZWNsYXJhdGlvbiAnOycgbWF5
YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIq
PihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgpOwogICAgICAgICAkJCA9
ICQxOwogICAgICAgICBpZiAoJDIpCiAgICAgICAgICAgICAkJCA9ICQyOwpAQCAtMTM4NiwxNSAr
MTM5OSwyMSBAQCBkZWNsYXJhdGlvbjoKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXhw
ciBwcmlvIHsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3Rh
dGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgYm9vbCBpc1Byb3BlcnR5UGFy
c2VkID0gZmFsc2U7CiAgICAgICAgIGlmICgkMSAmJiAkNCkgewogICAgICAgICAgICAgcC0+bV92
YWx1ZUxpc3QgPSBwLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDQpOwogICAgICAgICAgICAgaW50
IG9sZFBhcnNlZFByb3BlcnRpZXMgPSBwLT5tX251bVBhcnNlZFByb3BlcnRpZXM7CiAgICAgICAg
ICAgICAkJCA9IHAtPnBhcnNlVmFsdWUoJDEsICQ1KTsKLSAgICAgICAgICAgIGlmICghJCQpCisg
ICAgICAgICAgICBpZiAoISQkKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PGlu
dD4ocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzKSA9PSBvbGRQYXJzZWRQcm9wZXJ0aWVzKQorICAg
ICAgICAgICAgICAgICAgICBpc1Byb3BlcnR5UGFyc2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICBwLT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHAtPm1fbnVtUGFyc2VkUHJvcGVydGllcyAtIG9s
ZFBhcnNlZFByb3BlcnRpZXMpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
aXNQcm9wZXJ0eVBhcnNlZCA9IHRydWU7CiAgICAgICAgICAgICBkZWxldGUgcC0+bV92YWx1ZUxp
c3Q7CiAgICAgICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IDA7CiAgICAgICAgIH0KKyAgICAgICAg
cC0+bWFya1Byb3BlcnR5RW5kKCQ1LCBpc1Byb3BlcnR5UGFyc2VkKTsKICAgICB9CiAgICAgfAog
ICAgIHZhcmlhYmxlX3JlZmVyZW5jZSBtYXliZV9zcGFjZSB7CkBAIC0xNDE3LDExICsxNDM2LDE1
IEBAIGRlY2xhcmF0aW9uOgogICAgICAgICAvKiBUaGUgZGVmYXVsdCBtb3ZhYmxlIHR5cGUgdGVt
cGxhdGUgaGFzIGxldHRlci1zcGFjaW5nOiAubm9uZTsgIEhhbmRsZSB0aGlzIGJ5IGxvb2tpbmcg
Zm9yCiAgICAgICAgIGVycm9yIHRva2VucyBhdCB0aGUgc3RhcnQgb2YgYW4gZXhwciwgcmVjb3Zl
ciB0aGUgZXhwciBhbmQgdGhlbiB0cmVhdCBhcyBhbiBlcnJvciwgY2xlYW5pbmcKICAgICAgICAg
dXAgYW5kIGRlbGV0aW5nIHRoZSBzaGlmdGVkIGV4cHIuICAqLworICAgICAgICBDU1NQYXJzZXIq
IHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJv
cGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAg
fAogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8gZXJyb3IgewogICAgICAg
ICAvKiBXaGVuIHdlIGVuY291bnRlciBzb21ldGhpbmcgbGlrZSBwIHtjb2xvcjogcmVkICFpbXBv
cnRhbnQgZmFpbDt9IHdlIHNob3VsZCBkcm9wIHRoZSBkZWNsYXJhdGlvbiAqLworICAgICAgICBD
U1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBw
LT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgJCQgPSBmYWxzZTsKICAg
ICB9CiAgICAgfApAQCAtMTQzMiwxMSArMTQ1NSwxNSBAQCBkZWNsYXJhdGlvbjoKICAgICB8CiAg
ICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIHsKICAgICAgICAgLyogZGl2IHsgZm9udC1mYW1p
bHk6IH0gSnVzdCByZWR1Y2UgYXdheSB0aGlzIHByb3BlcnR5IHdpdGggbm8gdmFsdWUuICovCisg
ICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7Cisg
ICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZh
bHNlOwogICAgIH0KICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIGVycm9yIHsK
ICAgICAgICAgLyogaWYgd2UgY29tZSBhY3Jvc3MgcnVsZXMgd2l0aCBpbnZhbGlkIHZhbHVlcyBs
aWtlIHRoaXMgY2FzZTogcCB7IHdlaWdodDogKjsgfSwganVzdCBkaXNjYXJkIHRoZSBydWxlICov
CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7
CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9
IGZhbHNlOwogICAgIH0KICAgICB8CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5oIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaAppbmRleCBmNzc1OWY0Li40MDZmZDkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uLmgKQEAgLTgzLDYgKzgzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRO
b2RlKE5vZGUqIG5vZGUpIHsgbV9ub2RlID0gbm9kZTsgfQogCisgICAgTm9kZSogbm9kZSgpIHsg
cmV0dXJuIG1fbm9kZTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NU
ZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2ODcyMzVmLi43NWFhMzBmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKQEAgLTE0Nyw3ICsxNDcsMTAgQEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoYm9vbCBzdHJpY3RQ
YXJzaW5nKQogICAgICwgbV9kZWZhdWx0TmFtZXNwYWNlKHN0YXJBdG9tKQogICAgICwgbV9ydWxl
Qm9keVN0YXJ0T2Zmc2V0KDApCiAgICAgLCBtX3J1bGVCb2R5RW5kT2Zmc2V0KDApCi0gICAgLCBt
X3J1bGVSYW5nZXMoMCkKKyAgICAsIG1fcHJvcGVydHlTdGFydE9mZnNldChVSU5UX01BWCkKKyAg
ICAsIG1fcHJvcGVydHlFbmRPZmZzZXQoVUlOVF9NQVgpCisgICAgLCBtX3J1bGVSYW5nZU1hcCgw
KQorICAgICwgbV9jdXJyZW50U3R5bGVEYXRhKDApCiAgICAgLCBtX2RhdGEoMCkKICAgICAsIHl5
X3N0YXJ0KDEpCiAgICAgLCBtX2xpbmVOdW1iZXIoMCkKQEAgLTE1OSw2ICsxNjIsNyBAQCBDU1NQ
YXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAjaWYgWVlERUJVRyA+IDAKICAg
ICBjc3N5eWRlYnVnID0gMTsKICNlbmRpZgorICAgIENTU1Byb3BlcnR5RGF0dW06OmluaXQoKTsK
IH0KIAogQ1NTUGFyc2VyOjp+Q1NTUGFyc2VyKCkKQEAgLTIyMywxNiArMjI3LDE5IEBAIHZvaWQg
Q1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IFN0cmluZyYg
c3RyaW5nLCBjb25zdCBjaGFyCiAgICAgcmVzZXRSdWxlQm9keU1hcmtzKCk7CiB9CiAKLXZvaWQg
Q1NTUGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNoZWV0LCBjb25zdCBTdHJpbmcm
IHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxlUmFuZ2VzKiBydWxlUmFuZ2VN
YXApCit2b2lkIENTU1BhcnNlcjo6cGFyc2VTaGVldChDU1NTdHlsZVNoZWV0KiBzaGVldCwgY29u
c3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIsIFN0eWxlUnVsZVJhbmdlTWFw
KiBydWxlUmFuZ2VNYXApCiB7CiAgICAgbV9zdHlsZVNoZWV0ID0gc2hlZXQ7CiAgICAgbV9kZWZh
dWx0TmFtZXNwYWNlID0gc3RhckF0b207IC8vIFJlc2V0IHRoZSBkZWZhdWx0IG5hbWVzcGFjZS4K
LSAgICBtX3J1bGVSYW5nZXMgPSBydWxlUmFuZ2VNYXA7CisgICAgbV9ydWxlUmFuZ2VNYXAgPSBy
dWxlUmFuZ2VNYXA7CisgICAgaWYgKHJ1bGVSYW5nZU1hcCkKKyAgICAgICAgbV9jdXJyZW50U3R5
bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVhdGUoKTsKIAogICAgIG1fbGluZU51bWJl
ciA9IHN0YXJ0TGluZU51bWJlcjsKICAgICBzZXR1cFBhcnNlcigiIiwgc3RyaW5nLCAiIik7CiAg
ICAgY3NzeXlwYXJzZSh0aGlzKTsKLSAgICBtX3J1bGVSYW5nZXMgPSAwOworICAgIG1fcnVsZVJh
bmdlTWFwID0gMDsKKyAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAwOwogICAgIG1fcnVsZSA9IDA7
CiB9CiAKQEAgLTMyOSwxMCArMzM2LDE0IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNlbGVjdG9y
KGNvbnN0IFN0cmluZyYgc3RyaW5nLCBEb2N1bWVudCogZG9jLCBDU1NTZWxlY3RvckxpCiAgICAg
bV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNlbGVjdG9yID0gMDsKIH0KIAotYm9vbCBDU1NQYXJzZXI6
OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9u
LCBjb25zdCBTdHJpbmcmIHN0cmluZykKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9u
KENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nJiBz
dHJpbmcsIENTU1N0eWxlU291cmNlRGF0YSogc3R5bGVTb3VyY2VEYXRhKQogeworICAgIC8vIExl
bmd0aCBvZiB0aGUgIkAtd2Via2l0LWRlY2xzeyIgcHJlZml4CisgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHByZWZpeExlbmd0aCA9IDE1OworCiAgICAgQVNTRVJUKCFkZWNsYXJhdGlvbi0+c3R5
bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCktPmlzQ1NTU3R5bGVTaGVldCgp
KTsKICAgICBtX3N0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oZGVjbGFy
YXRpb24tPnN0eWxlc2hlZXQoKSk7CisgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gc3R5bGVTb3Vy
Y2VEYXRhOwogCiAgICAgc2V0dXBQYXJzZXIoIkAtd2Via2l0LWRlY2xzeyIsIHN0cmluZywgIn0g
Iik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKQEAgLTM0Nyw2ICszNTgsMTcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRlY2xh
cmF0aW9uLCBjb25zdAogICAgICAgICBjbGVhclByb3BlcnRpZXMoKTsKICAgICB9CiAKKyAgICBp
ZiAobV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YS0+c3R5
bGVCb2R5UmFuZ2UuZmlyc3QgPSAwOworICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnN0eWxl
Qm9keVJhbmdlLnNlY29uZCA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChWZWN0b3I8
c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdlPiA+OjppdGVyYXRvciBpdCA9
IG1fY3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmJlZ2luKCk7IGl0ICE9IG1fY3VycmVu
dFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmVuZCgpOyArK2l0KSB7CisgICAgICAgICAgICAoKml0
KS5zZWNvbmQuZmlyc3QgLT0gcHJlZml4TGVuZ3RoOworICAgICAgICAgICAgKCppdCkuc2Vjb25k
LnNlY29uZCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW1f
cnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAwOwogICAgIHJldHVy
biBvazsKIH0KIApAQCAtNTM4NCw4ICs1NDA2LDEyIEBAIENTU1J1bGUqIENTU1BhcnNlcjo6Y3Jl
YXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3RvcnMpCiAgICAgICAgIHJ1
bGUtPnNldERlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUocnVs
ZS5nZXQoKSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCBtX251bVBhcnNlZFByb3BlcnRpZXMpKTsKICAg
ICAgICAgcmVzdWx0ID0gcnVsZS5nZXQoKTsKICAgICAgICAgbV9wYXJzZWRTdHlsZU9iamVjdHMu
YXBwZW5kKHJ1bGUucmVsZWFzZSgpKTsKLSAgICAgICAgaWYgKG1fcnVsZVJhbmdlcykKLSAgICAg
ICAgICAgIG1fcnVsZVJhbmdlcy0+c2V0KHJlc3VsdCwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNp
Z25lZD4obV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5kT2Zmc2V0KSk7CisgICAg
ICAgIGlmIChtX3J1bGVSYW5nZU1hcCkgeworICAgICAgICAgICAgQVNTRVJUKG1fY3VycmVudFN0
eWxlRGF0YSk7CisgICAgICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnN0eWxlQm9keVJhbmdl
ID0gU291cmNlUmFuZ2UobV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5kT2Zmc2V0
KTsKKyAgICAgICAgICAgIG1fcnVsZVJhbmdlTWFwLT5zZXQocmVzdWx0LCBtX2N1cnJlbnRTdHls
ZURhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IENTU1N0
eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIH0KICAgICB9CiAgICAgcmVzZXRSdWxl
Qm9keU1hcmtzKCk7CiAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CkBAIC01NjM4LDcgKzU2NjQsOSBA
QCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlTGFzdFNlbGVjdG9yTGluZUFuZFBvc2l0aW9uKCkKIHZv
aWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgdW5zaWduZWQgb2Zmc2V0
ID0geXl0ZXh0IC0gbV9kYXRhOwotICAgIGlmICghbV9ydWxlQm9keVN0YXJ0T2Zmc2V0IHx8IG9m
ZnNldCA8IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKKyAgICBpZiAoKnl5dGV4dCA9PSAneycpCisg
ICAgICAgICsrb2Zmc2V0OyAvLyBza2lwIHRoZSBydWxlIGJvZHkgb3BlbmluZyBicmFjZQorICAg
IGlmIChvZmZzZXQgPiBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpCiAgICAgICAgIG1fcnVsZUJvZHlT
dGFydE9mZnNldCA9IG9mZnNldDsKIH0KIApAQCAtNTY0OSw2ICs1Njc3LDE0MyBAQCB2b2lkIENT
U1BhcnNlcjo6bWFya1J1bGVCb2R5RW5kKCkKICAgICAgICAgbV9ydWxlQm9keUVuZE9mZnNldCA9
IG9mZnNldDsKIH0KIAordm9pZCBDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KCkKK3sKKyAg
ICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBtX2RhdGE7CisgICAgbV9wcm9wZXJ0eVN0YXJ0
T2Zmc2V0ID0gb2Zmc2V0OworfQorCisvLyBzdGF0aWMKK3Vuc2lnbmVkIENTU1BhcnNlcjo6Zmlu
ZEltcG9ydGFudEluVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogaW1wb3J0YW50U3RyaW5nID0gImltcG9ydGFudCI7CisgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIGltcG9ydGFudExlbmd0aCA9IDk7CisgICAgZW51bSBTdGF0ZSB7CisgICAgICAg
IElOSVRJQUxfU1RBVEUsCisgICAgICAgIFNUUklOR19TVEFURSwKKyAgICAgICAgQ09NTUVOVF9T
VEFURSwKKyAgICAgICAgQkFOR19TVEFURQorICAgIH07CisKKyAgICB1bnNpZ25lZCB2YWx1ZUxl
bmd0aCA9IHZhbHVlLmxlbmd0aCgpOworICAgIGlmICh2YWx1ZUxlbmd0aCA8IGltcG9ydGFudExl
bmd0aCArIDEpCisgICAgICAgIHJldHVybiBVSU5UX01BWDsKKyAgICB1bnNpZ25lZCBtYXhUb2tl
blN0YXJ0SW5kZXggPSB2YWx1ZUxlbmd0aCAtIGltcG9ydGFudExlbmd0aDsKKyAgICB1bnNpZ25l
ZCBjdXJyZW50SW5kZXggPSAwOworICAgIHVuc2lnbmVkIGJhbmdJbmRleCA9IFVJTlRfTUFYOwor
ICAgIFN0YXRlIHN0YXRlID0gSU5JVElBTF9TVEFURTsKKyAgICBVQ2hhciBzdHJpbmdUZXJtaW5h
dG9yID0gc3RhdGljX2Nhc3Q8VUNoYXI+KDApOworICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
ID0gdmFsdWUuY2hhcmFjdGVycygpOworICAgIHdoaWxlIChjdXJyZW50SW5kZXggPD0gbWF4VG9r
ZW5TdGFydEluZGV4KSB7CisgICAgICAgIFVDaGFyIGNoID0gY2hhcmFjdGVyc1tjdXJyZW50SW5k
ZXhdOworICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAgIGNhc2UgSU5JVElBTF9TVEFU
RToKKyAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAgIGNhc2UgJy8nOgorICAg
ICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCB2YWx1ZUxlbmd0aCAtIDEgJiYgY2hhcmFj
dGVyc1tjdXJyZW50SW5kZXggKyAxXSA9PSAnKicpIHsKKyAgICAgICAgICAgICAgICAgICAgc3Rh
dGUgPSBDT01NRU5UX1NUQVRFOworICAgICAgICAgICAgICAgICAgICArK2N1cnJlbnRJbmRleDsg
Ly8gc2tpcCB0aGUgZm9sbG93aW5nICcqJworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyEnOgorICAgICAgICAgICAgICAgIHN0YXRl
ID0gQkFOR19TVEFURTsKKyAgICAgICAgICAgICAgICBiYW5nSW5kZXggPSBjdXJyZW50SW5kZXg7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICciJzoKKyAgICAgICAg
ICAgIGNhc2UgJ1wnJzoKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUUklOR19TVEFURTsKKyAg
ICAgICAgICAgICAgICBzdHJpbmdUZXJtaW5hdG9yID0gY2g7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1RSSU5HX1NUQVRFOgor
ICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgY2FzZSAnXFwnOgorICAgICAg
ICAgICAgICAgICsrY3VycmVudEluZGV4OyAvLyBza2lwIHRoZSBlc2NhcGVkIGNoYXJhY3Rlcgor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnIic6CisgICAgICAgICAg
ICBjYXNlICdcJyc6CisgICAgICAgICAgICAgICAgaWYgKGNoID09IHN0cmluZ1Rlcm1pbmF0b3Ip
CisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElBTF9TVEFURTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIENPTU1FTlRfU1RBVEU6CisgICAgICAgICAgICBpZiAoY2ggPT0gJyonICYmIGN1cnJlbnRJ
bmRleCA8IHZhbHVlTGVuZ3RoIC0gMSAmJiBjaGFyYWN0ZXJzW2N1cnJlbnRJbmRleCArIDFdID09
ICcvJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElBTF9TVEFURTsKKyAgICAgICAg
ICAgICAgICArK2N1cnJlbnRJbmRleDsgLy8gc2tpcCB0aGUgZm9sbG93aW5nICcvJworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQkFOR19TVEFURToKKyAg
ICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAgIGNhc2UgJyAnOgorICAgICAgICAg
ICAgY2FzZSAnXHQnOgorICAgICAgICAgICAgY2FzZSAnXHInOgorICAgICAgICAgICAgY2FzZSAn
XG4nOgorICAgICAgICAgICAgY2FzZSAnXGYnOgorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGltcG9ydGFudElu
ZGV4ID0gMDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGVja0luZGV4ID0gY3VycmVudElu
ZGV4OworICAgICAgICAgICAgICAgIHdoaWxlIChpbXBvcnRhbnRJbmRleCA8IGltcG9ydGFudExl
bmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcmFjdGVyc1tjaGVja0luZGV4Kytd
ICE9IGltcG9ydGFudFN0cmluZ1tpbXBvcnRhbnRJbmRleCsrXSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGUgPSBJTklUSUFMX1NUQVRFOworICAgICAgICAgICAgICAgICAgICAgICAg
LS1jdXJyZW50SW5kZXg7IC8vIHJlLWNoZWNrIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBJTklU
SUFMIHN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFuZ0luZGV4OworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
QVNTRVJUKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICArK2N1cnJlbnRJbmRleDsKKyAgICB9
CisgICAgcmV0dXJuIFVJTlRfTUFYOworfQorCit2b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5
RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5UGFyc2VkKQoreworICAg
IHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBpZiAoKnl5dGV4dCA9PSAn
OycpIC8vIGluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3BlcnR5IHRleHQKKyAgICAgICAg
KytvZmZzZXQ7CisgICAgbV9wcm9wZXJ0eUVuZE9mZnNldCA9IG9mZnNldDsKKyAgICBpZiAobV9w
cm9wZXJ0eVN0YXJ0T2Zmc2V0ICE9IFVJTlRfTUFYICYmIG1fY3VycmVudFN0eWxlRGF0YSkgewor
ICAgICAgICAvLyBUaGlzIHN0dWZmIGlzIG9ubHkgZXhlY3V0ZWQgd2hlbiB0aGUgc3R5bGUgZGF0
YSByZXRyaWV2YWwgaXMgcmVxdWVzdGVkIGJ5IGNsaWVudC4KKyAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc3RhcnQgPSBtX3Byb3BlcnR5U3RhcnRPZmZzZXQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IGVuZCA9IG1fcHJvcGVydHlFbmRPZmZzZXQ7CisgICAgICAgIEFTU0VSVChzdGFydCA8IGVuZCk7
CisgICAgICAgIFN0cmluZyBwcm9wZXJ0eVN0cmluZyA9IFN0cmluZyhtX2RhdGEgKyBzdGFydCwg
ZW5kIC0gc3RhcnQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICBpZiAocHJvcGVydHlTdHJp
bmcuZW5kc1dpdGgoIjsiLCB0cnVlKSkKKyAgICAgICAgICAgIHByb3BlcnR5U3RyaW5nID0gcHJv
cGVydHlTdHJpbmcubGVmdChwcm9wZXJ0eVN0cmluZy5sZW5ndGgoKSAtIDEpOworICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBwcm9wZXJ0eUNvbXBvbmVudHM7CisgICAgICAgIHNpemVfdCBjb2xvbklu
ZGV4ID0gcHJvcGVydHlTdHJpbmcuZmluZCgiOiIpOworICAgICAgICBBU1NFUlQoY29sb25JbmRl
eCAhPSBub3RGb3VuZCk7CisKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBwcm9wZXJ0eVN0cmluZy5s
ZWZ0KGNvbG9uSW5kZXgpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICBTdHJpbmcgdmFsdWUg
PSBwcm9wZXJ0eVN0cmluZy5zdWJzdHJpbmcoY29sb25JbmRleCArIDEsIHByb3BlcnR5U3RyaW5n
Lmxlbmd0aCgpKS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgYm9vbCBpc0ltcG9ydGFudCA9
IGlzSW1wb3J0YW50Rm91bmQ7CisgICAgICAgIGlmIChpc0ltcG9ydGFudCB8fCAhaXNQcm9wZXJ0
eVBhcnNlZCkgeworICAgICAgICAgICAgLy8gTmVlZCB0byBzdHJpcCAiIXt3fWltcG9ydGFudCIg
KHdpdGggdGhlIGZvbGxvd2luZyB0ZXh0KSBpZiB0aGVyZSdzIGEgY2hhbmNlIHRoYXQgaXQgaXMg
cHJlc2VudCBpbiB0aGUgdmFsdWUuCisgICAgICAgICAgICB1bnNpZ25lZCBpbXBvcnRhbnRPZmZz
ZXQgPSBmaW5kSW1wb3J0YW50SW5WYWx1ZSh2YWx1ZSk7CisgICAgICAgICAgICBBU1NFUlQgKCFp
c0ltcG9ydGFudEZvdW5kIHx8IGltcG9ydGFudE9mZnNldCAhPSBVSU5UX01BWCk7CisgICAgICAg
ICAgICBpZiAoaW1wb3J0YW50T2Zmc2V0ICE9IFVJTlRfTUFYKSB7CisgICAgICAgICAgICAgICAg
aXNJbXBvcnRhbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUubGVmdChp
bXBvcnRhbnRPZmZzZXQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSByYW5nZSBpcyByZWxhdGl2ZSB0byB0aGUgZGVj
bGFyYXRpb24gc3RhcnQgb2Zmc2V0LgorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnByb3Bl
cnR5RGF0YS5hcHBlbmQoCisgICAgICAgICAgICBzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwg
U291cmNlUmFuZ2U+KENTU1Byb3BlcnR5RGF0dW0obmFtZSwgdmFsdWUsIGlzSW1wb3J0YW50LCBp
c1Byb3BlcnR5UGFyc2VkKSwgU291cmNlUmFuZ2UobV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0IC0gbV9y
dWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3Byb3BlcnR5RW5kT2Zmc2V0IC0gbV9ydWxlQm9keVN0YXJ0
T2Zmc2V0KSkpOworICAgIH0KKyAgICByZXNldFByb3BlcnR5TWFya3MoKTsKK30KKwogc3RhdGlj
IGludCBjc3NQcm9wZXJ0eUlEKGNvbnN0IFVDaGFyKiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGxl
bmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggNjIxMWU2Mi4uMzU3YTljZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVk
ZSAiQ1NTUGFyc2VyVmFsdWVzLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgogI2lu
Y2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTUsMTggKzU2LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIENTU1BhcnNlciB7CiAgICAgcHVibGljOgotICAgICAgICB0eXBlZGVm
IEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gPiBT
dHlsZVJ1bGVSYW5nZXM7Ci0KICAgICAgICAgQ1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZyA9
IHRydWUpOwogICAgICAgICB+Q1NTUGFyc2VyKCk7CiAKLSAgICAgICAgdm9pZCBwYXJzZVNoZWV0
KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyID0gMCwg
U3R5bGVSdWxlUmFuZ2VzKiBydWxlUmFuZ2VNYXAgPSAwKTsKKyAgICAgICAgdm9pZCBwYXJzZVNo
ZWV0KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyID0g
MCwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCA9IDApOwogICAgICAgICBQYXNzUmVm
UHRyPENTU1J1bGU+IHBhcnNlUnVsZShDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CiAg
ICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VLZXlmcmFtZVJ1bGUoQ1NTU3R5bGVTaGVl
dCosIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBib29sIHBhcnNlVmFsdWUoQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24qLCBpbnQgcHJvcElkLCBjb25zdCBTdHJpbmcmLCBib29sIGltcG9ydGFu
dCk7CiAgICAgICAgIHN0YXRpYyBib29sIHBhcnNlQ29sb3IoUkdCQTMyJiBjb2xvciwgY29uc3Qg
U3RyaW5nJiwgYm9vbCBzdHJpY3QgPSBmYWxzZSk7CiAgICAgICAgIGJvb2wgcGFyc2VDb2xvcihD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYpOwotICAgICAgICBib29s
IHBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJp
bmcmKTsKKyAgICAgICAgYm9vbCBwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiwgY29uc3QgU3RyaW5nJiwgQ1NTU3R5bGVTb3VyY2VEYXRhKiBzdHlsZVNvdXJjZURh
dGEgPSAwKTsKICAgICAgICAgYm9vbCBwYXJzZU1lZGlhUXVlcnkoTWVkaWFMaXN0KiwgY29uc3Qg
U3RyaW5nJik7CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CkBAIC0yNDQs
MTAgKzI0MywxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIHRva2VuaXplciBt
ZXRob2RzIGFuZCBkYXRhCiAgICAgICAgIHVuc2lnbmVkIG1fcnVsZUJvZHlTdGFydE9mZnNldDsK
ICAgICAgICAgdW5zaWduZWQgbV9ydWxlQm9keUVuZE9mZnNldDsKLSAgICAgICAgU3R5bGVSdWxl
UmFuZ2VzKiBtX3J1bGVSYW5nZXM7CisgICAgICAgIHVuc2lnbmVkIG1fcHJvcGVydHlTdGFydE9m
ZnNldDsKKyAgICAgICAgdW5zaWduZWQgbV9wcm9wZXJ0eUVuZE9mZnNldDsKKyAgICAgICAgU3R5
bGVSdWxlUmFuZ2VNYXAqIG1fcnVsZVJhbmdlTWFwOworICAgICAgICBSZWZQdHI8Q1NTU3R5bGVT
b3VyY2VEYXRhPiBtX2N1cnJlbnRTdHlsZURhdGE7CiAgICAgICAgIHZvaWQgbWFya1J1bGVCb2R5
U3RhcnQoKTsKICAgICAgICAgdm9pZCBtYXJrUnVsZUJvZHlFbmQoKTsKKyAgICAgICAgdm9pZCBt
YXJrUHJvcGVydHlTdGFydCgpOworICAgICAgICB2b2lkIG1hcmtQcm9wZXJ0eUVuZChib29sIGlz
SW1wb3J0YW50Rm91bmQsIGJvb2wgaXNQcm9wZXJ0eVBhcnNlZCk7CiAgICAgICAgIHZvaWQgcmVz
ZXRSdWxlQm9keU1hcmtzKCkgeyBtX3J1bGVCb2R5U3RhcnRPZmZzZXQgPSBtX3J1bGVCb2R5RW5k
T2Zmc2V0ID0gMDsgfQorICAgICAgICB2b2lkIHJlc2V0UHJvcGVydHlNYXJrcygpIHsgbV9wcm9w
ZXJ0eVN0YXJ0T2Zmc2V0ID0gbV9wcm9wZXJ0eUVuZE9mZnNldCA9IFVJTlRfTUFYOyB9CisgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBmaW5kSW1wb3J0YW50SW5WYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlKTsKICAgICAgICAgaW50IGxleCh2b2lkKiB5eWx2YWwpOwogICAgICAgICBpbnQgdG9rZW4o
KSB7IHJldHVybiB5eVRvazsgfQogICAgICAgICBVQ2hhciogdGV4dChpbnQqIGxlbmd0aCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9XZWJDb3JlL2Nz
cy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggNWM4M2U3Yy4uYjQ0NzhiNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMzA1LDM0ICszMDUsODIgQEAgdm9pZCBDU1NQcmltaXRp
dmVWYWx1ZTo6Y2xlYW51cCgpCiAKIGludCBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZUxlbmd0
aEludChSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUpCiB7Ci0gICAg
cmV0dXJuIHJvdW5kRm9ySW1wcmVjaXNlQ29udmVyc2lvbjxpbnQsIElOVF9NQVgsIElOVF9NSU4+
KGNvbXB1dGVMZW5ndGhEb3VibGUoc3R5bGUsIHJvb3RTdHlsZSkpOworICAgIGRvdWJsZSByZXN1
bHQgPSBjb21wdXRlTGVuZ3RoRG91YmxlKHN0eWxlLCByb290U3R5bGUpOworCisgICAgLy8gVGhp
cyBjb252ZXJzaW9uIGlzIGltcHJlY2lzZSwgb2Z0ZW4gcmVzdWx0aW5nIGluIHZhbHVlcyBvZiwg
ZS5nLiwgNDQuOTk5OTguICBXZQorICAgIC8vIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJvdW5kIGlm
IHdlJ3JlIHJlYWxseSBjbG9zZSB0byB0aGUgbmV4dCBpbnRlZ2VyIHZhbHVlLgorICAgIHJlc3Vs
dCArPSByZXN1bHQgPCAwID8gLTAuMDEgOiArMC4wMTsKKworICAgIGlmIChyZXN1bHQgPiBJTlRf
TUFYIHx8IHJlc3VsdCA8IElOVF9NSU4pCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCk7CiB9CiAKIGludCBDU1NQcmltaXRpdmVWYWx1ZTo6Y29t
cHV0ZUxlbmd0aEludChSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUs
IGRvdWJsZSBtdWx0aXBsaWVyKQogewotICAgIHJldHVybiByb3VuZEZvckltcHJlY2lzZUNvbnZl
cnNpb248aW50LCBJTlRfTUFYLCBJTlRfTUlOPihjb21wdXRlTGVuZ3RoRG91YmxlKHN0eWxlLCBy
b290U3R5bGUsIG11bHRpcGxpZXIpKTsKKyAgICBkb3VibGUgcmVzdWx0ID0gY29tcHV0ZUxlbmd0
aERvdWJsZShzdHlsZSwgcm9vdFN0eWxlLCBtdWx0aXBsaWVyKTsKKworICAgIC8vIFRoaXMgY29u
dmVyc2lvbiBpcyBpbXByZWNpc2UsIG9mdGVuIHJlc3VsdGluZyBpbiB2YWx1ZXMgb2YsIGUuZy4s
IDQ0Ljk5OTk4LiAgV2UKKyAgICAvLyBuZWVkIHRvIGdvIGFoZWFkIGFuZCByb3VuZCBpZiB3ZSdy
ZSByZWFsbHkgY2xvc2UgdG8gdGhlIG5leHQgaW50ZWdlciB2YWx1ZS4KKyAgICByZXN1bHQgKz0g
cmVzdWx0IDwgMCA/IC0wLjAxIDogKzAuMDE7CisKKyAgICBpZiAocmVzdWx0ID4gSU5UX01BWCB8
fCByZXN1bHQgPCBJTlRfTUlOKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50PihyZXN1bHQpOwogfQogCi0vLyBMZW5ndGhzIGV4cGVjdCBhbiBpbnQgdGhhdCBp
cyBvbmx5IDI4LWJpdHMsIHNvIHdlIGhhdmUgdG8gY2hlY2sgZm9yIGEKLS8vIGRpZmZlcmVudCBv
dmVyZmxvdy4KKy8vIExlbmd0aHMgZXhwZWN0IGFuIGludCB0aGF0IGlzIG9ubHkgMjgtYml0cywg
c28gd2UgaGF2ZSB0byBjaGVjayBmb3IgYSBkaWZmZXJlbnQgb3ZlcmZsb3cuCiBpbnQgQ1NTUHJp
bWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhJbnRGb3JMZW5ndGgoUmVuZGVyU3R5bGUqIHN0eWxl
LCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlKQogewotICAgIHJldHVybiByb3VuZEZvckltcHJlY2lz
ZUNvbnZlcnNpb248aW50LCBpbnRNYXhGb3JMZW5ndGgsIGludE1pbkZvckxlbmd0aD4oY29tcHV0
ZUxlbmd0aERvdWJsZShzdHlsZSwgcm9vdFN0eWxlKSk7CisgICAgZG91YmxlIHJlc3VsdCA9IGNv
bXB1dGVMZW5ndGhEb3VibGUoc3R5bGUsIHJvb3RTdHlsZSk7CisKKyAgICAvLyBUaGlzIGNvbnZl
cnNpb24gaXMgaW1wcmVjaXNlLCBvZnRlbiByZXN1bHRpbmcgaW4gdmFsdWVzIG9mLCBlLmcuLCA0
NC45OTk5OC4gIFdlCisgICAgLy8gbmVlZCB0byBnbyBhaGVhZCBhbmQgcm91bmQgaWYgd2UncmUg
cmVhbGx5IGNsb3NlIHRvIHRoZSBuZXh0IGludGVnZXIgdmFsdWUuCisgICAgcmVzdWx0ICs9IHJl
c3VsdCA8IDAgPyAtMC4wMSA6ICswLjAxOworCisgICAgaWYgKHJlc3VsdCA+IGludE1heEZvckxl
bmd0aCB8fCByZXN1bHQgPCBpbnRNaW5Gb3JMZW5ndGgpCisgICAgICAgIHJldHVybiAwOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdCk7CiB9CiAKKy8vIExlbmd0aHMgZXhwZWN0
IGFuIGludCB0aGF0IGlzIG9ubHkgMjgtYml0cywgc28gd2UgaGF2ZSB0byBjaGVjayBmb3IgYSBk
aWZmZXJlbnQgb3ZlcmZsb3cuCiBpbnQgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVMZW5ndGhJ
bnRGb3JMZW5ndGgoUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBk
b3VibGUgbXVsdGlwbGllcikKIHsKLSAgICByZXR1cm4gcm91bmRGb3JJbXByZWNpc2VDb252ZXJz
aW9uPGludCwgaW50TWF4Rm9yTGVuZ3RoLCBpbnRNaW5Gb3JMZW5ndGg+KGNvbXB1dGVMZW5ndGhE
b3VibGUoc3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllcikpOworICAgIGRvdWJsZSByZXN1bHQg
PSBjb21wdXRlTGVuZ3RoRG91YmxlKHN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIpOworCisg
ICAgLy8gVGhpcyBjb252ZXJzaW9uIGlzIGltcHJlY2lzZSwgb2Z0ZW4gcmVzdWx0aW5nIGluIHZh
bHVlcyBvZiwgZS5nLiwgNDQuOTk5OTguICBXZQorICAgIC8vIG5lZWQgdG8gZ28gYWhlYWQgYW5k
IHJvdW5kIGlmIHdlJ3JlIHJlYWxseSBjbG9zZSB0byB0aGUgbmV4dCBpbnRlZ2VyIHZhbHVlLgor
ICAgIHJlc3VsdCArPSByZXN1bHQgPCAwID8gLTAuMDEgOiArMC4wMTsKKworICAgIGlmIChyZXN1
bHQgPiBpbnRNYXhGb3JMZW5ndGggfHwgcmVzdWx0IDwgaW50TWluRm9yTGVuZ3RoKQorICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50PihyZXN1bHQpOwogfQogCiBz
aG9ydCBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZUxlbmd0aFNob3J0KFJlbmRlclN0eWxlKiBz
dHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSkKIHsKLSAgICByZXR1cm4gcm91bmRGb3JJbXBy
ZWNpc2VDb252ZXJzaW9uPHNob3J0LCBTSFJUX01BWCwgU0hSVF9NSU4+KGNvbXB1dGVMZW5ndGhE
b3VibGUoc3R5bGUsIHJvb3RTdHlsZSkpOworICAgIGRvdWJsZSByZXN1bHQgPSBjb21wdXRlTGVu
Z3RoRG91YmxlKHN0eWxlLCByb290U3R5bGUpOworCisgICAgLy8gVGhpcyBjb252ZXJzaW9uIGlz
IGltcHJlY2lzZSwgb2Z0ZW4gcmVzdWx0aW5nIGluIHZhbHVlcyBvZiwgZS5nLiwgNDQuOTk5OTgu
ICBXZQorICAgIC8vIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJvdW5kIGlmIHdlJ3JlIHJlYWxseSBj
bG9zZSB0byB0aGUgbmV4dCBpbnRlZ2VyIHZhbHVlLgorICAgIHJlc3VsdCArPSByZXN1bHQgPCAw
ID8gLTAuMDEgOiArMC4wMTsKKworICAgIGlmIChyZXN1bHQgPiBTSFJUX01BWCB8fCByZXN1bHQg
PCBTSFJUX01JTikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHNo
b3J0PihyZXN1bHQpOwogfQogCiBzaG9ydCBDU1NQcmltaXRpdmVWYWx1ZTo6Y29tcHV0ZUxlbmd0
aFNob3J0KFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91Ymxl
IG11bHRpcGxpZXIpCiB7Ci0gICAgcmV0dXJuIHJvdW5kRm9ySW1wcmVjaXNlQ29udmVyc2lvbjxz
aG9ydCwgU0hSVF9NQVgsIFNIUlRfTUlOPihjb21wdXRlTGVuZ3RoRG91YmxlKHN0eWxlLCByb290
U3R5bGUsIG11bHRpcGxpZXIpKTsKKyAgICBkb3VibGUgcmVzdWx0ID0gY29tcHV0ZUxlbmd0aERv
dWJsZShzdHlsZSwgcm9vdFN0eWxlLCBtdWx0aXBsaWVyKTsKKworICAgIC8vIFRoaXMgY29udmVy
c2lvbiBpcyBpbXByZWNpc2UsIG9mdGVuIHJlc3VsdGluZyBpbiB2YWx1ZXMgb2YsIGUuZy4sIDQ0
Ljk5OTk4LiAgV2UKKyAgICAvLyBuZWVkIHRvIGdvIGFoZWFkIGFuZCByb3VuZCBpZiB3ZSdyZSBy
ZWFsbHkgY2xvc2UgdG8gdGhlIG5leHQgaW50ZWdlciB2YWx1ZS4KKyAgICByZXN1bHQgKz0gcmVz
dWx0IDwgMCA/IC0wLjAxIDogKzAuMDE7CisKKyAgICBpZiAocmVzdWx0ID4gU0hSVF9NQVggfHwg
cmVzdWx0IDwgU0hSVF9NSU4pCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxzaG9ydD4ocmVzdWx0KTsKIH0KIAogZmxvYXQgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1
dGVMZW5ndGhGbG9hdChSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUs
IGJvb2wgY29tcHV0aW5nRm9udFNpemUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oIGIvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCBiYjNl
YTcwLi5iMTFjN2YwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
CisrKyBiL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTM4LDE1ICszOCw2IEBA
IGNsYXNzIFJlbmRlclN0eWxlOwogCiBzdHJ1Y3QgTGVuZ3RoOwogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBUIG1heCwgVCBtaW4+IGlubGluZSBUIHJvdW5kRm9ySW1wcmVjaXNlQ29udmVyc2lvbihk
b3VibGUgdmFsdWUpCi17Ci0gICAgLy8gRGltZW5zaW9uIGNhbGN1bGF0aW9ucyBhcmUgaW1wcmVj
aXNlLCBvZnRlbiByZXN1bHRpbmcgaW4gdmFsdWVzIG9mIGUuZy4KLSAgICAvLyA0NC45OTk5OC4g
IFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHJvdW5kIGlmIHdlJ3JlIHJlYWxseSBjbG9zZSB0byB0
aGUKLSAgICAvLyBuZXh0IGludGVnZXIgdmFsdWUuCi0gICAgdmFsdWUgKz0gKHZhbHVlIDwgMCkg
PyAtMC4wMSA6ICswLjAxOwotICAgIHJldHVybiAoKHZhbHVlID4gbWF4KSB8fCAodmFsdWUgPCBt
aW4pKSA/IDAgOiBzdGF0aWNfY2FzdDxUPih2YWx1ZSk7Ci19Ci0KIGNsYXNzIENTU1ByaW1pdGl2
ZVZhbHVlIDogcHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKICAgICBlbnVtIFVuaXRUeXBlcyB7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcCBiL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5RGF0dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjdkYjU0NzcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURh
dHVtLmNwcApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmZGVmIFNL
SVBfU1RBVElDX0NPTlNUUlVDVE9SU19PTl9HQ0MKKyNkZWZpbmUgQ1NTUFJPUEVSVFlEQVRVTV9I
SURFX0dMT0JBTFMgMQorI2VuZGlmCisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCisK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9TdGF0aWNDb25zdHJ1
Y3RvcnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NQcm9wZXJ0eURhdHVtOjpDU1NQ
cm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9v
bCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKQorICAgIDogbmFtZShuYW1lKQorICAgICwgdmFsdWUo
dmFsdWUpCisgICAgLCBpbXBvcnRhbnQoaW1wb3J0YW50KQorICAgICwgcGFyc2VkKHBhcnNlZCkK
K3sKK30KKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1bShjb25zdCBDU1NQcm9w
ZXJ0eURhdHVtJiBvdGhlcikKKyAgICA6IG5hbWUob3RoZXIubmFtZSkKKyAgICAsIHZhbHVlKG90
aGVyLnZhbHVlKQorICAgICwgaW1wb3J0YW50KG90aGVyLmltcG9ydGFudCkKKyAgICAsIHBhcnNl
ZChvdGhlci5wYXJzZWQpCit7Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06OkNTU1Byb3BlcnR5RGF0
dW0oKQorICAgIDogbmFtZSgiIikKKyAgICAsIHZhbHVlKCIiKQorICAgICwgaW1wb3J0YW50KGZh
bHNlKQorICAgICwgcGFyc2VkKGZhbHNlKQoreworfQorCitDU1NQcm9wZXJ0eURhdHVtJiBDU1NQ
cm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpCit7
CisgICAgbmFtZSA9IG90aGVyLm5hbWU7CisgICAgdmFsdWUgPSBvdGhlci52YWx1ZTsKKyAgICBp
bXBvcnRhbnQgPSBvdGhlci5pbXBvcnRhbnQ7CisgICAgcGFyc2VkID0gb3RoZXIucGFyc2VkOwor
ICAgIHJldHVybiAqdGhpczsKK30KKworU3RyaW5nIENTU1Byb3BlcnR5RGF0dW06OnRvU3RyaW5n
KCkgY29uc3QKK3sKKyAgICBpZiAoIW5hbWUgJiYgdmFsdWUgPT0gImUiKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisKKyAgICBTdHJpbmcgcmVzdWx0ID0gbmFtZTsKKyAgICByZXN1bHQgKz0g
IjogIjsKKyAgICByZXN1bHQgKz0gdmFsdWU7CisgICAgaWYgKGltcG9ydGFudCkKKyAgICAgICAg
cmVzdWx0ICs9ICIgIWltcG9ydGFudCI7CisgICAgcmVzdWx0ICs9ICI7IjsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCisvLyBHbG9iYWwgaW5pdCByb3V0aW5lcworREVGSU5FX0dMT0JBTChDU1NQ
cm9wZXJ0eURhdHVtLCBlbXB0eUNTU1Byb3BlcnR5RGF0dW0sICIiLCAiZSIsIGZhbHNlLCBmYWxz
ZSkKKworLy8gc3RhdGljCit2b2lkIENTU1Byb3BlcnR5RGF0dW06OmluaXQoKQoreworICAgIHN0
YXRpYyBib29sIGluaXRpYWxpemVkOworICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKKyAgICAgICAg
bmV3ICgodm9pZCAqKSAmZW1wdHlDU1NQcm9wZXJ0eURhdHVtKSBDU1NQcm9wZXJ0eURhdHVtKCIi
LCAiZSIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICB9
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCituYW1lc3BhY2UgV1RGIHsKKworV2Vi
Q29yZTo6Q1NTUHJvcGVydHlEYXR1bSBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0
dW0+OjplbXB0eVZhbHVlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdlYkNvcmU6OkNT
U1Byb3BlcnR5RGF0dW0sIGVtcHR5SGFzaFZhbHVlLCAoIiIsICJoIiwgZmFsc2UsIGZhbHNlKSk7
CisgICAgcmV0dXJuIGVtcHR5SGFzaFZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaCBiL1dlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5RGF0dW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDdi
NzlhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5oCkBA
IC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBDU1NQcm9wZXJ0eURhdHVtX2gKKyNkZWZpbmUgQ1NTUHJv
cGVydHlEYXR1bV9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHV0
aWxpdHk+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIENTU1N0eWxlUnVsZTsKKwordHlwZWRlZiBzdGQ6OnBhaXI8dW5zaWduZWQsIHVu
c2lnbmVkPiBTb3VyY2VSYW5nZTsKKworc3RydWN0IENTU1Byb3BlcnR5RGF0dW0geworICAgIHN0
YXRpYyB2b2lkIGluaXQoKTsKKworICAgIENTU1Byb3BlcnR5RGF0dW0oY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBwYXJzZWQpOwor
ICAgIENTU1Byb3BlcnR5RGF0dW0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpOworICAg
IENTU1Byb3BlcnR5RGF0dW0oKTsKKyAgICBBTFdBWVNfSU5MSU5FIH5DU1NQcm9wZXJ0eURhdHVt
KCkgeyB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuIG5hbWUgPT0gb3RoZXIubmFtZSAmJiB2YWx1ZSA9PSBvdGhlci52
YWx1ZSAmJiBpbXBvcnRhbnQgPT0gb3RoZXIuaW1wb3J0YW50ICYmIHBhcnNlZCA9PSBvdGhlci5w
YXJzZWQ7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3Ro
ZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisKKyAgICBDU1NQcm9wZXJ0
eURhdHVtJiBvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYgb3RoZXIpOworICAgIFN0
cmluZyB0b1N0cmluZygpIGNvbnN0OworCisgICAgU3RyaW5nIG5hbWU7CisgICAgU3RyaW5nIHZh
bHVlOworICAgIGJvb2wgaW1wb3J0YW50OworICAgIGJvb2wgcGFyc2VkOworfTsKK3R5cGVkZWYg
c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIGJvb2w+IFNvdXJjZUF3YXJlUHJvcGVydHlEYXR1
bTsKKworI2lmbmRlZiBDU1NQUk9QRVJUWURBVFVNX0hJREVfR0xPQkFMUworZXh0ZXJuIGNvbnN0
IENTU1Byb3BlcnR5RGF0dW0gZW1wdHlDU1NQcm9wZXJ0eURhdHVtOworI2VuZGlmCisKK3N0cnVj
dCBDU1NTdHlsZVNvdXJjZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxDU1NTdHlsZVNvdXJjZURh
dGE+IHsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IGNyZWF0ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU1N0eWxlU291cmNlRGF0YSgp
KTsKKyAgICB9CisKKyAgICAvLyBSYW5nZSBvZiB0aGUgc3R5bGUgdGV4dCBpbiB0aGUgZW5jbG9z
aW5nIHNvdXJjZSAoc3RhcnQgYW5kIGVuZCBvZmZzZXRzIGluY2x1c2l2ZSkuCisgICAgU291cmNl
UmFuZ2Ugc3R5bGVCb2R5UmFuZ2U7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURh
dHVtLCBTb3VyY2VSYW5nZT4gPiBwcm9wZXJ0eURhdGE7Cit9OwordHlwZWRlZiBIYXNoTWFwPENT
U1N0eWxlUnVsZSosIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4gU3R5bGVSdWxlUmFuZ2VN
YXA7CisKK3N0cnVjdCBDU1NQcm9wZXJ0eURhdHVtSGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goQ1NTUHJvcGVydHlEYXR1bSBrZXkpCisgICAgeworICAgICAgICByZXR1cm4gU3RyaW5n
SGFzaDo6aGFzaChrZXkubmFtZSkgKyBTdHJpbmdIYXNoOjpoYXNoKGtleS52YWx1ZSkgKyA3ICog
a2V5LmltcG9ydGFudCArIDMgKiBrZXkucGFyc2VkICsgMzE7CisgICAgfQorCisgICAgc3RhdGlj
IGJvb2wgZXF1YWwoQ1NTUHJvcGVydHlEYXR1bSBhLCBDU1NQcm9wZXJ0eURhdHVtIGIpCisgICAg
eworICAgICAgICByZXR1cm4gYS5uYW1lID09IGIubmFtZSAmJiBhLnZhbHVlID09IGIudmFsdWUg
JiYgYS5pbXBvcnRhbnQgPT0gYi5pbXBvcnRhbnQgJiYgYS5wYXJzZWQgPT0gYi5wYXJzZWQ7Cisg
ICAgfQorCisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSBmYWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0SGFzaDsKK3RlbXBsYXRl
PD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IHsKKyAgICB0
eXBlZGVmIFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW1IYXNoIEhhc2g7Cit9OworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0+IDogR2VuZXJp
Y0hhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bT4geworICAgIHN0YXRpYyBjb25z
dCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NT
UHJvcGVydHlEYXR1bSBlbXB0eVZhbHVlKCk7CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3RE
ZWxldGVkVmFsdWUoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSYgc2xvdCkgeyBuZXcgKCZzbG90
KSBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtKCIiLCAiRCIsIGZhbHNlLCBmYWxzZSk7IH0KKyAg
ICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpDU1NQcm9wZXJ0eURh
dHVtJiBzbG90KSB7IHJldHVybiAhc2xvdC5uYW1lLmxlbmd0aCgpICYmIHNsb3QudmFsdWUgPT0g
IkQiOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIENTU1Byb3BlcnR5
RGF0dW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCA0NmRlNzQ5Li4wNjRkNGU1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmNwcApAQCAtMTUxLDggKzE1MSw2IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6aW5z
ZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIHJlZkNoaWxkLCBFeGNl
CiAgICAgICAgIGlmIChjaGlsZC0+cGFyZW50Tm9kZSgpKQogICAgICAgICAgICAgYnJlYWs7CiAK
LSAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbEluc2VydERPTU5vZGUoY2hpbGQsIHRo
aXMpOwotCiAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihuZXh0LmdldCgpLCBjaGlsZCk7CiAK
ICAgICAgICAgLy8gU2VuZCBub3RpZmljYXRpb24gYWJvdXQgdGhlIGNoaWxkcmVuIGNoYW5nZS4K
QEAgLTIyMCw4ICsyMTgsNiBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckluc2VydEJlZm9y
ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBuZXh0Q2hpbAogICAgIGZvciAoTm9k
ZVZlY3Rvcjo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0YXJnZXRzLmJlZ2luKCk7IGl0ICE9IHRhcmdl
dHMuZW5kKCk7ICsraXQpIHsKICAgICAgICAgTm9kZSogY2hpbGQgPSBpdC0+Z2V0KCk7CiAKLSAg
ICAgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbEluc2VydERPTU5vZGUoY2hpbGQsIHRoaXMp
OwotCiAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihuZXh0LmdldCgpLCBjaGlsZCk7CiAKICAg
ICAgICAgY2hpbGRyZW5DaGFuZ2VkKHRydWUsIG5leHRDaGlsZFByZXZpb3VzU2libGluZy5nZXQo
KSwgbmV4dENoaWxkLCAxKTsKQEAgLTI5NSw4ICsyOTEsNiBAQCBib29sIENvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwg
RXhjZQogICAgICAgICBBU1NFUlQoIWNoaWxkLT5uZXh0U2libGluZygpKTsKICAgICAgICAgQVNT
RVJUKCFjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpOwogCi0gICAgICAgIEluc3BlY3RvckNvbnRy
b2xsZXI6OndpbGxJbnNlcnRET01Ob2RlKGNoaWxkLmdldCgpLCB0aGlzKTsKLQogICAgICAgICAv
LyBBZGQgY2hpbGQgYWZ0ZXIgInByZXYiLgogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7
CiAgICAgICAgIE5vZGUqIG5leHQ7CkBAIC01NzgsOCArNTcyLDYgQEAgYm9vbCBDb250YWluZXJO
b2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBFeGNlcHRpb25Db2Rl
JiBlYywgYm8KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIElu
c3BlY3RvckNvbnRyb2xsZXI6OndpbGxJbnNlcnRET01Ob2RlKGNoaWxkLCB0aGlzKTsKLQogICAg
ICAgICAvLyBBcHBlbmQgY2hpbGQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdAogICAgICAgICBmb3Ji
aWRFdmVudERpc3BhdGNoKCk7CiAgICAgICAgIGNoaWxkLT5zZXRQYXJlbnQodGhpcyk7CkBAIC02
MTgsOCArNjEwLDYgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkKQogICAgIEFTU0VSVChuZXdDaGlsZCk7CiAgICAgQVNTRVJUKCFu
ZXdDaGlsZC0+cGFyZW50KCkpOyAvLyBVc2UgYXBwZW5kQ2hpbGQgaWYgeW91IG5lZWQgdG8gaGFu
ZGxlIHJlcGFyZW50aW5nIChhbmQgd2FudCBET00gbXV0YXRpb24gZXZlbnRzKS4KIAotICAgIElu
c3BlY3RvckNvbnRyb2xsZXI6OndpbGxJbnNlcnRET01Ob2RlKG5ld0NoaWxkLmdldCgpLCB0aGlz
KTsKLQogICAgIGZvcmJpZEV2ZW50RGlzcGF0Y2goKTsKICAgICBOb2RlKiBsYXN0ID0gbV9sYXN0
Q2hpbGQ7CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCB0YWtlIGEgUGFzc1JlZlB0
ci4KQEAgLTk5MSw3ICs5ODEsMTIgQEAgc3RhdGljIHZvaWQgbm90aWZ5Q2hpbGRJbnNlcnRlZChO
b2RlKiBjaGlsZCkKIHsKICAgICBBU1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CiAK
LSAgICBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRJbnNlcnRET01Ob2RlKGNoaWxkKTsKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChQYWdlKiBwYWdlID0gY2hpbGQtPmRvY3VtZW50KCkt
PnBhZ2UoKSkgeworICAgICAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29u
dHJvbGxlciA9IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKSkKKyAgICAgICAgICAgIGluc3Bl
Y3RvckNvbnRyb2xsZXItPmRpZEluc2VydERPTU5vZGUoY2hpbGQpOworICAgIH0KKyNlbmRpZgog
CiAgICAgUmVmUHRyPE5vZGU+IGMgPSBjaGlsZDsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3Vt
ZW50ID0gY2hpbGQtPmRvY3VtZW50KCk7CkBAIC0xMDI1LDcgKzEwMjAsMTIgQEAgc3RhdGljIHZv
aWQgZGlzcGF0Y2hDaGlsZFJlbW92YWxFdmVudHMoTm9kZSogY2hpbGQpCiB7CiAgICAgQVNTRVJU
KCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwogCi0gICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6
d2lsbFJlbW92ZURPTU5vZGUoY2hpbGQpOworI2lmIEVOQUJMRShJTlNQRUNUT1IpICAgIAorICAg
IGlmIChQYWdlKiBwYWdlID0gY2hpbGQtPmRvY3VtZW50KCktPnBhZ2UoKSkgeworICAgICAgICBp
ZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IHBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKSkKKyAgICAgICAgICAgIGluc3BlY3RvckNvbnRyb2xsZXItPmRpZFJl
bW92ZURPTU5vZGUoY2hpbGQpOworICAgIH0KKyNlbmRpZgogCiAgICAgUmVmUHRyPE5vZGU+IGMg
PSBjaGlsZDsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50ID0gY2hpbGQtPmRvY3VtZW50
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDdjODg4YmMuLjE4NTUxMDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NDAsMTEgKzU0
MCw2IEBAIHZvaWQgRWxlbWVudDo6c2V0QXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
I2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKCFpc1N5bmNocm9uaXppbmdTdHlsZUF0dHJp
YnV0ZSgpKQotICAgICAgICBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsTW9kaWZ5RE9NQXR0cih0
aGlzKTsKLSNlbmRpZgotCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUgPSBzaG91
bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKHRoaXMpID8gbmFtZS5sb3dlcigpIDogbmFtZTsKIAogICAg
IC8vIEFsbG9jYXRlIGF0dHJpYnV0ZSBtYXAgaWYgbmVjZXNzYXJ5LgpAQCAtNTY4LDE4ICs1NjMs
MTcgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
LCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLAogICAgIH0KIAogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCi0gICAgaWYgKCFpc1N5bmNocm9uaXppbmdTdHlsZUF0dHJpYnV0ZSgpKQotICAgICAgICBJ
bnNwZWN0b3JDb250cm9sbGVyOjpkaWRNb2RpZnlET01BdHRyKHRoaXMpOworICAgIGlmIChQYWdl
KiBwYWdlID0gZG9jdW1lbnQoKS0+cGFnZSgpKSB7CisgICAgICAgIGlmIChJbnNwZWN0b3JDb250
cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyID0gcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
KSB7CisgICAgICAgICAgICBpZiAoIWlzU3luY2hyb25pemluZ1N0eWxlQXR0cmlidXRlKCkpCisg
ICAgICAgICAgICAgICAgaW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkTW9kaWZ5RE9NQXR0cih0aGlz
KTsKKyAgICAgICAgfQorICAgIH0KICNlbmRpZgogfQogCiB2b2lkIEVsZW1lbnQ6OnNldEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
LCBFeGNlcHRpb25Db2RlJikKIHsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmICghaXNT
eW5jaHJvbml6aW5nU3R5bGVBdHRyaWJ1dGUoKSkKLSAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxl
cjo6d2lsbE1vZGlmeURPTUF0dHIodGhpcyk7Ci0jZW5kaWYKLQogICAgIGRvY3VtZW50KCktPmlu
Y0RPTVRyZWVWZXJzaW9uKCk7CiAKICAgICAvLyBBbGxvY2F0ZSBhdHRyaWJ1dGUgbWFwIGlmIG5l
Y2Vzc2FyeS4KQEAgLTU5OCw4ICs1OTIsMTIgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwKICAg
ICB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmICghaXNTeW5jaHJvbml6aW5nU3R5
bGVBdHRyaWJ1dGUoKSkKLSAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkTW9kaWZ5RE9N
QXR0cih0aGlzKTsKKyAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2UoKSkgewor
ICAgICAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IHBh
Z2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgeworICAgICAgICAgICAgaWYgKCFpc1N5bmNocm9u
aXppbmdTdHlsZUF0dHJpYnV0ZSgpKQorICAgICAgICAgICAgICAgIGluc3BlY3RvckNvbnRyb2xs
ZXItPmRpZE1vZGlmeURPTUF0dHIodGhpcyk7CisgICAgICAgIH0KKyAgICB9CiAjZW5kaWYKIH0K
IApAQCAtMTIzMCw4ICsxMjI4LDYgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGVOUyhjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW4KIAogdm9pZCBF
bGVtZW50OjpyZW1vdmVBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKLSAgICBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsTW9kaWZ5RE9NQXR0cih0aGlz
KTsKLQogICAgIFN0cmluZyBsb2NhbE5hbWUgPSBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKHRo
aXMpID8gbmFtZS5sb3dlcigpIDogbmFtZTsKIAogICAgIGlmIChtX2F0dHJpYnV0ZU1hcCkgewpA
QCAtMTI0MCw3ICsxMjM2LDEzIEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRlKGNvbnN0
IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBlYyA9IDA7CiAg
ICAgfQogICAgIAotICAgIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE1vZGlmeURPTUF0dHIodGhp
cyk7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50
KCktPnBhZ2UoKSkgeworICAgICAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9y
Q29udHJvbGxlciA9IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKSkKKyAgICAgICAgICAgIGlu
c3BlY3RvckNvbnRyb2xsZXItPmRpZE1vZGlmeURPTUF0dHIodGhpcyk7CisgICAgfQorI2VuZGlm
CisgICAgCiB9CiAKIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRlTlMoY29uc3QgU3RyaW5n
JiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgbG9jYWxOYW1lLCBFeGNlcHRpb25Db2RlJiBl
YykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCBlODhlZTgxLi5hMGVlN2JkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC0xMjgsOCArMTI4LDggQEAgdm9pZCBIVE1MRW1i
ZWRFbGVtZW50OjpwYXJhbWV0ZXJzRm9yUGx1Z2luKFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVz
LCBWZWN0b3I8U3QKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLT5s
ZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIEF0dHJpYnV0ZSogaXQgPSBhdHRyaWJ1dGVzLT5hdHRy
aWJ1dGVJdGVtKGkpOwotICAgICAgICBwYXJhbU5hbWVzLmFwcGVuZChpdC0+bG9jYWxOYW1lKCku
c3RyaW5nKCkpOwotICAgICAgICBwYXJhbVZhbHVlcy5hcHBlbmQoaXQtPnZhbHVlKCkuc3RyaW5n
KCkpOworICAgICAgICBwYXJhbU5hbWVzLmFwcGVuZChpdC0+bG9jYWxOYW1lKCkpOworICAgICAg
ICBwYXJhbVZhbHVlcy5hcHBlbmQoaXQtPnZhbHVlKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwCmluZGV4IGQyMjNiMWUuLmI3ZWNlNzggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKQEAgLTI2Nyw4ICsyNjcsMTAgQEAgaW50IEhUTUxJbWFnZUVsZW1lbnQ6Ondp
ZHRoKGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKSBjb25zdAogICAgICAgICAgICAgcmV0
dXJuIHdpZHRoOwogCiAgICAgICAgIC8vIGlmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBp
dHMgd2lkdGgKLSAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXIuaW1hZ2UoKSkKLSAgICAgICAgICAg
IHJldHVybiBtX2ltYWdlTG9hZGVyLmltYWdlKCktPmltYWdlU2l6ZSgxLjBmKS53aWR0aCgpOwor
ICAgICAgICBpZiAobV9pbWFnZUxvYWRlci5pbWFnZSgpKSB7CisgICAgICAgICAgICBmbG9hdCB6
b29tRmFjdG9yID0gZG9jdW1lbnQoKS0+dmlldygpID8gZG9jdW1lbnQoKS0+dmlldygpLT5wYWdl
Wm9vbUZhY3RvcigpIDogMS4wZjsKKyAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLmlt
YWdlKCktPmltYWdlU2l6ZSh6b29tRmFjdG9yKS53aWR0aCgpOworICAgICAgICB9CiAgICAgfQog
CiAgICAgaWYgKGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKQEAgLTI3Niw4ICsyNzgsNyBAQCBp
bnQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMp
IGNvbnN0CiAgICAgZWxzZQogICAgICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKIAot
ICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7Ci0gICAgcmV0dXJuIGJveCA/IGFkanVz
dEZvckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRXaWR0aCgpLCBib3gpIDogMDsKKyAgICByZXR1
cm4gcmVuZGVyQm94KCkgPyByZW5kZXJCb3goKS0+Y29udGVudFdpZHRoKCkgOiAwOwogfQogCiBp
bnQgSFRNTEltYWdlRWxlbWVudDo6aGVpZ2h0KGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KSBjb25zdApAQCAtMjkwLDggKzI5MSwxMCBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6aGVpZ2h0
KGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKSBjb25zdAogICAgICAgICAgICAgcmV0dXJu
IGhlaWdodDsKIAogICAgICAgICAvLyBpZiB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxlLCB1c2UgaXRz
IGhlaWdodAotICAgICAgICBpZiAobV9pbWFnZUxvYWRlci5pbWFnZSgpKQotICAgICAgICAgICAg
cmV0dXJuIG1faW1hZ2VMb2FkZXIuaW1hZ2UoKS0+aW1hZ2VTaXplKDEuMGYpLmhlaWdodCgpOwor
ICAgICAgICBpZiAobV9pbWFnZUxvYWRlci5pbWFnZSgpKSB7CisgICAgICAgICAgICBmbG9hdCB6
b29tRmFjdG9yID0gZG9jdW1lbnQoKS0+dmlldygpID8gZG9jdW1lbnQoKS0+dmlldygpLT5wYWdl
Wm9vbUZhY3RvcigpIDogMS4wZjsKKyAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLmlt
YWdlKCktPmltYWdlU2l6ZSh6b29tRmFjdG9yKS5oZWlnaHQoKTsKKyAgICAgICAgfQogICAgIH0K
IAogICAgIGlmIChpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCkBAIC0yOTksOCArMzAyLDcgQEAg
aW50IEhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cykgY29uc3QKICAgICBlbHNlCiAgICAgICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwog
Ci0gICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKLSAgICByZXR1cm4gYm94ID8gYWRq
dXN0Rm9yQWJzb2x1dGVab29tKGJveC0+Y29udGVudEhlaWdodCgpLCBib3gpIDogMDsKKyAgICBy
ZXR1cm4gcmVuZGVyQm94KCkgPyByZW5kZXJCb3goKS0+Y29udGVudEhlaWdodCgpIDogMDsKIH0K
IAogaW50IEhUTUxJbWFnZUVsZW1lbnQ6Om5hdHVyYWxXaWR0aCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggMGY0YTUxNC4uNDYyMTA5NiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtNjk5LDcgKzY5OSw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNT
YWZlVG9Mb2FkVVJMKGNvbnN0IEtVUkwmIHVybCwgSW52YWxpZFNvdXJjZUFjdGlvbiBhY3RpCiAg
ICAgRnJhbWVMb2FkZXIqIGxvYWRlciA9IGZyYW1lID8gZnJhbWUtPmxvYWRlcigpIDogMDsKIAog
ICAgIC8vIGRvbid0IGFsbG93IHJlbW90ZSB0byBsb2NhbCB1cmxzLCBhbmQgY2hlY2sgd2l0aCB0
aGUgZnJhbWUgbG9hZGVyIGNsaWVudC4KLSAgICBpZiAoIWxvYWRlciB8fCAhU2VjdXJpdHlPcmln
aW46OmNhbkRpc3BsYXkodXJsLCBTdHJpbmcoKSwgZG9jdW1lbnQoKSkpIHsKKyAgICBpZiAoIWxv
YWRlciB8fCAhU2VjdXJpdHlPcmlnaW46OmNhbkxvYWQodXJsLCBTdHJpbmcoKSwgZG9jdW1lbnQo
KSkpIHsKICAgICAgICAgaWYgKGFjdGlvbklmSW52YWxpZCA9PSBDb21wbGFpbikKICAgICAgICAg
ICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoZnJhbWUsIHVybC5zdHJpbmco
KSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGUwMTkzMzIuLjFlODk3ZDMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjUsNiArMjUs
OSBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dC5oIgorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpIHx8IEVOQUJMRSgzRF9D
QU5WQVMpCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNlbmRpZgogI2luY2x1ZGUg
IkhUTUxDYW52YXNFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDQgKzQ3
LDEzIEBAIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDo6ZGVyZWYoKQogICAgIG1fY2FudmFz
LT5kZXJlZigpOyAKIH0KIAorYm9vbCBDYW52YXNSZW5kZXJpbmdDb250ZXh0OjpwYWludHNJbnRv
Q2FudmFzQnVmZmVyKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSB8fCBFTkFCTEUoM0RfQ0FOVkFTKQorICAgIGlmIChHcmFwaGljc0NvbnRleHQzRCogY29udGV4
dDNEID0gZ3JhcGhpY3NDb250ZXh0M0QoKSkKKyAgICAgICAgcmV0dXJuIGNvbnRleHQzRC0+cGFp
bnRzSW50b0NhbnZhc0J1ZmZlcigpOworI2VuZGlmCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dC5oIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0LmgKaW5kZXggODQ5OWI0Ny4uMmNkYmUxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTI2LDEzICsyNiwxMiBAQAogI2lmbmRl
ZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0X2gKICNkZWZpbmUgQ2FudmFzUmVuZGVyaW5nQ29udGV4
dF9oCiAKLSNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCi0KICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgV2ViR0xPYmplY3Q7
CisgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAgICAgY2xhc3MgSFRNTENhbnZhc0VsZW1l
bnQ7CiAKICAgICBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0IDogcHVibGljIE5vbmNvcHlh
YmxlIHsKQEAgLTUwLDEyICs0OSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBpczNkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVh
bCBib29sIGlzQWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICAK
LSAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkge30K
LSAgICAgICAgdmlydHVhbCBib29sIHBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIC8vIEZvciBhY2NlbGVyYXRlZCBjYW52YXNlcywgcmV0dXJu
cyBhIHBvaW50ZXIgdG8gdGhlIHVuZGVybHlpbmcgR3JhcGhpY3NDb250ZXh0M0QuCisgICAgICAg
IC8vIEZvciBub24gYWNjZWxlcmF0ZWQgY2FudmFzZXMgcmV0dXJucyAwLgorICAgICAgICB2aXJ0
dWFsIEdyYXBoaWNzQ29udGV4dDNEKiBncmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQotI2Vu
ZGlmCisgICAgICAgIHZpcnR1YWwgdm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygp
IHt9CisgICAgICAgIGJvb2wgcGFpbnRzSW50b0NhbnZhc0J1ZmZlcigpIGNvbnN0OwogCiAgICAg
cHJpdmF0ZToKICAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIG1fY2FudmFzOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwIGIvV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDQ5ZjU0
ZmIuLjZkZjZhYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmNwcAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5jcHAKQEAgLTU5LDEyICs1OSw4IEBACiAjaW5jbHVkZSAiVGV4dE1ldHJpY3Mu
aCIKIAogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0jaW5jbHVkZSAiQ2hyb21l
LmgiCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgi
Ci0jaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNlbmRpZgpAQCAtMTI4
LDExICsxMjQsMTcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQoSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgYm8KICAgICAgICAgcmV0dXJuOwog
ICAgIGlmICghcC0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dDNEID0gcC0+Y2hyb21lKCktPmNsaWVudCgpLT5n
ZXRTaGFyZWRHcmFwaGljc0NvbnRleHQzRCgpOwotICAgIGlmIChtX2NvbnRleHQzRCkgewotICAg
ICAgICBpZiAoR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2luZ0NvbnRleHQoKSkgewotICAgICAg
ICAgICAgbV9kcmF3aW5nQnVmZmVyID0gRHJhd2luZ0J1ZmZlcjo6Y3JlYXRlKG1fY29udGV4dDNE
LmdldCgpLCBJbnRTaXplKGNhbnZhcy0+d2lkdGgoKSwgY2FudmFzLT5oZWlnaHQoKSkpOwotICAg
ICAgICAgICAgYy0+c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QobV9jb250ZXh0M0QuZ2V0KCks
IG1fZHJhd2luZ0J1ZmZlci5nZXQoKSwgSW50U2l6ZShjYW52YXMtPndpZHRoKCksIGNhbnZhcy0+
aGVpZ2h0KCkpKTsKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gY2FudmFzLT5kb2N1bWVudCgp
LT52aWV3KCkpIHsKKyAgICAgICAgaWYgKFNjcm9sbFZpZXcqIHJvb3RWaWV3ID0gdmlldy0+cm9v
dCgpKSB7CisgICAgICAgICAgICBpZiAoSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IHJvb3RWaWV3
LT5ob3N0V2luZG93KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBTZXQgdXAgb3VyIGNvbnRleHQK
KyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRyOworICAg
ICAgICAgICAgICAgIGF0dHIuc3RlbmNpbCA9IHRydWU7CisgICAgICAgICAgICAgICAgbV9jb250
ZXh0M0QgPSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHIsIGhvc3RXaW5kb3cpOworICAg
ICAgICAgICAgICAgIGlmIChtX2NvbnRleHQzRCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKEdy
YXBoaWNzQ29udGV4dCogYyA9IGRyYXdpbmdDb250ZXh0KCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICBjLT5zZXRHcmFwaGljc0NvbnRleHQzRChtX2NvbnRleHQzRC5nZXQoKSwgSW50U2l6ZShj
YW52YXMtPndpZHRoKCksIGNhbnZhcy0+aGVpZ2h0KCkpKTsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTUxLDE2ICsxNTMsNiBAQCBib29sIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiAjZW5kaWYKIH0KIAotYm9vbCBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdAot
ewotI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0gICAgaWYgKG1fY29udGV4dDNE
KQotICAgICAgICByZXR1cm4gbV9jb250ZXh0M0QtPnBhaW50c0ludG9DYW52YXNCdWZmZXIoKTsK
LSNlbmRpZgotICAgIHJldHVybiB0cnVlOwotfQotCi0KIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEOjpyZXNldCgpCiB7CiAgICAgbV9zdGF0ZVN0YWNrLnJlc2l6ZSgxKTsKQEAgLTE2OCwx
MCArMTYwLDggQEAgdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnJlc2V0KCkKICAgICBt
X3BhdGguY2xlYXIoKTsKICNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlm
IChtX2NvbnRleHQzRCkgewotICAgICAgICBpZiAoR3JhcGhpY3NDb250ZXh0KiBjID0gZHJhd2lu
Z0NvbnRleHQoKSkgewotICAgICAgICAgICAgbV9kcmF3aW5nQnVmZmVyLT5yZXNldChJbnRTaXpl
KGNhbnZhcygpLT53aWR0aCgpLCBjYW52YXMoKS0+aGVpZ2h0KCkpKTsKLSAgICAgICAgICAgIGMt
PnNldFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKG1fY29udGV4dDNELmdldCgpLCBtX2RyYXdpbmdC
dWZmZXIuZ2V0KCksIEludFNpemUoY2FudmFzKCktPndpZHRoKCksIGNhbnZhcygpLT5oZWlnaHQo
KSkpOwotICAgICAgICB9CisgICAgICAgIGlmIChHcmFwaGljc0NvbnRleHQqIGMgPSBkcmF3aW5n
Q29udGV4dCgpKQorICAgICAgICAgICAgYy0+c2V0R3JhcGhpY3NDb250ZXh0M0QobV9jb250ZXh0
M0QuZ2V0KCksIEludFNpemUoY2FudmFzKCktPndpZHRoKCksIGNhbnZhcygpLT5oZWlnaHQoKSkp
OwogICAgIH0KICNlbmRpZgogfQpAQCAtNDQxLDE1ICs0MzEsNiBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRDo6c2V0R2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uKGNvbnN0IFN0cmluZyYg
b3BlcmF0aQogICAgIGlmICghYykKICAgICAgICAgcmV0dXJuOwogICAgIGMtPnNldENvbXBvc2l0
ZU9wZXJhdGlvbihvcCk7Ci0jaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKLSAgICBp
ZiAoaXNBY2NlbGVyYXRlZCgpICYmIG9wICE9IENvbXBvc2l0ZVNvdXJjZU92ZXIpIHsKLSAgICAg
ICAgYy0+c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QoMCwgMCwgSW50U2l6ZSgpKTsKLSAgICAg
ICAgbV9kcmF3aW5nQnVmZmVyLmNsZWFyKCk7Ci0gICAgICAgIG1fY29udGV4dDNELmNsZWFyKCk7
Ci0gICAgICAgIC8vIE1hcmsgYXMgbmVlZGluZyBhIHN0eWxlIHJlY2FsYyBzbyBvdXIgY29tcG9z
aXRpbmcgbGF5ZXIgY2FuIGJlIHJlbW92ZWQuCi0gICAgICAgIGNhbnZhcygpLT5zZXROZWVkc1N0
eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKLSAgICB9Ci0jZW5kaWYKIH0KIAogdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSkKQEAg
LTEyODgsMTYgKzEyNjksNyBAQCB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZHJhd0lt
YWdlKEhUTUxDYW52YXNFbGVtZW50KiBzb3VyY2VDYW52YXMsIGNvbnN0CiAgICAgaWYgKCFzb3Vy
Y2VDYW52YXMtPm9yaWdpbkNsZWFuKCkpCiAgICAgICAgIGNhbnZhcygpLT5zZXRPcmlnaW5UYWlu
dGVkKCk7CiAKLSNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotICAgIC8vIElmIHdl
J3JlIGRyYXdpbmcgZnJvbSBvbmUgYWNjZWxlcmF0ZWQgY2FudmFzIDJkIHRvIGFub3RoZXIsIGF2
b2lkIGNhbGxpbmcgc291cmNlQ2FudmFzLT5tYWtlUmVuZGVyaW5nUmVzdWx0c0F2YWlsYWJsZSgp
Ci0gICAgLy8gYXMgdGhhdCB3aWxsIGRvIGEgcmVhZGJhY2sgdG8gc29mdHdhcmUuCi0gICAgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dCogc291cmNlQ29udGV4dCA9IHNvdXJjZUNhbnZhcy0+cmVuZGVy
aW5nQ29udGV4dCgpOwotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgYW4gYWNjZWxlcmF0ZWQgcGF0
aCBmb3IgZHJhd2luZyBmcm9tIGEgV2ViR0wgY2FudmFzIHRvIGEgMmQgY2FudmFzIHdoZW4gcG9z
c2libGUuCi0gICAgaWYgKCFpc0FjY2VsZXJhdGVkKCkgfHwgIXNvdXJjZUNvbnRleHQgfHwgIXNv
dXJjZUNvbnRleHQtPmlzQWNjZWxlcmF0ZWQoKSB8fCAhc291cmNlQ29udGV4dC0+aXMyZCgpKQot
ICAgICAgICBzb3VyY2VDYW52YXMtPm1ha2VSZW5kZXJpbmdSZXN1bHRzQXZhaWxhYmxlKCk7Ci0j
ZWxzZQogICAgIHNvdXJjZUNhbnZhcy0+bWFrZVJlbmRlcmluZ1Jlc3VsdHNBdmFpbGFibGUoKTsK
LSNlbmRpZgogCiAgICAgYy0+ZHJhd0ltYWdlQnVmZmVyKGJ1ZmZlciwgRGV2aWNlQ29sb3JTcGFj
ZSwgZGVzdFJlY3QsIHNvdXJjZVJlY3QsIHN0YXRlKCkubV9nbG9iYWxDb21wb3NpdGUpOwogICAg
IGRpZERyYXcoZGVzdFJlY3QpOwpAQCAtMTUzMiw3ICsxNTA0LDcgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQ6OmRpZERyYXcoY29uc3QgRmxvYXRSZWN0JiByLCB1bnNpZ25lZCBvcHRp
b25zKQogI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICAgICAvLyBJZiB3ZSBhcmUgZHJhd2luZyB0byBoYXJkd2FyZSBhbmQg
d2UgaGF2ZSBhIGNvbXBvc2l0ZWQgbGF5ZXIsIGp1c3QgY2FsbCByZW5kZXJlckNvbnRlbnRDaGFu
Z2VkKCkuCiAgICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSBjYW52YXMoKS0+cmVuZGVyQm94KCk7
Ci0gICAgaWYgKGlzQWNjZWxlcmF0ZWQoKSAmJiByZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNM
YXllcigpICYmIHJlbmRlckJveC0+bGF5ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygp
KQorICAgIGlmIChtX2NvbnRleHQzRCAmJiByZW5kZXJCb3ggJiYgcmVuZGVyQm94LT5oYXNMYXll
cigpICYmIHJlbmRlckJveC0+bGF5ZXIoKS0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQog
ICAgICAgICByZW5kZXJCb3gtPmxheWVyKCktPnJlbmRlcmVyQ29udGVudENoYW5nZWQoKTsKICAg
ICBlbHNlCiAjZW5kaWYKQEAgLTE5MDUsMTEgKzE4NzcsNCBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoKQogI2VuZGlmCiB9CiAK
LSNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAmJiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi1QbGF0Zm9ybUxheWVyKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnBsYXRm
b3JtTGF5ZXIoKSBjb25zdAotewotICAgIHJldHVybiBtX2RyYXdpbmdCdWZmZXItPnBsYXRmb3Jt
TGF5ZXIoKTsKLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGIvV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCBkOWQ4NTk3Li45
ODU3MzQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgKQEAgLTYxLDggKzYxLDcgQEAgY2xhc3MgS1VSTDsKIGNsYXNzIFRleHRNZXRyaWNzOwog
CiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKLWNsYXNzIERyYXdpbmdCdWZmZXI7
Ci1jbGFzcyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDNE
OwogI2VuZGlmCiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CkBAIC03NSw3ICs3NCw2IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpczJkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VsZXJhdGVkKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBi
b29sIHBhaW50c0ludG9DYW52YXNCdWZmZXIoKSBjb25zdDsKIAogICAgIENhbnZhc1N0eWxlKiBz
dHJva2VTdHlsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0U3Ryb2tlU3R5bGUoUGFzc1JlZlB0cjxD
YW52YXNTdHlsZT4pOwpAQCAtMjI1LDggKzIyMyw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcygpOwogCi0jaWYgRU5BQkxFKEFDQ0VM
RVJBVEVEXzJEX0NBTlZBUykgJiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHZp
cnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OworI2lmIEVOQUJMRShB
Q0NFTEVSQVRFRF8yRF9DQU5WQVMpCisgICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHQzRCogZ3Jh
cGhpY3NDb250ZXh0M0QoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQzRC5nZXQoKTsgfQogI2Vu
ZGlmCiAKIHByaXZhdGU6CkBAIC0zMDAsOCArMjk4LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAj
aWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKLSAgICBPd25QdHI8RHJhd2luZ0J1ZmZl
cj4gbV9kcmF3aW5nQnVmZmVyOwotICAgIFJlZlB0cjxTaGFyZWRHcmFwaGljc0NvbnRleHQzRD4g
bV9jb250ZXh0M0Q7CisgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBtX2NvbnRleHQzRDsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwCmluZGV4IGJkYTM1NjkuLjJhMTQ2NGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTE3MCwxMSArMTcwLDYgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICBt
X2NvbnRleHQtPnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKHRoaXMpOwogfQogCi1ib29s
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cGFpbnRzSW50b0NhbnZhc0J1ZmZlcigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+cGFpbnRzSW50b0NhbnZhc0J1ZmZlcigpOwotfQotCiB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQp
CiB7CiAgICAgaWYgKG1fbmVlZHNVcGRhdGUpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggYi9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oCmluZGV4IGQ4MTJjNjkuLjY2ZWM4ZDggMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApAQCAtNjMsNyArNjMsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXMzZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRzSW50b0NhbnZhc0J1ZmZlcigpIGNvbnN0OwogCiAgICAgdm9p
ZCBhY3RpdmVUZXh0dXJlKHVuc2lnbmVkIGxvbmcgdGV4dHVyZSwgRXhjZXB0aW9uQ29kZSYgZWMp
OwogICAgIHZvaWQgYXR0YWNoU2hhZGVyKFdlYkdMUHJvZ3JhbSosIFdlYkdMU2hhZGVyKiwgRXhj
ZXB0aW9uQ29kZSYgZWMpOwpAQCAtMjc4LDEwICsyNzcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBs
b25nIGhlaWdodCk7CiAKLSAgICBHcmFwaGljc0NvbnRleHQzRCogZ3JhcGhpY3NDb250ZXh0M0Qo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KLSNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCi0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZXh0LT5wbGF0Zm9ybUxheWVyKCk7IH0KLSNlbmRpZgorICAg
IHZpcnR1YWwgR3JhcGhpY3NDb250ZXh0M0QqIGdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKICAgICB2b2lkIHJlc2hhcGUoaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlk
bCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggMTY5YjE4OC4uM2NhOGQz
OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBAIC00MCw5ICs0MCwxMCBAQCBtb2R1bGUgY29y
ZSB7CiAgICAgICAgIFtub3RpZnldIHZvaWQgY2hpbGROb2RlQ291bnRVcGRhdGVkKG91dCBsb25n
IGlkLCBvdXQgaW50IG5ld1ZhbHVlKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBjaGlsZE5vZGVJ
bnNlcnRlZChvdXQgbG9uZyBwYXJlbnRJZCwgb3V0IGxvbmcgcHJldklkLCBvdXQgT2JqZWN0IG5v
ZGUpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9kZVJlbW92ZWQob3V0IGxvbmcgcGFy
ZW50SWQsIG91dCBsb25nIGlkKTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBjbG9zZSgpOwogICAg
ICAgICBbbm90aWZ5XSB2b2lkIGRpZENvbW1pdExvYWQoKTsKICAgICAgICAgW25vdGlmeV0gdm9p
ZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKG91dCBsb25nIHRlc3RDYWxsSWQsIG91dCBTdHJp
bmcgc2NyaXB0KTsKLSAgICAgICAgW25vdGlmeV0gdm9pZCBkaXNjb25uZWN0RnJvbUJhY2tlbmQo
KTsKKyAgICAgICAgW25vdGlmeV0gdm9pZCBpbnNwZWN0ZWRQYWdlRGVzdHJveWVkKCk7CiAgICAg
ICAgIFtub3RpZnldIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChvdXQgU3RyaW5nIHVybCk7CiAg
ICAgICAgIFtub3RpZnldIHZvaWQgbW9uaXRvcmluZ1hIUldhc0VuYWJsZWQoKTsKICAgICAgICAg
W25vdGlmeV0gdm9pZCBtb25pdG9yaW5nWEhSV2FzRGlzYWJsZWQoKTsKQEAgLTcyLDcgKzczLDcg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbbm90aWZ5XSB2b2lkIGRlYnVnZ2VyV2FzRGlzYWJs
ZWQoKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBmYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlKG91
dCBTdHJpbmcgdXJsLCBvdXQgU3RyaW5nIGRhdGEsIG91dCBpbnQgZmlyc3RMaW5lLCBvdXQgaW50
IGVycm9yTGluZSwgb3V0IFN0cmluZyBlcnJvck1lc3NhZ2UpOwogICAgICAgICBbbm90aWZ5XSB2
b2lkIHBhcnNlZFNjcmlwdFNvdXJjZShvdXQgU3RyaW5nIHNvdXJjZUlELCBvdXQgU3RyaW5nIHVy
bCwgb3V0IFN0cmluZyBkYXRhLCBvdXQgaW50IGZpcnN0TGluZSwgb3V0IGludCBzY3JpcHRXb3Js
ZFR5cGUpOwotICAgICAgICBbbm90aWZ5XSB2b2lkIHBhdXNlZFNjcmlwdChvdXQgT2JqZWN0IGRl
dGFpbHMpOworICAgICAgICBbbm90aWZ5XSB2b2lkIHBhdXNlZFNjcmlwdChvdXQgVmFsdWUgY2Fs
bEZyYW1lcyk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgcHJvZmlsZXJXYXNFbmFibGVkKCk7CiAg
ICAgICAgIFtub3RpZnldIHZvaWQgcHJvZmlsZXJXYXNEaXNhYmxlZCgpOwogICAgICAgICBbbm90
aWZ5XSB2b2lkIHJlc3RvcmVkQnJlYWtwb2ludChvdXQgU3RyaW5nIHNvdXJjZUlELCBvdXQgU3Ry
aW5nIHVybCwgb3V0IGludCBsaW5lLCBvdXQgYm9vbGVhbiBlbmFibGVkLCBvdXQgU3RyaW5nIGNv
bmRpdGlvbik7CkBAIC0xODgsNyArMTg5LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbaGFu
ZGxlcj1ET01dIHZvaWQgZ2V0SW5saW5lU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBz
dHlsZSk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxv
bmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQg
Z2V0U3R5bGVTaGVldChpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IE9iamVjdCBzdHlsZVNoZWV0
KTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBzdHls
ZVNoZWV0SWQsIG91dCBWYWx1ZSByYW5nZXMpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQg
Z2V0U3R5bGVTb3VyY2VEYXRhKGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgT2JqZWN0IHN0eWxl
U291cmNlRGF0YSk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBhcHBseVN0eWxlVGV4dChp
biBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIGluIFN0cmluZyBwcm9wZXJ0eU5h
bWUsIG91dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBWYWx1ZSBzdHlsZSwgb3V0IEFycmF5IGNoYW5n
ZWRQcm9wZXJ0aWVzKTsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHNldFN0eWxlVGV4dChp
biBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3Mp
OwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIHN0
eWxlSWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nl
c3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3Bw
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IGMyZGM0ZjEu
LmVlOWY0YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3Jl
LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTM3
LDExICszNywyMCBAQAogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAi
Q2FjaGUuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkRvY0xvYWRl
ci5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlLmgi
CisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKKyNpbmNsdWRl
ICJUZXh0RW5jb2RpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Nyw2ICs3Niw3
IEBAIHZvaWQgSW5zcGVjdG9yQ1NTU3RvcmU6OnJlc2V0KCkKICAgICBtX3N0eWxlU2hlZXRUb09m
ZnNldHMuY2xlYXIoKTsKICAgICBtX3N0eWxlU2hlZXRUb0lkLmNsZWFyKCk7CiAgICAgbV9pZFRv
U3R5bGVTaGVldC5jbGVhcigpOworICAgIG1faWRUb1N0eWxlU2hlZXRUZXh0LmNsZWFyKCk7CiAg
ICAgbV9pZFRvRGlzYWJsZWRTdHlsZS5jbGVhcigpOwogICAgIG1fZG9jdW1lbnROb2RlVG9JbnNw
ZWN0b3JTdHlsZVNoZWV0TWFwLmNsZWFyKCk7CiAKQEAgLTEwNCw0OCArMTE0LDE4MCBAQCBDU1NT
dHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6aW5zcGVjdG9yU3R5bGVTaGVldChEb2N1bWVu
dCogb3duZXJEb2N1bWVudCwgYgogICAgIHJldHVybiBpbnNwZWN0b3JTdHlsZVNoZWV0OwogfQog
Ci1IYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVsZVJh
bmdlcyhDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQorU3RyaW5nIEluc3BlY3RvckNTU1N0b3Jl
OjpzdHlsZVNoZWV0VGV4dChsb25nIHN0eWxlU2hlZXRJZCkKIHsKKyAgICBJZFRvU3R5bGVTaGVl
dFRleHRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvU3R5bGVTaGVldFRleHQuZmluZChzdHlsZVNo
ZWV0SWQpOworICAgIGlmIChpdCAhPSBtX2lkVG9TdHlsZVNoZWV0VGV4dC5lbmQoKSkKKyAgICAg
ICAgcmV0dXJuIGl0LT5zZWNvbmQ7CisKKyAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0g
c3R5bGVTaGVldEZvcklkKHN0eWxlU2hlZXRJZCk7CiAgICAgaWYgKCFzdHlsZVNoZWV0KQotICAg
ICAgICByZXR1cm4gSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4oKTsKLSAgICBSZWZQdHI8Q1NT
UnVsZUxpc3Q+IG9yaWdpbmFsUnVsZUxpc3QgPSBDU1NSdWxlTGlzdDo6Y3JlYXRlKHN0eWxlU2hl
ZXQsIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFN0cmluZyB0ZXh0Owor
CisgICAgTm9kZSogb3duZXJOb2RlID0gc3R5bGVTaGVldC0+b3duZXJOb2RlKCk7CisgICAgaWYg
KG93bmVyTm9kZSAmJiBvd25lck5vZGUtPm5vZGVUeXBlKCkgPT0gTm9kZTo6RUxFTUVOVF9OT0RF
KSB7CisgICAgICAgIEVsZW1lbnQqIG93bmVyRWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQq
Pihvd25lck5vZGUpOworICAgICAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1lKCkubG93ZXIo
KSA9PSAic3R5bGUiKQorICAgICAgICAgICAgdGV4dCA9IGlubGluZVN0eWxlU2hlZXRUZXh0KHN0
eWxlU2hlZXQpOworICAgIH0KKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHRleHQg
PSByZXNvdXJjZVN0eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXQpOworCisgICAgaWYgKCF0ZXh0Lmlz
RW1wdHkoKSkKKyAgICAgICAgbV9pZFRvU3R5bGVTaGVldFRleHQuc2V0KHN0eWxlU2hlZXRJZCwg
dGV4dCk7CisgICAgcmV0dXJuIHRleHQ7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6
cmVzb3VyY2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAg
IEtVUkwgc3R5bGVTaGVldFVSTCA9IHN0eWxlU2hlZXQtPmZpbmFsVVJMKCk7CisgICAgRG9jdW1l
bnQqIGRvYyA9IHN0eWxlU2hlZXQtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKKyAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKKyAgICBSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAgaWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElk
ZW50aWZpZXIoc3R5bGVTaGVldFVSTCwgZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKS0+cmVxdWVzdFVSTCgpKSkgeworICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gZG9j
LT5pbnB1dEVuY29kaW5nKCk7CisgICAgICAgIGJ1ZmZlciA9IGRvYy0+ZnJhbWUoKS0+bG9hZGVy
KCktPnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsID0gc3R5bGVTaGVldFVSTC5zdHJp
bmcoKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gZG9jLT5kb2NM
b2FkZXIoKS0+Y2FjaGVkUmVzb3VyY2UodXJsKTsKKyAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJj
ZSkKKyAgICAgICAgICAgIGNhY2hlZFJlc291cmNlID0gY2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwo
dXJsKTsKKworICAgICAgICBBU1NFUlQoY2FjaGVkUmVzb3VyY2UpOyAvLyBGSVhNRShhcGF2bG92
KTogVGhpcyBtaWdodCBiZSB0b28gYWdncmVzc2l2ZQorCisgICAgICAgIGJvb2wgaXNVbnB1cmdl
YWJsZSA9IHRydWU7CisgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZS0+aXNQdXJnZWFibGUoKSkg
eworICAgICAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlzIHB1cmdlYWJsZSB0aGVuIG1ha2Ug
aXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAgICAgICAvLyBpdHMgZGF0YS4gVGhpcyBtaWdo
dCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgorICAgICAgICAgICAgLy8gZW1wdHkg
U3RyaW5nLgorICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShm
YWxzZSkpCisgICAgICAgICAgICAgICAgaXNVbnB1cmdlYWJsZSA9IGZhbHNlOworICAgICAgICB9
CisgICAgICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7CisgICAgICAgICAgICB0ZXh0RW5jb2RpbmdO
YW1lID0gY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCk7CisgICAgICAgICAgICBidWZmZXIgPSBj
YWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKGJ1ZmZl
cikgeworICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcodGV4dEVuY29kaW5nTmFtZSk7Cisg
ICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKQorICAgICAgICAgICAgZW5jb2RpbmcgPSBX
aW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKKyAgICAgICAgcmV0dXJuIGVuY29kaW5nLmRlY29kZShi
dWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAgIH0KKworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0VGV4
dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIE5vZGUqIG93bmVyTm9kZSA9IHN0
eWxlU2hlZXQtPm93bmVyTm9kZSgpOworICAgIGlmICghb3duZXJOb2RlIHx8IG93bmVyTm9kZS0+
bm9kZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUgfHwgbV9zdHlsZVNoZWV0VG9JZC5maW5k
KHN0eWxlU2hlZXQpID09IG1fc3R5bGVTaGVldFRvSWQuZW5kKCkpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICBFbGVtZW50KiBvd25lckVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50
Kj4ob3duZXJOb2RlKTsKKyAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1lKCkubG93ZXIoKSAh
PSAic3R5bGUiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG93bmVyRWxl
bWVudC0+aW5uZXJUZXh0KCk7Cit9CisKKworLy8gQWxsIHJhbmdlcyBhcmU6IFtzdGFydDsgZW5k
KSAoc3RhcnQgLSBpbmNsdXNpdmUsIGVuZCAtIGV4Y2x1c2l2ZSkKK2Jvb2wgSW5zcGVjdG9yQ1NT
U3RvcmU6OmdldFN0eWxlU291cmNlRGF0YShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgUmVm
UHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gaW5saW5lU3R5bGVF
bGVtZW50KHN0eWxlKTsKKyAgICBpZiAoZWxlbWVudCkgeworICAgICAgICAvLyBJbmxpbmU6IHN0
eWxlPSIuLi4iCisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHN0eWxlU291cmNl
RGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIGJvb2wgc3VjY2Vz
cyA9IGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKGVsZW1lbnQsICZzdHlsZVNvdXJjZURhdGEpOwor
ICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICpyZXN1bHQgPSBzdHlsZVNvdXJjZURhdGE7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNoZWV0KHN0
eWxlKTsKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IgPSAwOwog
ICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdHlsZVNoZWV0VG9P
ZmZzZXRzLmZpbmQoc3R5bGVTaGVldCk7Ci0gICAgVmVjdG9yPFNvdXJjZVJhbmdlPiogb2Zmc2V0
VmVjdG9yID0gMDsKICAgICBpZiAoaXQgPT0gbV9zdHlsZVNoZWV0VG9PZmZzZXRzLmVuZCgpKSB7
Ci0gICAgICAgIEluc3BlY3RvclJlc291cmNlKiByZXNvdXJjZSA9IG1faW5zcGVjdG9yQ29udHJv
bGxlci0+cmVzb3VyY2VGb3JVUkwoc3R5bGVTaGVldC0+ZmluYWxVUkwoKS5zdHJpbmcoKSk7Ci0g
ICAgICAgIGlmIChyZXNvdXJjZSkgewotICAgICAgICAgICAgb2Zmc2V0VmVjdG9yID0gbmV3IFZl
Y3RvcjxTb3VyY2VSYW5nZT47CisgICAgICAgIFN0cmluZyB0ZXh0ID0gc3R5bGVTaGVldFRleHQo
YmluZFN0eWxlU2hlZXQoc3R5bGVTaGVldCkpOworICAgICAgICBpZiAoIXRleHQuaXNFbXB0eSgp
KSB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gbmV3U3R5bGVTaGVldCA9IENT
U1N0eWxlU2hlZXQ6OmNyZWF0ZShzdHlsZVNoZWV0LT5vd25lck5vZGUoKSk7CiAgICAgICAgICAg
ICBDU1NQYXJzZXIgcDsKLSAgICAgICAgICAgIENTU1BhcnNlcjo6U3R5bGVSdWxlUmFuZ2VzIHJ1
bGVSYW5nZU1hcDsKLSAgICAgICAgICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgp
LCByZXNvdXJjZS0+c291cmNlU3RyaW5nKCksIDAsICZydWxlUmFuZ2VNYXApOwotICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gbmV3U3R5bGVTaGVldC0+bGVuZ3RoKCk7
IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9
IGFzQ1NTU3R5bGVSdWxlKG5ld1N0eWxlU2hlZXQtPml0ZW0oaSkpOwotICAgICAgICAgICAgICAg
IGlmICghcnVsZSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg
ICAgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBzdGQ6OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiA+
OjppdGVyYXRvciBpdCA9IHJ1bGVSYW5nZU1hcC5maW5kKHJ1bGUpOwotICAgICAgICAgICAgICAg
IGlmIChpdCAhPSBydWxlUmFuZ2VNYXAuZW5kKCkpCi0gICAgICAgICAgICAgICAgICAgIG9mZnNl
dFZlY3Rvci0+YXBwZW5kKGl0LT5zZWNvbmQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
bV9zdHlsZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCBvZmZzZXRWZWN0b3IpOworICAg
ICAgICAgICAgU3R5bGVSdWxlUmFuZ2VNYXAgcnVsZVJhbmdlTWFwOworICAgICAgICAgICAgcC5w
YXJzZVNoZWV0KG5ld1N0eWxlU2hlZXQuZ2V0KCksIHRleHQsIDAsICZydWxlUmFuZ2VNYXApOwor
ICAgICAgICAgICAgcmFuZ2VzVmVjdG9yID0gbmV3IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3Vy
Y2VEYXRhPiA+OworICAgICAgICAgICAgZXh0cmFjdFJhbmdlcyhuZXdTdHlsZVNoZWV0LmdldCgp
LCBydWxlUmFuZ2VNYXAsIHJhbmdlc1ZlY3Rvcik7CisgICAgICAgICAgICBtX3N0eWxlU2hlZXRU
b09mZnNldHMuc2V0KHN0eWxlU2hlZXQsIHJhbmdlc1ZlY3Rvcik7CiAgICAgICAgIH0KICAgICB9
IGVsc2UKLSAgICAgICAgb2Zmc2V0VmVjdG9yID0gaXQtPnNlY29uZDsKLSAgICBpZiAoIW9mZnNl
dFZlY3RvcikKLSAgICAgICAgcmV0dXJuIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+KCk7Cisg
ICAgICAgIHJhbmdlc1ZlY3RvciA9IGl0LT5zZWNvbmQ7CisgICAgaWYgKCFyYW5nZXNWZWN0b3Ip
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVuc2lnbmVkIHJ1bGVJbmRleCA9IDA7Ci0g
ICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcmVzdWx0OwogICAgIGZvciAodW5zaWduZWQg
aSA9IDAsIGxlbmd0aCA9IHN0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgQVNTRVJUKHJ1bGVJbmRleCA8IG9mZnNldFZlY3Rvci0+c2l6ZSgpKTsKICAgICAg
ICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gYXNDU1NTdHlsZVJ1bGUoc3R5bGVTaGVldC0+aXRlbShp
KSk7CiAgICAgICAgIGlmICghcnVsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAv
LyBUaGlzIG1hcHMgdGhlIHN0eWxlIGlkIHRvIHRoZSBydWxlIGJvZHkgcmFuZ2UuCi0gICAgICAg
IHJlc3VsdC5zZXQoYmluZFN0eWxlKHJ1bGUtPnN0eWxlKCkpLCBvZmZzZXRWZWN0b3ItPmF0KHJ1
bGVJbmRleCkpOworICAgICAgICBpZiAocnVsZS0+c3R5bGUoKSA9PSBzdHlsZSkgeworICAgICAg
ICAgICAgQVNTRVJUKHJ1bGVJbmRleCA8IHJhbmdlc1ZlY3Rvci0+c2l6ZSgpKTsKKyAgICAgICAg
ICAgICpyZXN1bHQgPSByYW5nZXNWZWN0b3ItPmF0KHJ1bGVJbmRleCk7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICAgICBydWxlSW5kZXgrKzsKICAgICB9Ci0gICAg
cmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ1NT
U3RvcmU6OmV4dHJhY3RSYW5nZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgU3R5
bGVSdWxlUmFuZ2VNYXAmIHJ1bGVSYW5nZU1hcCwgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJj
ZURhdGE+ID4qIHJhbmdlc1ZlY3RvcikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5n
dGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIENT
U1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0eWxlU2hlZXQtPml0ZW0oaSkpOwor
ICAgICAgICBpZiAoIXJ1bGUpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgU3R5bGVS
dWxlUmFuZ2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlTWFwLmZpbmQocnVsZSk7
CisgICAgICAgIGlmIChpdCAhPSBydWxlUmFuZ2VNYXAuZW5kKCkpCisgICAgICAgICAgICByYW5n
ZXNWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKKyAgICB9Cit9CisKK2Jvb2wgSW5zcGVjdG9y
Q1NTU3RvcmU6OmdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKE5vZGUqIG5vZGUsIFJlZlB0cjxDU1NT
dHlsZVNvdXJjZURhdGE+KiByZXN1bHQpCit7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0
eWxlZEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RyaW5nIHN0eWxl
VGV4dCA9IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKS0+Z2V0QXR0cmlidXRlKCJz
dHlsZSIpOworICAgIGlmIChzdHlsZVRleHQuaXNFbXB0eSgpKSB7CisgICAgICAgICgqcmVzdWx0
KS0+c3R5bGVCb2R5UmFuZ2UuZmlyc3QgPSAwOworICAgICAgICAoKnJlc3VsdCktPnN0eWxlQm9k
eVJhbmdlLnNlY29uZCA9IDA7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIFJl
ZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gdGVtcERlY2xhcmF0aW9uID0gQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgpOworICAgIENTU1BhcnNlciBwOworICAgIHAu
cGFyc2VEZWNsYXJhdGlvbih0ZW1wRGVjbGFyYXRpb24uZ2V0KCksIHN0eWxlVGV4dCwgcmVzdWx0
LT5nZXQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0NTU1N0eWxlU2hlZXQqIEluc3BlY3Rv
ckNTU1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxl
KQoreworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgU3R5bGVTaGVl
dCogc3R5bGVTaGVldCA9IHN0eWxlLT5zdHlsZXNoZWV0KCk7CisgICAgaWYgKHN0eWxlU2hlZXQg
JiYgc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVldCk7CisKKyAgICByZXR1cm4gMDsKIH0KIAog
Q1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JDU1NTdG9yZTo6YXNDU1NTdHlsZVJ1bGUoU3R5bGVCYXNl
KiBzdHlsZUJhc2UpCkBAIC0yMTcsNiArMzU5LDE3IEBAIGxvbmcgSW5zcGVjdG9yQ1NTU3RvcmU6
OmJpbmRSdWxlKENTU1N0eWxlUnVsZSogcnVsZSkKICAgICByZXR1cm4gaWQ7CiB9CiAKKy8vIHN0
YXRpYworRWxlbWVudCogSW5zcGVjdG9yQ1NTU3RvcmU6OmlubGluZVN0eWxlRWxlbWVudChDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+aXNN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBOb2RlKiBu
b2RlID0gc3RhdGljX2Nhc3Q8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qPihzdHlsZSktPm5v
ZGUoKTsKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzU3R5bGVkRWxlbWVudCgpIHx8IHN0YXRp
Y19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKS0+Z2V0SW5saW5lU3R5bGVEZWNsKCkgIT0gc3R5
bGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
bm9kZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9y
ZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaAppbmRleCA4MmRlNjIy
Li44ZWZkMzZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9y
ZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKQEAgLTI5LDYg
KzI5LDggQEAKICNpZm5kZWYgSW5zcGVjdG9yQ1NTU3RvcmVfaAogI2RlZmluZSBJbnNwZWN0b3JD
U1NTdG9yZV9oCiAKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCisKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgpAQCAtMzYsMTMgKzM4LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRG9jdW1lbnQ7Ci1jbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NT
UnVsZUxpc3Q7CiBjbGFzcyBDU1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OworY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsK
K2NsYXNzIE5vZGU7CiBjbGFzcyBTdHlsZUJhc2U7CiAKIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7CkBAIC01MiwyMyArNTYsMjggQEAg
dHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlRGVjbGFyYXRpb24qLCBsb25nPiBTdHlsZVRvSWRNYXA7
CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+ID4gSWRU
b1N0eWxlTWFwOwogdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIGxvbmc+IFJ1bGVUb0lk
TWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJlZlB0cjxDU1NTdHlsZVJ1bGU+ID4gSWRUb1J1
bGVNYXA7Ci10eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVTaGVldCosIFZlY3RvcjxTb3VyY2VSYW5n
ZT4qID4gU3R5bGVTaGVldFRvT2Zmc2V0c01hcDsKK3R5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNo
ZWV0KiwgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4qID4gU3R5bGVTaGVldFRv
T2Zmc2V0c01hcDsKIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgbG9uZz4gU3R5bGVT
aGVldFRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlU2hlZXQ+
ID4gSWRUb1N0eWxlU2hlZXRNYXA7Cit0eXBlZGVmIEhhc2hNYXA8bG9uZywgU3RyaW5nPiBJZFRv
U3R5bGVTaGVldFRleHRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgRGlzYWJsZWRTdHlsZURl
Y2xhcmF0aW9uPiBJZFRvRGlzYWJsZWRTdHlsZU1hcDsKIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8
RG9jdW1lbnQ+LCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBEb2N1bWVudFRvU3R5bGVTaGVldE1h
cDsKIAogY2xhc3MgSW5zcGVjdG9yQ1NTU3RvcmUgewogCiBwdWJsaWM6CisgICAgc3RhdGljIENT
U1N0eWxlU2hlZXQqIGdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwor
ICAgIHN0YXRpYyBFbGVtZW50KiBpbmxpbmVTdHlsZUVsZW1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlv
biopOworCiAgICAgSW5zcGVjdG9yQ1NTU3RvcmUoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVj
dG9yQ29udHJvbGxlcik7CiAgICAgfkluc3BlY3RvckNTU1N0b3JlKCk7CiAgICAgdm9pZCByZXNl
dCgpOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IGdldFJ1bGVSYW5nZXMoQ1NTU3R5
bGVTaGVldCopOworICAgIGJvb2wgZ2V0U3R5bGVTb3VyY2VEYXRhKENTU1N0eWxlRGVjbGFyYXRp
b24qLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KTsKICAgICBDU1NTdHlsZURl
Y2xhcmF0aW9uKiBzdHlsZUZvcklkKGxvbmcgc3R5bGVJZCk7CiAgICAgQ1NTU3R5bGVTaGVldCog
c3R5bGVTaGVldEZvcklkKGxvbmcgc3R5bGVTaGVldElkKTsKICAgICBDU1NTdHlsZVJ1bGUqIHJ1
bGVGb3JJZChsb25nIHN0eWxlUnVsZUlkKTsKICAgICBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24q
IGRpc2FibGVkU3R5bGVGb3JJZChsb25nIHN0eWxlSWQsIGJvb2wgY3JlYXRlSWZBYnNlbnQpOwor
ICAgIFN0cmluZyBzdHlsZVNoZWV0VGV4dChsb25nIHN0eWxlU2hlZXRJZCk7CiAgICAgQ1NTU3R5
bGVTaGVldCogaW5zcGVjdG9yU3R5bGVTaGVldChEb2N1bWVudCogb3duZXJEb2N1bWVudCwgYm9v
bCBjcmVhdGVJZkFic2VudCk7CiAgICAgdm9pZCByZW1vdmVEb2N1bWVudChEb2N1bWVudCopOwog
CkBAIC03OCw2ICs4NywxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgc3RhdGljIENTU1N0
eWxlUnVsZSogYXNDU1NTdHlsZVJ1bGUoU3R5bGVCYXNlKik7CisgICAgU3RyaW5nIGlubGluZVN0
eWxlU2hlZXRUZXh0KENTU1N0eWxlU2hlZXQqKTsKKyAgICBTdHJpbmcgcmVzb3VyY2VTdHlsZVNo
ZWV0VGV4dChDU1NTdHlsZVNoZWV0Kik7CisgICAgdm9pZCBleHRyYWN0UmFuZ2VzKENTU1N0eWxl
U2hlZXQqLCBjb25zdCBTdHlsZVJ1bGVSYW5nZU1hcCYsIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVT
b3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpOworICAgIGJvb2wgZ2V0U3R5bGVBdHRyaWJ1dGVS
YW5nZXMoTm9kZSogcGFyZW50Tm9kZSwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3Vs
dCk7CiAKICAgICBTdHlsZVRvSWRNYXAgbV9zdHlsZVRvSWQ7CiAgICAgSWRUb1N0eWxlTWFwIG1f
aWRUb1N0eWxlOwpAQCAtODUsOCArOTgsOSBAQCBwcml2YXRlOgogICAgIElkVG9SdWxlTWFwIG1f
aWRUb1J1bGU7CiAgICAgU3R5bGVTaGVldFRvT2Zmc2V0c01hcCBtX3N0eWxlU2hlZXRUb09mZnNl
dHM7CiAgICAgU3R5bGVTaGVldFRvSWRNYXAgbV9zdHlsZVNoZWV0VG9JZDsKLSAgICBJZFRvU3R5
bGVTaGVldE1hcCBtX2lkVG9TdHlsZVNoZWV0OwogICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwIG1f
aWRUb0Rpc2FibGVkU3R5bGU7CisgICAgSWRUb1N0eWxlU2hlZXRNYXAgbV9pZFRvU3R5bGVTaGVl
dDsKKyAgICBJZFRvU3R5bGVTaGVldFRleHRNYXAgbV9pZFRvU3R5bGVTaGVldFRleHQ7CiAgICAg
RG9jdW1lbnRUb1N0eWxlU2hlZXRNYXAgbV9kb2N1bWVudE5vZGVUb0luc3BlY3RvclN0eWxlU2hl
ZXRNYXA7CiAKICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RvckNvbnRyb2xsZXI7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDFlMTMxZjcu
LjdmYjA1MmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBA
IC01OSwxMiArNTksMTEgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckNTU1N0b3JlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xp
ZW50LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
RGF0YWJhc2VSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCIK
LSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgotI2luY2x1ZGUgIkluc3BlY3RvckZyb250
ZW5kQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1
ZGUgIkluc3BlY3RvclJlc291cmNlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RvcmFnZUFnZW50
LmgiCkBAIC0xOTksNyArMTk4LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNv
bnRyb2xsZXIoKQogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0ZWRQYWdlRGVzdHJv
eWVkKCkKIHsKICAgICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgbV9mcm9udGVuZC0+ZGlzY29u
bmVjdEZyb21CYWNrZW5kKCk7CisgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RlZFBhZ2VEZXN0
cm95ZWQoKTsKIAogICAgIGhpZGVIaWdobGlnaHQoKTsKIApAQCAtNTM4LDggKzUzNyw3IEBAIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2xvc2UoKQogewogICAgIGlmICghbV9mcm9udGVuZCkK
ICAgICAgICAgcmV0dXJuOwotICAgIG1fZnJvbnRlbmQtPmRpc2Nvbm5lY3RGcm9tQmFja2VuZCgp
OwotICAgIGRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIG1fZnJvbnRlbmQtPmNsb3NlKCk7CiB9
CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKCkKQEAgLTE4
NDUsNTggKzE4NDMsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlbG9hZFBhZ2UoKQog
ICAgIG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCktPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNj
aGVkdWxlUmVmcmVzaCh0cnVlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxs
SW5zZXJ0RE9NTm9kZUltcGwoTm9kZSogbm9kZSwgTm9kZSogcGFyZW50KQotewotI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmICghbV9kZWJ1Z2dlckFnZW50IHx8ICFtX2Rv
bUFnZW50KQotICAgICAgICByZXR1cm47Ci0gICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4g
ZGV0YWlsczsKLSAgICBpZiAobV9kb21BZ2VudC0+c2hvdWxkQnJlYWtPbk5vZGVJbnNlcnRpb24o
bm9kZSwgcGFyZW50LCAmZGV0YWlscykpCi0gICAgICAgIG1fZGVidWdnZXJBZ2VudC0+YnJlYWtQ
cm9ncmFtKGRldGFpbHMpOwotI2VuZGlmCi19Ci0KLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlkSW5zZXJ0RE9NTm9kZUltcGwoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAobV9kb21BZ2VudCkK
LSAgICAgICAgbV9kb21BZ2VudC0+ZGlkSW5zZXJ0RE9NTm9kZShub2RlKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjp3aWxsUmVtb3ZlRE9NTm9kZUltcGwoTm9kZSogbm9kZSkKLXsK
LSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoIW1fZGVidWdnZXJBZ2Vu
dCB8fCAhbV9kb21BZ2VudCkKLSAgICAgICAgcmV0dXJuOwotICAgIFBhc3NSZWZQdHI8SW5zcGVj
dG9yVmFsdWU+IGRldGFpbHM7Ci0gICAgaWYgKG1fZG9tQWdlbnQtPnNob3VsZEJyZWFrT25Ob2Rl
UmVtb3ZhbChub2RlLCAmZGV0YWlscykpCi0gICAgICAgIG1fZGVidWdnZXJBZ2VudC0+YnJlYWtQ
cm9ncmFtKGRldGFpbHMpOwotI2VuZGlmCi19Ci0KLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
ZGlkUmVtb3ZlRE9NTm9kZUltcGwoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAobV9kb21BZ2VudCkK
LSAgICAgICAgbV9kb21BZ2VudC0+ZGlkUmVtb3ZlRE9NTm9kZShub2RlKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JDb250cm9sbGVyOjp3aWxsTW9kaWZ5RE9NQXR0ckltcGwoRWxlbWVudCogZWxlbWVu
dCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoIW1fZGVidWdn
ZXJBZ2VudCB8fCAhbV9kb21BZ2VudCkKLSAgICAgICAgcmV0dXJuOwotICAgIFBhc3NSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+IGRldGFpbHM7Ci0gICAgaWYgKG1fZG9tQWdlbnQtPnNob3VsZEJyZWFr
T25BdHRyaWJ1dGVNb2RpZmljYXRpb24oZWxlbWVudCwgJmRldGFpbHMpKQotICAgICAgICBtX2Rl
YnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShkZXRhaWxzKTsKLSNlbmRpZgotfQotCi12b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OmRpZE1vZGlmeURPTUF0dHJJbXBsKEVsZW1lbnQqIGVsZW1lbnQp
Ci17Ci0gICAgaWYgKG1fZG9tQWdlbnQpCi0gICAgICAgIG1fZG9tQWdlbnQtPmRpZE1vZGlmeURP
TUF0dHIoZWxlbWVudCk7Ci19Ci0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aAppbmRleCAyMzY4YTFlLi43ZWQyNTQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oCkBAIC0zMSw4ICszMSw3IEBACiAKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5j
bHVkZSAiQ29va2llLmgiCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIlBhZ2UuaCIK
KyNpbmNsdWRlICJJbnNwZWN0b3JET01BZ2VudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpA
QCAtNTksNyArNTgsNiBAQCBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kOwogY2xhc3MgSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXI7CiBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JDU1NTdG9yZTsKLWNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRE9N
U3RvcmFnZVJlc291cmNlOwogY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZTsKIGNsYXNz
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CkBAIC0xODUsMTIgKzE4Myw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG1haW5SZXNvdXJjZUZpcmVkTG9hZEV2ZW50KERvY3VtZW50TG9hZGVyKiwgY29uc3Qg
S1VSTCYpOwogICAgIHZvaWQgbWFpblJlc291cmNlRmlyZWRET01Db250ZW50RXZlbnQoRG9jdW1l
bnRMb2FkZXIqLCBjb25zdCBLVVJMJik7CiAKLSAgICBzdGF0aWMgdm9pZCB3aWxsSW5zZXJ0RE9N
Tm9kZShOb2RlKiBub2RlLCBOb2RlKiBwYXJlbnQpOwotICAgIHN0YXRpYyB2b2lkIGRpZEluc2Vy
dERPTU5vZGUoTm9kZSopOwotICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1vdmVET01Ob2RlKE5vZGUq
KTsKLSAgICBzdGF0aWMgdm9pZCB3aWxsTW9kaWZ5RE9NQXR0cihFbGVtZW50Kik7Ci0gICAgc3Rh
dGljIHZvaWQgZGlkTW9kaWZ5RE9NQXR0cihFbGVtZW50Kik7Ci0KKyAgICB2b2lkIGRpZEluc2Vy
dERPTU5vZGUoTm9kZSopOworICAgIHZvaWQgZGlkUmVtb3ZlRE9NTm9kZShOb2RlKik7CisgICAg
dm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQqKTsKICNpZiBFTkFCTEUoV09SS0VSUykKICAg
ICBlbnVtIFdvcmtlckFjdGlvbiB7IFdvcmtlckNyZWF0ZWQsIFdvcmtlckRlc3Ryb3llZCB9Owog
CkBAIC0zMTEsMTQgKzMwNiw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZEV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQobG9uZyBjYWxsSWQsIGNvbnN0IFN0cmluZyYganNvblJlc3VsdCk7CiAK
LSAgICBzdGF0aWMgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlckZvck5v
ZGUoTm9kZSopOwotICAgIHZvaWQgd2lsbEluc2VydERPTU5vZGVJbXBsKE5vZGUqIG5vZGUsIE5v
ZGUqIHBhcmVudCk7Ci0gICAgdm9pZCBkaWRJbnNlcnRET01Ob2RlSW1wbChOb2RlKik7Ci0gICAg
dm9pZCB3aWxsUmVtb3ZlRE9NTm9kZUltcGwoTm9kZSopOwotICAgIHZvaWQgZGlkUmVtb3ZlRE9N
Tm9kZUltcGwoTm9kZSopOwotICAgIHZvaWQgd2lsbE1vZGlmeURPTUF0dHJJbXBsKEVsZW1lbnQq
KTsKLSAgICB2b2lkIGRpZE1vZGlmeURPTUF0dHJJbXBsKEVsZW1lbnQqKTsKLQogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGZyaWVuZCBjbGFzcyBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OwogICAgIFN0cmluZyBicmVha3BvaW50c1NldHRpbmdLZXkoKTsKQEAgLTM4OSw1OSAr
Mzc2LDMwIEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLWlubGluZSB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OndpbGxJbnNlcnRET01Ob2RlKE5vZGUqIG5vZGUsIE5vZGUqIHBhcmVudCkKLXsK
LSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNw
ZWN0b3JDb250cm9sbGVyID0gaW5zcGVjdG9yQ29udHJvbGxlckZvck5vZGUocGFyZW50KSkKLSAg
ICAgICAgaW5zcGVjdG9yQ29udHJvbGxlci0+d2lsbEluc2VydERPTU5vZGVJbXBsKG5vZGUsIHBh
cmVudCk7Ci0jZW5kaWYKLX0KLQogaW5saW5lIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlk
SW5zZXJ0RE9NTm9kZShOb2RlKiBub2RlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAg
aWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIgPSBpbnNwZWN0b3JD
b250cm9sbGVyRm9yTm9kZShub2RlKSkKLSAgICAgICAgaW5zcGVjdG9yQ29udHJvbGxlci0+ZGlk
SW5zZXJ0RE9NTm9kZUltcGwobm9kZSk7CisgICAgaWYgKG1fZG9tQWdlbnQpCisgICAgICAgIG1f
ZG9tQWdlbnQtPmRpZEluc2VydERPTU5vZGUobm9kZSk7CiAjZW5kaWYKIH0KIAotaW5saW5lIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFJlbW92ZURPTU5vZGUoTm9kZSogbm9kZSkKK2lu
bGluZSB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlbW92ZURPTU5vZGUoTm9kZSogbm9k
ZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVy
KiBpbnNwZWN0b3JDb250cm9sbGVyID0gaW5zcGVjdG9yQ29udHJvbGxlckZvck5vZGUobm9kZSkp
IHsKLSAgICAgICAgaW5zcGVjdG9yQ29udHJvbGxlci0+d2lsbFJlbW92ZURPTU5vZGVJbXBsKG5v
ZGUpOwotICAgICAgICBpbnNwZWN0b3JDb250cm9sbGVyLT5kaWRSZW1vdmVET01Ob2RlSW1wbChu
b2RlKTsKLSAgICB9Ci0jZW5kaWYKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6d2lsbE1vZGlmeURPTUF0dHIoRWxlbWVudCogZWxlbWVudCkKLXsKLSNpZiBFTkFCTEUoSU5T
UEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVy
ID0gaW5zcGVjdG9yQ29udHJvbGxlckZvck5vZGUoZWxlbWVudCkpCi0gICAgICAgIGluc3BlY3Rv
ckNvbnRyb2xsZXItPndpbGxNb2RpZnlET01BdHRySW1wbChlbGVtZW50KTsKKyAgICBpZiAobV9k
b21BZ2VudCkKKyAgICAgICAgbV9kb21BZ2VudC0+ZGlkUmVtb3ZlRE9NTm9kZShub2RlKTsKICNl
bmRpZgogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRNb2RpZnlET01B
dHRyKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAo
SW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3BlY3RvckNvbnRy
b2xsZXJGb3JOb2RlKGVsZW1lbnQpKQotICAgICAgICBpbnNwZWN0b3JDb250cm9sbGVyLT5kaWRN
b2RpZnlET01BdHRySW1wbChlbGVtZW50KTsKKyAgICBpZiAobV9kb21BZ2VudCkKKyAgICAgICAg
bV9kb21BZ2VudC0+ZGlkTW9kaWZ5RE9NQXR0cihlbGVtZW50KTsKICNlbmRpZgogfQogCi1pbmxp
bmUgSW5zcGVjdG9yQ29udHJvbGxlciogSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdG9yQ29u
dHJvbGxlckZvck5vZGUoTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoUGFnZSogcGFnZSA9IG5vZGUt
PmRvY3VtZW50KCktPnBhZ2UoKSkgewotICAgICAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciog
aW5zcGVjdG9yQ29udHJvbGxlciA9IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKSkgewotICAg
ICAgICAgICAgaWYgKGluc3BlY3RvckNvbnRyb2xsZXItPmhhc0Zyb250ZW5kKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGluc3BlY3RvckNvbnRyb2xsZXI7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIDA7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vICFk
ZWZpbmVkKEluc3BlY3RvckNvbnRyb2xsZXJfaCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcAppbmRleCAyM2MyMmFhLi5mNGRkNWJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQXR0ci5oIgog
I2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgog
I2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5j
bHVkZSAiQ1NTUnVsZUxpc3QuaCIKQEAgLTY0LDYgKzY1LDcgQEAKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5
bGVDb25zdGFudHMuaCIKKyNpbmNsdWRlICJTY3JpcHREZWJ1Z1NlcnZlci5oIgogI2luY2x1ZGUg
IlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5oIgogI2lu
Y2x1ZGUgIlRleHQuaCIKQEAgLTIwOSw2ICsyMTEsOCBAQCBjb25zdCBpbnQgZG9tQnJlYWtwb2lu
dERlcml2ZWRUeXBlU2hpZnQgPSAxNjsKIAogfQogCitJbnNwZWN0b3JET01BZ2VudCogSW5zcGVj
dG9yRE9NQWdlbnQ6OnNfZG9tQWdlbnRPbkJyZWFrcG9pbnQgPSAwOworCiBJbnNwZWN0b3JET01B
Z2VudDo6SW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlLCBJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiAgICAgOiBFdmVudExpc3RlbmVyKEluc3BlY3RvckRP
TUFnZW50VHlwZSkKICAgICAsIG1fY3NzU3RvcmUoY3NzU3RvcmUpCkBAIC0yMjEsNiArMjI1LDkg
QEAgSW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3Jl
KiBjc3NTdG9yZSwgSW5zcGVjdG9yRnJvbnQKIEluc3BlY3RvckRPTUFnZW50Ojp+SW5zcGVjdG9y
RE9NQWdlbnQoKQogewogICAgIHJlc2V0KCk7CisKKyAgICBpZiAodGhpcyA9PSBzX2RvbUFnZW50
T25CcmVha3BvaW50KQorICAgICAgICBzX2RvbUFnZW50T25CcmVha3BvaW50ID0gMDsKIH0KIAog
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVzZXQoKQpAQCAtNzc0LDQyICs3ODEsNiBAQCB2b2lk
IEluc3BlY3RvckRPTUFnZW50OjpyZW1vdmVET01CcmVha3BvaW50KGxvbmcgbm9kZUlkLCBsb25n
IHR5cGUpCiAgICAgfQogfQogCi1ib29sIEluc3BlY3RvckRPTUFnZW50OjpzaG91bGRCcmVha09u
Tm9kZUluc2VydGlvbihOb2RlKiwgTm9kZSogcGFyZW50LCBQYXNzUmVmUHRyPEluc3BlY3RvclZh
bHVlPiogZGV0YWlscykKLXsKLSAgICBpZiAoIWhhc0JyZWFrcG9pbnQocGFyZW50LCBTdWJ0cmVl
TW9kaWZpZWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4gZGV0YWlsc09iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgZGV0
YWlsc09iamVjdC0+c2V0T2JqZWN0KCJicmVha3BvaW50IiwgY3JlYXRlQnJlYWtwb2ludChwYXJl
bnQsIFN1YnRyZWVNb2RpZmllZCkpOwotICAgICpkZXRhaWxzID0gZGV0YWlsc09iamVjdDsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBJbnNwZWN0b3JET01BZ2VudDo6c2hvdWxkQnJlYWtP
bk5vZGVSZW1vdmFsKE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBkZXRh
aWxzKQotewotICAgIGJvb2wgaGFzTm9kZVJlbW92ZWRCcmVha3BvaW50ID0gaGFzQnJlYWtwb2lu
dChub2RlLCBOb2RlUmVtb3ZlZCk7Ci0gICAgYm9vbCBoYXNBbnlCcmVha3BvaW50ID0gaGFzTm9k
ZVJlbW92ZWRCcmVha3BvaW50IHx8IGhhc0JyZWFrcG9pbnQoaW5uZXJQYXJlbnROb2RlKG5vZGUp
LCBTdWJ0cmVlTW9kaWZpZWQpOwotICAgIGlmICghaGFzQW55QnJlYWtwb2ludCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGV0YWlsc09iamVj
dCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgaWYgKGhhc05vZGVSZW1vdmVkQnJl
YWtwb2ludCkKLSAgICAgICAgZGV0YWlsc09iamVjdC0+c2V0T2JqZWN0KCJicmVha3BvaW50Iiwg
Y3JlYXRlQnJlYWtwb2ludChub2RlLCBOb2RlUmVtb3ZlZCkpOwotICAgIGVsc2UKLSAgICAgICAg
ZGV0YWlsc09iamVjdC0+c2V0T2JqZWN0KCJicmVha3BvaW50IiwgY3JlYXRlQnJlYWtwb2ludChp
bm5lclBhcmVudE5vZGUobm9kZSksIFN1YnRyZWVNb2RpZmllZCkpOwotICAgICpkZXRhaWxzID0g
ZGV0YWlsc09iamVjdDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBJbnNwZWN0b3JET01B
Z2VudDo6c2hvdWxkQnJlYWtPbkF0dHJpYnV0ZU1vZGlmaWNhdGlvbihFbGVtZW50KiBlbGVtZW50
LCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiogZGV0YWlscykKLXsKLSAgICBpZiAoIWhhc0Jy
ZWFrcG9pbnQoZWxlbWVudCwgQXR0cmlidXRlTW9kaWZpZWQpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZGV0YWlsc09iamVjdCA9IEluc3BlY3Rv
ck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgZGV0YWlsc09iamVjdC0+c2V0T2JqZWN0KCJicmVha3Bv
aW50IiwgY3JlYXRlQnJlYWtwb2ludChlbGVtZW50LCBBdHRyaWJ1dGVNb2RpZmllZCkpOwotICAg
ICpkZXRhaWxzID0gZGV0YWlsc09iamVjdDsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogU3RyaW5n
IEluc3BlY3RvckRPTUFnZW50Ojpkb2N1bWVudFVSTFN0cmluZyhEb2N1bWVudCogZG9jdW1lbnQp
IGNvbnN0CiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCBkb2N1bWVudC0+dXJsKCkuaXNOdWxsKCkp
CkBAIC0xMDE1LDcgKzk4NiwxMiBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRJbnNlcnRE
T01Ob2RlKE5vZGUqIG5vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2JyZWFrcG9p
bnRzLnNpemUoKSkgewotICAgICAgICB1aW50MzJfdCBtYXNrID0gbV9icmVha3BvaW50cy5nZXQo
aW5uZXJQYXJlbnROb2RlKG5vZGUpKTsKKyAgICAgICAgTm9kZSogcGFyZW50ID0gaW5uZXJQYXJl
bnROb2RlKG5vZGUpOworICAgICAgICBpZiAoaGFzQnJlYWtwb2ludChwYXJlbnQsIFN1YnRyZWVN
b2RpZmllZCkpIHsKKyAgICAgICAgICAgIGlmICghcGF1c2VPbkJyZWFrcG9pbnQoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdWludDMyX3QgbWFzayA9IG1f
YnJlYWtwb2ludHMuZ2V0KHBhcmVudCk7CiAgICAgICAgIHVpbnQzMl90IGluaGVyaXRhYmxlVHlw
ZXNNYXNrID0gKG1hc2sgfCAobWFzayA+PiBkb21CcmVha3BvaW50RGVyaXZlZFR5cGVTaGlmdCkp
ICYgaW5oZXJpdGFibGVET01CcmVha3BvaW50VHlwZXNNYXNrOwogICAgICAgICBpZiAoaW5oZXJp
dGFibGVUeXBlc01hc2spCiAgICAgICAgICAgICB1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMobm9k
ZSwgaW5oZXJpdGFibGVUeXBlc01hc2ssIHRydWUpOwpAQCAtMTA0OCw2ICsxMDI0LDEwIEBAIHZv
aWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpZFJlbW92ZURPTU5vZGUoTm9kZSogbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKG1fYnJlYWtwb2ludHMuc2l6ZSgpKSB7CisgICAgICAgIGlm
IChoYXNCcmVha3BvaW50KG5vZGUsIE5vZGVSZW1vdmVkKSB8fCBoYXNCcmVha3BvaW50KGlubmVy
UGFyZW50Tm9kZShub2RlKSwgU3VidHJlZU1vZGlmaWVkKSkgeworICAgICAgICAgICAgaWYgKCFw
YXVzZU9uQnJlYWtwb2ludCgpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQog
ICAgICAgICAvLyBSZW1vdmUgc3VidHJlZSBicmVha3BvaW50cy4KICAgICAgICAgbV9icmVha3Bv
aW50cy5yZW1vdmUobm9kZSk7CiAgICAgICAgIFZlY3RvcjxOb2RlKj4gc3RhY2soMSwgaW5uZXJG
aXJzdENoaWxkKG5vZGUpKTsKQEAgLTEwODQsMjQgKzEwNjQsMTIgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6ZGlkTW9kaWZ5RE9NQXR0cihFbGVtZW50KiBlbGVtZW50KQogICAgIGlmICghaWQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1fZnJvbnRlbmQtPmF0dHJpYnV0ZXNVcGRhdGVkKGlk
LCBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0ZXMoZWxlbWVudCkpOwotfQotCi1QYXNzUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OmNyZWF0ZUJyZWFrcG9pbnQo
Tm9kZSogbm9kZSwgbG9uZyB0eXBlKQotewotICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJy
ZWFrcG9pbnQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotCi0gICAgLy8gRmluZCBicmVh
a3BvaW50IG93bmVyLgotICAgIHdoaWxlICghKG1fYnJlYWtwb2ludHMuZ2V0KG5vZGUpICYgKDEg
PDwgdHlwZSkpKSB7Ci0gICAgICAgIG5vZGUgPSBpbm5lclBhcmVudE5vZGUobm9kZSk7Ci0gICAg
ICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoaGFzQnJlYWtwb2ludChlbGVtZW50LCBBdHRyaWJ1
dGVNb2RpZmllZCkpIHsKKyAgICAgICAgaWYgKCFwYXVzZU9uQnJlYWtwb2ludCgpKQorICAgICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBsb25nIG5vZGVJZCA9IG1fZG9jdW1lbnROb2RlVG9J
ZE1hcC5nZXQobm9kZSk7Ci0gICAgQVNTRVJUKG5vZGVJZCk7CiAKLSAgICBicmVha3BvaW50LT5z
ZXROdW1iZXIoIm5vZGVJZCIsIG5vZGVJZCk7Ci0gICAgYnJlYWtwb2ludC0+c2V0TnVtYmVyKCJ0
eXBlIiwgdHlwZSk7Ci0gICAgcmV0dXJuIGJyZWFrcG9pbnQucmVsZWFzZSgpOworICAgIG1fZnJv
bnRlbmQtPmF0dHJpYnV0ZXNVcGRhdGVkKGlkLCBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0
ZXMoZWxlbWVudCkpOwogfQogCiBib29sIEluc3BlY3RvckRPTUFnZW50OjpoYXNCcmVha3BvaW50
KE5vZGUqIG5vZGUsIGxvbmcgdHlwZSkKQEAgLTExMTEsNiArMTA3OSwxOSBAQCBib29sIEluc3Bl
Y3RvckRPTUFnZW50OjpoYXNCcmVha3BvaW50KE5vZGUqIG5vZGUsIGxvbmcgdHlwZSkKICAgICBy
ZXR1cm4gbV9icmVha3BvaW50cy5nZXQobm9kZSkgJiAocm9vdEJpdCB8IGRlcml2ZWRCaXQpOwog
fQogCitib29sIEluc3BlY3RvckRPTUFnZW50OjpwYXVzZU9uQnJlYWtwb2ludCgpCit7CisjaWYg
RU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgc19kb21BZ2VudE9uQnJlYWtwb2ludCA9
IHRoaXM7CisgICAgU2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpLmJyZWFrUHJvZ3JhbSgpOwor
ICAgIGJvb2wgZGVsZXRlZCA9ICFzX2RvbUFnZW50T25CcmVha3BvaW50OworICAgIHNfZG9tQWdl
bnRPbkJyZWFrcG9pbnQgPSAwOworICAgIHJldHVybiAhZGVsZXRlZDsKKyNlbHNlCisgICAgcmV0
dXJuIHRydWU7CisjZW5kaWYKK30KKwogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dXBkYXRlU3Vi
dHJlZUJyZWFrcG9pbnRzKE5vZGUqIG5vZGUsIHVpbnQzMl90IHJvb3RNYXNrLCBib29sIHNldCkK
IHsKICAgICB1aW50MzJfdCBvbGRNYXNrID0gbV9icmVha3BvaW50cy5nZXQobm9kZSk7CkBAIC0x
MTkxLDI2ICsxMTcyLDM0IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU2hlZXQo
bG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+CiAgICAgICAgICpzdHls
ZVNoZWV0T2JqZWN0ID0gYnVpbGRPYmplY3RGb3JTdHlsZVNoZWV0KHN0eWxlU2hlZXQtPmRvY3Vt
ZW50KCksIHN0eWxlU2hlZXQpOwogfQogCi12b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRSdWxl
UmFuZ2VzKGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBydWxlUmFu
Z2UpCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEobG9uZyBzdHls
ZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogZGF0YU9iamVjdCkKIHsKLSAgICBDU1NTdHls
ZVNoZWV0KiBzdHlsZVNoZWV0ID0gY3NzU3RvcmUoKS0+c3R5bGVTaGVldEZvcklkKHN0eWxlU2hl
ZXRJZCk7Ci0gICAgaWYgKHN0eWxlU2hlZXQgJiYgc3R5bGVTaGVldC0+ZG9jdW1lbnQoKSkgewot
ICAgICAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBydWxlUmFuZ2VzID0gY3NzU3RvcmUo
KS0+Z2V0UnVsZVJhbmdlcyhzdHlsZVNoZWV0KTsKLSAgICAgICAgaWYgKCFydWxlUmFuZ2VzLnNp
emUoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVzdWx0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgZm9yIChIYXNo
TWFwPGxvbmcsIFNvdXJjZVJhbmdlPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VzLmJlZ2luKCk7
IGl0ICE9IHJ1bGVSYW5nZXMuZW5kKCk7ICsraXQpIHsKLSAgICAgICAgICAgIGlmIChpdC0+c2Vj
b25kLnNlY29uZCkgewotICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJ1
bGVSYW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAgcmVz
dWx0LT5zZXRPYmplY3QoU3RyaW5nOjpudW1iZXIoaXQtPmZpcnN0KS51dGY4KCkuZGF0YSgpLCBy
dWxlUmFuZ2UpOwotICAgICAgICAgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJvZHlS
YW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgICAgICAgICAgcnVsZVJh
bmdlLT5zZXRPYmplY3QoImJvZHlSYW5nZSIsIGJvZHlSYW5nZSk7Ci0gICAgICAgICAgICAgICAg
Ym9keVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0IiwgaXQtPnNlY29uZC5maXJzdCk7Ci0gICAgICAg
ICAgICAgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIGl0LT5zZWNvbmQuc2Vjb25kKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAqcnVsZVJhbmdlID0gcmVzdWx0LnJl
bGVhc2UoKTsKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSA9IGNzc1N0b3JlKCktPnN0
eWxlRm9ySWQoc3R5bGVJZCk7CisgICAgaWYgKCFzdHlsZSkKKyAgICAgICAgcmV0dXJuOworICAg
IFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBDU1NTdHlsZVNvdXJjZURh
dGE6OmNyZWF0ZSgpOworICAgIGJvb2wgc3VjY2VzcyA9IGNzc1N0b3JlKCktPmdldFN0eWxlU291
cmNlRGF0YShzdHlsZSwgJnNvdXJjZURhdGEpOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAg
cmV0dXJuOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9i
amVjdDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYm9keVJhbmdlID0g
SW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXN1bHQtPnNldE9iamVjdCgiYm9keVJh
bmdlIiwgYm9keVJhbmdlKTsKKyAgICBib2R5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBzb3Vy
Y2VEYXRhLT5zdHlsZUJvZHlSYW5nZS5maXJzdCk7CisgICAgYm9keVJhbmdlLT5zZXROdW1iZXIo
ImVuZCIsIHNvdXJjZURhdGEtPnN0eWxlQm9keVJhbmdlLnNlY29uZCk7CisgICAgUmVmUHRyPElu
c3BlY3RvckFycmF5PiBwcm9wZXJ0eVJhbmdlcyA9IEluc3BlY3RvckFycmF5OjpjcmVhdGUoKTsK
KyAgICByZXN1bHQtPnNldEFycmF5KCJwcm9wZXJ0eURhdGEiLCBwcm9wZXJ0eVJhbmdlcyk7Cisg
ICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPiYgcHJv
cGVydHlEYXRhID0gc291cmNlRGF0YS0+cHJvcGVydHlEYXRhOworICAgIGZvciAoVmVjdG9yPHN0
ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPjo6aXRlcmF0b3IgaXQgPSBw
cm9wZXJ0eURhdGEuYmVnaW4oKTsgaXQgIT0gcHJvcGVydHlEYXRhLmVuZCgpOyArK2l0KSB7Cisg
ICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHByb3BlcnR5UmFuZ2UgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRTdHJpbmcoIm5hbWUi
LCBpdC0+Zmlyc3QubmFtZSk7CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldFN0cmluZygidmFs
dWUiLCBpdC0+Zmlyc3QudmFsdWUpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRCb29sZWFu
KCJpbXBvcnRhbnQiLCBpdC0+Zmlyc3QuaW1wb3J0YW50KTsKKyAgICAgICAgcHJvcGVydHlSYW5n
ZS0+c2V0Qm9vbGVhbigicGFyc2VkIiwgaXQtPmZpcnN0LnBhcnNlZCk7CisgICAgICAgIHByb3Bl
cnR5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBpdC0+c2Vjb25kLmZpcnN0KTsKKyAgICAgICAg
cHJvcGVydHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25kLnNlY29uZCk7CisgICAg
ICAgIHByb3BlcnR5UmFuZ2VzLT5wdXNoT2JqZWN0KHByb3BlcnR5UmFuZ2UpOwogICAgIH0KKyAg
ICAqZGF0YU9iamVjdCA9IHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6OmdldElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+
KiBzdHlsZSkKQEAgLTE0NjksNyArMTQ1OCw3IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZShDU1NTdHlsZURlY2xhCiAg
ICAgaWYgKGJpbmQpIHsKICAgICAgICAgbG9uZyBzdHlsZUlkID0gY3NzU3RvcmUoKS0+YmluZFN0
eWxlKHN0eWxlKTsKICAgICAgICAgcmVzdWx0LT5zZXROdW1iZXIoImlkIiwgc3R5bGVJZCk7Ci0g
ICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNo
ZWV0KHN0eWxlKTsKKyAgICAgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCA9IElu
c3BlY3RvckNTU1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxlKTsKICAgICAgICAgaWYg
KHBhcmVudFN0eWxlU2hlZXQpCiAgICAgICAgICAgICByZXN1bHQtPnNldE51bWJlcigicGFyZW50
U3R5bGVTaGVldElkIiwgY3NzU3RvcmUoKS0+YmluZFN0eWxlU2hlZXQocGFyZW50U3R5bGVTaGVl
dCkpOwogCkBAIC0xNjgxLDIwICsxNjcwLDYgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4g
SW5zcGVjdG9yRE9NQWdlbnQ6OnRvQXJyYXkoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGEKICAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAotQ1NTU3R5bGVTaGVldCogSW5zcGVjdG9y
RE9NQWdlbnQ6OmdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUp
Ci17Ci0gICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCA9IHN0eWxlLT5wYXJlbnRS
dWxlKCkgPyBzdHlsZS0+cGFyZW50UnVsZSgpLT5wYXJlbnRTdHlsZVNoZWV0KCkgOiAwOwotICAg
IGlmICghcGFyZW50U3R5bGVTaGVldCkgewotICAgICAgICBTdHlsZUJhc2UqIHBhcmVudCA9IHN0
eWxlLT5wYXJlbnQoKTsKLSAgICAgICAgaWYgKHBhcmVudCAmJiBwYXJlbnQtPmlzQ1NTU3R5bGVT
aGVldCgpKSB7Ci0gICAgICAgICAgICBwYXJlbnRTdHlsZVNoZWV0ID0gc3RhdGljX2Nhc3Q8Q1NT
U3R5bGVTaGVldCo+KHBhcmVudCk7Ci0gICAgICAgICAgICBpZiAoIXBhcmVudFN0eWxlU2hlZXQt
Pmxlbmd0aCgpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgfQot
ICAgIHJldHVybiBwYXJlbnRTdHlsZVNoZWV0OwotfQotCiB2b2lkIEluc3BlY3RvckRPTUFnZW50
Ojpvbk1hdGNoSm9ic1RpbWVyKFRpbWVyPEluc3BlY3RvckRPTUFnZW50PiopCiB7CiAgICAgaWYg
KCFtX3BlbmRpbmdNYXRjaEpvYnMuc2l6ZSgpKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuaAppbmRleCA5NzUxZThlLi4wOTU3YzA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDU1NTdG9y
ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIk5vZGVMaXN0Lmgi
CisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CkBAIC0xMTMsOSArMTE0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2b2lkIHNlYXJjaENhbmNlbGVkKCk7CiAgICAgICAgIHZvaWQgc2V0RE9NQnJlYWtw
b2ludChsb25nIG5vZGVJZCwgbG9uZyB0eXBlKTsKICAgICAgICAgdm9pZCByZW1vdmVET01CcmVh
a3BvaW50KGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpOwotICAgICAgICBib29sIHNob3VsZEJyZWFr
T25Ob2RlSW5zZXJ0aW9uKE5vZGUqIG5vZGUsIE5vZGUqIHBhcmVudCwgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JWYWx1ZT4qIGRldGFpbHMpOwotICAgICAgICBib29sIHNob3VsZEJyZWFrT25Ob2RlUmVt
b3ZhbChOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiogZGV0YWlscyk7Ci0g
ICAgICAgIGJvb2wgc2hvdWxkQnJlYWtPbkF0dHJpYnV0ZU1vZGlmaWNhdGlvbihFbGVtZW50KiBl
bGVtZW50LCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiogZGV0YWlscyk7CiAKICAgICAgICAg
Ly8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQgZm9yIENTUyBzdHlsZXMgaW5zcGVj
dGlvbi4KICAgICAgICAgdm9pZCBnZXRTdHlsZXMobG9uZyBub2RlSWQsIGJvb2wgYXV0aG9yT25s
eSwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVzKTsKQEAgLTEyMyw3ICsxMjEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZ2V0SW5saW5lU3R5bGUobG9uZyBub2Rl
SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQgZ2V0Q29t
cHV0ZWRTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVzKTsK
ICAgICAgICAgdm9pZCBnZXRTdHlsZVNoZWV0KGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0Piogc3R5bGVTaGVldE9iamVjdCk7Ci0gICAgICAgIHZvaWQgZ2V0UnVsZVJh
bmdlcyhsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcnVsZVJhbmdl
KTsKKyAgICAgICAgdm9pZCBnZXRTdHlsZVNvdXJjZURhdGEobG9uZyBzdHlsZUlkLCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiogZGF0YU9iamVjdCk7CiAgICAgICAgIHZvaWQgYXBwbHlTdHlsZVRl
eHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUsIGJvb2wqIHN1Y2Nlc3MsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxl
T2JqZWN0LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAg
ICAgIHZvaWQgc2V0U3R5bGVUZXh0KGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjc3NUZXh0
LCBib29sKiBzdWNjZXNzKTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGxvbmcgc3R5
bGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNj
ZXNzKTsKQEAgLTE0OCw3ICsxNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZv
aWQgY29weU5vZGUobG9uZyBub2RlSWQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGlj
IENTU1N0eWxlU2hlZXQqIGdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiop
OwogICAgICAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nKERvY3VtZW50KiBkb2N1bWVudCk7CiAgICAg
ICAgIHZvaWQgc3RvcExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogCkBAIC0xNjIsNyAr
MTU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHB1c2hEb2N1bWVudFRv
RnJvbnRlbmQoKTsKIAogICAgICAgICBib29sIGhhc0JyZWFrcG9pbnQoTm9kZSogbm9kZSwgbG9u
ZyB0eXBlKTsKLSAgICAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGNyZWF0ZUJyZWFr
cG9pbnQoTm9kZSogbm9kZSwgbG9uZyB0eXBlKTsKKyAgICAgICAgYm9vbCBwYXVzZU9uQnJlYWtw
b2ludCgpOwogICAgICAgICB2b2lkIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50cyhOb2RlKiByb290
LCB1aW50MzJfdCByb290TWFzaywgYm9vbCB2YWx1ZSk7CiAKICAgICAgICAgUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXR0cmlidXRlU3R5bGVzKEVsZW1lbnQqIGVs
ZW1lbnQpOwpAQCAtMjE5LDYgKzIxNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
SGFzaFNldDxSZWZQdHI8Tm9kZT4gPiBtX3NlYXJjaFJlc3VsdHM7CiAgICAgICAgIFZlY3Rvcjxs
b25nPiBtX2luc3BlY3RlZE5vZGVzOwogICAgICAgICBIYXNoTWFwPE5vZGUqLCB1aW50MzJfdD4g
bV9icmVha3BvaW50czsKKworICAgICAgICBzdGF0aWMgSW5zcGVjdG9yRE9NQWdlbnQqIHNfZG9t
QWdlbnRPbkJyZWFrcG9pbnQ7CiAgICAgfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGZkOWZkZjMuLjM1N2EwNDMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC01NiwxNCAr
NTYsMTEgQEAgUGFzc093blB0cjxJbnNwZWN0b3JEZWJ1Z2dlckFnZW50PiBJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpjcmVhdGUoSW5zcGVjdG9yQ29udHIKICAgICByZXR1cm4gYWdlbnQucmVsZWFz
ZSgpOwogfQogCi1JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50
OjpzX2RlYnVnZ2VyQWdlbnRPbkJyZWFrcG9pbnQgPSAwOwotCiBJbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3Rv
ckNvbnRyb2xsZXIsIEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKICAgICA6IG1faW5zcGVj
dG9yQ29udHJvbGxlcihpbnNwZWN0b3JDb250cm9sbGVyKQogICAgICwgbV9mcm9udGVuZChmcm9u
dGVuZCkKICAgICAsIG1fcGF1c2VkU2NyaXB0U3RhdGUoMCkKICAgICAsIG1fYnJlYWtwb2ludHNM
b2FkZWQoZmFsc2UpCi0gICAgLCBtX2JyZWFrUHJvZ3JhbVJlYXNvbihJbnNwZWN0b3JWYWx1ZTo6
bnVsbCgpKQogewogfQogCkBAIC03MSw5ICs2OCw2IEBAIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6
On5JbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkKIHsKICAgICBTY3JpcHREZWJ1Z1NlcnZlcjo6c2hh
cmVkKCkucmVtb3ZlTGlzdGVuZXIodGhpcywgbV9pbnNwZWN0b3JDb250cm9sbGVyLT5pbnNwZWN0
ZWRQYWdlKCkpOwogICAgIG1fcGF1c2VkU2NyaXB0U3RhdGUgPSAwOwotCi0gICAgaWYgKHRoaXMg
PT0gc19kZWJ1Z2dlckFnZW50T25CcmVha3BvaW50KQotICAgICAgICBzX2RlYnVnZ2VyQWdlbnRP
bkJyZWFrcG9pbnQgPSAwOwogfQogCiBib29sIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmlzRGVi
dWdnZXJBbHdheXNFbmFibGVkKCkKQEAgLTI4OCwxMiArMjgyLDkgQEAgdm9pZCBJbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50OjpmYWlsZWRUb1BhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25z
dCBTdHJpbmcKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkUGF1c2UoU2NyaXB0U3Rh
dGUqIHNjcmlwdFN0YXRlKQogewogICAgIEFTU0VSVChzY3JpcHRTdGF0ZSAmJiAhbV9wYXVzZWRT
Y3JpcHRTdGF0ZSk7Ci0gICAgQVNTRVJUKG1fYnJlYWtQcm9ncmFtUmVhc29uKTsKICAgICBtX3Bh
dXNlZFNjcmlwdFN0YXRlID0gc2NyaXB0U3RhdGU7Ci0gICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gZGV0YWlscyA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgZGV0YWlscy0+c2V0
VmFsdWUoImNhbGxGcmFtZXMiLCBjdXJyZW50Q2FsbEZyYW1lcygpKTsKLSAgICBkZXRhaWxzLT5z
ZXRWYWx1ZSgicmVhc29uIiwgbV9icmVha1Byb2dyYW1SZWFzb24pOwotICAgIG1fZnJvbnRlbmQt
PnBhdXNlZFNjcmlwdChkZXRhaWxzKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGNhbGxG
cmFtZXMgPSBjdXJyZW50Q2FsbEZyYW1lcygpOworICAgIG1fZnJvbnRlbmQtPnBhdXNlZFNjcmlw
dChjYWxsRnJhbWVzLmdldCgpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpk
aWRDb250aW51ZSgpCkBAIC0zMDIsMTkgKzI5Myw2IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlkQ29udGludWUoKQogICAgIG1fZnJvbnRlbmQtPnJlc3VtZWRTY3JpcHQoKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpicmVha1Byb2dyYW0oUGFzc1JlZlB0cjxJ
bnNwZWN0b3JWYWx1ZT4gcmVhc29uKQotewotICAgIHNfZGVidWdnZXJBZ2VudE9uQnJlYWtwb2lu
dCA9IHRoaXM7Ci0gICAgbV9icmVha1Byb2dyYW1SZWFzb24gPSByZWFzb247Ci0KLSAgICBTY3Jp
cHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkuYnJlYWtQcm9ncmFtKCk7Ci0gICAgaWYgKCFzX2RlYnVn
Z2VyQWdlbnRPbkJyZWFrcG9pbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNfZGVidWdnZXJB
Z2VudE9uQnJlYWtwb2ludCA9IDA7Ci0gICAgbV9icmVha1Byb2dyYW1SZWFzb24gPSBJbnNwZWN0
b3JWYWx1ZTo6bnVsbCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuaAppbmRleCA3OWIwYTBlLi45MWJjZDQ5IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGdldFNjcmlwdFNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJjZUlELCBTdHJpbmcq
IHNjcmlwdFNvdXJjZSk7CiAKICAgICB2b2lkIHBhdXNlKCk7Ci0gICAgdm9pZCBicmVha1Byb2dy
YW0oUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVhc29uKTsKICAgICB2b2lkIHJlc3VtZSgp
OwogICAgIHZvaWQgc3RlcE92ZXJTdGF0ZW1lbnQoKTsKICAgICB2b2lkIHN0ZXBJbnRvU3RhdGVt
ZW50KCk7CkBAIC05NCw4ICs5Myw2IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxTdHJpbmcsIFNv
dXJjZUJyZWFrcG9pbnRzPiBtX3N0aWNreUJyZWFrcG9pbnRzOwogICAgIEhhc2hNYXA8U3RyaW5n
LCB1bnNpZ25lZD4gbV9icmVha3BvaW50c01hcHBpbmc7CiAgICAgYm9vbCBtX2JyZWFrcG9pbnRz
TG9hZGVkOwotICAgIHN0YXRpYyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBzX2RlYnVnZ2VyQWdl
bnRPbkJyZWFrcG9pbnQ7Ci0gICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBtX2JyZWFrUHJvZ3Jh
bVJlYXNvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDMxZjUyYjcuLmNiYmJjNTMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaApAQCAtNTMsNyArNTMs
NiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYnJpbmdUb0Zyb250KCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvdygpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzY29u
bmVjdEZyb21CYWNrZW5kKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBdHRhY2hX
aW5kb3coKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXRhY2hXaW5kb3coKSA9IDA7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAppbmRleCBiYzUy
OWVhLi44ZGMwMGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5jcHAKQEAgLTE2NiwxNCArMTY2LDYgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmNs
b3NlV2luZG93KCkKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNj
b25uZWN0RnJvbUJhY2tlbmQoKQotewotICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICBtX2Ns
aWVudC0+ZGlzY29ubmVjdEZyb21CYWNrZW5kKCk7Ci0gICAgICAgIGRpc2Nvbm5lY3RDbGllbnQo
KTsgLy8gRGlzY29ubmVjdCBmcm9tIGNsaWVudC4KLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0OjpicmluZ1RvRnJvbnQoKQogewogICAgIGlmIChtX2NsaWVudCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKaW5kZXggZDMzMzg5My4uNGIzNDNm
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKQEAgLTYyLDcg
KzYyLDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygpOwogICAgIHZv
aWQgcmVxdWVzdERldGFjaFdpbmRvdygpOwogICAgIHZvaWQgY2xvc2VXaW5kb3coKTsKLSAgICB2
b2lkIGRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpOwogICAgIHZvaWQgYnJpbmdUb0Zyb250KCk7CiAg
ICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCA2ODUzYzdkLi4wYzdjZjhi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRs
CisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKQEAgLTM0
LDcgKzM0LDYgQEAgbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9SU5T
UEVDVE9SXSBJbnNwZWN0b3JGcm9udGVuZEhvc3QgewogICAgICAgICB2b2lkIGxvYWRlZCgpOwog
ICAgICAgICB2b2lkIGNsb3NlV2luZG93KCk7Ci0gICAgICAgIHZvaWQgZGlzY29ubmVjdEZyb21C
YWNrZW5kKCk7CiAgICAgICAgIHZvaWQgYnJpbmdUb0Zyb250KCk7CiAgICAgICAgIHZvaWQgaW5z
cGVjdGVkVVJMQ2hhbmdlZChpbiBET01TdHJpbmcgbmV3VVJMKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVmFsdWVzLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JWYWx1ZXMuaAppbmRleCA0MDM2ZjU1Li4zZGQ5NTk0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JWYWx1ZXMuaApAQCAtNjcsOCArNjcsNiBAQCBwdWJsaWM6CiAKICAgICBUeXBlIHR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAotICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IFR5cGVOdWxsOyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgYXNCb29sZWFu
KGJvb2wqIG91dHB1dCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGFzTnVtYmVyKGRvdWJsZSog
b3V0cHV0KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgYXNOdW1iZXIobG9uZyogb3V0cHV0KSBj
b25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50
c1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRz
U2lkZWJhclBhbmUuanMKaW5kZXggY2RhNzJmYi4uNDA4ODI5ZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKQEAgLTEw
Niw3ICsxMDYsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludEl0ZW0gPSBmdW5jdGlvbihicmVh
a3BvaW50KQogICAgIHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoY2hlY2tib3hFbGVtZW50KTsK
IAogICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcigiZW5hYmxlLWNoYW5nZWQi
LCB0aGlzLl9lbmFibGVDaGFuZ2VkLCB0aGlzKTsKLSAgICB0aGlzLl9icmVha3BvaW50LmFkZEV2
ZW50TGlzdGVuZXIoInJlbW92ZWQiLCB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycy5iaW5k
KHRoaXMsICJyZW1vdmVkIikpOworICAgIHRoaXMuX2JyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5l
cigicmVtb3ZlZCIsIHRoaXMuX3JlbW92ZWQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludEl0ZW0ucHJvdG90eXBlID0gewpAQCAtMTI4LDEwICsxMjgsMTUgQEAgV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnRJdGVtLnByb3RvdHlwZSA9IHsKICAgICAgICAgZXZlbnQuc3RvcFByb3Bh
Z2F0aW9uKCk7CiAgICAgfSwKIAotICAgIF9lbmFibGVDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkK
KyAgICBfZW5hYmxlQ2hhbmdlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGNoZWNr
Ym94ID0gdGhpcy5fZWxlbWVudC5maXJzdENoaWxkOwogICAgICAgICBjaGVja2JveC5jaGVja2Vk
ID0gdGhpcy5fYnJlYWtwb2ludC5lbmFibGVkOworICAgIH0sCisKKyAgICBfcmVtb3ZlZDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoInJl
bW92ZWQiKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9JbnNwZWN0b3JGcm9udGVuZEhvc3RTdHViLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0luc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanMKaW5kZXggMDdmMzkyZC4uYzRlNmJm
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3RvckZyb250
ZW5kSG9zdFN0dWIuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luc3BlY3Rv
ckZyb250ZW5kSG9zdFN0dWIuanMKQEAgLTY0LDExICs2NCw2IEBAIFdlYkluc3BlY3Rvci5JbnNw
ZWN0b3JGcm9udGVuZEhvc3RTdHViLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fd2luZG93
VmlzaWJsZSA9IGZhbHNlOwogICAgIH0sCiAKLSAgICBkaXNjb25uZWN0RnJvbUJhY2tlbmQ6IGZ1
bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3dpbmRvd1Zpc2libGUgPSBmYWxzZTsKLSAg
ICB9LAotCiAgICAgYXR0YWNoOiBmdW5jdGlvbigpCiAgICAgewogICAgIH0sCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdC5qcwppbmRleCBiZTNmMDIwLi40MmQ2ODUwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTYyLDE0ICs2MiwxMSBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5zb3VyY2Up
CiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgaWYgKHRoaXMuX2xpbmVzQ291bnQpCi0g
ICAgICAgICAgICByZXR1cm4gdGhpcy5fbGluZXNDb3VudDsKICAgICAgICAgdGhpcy5fbGluZXND
b3VudCA9IDA7CiAgICAgICAgIHZhciBsYXN0SW5kZXggPSB0aGlzLnNvdXJjZS5pbmRleE9mKCJc
biIpOwogICAgICAgICB3aGlsZSAobGFzdEluZGV4ICE9PSAtMSkgewogICAgICAgICAgICAgbGFz
dEluZGV4ID0gdGhpcy5zb3VyY2UuaW5kZXhPZigiXG4iLCBsYXN0SW5kZXggKyAxKQogICAgICAg
ICAgICAgdGhpcy5fbGluZXNDb3VudCsrOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9saW5lc0NvdW50OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9XZWJLaXQucXJjIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5x
cmMKaW5kZXggZjkwYTlmZS4uYjY0MDkzNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dl
YktpdC5xcmMKQEAgLTEwNiw3ICsxMDYsNiBAQAogICAgIDxmaWxlPldlbGNvbWVWaWV3LmpzPC9m
aWxlPgogICAgIDxmaWxlPldvcmtlcnNTaWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5h
dWRpdHMuY3NzPC9maWxlPgotICAgIDxmaWxlPmhlYXBQcm9maWxlci5jc3M8L2ZpbGU+CiAgICAg
PGZpbGU+aGVscFNjcmVlbi5jc3M8L2ZpbGU+CiAgICAgPGZpbGU+aW5zcGVjdG9yLmNzczwvZmls
ZT4KICAgICA8ZmlsZT5pbnNwZWN0b3JTeW50YXhIaWdobGlnaHQuY3NzPC9maWxlPgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2hlYXBQcm9maWxlci5jc3MgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaGVhcFByb2ZpbGVyLmNzcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDNhNmRkMC4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaGVhcFByb2ZpbGVyLmNzcworKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS5o
ZWFwLXNuYXBzaG90LXNpZGViYXItdHJlZS1pdGVtIC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwo
SW1hZ2VzL3Byb2ZpbGVJY29uLnBuZyk7Ci19Ci0KLS5oZWFwLXNuYXBzaG90LXNpZGViYXItdHJl
ZS1pdGVtLnNtYWxsIC5pY29uIHsKLSAgICBjb250ZW50OiB1cmwoSW1hZ2VzL3Byb2ZpbGVTbWFs
bEljb24ucG5nKTsKLX0KLQotLmhlYXAtc25hcHNob3QtdmlldyB7Ci0gICAgZGlzcGxheTogbm9u
ZTsKLSAgICBvdmVyZmxvdzogaGlkZGVuOwotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0
b3A6IDA7Ci0gICAgbGVmdDogMDsKLSAgICByaWdodDogMDsKLSAgICBib3R0b206IDA7Ci19Ci0K
LS5oZWFwLXNuYXBzaG90LXZpZXcudmlzaWJsZSB7Ci0gICAgZGlzcGxheTogYmxvY2s7Ci19Ci0K
LS5oZWFwLXNuYXBzaG90LXZpZXcgLmRhdGEtZ3JpZCB7Ci0gICAgYm9yZGVyOiBub25lOwotICAg
IG1heC1oZWlnaHQ6IDEwMCU7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIGxlZnQ6IDA7
Ci0gICAgcmlnaHQ6IDA7Ci0gICAgdG9wOiAwOwotICAgIGJvdHRvbTogOTNweDsKLX0KLQotLmhl
YXAtc25hcHNob3QtdmlldyAuZGF0YS1ncmlkIHRoLmNvdW50LWNvbHVtbiB7Ci0gICAgdGV4dC1h
bGlnbjogY2VudGVyOwotfQotCi0uaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQgdGQuY291
bnQtY29sdW1uIHsKLSAgICB0ZXh0LWFsaWduOiByaWdodDsKLX0KLQotLmhlYXAtc25hcHNob3Qt
dmlldyAuZGF0YS1ncmlkIHRoLnNpemUtY29sdW1uIHsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7
Ci19Ci0KLS5oZWFwLXNuYXBzaG90LXZpZXcgLmRhdGEtZ3JpZCB0ZC5zaXplLWNvbHVtbiB7Ci0g
ICAgdGV4dC1hbGlnbjogcmlnaHQ7Ci19Ci0KLS5oZWFwLXNuYXBzaG90LXZpZXcgLmRhdGEtZ3Jp
ZCB0aC5jb3VudERlbHRhLWNvbHVtbiB7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotCi0u
aGVhcC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQgdGQuY291bnREZWx0YS1jb2x1bW4gewotICAg
IHRleHQtYWxpZ246IHJpZ2h0OwotfQotCi0uaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQg
dGguc2l6ZURlbHRhLWNvbHVtbiB7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotCi0uaGVh
cC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQgdGQuc2l6ZURlbHRhLWNvbHVtbiB7Ci0gICAgdGV4
dC1hbGlnbjogcmlnaHQ7Ci19Ci0KLSNoZWFwLXNuYXBzaG90LXN1bW1hcnktY29udGFpbmVyIHsK
LSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgcGFkZGluZy10b3A6IDIwcHg7Ci0gICAgYm90
dG9tOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgaGVpZ2h0OiA5M3B4Owot
ICAgIG1hcmdpbi1sZWZ0OiAtMXB4OwotICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDEw
MiwgMTAyLCAxMDIpOwotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDEsIDExMSwgMTMwKTsK
LSAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3As
IGxlZnQgYm90dG9tLCBmcm9tKHJnYmEoMCwgMCwgMCwgMC41KSksIHRvKHJnYmEoMCwgMCwgMCwg
MCkpKTsKLSAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7Ci0gICAgYmFja2dyb3VuZC1w
b3NpdGlvbjogdG9wOwotICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICB0ZXh0LXNoYWRvdzog
YmxhY2sgMCAxcHggMXB4OwotICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7Ci0gICAgY29sb3I6IHdo
aXRlOwotICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAxcHggNnB4OwotICAgIC13ZWJraXQt
YmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmc7Ci0gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6
IHBhZGRpbmc7Ci19Ci0KLS5oZWFwLXNuYXBzaG90LXN1bW1hcnkgewotICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKLSAgICB3aWR0aDogNTAlOwotICAgIG1pbi13aWR0aDogMzAwcHg7Ci0gICAg
cG9zaXRpb246IHJlbGF0aXZlOwotfQotCi0uaGVhcC1zbmFwc2hvdC1zdW1tYXJ5IGNhbnZhcy5z
dW1tYXJ5LWdyYXBoIHsKLSAgICB3aWR0aDogMjI1cHg7Ci19Ci0KLS5oZWFwLXNuYXBzaG90LXN1
bW1hcnktbGFiZWwgewotICAgIGZvbnQtc2l6ZTogMTJweDsKLSAgICBmb250LXdlaWdodDogYm9s
ZDsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiAxcHg7Ci0gICAgd2lkdGg6IDUw
JTsKLSAgICBsZWZ0OiAyNSU7Ci19CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmNzcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuY3NzCmluZGV4IDQzMTk4MTYuLmEzZmZhNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuY3NzCkBAIC0zOTEwLDYgKzM5MTAsMTE1IEBAIGJ1dHRvbi5lbmFibGUt
dG9nZ2xlLXN0YXR1cy1iYXItaXRlbSAuZ2x5cGggewogICAgIC13ZWJraXQtbWFzay1pbWFnZTog
dXJsKEltYWdlcy9yZWxvYWRCdXR0b25HbHlwaC5wbmcpOwogfQogCisvKiBIZWFwIFNuYXBzaG90
IFZpZXcgU3R5bGVzICovCisKKy8qIEZJWE1FOiBtb3ZlIHRvIGEgc2VwYXJhdGUgY3NzIGZpbGUg
Ki8KKy5oZWFwLXNuYXBzaG90LXNpZGViYXItdHJlZS1pdGVtIC5pY29uIHsKKyAgICBjb250ZW50
OiB1cmwoSW1hZ2VzL3Byb2ZpbGVJY29uLnBuZyk7Cit9CisKKy5oZWFwLXNuYXBzaG90LXNpZGVi
YXItdHJlZS1pdGVtLnNtYWxsIC5pY29uIHsKKyAgICBjb250ZW50OiB1cmwoSW1hZ2VzL3Byb2Zp
bGVTbWFsbEljb24ucG5nKTsKK30KKworLmhlYXAtc25hcHNob3QtdmlldyB7CisgICAgZGlzcGxh
eTogbm9uZTsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAgICByaWdodDogMDsKKyAgICBib3R0b206IDA7
Cit9CisKKy5oZWFwLXNuYXBzaG90LXZpZXcudmlzaWJsZSB7CisgICAgZGlzcGxheTogYmxvY2s7
Cit9CisKKy5oZWFwLXNuYXBzaG90LXZpZXcgLmRhdGEtZ3JpZCB7CisgICAgYm9yZGVyOiBub25l
OworICAgIG1heC1oZWlnaHQ6IDEwMCU7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGxl
ZnQ6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgdG9wOiAwOworICAgIGJvdHRvbTogOTNweDsKK30K
KworLmhlYXAtc25hcHNob3QtdmlldyAuZGF0YS1ncmlkIHRoLmNvdW50LWNvbHVtbiB7CisgICAg
dGV4dC1hbGlnbjogY2VudGVyOworfQorCisuaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQg
dGQuY291bnQtY29sdW1uIHsKKyAgICB0ZXh0LWFsaWduOiByaWdodDsKK30KKworLmhlYXAtc25h
cHNob3QtdmlldyAuZGF0YS1ncmlkIHRoLnNpemUtY29sdW1uIHsKKyAgICB0ZXh0LWFsaWduOiBj
ZW50ZXI7Cit9CisKKy5oZWFwLXNuYXBzaG90LXZpZXcgLmRhdGEtZ3JpZCB0ZC5zaXplLWNvbHVt
biB7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKKy5oZWFwLXNuYXBzaG90LXZpZXcgLmRh
dGEtZ3JpZCB0aC5jb3VudERlbHRhLWNvbHVtbiB7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOwor
fQorCisuaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQgdGQuY291bnREZWx0YS1jb2x1bW4g
eworICAgIHRleHQtYWxpZ246IHJpZ2h0OworfQorCisuaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRh
LWdyaWQgdGguc2l6ZURlbHRhLWNvbHVtbiB7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQor
CisuaGVhcC1zbmFwc2hvdC12aWV3IC5kYXRhLWdyaWQgdGQuc2l6ZURlbHRhLWNvbHVtbiB7Cisg
ICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKKyNoZWFwLXNuYXBzaG90LXN1bW1hcnktY29udGFp
bmVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgcGFkZGluZy10b3A6IDIwcHg7Cisg
ICAgYm90dG9tOiAwOworICAgIGxlZnQ6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgaGVpZ2h0OiA5
M3B4OworICAgIG1hcmdpbi1sZWZ0OiAtMXB4OworICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQg
cmdiKDEwMiwgMTAyLCAxMDIpOworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxMDEsIDExMSwg
MTMwKTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVm
dCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHJnYmEoMCwgMCwgMCwgMC41KSksIHRvKHJnYmEoMCwg
MCwgMCwgMCkpKTsKKyAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7CisgICAgYmFja2dy
b3VuZC1wb3NpdGlvbjogdG9wOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICB0ZXh0LXNo
YWRvdzogYmxhY2sgMCAxcHggMXB4OworICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgICAgY29s
b3I6IHdoaXRlOworICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiAxcHggNnB4OworICAgIC13
ZWJraXQtYmFja2dyb3VuZC1vcmlnaW46IHBhZGRpbmc7CisgICAgLXdlYmtpdC1iYWNrZ3JvdW5k
LWNsaXA6IHBhZGRpbmc7Cit9CisKKy5oZWFwLXNuYXBzaG90LXN1bW1hcnkgeworICAgIGRpc3Bs
YXk6IGlubGluZS1ibG9jazsKKyAgICB3aWR0aDogNTAlOworICAgIG1pbi13aWR0aDogMzAwcHg7
CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorCisuaGVhcC1zbmFwc2hvdC1zdW1tYXJ5IGNh
bnZhcy5zdW1tYXJ5LWdyYXBoIHsKKyAgICB3aWR0aDogMjI1cHg7Cit9CisKKy5oZWFwLXNuYXBz
aG90LXN1bW1hcnktbGFiZWwgeworICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICBmb250LXdlaWdo
dDogYm9sZDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAxcHg7CisgICAgd2lk
dGg6IDUwJTsKKyAgICBsZWZ0OiAyNSU7Cit9CisKIC5kZWxldGUtc3RvcmFnZS1zdGF0dXMtYmFy
LWl0ZW0gLmdseXBoIHsKICAgICAtd2Via2l0LW1hc2staW1hZ2U6IHVybChJbWFnZXMvZXhjbHVk
ZUJ1dHRvbkdseXBoLnBuZyk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmh0bWwKaW5kZXggMDUzNmVlNi4uM2U0YjZjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMzAsNyArMzAsNiBAQCBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogPGhlYWQ+
CiAgICAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9dXRmLTgiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9ImF1ZGl0cy5jc3MiPgotICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0i
dGV4dC9jc3MiIGhyZWY9ImhlYXBQcm9maWxlci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imluc3BlY3Rvci5jc3MiPgogICAgIDxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imluc3BlY3RvclN5bnRheEhpZ2hs
aWdodC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9InBvcG92ZXIuY3NzIj4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
CmluZGV4IDg0MDc0NWYuLjBiZmYzMzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qcwpAQCAtNzE1LDkgKzcxNSw5IEBAIFdlYkluc3BlY3Rvci5jbG9zZSA9IGZ1bmN0
aW9uKGV2ZW50KQogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5jbG9zZVdpbmRvdygpOwogfQog
Ci1XZWJJbnNwZWN0b3IuZGlzY29ubmVjdEZyb21CYWNrZW5kID0gZnVuY3Rpb24oKQorV2ViSW5z
cGVjdG9yLmluc3BlY3RlZFBhZ2VEZXN0cm95ZWQgPSBmdW5jdGlvbigpCiB7Ci0gICAgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpOworICAgIFdlYkluc3BlY3Rv
ci5jbG9zZSgpOwogfQogCiBXZWJJbnNwZWN0b3IuZG9jdW1lbnRNb3VzZU92ZXIgPSBmdW5jdGlv
bihldmVudCkKQEAgLTE0NDUsOSArMTQ0NSw5IEBAIFdlYkluc3BlY3Rvci5mYWlsZWRUb1BhcnNl
U2NyaXB0U291cmNlID0gZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2UsIHN0YXJ0aW5nTGluCiAg
ICAgdGhpcy5wYW5lbHMuc2NyaXB0cy5hZGRTY3JpcHQobnVsbCwgc291cmNlVVJMLCBzb3VyY2Us
IHN0YXJ0aW5nTGluZSwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2UpOwogfQogCi1XZWJJbnNwZWN0
b3IucGF1c2VkU2NyaXB0ID0gZnVuY3Rpb24oZGV0YWlscykKK1dlYkluc3BlY3Rvci5wYXVzZWRT
Y3JpcHQgPSBmdW5jdGlvbihjYWxsRnJhbWVzKQogewotICAgIHRoaXMucGFuZWxzLnNjcmlwdHMu
ZGVidWdnZXJQYXVzZWQoZGV0YWlscy5jYWxsRnJhbWVzKTsKKyAgICB0aGlzLnBhbmVscy5zY3Jp
cHRzLmRlYnVnZ2VyUGF1c2VkKGNhbGxGcmFtZXMpOwogICAgIEluc3BlY3RvckZyb250ZW5kSG9z
dC5icmluZ1RvRnJvbnQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvQ2FjaGUu
Y3BwIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGUuY3BwCmluZGV4IDNlMjU3NmYuLmNiNTM2ZTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0NhY2hlLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9D
YWNoZS5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBDYWNoZWRSZXNvdXJjZSogQ2FjaGU6OnJlcXVl
c3RSZXNvdXJjZShEb2NMb2FkZXIqIGRvY0xvYWRlciwgQ2FjaGVkUmVzb3VyY2U6OlR5cAogICAg
IGlmIChyZXNvdXJjZSAmJiByZXF1ZXN0SXNQcmVsb2FkICYmICFyZXNvdXJjZS0+aXNQcmVsb2Fk
ZWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCi0gICAgaWYgKFNlY3VyaXR5T3JpZ2luOjpy
ZXN0cmljdEFjY2Vzc1RvTG9jYWwoKSAmJiAhU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkodXJs
LCBTdHJpbmcoKSwgZG9jTG9hZGVyLT5kb2MoKSkpIHsKKyAgICBpZiAoU2VjdXJpdHlPcmlnaW46
OnJlc3RyaWN0QWNjZXNzVG9Mb2NhbCgpICYmICFTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZCh1cmws
IFN0cmluZygpLCBkb2NMb2FkZXItPmRvYygpKSkgewogICAgICAgICBEb2N1bWVudCogZG9jID0g
ZG9jTG9hZGVyLT5kb2MoKTsKICAgICAgICAgaWYgKGRvYyAmJiAhcmVxdWVzdElzUHJlbG9hZCkK
ICAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQoZG9jLT5mcmFt
ZSgpLCB1cmwuc3RyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBkMWU0MDZjLi40NmI2
MTFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXJDbGllbnQuaCIKLSNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luSGFsdGVyQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiUG9wdXBNZW51LmgiCkBAIC02Miw4ICs2MSw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q7Ci0KIGNsYXNzIEVtcHR5
UG9wdXBNZW51IDogcHVibGljIFBvcHVwTWVudSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNob3coY29uc3QgSW50UmVjdCYsIEZyYW1lVmlldyosIGludCkge30KQEAgLTE5Myw5ICsxOTAs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikge30KIAogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNz
TGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikge30KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIHt9Ci0gICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hS
b290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSB7fTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIHt9OworICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCkge307CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKFdJTikKQEAgLTM2Nyw3ICszNjQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25n
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciosIHVuc2lnbmVk
IGxvbmcgbG9uZykgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKSB7
IHJldHVybiBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+KCk7IH0KIH07CiAKIGNs
YXNzIEVtcHR5RWRpdG9yQ2xpZW50IDogcHVibGljIEVkaXRvckNsaWVudCwgcHVibGljIE5vbmNv
cHlhYmxlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA3OTg2ZGQ5Li5lZWI1MjgzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC01OCw3ICs1OCw2IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGll
bnQuaCIKLSNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiRnJh
bWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hvckVs
ZW1lbnQuaCIKQEAgLTIxNyw5ICsyMTYsNiBAQCBGcmFtZUxvYWRlcjo6fkZyYW1lTG9hZGVyKCkK
ICAgICAgICAgKCppdCktPmxvYWRlcigpLT5tX29wZW5lciA9IDA7CiAgICAgICAgIAogICAgIG1f
Y2xpZW50LT5mcmFtZUxvYWRlckRlc3Ryb3llZCgpOwotCi0gICAgaWYgKG1fbmV0d29ya2luZ0Nv
bnRleHQpCi0gICAgICAgIG1fbmV0d29ya2luZ0NvbnRleHQtPmludmFsaWRhdGUoKTsKIH0KIAog
dm9pZCBGcmFtZUxvYWRlcjo6aW5pdCgpCkBAIC0yNDAsOCArMjM2LDYgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6aW5pdCgpCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuY2VsUGFyc2luZygpOwog
ICAgIG1fc3RhdGVNYWNoaW5lLmFkdmFuY2VUbyhGcmFtZUxvYWRlclN0YXRlTWFjaGluZTo6RGlz
cGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KTsKICAgICBtX2RpZENhbGxJbXBsaWNpdENsb3Nl
ID0gdHJ1ZTsKLQotICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBtX2NsaWVudC0+Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6c2V0RGVmZXJzTG9hZGlu
Zyhib29sIGRlZmVycykKQEAgLTEyNjEsNyArMTI1NSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6Omxv
YWRGcmFtZVJlcXVlc3QoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBsb2Nr
SGlzCiAKICAgICBBU1NFUlQoZnJhbWUoKS0+ZG9jdW1lbnQoKSk7CiAgICAgaWYgKFNjaGVtZVJl
Z2lzdHJ5OjpzaG91bGRUcmVhdFVSTEFzTG9jYWwodXJsLnN0cmluZygpKSAmJiAhaXNGZWVkV2l0
aE5lc3RlZFByb3RvY29sSW5IVFRQRmFtaWx5KHVybCkpIHsKLSAgICAgICAgaWYgKCFTZWN1cml0
eU9yaWdpbjo6Y2FuRGlzcGxheSh1cmwsIFN0cmluZygpLCBmcmFtZSgpLT5kb2N1bWVudCgpKSAm
JiAhU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkodXJsLCByZWZlcnJlciwgMCkpIHsKKyAgICAg
ICAgaWYgKCFTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZCh1cmwsIFN0cmluZygpLCBmcmFtZSgpLT5k
b2N1bWVudCgpKSAmJiAhU2VjdXJpdHlPcmlnaW46OmNhbkxvYWQodXJsLCByZWZlcnJlciwgMCkp
IHsKICAgICAgICAgICAgIEZyYW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQobV9mcmFt
ZSwgdXJsLnN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ1
MywxMSArMzQ0Nyw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnRlbGxDbGllbnRBYm91dFBhc3RNZW1v
cnlDYWNoZUxvYWRzKCkKICAgICB9CiB9CiAKLU5ldHdvcmtpbmdDb250ZXh0KiBGcmFtZUxvYWRl
cjo6bmV0d29ya2luZ0NvbnRleHQoKSBjb25zdAotewotICAgIHJldHVybiBtX25ldHdvcmtpbmdD
b250ZXh0LmdldCgpOwotfQotCiBib29sIEZyYW1lTG9hZGVyQ2xpZW50OjpoYXNIVE1MVmlldygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBlMjM3Nzlk
Li41YWRjZjQxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTYyLDEyICs2MiwxMCBAQCBjbGFzcyBG
b3JtU3RhdGU7CiBjbGFzcyBGb3JtU3VibWlzc2lvbjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJh
bWVMb2FkZXJDbGllbnQ7Ci1jbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgSGlz
dG9yeUl0ZW07CiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7CiBjbGFzcyBJY29uTG9hZGVyOwogY2xh
c3MgTmF2aWdhdGlvbkFjdGlvbjsKLWNsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUHJv
dGVjdGlvblNwYWNlOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlTG9hZGVy
OwpAQCAtMzMzLDggKzMzMSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGFnZURpc21pc3NhbEV2
ZW50QmVpbmdEaXNwYXRjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlRGlzbWlzc2FsRXZlbnRC
ZWluZ0Rpc3BhdGNoZWQ7IH0KIAotICAgIGlubGluZSBOZXR3b3JraW5nQ29udGV4dCogbmV0d29y
a2luZ0NvbnRleHQoKSBjb25zdDsKLQogcHJpdmF0ZToKICAgICBib29sIGNhbkNhY2hlUGFnZUNv
bnRhaW5pbmdUaGlzRnJhbWUoKTsKICNpZm5kZWYgTkRFQlVHCkBAIC01MDEsOCArNDk3LDYgQEAg
cHJpdmF0ZToKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCBtX2RpZERpc3BhdGNoRGlkQ29tbWl0
TG9hZDsKICNlbmRpZgotCi0gICAgUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0
d29ya2luZ0NvbnRleHQ7CiB9OwogCiAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBjcmVh
dGVXaW5kb3coKSBpbiBKU0RPTVdpbmRvd0Jhc2UuY3BwLCBmb3IgZXhhbXBsZSwgZm9yCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwNGE4ODY4Li4zNWVlZTMyIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTUyLDcgKzUyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIEZvcm1TdGF0ZTsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFt
ZUxvYWRlcjsKLSAgICBjbGFzcyBGcmFtZU5ldHdvcmtpbmdDb250ZXh0OwogICAgIGNsYXNzIEhp
c3RvcnlJdGVtOwogICAgIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50OwogICAgIGNsYXNzIEhUTUxG
b3JtRWxlbWVudDsKQEAgLTI4Myw4ICsyODIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1NjcmlwdCgpIHsgfQogICAgICAgICAvLyBUaGlz
IGNhbGxiYWNrIGlzIHNpbWlsYXIsIGJ1dCBmb3IgcGx1Z2lucy4KICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpIHsgfQotCi0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpID0gMDsK
ICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9JbWFnZURvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3Bw
CmluZGV4IDY5NTFiN2IuLmNjM2M4NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ltYWdl
RG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ltYWdlRG9jdW1lbnQuY3BwCkBAIC0x
NTIsOSArMTUyLDcgQEAgdm9pZCBJbWFnZURvY3VtZW50UGFyc2VyOjpmaW5pc2goKQogCiAgICAg
ICAgIGNhY2hlZEltYWdlLT5zZXRSZXNwb25zZShkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKSk7CiAKLSAgICAgICAgLy8gUmVwb3J0IHRo
ZSBuYXR1cmFsIGltYWdlIHNpemUgaW4gdGhlIHBhZ2UgdGl0bGUsIHJlZ2FyZGxlc3Mgb2Ygem9v
bQotICAgICAgICAvLyBsZXZlbC4KLSAgICAgICAgSW50U2l6ZSBzaXplID0gY2FjaGVkSW1hZ2Ut
PmltYWdlU2l6ZSgxLjBmKTsKKyAgICAgICAgSW50U2l6ZSBzaXplID0gY2FjaGVkSW1hZ2UtPmlt
YWdlU2l6ZShwYWdlWm9vbUZhY3Rvcihkb2N1bWVudCgpKSk7CiAgICAgICAgIGlmIChzaXplLndp
ZHRoKCkpIHsKICAgICAgICAgICAgIC8vIENvbXB1dGUgdGhlIHRpdGxlLCB3ZSB1c2UgdGhlIGRl
Y29kZWQgZmlsZW5hbWUgb2YgdGhlIHJlc291cmNlLCBmYWxsaW5nCiAgICAgICAgICAgICAvLyBi
YWNrIG9uIHRoZSAoZGVjb2RlZCkgaG9zdG5hbWUgaWYgdGhlcmUgaXMgbm8gcGF0aC4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUGlu
Z0xvYWRlci5jcHAKaW5kZXggMjY4ZTAwNy4uNjBjNmYzMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvUGluZ0xvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAK
QEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIFBpbmdMb2FkZXI6
OmxvYWRJbWFnZShGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIHsKLSAgICBpZiAoU2Vj
dXJpdHlPcmlnaW46OnJlc3RyaWN0QWNjZXNzVG9Mb2NhbCgpICYmICFTZWN1cml0eU9yaWdpbjo6
Y2FuRGlzcGxheSh1cmwsIFN0cmluZygpLCBmcmFtZS0+ZG9jdW1lbnQoKSkpIHsKKyAgICBpZiAo
U2VjdXJpdHlPcmlnaW46OnJlc3RyaWN0QWNjZXNzVG9Mb2NhbCgpICYmICFTZWN1cml0eU9yaWdp
bjo6Y2FuTG9hZCh1cmwsIFN0cmluZygpLCBmcmFtZS0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAg
RnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZChmcmFtZSwgdXJsKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1JlZGlyZWN0U2NoZWR1
bGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1JlZGlyZWN0U2NoZWR1bGVyLmNwcAppbmRleCA3Y2I2
MDkwLi40NjFiYWY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9SZWRpcmVjdFNjaGVkdWxl
ci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVkaXJlY3RTY2hlZHVsZXIuY3BwCkBAIC0xNzIs
MTkgKzE3MiwxNiBAQCBwcml2YXRlOgogCiBjbGFzcyBTY2hlZHVsZWRGb3JtU3VibWlzc2lvbiA6
IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9uIHsKIHB1YmxpYzoKLSAgICBTY2hlZHVsZWRGb3Jt
U3VibWlzc2lvbihQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBzdWJtaXNzaW9uLCBib29sIGxv
Y2tCYWNrRm9yd2FyZExpc3QsIGJvb2wgZHVyaW5nTG9hZCwgYm9vbCB3YXNVc2VyR2VzdHVyZSkK
KyAgICBTY2hlZHVsZWRGb3JtU3VibWlzc2lvbihQYXNzUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBz
dWJtaXNzaW9uLCBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGJvb2wgZHVyaW5nTG9hZCkKICAg
ICAgICAgOiBTY2hlZHVsZWROYXZpZ2F0aW9uKDAsIHN1Ym1pc3Npb24tPmxvY2tIaXN0b3J5KCks
IGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmluZ0xvYWQsIHRydWUpCiAgICAgICAgICwgbV9zdWJt
aXNzaW9uKHN1Ym1pc3Npb24pCiAgICAgICAgICwgbV9oYXZlVG9sZENsaWVudChmYWxzZSkKLSAg
ICAgICAgLCBtX3dhc1VzZXJHZXN0dXJlKHdhc1VzZXJHZXN0dXJlKQogICAgIHsKICAgICAgICAg
QVNTRVJUKG1fc3VibWlzc2lvbi0+c3RhdGUoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lk
IGZpcmUoRnJhbWUqIGZyYW1lKQogICAgIHsKLSAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3Ig
Z2VzdHVyZUluZGljYXRvcihtX3dhc1VzZXJHZXN0dXJlID8gRGVmaW5pdGVseVByb2Nlc3NpbmdV
c2VyR2VzdHVyZSA6IERlZmluaXRlbHlOb3RQcm9jZXNzaW5nVXNlckdlc3R1cmUpOwotCiAgICAg
ICAgIC8vIFRoZSBzdWJtaXRGb3JtIGZ1bmN0aW9uIHdpbGwgZmluZCBhIHRhcmdldCBmcmFtZSBi
ZWZvcmUgdXNpbmcgdGhlIHJlZGlyZWN0aW9uIHRpbWVyLgogICAgICAgICAvLyBOb3cgdGhhdCB0
aGUgdGltZXIgaGFzIGZpcmVkLCB3ZSBuZWVkIHRvIHJlcGVhdCB0aGUgc2VjdXJpdHkgY2hlY2sg
d2hpY2ggbm9ybWFsbHkgaXMgZG9uZSB3aGVuCiAgICAgICAgIC8vIHNlbGVjdGluZyBhIHRhcmdl
dCwgaW4gY2FzZSBjb25kaXRpb25zIGhhdmUgY2hhbmdlZC4gT3RoZXIgY29kZSBwYXRocyBhdm9p
ZCB0aGlzIGJ5IHRhcmdldGluZwpAQCAtMjE0LDcgKzIxMSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgUmVmUHRyPEZvcm1TdWJtaXNzaW9uPiBtX3N1Ym1pc3Npb247CiAgICAgYm9vbCBtX2hh
dmVUb2xkQ2xpZW50OwotICAgIGJvb2wgbV93YXNVc2VyR2VzdHVyZTsKIH07CiAKIFJlZGlyZWN0
U2NoZWR1bGVyOjpSZWRpcmVjdFNjaGVkdWxlcihGcmFtZSogZnJhbWUpCkBAIC0zMTUsMTAgKzMx
MSwxMCBAQCB2b2lkIFJlZGlyZWN0U2NoZWR1bGVyOjpzY2hlZHVsZUZvcm1TdWJtaXNzaW9uKFBh
c3NSZWZQdHI8Rm9ybVN1Ym1pc3Npb24+IHN1Ym1pcwogICAgIC8vIElmIHRoaXMgaXMgYSBjaGls
ZCBmcmFtZSBhbmQgdGhlIGZvcm0gc3VibWlzc2lvbiB3YXMgdHJpZ2dlcmVkIGJ5IGEgc2NyaXB0
LCBsb2NrIHRoZSBiYWNrL2ZvcndhcmQgbGlzdAogICAgIC8vIHRvIG1hdGNoIElFIGFuZCBPcGVy
YS4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMy
MzgzIGZvciB0aGUgb3JpZ2luYWwgbW90aXZhdGlvbiBmb3IgdGhpcy4KLSAgICBib29sIGlzVXNl
ckdlc3R1cmUgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+aXNQcm9jZXNzaW5nVXNlckdlc3R1cmUoKTsK
LSAgICBib29sIGxvY2tCYWNrRm9yd2FyZExpc3QgPSBtdXN0TG9ja0JhY2tGb3J3YXJkTGlzdCht
X2ZyYW1lLCBpc1VzZXJHZXN0dXJlKSB8fCAoc3VibWlzc2lvbi0+c3RhdGUoKS0+Zm9ybVN1Ym1p
c3Npb25UcmlnZ2VyKCkgPT0gU3VibWl0dGVkQnlKYXZhU2NyaXB0ICYmIG1fZnJhbWUtPnRyZWUo
KS0+cGFyZW50KCkpOwogCi0gICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxlZEZvcm1T
dWJtaXNzaW9uKHN1Ym1pc3Npb24sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmluZ0xvYWQsIGlz
VXNlckdlc3R1cmUpKSk7CisgICAgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0ID0gbXVzdExvY2tC
YWNrRm9yd2FyZExpc3QobV9mcmFtZSwgVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKSB8fCAoc3VibWlzc2lvbi0+c3RhdGUoKS0+Zm9ybVN1Ym1pc3Npb25Ucmln
Z2VyKCkgPT0gU3VibWl0dGVkQnlKYXZhU2NyaXB0ICYmIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50
KCkpOworCisgICAgc2NoZWR1bGUoYWRvcHRQdHIobmV3IFNjaGVkdWxlZEZvcm1TdWJtaXNzaW9u
KHN1Ym1pc3Npb24sIGxvY2tCYWNrRm9yd2FyZExpc3QsIGR1cmluZ0xvYWQpKSk7CiB9CiAKIHZv
aWQgUmVkaXJlY3RTY2hlZHVsZXI6OnNjaGVkdWxlUmVmcmVzaChib29sIHdhc1VzZXJHZXN0dXJl
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IGMyNWIzN2UuLmNlYWZiODggMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCBQYXNzUmVmUHRyPFdp
ZGdldD4gU3ViZnJhbWVMb2FkZXI6OmxvYWRNZWRpYVBsYXllclByb3h5UGx1Z2luKE5vZGUqIG5v
ZGUsIGNvbnN0CiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQogICAgICAgICBjb21wbGV0ZWRVUkwg
PSBjb21wbGV0ZVVSTCh1cmwpOwogCi0gICAgaWYgKCFTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxh
eShjb21wbGV0ZWRVUkwsIFN0cmluZygpLCBtX2ZyYW1lLT5kb2N1bWVudCgpKSkgeworICAgIGlm
ICghU2VjdXJpdHlPcmlnaW46OmNhbkxvYWQoY29tcGxldGVkVVJMLCBTdHJpbmcoKSwgbV9mcmFt
ZS0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZh
aWxlZChtX2ZyYW1lLCBjb21wbGV0ZWRVUkwuc3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CkBAIC0yMDUsNyArMjA1LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9h
ZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEgKIAogICAg
IGlmICghY29kZUJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgIEtVUkwgY29kZUJh
c2VVUkwgPSBjb21wbGV0ZVVSTChjb2RlQmFzZVVSTFN0cmluZyk7Ci0gICAgICAgIGlmICghU2Vj
dXJpdHlPcmlnaW46OmNhbkRpc3BsYXkoY29kZUJhc2VVUkwsIFN0cmluZygpLCBlbGVtZW50LT5k
b2N1bWVudCgpKSkgeworICAgICAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjYW5Mb2FkKGNvZGVC
YXNlVVJMLCBTdHJpbmcoKSwgZWxlbWVudC0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAgICAgIEZy
YW1lTG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQobV9mcmFtZSwgY29kZUJhc2VVUkwuc3Ry
aW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KQEAgLTI0Nyw3ICsyNDcs
NyBAQCBGcmFtZSogU3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVs
ZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgSwogICAgICAgICBtYXJnaW5IZWlnaHQgPSBvLT5n
ZXRNYXJnaW5IZWlnaHQoKTsKICAgICB9CiAKLSAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjYW5E
aXNwbGF5KHVybCwgU3RyaW5nKCksIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKSkpIHsKKyAgICBp
ZiAoIVNlY3VyaXR5T3JpZ2luOjpjYW5Mb2FkKHVybCwgU3RyaW5nKCksIG93bmVyRWxlbWVudC0+
ZG9jdW1lbnQoKSkpIHsKICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxl
ZChtX2ZyYW1lLCB1cmwuc3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0z
MzYsNyArMzM2LDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50LCBjb25zdCBLVVIKICAgICBpZiAoIXJlbmRlcmVy
IHx8IHVzZUZhbGxiYWNrKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIVNlY3Vy
aXR5T3JpZ2luOjpjYW5EaXNwbGF5KHVybCwgU3RyaW5nKCksIGRvY3VtZW50KCkpKSB7CisgICAg
aWYgKCFTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZCh1cmwsIFN0cmluZygpLCBkb2N1bWVudCgpKSkg
ewogICAgICAgICBGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKG1fZnJhbWUsIHVy
bC5zdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9TdWJy
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNjlkNGE1Yy4uYjZjY2UxZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmNwcApAQCAtNzMsNyArNzMsNyBAQCBQYXNzUmVmUHRyPFN1YnJlc291
cmNlTG9hZGVyPiBTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKEZyYW1lKiBmcmFtZSwgU3VicmVz
b3VyYwogCiAgICAgaWYgKHNlY3VyaXR5Q2hlY2sgPT0gRG9TZWN1cml0eUNoZWNrCiAgICAgICAg
ICAgICAmJiBTZWN1cml0eU9yaWdpbjo6cmVzdHJpY3RBY2Nlc3NUb0xvY2FsKCkKLSAgICAgICAg
ICAgICYmICFTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheShyZXF1ZXN0LnVybCgpLCBTdHJpbmco
KSwgZnJhbWUtPmRvY3VtZW50KCkpKSB7CisgICAgICAgICAgICAmJiAhU2VjdXJpdHlPcmlnaW46
OmNhbkxvYWQocmVxdWVzdC51cmwoKSwgU3RyaW5nKCksIGZyYW1lLT5kb2N1bWVudCgpKSkgewog
ICAgICAgICBGcmFtZUxvYWRlcjo6cmVwb3J0TG9jYWxMb2FkRmFpbGVkKGZyYW1lLCByZXF1ZXN0
LnVybCgpLnN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IGJkOWRlNmIuLmQzZTE2NjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTU3LDcgKzU3LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsK
ICAgICBjbGFzcyBTZWN1cml0eU9yaWdpbjsKLSAgICBjbGFzcyBTaGFyZWRHcmFwaGljc0NvbnRl
eHQzRDsKICAgICBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiAgICAgY2xhc3MgV2lkZ2V0OwogCkBA
IC0yMzEsOCArMjMwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
ICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqIGdldFNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQotCiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqKSB7IHJldHVybiBmYWxz
ZTsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKikg
eyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSopIHsg
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAppbmRleCBiZjI2Y2U0Li5lZmI4MmJiIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAt
NjAsNiArNjAsNyBAQAogI2luY2x1ZGUgIkhpc3RvcnkuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5
LmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJJ
REJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgpAQCAtNDk3LDYg
KzQ5OCw3IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhcigpCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKICAgICBtX2lkYkZhY3RvcnkgPSAwOworICAgIG1faWRiS2V5UmFuZ2UgPSAwOwog
I2VuZGlmCiB9CiAKQEAgLTcxOCw2ICs3MjAsMTQgQEAgSURCRmFjdG9yeSogRE9NV2luZG93Ojpp
bmRleGVkREIoKSBjb25zdAogICAgIG1faWRiRmFjdG9yeSA9IElEQkZhY3Rvcnk6OmNyZWF0ZShw
YWdlLT5ncm91cCgpLmlkYkZhY3RvcnkoKSk7CiAgICAgcmV0dXJuIG1faWRiRmFjdG9yeS5nZXQo
KTsKIH0KKworSURCS2V5UmFuZ2UqIERPTVdpbmRvdzo6aURCS2V5UmFuZ2UoKSBjb25zdAorewor
ICAgIGlmICghbV9pZGJLZXlSYW5nZSkKKyAgICAgICAgbV9pZGJLZXlSYW5nZSA9IElEQktleVJh
bmdlOjpjcmVhdGUoMCwgMCwgMCk7CisKKyAgICByZXR1cm4gbV9pZGJLZXlSYW5nZS5nZXQoKTsK
K30KICNlbmRpZgogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDE0NzA2
MjguLjg5NGFhMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU3LDYgKzU3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEhpc3Rvcnk7CiAgICAgY2xhc3MgSURC
RmFjdG9yeTsKKyAgICBjbGFzcyBJREJLZXlSYW5nZTsKICAgICBjbGFzcyBJbnNwZWN0b3JUaW1l
bGluZUFnZW50OwogICAgIGNsYXNzIExvY2FsRmlsZVN5c3RlbTsKICAgICBjbGFzcyBMb2NhdGlv
bjsKQEAgLTIzNyw2ICsyMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKICAgICAgICAgSURCRmFjdG9yeSogaW5kZXhlZERCKCkgY29uc3Q7
CisgICAgICAgIElEQktleVJhbmdlKiBpREJLZXlSYW5nZSgpIGNvbnN0OwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCkBAIC00NDMsNiArNDQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgICAgIG11dGFi
bGUgUmVmUHRyPElEQkZhY3Rvcnk+IG1faWRiRmFjdG9yeTsKKyAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8SURCS2V5UmFuZ2U+IG1faWRiS2V5UmFuZ2U7CiAjZW5kaWYKICNpZiBFTkFCTEUoRklMRV9T
WVNURU0pCiAgICAgICAgIFJlZlB0cjxMb2NhbEZpbGVTeXN0ZW0+IG1fbG9jYWxGaWxlU3lzdGVt
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAppbmRleCA3MDJlZGNkLi5jNzc1YWU2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAt
MTc0LDIwICsxNzQsNyBAQCBtb2R1bGUgd2luZG93IHsKICNlbmRpZgogI2lmIGRlZmluZWQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpICYmIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCRmFjdG9yeSBpbmRleGVk
REI7Ci0KLSAgICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJDdXJzb3JDb25z
dHJ1Y3RvciBJREJDdXJzb3I7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0g
SURCRGF0YWJhc2VDb25zdHJ1Y3RvciBJREJEYXRhYmFzZTsKLSAgICAgICAgYXR0cmlidXRlIFtF
bmFibGVkQXRSdW50aW1lXSBJREJEYXRhYmFzZUVycm9yQ29uc3RydWN0b3IgSURCRGF0YWJhc2VF
cnJvcjsKLSAgICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJEYXRhYmFzZUV4
Y2VwdGlvbkNvbnN0cnVjdG9yIElEQkRhdGFiYXNlRXhjZXB0aW9uOwotICAgICAgICBhdHRyaWJ1
dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkVycm9yRXZlbnRDb25zdHJ1Y3RvciBJREJFcnJvckV2
ZW50OwotICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQkV2ZW50Q29uc3Ry
dWN0b3IgSURCRXZlbnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gSURC
RmFjdG9yeUNvbnN0cnVjdG9yIElEQkZhY3Rvcnk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxl
ZEF0UnVudGltZV0gSURCSW5kZXhDb25zdHJ1Y3RvciBJREJJbmRleDsKLSAgICAgICAgYXR0cmli
dXRlIFtFbmFibGVkQXRSdW50aW1lXSBJREJLZXlSYW5nZUNvbnN0cnVjdG9yIElEQktleVJhbmdl
OwotICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQk9iamVjdFN0b3JlQ29u
c3RydWN0b3IgSURCT2JqZWN0U3RvcmU7Ci0gICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVu
dGltZV0gSURCUmVxdWVzdENvbnN0cnVjdG9yIElEQlJlcXVlc3Q7Ci0gICAgICAgIGF0dHJpYnV0
ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCU3VjY2Vzc0V2ZW50Q29uc3RydWN0b3IgSURCU3VjY2Vz
c0V2ZW50OwotICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIElEQlRyYW5zYWN0
aW9uQ29uc3RydWN0b3IgSURCVHJhbnNhY3Rpb247CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbRW5hYmxlZEF0UnVudGltZV0gSURCS2V5UmFuZ2UgSURCS2V5UmFuZ2U7CiAjZW5kaWYKICNp
ZiBkZWZpbmVkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJiYgRU5BQkxFX0ZJTEVfU1lTVEVNCiAgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRFTVBPUkFSWSA9IDA7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuY3BwCmluZGV4IDc5NTU0Y2YuLmEwMTQyMmYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCkBAIC0zOSwxNSArMzksMTQgQEAgUGFnZUdyb3VwTG9h
ZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIoUGFnZSogcGFnZSwgYm9vbCBkZWZlclNl
bGYpCiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwYWdlcy5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgUGFnZSogb3RoZXJQYWdlID0gKml0
OwogICAgICAgICBpZiAoKGRlZmVyU2VsZiB8fCBvdGhlclBhZ2UgIT0gcGFnZSkpIHsKLSAgICAg
ICAgICAgIGlmICghb3RoZXJQYWdlLT5kZWZlcnNMb2FkaW5nKCkpIHsKKyAgICAgICAgICAgIGlm
ICghb3RoZXJQYWdlLT5kZWZlcnNMb2FkaW5nKCkpCiAgICAgICAgICAgICAgICAgbV9kZWZlcnJl
ZEZyYW1lcy5hcHBlbmQob3RoZXJQYWdlLT5tYWluRnJhbWUoKSk7CiAKLSAgICAgICAgICAgICAg
ICAvLyBUaGlzIGNvZGUgaXMgbm90IGxvZ2ljYWxseSBwYXJ0IG9mIGxvYWQgZGVmZXJyaW5nLCBi
dXQgd2UgZG8gbm90IHdhbnQgSlMgY29kZSBleGVjdXRlZCBiZW5lYXRoIG1vZGFsCi0gICAgICAg
ICAgICAgICAgLy8gd2luZG93cyBvciBzaGVldHMsIHdoaWNoIGlzIGV4YWN0bHkgd2hlbiBQYWdl
R3JvdXBMb2FkRGVmZXJyZXIgaXMgdXNlZC4KLSAgICAgICAgICAgICAgICBmb3IgKEZyYW1lKiBm
cmFtZSA9IG90aGVyUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCktPnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVu
dCgpLT5zdXNwZW5kQWN0aXZlRE9NT2JqZWN0cygpOwotICAgICAgICAgICAgICAgICAgICBmcmFt
ZS0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOwotICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIC8vIFRoaXMgY29kZSBpcyBub3QgbG9naWNhbGx5IHBhcnQg
b2YgbG9hZCBkZWZlcnJpbmcsIGJ1dCB3ZSBkbyBub3Qgd2FudCBKUyBjb2RlIGV4ZWN1dGVkIGJl
bmVhdGggbW9kYWwKKyAgICAgICAgICAgIC8vIHdpbmRvd3Mgb3Igc2hlZXRzLCB3aGljaCBpcyBl
eGFjdGx5IHdoZW4gUGFnZUdyb3VwTG9hZERlZmVycmVyIGlzIHVzZWQuCisgICAgICAgICAgICBm
b3IgKEZyYW1lKiBmcmFtZSA9IG90aGVyUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgICAgICAgICAgZnJhbWUt
PmRvY3VtZW50KCktPnN1c3BlbmRBY3RpdmVET01PYmplY3RzKCk7CisgICAgICAgICAgICAgICAg
ZnJhbWUtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVyKCktPnN1c3BlbmQoKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IGI0
NGEzNWUuLjZlZGYzMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcApAQCAtMjg0LDcgKzI4NCw3
IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmlzQWNjZXNzV2hpdGVMaXN0ZWQoY29uc3QgU2VjdXJp
dHlPcmlnaW4qIHRhcmdldE9yaWdpbikgY29uCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAKLWJv
b2wgU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHJlZmVycmVyLCBEb2N1bWVudCogZG9jdW1lbnQpCitib29sIFNlY3VyaXR5T3JpZ2luOjpj
YW5Mb2FkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRG9jdW1lbnQq
IGRvY3VtZW50KQogewogI2lmIEVOQUJMRShCTE9CKQogICAgIGlmICh1cmwucHJvdG9jb2xJcygi
YmxvYiIpICYmIGRvY3VtZW50KSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uaCBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCmluZGV4IDEzMmZhNWYuLjI2
NmFkZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisrKyBiL1dl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC04NCwxMSArODQsMTAgQEAgcHVibGljOgog
ICAgIC8vIGRyYXdpbmcgYW4gaW1hZ2Ugb250byBhbiBIVE1MIGNhbnZhcyBlbGVtZW50IHdpdGgg
dGhlIGRyYXdJbWFnZSBBUEkuCiAgICAgYm9vbCB0YWludHNDYW52YXMoY29uc3QgS1VSTCYpIGNv
bnN0OwogCi0gICAgLy8gUmV0dXJucyB0cnVlIGlmIHxkb2N1bWVudHwgY2FuIGRpc3BsYXkgY29u
dGVudCBmcm9tIHRoZSBnaXZlbiBVUkwgKGUuZy4sCi0gICAgLy8gaW4gYW4gaWZyYW1lIG9yIGFz
IGFuIGltYWdlKS4gRm9yIGV4YW1wbGUsIHdlYiBzaXRlcyBnZW5lcmFsbHkgY2Fubm90Ci0gICAg
Ly8gZGlzcGxheSBjb250ZW50IGZyb20gdGhlIHVzZXIncyBmaWxlcyBzeXN0ZW0uIElmIHxkb2N1
bWVudHwgaXMgMCwKLSAgICAvLyB8cmVmZXJyZXJ8IGlzIHVzZWQgdG8gbWFrZSB0aGlzIGRldGVy
bWluYXRpb24uCi0gICAgc3RhdGljIGJvb2wgY2FuRGlzcGxheShjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlciwgRG9jdW1lbnQqIGRvY3VtZW50KTsKKyAgICAvLyBSZXR1cm5zIHRy
dWUgZm9yIGFueSBub24tbG9jYWwgVVJMLiBJZiBkb2N1bWVudCBwYXJhbWV0ZXIgaXMgc3VwcGxp
ZWQsCisgICAgLy8gaXRzIGxvY2FsIGxvYWQgcG9saWN5IGRpY3RhdGVzLCBvdGhlcndpc2UgaWYg
cmVmZXJyZXIgaXMgbm9uLWVtcHR5IGFuZAorICAgIC8vIHJlcHJlc2VudHMgYSBsb2NhbCBmaWxl
LCB0aGVuIHRoZSBsb2NhbCBsb2FkIGlzIGFsbG93ZWQuCisgICAgc3RhdGljIGJvb2wgY2FuTG9h
ZChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgRG9jdW1lbnQqIGRvY3VtZW50
KTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIFNlY3VyaXR5T3JpZ2luIGNhbiBsb2Fk
IGxvY2FsIHJlc291cmNlcywgc3VjaAogICAgIC8vIGFzIGltYWdlcywgaWZyYW1lcywgYW5kIHN0
eWxlIHNoZWV0cywgYW5kIGNhbiBsaW5rIHRvIGxvY2FsIFVSTHMuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9CdXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YjdlYzNmLi4wMDAw
MDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMzYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUo
V0VCX0FVRElPKQotCi0jaW5jbHVkZSAiQXVkaW9CdXMuaCIKLQotI2luY2x1ZGUgIkFjY2VsZXJh
dGUuaCIKLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVk
ZSA8bWF0aC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUF1ZGlvQnVzOjpBdWRpb0J1cyh1bnNp
Z25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRlKQotICAg
IDogbV9sZW5ndGgobGVuZ3RoKQotICAgICwgbV9idXNHYWluKDEuMCkKLSAgICAsIG1faXNGaXJz
dFRpbWUodHJ1ZSkKLSAgICAsIG1fc2FtcGxlUmF0ZSgwLjApCi17Ci0gICAgbV9jaGFubmVscy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51bWJlck9mQ2hhbm5lbHMpOwotCi0gICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG51bWJlck9mQ2hhbm5lbHM7ICsraSkgewotICAgICAgICBQYXNzT3du
UHRyPEF1ZGlvQ2hhbm5lbD4gY2hhbm5lbCA9IGFsbG9jYXRlID8gYWRvcHRQdHIobmV3IEF1ZGlv
Q2hhbm5lbChsZW5ndGgpKSA6IGFkb3B0UHRyKG5ldyBBdWRpb0NoYW5uZWwoMCwgbGVuZ3RoKSk7
Ci0gICAgICAgIG1fY2hhbm5lbHMuYXBwZW5kKGNoYW5uZWwpOwotICAgIH0KLQotICAgIG1fbGF5
b3V0ID0gTGF5b3V0Q2Fub25pY2FsOyAvLyBmb3Igbm93IHRoaXMgaXMgdGhlIG9ubHkgbGF5b3V0
IHdlIGRlZmluZQotfQotCi12b2lkIEF1ZGlvQnVzOjpzZXRDaGFubmVsTWVtb3J5KHVuc2lnbmVk
IGNoYW5uZWxJbmRleCwgZmxvYXQqIHN0b3JhZ2UsIHNpemVfdCBsZW5ndGgpCi17Ci0gICAgaWYg
KGNoYW5uZWxJbmRleCA8IG1fY2hhbm5lbHMuc2l6ZSgpKSB7Ci0gICAgICAgIGNoYW5uZWwoY2hh
bm5lbEluZGV4KS0+c2V0KHN0b3JhZ2UsIGxlbmd0aCk7Ci0gICAgICAgIG1fbGVuZ3RoID0gbGVu
Z3RoOyAvLyBGSVhNRTogdmVyaWZ5IHRoYXQgdGhpcyBsZW5ndGggbWF0Y2hlcyBhbGwgdGhlIG90
aGVyIGNoYW5uZWwgbGVuZ3RocwotICAgIH0KLX0KLQotdm9pZCBBdWRpb0J1czo6emVybygpCi17
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hhbm5lbHMuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIG1fY2hhbm5lbHNbaV0tPnplcm8oKTsKLX0KLQotQXVkaW9DaGFubmVsKiBBdWRpb0J1
czo6Y2hhbm5lbEJ5VHlwZSh1bnNpZ25lZCBjaGFubmVsVHlwZSkKLXsKLSAgICAvLyBGb3Igbm93
IHdlIG9ubHkgc3VwcG9ydCBjYW5vbmljYWwgY2hhbm5lbCBsYXlvdXRzLi4uCi0gICAgaWYgKG1f
bGF5b3V0ICE9IExheW91dENhbm9uaWNhbCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBzd2l0
Y2ggKG51bWJlck9mQ2hhbm5lbHMoKSkgewotICAgIGNhc2UgMTogLy8gbW9ubwotICAgICAgICBp
ZiAoY2hhbm5lbFR5cGUgPT0gQ2hhbm5lbE1vbm8gfHwgY2hhbm5lbFR5cGUgPT0gQ2hhbm5lbExl
ZnQpCi0gICAgICAgICAgICByZXR1cm4gY2hhbm5lbCgwKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICBjYXNlIDI6IC8vIHN0ZXJlbwotICAgICAgICBzd2l0Y2ggKGNoYW5uZWxUeXBlKSB7Ci0g
ICAgICAgIGNhc2UgQ2hhbm5lbExlZnQ6IHJldHVybiBjaGFubmVsKDApOwotICAgICAgICBjYXNl
IENoYW5uZWxSaWdodDogcmV0dXJuIGNoYW5uZWwoMSk7Ci0gICAgICAgIGRlZmF1bHQ6IHJldHVy
biAwOwotICAgICAgICB9Ci0KLSAgICBjYXNlIDQ6IC8vIHF1YWQKLSAgICAgICAgc3dpdGNoIChj
aGFubmVsVHlwZSkgewotICAgICAgICBjYXNlIENoYW5uZWxMZWZ0OiByZXR1cm4gY2hhbm5lbCgw
KTsKLSAgICAgICAgY2FzZSBDaGFubmVsUmlnaHQ6IHJldHVybiBjaGFubmVsKDEpOwotICAgICAg
ICBjYXNlIENoYW5uZWxTdXJyb3VuZExlZnQ6IHJldHVybiBjaGFubmVsKDIpOwotICAgICAgICBj
YXNlIENoYW5uZWxTdXJyb3VuZFJpZ2h0OiByZXR1cm4gY2hhbm5lbCgzKTsKLSAgICAgICAgZGVm
YXVsdDogcmV0dXJuIDA7Ci0gICAgICAgIH0KLQotICAgIGNhc2UgNTogLy8gNS4wCi0gICAgICAg
IHN3aXRjaCAoY2hhbm5lbFR5cGUpIHsKLSAgICAgICAgY2FzZSBDaGFubmVsTGVmdDogcmV0dXJu
IGNoYW5uZWwoMCk7Ci0gICAgICAgIGNhc2UgQ2hhbm5lbFJpZ2h0OiByZXR1cm4gY2hhbm5lbCgx
KTsKLSAgICAgICAgY2FzZSBDaGFubmVsQ2VudGVyOiByZXR1cm4gY2hhbm5lbCgyKTsKLSAgICAg
ICAgY2FzZSBDaGFubmVsU3Vycm91bmRMZWZ0OiByZXR1cm4gY2hhbm5lbCgzKTsKLSAgICAgICAg
Y2FzZSBDaGFubmVsU3Vycm91bmRSaWdodDogcmV0dXJuIGNoYW5uZWwoNCk7Ci0gICAgICAgIGRl
ZmF1bHQ6IHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICBjYXNlIDY6IC8vIDUuMQotICAgICAg
ICBzd2l0Y2ggKGNoYW5uZWxUeXBlKSB7Ci0gICAgICAgIGNhc2UgQ2hhbm5lbExlZnQ6IHJldHVy
biBjaGFubmVsKDApOwotICAgICAgICBjYXNlIENoYW5uZWxSaWdodDogcmV0dXJuIGNoYW5uZWwo
MSk7Ci0gICAgICAgIGNhc2UgQ2hhbm5lbENlbnRlcjogcmV0dXJuIGNoYW5uZWwoMik7Ci0gICAg
ICAgIGNhc2UgQ2hhbm5lbExGRTogcmV0dXJuIGNoYW5uZWwoMyk7Ci0gICAgICAgIGNhc2UgQ2hh
bm5lbFN1cnJvdW5kTGVmdDogcmV0dXJuIGNoYW5uZWwoNCk7Ci0gICAgICAgIGNhc2UgQ2hhbm5l
bFN1cnJvdW5kUmlnaHQ6IHJldHVybiBjaGFubmVsKDUpOwotICAgICAgICBkZWZhdWx0OiByZXR1
cm4gMDsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gMDsKLX0KLQotLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFubmVsIGNvdW50
IGFuZCBmcmFtZS1zaXplIG1hdGNoLgotYm9vbCBBdWRpb0J1czo6dG9wb2xvZ3lNYXRjaGVzKGNv
bnN0IEF1ZGlvQnVzJiBidXMpIGNvbnN0Ci17Ci0gICAgaWYgKG51bWJlck9mQ2hhbm5lbHMoKSAh
PSBidXMubnVtYmVyT2ZDaGFubmVscygpKQotICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGNoYW5u
ZWwgbWlzbWF0Y2gKLQotICAgIC8vIE1ha2Ugc3VyZSBzb3VyY2UgYnVzIGhhcyBlbm91Z2ggZnJh
bWVzLgotICAgIGlmIChsZW5ndGgoKSA+IGJ1cy5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOyAvLyBmcmFtZS1zaXplIG1pc21hdGNoCi0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotUGFz
c093blB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6OmNyZWF0ZUJ1ZmZlckZyb21SYW5nZShBdWRpb0J1
cyogc291cmNlQnVmZmVyLCB1bnNpZ25lZCBzdGFydEZyYW1lLCB1bnNpZ25lZCBlbmRGcmFtZSkK
LXsKLSAgICBzaXplX3QgbnVtYmVyT2ZTb3VyY2VGcmFtZXMgPSBzb3VyY2VCdWZmZXItPmxlbmd0
aCgpOwotICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMgPSBzb3VyY2VCdWZmZXItPm51bWJl
ck9mQ2hhbm5lbHMoKTsKLQotICAgIC8vIFNhbml0eSBjaGVja2luZwotICAgIGJvb2wgaXNSYW5n
ZVNhZmUgPSBzdGFydEZyYW1lIDwgZW5kRnJhbWUgJiYgZW5kRnJhbWUgPD0gbnVtYmVyT2ZTb3Vy
Y2VGcmFtZXM7Ci0gICAgQVNTRVJUKGlzUmFuZ2VTYWZlKTsKLSAgICBpZiAoIWlzUmFuZ2VTYWZl
KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHNpemVfdCByYW5nZUxlbmd0aCA9IGVuZEZyYW1l
IC0gc3RhcnRGcmFtZTsKLQotICAgIE93blB0cjxBdWRpb0J1cz4gYXVkaW9CdXMgPSBhZG9wdFB0
cihuZXcgQXVkaW9CdXMobnVtYmVyT2ZDaGFubmVscywgcmFuZ2VMZW5ndGgpKTsKLSAgICBhdWRp
b0J1cy0+c2V0U2FtcGxlUmF0ZShzb3VyY2VCdWZmZXItPnNhbXBsZVJhdGUoKSk7Ci0KLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVsczsgKytpKQotICAgICAgICBh
dWRpb0J1cy0+Y2hhbm5lbChpKS0+Y29weUZyb21SYW5nZShzb3VyY2VCdWZmZXItPmNoYW5uZWwo
aSksIHN0YXJ0RnJhbWUsIGVuZEZyYW1lKTsKLQotICAgIHJldHVybiBhdWRpb0J1cy5yZWxlYXNl
KCk7Ci19Ci0KLWZsb2F0IEF1ZGlvQnVzOjptYXhBYnNWYWx1ZSgpIGNvbnN0Ci17Ci0gICAgZmxv
YXQgbWF4ID0gMC4wZjsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFu
bmVscygpOyArK2kpIHsKLSAgICAgICAgY29uc3QgQXVkaW9DaGFubmVsKiBjaGFubmVsID0gdGhp
cy0+Y2hhbm5lbChpKTsKLSAgICAgICAgbWF4ID0gc3RkOjptYXgobWF4LCBjaGFubmVsLT5tYXhB
YnNWYWx1ZSgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbWF4OwotfQotCi12b2lkIEF1ZGlvQnVz
Ojpub3JtYWxpemUoKQotewotICAgIGZsb2F0IG1heCA9IG1heEFic1ZhbHVlKCk7Ci0gICAgaWYg
KG1heCkKLSAgICAgICAgc2NhbGUoMS4wZiAvIG1heCk7Ci19Ci0KLXZvaWQgQXVkaW9CdXM6OnNj
YWxlKGRvdWJsZSBzY2FsZSkKLXsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVy
T2ZDaGFubmVscygpOyArK2kpCi0gICAgICAgIGNoYW5uZWwoaSktPnNjYWxlKHNjYWxlKTsKLX0K
LQotLy8gSnVzdCBjb3BpZXMgdGhlIHNhbXBsZXMgZnJvbSB0aGUgc291cmNlIGJ1cyB0byB0aGlz
IG9uZS4KLS8vIFRoaXMgaXMganVzdCBhIHNpbXBsZSBjb3B5IGlmIHRoZSBudW1iZXIgb2YgY2hh
bm5lbHMgbWF0Y2gsIG90aGVyd2lzZSBhIG1peHVwIG9yIG1peGRvd24gaXMgZG9uZS4KLS8vIEZv
ciBub3csIHdlIGp1c3Qgc3VwcG9ydCBhIG1peHVwIGZyb20gbW9ubyAtPiBzdGVyZW8uCi12b2lk
IEF1ZGlvQnVzOjpjb3B5RnJvbShjb25zdCBBdWRpb0J1cyYgc291cmNlQnVzKQotewotICAgIGlm
ICgmc291cmNlQnVzID09IHRoaXMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChudW1iZXJP
ZkNoYW5uZWxzKCkgPT0gc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgewotICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtYmVyT2ZDaGFubmVscygpOyArK2kpCi0gICAgICAg
ICAgICBjaGFubmVsKGkpLT5jb3B5RnJvbShzb3VyY2VCdXMuY2hhbm5lbChpKSk7Ci0gICAgfSBl
bHNlIGlmIChudW1iZXJPZkNoYW5uZWxzKCkgPT0gMiAmJiBzb3VyY2VCdXMubnVtYmVyT2ZDaGFu
bmVscygpID09IDEpIHsKLSAgICAgICAgLy8gSGFuZGxlIG1vbm8gLT4gc3RlcmVvIGNhc2UgKGZv
ciBub3cgc2ltcGx5IGNvcHkgbW9ubyBjaGFubmVsIGludG8gYm90aCBsZWZ0IGFuZCByaWdodCkK
LSAgICAgICAgLy8gRklYTUU6IFJlYWxseSB3ZSBzaG91bGQgYXBwbHkgYW4gZXF1YWwtcG93ZXIg
c2NhbGluZyBmYWN0b3IgaGVyZSwgc2luY2Ugd2UncmUgZWZmZWN0aXZlbHkgcGFubmluZyBjZW50
ZXIuLi4KLSAgICAgICAgY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsID0gc291cmNl
QnVzLmNoYW5uZWwoMCk7Ci0gICAgICAgIGNoYW5uZWwoMCktPmNvcHlGcm9tKHNvdXJjZUNoYW5u
ZWwpOwotICAgICAgICBjaGFubmVsKDEpLT5jb3B5RnJvbShzb3VyY2VDaGFubmVsKTsKLSAgICB9
IGVsc2UgewotICAgICAgICAvLyBDYXNlIG5vdCBoYW5kbGVkCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIH0KLX0KLQotdm9pZCBBdWRpb0J1czo6c3VtRnJvbShjb25zdCBBdWRp
b0J1cyAmc291cmNlQnVzKQotewotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzKCkgPT0gc291cmNl
QnVzLm51bWJlck9mQ2hhbm5lbHMoKSkgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtYmVyT2ZDaGFubmVscygpOyArK2kpCi0gICAgICAgICAgICBjaGFubmVsKGkpLT5zdW1G
cm9tKHNvdXJjZUJ1cy5jaGFubmVsKGkpKTsKLSAgICB9IGVsc2UgaWYgKG51bWJlck9mQ2hhbm5l
bHMoKSA9PSAyICYmIHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCkgPT0gMSkgewotICAgICAg
ICAvLyBIYW5kbGUgbW9ubyAtPiBzdGVyZW8gY2FzZSAoZm9yIG5vdyBzaW1wbHkgc3VtIG1vbm8g
Y2hhbm5lbCBpbnRvIGJvdGggbGVmdCBhbmQgcmlnaHQpCi0gICAgICAgIC8vIEZJWE1FOiBSZWFs
bHkgd2Ugc2hvdWxkIGFwcGx5IGFuIGVxdWFsLXBvd2VyIHNjYWxpbmcgZmFjdG9yIGhlcmUsIHNp
bmNlIHdlJ3JlIGVmZmVjdGl2ZWx5IHBhbm5pbmcgY2VudGVyLi4uCi0gICAgICAgIGNvbnN0IEF1
ZGlvQ2hhbm5lbCogc291cmNlQ2hhbm5lbCA9IHNvdXJjZUJ1cy5jaGFubmVsKDApOwotICAgICAg
ICBjaGFubmVsKDApLT5zdW1Gcm9tKHNvdXJjZUNoYW5uZWwpOwotICAgICAgICBjaGFubmVsKDEp
LT5zdW1Gcm9tKHNvdXJjZUNoYW5uZWwpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIENhc2Ug
bm90IGhhbmRsZWQKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotfQotCi12
b2lkIEF1ZGlvQnVzOjpwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJlbyhjb25zdCBBdWRpb0J1
cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2FpbiwgYm9v
bCBzdW1Ub0J1cykKLXsKLSAgICAvLyBXZSBkb24ndCB3YW50IHRvIHN1ZGRlbmx5IGNoYW5nZSB0
aGUgZ2FpbiBmcm9tIG1peGluZyBvbmUgdGltZSBzbGljZSB0byB0aGUgbmV4dCwKLSAgICAvLyBz
byB3ZSAiZGUtemlwcGVyIiBieSBzbG93bHkgY2hhbmdpbmcgdGhlIGdhaW4gZWFjaCBzYW1wbGUt
ZnJhbWUgdW50aWwgd2UndmUgYWNoaWV2ZWQgdGhlIHRhcmdldCBnYWluLgotCi0gICAgLy8gRklY
TUU6IG9wdGltaXplIHRoaXMgbWV0aG9kIChTU0UsIGV0Yy4pCi0gICAgLy8gRklYTUU6IE5lZWQg
ZmFzdCBwYXRoIGhlcmUgd2hlbiBnYWluIGhhcyBjb252ZXJnZWQgb24gdGFyZ2V0R2Fpbi4gSW4g
dGhpcyBjYXNlLCBkZS16aXBwZXJpbmcgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KLSAgICAvLyBGSVhN
RTogTmVlZCBmYXN0IHBhdGggd2hlbiB0aGlzPT1zb3VyY2VCdXMgJiYgbGFzdE1peEdhaW49PXRh
cmdldEdhaW49PTEuMCAmJiBzdW1Ub0J1cz09ZmFsc2UgKHRoaXMgaXMgYSBOT1ApCi0KLSAgICAv
LyBUYWtlIG1hc3RlciBidXMgZ2FpbiBpbnRvIGFjY291bnQgYXMgd2VsbCBhcyB0aGUgdGFyZ2V0
R2Fpbi4KLSAgICBkb3VibGUgdG90YWxEZXNpcmVkR2FpbiA9IG1fYnVzR2FpbiAqIHRhcmdldEdh
aW47Ci0KLSAgICAvLyBGaXJzdCB0aW1lLCBzbmFwIGRpcmVjdGx5IHRvIHRvdGFsRGVzaXJlZEdh
aW4uCi0gICAgZG91YmxlIGdhaW4gPSBtX2lzRmlyc3RUaW1lID8gdG90YWxEZXNpcmVkR2FpbiA6
ICpsYXN0TWl4R2FpbjsKLSAgICBtX2lzRmlyc3RUaW1lID0gZmFsc2U7Ci0KLSAgICBpbnQgbnVt
YmVyT2ZTb3VyY2VDaGFubmVscyA9IHNvdXJjZUJ1cy5udW1iZXJPZkNoYW5uZWxzKCk7Ci0gICAg
aW50IG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHMoKTsKLQot
ICAgIEF1ZGlvQnVzJiBzb3VyY2VCdXNTYWZlID0gY29uc3RfY2FzdDxBdWRpb0J1cyY+KHNvdXJj
ZUJ1cyk7Ci0gICAgY29uc3QgZmxvYXQqIHNvdXJjZUwgPSBzb3VyY2VCdXNTYWZlLmNoYW5uZWxC
eVR5cGUoQ2hhbm5lbExlZnQpLT5kYXRhKCk7Ci0gICAgY29uc3QgZmxvYXQqIHNvdXJjZVIgPSBu
dW1iZXJPZlNvdXJjZUNoYW5uZWxzID4gMSA/IHNvdXJjZUJ1c1NhZmUuY2hhbm5lbEJ5VHlwZShD
aGFubmVsUmlnaHQpLT5kYXRhKCkgOiAwOwotCi0gICAgZmxvYXQqIGRlc3RpbmF0aW9uTCA9IGNo
YW5uZWxCeVR5cGUoQ2hhbm5lbExlZnQpLT5kYXRhKCk7Ci0gICAgZmxvYXQqIGRlc3RpbmF0aW9u
UiA9IG51bWJlck9mRGVzdGluYXRpb25DaGFubmVscyA+IDEgPyBjaGFubmVsQnlUeXBlKENoYW5u
ZWxSaWdodCktPmRhdGEoKSA6IDA7Ci0KLSAgICBjb25zdCBkb3VibGUgRGV6aXBwZXJSYXRlID0g
MC4wMDU7Ci0gICAgaW50IGZyYW1lc1RvUHJvY2VzcyA9IGxlbmd0aCgpOwotCi0gICAgaWYgKHN1
bVRvQnVzKSB7Ci0gICAgICAgIC8vIFN1bSB0byBvdXIgYnVzCi0gICAgICAgIGlmIChzb3VyY2VS
ICYmIGRlc3RpbmF0aW9uUikgewotICAgICAgICAgICAgLy8gU3RlcmVvCi0gICAgICAgICAgICB3
aGlsZSAoZnJhbWVzVG9Qcm9jZXNzLS0pIHsKLSAgICAgICAgICAgICAgICBmbG9hdCBzYW1wbGVM
ID0gKnNvdXJjZUwrKzsKLSAgICAgICAgICAgICAgICBmbG9hdCBzYW1wbGVSID0gKnNvdXJjZVIr
KzsKLSAgICAgICAgICAgICAgICAqZGVzdGluYXRpb25MKysgKz0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KGdhaW4gKiBzYW1wbGVMKTsKLSAgICAgICAgICAgICAgICAqZGVzdGluYXRpb25SKysgKz0gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGdhaW4gKiBzYW1wbGVSKTsKLQotICAgICAgICAgICAgICAgIC8vIFNs
b3dseSBjaGFuZ2UgZ2FpbiB0byBkZXNpcmVkIGdhaW4uCi0gICAgICAgICAgICAgICAgZ2FpbiAr
PSAodG90YWxEZXNpcmVkR2FpbiAtIGdhaW4pICogRGV6aXBwZXJSYXRlOwotICAgICAgICAgICAg
fQotICAgICAgICB9IGVsc2UgaWYgKGRlc3RpbmF0aW9uUikgewotICAgICAgICAgICAgLy8gTW9u
byAtPiBzdGVyZW8gKG1peCBlcXVhbGx5IGludG8gTCBhbmQgUikKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBSZWFsbHkgd2Ugc2hvdWxkIGFwcGx5IGFuIGVxdWFsLXBvd2VyIHNjYWxpbmcgZmFjdG9y
IGhlcmUsIHNpbmNlIHdlJ3JlIGVmZmVjdGl2ZWx5IHBhbm5pbmcgY2VudGVyLi4uCi0gICAgICAg
ICAgICB3aGlsZSAoZnJhbWVzVG9Qcm9jZXNzLS0pIHsKLSAgICAgICAgICAgICAgICBmbG9hdCBz
YW1wbGUgPSAqc291cmNlTCsrOwotICAgICAgICAgICAgICAgICpkZXN0aW5hdGlvbkwrKyArPSBz
dGF0aWNfY2FzdDxmbG9hdD4oZ2FpbiAqIHNhbXBsZSk7Ci0gICAgICAgICAgICAgICAgKmRlc3Rp
bmF0aW9uUisrICs9IHN0YXRpY19jYXN0PGZsb2F0PihnYWluICogc2FtcGxlKTsKLQotICAgICAg
ICAgICAgICAgIC8vIFNsb3dseSBjaGFuZ2UgZ2FpbiB0byBkZXNpcmVkIGdhaW4uCi0gICAgICAg
ICAgICAgICAgZ2FpbiArPSAodG90YWxEZXNpcmVkR2FpbiAtIGdhaW4pICogRGV6aXBwZXJSYXRl
OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gTW9ubwot
ICAgICAgICAgICAgd2hpbGUgKGZyYW1lc1RvUHJvY2Vzcy0tKSB7Ci0gICAgICAgICAgICAgICAg
ZmxvYXQgc2FtcGxlTCA9ICpzb3VyY2VMKys7Ci0gICAgICAgICAgICAgICAgKmRlc3RpbmF0aW9u
TCsrICs9IHN0YXRpY19jYXN0PGZsb2F0PihnYWluICogc2FtcGxlTCk7Ci0KLSAgICAgICAgICAg
ICAgICAvLyBTbG93bHkgY2hhbmdlIGdhaW4gdG8gZGVzaXJlZCBnYWluLgotICAgICAgICAgICAg
ICAgIGdhaW4gKz0gKHRvdGFsRGVzaXJlZEdhaW4gLSBnYWluKSAqIERlemlwcGVyUmF0ZTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIFByb2Nlc3Mg
ZGlyZWN0bHkgKHdpdGhvdXQgc3VtbWluZykgdG8gb3VyIGJ1cwotICAgICAgICBpZiAoc291cmNl
UiAmJiBkZXN0aW5hdGlvblIpIHsKLSAgICAgICAgICAgIC8vIFN0ZXJlbwotICAgICAgICAgICAg
d2hpbGUgKGZyYW1lc1RvUHJvY2Vzcy0tKSB7Ci0gICAgICAgICAgICAgICAgZmxvYXQgc2FtcGxl
TCA9ICpzb3VyY2VMKys7Ci0gICAgICAgICAgICAgICAgZmxvYXQgc2FtcGxlUiA9ICpzb3VyY2VS
Kys7Ci0gICAgICAgICAgICAgICAgKmRlc3RpbmF0aW9uTCsrID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KGdhaW4gKiBzYW1wbGVMKTsKLSAgICAgICAgICAgICAgICAqZGVzdGluYXRpb25SKysgPSBzdGF0
aWNfY2FzdDxmbG9hdD4oZ2FpbiAqIHNhbXBsZVIpOwotCi0gICAgICAgICAgICAgICAgLy8gU2xv
d2x5IGNoYW5nZSBnYWluIHRvIGRlc2lyZWQgZ2Fpbi4KLSAgICAgICAgICAgICAgICBnYWluICs9
ICh0b3RhbERlc2lyZWRHYWluIC0gZ2FpbikgKiBEZXppcHBlclJhdGU7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0gZWxzZSBpZiAoZGVzdGluYXRpb25SKSB7Ci0gICAgICAgICAgICAvLyBNb25v
IC0+IHN0ZXJlbyAobWl4IGVxdWFsbHkgaW50byBMIGFuZCBSKQotICAgICAgICAgICAgLy8gRklY
TUU6IFJlYWxseSB3ZSBzaG91bGQgYXBwbHkgYW4gZXF1YWwtcG93ZXIgc2NhbGluZyBmYWN0b3Ig
aGVyZSwgc2luY2Ugd2UncmUgZWZmZWN0aXZlbHkgcGFubmluZyBjZW50ZXIuLi4KLSAgICAgICAg
ICAgIHdoaWxlIChmcmFtZXNUb1Byb2Nlc3MtLSkgewotICAgICAgICAgICAgICAgIGZsb2F0IHNh
bXBsZSA9ICpzb3VyY2VMKys7Ci0gICAgICAgICAgICAgICAgKmRlc3RpbmF0aW9uTCsrID0gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGdhaW4gKiBzYW1wbGUpOwotICAgICAgICAgICAgICAgICpkZXN0aW5h
dGlvblIrKyA9IHN0YXRpY19jYXN0PGZsb2F0PihnYWluICogc2FtcGxlKTsKLQotICAgICAgICAg
ICAgICAgIC8vIFNsb3dseSBjaGFuZ2UgZ2FpbiB0byBkZXNpcmVkIGdhaW4uCi0gICAgICAgICAg
ICAgICAgZ2FpbiArPSAodG90YWxEZXNpcmVkR2FpbiAtIGdhaW4pICogRGV6aXBwZXJSYXRlOwot
ICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gTW9ubwotICAg
ICAgICAgICAgd2hpbGUgKGZyYW1lc1RvUHJvY2Vzcy0tKSB7Ci0gICAgICAgICAgICAgICAgZmxv
YXQgc2FtcGxlTCA9ICpzb3VyY2VMKys7Ci0gICAgICAgICAgICAgICAgKmRlc3RpbmF0aW9uTCsr
ID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KGdhaW4gKiBzYW1wbGVMKTsKLQotICAgICAgICAgICAgICAg
IC8vIFNsb3dseSBjaGFuZ2UgZ2FpbiB0byBkZXNpcmVkIGdhaW4uCi0gICAgICAgICAgICAgICAg
Z2FpbiArPSAodG90YWxEZXNpcmVkR2FpbiAtIGdhaW4pICogRGV6aXBwZXJSYXRlOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gU2F2ZSB0aGUgdGFyZ2V0IGdhaW4g
YXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBuZXh0IHRpbWUgYXJvdW5kLgotICAgICpsYXN0TWl4
R2FpbiA9IGdhaW47Ci19Ci0KLXZvaWQgQXVkaW9CdXM6OnByb2Nlc3NXaXRoR2FpbkZyb20oY29u
c3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4R2FpbiwgZG91YmxlIHRhcmdl
dEdhaW4sIGJvb2wgc3VtVG9CdXMpCi17Ci0gICAgLy8gTWFrZSBzdXJlIHdlJ3JlIHN1bW1pbmcg
ZnJvbSBzYW1lIHR5cGUgb2YgYnVzLgotICAgIC8vIFdlICphcmUqIGFibGUgdG8gc3VtIGZyb20g
bW9ubyAtPiBzdGVyZW8KLSAgICBpZiAoc291cmNlQnVzLm51bWJlck9mQ2hhbm5lbHMoKSAhPSAx
ICYmICF0b3BvbG9neU1hdGNoZXMoc291cmNlQnVzKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Ly8gRGlzcGF0Y2ggZm9yIGRpZmZlcmVudCBjaGFubmVsIGxheW91dHMKLSAgICBzd2l0Y2ggKG51
bWJlck9mQ2hhbm5lbHMoKSkgewotICAgIGNhc2UgMTogLy8gbW9ubwotICAgIGNhc2UgMjogLy8g
c3RlcmVvCi0gICAgICAgIHByb2Nlc3NXaXRoR2FpbkZyb21Nb25vU3RlcmVvKHNvdXJjZUJ1cywg
bGFzdE1peEdhaW4sIHRhcmdldEdhaW4sIHN1bVRvQnVzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSA0OiAvLyBGSVhNRTogaW1wbGVtZW50IHF1YWQKLSAgICBjYXNlIDU6IC8vIEZJWE1FOiBp
bXBsZW1lbnQgNS4wCi0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotdm9pZCBBdWRpb0J1czo6Y29weVdpdGhHYWlu
RnJvbShjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3Vi
bGUgdGFyZ2V0R2FpbikKLXsKLSAgICBwcm9jZXNzV2l0aEdhaW5Gcm9tKHNvdXJjZUJ1cywgbGFz
dE1peEdhaW4sIHRhcmdldEdhaW4sIGZhbHNlKTsKLX0KLQotdm9pZCBBdWRpb0J1czo6c3VtV2l0
aEdhaW5Gcm9tKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4s
IGRvdWJsZSB0YXJnZXRHYWluKQotewotICAgIHByb2Nlc3NXaXRoR2FpbkZyb20oc291cmNlQnVz
LCBsYXN0TWl4R2FpbiwgdGFyZ2V0R2FpbiwgdHJ1ZSk7Ci19Ci0KLX0gLy8gV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9CdXMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9CdXMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzIzNTdlOC4uMDAwMDAwMAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQnVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgQXVkaW9CdXNfaAotI2RlZmluZSBBdWRpb0J1c19oCi0KLSNpbmNsdWRlICJB
dWRpb0NoYW5uZWwuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi0vLyBBbiBBdWRpb0J1cyByZXByZXNlbnRzIGEgY29sbGVjdGlvbiBvZiBvbmUg
b3IgbW9yZSBBdWRpb0NoYW5uZWxzLgotLy8gVGhlIGRhdGEgbGF5b3V0IGlzICJwbGFuYXIiIGFz
IG9wcG9zZWQgdG8gImludGVybGVhdmVkIi4KLS8vIEFuIEF1ZGlvQnVzIHdpdGggb25lIGNoYW5u
ZWwgaXMgbW9ubywgYW4gQXVkaW9CdXMgd2l0aCB0d28gY2hhbm5lbHMgaXMgc3RlcmVvLCBldGMu
Ci1jbGFzcyBBdWRpb0J1cyAgOiBwdWJsaWMgTm9uY29weWFibGUgewotcHVibGljOgotICAgIGVu
dW0gewotICAgICAgICBDaGFubmVsTGVmdCA9IDAsCi0gICAgICAgIENoYW5uZWxSaWdodCA9IDEs
Ci0gICAgICAgIENoYW5uZWxDZW50ZXIgPSAyLCAvLyBjZW50ZXIgYW5kIG1vbm8gYXJlIHRoZSBz
YW1lCi0gICAgICAgIENoYW5uZWxNb25vID0gMiwKLSAgICAgICAgQ2hhbm5lbExGRSA9IDMsCi0g
ICAgICAgIENoYW5uZWxTdXJyb3VuZExlZnQgPSA0LAotICAgICAgICBDaGFubmVsU3Vycm91bmRS
aWdodCA9IDUsCi0gICAgfTsKLQotICAgIGVudW0gewotICAgICAgICBMYXlvdXRDYW5vbmljYWwg
PSAwCi0gICAgICAgIC8vIENhbiBkZWZpbmUgbm9uLXN0YW5kYXJkIGxheW91dHMgaGVyZQotICAg
IH07Ci0KLSAgICAvLyBhbGxvY2F0ZSBpbmRpY2F0ZXMgd2hldGhlciBvciBub3QgdG8gaW5pdGlh
bGx5IGhhdmUgdGhlIEF1ZGlvQ2hhbm5lbHMgY3JlYXRlZCB3aXRoIG1hbmFnZWQgc3RvcmFnZS4K
LSAgICAvLyBOb3JtYWwgdXNhZ2UgaXMgdG8gcGFzcyB0cnVlIGhlcmUsIGluIHdoaWNoIGNhc2Ug
dGhlIEF1ZGlvQ2hhbm5lbHMgd2lsbCBtZW1vcnktbWFuYWdlIHRoZWlyIG93biBzdG9yYWdlLgot
ICAgIC8vIElmIGFsbG9jYXRlIGlzIGZhbHNlIHRoZW4gc2V0Q2hhbm5lbE1lbW9yeSgpIGhhcyB0
byBiZSBjYWxsZWQgbGF0ZXIgb24gZm9yIGVhY2ggY2hhbm5lbCBiZWZvcmUgdGhlIEF1ZGlvQnVz
IGlzIHVzZWFibGUuLi4KLSAgICBBdWRpb0J1cyh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBz
aXplX3QgbGVuZ3RoLCBib29sIGFsbG9jYXRlID0gdHJ1ZSk7Ci0KLSAgICAvLyBUZWxscyB0aGUg
Z2l2ZW4gY2hhbm5lbCB0byB1c2UgYW4gZXh0ZXJuYWxseSBhbGxvY2F0ZWQgYnVmZmVyLgotICAg
IHZvaWQgc2V0Q2hhbm5lbE1lbW9yeSh1bnNpZ25lZCBjaGFubmVsSW5kZXgsIGZsb2F0KiBzdG9y
YWdlLCBzaXplX3QgbGVuZ3RoKTsKLQotICAgIC8vIENoYW5uZWxzCi0gICAgdW5zaWduZWQgbnVt
YmVyT2ZDaGFubmVscygpIGNvbnN0IHsgcmV0dXJuIG1fY2hhbm5lbHMuc2l6ZSgpOyB9Ci0KLSAg
ICBBdWRpb0NoYW5uZWwqIGNoYW5uZWwodW5zaWduZWQgY2hhbm5lbCkgeyByZXR1cm4gbV9jaGFu
bmVsc1tjaGFubmVsXS5nZXQoKTsgfQotICAgIGNvbnN0IEF1ZGlvQ2hhbm5lbCogY2hhbm5lbCh1
bnNpZ25lZCBjaGFubmVsKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PEF1ZGlvQnVzKj4odGhp
cyktPm1fY2hhbm5lbHNbY2hhbm5lbF0uZ2V0KCk7IH0KLSAgICBBdWRpb0NoYW5uZWwqIGNoYW5u
ZWxCeVR5cGUodW5zaWduZWQgdHlwZSk7Ci0KLSAgICAvLyBOdW1iZXIgb2Ygc2FtcGxlLWZyYW1l
cwotICAgIHNpemVfdCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQotCi0gICAg
Ly8gU2FtcGxlLXJhdGUgOiAwLjAgaWYgdW5rbm93biBvciAiZG9uJ3QgY2FyZSIKLSAgICBkb3Vi
bGUgc2FtcGxlUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2FtcGxlUmF0ZTsgfQotICAgIHZvaWQg
c2V0U2FtcGxlUmF0ZShkb3VibGUgc2FtcGxlUmF0ZSkgeyBtX3NhbXBsZVJhdGUgPSBzYW1wbGVS
YXRlOyB9Ci0KLSAgICAvLyBaZXJvZXMgYWxsIGNoYW5uZWxzLgotICAgIHZvaWQgemVybygpOwot
Ci0gICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBjaGFubmVsIGNvdW50IGFuZCBmcmFtZS1zaXpl
IG1hdGNoLgotICAgIGJvb2wgdG9wb2xvZ3lNYXRjaGVzKGNvbnN0IEF1ZGlvQnVzICZzb3VyY2VC
dXMpIGNvbnN0OwotCi0gICAgLy8gQ3JlYXRlcyBhIG5ldyBidWZmZXIgZnJvbSBhIHJhbmdlIGlu
IHRoZSBzb3VyY2UgYnVmZmVyLgotICAgIC8vIDAgbWF5IGJlIHJldHVybmVkIGlmIHRoZSByYW5n
ZSBkb2VzIG5vdCBmaXQgaW4gdGhlIHNvdXJjZUJ1ZmZlcgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PEF1ZGlvQnVzPiBjcmVhdGVCdWZmZXJGcm9tUmFuZ2UoQXVkaW9CdXMqIHNvdXJjZUJ1ZmZlciwg
dW5zaWduZWQgc3RhcnRGcmFtZSwgdW5zaWduZWQgZW5kRnJhbWUpOwotCi0gICAgLy8gU2NhbGVz
IGFsbCBzYW1wbGVzIGJ5IHRoZSBzYW1lIGFtb3VudC4KLSAgICB2b2lkIHNjYWxlKGRvdWJsZSBz
Y2FsZSk7Ci0KLSAgICAvLyBNYXN0ZXIgZ2FpbiBmb3IgdGhpcyBidXMgLSB1c2VkIHdpdGggc3Vt
V2l0aEdhaW5Gcm9tKCkgYmVsb3cKLSAgICB2b2lkIHNldEdhaW4oZG91YmxlIGdhaW4pIHsgbV9i
dXNHYWluID0gZ2FpbjsgfQotICAgIGRvdWJsZSBnYWluKCkgeyByZXR1cm4gbV9idXNHYWluOyB9
Ci0KLSAgICB2b2lkIHJlc2V0KCkgeyBtX2lzRmlyc3RUaW1lID0gdHJ1ZTsgfSAvLyBmb3IgZGUt
emlwcGVyaW5nCi0KLSAgICAvLyBBc3N1bWluZyBzb3VyY2VCdXMgaGFzIHRoZSBzYW1lIHRvcG9s
b2d5LCBjb3BpZXMgc2FtcGxlIGRhdGEgZnJvbSBlYWNoIGNoYW5uZWwgb2Ygc291cmNlQnVzIHRv
IG91ciBjb3JyZXNwb25kaW5nIGNoYW5uZWwuCi0gICAgdm9pZCBjb3B5RnJvbShjb25zdCBBdWRp
b0J1cyAmc291cmNlQnVzKTsKLQotICAgIC8vIFN1bXMgdGhlIHNvdXJjZUJ1cyBpbnRvIG91ciBi
dXMgd2l0aCB1bml0eSBnYWluLgotICAgIC8vIE91ciBvd24gaW50ZXJuYWwgZ2FpbiBtX2J1c0dh
aW4gaXMgaWdub3JlZC4KLSAgICB2b2lkIHN1bUZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1
cyk7Ci0KLSAgICAvLyBDb3B5IG9yIHN1bSBlYWNoIGNoYW5uZWwgZnJvbSBzb3VyY2VCdXMgaW50
byBvdXIgY29ycmVzcG9uZGluZyBjaGFubmVsLgotICAgIC8vIFdlIHNjYWxlIGJ5IHRhcmdldEdh
aW4gKGFuZCBvdXIgb3duIGludGVybmFsIGdhaW4gbV9idXNHYWluKSwgcGVyZm9ybWluZyAiZGUt
emlwcGVyaW5nIiB0byBzbW9vdGhseSBjaGFuZ2UgZnJvbSAqbGFzdE1peEdhaW4gdG8gKHRhcmdl
dEdhaW4qbV9idXNHYWluKS4KLSAgICAvLyBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBz
ZXR0aW5nIHVwIGxhc3RNaXhHYWluIHRvIHBvaW50IHRvIHN0b3JhZ2Ugd2hpY2ggaXMgdW5pcXVl
IGZvciBldmVyeSAic3RyZWFtIiB3aGljaCB3aWxsIGJlIHN1bW1lZCB0byB0aGlzIGJ1cy4KLSAg
ICAvLyBUaGlzIHJlcHJlc2VudHMgdGhlIGRlemlwcGVyaW5nIG1lbW9yeS4KLSAgICB2b2lkIGNv
cHlXaXRoR2FpbkZyb20oY29uc3QgQXVkaW9CdXMgJnNvdXJjZUJ1cywgZG91YmxlKiBsYXN0TWl4
R2FpbiwgZG91YmxlIHRhcmdldEdhaW4pOwotICAgIHZvaWQgc3VtV2l0aEdhaW5Gcm9tKGNvbnN0
IEF1ZGlvQnVzICZzb3VyY2VCdXMsIGRvdWJsZSogbGFzdE1peEdhaW4sIGRvdWJsZSB0YXJnZXRH
YWluKTsKLQotICAgIC8vIFJldHVybnMgbWF4aW11bSBhYnNvbHV0ZSB2YWx1ZSBhY3Jvc3MgYWxs
IGNoYW5uZWxzICh1c2VmdWwgZm9yIG5vcm1hbGl6YXRpb24pLgotICAgIGZsb2F0IG1heEFic1Zh
bHVlKCkgY29uc3Q7Ci0KLSAgICAvLyBNYWtlcyBtYXhpbXVtIGFic29sdXRlIHZhbHVlID09IDEu
MCAoaWYgcG9zc2libGUpLgotICAgIHZvaWQgbm9ybWFsaXplKCk7Ci0KLXByb3RlY3RlZDoKLSAg
ICBBdWRpb0J1cygpIHsgfTsKLQotICAgIHZvaWQgcHJvY2Vzc1dpdGhHYWluRnJvbShjb25zdCBB
dWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUgdGFyZ2V0R2Fp
biwgYm9vbCBzdW1Ub0J1cyk7Ci0gICAgdm9pZCBwcm9jZXNzV2l0aEdhaW5Gcm9tTW9ub1N0ZXJl
byhjb25zdCBBdWRpb0J1cyAmc291cmNlQnVzLCBkb3VibGUqIGxhc3RNaXhHYWluLCBkb3VibGUg
dGFyZ2V0R2FpbiwgYm9vbCBzdW1Ub0J1cyk7Ci0KLSAgICBzaXplX3QgbV9sZW5ndGg7Ci0KLSAg
ICBWZWN0b3I8T3duUHRyPEF1ZGlvQ2hhbm5lbD4gPiBtX2NoYW5uZWxzOwotCi0gICAgaW50IG1f
bGF5b3V0OwotCi0gICAgZG91YmxlIG1fYnVzR2FpbjsKLSAgICBib29sIG1faXNGaXJzdFRpbWU7
Ci0gICAgZG91YmxlIG1fc2FtcGxlUmF0ZTsgLy8gMC4wIGlmIHVua25vd24gb3IgTi9BCi19Owot
Ci19IC8vIFdlYkNvcmUKLQotI2VuZGlmIC8vIEF1ZGlvQnVzX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9DaGFubmVsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQzODIx
OS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5lbC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQot
I2lmIEVOQUJMRShXRUJfQVVESU8pCi0KLSNpbmNsdWRlICJBdWRpb0NoYW5uZWwuaCIKLQotI2lu
Y2x1ZGUgIkFjY2VsZXJhdGUuaCIKLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8bWF0
aC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12
b2lkIEF1ZGlvQ2hhbm5lbDo6c2NhbGUoZG91YmxlIHNjYWxlKQotewotICAgIGZsb2F0IHMgPSBz
dGF0aWNfY2FzdDxmbG9hdD4oc2NhbGUpOwotICAgIHZzbXVsKGRhdGEoKSwgMSwgJnMsIGRhdGEo
KSwgMSwgbGVuZ3RoKCkpOwotfQotCi12b2lkIEF1ZGlvQ2hhbm5lbDo6Y29weUZyb20oY29uc3Qg
QXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsKQotewotICAgIGJvb2wgaXNTYWZlID0gKHNvdXJj
ZUNoYW5uZWwgJiYgc291cmNlQ2hhbm5lbC0+bGVuZ3RoKCkgPj0gbGVuZ3RoKCkpOwotICAgIEFT
U0VSVChpc1NhZmUpOwotICAgIGlmICghaXNTYWZlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
ZW1jcHkoZGF0YSgpLCBzb3VyY2VDaGFubmVsLT5kYXRhKCksIHNpemVvZihmbG9hdCkgKiBsZW5n
dGgoKSk7Ci19Ci0KLXZvaWQgQXVkaW9DaGFubmVsOjpjb3B5RnJvbVJhbmdlKGNvbnN0IEF1ZGlv
Q2hhbm5lbCogc291cmNlQ2hhbm5lbCwgdW5zaWduZWQgc3RhcnRGcmFtZSwgdW5zaWduZWQgZW5k
RnJhbWUpCi17Ci0gICAgLy8gQ2hlY2sgdGhhdCByYW5nZSBpcyBzYWZlIGZvciByZWFkaW5nIGZy
b20gc291cmNlQ2hhbm5lbC4KLSAgICBib29sIGlzUmFuZ2VTYWZlID0gc291cmNlQ2hhbm5lbCAm
JiBzdGFydEZyYW1lIDwgZW5kRnJhbWUgJiYgZW5kRnJhbWUgPD0gc291cmNlQ2hhbm5lbC0+bGVu
Z3RoKCk7Ci0gICAgQVNTRVJUKGlzUmFuZ2VTYWZlKTsKLSAgICBpZiAoIWlzUmFuZ2VTYWZlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBDaGVjayB0aGF0IHRoaXMgY2hhbm5lbCBoYXMgZW5v
dWdoIHNwYWNlLgotICAgIHNpemVfdCByYW5nZUxlbmd0aCA9IGVuZEZyYW1lIC0gc3RhcnRGcmFt
ZTsKLSAgICBib29sIGlzUmFuZ2VMZW5ndGhTYWZlID0gcmFuZ2VMZW5ndGggPD0gbGVuZ3RoKCk7
Ci0gICAgQVNTRVJUKGlzUmFuZ2VMZW5ndGhTYWZlKTsKLSAgICBpZiAoIWlzUmFuZ2VMZW5ndGhT
YWZlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb25zdCBmbG9hdCogc291cmNlID0gc291cmNl
Q2hhbm5lbC0+ZGF0YSgpOwotICAgIGZsb2F0KiBkZXN0aW5hdGlvbiA9IGRhdGEoKTsKLSAgICBt
ZW1jcHkoZGVzdGluYXRpb24sIHNvdXJjZSArIHN0YXJ0RnJhbWUsIHNpemVvZihmbG9hdCkgKiBy
YW5nZUxlbmd0aCk7Ci19Ci0KLXZvaWQgQXVkaW9DaGFubmVsOjpzdW1Gcm9tKGNvbnN0IEF1ZGlv
Q2hhbm5lbCogc291cmNlQ2hhbm5lbCkKLXsKLSAgICBib29sIGlzU2FmZSA9IHNvdXJjZUNoYW5u
ZWwgJiYgc291cmNlQ2hhbm5lbC0+bGVuZ3RoKCkgPj0gbGVuZ3RoKCk7Ci0gICAgQVNTRVJUKGlz
U2FmZSk7Ci0gICAgaWYgKCFpc1NhZmUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZhZGQoZGF0
YSgpLCAxLCBzb3VyY2VDaGFubmVsLT5kYXRhKCksIDEsIGRhdGEoKSwgMSwgbGVuZ3RoKCkpOwot
fQotCi1mbG9hdCBBdWRpb0NoYW5uZWw6Om1heEFic1ZhbHVlKCkgY29uc3QKLXsKLSAgICBjb25z
dCBmbG9hdCogcCA9IGRhdGEoKTsKLSAgICBpbnQgbiA9IGxlbmd0aCgpOwotCi0gICAgZmxvYXQg
bWF4ID0gMC4wZjsKLSAgICB3aGlsZSAobi0tKQotICAgICAgICBtYXggPSBzdGQ6Om1heChtYXgs
IGZhYnNmKCpwKyspKTsKLQotICAgIHJldHVybiBtYXg7Ci19Ci0KLX0gLy8gV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vQXVkaW9DaGFubmVsLmggYi9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQ2hhbm5l
bC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTEwNDhjLi4wMDAwMDAwCi0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9DaGFubmVsLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwxMTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgQXVkaW9DaGFubmVsX2gKLSNkZWZpbmUgQXVkaW9DaGFu
bmVsX2gKLQotI2luY2x1ZGUgIkF1ZGlvRmxvYXRBcnJheS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotLy8gQW4gQXVkaW9DaGFubmVsIHJlcHJlc2VudHMgYSBidWZmZXIgb2Ygbm9uLWlu
dGVybGVhdmVkIGZsb2F0aW5nLXBvaW50IGF1ZGlvIHNhbXBsZXMuCi0vLyBUaGUgUENNIHNhbXBs
ZXMgYXJlIG5vcm1hbGx5IGFzc3VtZWQgdG8gYmUgaW4gYSBub21pbmFsIHJhbmdlIC0xLjAgLT4g
KzEuMAotY2xhc3MgQXVkaW9DaGFubmVsIDogcHVibGljIE5vbmNvcHlhYmxlIHsKLXB1YmxpYzoK
LSAgICAvLyBNZW1vcnkgY2FuIGJlIGV4dGVybmFsbHkgcmVmZXJlbmNlZCwgb3IgY2FuIGJlIGlu
dGVybmFsbHkgYWxsb2NhdGVkIHdpdGggYW4gQXVkaW9GbG9hdEFycmF5LgotCi0gICAgLy8gUmVm
ZXJlbmNlIGFuIGV4dGVybmFsIGJ1ZmZlci4KLSAgICBBdWRpb0NoYW5uZWwoZmxvYXQqIHN0b3Jh
Z2UsIHNpemVfdCBsZW5ndGgpCi0gICAgICAgIDogbV9sZW5ndGgobGVuZ3RoKSwgbV9yYXdQb2lu
dGVyKHN0b3JhZ2UpIHsgfQotCi0gICAgLy8gTWFuYWdlIHN0b3JhZ2UgZm9yIHVzLgotICAgIGV4
cGxpY2l0IEF1ZGlvQ2hhbm5lbChzaXplX3QgbGVuZ3RoKQotICAgICAgICA6IG1fbGVuZ3RoKGxl
bmd0aCkKLSAgICAgICAgLCBtX3Jhd1BvaW50ZXIoMCkKLSAgICB7Ci0gICAgICAgIG1fbWVtQnVm
ZmVyID0gYWRvcHRQdHIobmV3IEF1ZGlvRmxvYXRBcnJheShsZW5ndGgpKTsKLSAgICB9Ci0KLSAg
ICAvLyBBICJibGFuayIgYXVkaW8gY2hhbm5lbCAtLSBtdXN0IGNhbGwgc2V0KCkgYmVmb3JlIGl0
J3MgdXNlZnVsLi4uCi0gICAgQXVkaW9DaGFubmVsKCkKLSAgICAgICAgOiBtX2xlbmd0aCgwKQot
ICAgICAgICAsIG1fcmF3UG9pbnRlcigwKQotICAgIHsKLSAgICB9Ci0KLSAgICAvLyBSZWRlZmlu
ZSB0aGUgbWVtb3J5IGZvciB0aGlzIGNoYW5uZWwuCi0gICAgLy8gc3RvcmFnZSByZXByZXNlbnRz
IGV4dGVybmFsIG1lbW9yeSBub3QgbWFuYWdlZCBieSB0aGlzIG9iamVjdC4KLSAgICB2b2lkIHNl
dChmbG9hdCogc3RvcmFnZSwgc2l6ZV90IGxlbmd0aCkKLSAgICB7Ci0gICAgICAgIG1fbWVtQnVm
ZmVyLmNsZWFyKCk7IC8vIGNsZWFudXAgbWFuYWdlZCBzdG9yYWdlCi0gICAgICAgIG1fcmF3UG9p
bnRlciA9IHN0b3JhZ2U7Ci0gICAgICAgIG1fbGVuZ3RoID0gbGVuZ3RoOwotICAgIH0KLQotICAg
IC8vIEhvdyBtYW55IHNhbXBsZS1mcmFtZXMgZG8gd2UgY29udGFpbj8KLSAgICBzaXplX3QgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KLQotICAgIC8vIERpcmVjdCBhY2Nlc3Mg
dG8gUENNIHNhbXBsZSBkYXRhCi0gICAgZmxvYXQqIGRhdGEoKSB7IHJldHVybiBtX3Jhd1BvaW50
ZXIgPyBtX3Jhd1BvaW50ZXIgOiBtX21lbUJ1ZmZlci0+ZGF0YSgpOyB9Ci0gICAgY29uc3QgZmxv
YXQqIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX3Jhd1BvaW50ZXIgPyBtX3Jhd1BvaW50ZXIgOiBt
X21lbUJ1ZmZlci0+ZGF0YSgpOyB9Ci0KLSAgICAvLyBaZXJvZXMgb3V0IGFsbCBzYW1wbGUgdmFs
dWVzIGluIGJ1ZmZlci4KLSAgICB2b2lkIHplcm8oKQotICAgIHsKLSAgICAgICAgaWYgKG1fbWVt
QnVmZmVyLmdldCgpKQotICAgICAgICAgICAgbV9tZW1CdWZmZXItPnplcm8oKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgbWVtc2V0KG1fcmF3UG9pbnRlciwgMCwgc2l6ZW9mKGZsb2F0KSAq
IG1fbGVuZ3RoKTsKLSAgICB9Ci0KLSAgICAvLyBTY2FsZXMgYWxsIHNhbXBsZXMgYnkgdGhlIHNh
bWUgYW1vdW50LgotICAgIHZvaWQgc2NhbGUoZG91YmxlIHNjYWxlKTsKLQotICAgIC8vIEEgc2lt
cGxlIG1lbWNweSgpIGZyb20gdGhlIHNvdXJjZSBjaGFubmVsCi0gICAgdm9pZCBjb3B5RnJvbShj
b25zdCBBdWRpb0NoYW5uZWwqIHNvdXJjZUNoYW5uZWwpOwotCi0gICAgLy8gQ29waWVzIHRoZSBn
aXZlbiByYW5nZSBmcm9tIHRoZSBzb3VyY2UgY2hhbm5lbC4KLSAgICB2b2lkIGNvcHlGcm9tUmFu
Z2UoY29uc3QgQXVkaW9DaGFubmVsKiBzb3VyY2VDaGFubmVsLCB1bnNpZ25lZCBzdGFydEZyYW1l
LCB1bnNpZ25lZCBlbmRGcmFtZSk7Ci0KLSAgICAvLyBTdW1zICh3aXRoIHVuaXR5IGdhaW4pIGZy
b20gdGhlIHNvdXJjZSBjaGFubmVsLgotICAgIHZvaWQgc3VtRnJvbShjb25zdCBBdWRpb0NoYW5u
ZWwqIHNvdXJjZUNoYW5uZWwpOwotCi0gICAgLy8gUmV0dXJucyBtYXhpbXVtIGFic29sdXRlIHZh
bHVlICh1c2VmdWwgZm9yIG5vcm1hbGl6YXRpb24pLgotICAgIGZsb2F0IG1heEFic1ZhbHVlKCkg
Y29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgc2l6ZV90IG1fbGVuZ3RoOwotCi0gICAgZmxvYXQqIG1f
cmF3UG9pbnRlcjsKLSAgICBPd25QdHI8QXVkaW9GbG9hdEFycmF5PiBtX21lbUJ1ZmZlcjsKLX07
Ci0KLX0gLy8gV2ViQ29yZQotCi0jZW5kaWYgLy8gQXVkaW9DaGFubmVsX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9Tb3VyY2VQcm92aWRlci5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9BdWRpb1NvdXJjZVByb3ZpZGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc3MzU0NmEuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9B
dWRpb1NvdXJjZVByb3ZpZGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBBdWRpb1NvdXJjZVByb3ZpZGVyX2gKLSNkZWZpbmUgQXVkaW9Tb3VyY2VQcm92aWRlcl9o
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQXVkaW9CdXM7Ci0gICAgCi0vLyBBYnN0
cmFjdCBiYXNlLWNsYXNzIGZvciBhIHB1bGwtbW9kZWwgY2xpZW50LgotLy8gcHJvdmlkZUlucHV0
KCkgZ2V0cyBjYWxsZWQgcmVwZWF0ZWRseSB0byByZW5kZXIgdGltZS1zbGljZXMgb2YgYSBjb250
aW51b3VzIGF1ZGlvIHN0cmVhbS4KLWNsYXNzIEF1ZGlvU291cmNlUHJvdmlkZXIgewotcHVibGlj
OgotICAgIHZpcnR1YWwgdm9pZCBwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90IGZy
YW1lc1RvUHJvY2VzcykgPSAwOwotICAgIHZpcnR1YWwgfkF1ZGlvU291cmNlUHJvdmlkZXIoKSB7
IH0KLX07Ci0KLX0gLy8gV2ViQ29yZQotCi0jZW5kaWYgLy8gQXVkaW9Tb3VyY2VQcm92aWRlcl9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Rpc3RhbmNlLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vRGlzdGFuY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwZjFiMDA1Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRGlzdGFu
Y2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLQotI2lmIEVOQUJMRShXRUJfQVVESU8pCi0KLSNpbmNsdWRlICJEaXN0YW5jZS5oIgotCi0j
aW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPG1hdGguaD4KLQotdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EaXN0YW5jZUVmZmVjdDo6RGlzdGFuY2VF
ZmZlY3QoKQotICAgIDogbV9tb2RlbChNb2RlbEludmVyc2UpCi0gICAgLCBtX2lzQ2xhbXBlZCh0
cnVlKQotICAgICwgbV9yZWZEaXN0YW5jZSgxLjApCi0gICAgLCBtX21heERpc3RhbmNlKDEwMDAw
LjApCi0gICAgLCBtX3JvbGxvZmZGYWN0b3IoMS4wKQotewotfQotCi1kb3VibGUgRGlzdGFuY2VF
ZmZlY3Q6OmdhaW4oZG91YmxlIGRpc3RhbmNlKQotewotICAgIC8vIGRvbid0IGdvIGJleW9uZCBt
YXhpbXVtIGRpc3RhbmNlCi0gICAgZGlzdGFuY2UgPSBtaW4oZGlzdGFuY2UsIG1fbWF4RGlzdGFu
Y2UpOwotCi0gICAgLy8gaWYgY2xhbXBlZCwgZG9uJ3QgZ2V0IGNsb3NlciB0aGFuIHJlZmVyZW5j
ZSBkaXN0YW5jZQotICAgIGlmIChtX2lzQ2xhbXBlZCkKLSAgICAgICAgZGlzdGFuY2UgPSBtYXgo
ZGlzdGFuY2UsIG1fcmVmRGlzdGFuY2UpOwotCi0gICAgc3dpdGNoIChtX21vZGVsKSB7Ci0gICAg
Y2FzZSBNb2RlbExpbmVhcjoKLSAgICAgICAgcmV0dXJuIGxpbmVhckdhaW4oZGlzdGFuY2UpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIE1vZGVsSW52ZXJzZToKLSAgICAgICAgcmV0dXJuIGlu
dmVyc2VHYWluKGRpc3RhbmNlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNb2RlbEV4cG9u
ZW50aWFsOgotICAgICAgICByZXR1cm4gZXhwb25lbnRpYWxHYWluKGRpc3RhbmNlKTsKLSAgICAg
ICAgYnJlYWs7Ci0KLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMC4wOwotICAgIH0KLX0K
LQotZG91YmxlIERpc3RhbmNlRWZmZWN0OjpsaW5lYXJHYWluKGRvdWJsZSBkaXN0YW5jZSkKLXsK
LSAgICByZXR1cm4gKDEuMCAtIG1fcm9sbG9mZkZhY3RvciAqIChkaXN0YW5jZSAtIG1fcmVmRGlz
dGFuY2UpKSAvIChtX21heERpc3RhbmNlIC0gbV9yZWZEaXN0YW5jZSk7Ci19Ci0KLWRvdWJsZSBE
aXN0YW5jZUVmZmVjdDo6aW52ZXJzZUdhaW4oZG91YmxlIGRpc3RhbmNlKQotewotICAgIHJldHVy
biBtX3JlZkRpc3RhbmNlIC8gKG1fcmVmRGlzdGFuY2UgKyBtX3JvbGxvZmZGYWN0b3IgKiAoZGlz
dGFuY2UgLSBtX3JlZkRpc3RhbmNlKSk7Ci19Ci0KLWRvdWJsZSBEaXN0YW5jZUVmZmVjdDo6ZXhw
b25lbnRpYWxHYWluKGRvdWJsZSBkaXN0YW5jZSkKLXsKLSAgICByZXR1cm4gcG93KGRpc3RhbmNl
IC8gbV9yZWZEaXN0YW5jZSwgLW1fcm9sbG9mZkZhY3Rvcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0Rpc3RhbmNlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0Rp
c3RhbmNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3ZWRkZWQuLjAwMDAwMDAK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9EaXN0YW5jZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsODAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgRGlzdGFuY2VfaAotI2RlZmluZSBEaXN0YW5jZV9oCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gRGlzdGFuY2UgbW9kZWxzIGFyZSBkZWZpbmVkIGFj
Y29yZGluZyB0byB0aGUgT3BlbkFMIHNwZWNpZmljYXRpb24KLQotY2xhc3MgRGlzdGFuY2VFZmZl
Y3QgewotcHVibGljOgotICAgIGVudW0gTW9kZWxUeXBlIHsKLSAgICAgICAgTW9kZWxMaW5lYXIg
PSAwLAotICAgICAgICBNb2RlbEludmVyc2UgPSAxLAotICAgICAgICBNb2RlbEV4cG9uZW50aWFs
ID0gMgotICAgIH07Ci0KLSAgICBEaXN0YW5jZUVmZmVjdCgpOwotCi0gICAgLy8gUmV0dXJucyBz
Y2FsYXIgZ2FpbiBmb3IgdGhlIGdpdmVuIGRpc3RhbmNlIHRoZSBjdXJyZW50IGRpc3RhbmNlIG1v
ZGVsIGlzIHVzZWQKLSAgICBkb3VibGUgZ2Fpbihkb3VibGUgZGlzdGFuY2UpOwotCi0gICAgTW9k
ZWxUeXBlIG1vZGVsKCkgeyByZXR1cm4gbV9tb2RlbDsgfQotCi0gICAgdm9pZCBzZXRNb2RlbChN
b2RlbFR5cGUgbW9kZWwsIGJvb2wgY2xhbXBlZCkKLSAgICB7Ci0gICAgICAgIG1fbW9kZWwgPSBt
b2RlbDsKLSAgICAgICAgbV9pc0NsYW1wZWQgPSBjbGFtcGVkOwotICAgIH0KLQotICAgIC8vIERp
c3RhbmNlIHBhcmFtcwotICAgIHZvaWQgc2V0UmVmRGlzdGFuY2UoZG91YmxlIHJlZkRpc3RhbmNl
KSB7IG1fcmVmRGlzdGFuY2UgPSByZWZEaXN0YW5jZTsgfQotICAgIHZvaWQgc2V0TWF4RGlzdGFu
Y2UoZG91YmxlIG1heERpc3RhbmNlKSB7IG1fbWF4RGlzdGFuY2UgPSBtYXhEaXN0YW5jZTsgfQot
ICAgIHZvaWQgc2V0Um9sbG9mZkZhY3Rvcihkb3VibGUgcm9sbG9mZkZhY3RvcikgeyBtX3JvbGxv
ZmZGYWN0b3IgPSByb2xsb2ZmRmFjdG9yOyB9Ci0KLSAgICBkb3VibGUgcmVmRGlzdGFuY2UoKSBj
b25zdCB7IHJldHVybiBtX3JlZkRpc3RhbmNlOyB9Ci0gICAgZG91YmxlIG1heERpc3RhbmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9tYXhEaXN0YW5jZTsgfQotICAgIGRvdWJsZSByb2xsb2ZmRmFjdG9y
KCkgY29uc3QgeyByZXR1cm4gbV9yb2xsb2ZmRmFjdG9yOyB9Ci0KLXByb3RlY3RlZDoKLSAgICBk
b3VibGUgbGluZWFyR2Fpbihkb3VibGUgZGlzdGFuY2UpOwotICAgIGRvdWJsZSBpbnZlcnNlR2Fp
bihkb3VibGUgZGlzdGFuY2UpOwotICAgIGRvdWJsZSBleHBvbmVudGlhbEdhaW4oZG91YmxlIGRp
c3RhbmNlKTsKLQotICAgIE1vZGVsVHlwZSBtX21vZGVsOwotICAgIGJvb2wgbV9pc0NsYW1wZWQ7
Ci0gICAgZG91YmxlIG1fcmVmRGlzdGFuY2U7Ci0gICAgZG91YmxlIG1fbWF4RGlzdGFuY2U7Ci0g
ICAgZG91YmxlIG1fcm9sbG9mZkZhY3RvcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIERpc3RhbmNlX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGFubmVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGFubmVyLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjlhMWZiZS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL1Bhbm5lci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVURJTykKLQotI2luY2x1ZGUg
IlBhbm5lci5oIgotCi0jaW5jbHVkZSAiRXF1YWxQb3dlclBhbm5lci5oIgotI2luY2x1ZGUgIkhS
VEZQYW5uZXIuaCIKLSNpbmNsdWRlICJQYXNzVGhyb3VnaFBhbm5lci5oIgotI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzT3duUHRyPFBhbm5lcj4g
UGFubmVyOjpjcmVhdGUoUGFubmluZ01vZGVsIG1vZGVsLCBkb3VibGUgc2FtcGxlUmF0ZSkKLXsK
LSAgICBPd25QdHI8UGFubmVyPiBwYW5uZXI7Ci0KLSAgICBzd2l0Y2ggKG1vZGVsKSB7Ci0gICAg
Y2FzZSBQYW5uaW5nTW9kZWxFcXVhbFBvd2VyOgotICAgICAgICBwYW5uZXIgPSBhZG9wdFB0cihu
ZXcgRXF1YWxQb3dlclBhbm5lcigpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIFBhbm5p
bmdNb2RlbEhSVEY6Ci0gICAgICAgIHBhbm5lciA9IGFkb3B0UHRyKG5ldyBIUlRGUGFubmVyKHNh
bXBsZVJhdGUpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIFBhbm5pbmdNb2RlbFBhc3N0
aHJvdWdoOgotICAgICAgICBwYW5uZXIgPSBhZG9wdFB0cihuZXcgUGFzc1Rocm91Z2hQYW5uZXIo
KSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgLy8gRklYTUU6IHNvdW5kIGZpZWxkIHBhbm5pbmcg
aXMgbm90IHlldCBpbXBsZW1lbnRlZC4uLgotICAgIGNhc2UgUGFubmluZ01vZGVsU291bmRGaWVs
ZDoKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIHBhbm5lci5yZWxlYXNlKCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bhbm5lci5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QYW5uZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhlMjE5Yi4u
MDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Bhbm5lci5oCisrKyAvZGV2L251
bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIg
dGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGFubmVyX2gKLSNkZWZpbmUgUGFubmVyX2gK
LQotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y2xhc3MgQXVkaW9CdXM7Ci0KLS8vIEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIHBhbm5pbmcgYSBt
b25vIG9yIHN0ZXJlbyBzb3VyY2UuCi0KLWNsYXNzIFBhbm5lciB7Ci1wdWJsaWM6Ci0gICAgZW51
bSB7Ci0gICAgICAgIFBhbm5pbmdNb2RlbFBhc3N0aHJvdWdoID0gMCwKLSAgICAgICAgUGFubmlu
Z01vZGVsRXF1YWxQb3dlciA9IDEsCi0gICAgICAgIFBhbm5pbmdNb2RlbEhSVEYgPSAyLAotICAg
ICAgICBQYW5uaW5nTW9kZWxTb3VuZEZpZWxkID0gMwotICAgIH07Ci0gICAgCi0gICAgdHlwZWRl
ZiB1bnNpZ25lZCBQYW5uaW5nTW9kZWw7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxQYW5uZXI+
IGNyZWF0ZShQYW5uaW5nTW9kZWwgbW9kZWwsIGRvdWJsZSBzYW1wbGVSYXRlKTsKLQotICAgIHZp
cnR1YWwgflBhbm5lcigpIHsgfTsKLQotICAgIFBhbm5pbmdNb2RlbCBwYW5uaW5nTW9kZWwoKSBj
b25zdCB7IHJldHVybiBtX3Bhbm5pbmdNb2RlbDsgfQotCi0gICAgdmlydHVhbCB2b2lkIHBhbihk
b3VibGUgYXppbXV0aCwgZG91YmxlIGVsZXZhdGlvbiwgQXVkaW9CdXMqIGlucHV0QnVzLCBBdWRp
b0J1cyogb3V0cHV0QnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKSA9IDA7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgcmVzZXQoKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBQYW5uZXIoUGFubmluZ01v
ZGVsIG1vZGVsKSA6IG1fcGFubmluZ01vZGVsKG1vZGVsKSB7IH0KLQotICAgIFBhbm5pbmdNb2Rl
bCBtX3Bhbm5pbmdNb2RlbDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIFBhbm5lcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9t
aXVtQnJpZGdlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmgK
aW5kZXggODk0Nzk5Yy4uYmM4NmRlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bUJyaWRnZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hy
b21pdW1CcmlkZ2UuaApAQCAtMTkwLDkgKzE5MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgLy8gVGhhdCBpcyBjb21taXR0ZWQgc2l6ZSBmb3IgV2luZG93cyBhbmQgdmlydHVhbCBt
ZW1vcnkgc2l6ZSBmb3IgUE9TSVgKICAgICAgICAgc3RhdGljIGludCBtZW1vcnlVc2FnZU1CKCk7
CiAKLSAgICAgICAgLy8gU2FtZSBhcyBhYm92ZSwgYnV0IGFsd2F5cyByZXR1cm5zIGFjdHVhbCB2
YWx1ZSwgd2l0aG91dCBhbnkgY2FjaGVzLgotICAgICAgICBzdGF0aWMgaW50IGFjdHVhbE1lbW9y
eVVzYWdlTUIoKTsKLQogICAgICAgICAvLyBNaW1lVHlwZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICBzdGF0aWMgYm9v
bCBpc1N1cHBvcnRlZEltYWdlTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAg
ICAgIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSmF2YVNjcmlwdE1JTUVUeXBlKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggYTBjZjVhNC4u
MGU5M2Q0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC0yNzcsOCArMjc3LDYg
QEAgRm9udDo6Q29kZVBhdGggRm9udDo6Y29kZVBhdGgoY29uc3QgVGV4dFJ1biYgcnVuKSBjb25z
dAogICAgICAgICByZXR1cm4gQ29tcGxleDsKICNlbmRpZgogCi0gICAgQ29kZVBhdGggcmVzdWx0
ID0gU2ltcGxlOwotCiAgICAgLy8gU3RhcnQgZnJvbSAwIHNpbmNlIGRyYXdpbmcgYW5kIGhpZ2hs
aWdodGluZyBhbHNvIG1lYXN1cmUgdGhlIGNoYXJhY3RlcnMgYmVmb3JlIHJ1bi0+ZnJvbQogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgcnVuLmxlbmd0aCgpOyBpKyspIHsKICAgICAgICAgY29uc3Qg
VUNoYXIgYyA9IHJ1bltpXTsKQEAgLTMxNCwxMCArMzEyLDggQEAgRm9udDo6Q29kZVBhdGggRm9u
dDo6Y29kZVBhdGgoY29uc3QgVGV4dFJ1biYgcnVuKSBjb25zdAogCiAgICAgICAgIGlmIChjIDwg
MHgxRTAwKSAvLyBVKzFFMDAgdGhyb3VnaCBVKzIwMDAgY2hhcmFjdGVycyB3aXRoIGRpYWNyaXRp
Y3MgYW5kIHN0YWNrZWQgZGlhY3JpdGljcwogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IGlmIChjIDw9IDB4MjAwMCkgewotICAgICAgICAgICAgcmVzdWx0ID0gU2ltcGxlV2l0aEdseXBo
T3ZlcmZsb3c7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAo
YyA8PSAweDIwMDApCisgICAgICAgICAgICByZXR1cm4gU2ltcGxlV2l0aEdseXBoT3ZlcmZsb3c7
CiAKICAgICAgICAgaWYgKGMgPCAweDIwRDApIC8vIFUrMjBEMCB0aHJvdWdoIFUrMjBGRiBDb21i
aW5pbmcgbWFya3MgZm9yIHN5bWJvbHMKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMzMzLDcg
KzMyOSw3IEBAIEZvbnQ6OkNvZGVQYXRoIEZvbnQ6OmNvZGVQYXRoKGNvbnN0IFRleHRSdW4mIHJ1
bikgY29uc3QKICAgICBpZiAodHlwZXNldHRpbmdGZWF0dXJlcygpKQogICAgICAgICByZXR1cm4g
Q29tcGxleDsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIFNpbXBsZTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4
IGVhNmM0NDguLjQ3Mzg0YjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5jcHAKQEAgLTU3MSwxNyArNTcxLDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldFBsYXRmb3JtU3Ryb2tlU3R5bGUoY29uc3QgU3Ryb2tlU3R5bGUmKQogfQogI2VuZGlmCiAK
LSNpZiAhUExBVEZPUk0oU0tJQSkKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTaGFyZWRHcmFw
aGljc0NvbnRleHQzRChTaGFyZWRHcmFwaGljc0NvbnRleHQzRCosIERyYXdpbmdCdWZmZXIqLCBj
b25zdCBJbnRTaXplJikKLXsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN5bmNTb2Z0d2Fy
ZUNhbnZhcygpCi17Ci19Ci0jZW5kaWYKLQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6YWRqdXN0
TGluZVRvUGl4ZWxCb3VuZGFyaWVzKEZsb2F0UG9pbnQmIHAxLCBGbG9hdFBvaW50JiBwMiwgZmxv
YXQgc3Ryb2tlV2lkdGgsIGNvbnN0IFN0cm9rZVN0eWxlJiBwZW5TdHlsZSkKIHsKICAgICAvLyBG
b3Igb2RkIHdpZHRocywgd2UgYWRkIGluIDAuNSB0byB0aGUgYXBwcm9wcmlhdGUgeC95IHNvIHRo
YXQgdGhlIGZsb2F0IGFyaXRobWV0aWMKQEAgLTYxMSw0ICs2MDAsMTQgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmFkanVzdExpbmVUb1BpeGVsQm91bmRhcmllcyhGbG9hdFBvaW50JiBwMSwgRmxv
YXRQb2ludCYgcDIKICAgICB9CiB9CiAKKyNpZiAhUExBVEZPUk0oU0tJQSkKK3ZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzZXRHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzRCosIGNvbnN0
IEludFNpemUmKQoreworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3luY1NvZnR3YXJlQ2Fu
dmFzKCkKK3sKK30KKyNlbmRpZgorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaAppbmRleCBjM2IyMGE5Li40NWRkZWUzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTEyMywxNyArMTIzLDE2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjb25zdCBpbnQgY01pc3NwZWxsaW5nTGluZVBhdHRlcm5HYXBX
aWR0aCA9IDE7CiAKICAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Ci0gICAgY2xhc3MgRHJhd2lu
Z0J1ZmZlcjsKICAgICBjbGFzcyBGb250OwogICAgIGNsYXNzIEdlbmVyYXRvcjsKICAgICBjbGFz
cyBHcmFkaWVudDsKKyAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKICAgICBjbGFzcyBHcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU7CiAgICAgY2xhc3MgR3JhcGhpY3NDb250ZXh0UHJp
dmF0ZTsKICAgICBjbGFzcyBJbWFnZUJ1ZmZlcjsKICAgICBjbGFzcyBLVVJMOwogICAgIGNsYXNz
IFBhdGg7CiAgICAgY2xhc3MgUGF0dGVybjsKLSAgICBjbGFzcyBTaGFyZWRHcmFwaGljc0NvbnRl
eHQzRDsKICAgICBjbGFzcyBUZXh0UnVuOwogCiAgICAgLy8gVGhlc2UgYml0cyBjYW4gYmUgT1Jl
ZCB0b2dldGhlciBmb3IgYSB0b3RhbCBvZiA4IHBvc3NpYmxlIHRleHQgZHJhd2luZyBtb2Rlcy4K
QEAgLTQyMiw3ICs0MjEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHBhdHRlcm4g
Z2V0SGFpa3VTdHJva2VTdHlsZSgpOwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRTaGFyZWRH
cmFwaGljc0NvbnRleHQzRChTaGFyZWRHcmFwaGljc0NvbnRleHQzRCosIERyYXdpbmdCdWZmZXIq
LCBjb25zdCBJbnRTaXplJik7CisgICAgICAgIHZvaWQgc2V0R3JhcGhpY3NDb250ZXh0M0QoR3Jh
cGhpY3NDb250ZXh0M0QqLCBjb25zdCBJbnRTaXplJik7CiAgICAgICAgIHZvaWQgc3luY1NvZnR3
YXJlQ2FudmFzKCk7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQ2hyb21pdW0uY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODI2YzNlLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckNocm9taXVtLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jaW5jbHVkZSAiQ2FudmFzMkRMYXllckNocm9t
aXVtLmgiCi0KLSNpbmNsdWRlICJEcmF3aW5nQnVmZmVyLmgiCi0KLSNpbmNsdWRlIDxHTEVTMi9n
bDIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRyPENhbnZhczJETGF5ZXJD
aHJvbWl1bT4gQ2FudmFzMkRMYXllckNocm9taXVtOjpjcmVhdGUoRHJhd2luZ0J1ZmZlciogZHJh
d2luZ0J1ZmZlciwgR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcikKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IENhbnZhczJETGF5ZXJDaHJvbWl1bShkcmF3aW5nQnVmZmVyLCBvd25lcikp
OwotfQotCi1DYW52YXMyRExheWVyQ2hyb21pdW06OkNhbnZhczJETGF5ZXJDaHJvbWl1bShEcmF3
aW5nQnVmZmVyKiBkcmF3aW5nQnVmZmVyLCBHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKQot
ICAgIDogQ2FudmFzTGF5ZXJDaHJvbWl1bShvd25lcikKLSAgICAsIG1fZHJhd2luZ0J1ZmZlcihk
cmF3aW5nQnVmZmVyKQotewotfQotCi1DYW52YXMyRExheWVyQ2hyb21pdW06On5DYW52YXMyRExh
eWVyQ2hyb21pdW0oKQotewotICAgIGlmIChtX3RleHR1cmVJZCkKLSAgICAgICAgZ2xEZWxldGVU
ZXh0dXJlcygxLCAmbV90ZXh0dXJlSWQpOwotfQotCi12b2lkIENhbnZhczJETGF5ZXJDaHJvbWl1
bTo6dXBkYXRlQ29udGVudHMoKQotewotICAgIGlmICghbV9kcmF3aW5nQnVmZmVyKQotICAgICAg
ICByZXR1cm47Ci0gICAgaWYgKG1fdGV4dHVyZUNoYW5nZWQpIHsgLy8gV2UgaGF2ZSB0byBnZW5l
cmF0ZSBhIG5ldyBiYWNraW5nIHRleHR1cmUuCi0gICAgICAgIGlmIChtX3RleHR1cmVJZCkKLSAg
ICAgICAgICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZUlkKTsKLSAgICAgICAgZ2xH
ZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlSWQpOwotICAgICAgICBnbEFjdGl2ZVRleHR1cmUoR0xf
VEVYVFVSRTApOwotICAgICAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVy
ZUlkKTsKLSAgICAgICAgSW50U2l6ZSBzaXplID0gbV9kcmF3aW5nQnVmZmVyLT5zaXplKCk7Ci0g
ICAgICAgIGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9SR0JBLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCksIDAsIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIDApOwotICAg
ICAgICAvLyBTZXQgdGhlIG1pbi1tYWcgZmlsdGVycyB0byBsaW5lYXIgYW5kIHdyYXAgbW9kZXMg
dG8gR0xfQ0xBTVBfVE9fRURHRQotICAgICAgICAvLyB0byBnZXQgYXJvdW5kIE5QT1QgdGV4dHVy
ZSBsaW1pdGF0aW9ucyBvZiBHTEVTLgotICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOwotICAgICAgICBnbFRleFBh
cmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NQUdfRklMVEVSLCBHTF9MSU5FQVIp
OwotICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQ
X1MsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOwotICAgICAgICBtX3Rl
eHR1cmVDaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGUgZ2xGaW5pc2goKSBo
ZXJlIGlzIHJlcXVpcmVkIGJlY2F1c2Ugd2UgaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgdGV4
dHVyZSBjcmVhdGVkIGluIHRoaXMKLSAgICAgICAgLy8gY29udGV4dCAodGhlIGNvbXBvc2l0b3Ig
Y29udGV4dCkgaXMgYWN0dWFsbHkgY3JlYXRlZCBieSB0aGUgc2VydmljZSBzaWRlIGJlZm9yZSB0
aGUgY2hpbGQgY29udGV4dAotICAgICAgICAvLyBhdHRlbXB0cyB0byB1c2UgaXQgKGluIHB1Ymxp
c2hUb1BsYXRmb3JtTGF5ZXIpLiAgZ2xGaW5pc2goKSBpcyBjdXJyZW50bHkgdGhlIG9ubHkgY2Fs
bCB3aXRoIHN0cm9uZwotICAgICAgICAvLyBlbm91Z2ggc2VtYW50aWNzIHRvIHByb21pc2UgdGhp
cywgYnV0IGlzIGFjdHVhbGx5IG11Y2ggc3Ryb25nZXIuICBJZGVhbGx5IHdlJ2QgZG8gc29tZXRo
aW5nIGxpa2UKLSAgICAgICAgLy8gaW5zZXJ0aW5nIGEgZmVuY2UgaGVyZSBhbmQgd2FpdGluZyBm
b3IgaXQgYmVmb3JlIHRyeWluZyB0byBwdWJsaXNoLgotICAgICAgICBnbEZpbmlzaCgpOwotICAg
IH0KLSAgICAvLyBVcGRhdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSB0ZXh0dXJlIHVzZWQgYnkgdGhl
IGNvbXBvc2l0b3IuCi0gICAgaWYgKG1fY29udGVudHNEaXJ0eSkgewotICAgICAgICBtX2RyYXdp
bmdCdWZmZXItPnB1Ymxpc2hUb1BsYXRmb3JtTGF5ZXIoKTsKLSAgICAgICAgbV9jb250ZW50c0Rp
cnR5ID0gZmFsc2U7Ci0gICAgfQotfQotCi12b2lkIENhbnZhczJETGF5ZXJDaHJvbWl1bTo6c2V0
VGV4dHVyZUNoYW5nZWQoKQotewotICAgIG1fdGV4dHVyZUNoYW5nZWQgPSB0cnVlOwotfQotCi11
bnNpZ25lZCBDYW52YXMyRExheWVyQ2hyb21pdW06OnRleHR1cmVJZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fdGV4dHVyZUlkOwotfQotCi12b2lkIENhbnZhczJETGF5ZXJDaHJvbWl1bTo6c2V0
RHJhd2luZ0J1ZmZlcihEcmF3aW5nQnVmZmVyKiBkcmF3aW5nQnVmZmVyKQotewotICAgIGlmIChk
cmF3aW5nQnVmZmVyICE9IG1fZHJhd2luZ0J1ZmZlcikgewotICAgICAgICBtX2RyYXdpbmdCdWZm
ZXIgPSBkcmF3aW5nQnVmZmVyOwotICAgICAgICBtX3RleHR1cmVDaGFuZ2VkID0gdHJ1ZTsKLSAg
ICB9Ci19Ci0KLX0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJD
aHJvbWl1bS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExh
eWVyQ2hyb21pdW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAzMTIyOS4uMDAw
MDAwMAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5
ZXJDaHJvbWl1bS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRp
b24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLQotI2lmbmRlZiBDYW52
YXMyRExheWVyQ2hyb21pdW1faAotI2RlZmluZSBDYW52YXMyRExheWVyQ2hyb21pdW1faAotCi0j
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jaW5jbHVkZSAiQ2FudmFzTGF5ZXJD
aHJvbWl1bS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERyYXdpbmdCdWZmZXI7
Ci0KLS8vIEEgbGF5ZXIgY29udGFpbmluZyBhbiBhY2NlbGVyYXRlZCAyZCBjYW52YXMKLWNsYXNz
IENhbnZhczJETGF5ZXJDaHJvbWl1bSA6IHB1YmxpYyBDYW52YXNMYXllckNocm9taXVtIHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDYW52YXMyRExheWVyQ2hyb21pdW0+IGNyZWF0
ZShEcmF3aW5nQnVmZmVyKiwgR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcik7Ci0gICAgdmly
dHVhbCB+Q2FudmFzMkRMYXllckNocm9taXVtKCk7Ci0gICAgdmlydHVhbCBib29sIGRyYXdzQ29u
dGVudCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMo
KTsKLQotICAgIHZvaWQgc2V0VGV4dHVyZUNoYW5nZWQoKTsKLSAgICB1bnNpZ25lZCB0ZXh0dXJl
SWQoKSBjb25zdDsKLSAgICB2b2lkIHNldERyYXdpbmdCdWZmZXIoRHJhd2luZ0J1ZmZlciopOwot
Ci1wcml2YXRlOgotICAgIGV4cGxpY2l0IENhbnZhczJETGF5ZXJDaHJvbWl1bShEcmF3aW5nQnVm
ZmVyKiwgR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lcik7Ci0gICAgRHJhd2luZ0J1ZmZlciog
bV9kcmF3aW5nQnVmZmVyOwotCi0gICAgc3RhdGljIHVuc2lnbmVkIG1fc2hhZGVyUHJvZ3JhbUlk
OwotfTsKLQotfQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZh
c0xheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9D
YW52YXNMYXllckNocm9taXVtLmNwcAppbmRleCA1NmE3MjYyLi5iYmYwOTFjIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyQ2hyb21pdW0u
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJD
aHJvbWl1bS5jcHAKQEAgLTM0LDE0ICszNCwxMiBAQAogCiAjaW5jbHVkZSAiQ2FudmFzTGF5ZXJD
aHJvbWl1bS5oIgogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJM
YXllclJlbmRlcmVyQ2hyb21pdW0uaCIKLQogI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXVuc2lnbmVkIENhbnZhc0xheWVyQ2hyb21pdW06Om1fc2hhZGVy
UHJvZ3JhbUlkID0gMDsKLQogQ2FudmFzTGF5ZXJDaHJvbWl1bTo6U2hhcmVkVmFsdWVzOjpTaGFy
ZWRWYWx1ZXMoKQogICAgIDogbV9jYW52YXNTaGFkZXJQcm9ncmFtKDApCiAgICAgLCBtX3NoYWRl
clNhbXBsZXJMb2NhdGlvbigtMSkKQEAgLTk1LDE1ICs5Myw0OSBAQCBDYW52YXNMYXllckNocm9t
aXVtOjpTaGFyZWRWYWx1ZXM6On5TaGFyZWRWYWx1ZXMoKQogICAgICAgICBHTEMoZ2xEZWxldGVQ
cm9ncmFtKG1fY2FudmFzU2hhZGVyUHJvZ3JhbSkpOwogfQogCitQYXNzUmVmUHRyPENhbnZhc0xh
eWVyQ2hyb21pdW0+IENhbnZhc0xheWVyQ2hyb21pdW06OmNyZWF0ZShHcmFwaGljc0xheWVyQ2hy
b21pdW0qIG93bmVyKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2FudmFzTGF5ZXJDaHJv
bWl1bShvd25lcikpOworfQorCiBDYW52YXNMYXllckNocm9taXVtOjpDYW52YXNMYXllckNocm9t
aXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpCiAgICAgOiBMYXllckNocm9taXVtKG93
bmVyKQotICAgICwgbV90ZXh0dXJlQ2hhbmdlZCh0cnVlKQorICAgICwgbV9jb250ZXh0KDApCiAg
ICAgLCBtX3RleHR1cmVJZCgwKQorICAgICwgbV90ZXh0dXJlQ2hhbmdlZChmYWxzZSkKK3sKK30K
Kwordm9pZCBDYW52YXNMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50cygpCiB7CisgICAgQVNT
RVJUKG1fY29udGV4dCk7CisgICAgaWYgKG1fdGV4dHVyZUNoYW5nZWQpIHsKKyAgICAgICAgZ2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmVJZCk7CisgICAgICAgIC8vIFNldCB0
aGUgbWluLW1hZyBmaWx0ZXJzIHRvIGxpbmVhciBhbmQgd3JhcCBtb2RlcyB0byBHTF9DTEFNUF9U
T19FREdFCisgICAgICAgIC8vIHRvIGdldCBhcm91bmQgTlBPVCB0ZXh0dXJlIGxpbWl0YXRpb25z
IG9mIEdMRVMuCisgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhU
VVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgIGds
VGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dSQVBfUywgR0xfQ0xBTVBf
VE9fRURHRSk7CisgICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhU
VVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgICAgIG1fdGV4dHVyZUNoYW5nZWQg
PSBmYWxzZTsKKyAgICB9CisgICAgLy8gVXBkYXRlIHRoZSBjb250ZW50cyBvZiB0aGUgdGV4dHVy
ZSB1c2VkIGJ5IHRoZSBjb21wb3NpdG9yLgorICAgIGlmIChtX2NvbnRlbnRzRGlydHkpIHsKKyAg
ICAgICAgaWYgKG1fcHJlcGFyZVRleHR1cmVDYWxsYmFjaykKKyAgICAgICAgICAgIG1fcHJlcGFy
ZVRleHR1cmVDYWxsYmFjay0+d2lsbFByZXBhcmVUZXh0dXJlKCk7CisgICAgICAgIG1fY29udGV4
dC0+cHJlcGFyZVRleHR1cmUoKTsKKyAgICAgICAgbV9jb250ZW50c0RpcnR5ID0gZmFsc2U7Cisg
ICAgfQogfQogCi1DYW52YXNMYXllckNocm9taXVtOjp+Q2FudmFzTGF5ZXJDaHJvbWl1bSgpCit2
b2lkIENhbnZhc0xheWVyQ2hyb21pdW06OnNldENvbnRleHQoY29uc3QgR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQpCiB7CisgICAgbV9jb250ZXh0ID0gY29uc3RfY2FzdDxHcmFwaGljc0NvbnRl
eHQzRCo+KGNvbnRleHQpOworCisgICAgdW5zaWduZWQgaW50IHRleHR1cmVJZCA9IG1fY29udGV4
dC0+cGxhdGZvcm1UZXh0dXJlKCk7CisgICAgaWYgKHRleHR1cmVJZCAhPSBtX3RleHR1cmVJZCkK
KyAgICAgICAgbV90ZXh0dXJlQ2hhbmdlZCA9IHRydWU7CisgICAgbV90ZXh0dXJlSWQgPSB0ZXh0
dXJlSWQ7CiB9CiAKIHZvaWQgQ2FudmFzTGF5ZXJDaHJvbWl1bTo6ZHJhdygpCkBAIC0xMTgsNyAr
MTUwLDYgQEAgdm9pZCBDYW52YXNMYXllckNocm9taXVtOjpkcmF3KCkKICAgICBkcmF3VGV4dHVy
ZWRRdWFkKGxheWVyUmVuZGVyZXIoKS0+cHJvamVjdGlvbk1hdHJpeCgpLCBkcmF3VHJhbnNmb3Jt
KCksCiAgICAgICAgICAgICAgICAgICAgICBib3VuZHMoKS53aWR0aCgpLCBib3VuZHMoKS5oZWln
aHQoKSwgZHJhd09wYWNpdHkoKSwKICAgICAgICAgICAgICAgICAgICAgIHN2LT5zaGFkZXJNYXRy
aXhMb2NhdGlvbigpLCBzdi0+c2hhZGVyQWxwaGFMb2NhdGlvbigpKTsKLQogfQogCiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhc0xheWVyQ2hy
b21pdW0uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJD
aHJvbWl1bS5oCmluZGV4IGQ1OTFjNzMuLjA1M2VmZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzTGF5ZXJDaHJvbWl1bS5oCkBAIC0z
OCwxMyArMzgsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBCYXNlIGNsYXNzIGZv
ciBXZWJHTCBhbmQgYWNjZWxlcmF0ZWQgMmQgY2FudmFzZXMuCitjbGFzcyBHcmFwaGljc0NvbnRl
eHQzRDsKKworLy8gQSBMYXllciBjb250YWluaW5nIGEgV2ViR0wgb3IgYWNjZWxlcmF0ZWQgMmQg
Y2FudmFzCiBjbGFzcyBDYW52YXNMYXllckNocm9taXVtIDogcHVibGljIExheWVyQ2hyb21pdW0g
ewogcHVibGljOgotICAgIHZpcnR1YWwgfkNhbnZhc0xheWVyQ2hyb21pdW0oKTsKLQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENhbnZhc0xheWVyQ2hyb21pdW0+IGNyZWF0ZShHcmFwaGljc0xheWVy
Q2hyb21pdW0qIG93bmVyID0gMCk7CisgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIHsg
cmV0dXJuIG1fY29udGV4dDsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cygpOwog
ICAgIHZpcnR1YWwgdm9pZCBkcmF3KCk7CiAKKyAgICB2b2lkIHNldENvbnRleHQoY29uc3QgR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQpOworCiAgICAgY2xhc3MgU2hhcmVkVmFsdWVzIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIFNoYXJlZFZhbHVlcygpOwpAQCAtNjQsMTYgKzY5LDIxIEBAIHB1
YmxpYzoKICAgICAgICAgYm9vbCBtX2luaXRpYWxpemVkOwogICAgIH07CiAKLXByb3RlY3RlZDoK
LSAgICBleHBsaWNpdCBDYW52YXNMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSog
b3duZXIpOwotICAgIGJvb2wgbV90ZXh0dXJlQ2hhbmdlZDsKLSAgICB1bnNpZ25lZCBtX3RleHR1
cmVJZDsKKyAgICBjbGFzcyBQcmVwYXJlVGV4dHVyZUNhbGxiYWNrIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsUHJlcGFyZVRleHR1
cmUoKSA9IDA7CisgICAgfTsKKyAgICB2b2lkIHNldFByZXBhcmVUZXh0dXJlQ2FsbGJhY2soUGFz
c093blB0cjxQcmVwYXJlVGV4dHVyZUNhbGxiYWNrPiBjYWxsYmFjaykgeyBtX3ByZXBhcmVUZXh0
dXJlQ2FsbGJhY2sgPSBjYWxsYmFjazsgfQogCiBwcml2YXRlOgotICAgIHN0YXRpYyB1bnNpZ25l
ZCBtX3NoYWRlclByb2dyYW1JZDsKKyAgICBleHBsaWNpdCBDYW52YXNMYXllckNocm9taXVtKEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOworICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2Nv
bnRleHQ7CisgICAgdW5zaWduZWQgbV90ZXh0dXJlSWQ7CisgICAgYm9vbCBtX3RleHR1cmVDaGFu
Z2VkOworICAgIE93blB0cjxQcmVwYXJlVGV4dHVyZUNhbGxiYWNrPiBtX3ByZXBhcmVUZXh0dXJl
Q2FsbGJhY2s7CiB9OwogCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogCi0jZW5kaWYgLy8gQ2FudmFzTGF5ZXJDaHJvbWl1bV9oCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVt
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRHJhd2luZ0J1ZmZlckNo
cm9taXVtLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzZjMTU3MC4uMDAwMDAw
MAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJD
aHJvbWl1bS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoYykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0
aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0KLSNpbmNsdWRlICJEcmF3aW5nQnVmZmVyLmgiCi0KLSNpbmNsdWRlICJDYW52YXMy
RExheWVyQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1
ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCi0KLSNpbmNsdWRlIDxHTEVTMi9nbDIuaD4K
LSNpZm5kZWYgR0xfR0xFWFRfUFJPVE9UWVBFUwotI2RlZmluZSBHTF9HTEVYVF9QUk9UT1RZUEVT
IDEKLSNlbmRpZgotI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLXN0cnVjdCBEcmF3aW5nQnVmZmVySW50ZXJuYWwgewotICAgIHVuc2lnbmVkIG9mZnNj
cmVlbkNvbG9yVGV4dHVyZTsKLSAgICBSZWZQdHI8Q2FudmFzMkRMYXllckNocm9taXVtPiBwbGF0
Zm9ybUxheWVyOwotfTsKLQotc3RhdGljIHVuc2lnbmVkIGdlbmVyYXRlQ29sb3JUZXh0dXJlKFNo
YXJlZEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplKQotewot
ICAgIHVuc2lnbmVkIG9mZnNjcmVlbkNvbG9yVGV4dHVyZSA9IGNvbnRleHQtPmNyZWF0ZVRleHR1
cmUoKTsKLSAgICBpZiAoIW9mZnNjcmVlbkNvbG9yVGV4dHVyZSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICBjb250ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8y
RCwgb2Zmc2NyZWVuQ29sb3JUZXh0dXJlKTsKLSAgICBjb250ZXh0LT50ZXhQYXJhbWV0ZXJpKEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV9N
QUdfRklMVEVSLCBHcmFwaGljc0NvbnRleHQzRDo6TkVBUkVTVCk7Ci0gICAgY29udGV4dC0+dGV4
UGFyYW1ldGVyaShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkVfTUlOX0ZJTFRFUiwgR3JhcGhpY3NDb250ZXh0M0Q6Ok5FQVJFU1QpOwotICAg
IGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1Q
X1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoR3JhcGhpY3NDb250ZXh0M0Q6
OlRFWFRVUkVfMkQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpOwotICAgIGNvbnRleHQtPnRleEltYWdlMkQoR3JhcGhp
Y3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQsIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBzaXpl
LndpZHRoKCksIHNpemUuaGVpZ2h0KCksIDAsIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBLCBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSwgMCk7Ci0gICAgY29udGV4dC0+ZnJhbWVidWZm
ZXJUZXh0dXJlMkQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBHcmFwaGljc0NvbnRl
eHQzRDo6Q09MT1JfQVRUQUNITUVOVDAsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJELCBv
ZmZzY3JlZW5Db2xvclRleHR1cmUsIDApOwotCi0gICAgcmV0dXJuIG9mZnNjcmVlbkNvbG9yVGV4
dHVyZTsKLX0KLQotCi1EcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKFNoYXJlZEdyYXBoaWNz
Q29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplLCB1bnNpZ25lZCBmcmFtZWJ1
ZmZlcikKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQotICAgICwgbV9zaXplKHNpemUpCi0gICAg
LCBtX2ZyYW1lYnVmZmVyKGZyYW1lYnVmZmVyKQotICAgICwgbV9pbnRlcm5hbChuZXcgRHJhd2lu
Z0J1ZmZlckludGVybmFsKQotewotICAgIGNvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihmcmFtZWJ1
ZmZlcik7Ci0gICAgbV9pbnRlcm5hbC0+b2Zmc2NyZWVuQ29sb3JUZXh0dXJlID0gZ2VuZXJhdGVD
b2xvclRleHR1cmUoY29udGV4dCwgc2l6ZSk7Ci19Ci0KLURyYXdpbmdCdWZmZXI6On5EcmF3aW5n
QnVmZmVyKCkKLXsKLSAgICBpZiAobV9pbnRlcm5hbC0+cGxhdGZvcm1MYXllcikKLSAgICAgICAg
bV9pbnRlcm5hbC0+cGxhdGZvcm1MYXllci0+c2V0RHJhd2luZ0J1ZmZlcigwKTsKLSAgICBtX2Nv
bnRleHQtPmRlbGV0ZUZyYW1lYnVmZmVyKG1fZnJhbWVidWZmZXIpOwotfQotCi12b2lkIERyYXdp
bmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5ZXIoKQotewotICAgIGlmIChtX2NhbGxiYWNr
KQotICAgICAgICBtX2NhbGxiYWNrLT53aWxsUHVibGlzaCgpOwotICAgIHVuc2lnbmVkIHBhcmVu
dFRleHR1cmUgPSBtX2ludGVybmFsLT5wbGF0Zm9ybUxheWVyLT50ZXh0dXJlSWQoKTsKLSAgICAv
LyBGSVhNRTogV2UgZG8gdGhlIGNvcHkgaW4gdGhlIGNhbnZhcycgKGNoaWxkKSBjb250ZXh0IHNv
IHRoYXQgaXQgZXhlY3V0ZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgcmVsYXRpdmUgdG8KLSAgICAv
LyBvdGhlciBjb21tYW5kcyBpbiB0aGUgY2hpbGQgY29udGV4dC4gIFRoaXMgZW5zdXJlcyB0aGF0
IHRoZSBwYXJlbnQgdGV4dHVyZSBhbHdheXMgY29udGFpbnMgYSBjb21wbGV0ZQotICAgIC8vIGZy
YW1lIGFuZCBub3Qgc29tZSBpbnRlcm1lZGlhdGUgcmVzdWx0LiAgSG93ZXZlciwgdGhlcmUgaXMg
bm8gc3luY2hyb25pemF0aW9uIHRvIGVuc3VyZSB0aGF0IHRoaXMgY29weQotICAgIC8vIGhhcHBl
bnMgYmVmb3JlIHRoZSBjb21wb3NpdG9yIGRyYXdzLiAgVGhpcyBtZWFucyB3ZSBtaWdodCBkcmF3
IHN0YWxlIGZyYW1lcyBzb21ldGltZXMuICBJZGVhbGx5IHRoaXMKLSAgICAvLyB3b3VsZCBpbnNl
cnQgYSBmZW5jZSBpbnRvIHRoZSBjaGlsZCBjb21tYW5kIHN0cmVhbSB0aGF0IHRoZSBjb21wb3Np
dG9yIGNvdWxkIHdhaXQgZm9yLgotICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7
Ci0gICAgZ2xDb3B5VGV4dHVyZVRvUGFyZW50VGV4dHVyZShtX2ludGVybmFsLT5vZmZzY3JlZW5D
b2xvclRleHR1cmUsIHBhcmVudFRleHR1cmUpOwotICAgIGdsRmx1c2goKTsKLX0KLQotdm9pZCBE
cmF3aW5nQnVmZmVyOjpyZXNldChjb25zdCBJbnRTaXplJiBuZXdTaXplKQotewotICAgIGlmICht
X3NpemUgPT0gbmV3U2l6ZSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fc2l6ZSA9IG5ld1NpemU7
Ci0gICAgbV9jb250ZXh0LT5kZWxldGVUZXh0dXJlKG1faW50ZXJuYWwtPm9mZnNjcmVlbkNvbG9y
VGV4dHVyZSk7Ci0gICAgbV9jb250ZXh0LT5iaW5kRnJhbWVidWZmZXIobV9mcmFtZWJ1ZmZlcik7
Ci0gICAgbV9pbnRlcm5hbC0+b2Zmc2NyZWVuQ29sb3JUZXh0dXJlID0gZ2VuZXJhdGVDb2xvclRl
eHR1cmUobV9jb250ZXh0LCBtX3NpemUpOwotCi0gICAgaWYgKG1faW50ZXJuYWwtPnBsYXRmb3Jt
TGF5ZXIpCi0gICAgICAgIG1faW50ZXJuYWwtPnBsYXRmb3JtTGF5ZXItPnNldFRleHR1cmVDaGFu
Z2VkKCk7Ci19Ci0KLVBsYXRmb3JtTGF5ZXIqIERyYXdpbmdCdWZmZXI6OnBsYXRmb3JtTGF5ZXIo
KQotewotICAgIGlmICghbV9pbnRlcm5hbC0+cGxhdGZvcm1MYXllcikKLSAgICAgICAgbV9pbnRl
cm5hbC0+cGxhdGZvcm1MYXllciA9IENhbnZhczJETGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKHRoaXMs
IDApOwotICAgIHJldHVybiBtX2ludGVybmFsLT5wbGF0Zm9ybUxheWVyLmdldCgpOwotfQotCi11
bnNpZ25lZCBEcmF3aW5nQnVmZmVyOjpnZXRSZW5kZXJpbmdSZXN1bHRzQXNUZXh0dXJlKCkKLXsK
LSAgICByZXR1cm4gbV9pbnRlcm5hbC0+b2Zmc2NyZWVuQ29sb3JUZXh0dXJlOwotfQotCi19CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1
bVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1
bVdpbi5jcHAKaW5kZXggOGE3NzUwMS4uNzhiNzUxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcApAQCAtMzcyLDgg
KzM3Miw2IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
Q29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtR2x5cGhzLAogICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KSBjb25zdAogewotICAgIGdyYXBo
aWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVGb3JTb2Z0d2FyZURyYXcoKTsK
LQogICAgIFNrQ29sb3IgY29sb3IgPSBncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LT5lZmZlY3RpdmVGaWxsQ29sb3IoKTsKICAgICB1bnNpZ25lZCBjaGFyIGFscGhhID0gU2tDb2xv
ckdldEEoY29sb3IpOwogICAgIC8vIFNraXAgMTAwJSB0cmFuc3BhcmVudCB0ZXh0OyBubyBuZWVk
IHRvIGRyYXcgYW55dGhpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0ZvbnRMaW51eC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0ZvbnRMaW51eC5jcHAKaW5kZXggMjUyMGMzMC4uZTFjODZhMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcApAQCAtMTAwLDggKzEw
MCw2IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBT
aW1wbGVGb250RGF0YSogZm9udCwKICAgICAgICAgeSArPSBTa0Zsb2F0VG9TY2FsYXIoYWR2W2ld
LmhlaWdodCgpKTsKICAgICB9CiAKLSAgICBnYy0+cGxhdGZvcm1Db250ZXh0KCktPnByZXBhcmVG
b3JTb2Z0d2FyZURyYXcoKTsKLQogICAgIFNrQ2FudmFzKiBjYW52YXMgPSBnYy0+cGxhdGZvcm1D
b250ZXh0KCktPmNhbnZhcygpOwogICAgIGludCB0ZXh0TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRl
eHQoKS0+Z2V0VGV4dERyYXdpbmdNb2RlKCk7CiAgICAgYm9vbCBoYXZlTXVsdGlwbGVMYXllcnMg
PSBpc0NhbnZhc011bHRpTGF5ZXJlZChjYW52YXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2FudmFzLmNwcAppbmRleCA0NmFlY2Y0Li44MmQ0YzBi
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2Fu
dmFzLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2Fu
dmFzLmNwcApAQCAtMzIsMTIgKzMyLDEwIEBACiAKICNpbmNsdWRlICJHTEVTMkNhbnZhcy5oIgog
Ci0jaW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qu
aCIKICNpbmNsdWRlICJTb2xpZEZpbGxTaGFkZXIuaCIKICNpbmNsdWRlICJUZXhTaGFkZXIuaCIK
ICNpbmNsdWRlICJUZXh0dXJlLmgiCkBAIC02MywzNSArNjEsMzcgQEAgc3RydWN0IEdMRVMyQ2Fu
dmFzOjpTdGF0ZSB7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fY3RtOwogfTsKIAotR0xFUzJDYW52
YXM6OkdMRVMyQ2FudmFzKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBEcmF3aW5n
QnVmZmVyKiBkcmF3aW5nQnVmZmVyLCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIDogbV9zaXpl
KHNpemUpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKLSAgICAsIG1fZHJhd2luZ0J1ZmZlcihk
cmF3aW5nQnVmZmVyKQorR0xFUzJDYW52YXM6OkdMRVMyQ2FudmFzKEdyYXBoaWNzQ29udGV4dDNE
KiBjb250ZXh0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIDogbV9jb250ZXh0KGNvbnRleHQp
CiAgICAgLCBtX3N0YXRlKDApCisgICAgLCBtX3F1YWRWZXJ0aWNlcygwKQorICAgICwgbV9zb2xp
ZEZpbGxTaGFkZXIoU29saWRGaWxsU2hhZGVyOjpjcmVhdGUoY29udGV4dCkpCisgICAgLCBtX3Rl
eFNoYWRlcihUZXhTaGFkZXI6OmNyZWF0ZShjb250ZXh0KSkKIHsKICAgICBtX2ZsaXBNYXRyaXgu
dHJhbnNsYXRlKC0xLjBmLCAxLjBmKTsKICAgICBtX2ZsaXBNYXRyaXguc2NhbGUoMi4wZiAvIHNp
emUud2lkdGgoKSwgLTIuMGYgLyBzaXplLmhlaWdodCgpKTsKIAorICAgIG1fY29udGV4dC0+cmVz
aGFwZShzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOworICAgIG1fY29udGV4dC0+dmlld3Bv
cnQoMCwgMCwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKwogICAgIG1fc3RhdGVTdGFj
ay5hcHBlbmQoU3RhdGUoKSk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0YXRlU3RhY2subGFzdCgpOwot
fQogCi1HTEVTMkNhbnZhczo6fkdMRVMyQ2FudmFzKCkKLXsKKyAgICAvLyBGb3JjZSB0aGUgc291
cmNlIG92ZXIgY29tcG9zaXRlIG1vZGUgdG8gYmUgYXBwbGllZC4KKyAgICBtX2xhc3RDb21wb3Np
dGVPcCA9IENvbXBvc2l0ZUNsZWFyOworICAgIGFwcGx5Q29tcG9zaXRlT3BlcmF0b3IoQ29tcG9z
aXRlU291cmNlT3Zlcik7CiB9CiAKLXZvaWQgR0xFUzJDYW52YXM6OmJpbmRGcmFtZWJ1ZmZlcigp
CitHTEVTMkNhbnZhczo6fkdMRVMyQ2FudmFzKCkKIHsKLSAgICBtX2RyYXdpbmdCdWZmZXItPmJp
bmQoKTsKKyAgICBtX2NvbnRleHQtPmRlbGV0ZUJ1ZmZlcihtX3F1YWRWZXJ0aWNlcyk7CiB9CiAK
IHZvaWQgR0xFUzJDYW52YXM6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0g
ICAgYmluZEZyYW1lYnVmZmVyKCk7CiAgICAgaWYgKG1fc3RhdGUtPm1fY3RtLmlzSWRlbnRpdHko
KSkgewotICAgICAgICBtX2NvbnRleHQtPnNjaXNzb3IocmVjdCk7CisgICAgICAgIG1fY29udGV4
dC0+c2Npc3NvcihyZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSk7CiAgICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09S
X1RFU1QpOwotICAgICAgICBtX2NvbnRleHQtPmNsZWFyQ29sb3IoQ29sb3IoUkdCQTMyKDApKSk7
CiAgICAgICAgIG1fY29udGV4dC0+Y2xlYXIoR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX0JVRkZF
Ul9CSVQpOwogICAgICAgICBtX2NvbnRleHQtPmRpc2FibGUoR3JhcGhpY3NDb250ZXh0M0Q6OlND
SVNTT1JfVEVTVCk7CiAgICAgfSBlbHNlIHsKQEAgLTEwNCwxNyArMTA0LDE2IEBAIHZvaWQgR0xF
UzJDYW52YXM6OmNsZWFyUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAKIHZvaWQgR0xFUzJD
YW52YXM6OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9y
LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UpCiB7Ci0gICAgbV9jb250ZXh0LT5hcHBseUNvbXBvc2l0
ZU9wZXJhdG9yKG1fc3RhdGUtPm1fY29tcG9zaXRlT3ApOwotICAgIG1fY29udGV4dC0+dXNlUXVh
ZFZlcnRpY2VzKCk7CisgICAgYXBwbHlDb21wb3NpdGVPcGVyYXRvcihtX3N0YXRlLT5tX2NvbXBv
c2l0ZU9wKTsKKworICAgIG1fY29udGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6
QVJSQVlfQlVGRkVSLCBnZXRRdWFkVmVydGljZXMoKSk7CiAKICAgICBBZmZpbmVUcmFuc2Zvcm0g
bWF0cml4KG1fZmxpcE1hdHJpeCk7CiAgICAgbWF0cml4Lm11bHRMZWZ0KG1fc3RhdGUtPm1fY3Rt
KTsKICAgICBtYXRyaXgudHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSk7CiAgICAgbWF0cml4
LnNjYWxlKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CisgICAgbV9zb2xpZEZpbGxTaGFk
ZXItPnVzZShtYXRyaXgsIGNvbG9yKTsKIAotICAgIG1fY29udGV4dC0+dXNlRmlsbFNvbGlkUHJv
Z3JhbShtYXRyaXgsIGNvbG9yKTsKLQotICAgIGJpbmRGcmFtZWJ1ZmZlcigpOwogICAgIG1fY29u
dGV4dC0+ZHJhd0FycmF5cyhHcmFwaGljc0NvbnRleHQzRDo6VFJJQU5HTEVfU1RSSVAsIDAsIDQp
OwogfQogCkBAIC0xNjYsMzMgKzE2NSwyMSBAQCB2b2lkIEdMRVMyQ2FudmFzOjpyZXN0b3JlKCkK
ICAgICBtX3N0YXRlID0gJm1fc3RhdGVTdGFjay5sYXN0KCk7CiB9CiAKLXZvaWQgR0xFUzJDYW52
YXM6OmRyYXdUZXh0dXJlZFJlY3QodW5zaWduZWQgdGV4dHVyZSwgY29uc3QgSW50U2l6ZSYgdGV4
dHVyZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWN0LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9w
KQotewotICAgIG1fY29udGV4dC0+YXBwbHlDb21wb3NpdGVPcGVyYXRvcihjb21wb3NpdGVPcCk7
Ci0KLSAgICBtX2NvbnRleHQtPnVzZVF1YWRWZXJ0aWNlcygpOwotICAgIG1fY29udGV4dC0+c2V0
QWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTApOwotCi0gICAgbV9jb250
ZXh0LT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgdGV4dHVyZSk7
Ci0KLSAgICBkcmF3UXVhZCh0ZXh0dXJlU2l6ZSwgc3JjUmVjdCwgZHN0UmVjdCwgbV9zdGF0ZS0+
bV9jdG0sIG1fc3RhdGUtPm1fYWxwaGEpOwotfQotCiB2b2lkIEdMRVMyQ2FudmFzOjpkcmF3VGV4
dHVyZWRSZWN0KFRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBDb2xvclNwYWNlIGNvbG9yU3BhY2UsIENvbXBvc2l0ZU9w
ZXJhdG9yIGNvbXBvc2l0ZU9wKQogewogICAgIGRyYXdUZXh0dXJlZFJlY3QodGV4dHVyZSwgc3Jj
UmVjdCwgZHN0UmVjdCwgbV9zdGF0ZS0+bV9jdG0sIG1fc3RhdGUtPm1fYWxwaGEsIGNvbG9yU3Bh
Y2UsIGNvbXBvc2l0ZU9wKTsKIH0KIAotCiB2b2lkIEdMRVMyQ2FudmFzOjpkcmF3VGV4dHVyZWRS
ZWN0KFRleHR1cmUqIHRleHR1cmUsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgZmxvYXQg
YWxwaGEsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRl
T3ApCiB7Ci0gICAgbV9jb250ZXh0LT5hcHBseUNvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9w
KTsKKyAgICBhcHBseUNvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wKTsKKworICAgIG1fY29u
dGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCBnZXRRdWFk
VmVydGljZXMoKSk7CisgICAgY2hlY2tHTEVycm9yKCJnbEJpbmRCdWZmZXIiKTsKKwogICAgIGNv
bnN0IFRpbGluZ0RhdGEmIHRpbGVzID0gdGV4dHVyZS0+dGlsZXMoKTsKICAgICBJbnRSZWN0IHRp
bGVJZHhSZWN0ID0gdGlsZXMub3ZlcmxhcHBlZFRpbGVJbmRpY2VzKHNyY1JlY3QpOwogCi0gICAg
bV9jb250ZXh0LT51c2VRdWFkVmVydGljZXMoKTsKLSAgICBtX2NvbnRleHQtPnNldEFjdGl2ZVRl
eHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKTsKLQogICAgIGZvciAoaW50IHkgPSB0
aWxlSWR4UmVjdC55KCk7IHkgPD0gdGlsZUlkeFJlY3QuYm90dG9tKCk7IHkrKykgewogICAgICAg
ICBmb3IgKGludCB4ID0gdGlsZUlkeFJlY3QueCgpOyB4IDw9IHRpbGVJZHhSZWN0LnJpZ2h0KCk7
IHgrKykKICAgICAgICAgICAgIGRyYXdUZXh0dXJlZFJlY3RUaWxlKHRleHR1cmUsIHRpbGVzLnRp
bGVJbmRleCh4LCB5KSwgc3JjUmVjdCwgZHN0UmVjdCwgdHJhbnNmb3JtLCBhbHBoYSk7CkBAIC0y
MDYsNiArMTkzLDcgQEAgdm9pZCBHTEVTMkNhbnZhczo6ZHJhd1RleHR1cmVkUmVjdFRpbGUoVGV4
dHVyZSogdGV4dHVyZSwgaW50IHRpbGUsIGNvbnN0IEZsb2F0UmUKIAogICAgIGNvbnN0IFRpbGlu
Z0RhdGEmIHRpbGVzID0gdGV4dHVyZS0+dGlsZXMoKTsKIAorICAgIG1fY29udGV4dC0+YWN0aXZl
VGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTApOwogICAgIHRleHR1cmUtPmJpbmRU
aWxlKHRpbGUpOwogCiAgICAgRmxvYXRSZWN0IHNyY1JlY3RDbGlwcGVkSW5UaWxlU3BhY2U7CkBA
IC0yMTQsMjQgKzIwMiwxOCBAQCB2b2lkIEdMRVMyQ2FudmFzOjpkcmF3VGV4dHVyZWRSZWN0VGls
ZShUZXh0dXJlKiB0ZXh0dXJlLCBpbnQgdGlsZSwgY29uc3QgRmxvYXRSZQogCiAgICAgSW50UmVj
dCB0aWxlQm91bmRzV2l0aEJvcmRlciA9IHRpbGVzLnRpbGVCb3VuZHNXaXRoQm9yZGVyKHRpbGUp
OwogCi0gICAgZHJhd1F1YWQodGlsZUJvdW5kc1dpdGhCb3JkZXIuc2l6ZSgpLCBzcmNSZWN0Q2xp
cHBlZEluVGlsZVNwYWNlLCBkc3RSZWN0SW50ZXJzZWN0ZWQsIHRyYW5zZm9ybSwgYWxwaGEpOwot
fQotCi12b2lkIEdMRVMyQ2FudmFzOjpkcmF3UXVhZChjb25zdCBJbnRTaXplJiB0ZXh0dXJlU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBmbG9hdCBhbHBoYSkKLXsKICAgICBBZmZp
bmVUcmFuc2Zvcm0gbWF0cml4KG1fZmxpcE1hdHJpeCk7CiAgICAgbWF0cml4Lm11bHRMZWZ0KHRy
YW5zZm9ybSk7Ci0gICAgbWF0cml4LnRyYW5zbGF0ZShkc3RSZWN0LngoKSwgZHN0UmVjdC55KCkp
OwotICAgIG1hdHJpeC5zY2FsZShkc3RSZWN0LndpZHRoKCksIGRzdFJlY3QuaGVpZ2h0KCkpOwor
ICAgIG1hdHJpeC50cmFuc2xhdGUoZHN0UmVjdEludGVyc2VjdGVkLngoKSwgZHN0UmVjdEludGVy
c2VjdGVkLnkoKSk7CisgICAgbWF0cml4LnNjYWxlKGRzdFJlY3RJbnRlcnNlY3RlZC53aWR0aCgp
LCBkc3RSZWN0SW50ZXJzZWN0ZWQuaGVpZ2h0KCkpOwogCiAgICAgQWZmaW5lVHJhbnNmb3JtIHRl
eE1hdHJpeDsKLSAgICB0ZXhNYXRyaXguc2NhbGUoMS4wZiAvIHRleHR1cmVTaXplLndpZHRoKCks
IDEuMGYgLyB0ZXh0dXJlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgdGV4TWF0cml4LnRyYW5zbGF0ZShz
cmNSZWN0LngoKSwgc3JjUmVjdC55KCkpOwotICAgIHRleE1hdHJpeC5zY2FsZShzcmNSZWN0Lndp
ZHRoKCksIHNyY1JlY3QuaGVpZ2h0KCkpOworICAgIHRleE1hdHJpeC5zY2FsZSgxLjBmIC8gdGls
ZUJvdW5kc1dpdGhCb3JkZXIud2lkdGgoKSwgMS4wZiAvIHRpbGVCb3VuZHNXaXRoQm9yZGVyLmhl
aWdodCgpKTsKKyAgICB0ZXhNYXRyaXgudHJhbnNsYXRlKHNyY1JlY3RDbGlwcGVkSW5UaWxlU3Bh
Y2UueCgpLCBzcmNSZWN0Q2xpcHBlZEluVGlsZVNwYWNlLnkoKSk7CisgICAgdGV4TWF0cml4LnNj
YWxlKHNyY1JlY3RDbGlwcGVkSW5UaWxlU3BhY2Uud2lkdGgoKSwgc3JjUmVjdENsaXBwZWRJblRp
bGVTcGFjZS5oZWlnaHQoKSk7CiAKLSAgICBiaW5kRnJhbWVidWZmZXIoKTsKKyAgICBtX3RleFNo
YWRlci0+dXNlKG1hdHJpeCwgdGV4TWF0cml4LCAwLCBhbHBoYSk7CiAKLSAgICBtX2NvbnRleHQt
PnVzZVRleHR1cmVQcm9ncmFtKG1hdHJpeCwgdGV4TWF0cml4LCBhbHBoYSk7CiAgICAgbV9jb250
ZXh0LT5kcmF3QXJyYXlzKEdyYXBoaWNzQ29udGV4dDNEOjpUUklBTkdMRV9TVFJJUCwgMCwgNCk7
CiAgICAgY2hlY2tHTEVycm9yKCJnbERyYXdBcnJheXMiKTsKIH0KQEAgLTI0MSwxNCArMjIzLDk4
IEBAIHZvaWQgR0xFUzJDYW52YXM6OnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVPcGVy
YXRvciBvcCkKICAgICBtX3N0YXRlLT5tX2NvbXBvc2l0ZU9wID0gb3A7CiB9CiAKK3ZvaWQgR0xF
UzJDYW52YXM6OmFwcGx5Q29tcG9zaXRlT3BlcmF0b3IoQ29tcG9zaXRlT3BlcmF0b3Igb3ApCit7
CisgICAgaWYgKG9wID09IG1fbGFzdENvbXBvc2l0ZU9wKQorICAgICAgICByZXR1cm47CisKKyAg
ICBzd2l0Y2ggKG9wKSB7CisgICAgY2FzZSBDb21wb3NpdGVDbGVhcjoKKyAgICAgICAgbV9jb250
ZXh0LT5lbmFibGUoR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EKTsKKyAgICAgICAgbV9jb250ZXh0
LT5ibGVuZEZ1bmMoR3JhcGhpY3NDb250ZXh0M0Q6OlpFUk8sIEdyYXBoaWNzQ29udGV4dDNEOjpa
RVJPKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVDb3B5OgorICAgICAgICBt
X2NvbnRleHQtPmRpc2FibGUoR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb21wb3NpdGVTb3VyY2VPdmVyOgorICAgICAgICBtX2NvbnRleHQtPmVu
YWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpOworICAgICAgICBtX2NvbnRleHQtPmJsZW5k
RnVuYyhHcmFwaGljc0NvbnRleHQzRDo6T05FLCBHcmFwaGljc0NvbnRleHQzRDo6T05FX01JTlVT
X1NSQ19BTFBIQSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlSW46
CisgICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCk7Cisg
ICAgICAgIG1fY29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpEU1RfQUxQSEEs
IEdyYXBoaWNzQ29udGV4dDNEOjpaRVJPKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21w
b3NpdGVTb3VyY2VPdXQ6CisgICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4
dDNEOjpCTEVORCk7CisgICAgICAgIG1fY29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4
dDNEOjpPTkVfTUlOVVNfRFNUX0FMUEhBLCBHcmFwaGljc0NvbnRleHQzRDo6WkVSTyk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlU291cmNlQXRvcDoKKyAgICAgICAgbV9jb250
ZXh0LT5lbmFibGUoR3JhcGhpY3NDb250ZXh0M0Q6OkJMRU5EKTsKKyAgICAgICAgbV9jb250ZXh0
LT5ibGVuZEZ1bmMoR3JhcGhpY3NDb250ZXh0M0Q6OkRTVF9BTFBIQSwgR3JhcGhpY3NDb250ZXh0
M0Q6Ok9ORV9NSU5VU19TUkNfQUxQSEEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBv
c2l0ZURlc3RpbmF0aW9uT3ZlcjoKKyAgICAgICAgbV9jb250ZXh0LT5lbmFibGUoR3JhcGhpY3ND
b250ZXh0M0Q6OkJMRU5EKTsKKyAgICAgICAgbV9jb250ZXh0LT5ibGVuZEZ1bmMoR3JhcGhpY3ND
b250ZXh0M0Q6Ok9ORV9NSU5VU19EU1RfQUxQSEEsIEdyYXBoaWNzQ29udGV4dDNEOjpPTkUpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbXBvc2l0ZURlc3RpbmF0aW9uSW46CisgICAgICAg
IG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCk7CisgICAgICAgIG1f
Y29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpaRVJPLCBHcmFwaGljc0NvbnRl
eHQzRDo6U1JDX0FMUEhBKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVEZXN0
aW5hdGlvbk91dDoKKyAgICAgICAgbV9jb250ZXh0LT5lbmFibGUoR3JhcGhpY3NDb250ZXh0M0Q6
OkJMRU5EKTsKKyAgICAgICAgbV9jb250ZXh0LT5ibGVuZEZ1bmMoR3JhcGhpY3NDb250ZXh0M0Q6
OlpFUk8sIEdyYXBoaWNzQ29udGV4dDNEOjpPTkVfTUlOVVNfU1JDX0FMUEhBKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbkF0b3A6CisgICAgICAgIG1fY29u
dGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCk7CisgICAgICAgIG1fY29udGV4
dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpPTkVfTUlOVVNfRFNUX0FMUEhBLCBHcmFw
aGljc0NvbnRleHQzRDo6U1JDX0FMUEhBKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb21w
b3NpdGVYT1I6CisgICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpC
TEVORCk7CisgICAgICAgIG1fY29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpP
TkVfTUlOVVNfRFNUX0FMUEhBLCBHcmFwaGljc0NvbnRleHQzRDo6T05FX01JTlVTX1NSQ19BTFBI
QSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ29tcG9zaXRlUGx1c0RhcmtlcjoKKyAgICBj
YXNlIENvbXBvc2l0ZUhpZ2hsaWdodDoKKyAgICAgICAgLy8gdW5zdXBwb3J0ZWQKKyAgICAgICAg
bV9jb250ZXh0LT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ29tcG9zaXRlUGx1c0xpZ2h0ZXI6CisgICAgICAgIG1fY29udGV4dC0+
ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCk7CisgICAgICAgIG1fY29udGV4dC0+Ymxl
bmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpPTkUsIEdyYXBoaWNzQ29udGV4dDNEOjpPTkUpOwor
ICAgICAgICBicmVhazsKKyAgICB9CisgICAgbV9sYXN0Q29tcG9zaXRlT3AgPSBvcDsKK30KKwor
dW5zaWduZWQgR0xFUzJDYW52YXM6OmdldFF1YWRWZXJ0aWNlcygpCit7CisgICAgaWYgKCFtX3F1
YWRWZXJ0aWNlcykgeworICAgICAgICBmbG9hdCB2ZXJ0aWNlc1tdID0geyAwLjBmLCAwLjBmLCAx
LjBmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjBmLCAwLjBmLCAxLjBmLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAwLjBmLCAxLjBmLCAxLjBmLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxLjBmLCAxLjBmLCAxLjBmIH07CisgICAgICAgIG1fcXVhZFZlcnRp
Y2VzID0gbV9jb250ZXh0LT5jcmVhdGVCdWZmZXIoKTsKKyAgICAgICAgbV9jb250ZXh0LT5iaW5k
QnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9CVUZGRVIsIG1fcXVhZFZlcnRpY2VzKTsK
KyAgICAgICAgbV9jb250ZXh0LT5idWZmZXJEYXRhKEdyYXBoaWNzQ29udGV4dDNEOjpBUlJBWV9C
VUZGRVIsIHNpemVvZih2ZXJ0aWNlcyksIHZlcnRpY2VzLCBHcmFwaGljc0NvbnRleHQzRDo6U1RB
VElDX0RSQVcpOworICAgIH0KKyAgICByZXR1cm4gbV9xdWFkVmVydGljZXM7Cit9CisKIFRleHR1
cmUqIEdMRVMyQ2FudmFzOjpjcmVhdGVUZXh0dXJlKE5hdGl2ZUltYWdlUHRyIHB0ciwgVGV4dHVy
ZTo6Rm9ybWF0IGZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewotICAgIHJldHVybiBt
X2NvbnRleHQtPmNyZWF0ZVRleHR1cmUocHRyLCBmb3JtYXQsIHdpZHRoLCBoZWlnaHQpOworICAg
IFBhc3NSZWZQdHI8VGV4dHVyZT4gdGV4dHVyZSA9IG1fdGV4dHVyZXMuZ2V0KHB0cik7CisgICAg
aWYgKHRleHR1cmUpCisgICAgICAgIHJldHVybiB0ZXh0dXJlLmdldCgpOworCisgICAgdGV4dHVy
ZSA9IFRleHR1cmU6OmNyZWF0ZShtX2NvbnRleHQsIGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Cisg
ICAgVGV4dHVyZSogdCA9IHRleHR1cmUuZ2V0KCk7CisgICAgbV90ZXh0dXJlcy5zZXQocHRyLCB0
ZXh0dXJlKTsKKyAgICByZXR1cm4gdDsKIH0KIAogVGV4dHVyZSogR0xFUzJDYW52YXM6OmdldFRl
eHR1cmUoTmF0aXZlSW1hZ2VQdHIgcHRyKQogewotICAgIHJldHVybiBtX2NvbnRleHQtPmdldFRl
eHR1cmUocHRyKTsKKyAgICBQYXNzUmVmUHRyPFRleHR1cmU+IHRleHR1cmUgPSBtX3RleHR1cmVz
LmdldChwdHIpOworICAgIHJldHVybiB0ZXh0dXJlID8gdGV4dHVyZS5nZXQoKSA6IDA7CiB9CiAK
IHZvaWQgR0xFUzJDYW52YXM6OmNoZWNrR0xFcnJvcihjb25zdCBjaGFyKiBoZWFkZXIpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2FudmFzLmgg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2FudmFzLmgKaW5kZXgg
NmZjMWEwZS4uZjQ5YWM4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9HTEVTMkNhbnZhcy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR0xFUzJDYW52YXMuaApAQCAtNDUsMTQgKzQ1LDE2IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENvbG9yOwotY2xhc3MgRHJhd2luZ0J1ZmZlcjsKIGNsYXNzIEZsb2F0UmVj
dDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwotY2xhc3MgU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q7CitjbGFzcyBTb2xpZEZpbGxTaGFkZXI7CitjbGFzcyBUZXhTaGFkZXI7CisKK3R5cGVkZWYg
SGFzaE1hcDxOYXRpdmVJbWFnZVB0ciwgUmVmUHRyPFRleHR1cmU+ID4gVGV4dHVyZUhhc2hNYXA7
CiAKIGNsYXNzIEdMRVMyQ2FudmFzIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAg
ICBHTEVTMkNhbnZhcyhTaGFyZWRHcmFwaGljc0NvbnRleHQzRCosIERyYXdpbmdCdWZmZXIqLCBj
b25zdCBJbnRTaXplJik7CisgICAgR0xFUzJDYW52YXMoR3JhcGhpY3NDb250ZXh0M0QqLCBjb25z
dCBJbnRTaXplJik7CiAgICAgfkdMRVMyQ2FudmFzKCk7CiAKICAgICB2b2lkIGZpbGxSZWN0KGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IENvbG9yJiwgQ29sb3JTcGFjZSk7CkBAIC03MiwzMyArNzQs
MjggQEAgcHVibGljOgogICAgIC8vIG5vbi1zdGFuZGFyZCBmdW5jdGlvbnMKICAgICAvLyBUaGVz
ZSBhcmUgbm90IHN0YW5kYXJkIEdyYXBoaWNzQ29udGV4dCBmdW5jdGlvbnMsIGFuZCBzaG91bGQg
YmUgcHVzaGVkCiAgICAgLy8gZG93biBpbnRvIGEgUGxhdGZvcm1Db250ZXh0R0xFUzIgYXQgc29t
ZSBwb2ludC4KLSAgICB2b2lkIGRyYXdUZXh0dXJlZFJlY3QodW5zaWduZWQgdGV4dHVyZSwgY29u
c3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CiAgICAg
dm9pZCBkcmF3VGV4dHVyZWRSZWN0KFRleHR1cmUqLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgZmxvYXQg
YWxwaGEsIENvbG9yU3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yKTsKICAgICB2b2lkIGRyYXdUZXh0
dXJlZFJlY3QoVGV4dHVyZSosIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBDb2xvclNwYWNlLCBDb21wb3NpdGVPcGVyYXRvcik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QqIGNvbnRleHQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KICAgICBUZXh0dXJl
KiBjcmVhdGVUZXh0dXJlKE5hdGl2ZUltYWdlUHRyLCBUZXh0dXJlOjpGb3JtYXQsIGludCB3aWR0
aCwgaW50IGhlaWdodCk7CiAgICAgVGV4dHVyZSogZ2V0VGV4dHVyZShOYXRpdmVJbWFnZVB0cik7
CiAKLSAgICBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGV4dDsgfQotCi0gICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoKTsKLQotICAgIERyYXdp
bmdCdWZmZXIqIGRyYXdpbmdCdWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2RyYXdpbmdCdWZmZXI7
IH0KLQogcHJpdmF0ZToKICAgICB2b2lkIGRyYXdUZXh0dXJlZFJlY3RUaWxlKFRleHR1cmUqIHRl
eHR1cmUsIGludCB0aWxlLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgZmxvYXQgYWxwaGEpOwotICAgIHZv
aWQgZHJhd1F1YWQoY29uc3QgSW50U2l6ZSYgdGV4dHVyZVNpemUsIGNvbnN0IEZsb2F0UmVjdCYg
c3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0m
LCBmbG9hdCBhbHBoYSk7CiAgICAgdm9pZCBhcHBseUNvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0
ZU9wZXJhdG9yKTsKICAgICB2b2lkIGNoZWNrR0xFcnJvcihjb25zdCBjaGFyKiBoZWFkZXIpOwor
ICAgIHVuc2lnbmVkIGdldFF1YWRWZXJ0aWNlcygpOwogCi0gICAgSW50U2l6ZSBtX3NpemU7Ci0K
LSAgICBTaGFyZWRHcmFwaGljc0NvbnRleHQzRCogbV9jb250ZXh0OwotICAgIERyYXdpbmdCdWZm
ZXIqIG1fZHJhd2luZ0J1ZmZlcjsKLQorICAgIEdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7
CiAgICAgc3RydWN0IFN0YXRlOwogICAgIFdURjo6VmVjdG9yPFN0YXRlPiBtX3N0YXRlU3RhY2s7
CiAgICAgU3RhdGUqIG1fc3RhdGU7CisgICAgdW5zaWduZWQgbV9xdWFkVmVydGljZXM7CisgICAg
T3duUHRyPFNvbGlkRmlsbFNoYWRlcj4gbV9zb2xpZEZpbGxTaGFkZXI7CisgICAgT3duUHRyPFRl
eFNoYWRlcj4gbV90ZXhTaGFkZXI7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1fZmxpcE1hdHJpeDsK
KyAgICBUZXh0dXJlSGFzaE1hcCBtX3RleHR1cmVzOworICAgIENvbXBvc2l0ZU9wZXJhdG9yIG1f
bGFzdENvbXBvc2l0ZU9wOyAvLyBUaGlzIGlzIHRoZSBvbmUgbGFzdCBzZXQsIG5vdCBuZWNlc3Nh
cmlseSB0aGUgb25lIGluIHRoZSBzdGF0ZSBzdGFjay4KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmNwcAppbmRleCA5MmNjODkxLi42NDhlMzVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3Bw
CkBAIC00NSw5ICs0NSw3IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0xheWVyQ2hyb21pdW0uaCIK
IAotI2luY2x1ZGUgIkNhbnZhczJETGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkNvbnRlbnRM
YXllckNocm9taXVtLmgiCi0jaW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5oIgogI2luY2x1ZGUgIkZs
b2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkltYWdl
LmgiCkBAIC0yOTIsNyArMjkwLDYgQEAgdm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNldENv
bnRlbnRzTmVlZHNEaXNwbGF5KCkKICAgICBpZiAobV9jb250ZW50c0xheWVyKQogICAgICAgICBt
X2NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogfQotCiB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKICAgICBpZiAoZHJhd3NDb250ZW50KCkp
CkBAIC0zNDcsMTMgKzM0NCwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0Q29u
dGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQogICAgIGJvb2wgY2hp
bGRyZW5DaGFuZ2VkID0gZmFsc2U7CiAgICAgaWYgKHBsYXRmb3JtTGF5ZXIpIHsKICAgICAgICAg
cGxhdGZvcm1MYXllci0+c2V0T3duZXIodGhpcyk7Ci0gICAgICAgIGlmIChtX2NvbnRlbnRzTGF5
ZXIuZ2V0KCkgIT0gcGxhdGZvcm1MYXllcikgeworICAgICAgICBpZiAoIW1fY29udGVudHNMYXll
ci5nZXQoKSB8fCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJGb3JDYW52
YXMpIHsKICAgICAgICAgICAgIHNldHVwQ29udGVudHNMYXllcihwbGF0Zm9ybUxheWVyKTsKICAg
ICAgICAgICAgIG1fY29udGVudHNMYXllciA9IHBsYXRmb3JtTGF5ZXI7CiAgICAgICAgICAgICBt
X2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gQ29udGVudHNMYXllckZvckNhbnZhczsKICAgICAgICAg
ICAgIGNoaWxkcmVuQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgbV9jb250ZW50
c0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICAgICAgcGxhdGZvcm1MYXllci0+c2V0TmVl
ZHNEaXNwbGF5KCk7CiAgICAgICAgIHVwZGF0ZUNvbnRlbnRzUmVjdCgpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oCmluZGV4
IGRkZTQ0M2QuLjlkZmY2NmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaApAQCAtMTM4LDcgKzEzOCw3
IEBAIHByaXZhdGU6CiAgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCiAgICAgICAgIENvbnRl
bnRzTGF5ZXJGb3JJbWFnZSwKICAgICAgICAgQ29udGVudHNMYXllckZvclZpZGVvLAotICAgICAg
ICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAorICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFz
CiAgICAgfTsKIAogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBv
c2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggNzg5Mjk4YS4uNTAzMzhkMiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcApAQCAtMzQsMTEgKzM0LDExIEBACiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgogCi0j
aW5jbHVkZSAiQ2FudmFzMkRMYXllckNocm9taXVtLmgiCisjaW5jbHVkZSAiQ2FudmFzTGF5ZXJD
aHJvbWl1bS5oIgorI2luY2x1ZGUgIkNvbnRlbnRMYXllckNocm9taXVtLmgiCiAjaW5jbHVkZSAi
R0xFUzJDb250ZXh0LmgiCiAjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiV2ViR0xMYXllckNocm9taXVtLmgiCiAjaWYgUExB
VEZPUk0oU0tJQSkKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUNvbnRleHRTa2lhLmgiCkBAIC03NywxNCArNzcsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
Y29tcGFyZUxheWVyWihjb25zdCBMYXllckNocm9taXVtKiBhLCBjb25zdCBMYXllckNocm9taXVt
KiBiKQogCiBQYXNzT3duUHRyPExheWVyUmVuZGVyZXJDaHJvbWl1bT4gTGF5ZXJSZW5kZXJlckNo
cm9taXVtOjpjcmVhdGUoUGFzc093blB0cjxHTEVTMkNvbnRleHQ+IGdsZXMyQ29udGV4dCkKIHsK
LSAgICBpZiAoIWdsZXMyQ29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBPd25QdHI8
TGF5ZXJSZW5kZXJlckNocm9taXVtPiBsYXllclJlbmRlcmVyKG5ldyBMYXllclJlbmRlcmVyQ2hy
b21pdW0oZ2xlczJDb250ZXh0KSk7Ci0gICAgaWYgKCFsYXllclJlbmRlcmVyLT5oYXJkd2FyZUNv
bXBvc2l0aW5nKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIGxheWVyUmVuZGVy
ZXIucmVsZWFzZSgpOworICAgIHJldHVybiBuZXcgTGF5ZXJSZW5kZXJlckNocm9taXVtKGdsZXMy
Q29udGV4dCk7CiB9CiAKIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6TGF5ZXJSZW5kZXJlckNocm9t
aXVtKFBhc3NPd25QdHI8R0xFUzJDb250ZXh0PiBnbGVzMkNvbnRleHQpCkBAIC05OCw3ICs5MSw3
IEBAIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6TGF5ZXJSZW5kZXJlckNocm9taXVtKFBhc3NPd25Q
dHI8R0xFUzJDb250ZXh0PiBnbGVzMkNvbnRlCiAgICAgLCBtX2N1cnJlbnRTaGFkZXIoMCkKICAg
ICAsIG1fZ2xlczJDb250ZXh0KGdsZXMyQ29udGV4dCkKIHsKLSAgICBtX2hhcmR3YXJlQ29tcG9z
aXRpbmcgPSBpbml0aWFsaXplU2hhcmVkT2JqZWN0cygpOworICAgIG1faGFyZHdhcmVDb21wb3Np
dGluZyA9IChtX2dsZXMyQ29udGV4dCAmJiBpbml0aWFsaXplU2hhcmVkT2JqZWN0cygpKTsKIH0K
IAogTGF5ZXJSZW5kZXJlckNocm9taXVtOjp+TGF5ZXJSZW5kZXJlckNocm9taXVtKCkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9t
aXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNo
cm9taXVtLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDExZjQxNi4uMDAwMDAw
MAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJv
bWl1bS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4K
LSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jaW5jbHVkZSAiV2ViR0xM
YXllckNocm9taXVtLmgiCi0KLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1
ZGUgIkxheWVyUmVuZGVyZXJDaHJvbWl1bS5oIgotI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBhc3NSZWZQdHI8V2ViR0xMYXllckNocm9taXVtPiBXZWJH
TExheWVyQ2hyb21pdW06OmNyZWF0ZShHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVyKQotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViR0xMYXllckNocm9taXVtKG93bmVyKSk7Ci19Ci0K
LVdlYkdMTGF5ZXJDaHJvbWl1bTo6V2ViR0xMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bSogb3duZXIpCi0gICAgOiBDYW52YXNMYXllckNocm9taXVtKG93bmVyKQotICAgICwgbV9j
b250ZXh0KDApCi17Ci19Ci0KLXZvaWQgV2ViR0xMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50
cygpCi17Ci0gICAgQVNTRVJUKG1fY29udGV4dCk7Ci0gICAgaWYgKG1fdGV4dHVyZUNoYW5nZWQp
IHsKLSAgICAgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmVJZCk7Ci0g
ICAgICAgIC8vIFNldCB0aGUgbWluLW1hZyBmaWx0ZXJzIHRvIGxpbmVhciBhbmQgd3JhcCBtb2Rl
cyB0byBHTF9DTEFNUF9UT19FREdFCi0gICAgICAgIC8vIHRvIGdldCBhcm91bmQgTlBPVCB0ZXh0
dXJlIGxpbWl0YXRpb25zIG9mIEdMRVMuCi0gICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7Ci0gICAgICAgIGdsVGV4
UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVB
Uik7Ci0gICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dS
QVBfUywgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIGdsVGV4UGFyYW1ldGVyZihHTF9URVhU
VVJFXzJELCBHTF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7Ci0gICAgICAgIG1f
dGV4dHVyZUNoYW5nZWQgPSBmYWxzZTsKLSAgICB9Ci0gICAgLy8gVXBkYXRlIHRoZSBjb250ZW50
cyBvZiB0aGUgdGV4dHVyZSB1c2VkIGJ5IHRoZSBjb21wb3NpdG9yLgotICAgIGlmIChtX2NvbnRl
bnRzRGlydHkpIHsKLSAgICAgICAgbV9jb250ZXh0LT5wcmVwYXJlVGV4dHVyZSgpOwotICAgICAg
ICBtX2NvbnRlbnRzRGlydHkgPSBmYWxzZTsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViR0xMYXllckNo
cm9taXVtOjpzZXRDb250ZXh0KGNvbnN0IEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQotewot
ICAgIG1fY29udGV4dCA9IGNvbnN0X2Nhc3Q8R3JhcGhpY3NDb250ZXh0M0QqPihjb250ZXh0KTsK
LQotICAgIHVuc2lnbmVkIGludCB0ZXh0dXJlSWQgPSBtX2NvbnRleHQtPnBsYXRmb3JtVGV4dHVy
ZSgpOwotICAgIGlmICh0ZXh0dXJlSWQgIT0gbV90ZXh0dXJlSWQpCi0gICAgICAgIG1fdGV4dHVy
ZUNoYW5nZWQgPSB0cnVlOwotICAgIG1fdGV4dHVyZUlkID0gdGV4dHVyZUlkOwotfQotCi19Ci0j
ZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21pdW0uaCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExYjhkYjcuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21pdW0uaAorKysgL2Rldi9u
dWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0KLSNpZm5kZWYgV2ViR0xMYXllckNocm9taXVtX2gKLSNkZWZp
bmUgV2ViR0xMYXllckNocm9taXVtX2gKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKLQotI2luY2x1ZGUgIkNhbnZhc0xheWVyQ2hyb21pdW0uaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLQotLy8gQSBMYXllciBjb250YWluaW5n
IGEgV2ViR0wgY2FudmFzCi1jbGFzcyBXZWJHTExheWVyQ2hyb21pdW0gOiBwdWJsaWMgQ2FudmFz
TGF5ZXJDaHJvbWl1bSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViR0xMYXll
ckNocm9taXVtPiBjcmVhdGUoR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lciA9IDApOwotICAg
IHZpcnR1YWwgYm9vbCBkcmF3c0NvbnRlbnQoKSB7IHJldHVybiBtX2NvbnRleHQ7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoKTsKLQotICAgIHZvaWQgc2V0Q29udGV4dChjb25z
dCBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCk7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQg
V2ViR0xMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOwotICAgIEdy
YXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7Ci19OwotCi19Ci0jZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRjODA5NTQuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJh
d2luZ0J1ZmZlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2luY2x1ZGUgIkRyYXdpbmdCdWZmZXIuaCIKLQotI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dDNELmgiCi0jaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzT3duUHRyPERyYXdpbmdCdWZmZXI+IERyYXdpbmdC
dWZmZXI6OmNyZWF0ZShTaGFyZWRHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkKLXsKLSAgICB1bnNpZ25lZCBmcmFtZWJ1ZmZlciA9IGNvbnRleHQtPmNyZWF0
ZUZyYW1lYnVmZmVyKCk7Ci0gICAgQVNTRVJUKGZyYW1lYnVmZmVyKTsKLSAgICBpZiAoIWZyYW1l
YnVmZmVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IERyYXdp
bmdCdWZmZXIoY29udGV4dCwgc2l6ZSwgZnJhbWVidWZmZXIpKTsKLX0KLQotdm9pZCBEcmF3aW5n
QnVmZmVyOjpiaW5kKCkKLXsKLSAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihtX2ZyYW1l
YnVmZmVyKTsKLSAgICBtX2NvbnRleHQtPnNldFZpZXdwb3J0KG1fc2l6ZSk7Ci19Ci0KLXZvaWQg
RHJhd2luZ0J1ZmZlcjo6c2V0V2lsbFB1Ymxpc2hDYWxsYmFjayhQYXNzT3duUHRyPFdpbGxQdWJs
aXNoQ2FsbGJhY2s+IGNhbGxiYWNrKQotewotICAgIG1fY2FsbGJhY2sgPSBjYWxsYmFjazsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
cHUvRHJhd2luZ0J1ZmZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzE4Njdm
Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZm
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBEcmF3aW5nQnVmZmVy
X2gKLSNkZWZpbmUgRHJhd2luZ0J1ZmZlcl9oCi0KLSNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgi
Ci0jaW5jbHVkZSAiSW50U2l6ZS5oIgotCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q7Ci0KLXN0
cnVjdCBEcmF3aW5nQnVmZmVySW50ZXJuYWw7Ci0KLS8vIE1hbmFnZXMgYSByZW5kZXJpbmcgdGFy
Z2V0IChmcmFtZWJ1ZmZlciArIGF0dGFjaG1lbnQpIGZvciBhIGNhbnZhcy4gIENhbiBwdWJsaXNo
IGl0cyByZW5kZXJpbmcKLS8vIHJlc3VsdHMgdG8gYSBQbGF0Zm9ybUxheWVyIGZvciBjb21wb3Np
dGluZy4KLWNsYXNzIERyYXdpbmdCdWZmZXIgOiBwdWJsaWMgTm9uY29weWFibGUgewotcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPERyYXdpbmdCdWZmZXI+IGNyZWF0ZShTaGFyZWRHcmFw
aGljc0NvbnRleHQzRCosIGNvbnN0IEludFNpemUmKTsKLSAgICB+RHJhd2luZ0J1ZmZlcigpOwot
Ci0gICAgdm9pZCByZXNldChjb25zdCBJbnRTaXplJik7Ci0gICAgUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllcigpOwotCi0gICAgdm9pZCBiaW5kKCk7Ci0gICAgdm9pZCBwdWJsaXNoVG9QbGF0
Zm9ybUxheWVyKCk7Ci0gICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9
Ci0KLSAgICB1bnNpZ25lZCBnZXRSZW5kZXJpbmdSZXN1bHRzQXNUZXh0dXJlKCk7Ci0KLSAgICBj
bGFzcyBXaWxsUHVibGlzaENhbGxiYWNrIDogcHVibGljIE5vbmNvcHlhYmxlIHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsUHVibGlzaCgpID0gMDsKLSAgICB9OwotCi0g
ICAgdm9pZCBzZXRXaWxsUHVibGlzaENhbGxiYWNrKFBhc3NPd25QdHI8V2lsbFB1Ymxpc2hDYWxs
YmFjaz4pOwotcHJpdmF0ZToKLSAgICBEcmF3aW5nQnVmZmVyKFNoYXJlZEdyYXBoaWNzQ29udGV4
dDNEKiwgY29uc3QgSW50U2l6ZSYsIHVuc2lnbmVkIGZyYW1lYnVmZmVyKTsKLQotICAgIFNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNEKiBtX2NvbnRleHQ7Ci0gICAgSW50U2l6ZSBtX3NpemU7Ci0gICAg
dW5zaWduZWQgbV9mcmFtZWJ1ZmZlcjsKLQotICAgIE93blB0cjxXaWxsUHVibGlzaENhbGxiYWNr
PiBtX2NhbGxiYWNrOwotICAgIE93blB0cjxEcmF3aW5nQnVmZmVySW50ZXJuYWw+IG1faW50ZXJu
YWw7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBEcmF3aW5nQnVm
ZmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREFyZW5h
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RBcmVuYS5oCmluZGV4IDA4MzI2
ZTkuLmEzMjJmODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BP
REFyZW5hLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvUE9EQXJlbmEuaApA
QCAtMSwyNiArMSwzMiBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMTAsIEdvb2dsZSBJbmMuCisgKiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgogICoKLSAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgog
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaWZuZGVmIFBPREFy
ZW5hX2gKQEAgLTEwNywxMiArMTEzLDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8VCo+KHB0cik7CiAgICAgfQogCi0gICAgLy8gVGhlIGluaXRpYWwgc2l6ZSBvZiBhbGxv
Y2F0ZWQgY2h1bmtzOyBpbmNyZWFzZXMgYXMgbmVjZXNzYXJ5IHRvCi0gICAgLy8gc2F0aXNmeSBs
YXJnZSBhbGxvY2F0aW9ucy4gTWFpbmx5IHB1YmxpYyBmb3IgdW5pdCB0ZXN0cy4KLSAgICBlbnVt
IHsKLSAgICAgICAgRGVmYXVsdENodW5rU2l6ZSA9IDE2Mzg0Ci0gICAgfTsKLQogcHJvdGVjdGVk
OgogICAgIH5QT0RBcmVuYSgpIHsgfQogICAgIGZyaWVuZCBjbGFzcyBXVEY6OlJlZkNvdW50ZWQ8
UE9EQXJlbmE+OwpAQCAtMTI4LDYgKzEyOCwxMCBAQCBwcml2YXRlOgogICAgICAgICAsIG1fY3Vy
cmVudCgwKQogICAgICAgICAsIG1fY3VycmVudENodW5rU2l6ZShEZWZhdWx0Q2h1bmtTaXplKSB7
IH0KIAorICAgIGVudW0geworICAgICAgICBEZWZhdWx0Q2h1bmtTaXplID0gMTYzODQKKyAgICB9
OworCiAgICAgLy8gUmV0dXJucyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IGZvciBjbGFzc2Vz
IGFuZCBzdHJ1Y3RzIG9uIHRoZQogICAgIC8vIGN1cnJlbnQgcGxhdGZvcm0uCiAgICAgdGVtcGxh
dGUgPGNsYXNzIFQ+IHN0YXRpYyBzaXplX3QgbWluQWxpZ25tZW50KCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPREludGVydmFsLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5ZGY2OWJhLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1
L1BPREludGVydmFsLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgUE9ESW50ZXJ2YWxfaAotI2RlZmluZSBQT0RJbnRlcnZhbF9oCi0KLSNpZm5kZWYgTkRF
QlVHCi0jaW5jbHVkZSAiU3RyaW5nQnVpbGRlci5oIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotLy8gQ2xhc3MgcmVwcmVzZW50aW5nIGEgY2xvc2VkIGludGVydmFsIHdoaWNoIGNh
biBob2xkIGFuIGFyYml0cmFyeQotLy8gUGxhaW4gT2xkIERhdGF0eXBlIChQT0QpIGFzIGl0cyBl
bmRwb2ludHMgYW5kIGEgcGllY2Ugb2YgdXNlcgotLy8gZGF0YS4gQW4gaW1wb3J0YW50IGNoYXJh
Y3RlcmlzdGljIGZvciB0aGUgYWxnb3JpdGhtcyB3ZSB1c2UgaXMgdGhhdAotLy8gaWYgdHdvIGlu
dGVydmFscyBoYXZlIGlkZW50aWNhbCBlbmRwb2ludHMgYnV0IGRpZmZlcmVudCB1c2VyIGRhdGEs
Ci0vLyB0aGV5IGFyZSBub3QgY29uc2lkZXJlZCB0byBiZSBlcXVhbC4gVGhpcyBzaXR1YXRpb24g
Y2FuIGFyaXNlIHdoZW4KLS8vIHJlcHJlc2VudGluZyB0aGUgdmVydGljYWwgZXh0ZW50cyBvZiBi
b3VuZGluZyBib3hlcyBvZiBvdmVybGFwcGluZwotLy8gdHJpYW5nbGVzLCB3aGVyZSB0aGUgcG9p
bnRlciB0byB0aGUgdHJpYW5nbGUgaXMgdGhlIHVzZXIgZGF0YSBvZgotLy8gdGhlIGludGVydmFs
LgotLy8KLS8vICpOb3RlKiB0aGF0IHRoZSBkZXN0cnVjdG9ycyBvZiB0eXBlIFQgYW5kIFVzZXJE
YXRhIHdpbGwgKm5vdCogYmUKLS8vIGNhbGxlZCBieSB0aGlzIGNsYXNzLiBUaGV5IG11c3Qgbm90
IGFsbG9jYXRlIGFueSBtZW1vcnkgdGhhdCBpcwotLy8gcmVxdWlyZWQgdG8gYmUgY2xlYW5lZCB1
cCBpbiB0aGVpciBkZXN0cnVjdG9ycy4KLS8vCi0vLyBUaGUgZm9sbG93aW5nIGNvbnN0cnVjdG9y
cyBhbmQgb3BlcmF0b3JzIG11c3QgYmUgaW1wbGVtZW50ZWQgb24KLS8vIHR5cGUgVDoKLS8vCi0v
LyAgIC0gQ29weSBjb25zdHJ1Y3RvciAoaWYgdXNlciBkYXRhIGlzIGRlc2lyZWQpCi0vLyAgIC0g
b3BlcmF0b3I8Ci0vLyAgIC0gb3BlcmF0b3I9PQotLy8gICAtIG9wZXJhdG9yPQotLy8KLS8vIElm
IHRoZSBVc2VyRGF0YSB0eXBlIGlzIHNwZWNpZmllZCwgaXQgbXVzdCBzdXBwb3J0IGEgY29weQot
Ly8gY29uc3RydWN0b3IgYW5kIGFzc2lnbm1lbnQgb3BlcmF0b3IuCi0vLwotLy8gSW4gZGVidWcg
bW9kZSwgcHJpbnRpbmcgb2YgaW50ZXJ2YWxzIGFuZCB0aGUgZGF0YSB0aGV5IGNvbnRhaW4gaXMK
LS8vIGVuYWJsZWQuIFRoaXMgcmVxdWlyZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgdG8gYmUg
YXZhaWxhYmxlOgotLy8KLS8vICAgU3RyaW5nIHZhbHVlVG9TdHJpbmcoY29uc3QgVCYpOwotLy8g
ICBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBVc2VyRGF0YSYpOwotLy8KLS8vIE5vdGUgdGhh
dCB0aGlzIGNsYXNzIHJlcXVpcmVzIGEgY29weSBjb25zdHJ1Y3RvciBhbmQgYXNzaWdubWVudAot
Ly8gb3BlcmF0b3IgaW4gb3JkZXIgdG8gYmUgc3RvcmVkIGluIHRoZSByZWQtYmxhY2sgdHJlZS4K
LQotdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVXNlckRhdGEgPSB2b2lkKj4KLWNsYXNzIFBPRElu
dGVydmFsIHsKLXB1YmxpYzoKLSAgICAvLyBDb25zdHJ1Y3RvciBmcm9tIGVuZHBvaW50cy4gVGhp
cyBjb25zdHJ1Y3RvciBvbmx5IHdvcmtzIHdoZW4gdGhlCi0gICAgLy8gVXNlckRhdGEgdHlwZSBp
cyBhIHBvaW50ZXIgb3Igb3RoZXIgdHlwZSB3aGljaCBjYW4gYmUgaW5pdGlhbGl6ZWQKLSAgICAv
LyB3aXRoIDAuCi0gICAgUE9ESW50ZXJ2YWwoY29uc3QgVCYgbG93LCBjb25zdCBUJiBoaWdoKQot
ICAgICAgICA6IG1fbG93KGxvdykKLSAgICAgICAgLCBtX2hpZ2goaGlnaCkKLSAgICAgICAgLCBt
X2RhdGEoMCkKLSAgICAgICAgLCBtX21heEhpZ2goaGlnaCkKLSAgICB7Ci0gICAgfQotCi0gICAg
Ly8gQ29uc3RydWN0b3IgZnJvbSB0d28gZW5kcG9pbnRzIHBsdXMgZXhwbGljaXQgdXNlciBkYXRh
LgotICAgIFBPREludGVydmFsKGNvbnN0IFQmIGxvdywgY29uc3QgVCYgaGlnaCwgY29uc3QgVXNl
ckRhdGEgZGF0YSkKLSAgICAgICAgOiBtX2xvdyhsb3cpCi0gICAgICAgICwgbV9oaWdoKGhpZ2gp
Ci0gICAgICAgICwgbV9kYXRhKGRhdGEpCi0gICAgICAgICwgbV9tYXhIaWdoKGhpZ2gpCi0gICAg
ewotICAgIH0KLQotICAgIGNvbnN0IFQmIGxvdygpIGNvbnN0IHsgcmV0dXJuIG1fbG93OyB9Ci0g
ICAgY29uc3QgVCYgaGlnaCgpIGNvbnN0IHsgcmV0dXJuIG1faGlnaDsgfQotICAgIGNvbnN0IFVz
ZXJEYXRhJiBkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhOyB9Ci0KLSAgICBib29sIG92ZXJs
YXBzKGNvbnN0IFQmIGxvdywgY29uc3QgVCYgaGlnaCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLT5oaWdoKCkgPCBsb3cpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGlmIChoaWdoIDwgdGhpcy0+bG93KCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGJvb2wgb3ZlcmxhcHMoY29uc3QgUE9ESW50
ZXJ2YWwmIG90aGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG92ZXJsYXBzKG90aGVy
LmxvdygpLCBvdGhlci5oaWdoKCkpOwotICAgIH0KLQotICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0
aGlzIGludGVydmFsIGlzICJsZXNzIiB0aGFuIHRoZSBvdGhlci4gVGhlCi0gICAgLy8gY29tcGFy
aXNvbiBpcyBwZXJmb3JtZWQgb24gdGhlIGxvdyBlbmRwb2ludHMgb2YgdGhlIGludGVydmFscy4K
LSAgICBib29sIG9wZXJhdG9yPChjb25zdCBQT0RJbnRlcnZhbCYgb3RoZXIpIGNvbnN0Ci0gICAg
ewotICAgICAgICByZXR1cm4gbG93KCkgPCBvdGhlci5sb3coKTsKLSAgICB9Ci0KLSAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhpcyBpbnRlcnZhbCBpcyBzdHJpY3RseSBlcXVhbCB0byB0aGUgb3Ro
ZXIsCi0gICAgLy8gaW5jbHVkaW5nIGNvbXBhcmlzb24gb2YgdGhlIHVzZXIgZGF0YS4KLSAgICBi
b29sIG9wZXJhdG9yPT0oY29uc3QgUE9ESW50ZXJ2YWwmIG90aGVyKSBjb25zdAotICAgIHsKLSAg
ICAgICAgcmV0dXJuIChsb3coKSA9PSBvdGhlci5sb3coKQotICAgICAgICAgICAgICAgICYmIGhp
Z2goKSA9PSBvdGhlci5oaWdoKCkKLSAgICAgICAgICAgICAgICAmJiBkYXRhKCkgPT0gb3RoZXIu
ZGF0YSgpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBUJiBtYXhIaWdoKCkgY29uc3QgeyByZXR1cm4g
bV9tYXhIaWdoOyB9Ci0gICAgdm9pZCBzZXRNYXhIaWdoKGNvbnN0IFQmIG1heEhpZ2gpIHsgbV9t
YXhIaWdoID0gbWF4SGlnaDsgfQotCi0jaWZuZGVmIE5ERUJVRwotICAgIC8vIFN1cHBvcnQgZm9y
IHByaW50aW5nIFBPREludGVydmFscy4KLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdAotICAg
IHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiW1BPREludGVydmFsICgiKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWVUb1N0cmlu
Zyhsb3coKSkpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCgiLCAiKTsKLSAgICAgICAgYnVpbGRl
ci5hcHBlbmQodmFsdWVUb1N0cmluZyhoaWdoKCkpKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQo
IiksIGRhdGE9Iik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcoZGF0YSgp
KSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKCIsIG1heEhpZ2g9Iik7Ci0gICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHZhbHVlVG9TdHJpbmcobWF4SGlnaCgpKSk7Ci0gICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKCJdIik7Ci0gICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Ci0gICAgfQotI2Vu
ZGlmCi0KLXByaXZhdGU6Ci0gICAgVCBtX2xvdzsKLSAgICBUIG1faGlnaDsKLSAgICBVc2VyRGF0
YSBtX2RhdGE7Ci0gICAgVCBtX21heEhpZ2g7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBQT0RJbnRlcnZhbF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dwdS9QT0RJbnRlcnZhbFRyZWUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1BPREludGVydmFsVHJlZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
OGE3NWNiLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPRElu
dGVydmFsVHJlZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjE3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFBPREludGVydmFsVHJlZV9oCi0jZGVmaW5lIFBPREludGVydmFsVHJlZV9oCi0KLSNpbmNs
dWRlICJQT0RBcmVuYS5oIgotI2luY2x1ZGUgIlBPREludGVydmFsLmgiCi0jaW5jbHVkZSAiUE9E
UmVkQmxhY2tUcmVlLmgiCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotLy8gQW4gaW50ZXJ2YWwgdHJlZSwgd2hpY2ggaXMgYSBmb3JtIG9mIGF1Z21l
bnRlZCByZWQtYmxhY2sgdHJlZS4gSXQKLS8vIHN1cHBvcnRzIGVmZmljaWVudCAoTyhsZyBuKSkg
aW5zZXJ0aW9uLCByZW1vdmFsIGFuZCBxdWVyeWluZyBvZgotLy8gaW50ZXJ2YWxzIGluIHRoZSB0
cmVlLgotdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVXNlckRhdGEgPSB2b2lkKj4KLWNsYXNzIFBP
REludGVydmFsVHJlZSA6IHB1YmxpYyBOb25jb3B5YWJsZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBQT0RSZWRCbGFja1RyZWU8UE9ESW50ZXJ2YWw8VCwgVXNlckRhdGE+ID4gewot
cHVibGljOgotICAgIC8vIFR5cGVkZWYgdG8gcmVkdWNlIHR5cGluZyB3aGVuIGRlY2xhcmluZyBp
bnRlcnZhbHMgdG8gYmUgc3RvcmVkIGluCi0gICAgLy8gdGhpcyB0cmVlLgotICAgIHR5cGVkZWYg
UE9ESW50ZXJ2YWw8VCwgVXNlckRhdGE+IEludGVydmFsVHlwZTsKLQotICAgIFBPREludGVydmFs
VHJlZSgpCi0gICAgICAgIDogUE9EUmVkQmxhY2tUcmVlPEludGVydmFsVHlwZT4oKQotICAgIHsK
LSAgICAgICAgaW5pdCgpOwotICAgIH0KLQotICAgIGV4cGxpY2l0IFBPREludGVydmFsVHJlZShQ
T0RBcmVuYSogYXJlbmEpCi0gICAgICAgIDogUE9EUmVkQmxhY2tUcmVlPEludGVydmFsVHlwZT4o
YXJlbmEpCi0gICAgewotICAgICAgICBpbml0KCk7Ci0gICAgfQotCi0gICAgLy8gUmV0dXJucyBh
bGwgaW50ZXJ2YWxzIGluIHRoZSB0cmVlIHdoaWNoIG92ZXJsYXAgdGhlIGdpdmVuIHF1ZXJ5Ci0g
ICAgLy8gaW50ZXJ2YWwuIFRoZSByZXR1cm5lZCBpbnRlcnZhbHMgYXJlIHNvcnRlZCBieSBpbmNy
ZWFzaW5nIGxvdwotICAgIC8vIGVuZHBvaW50LgotICAgIFZlY3RvcjxJbnRlcnZhbFR5cGU+IGFs
bE92ZXJsYXBzKGNvbnN0IEludGVydmFsVHlwZSYgaW50ZXJ2YWwpIGNvbnN0Ci0gICAgewotICAg
ICAgICBWZWN0b3I8SW50ZXJ2YWxUeXBlPiByZXN1bHQ7Ci0gICAgICAgIGFsbE92ZXJsYXBzKGlu
dGVydmFsLCByZXN1bHQpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIC8v
IFJldHVybnMgYWxsIGludGVydmFscyBpbiB0aGUgdHJlZSB3aGljaCBvdmVybGFwIHRoZSBnaXZl
biBxdWVyeQotICAgIC8vIGludGVydmFsLiBUaGUgcmV0dXJuZWQgaW50ZXJ2YWxzIGFyZSBzb3J0
ZWQgYnkgaW5jcmVhc2luZyBsb3cKLSAgICAvLyBlbmRwb2ludC4KLSAgICB2b2lkIGFsbE92ZXJs
YXBzKGNvbnN0IEludGVydmFsVHlwZSYgaW50ZXJ2YWwsIFZlY3RvcjxJbnRlcnZhbFR5cGU+JiBy
ZXN1bHQpIGNvbnN0Ci0gICAgewotICAgICAgICAvLyBFeHBsaWNpdCBkZXJlZmVyZW5jZSBvZiAi
dGhpcyIgcmVxdWlyZWQgYmVjYXVzZSBvZgotICAgICAgICAvLyBpbmhlcml0YW5jZSBydWxlcyBp
biB0ZW1wbGF0ZSBjbGFzc2VzLgotICAgICAgICBzZWFyY2hGb3JPdmVybGFwc0Zyb20odGhpcy0+
cm9vdCgpLCBpbnRlcnZhbCwgcmVzdWx0KTsKLSAgICB9Ci0KLSAgICAvLyBIZWxwZXIgdG8gY3Jl
YXRlIGludGVydmFsIG9iamVjdHMuCi0gICAgc3RhdGljIEludGVydmFsVHlwZSBjcmVhdGVJbnRl
cnZhbChjb25zdCBUJiBsb3csIGNvbnN0IFQmIGhpZ2gsIGNvbnN0IFVzZXJEYXRhIGRhdGEgPSAw
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIEludGVydmFsVHlwZShsb3csIGhpZ2gsIGRhdGEpOwot
ICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCBjaGVja0ludmFyaWFudHMoKSBjb25zdAotICAgIHsK
LSAgICAgICAgaWYgKCFQT0RSZWRCbGFja1RyZWU8SW50ZXJ2YWxUeXBlPjo6Y2hlY2tJbnZhcmlh
bnRzKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghdGhpcy0+cm9v
dCgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIHJldHVybiBjaGVja0ludmFy
aWFudHNGcm9tTm9kZSh0aGlzLT5yb290KCksIDApOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICB0
eXBlZGVmIHR5cGVuYW1lIFBPRFJlZEJsYWNrVHJlZTxJbnRlcnZhbFR5cGU+OjpOb2RlIEludGVy
dmFsTm9kZTsKLQotICAgIC8vIEluaXRpYWxpemVzIHRoZSB0cmVlLgotICAgIHZvaWQgaW5pdCgp
Ci0gICAgewotICAgICAgICAvLyBFeHBsaWNpdCBkZXJlZmVyZW5jZSBvZiAidGhpcyIgcmVxdWly
ZWQgYmVjYXVzZSBvZgotICAgICAgICAvLyBpbmhlcml0YW5jZSBydWxlcyBpbiB0ZW1wbGF0ZSBj
bGFzc2VzLgotICAgICAgICB0aGlzLT5zZXROZWVkc0Z1bGxPcmRlcmluZ0NvbXBhcmlzb25zKHRy
dWUpOwotICAgIH0KLQotICAgIC8vIFN0YXJ0aW5nIGZyb20gdGhlIGdpdmVuIG5vZGUsIGFkZHMg
YWxsIG92ZXJsYXBzIHdpdGggdGhlIGdpdmVuCi0gICAgLy8gaW50ZXJ2YWwgdG8gdGhlIHJlc3Vs
dCB2ZWN0b3IuIFRoZSBpbnRlcnZhbHMgYXJlIHNvcnRlZCBieQotICAgIC8vIGluY3JlYXNpbmcg
bG93IGVuZHBvaW50LgotICAgIHZvaWQgc2VhcmNoRm9yT3ZlcmxhcHNGcm9tKEludGVydmFsTm9k
ZSogbm9kZSwgY29uc3QgSW50ZXJ2YWxUeXBlJiBpbnRlcnZhbCwgVmVjdG9yPEludGVydmFsVHlw
ZT4mIHJlcykgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghbm9kZSkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICAvLyBCZWNhdXNlIHRoZSBpbnRlcnZhbHMgYXJlIHNvcnRlZCBieSBs
ZWZ0IGVuZHBvaW50LCBpbm9yZGVyCi0gICAgICAgIC8vIHRyYXZlcnNhbCBwcm9kdWNlcyByZXN1
bHRzIHNvcnRlZCBhcyBkZXNpcmVkLgotCi0gICAgICAgIC8vIFNlZSB3aGV0aGVyIHdlIG5lZWQg
dG8gdHJhdmVyc2UgdGhlIGxlZnQgc3VidHJlZS4KLSAgICAgICAgSW50ZXJ2YWxOb2RlKiBsZWZ0
ID0gbm9kZS0+bGVmdCgpOwotICAgICAgICBpZiAobGVmdAotICAgICAgICAgICAgLy8gVGhpcyBp
cyBwaHJhc2VkIHRoaXMgd2F5IHRvIGF2b2lkIHRoZSBuZWVkIGZvciBvcGVyYXRvcgotICAgICAg
ICAgICAgLy8gPD0gb24gdHlwZSBULgotICAgICAgICAgICAgJiYgIShsZWZ0LT5kYXRhKCkubWF4
SGlnaCgpIDwgaW50ZXJ2YWwubG93KCkpKQotICAgICAgICAgICAgc2VhcmNoRm9yT3ZlcmxhcHNG
cm9tKGxlZnQsIGludGVydmFsLCByZXMpOwotCi0gICAgICAgIC8vIENoZWNrIGZvciBvdmVybGFw
IHdpdGggY3VycmVudCBub2RlLgotICAgICAgICBpZiAobm9kZS0+ZGF0YSgpLm92ZXJsYXBzKGlu
dGVydmFsKSkKLSAgICAgICAgICAgIHJlcy5hcHBlbmQobm9kZS0+ZGF0YSgpKTsKLQotICAgICAg
ICAvLyBTZWUgd2hldGhlciB3ZSBuZWVkIHRvIHRyYXZlcnNlIHRoZSByaWdodCBzdWJ0cmVlLgot
ICAgICAgICAvLyBUaGlzIGlzIHBocmFzZWQgdGhpcyB3YXkgdG8gYXZvaWQgdGhlIG5lZWQgZm9y
IG9wZXJhdG9yIDw9Ci0gICAgICAgIC8vIG9uIHR5cGUgVC4KLSAgICAgICAgaWYgKCEoaW50ZXJ2
YWwuaGlnaCgpIDwgbm9kZS0+ZGF0YSgpLmxvdygpKSkKLSAgICAgICAgICAgIHNlYXJjaEZvck92
ZXJsYXBzRnJvbShub2RlLT5yaWdodCgpLCBpbnRlcnZhbCwgcmVzKTsKLSAgICB9Ci0KLSAgICB2
aXJ0dWFsIGJvb2wgdXBkYXRlTm9kZShJbnRlcnZhbE5vZGUqIG5vZGUpCi0gICAgewotICAgICAg
ICAvLyBXb3VsZCB1c2UgY29uc3QgVCYsIGJ1dCBuZWVkIHRvIHJlYXNzaWduIHRoaXMgcmVmZXJl
bmNlIGluIHRoaXMKLSAgICAgICAgLy8gZnVuY3Rpb24uCi0gICAgICAgIGNvbnN0IFQqIGN1ck1h
eCA9ICZub2RlLT5kYXRhKCkuaGlnaCgpOwotICAgICAgICBJbnRlcnZhbE5vZGUqIGxlZnQgPSBu
b2RlLT5sZWZ0KCk7Ci0gICAgICAgIGlmIChsZWZ0KSB7Ci0gICAgICAgICAgICBpZiAoKmN1ck1h
eCA8IGxlZnQtPmRhdGEoKS5tYXhIaWdoKCkpCi0gICAgICAgICAgICAgICAgY3VyTWF4ID0gJmxl
ZnQtPmRhdGEoKS5tYXhIaWdoKCk7Ci0gICAgICAgIH0KLSAgICAgICAgSW50ZXJ2YWxOb2RlKiBy
aWdodCA9IG5vZGUtPnJpZ2h0KCk7Ci0gICAgICAgIGlmIChyaWdodCkgewotICAgICAgICAgICAg
aWYgKCpjdXJNYXggPCByaWdodC0+ZGF0YSgpLm1heEhpZ2goKSkKLSAgICAgICAgICAgICAgICBj
dXJNYXggPSAmcmlnaHQtPmRhdGEoKS5tYXhIaWdoKCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8g
VGhpcyBpcyBwaHJhc2VkIGxpa2UgdGhpcyB0byBhdm9pZCBuZWVkaW5nIG9wZXJhdG9yIT0gb24g
dHlwZSBULgotICAgICAgICBpZiAoISgqY3VyTWF4ID09IG5vZGUtPmRhdGEoKS5tYXhIaWdoKCkp
KSB7Ci0gICAgICAgICAgICBub2RlLT5kYXRhKCkuc2V0TWF4SGlnaCgqY3VyTWF4KTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0KLSAgICBib29sIGNoZWNrSW52YXJpYW50c0Zyb21Ob2RlKEludGVydmFsTm9kZSogbm9k
ZSwgVCogY3VycmVudE1heFZhbHVlKSBjb25zdAotICAgIHsKLSAgICAgICAgLy8gVGhlc2UgYXNz
aWdubWVudHMgYXJlIG9ubHkgZG9uZSBpbiBvcmRlciB0byBhdm9pZCByZXF1aXJpbmcKLSAgICAg
ICAgLy8gYSBkZWZhdWx0IGNvbnN0cnVjdG9yIG9uIHR5cGUgVC4KLSAgICAgICAgVCBsZWZ0TWF4
VmFsdWUobm9kZS0+ZGF0YSgpLm1heEhpZ2goKSk7Ci0gICAgICAgIFQgcmlnaHRNYXhWYWx1ZShu
b2RlLT5kYXRhKCkubWF4SGlnaCgpKTsKLSAgICAgICAgSW50ZXJ2YWxOb2RlKiBsZWZ0ID0gbm9k
ZS0+bGVmdCgpOwotICAgICAgICBJbnRlcnZhbE5vZGUqIHJpZ2h0ID0gbm9kZS0+cmlnaHQoKTsK
LSAgICAgICAgaWYgKGxlZnQpIHsKLSAgICAgICAgICAgIGlmICghY2hlY2tJbnZhcmlhbnRzRnJv
bU5vZGUobGVmdCwgJmxlZnRNYXhWYWx1ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChyaWdodCkgewotICAgICAgICAgICAgaWYgKCFjaGVj
a0ludmFyaWFudHNGcm9tTm9kZShyaWdodCwgJnJpZ2h0TWF4VmFsdWUpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWxlZnQgJiYgIXJpZ2h0
KSB7Ci0gICAgICAgICAgICAvLyBCYXNlIGNhc2UuCi0gICAgICAgICAgICBpZiAoY3VycmVudE1h
eFZhbHVlKQotICAgICAgICAgICAgICAgICpjdXJyZW50TWF4VmFsdWUgPSBub2RlLT5kYXRhKCku
aGlnaCgpOwotICAgICAgICAgICAgcmV0dXJuIChub2RlLT5kYXRhKCkuaGlnaCgpID09IG5vZGUt
PmRhdGEoKS5tYXhIaWdoKCkpOwotICAgICAgICB9Ci0gICAgICAgIFQgbG9jYWxNYXhWYWx1ZShu
b2RlLT5kYXRhKCkubWF4SGlnaCgpKTsKLSAgICAgICAgaWYgKCFsZWZ0IHx8ICFyaWdodCkgewot
ICAgICAgICAgICAgaWYgKGxlZnQpCi0gICAgICAgICAgICAgICAgbG9jYWxNYXhWYWx1ZSA9IGxl
ZnRNYXhWYWx1ZTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBsb2NhbE1heFZh
bHVlID0gcmlnaHRNYXhWYWx1ZTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBsb2NhbE1h
eFZhbHVlID0gKGxlZnRNYXhWYWx1ZSA8IHJpZ2h0TWF4VmFsdWUpID8gcmlnaHRNYXhWYWx1ZSA6
IGxlZnRNYXhWYWx1ZTsKLSAgICAgICAgaWYgKGxvY2FsTWF4VmFsdWUgPCBub2RlLT5kYXRhKCku
aGlnaCgpKQotICAgICAgICAgICAgbG9jYWxNYXhWYWx1ZSA9IG5vZGUtPmRhdGEoKS5oaWdoKCk7
Ci0gICAgICAgIGlmICghKGxvY2FsTWF4VmFsdWUgPT0gbm9kZS0+ZGF0YSgpLm1heEhpZ2goKSkp
IHsKLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAgICBTdHJpbmcgbG9jYWxNYXhWYWx1ZVN0cmlu
ZyA9IHZhbHVlVG9TdHJpbmcobG9jYWxNYXhWYWx1ZSk7Ci0gICAgICAgICAgICBMT0dfRVJST1Io
IlBPREludGVydmFsVHJlZSB2ZXJpZmljYXRpb24gZmFpbGVkIGF0IG5vZGUgMHglcDogbG9jYWxN
YXhWYWx1ZT0lcyBhbmQgZGF0YT0lcyIsCi0gICAgICAgICAgICAgICAgICAgICAgbm9kZSwgbG9j
YWxNYXhWYWx1ZVN0cmluZy51dGY4KCkuZGF0YSgpLCBub2RlLT5kYXRhKCkudG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLSNlbmRpZgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChjdXJyZW50TWF4VmFsdWUpCi0gICAgICAgICAgICAqY3VycmVudE1h
eFZhbHVlID0gbG9jYWxNYXhWYWx1ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotfTsK
LQotI2lmbmRlZiBOREVCVUcKLS8vIFN1cHBvcnQgZm9yIHByaW50aW5nIFBPREludGVydmFscyBh
dCB0aGUgUE9EUmVkQmxhY2tUcmVlIGxldmVsLgotdGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVXNl
ckRhdGE+Ci1TdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBQT0RJbnRlcnZhbDxULCBVc2VyRGF0
YT4mIGludGVydmFsKQotewotICAgIHJldHVybiBpbnRlcnZhbC50b1N0cmluZygpOwotfQotI2Vu
ZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFBPREludGVydmFsVHJl
ZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9QT0RSZWRCbGFj
a1RyZWUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1BPRFJlZEJsYWNrVHJlZS5o
CmluZGV4IGZkODEyMGIuLjdiZmE2NGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L1BPRFJlZEJsYWNrVHJlZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1BPRFJlZEJsYWNrVHJlZS5oCkBAIC0xLDI2ICsxLDMyIEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgMjAxMCwgR29vZ2xlIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CiAgKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKIC8vIEEgcmVkLWJsYWNrIHRyZWUsIHdoaWNoIGlzIGEgZm9ybSBvZiBhIGJh
bGFuY2VkIGJpbmFyeSB0cmVlLiBJdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2NDI0MjkzLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDI5NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIlNoYXJlZEdyYXBo
aWNzQ29udGV4dDNELmgiCi0KLSNpbmNsdWRlICJBZmZpbmVUcmFuc2Zvcm0uaCIKLSNpbmNsdWRl
ICJDb2xvci5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dDNELmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIkludFNpemUu
aCIKLSNpbmNsdWRlICJTb2xpZEZpbGxTaGFkZXIuaCIKLSNpbmNsdWRlICJUZXhTaGFkZXIuaCIK
LQotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBzdGF0aWMKLVBhc3NSZWZQdHI8
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q+IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUo
UGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKGNvbnRleHQpKTsKLX0KLQotU2hhcmVk
R3JhcGhpY3NDb250ZXh0M0Q6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKFBhc3NPd25QdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IGNvbnRleHQpCi0gICAgOiBtX2NvbnRleHQoY29udGV4dCkKLSAgICAs
IG1fcXVhZFZlcnRpY2VzKDApCi0gICAgLCBtX3NvbGlkRmlsbFNoYWRlcihTb2xpZEZpbGxTaGFk
ZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCkpKQotICAgICwgbV90ZXhTaGFkZXIoVGV4U2hhZGVy
OjpjcmVhdGUobV9jb250ZXh0LmdldCgpKSkKLXsKLX0KLQotU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0Q6On5TaGFyZWRHcmFwaGljc0NvbnRleHQzRCgpCi17Ci0gICAgbV9jb250ZXh0LT5kZWxldGVC
dWZmZXIobV9xdWFkVmVydGljZXMpOwotfQotCi12b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
OjptYWtlQ29udGV4dEN1cnJlbnQoKQotewotICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJy
ZW50KCk7Ci19Ci0KLXZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OnNjaXNzb3IoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQotewotICAgIG1fY29udGV4dC0+c2Npc3NvcihyZWN0LngoKSwgcmVj
dC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci19Ci0KLXZvaWQgU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0Q6OmVuYWJsZSh1bnNpZ25lZCBjYXBhY2l0eSkKLXsKLSAgICBtX2NvbnRl
eHQtPmVuYWJsZShjYXBhY2l0eSk7Ci19Ci0KLXZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OmRpc2FibGUodW5zaWduZWQgY2FwYWNpdHkpCi17Ci0gICAgbV9jb250ZXh0LT5kaXNhYmxlKGNh
cGFjaXR5KTsKLX0KLQotdm9pZCBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJDb2xvcihj
b25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgZmxvYXQgcmdiYVs0XTsKLSAgICBjb2xvci5nZXRS
R0JBKHJnYmFbMF0sIHJnYmFbMV0sIHJnYmFbMl0sIHJnYmFbM10pOwotICAgIG1fY29udGV4dC0+
Y2xlYXJDb2xvcihyZ2JhWzBdLCByZ2JhWzFdLCByZ2JhWzJdLCByZ2JhWzNdKTsKLX0KLQotdm9p
ZCBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXIodW5zaWduZWQgbWFzaykKLXsKLSAgICBt
X2NvbnRleHQtPmNsZWFyKG1hc2spOwotfQotCi12b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
OjpkcmF3QXJyYXlzKHVuc2lnbmVkIGxvbmcgbW9kZSwgbG9uZyBmaXJzdCwgbG9uZyBjb3VudCkK
LXsKLSAgICBtX2NvbnRleHQtPmRyYXdBcnJheXMobW9kZSwgZmlyc3QsIGNvdW50KTsKLX0KLQot
dW5zaWduZWQgbG9uZyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXJyb3IoKQotewotICAg
IHJldHVybiBtX2NvbnRleHQtPmdldEVycm9yKCk7Ci19Ci0KLXZvaWQgU2hhcmVkR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEludGVnZXJ2KHVuc2lnbmVkIGxvbmcgcG5hbWUsIGludCogdmFsdWUpCi17
Ci0gICAgbV9jb250ZXh0LT5nZXRJbnRlZ2VydihwbmFtZSwgdmFsdWUpOwotfQotCi11bnNpZ25l
ZCBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlRnJhbWVidWZmZXIoKQotewotICAgIHJl
dHVybiBtX2NvbnRleHQtPmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci19Ci0KLXVuc2lnbmVkIFNoYXJl
ZEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVUZXh0dXJlKCkKLXsKLSAgICByZXR1cm4gbV9jb250
ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci19Ci0KLXZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
OmRlbGV0ZUZyYW1lYnVmZmVyKHVuc2lnbmVkIGZyYW1lYnVmZmVyKQotewotICAgIG1fY29udGV4
dC0+ZGVsZXRlRnJhbWVidWZmZXIoZnJhbWVidWZmZXIpOwotfQotCi12b2lkIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEOjpkZWxldGVUZXh0dXJlKHVuc2lnbmVkIHRleHR1cmUpCi17Ci0gICAgbV9j
b250ZXh0LT5kZWxldGVUZXh0dXJlKHRleHR1cmUpOwotfQotCi12b2lkIFNoYXJlZEdyYXBoaWNz
Q29udGV4dDNEOjpmcmFtZWJ1ZmZlclRleHR1cmUyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5z
aWduZWQgbG9uZyBhdHRhY2htZW50LCB1bnNpZ25lZCBsb25nIHRleHRhcmdldCwgdW5zaWduZWQg
dGV4dHVyZSwgbG9uZyBsZXZlbCkKLXsKLSAgICBtX2NvbnRleHQtPmZyYW1lYnVmZmVyVGV4dHVy
ZTJEKHRhcmdldCwgYXR0YWNobWVudCwgdGV4dGFyZ2V0LCB0ZXh0dXJlLCBsZXZlbCk7Ci19Ci0K
LXZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OnRleFBhcmFtZXRlcmkodW5zaWduZWQgdGFy
Z2V0LCB1bnNpZ25lZCBwbmFtZSwgaW50IHBhcmFtKQotewotICAgIG1fY29udGV4dC0+dGV4UGFy
YW1ldGVyaSh0YXJnZXQsIHBuYW1lLCBwYXJhbSk7Ci19Ci0KLWludCBTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRDo6dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNp
Z25lZCBpbnRlcm5hbGZvcm1hdCwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5z
aWduZWQgYm9yZGVyLCB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIHZvaWQqIHBpeGVs
cykKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT50ZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGlu
dGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIsIGZvcm1hdCwgdHlwZSwgcGl4ZWxz
KTsKLX0KLQotaW50IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhTdWJJbWFnZTJEKHVuc2ln
bmVkIHRhcmdldCwgdW5zaWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlv
ZmZzZXQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsIHVuc2lnbmVkIGZvcm1hdCwg
dW5zaWduZWQgdHlwZSwgdm9pZCogcGl4ZWxzKQotewotICAgIHJldHVybiBtX2NvbnRleHQtPnRl
eFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgd2lkdGgsIGhlaWdo
dCwgZm9ybWF0LCB0eXBlLCBwaXhlbHMpOwotfQotCi12b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzKGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNp
Z25lZCBsb25nIGhlaWdodCwgdW5zaWduZWQgbG9uZyBmb3JtYXQsIHVuc2lnbmVkIGxvbmcgdHlw
ZSwgdm9pZCogZGF0YSkKLXsKLSAgICBtX2NvbnRleHQtPnJlYWRQaXhlbHMoeCwgeSwgd2lkdGgs
IGhlaWdodCwgZm9ybWF0LCB0eXBlLCBkYXRhKTsKLX0KLQotYm9vbCBTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRDo6c3VwcG9ydHNCR1JBKCkKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5zdXBwb3J0
c0JHUkEoKTsKLX0KLQotVGV4dHVyZSogU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZVRl
eHR1cmUoTmF0aXZlSW1hZ2VQdHIgcHRyLCBUZXh0dXJlOjpGb3JtYXQgZm9ybWF0LCBpbnQgd2lk
dGgsIGludCBoZWlnaHQpCi17Ci0gICAgUmVmUHRyPFRleHR1cmU+IHRleHR1cmUgPSBtX3RleHR1
cmVzLmdldChwdHIpOwotICAgIGlmICh0ZXh0dXJlKQotICAgICAgICByZXR1cm4gdGV4dHVyZS5n
ZXQoKTsKLQotICAgIHRleHR1cmUgPSBUZXh0dXJlOjpjcmVhdGUobV9jb250ZXh0LmdldCgpLCBm
b3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgIFRleHR1cmUqIHQgPSB0ZXh0dXJlLmdldCgpOwot
ICAgIG1fdGV4dHVyZXMuc2V0KHB0ciwgdGV4dHVyZSk7Ci0gICAgcmV0dXJuIHQ7Ci19Ci0KLVRl
eHR1cmUqIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRUZXh0dXJlKE5hdGl2ZUltYWdlUHRy
IHB0cikKLXsKLSAgICBSZWZQdHI8VGV4dHVyZT4gdGV4dHVyZSA9IG1fdGV4dHVyZXMuZ2V0KHB0
cik7Ci0gICAgcmV0dXJuIHRleHR1cmUgPyB0ZXh0dXJlLmdldCgpIDogMDsKLX0KLQotUGFzc1Jl
ZlB0cjxUZXh0dXJlPiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlVGV4dHVyZShUZXh0
dXJlOjpGb3JtYXQgZm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCi17Ci0gICAgcmV0dXJu
IFRleHR1cmU6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCksIGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7
Ci19Ci0KLXZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmFwcGx5Q29tcG9zaXRlT3BlcmF0
b3IoQ29tcG9zaXRlT3BlcmF0b3Igb3ApCi17Ci0gICAgc3dpdGNoIChvcCkgewotICAgIGNhc2Ug
Q29tcG9zaXRlQ2xlYXI6Ci0gICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4
dDNEOjpCTEVORCk7Ci0gICAgICAgIG1fY29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4
dDNEOjpaRVJPLCBHcmFwaGljc0NvbnRleHQzRDo6WkVSTyk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgQ29tcG9zaXRlQ29weToKLSAgICAgICAgbV9jb250ZXh0LT5kaXNhYmxlKEdyYXBoaWNz
Q29udGV4dDNEOjpCTEVORCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29tcG9zaXRlU291
cmNlT3ZlcjoKLSAgICAgICAgbV9jb250ZXh0LT5lbmFibGUoR3JhcGhpY3NDb250ZXh0M0Q6OkJM
RU5EKTsKLSAgICAgICAgbV9jb250ZXh0LT5ibGVuZEZ1bmMoR3JhcGhpY3NDb250ZXh0M0Q6Ok9O
RSwgR3JhcGhpY3NDb250ZXh0M0Q6Ok9ORV9NSU5VU19TUkNfQUxQSEEpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIENvbXBvc2l0ZVNvdXJjZUluOgotICAgICAgICBtX2NvbnRleHQtPmVuYWJs
ZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpOwotICAgICAgICBtX2NvbnRleHQtPmJsZW5kRnVu
YyhHcmFwaGljc0NvbnRleHQzRDo6RFNUX0FMUEhBLCBHcmFwaGljc0NvbnRleHQzRDo6WkVSTyk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29tcG9zaXRlU291cmNlT3V0OgotICAgICAgICBt
X2NvbnRleHQtPmVuYWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpOwotICAgICAgICBtX2Nv
bnRleHQtPmJsZW5kRnVuYyhHcmFwaGljc0NvbnRleHQzRDo6T05FX01JTlVTX0RTVF9BTFBIQSwg
R3JhcGhpY3NDb250ZXh0M0Q6OlpFUk8pOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBv
c2l0ZVNvdXJjZUF0b3A6Ci0gICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4
dDNEOjpCTEVORCk7Ci0gICAgICAgIG1fY29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4
dDNEOjpEU1RfQUxQSEEsIEdyYXBoaWNzQ29udGV4dDNEOjpPTkVfTUlOVVNfU1JDX0FMUEhBKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDb21wb3NpdGVEZXN0aW5hdGlvbk92ZXI6Ci0gICAg
ICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCk7Ci0gICAgICAg
IG1fY29udGV4dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpPTkVfTUlOVVNfRFNUX0FM
UEhBLCBHcmFwaGljc0NvbnRleHQzRDo6T05FKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBD
b21wb3NpdGVEZXN0aW5hdGlvbkluOgotICAgICAgICBtX2NvbnRleHQtPmVuYWJsZShHcmFwaGlj
c0NvbnRleHQzRDo6QkxFTkQpOwotICAgICAgICBtX2NvbnRleHQtPmJsZW5kRnVuYyhHcmFwaGlj
c0NvbnRleHQzRDo6WkVSTywgR3JhcGhpY3NDb250ZXh0M0Q6OlNSQ19BTFBIQSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgQ29tcG9zaXRlRGVzdGluYXRpb25PdXQ6Ci0gICAgICAgIG1fY29u
dGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpCTEVORCk7Ci0gICAgICAgIG1fY29udGV4
dC0+YmxlbmRGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpaRVJPLCBHcmFwaGljc0NvbnRleHQzRDo6
T05FX01JTlVTX1NSQ19BTFBIQSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29tcG9zaXRl
RGVzdGluYXRpb25BdG9wOgotICAgICAgICBtX2NvbnRleHQtPmVuYWJsZShHcmFwaGljc0NvbnRl
eHQzRDo6QkxFTkQpOwotICAgICAgICBtX2NvbnRleHQtPmJsZW5kRnVuYyhHcmFwaGljc0NvbnRl
eHQzRDo6T05FX01JTlVTX0RTVF9BTFBIQSwgR3JhcGhpY3NDb250ZXh0M0Q6OlNSQ19BTFBIQSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29tcG9zaXRlWE9SOgotICAgICAgICBtX2NvbnRl
eHQtPmVuYWJsZShHcmFwaGljc0NvbnRleHQzRDo6QkxFTkQpOwotICAgICAgICBtX2NvbnRleHQt
PmJsZW5kRnVuYyhHcmFwaGljc0NvbnRleHQzRDo6T05FX01JTlVTX0RTVF9BTFBIQSwgR3JhcGhp
Y3NDb250ZXh0M0Q6Ok9ORV9NSU5VU19TUkNfQUxQSEEpOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIENvbXBvc2l0ZVBsdXNEYXJrZXI6Ci0gICAgY2FzZSBDb21wb3NpdGVIaWdobGlnaHQ6Ci0g
ICAgICAgIC8vIHVuc3VwcG9ydGVkCi0gICAgICAgIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGlj
c0NvbnRleHQzRDo6QkxFTkQpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbXBvc2l0ZVBs
dXNMaWdodGVyOgotICAgICAgICBtX2NvbnRleHQtPmVuYWJsZShHcmFwaGljc0NvbnRleHQzRDo6
QkxFTkQpOwotICAgICAgICBtX2NvbnRleHQtPmJsZW5kRnVuYyhHcmFwaGljc0NvbnRleHQzRDo6
T05FLCBHcmFwaGljc0NvbnRleHQzRDo6T05FKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQot
Ci12b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjp1c2VRdWFkVmVydGljZXMoKQotewotICAg
IGlmICghbV9xdWFkVmVydGljZXMpIHsKLSAgICAgICAgZmxvYXQgdmVydGljZXNbXSA9IHsgMC4w
ZiwgMC4wZiwgMS4wZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wZiwgMC4wZiwg
MS4wZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wZiwgMS4wZiwgMS4wZiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wZiwgMS4wZiwgMS4wZiB9OwotICAgICAgICBt
X3F1YWRWZXJ0aWNlcyA9IG1fY29udGV4dC0+Y3JlYXRlQnVmZmVyKCk7Ci0gICAgICAgIG1fY29u
dGV4dC0+YmluZEJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6QVJSQVlfQlVGRkVSLCBtX3F1YWRW
ZXJ0aWNlcyk7Ci0gICAgICAgIG1fY29udGV4dC0+YnVmZmVyRGF0YShHcmFwaGljc0NvbnRleHQz
RDo6QVJSQVlfQlVGRkVSLCBzaXplb2YodmVydGljZXMpLCB2ZXJ0aWNlcywgR3JhcGhpY3NDb250
ZXh0M0Q6OlNUQVRJQ19EUkFXKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2NvbnRleHQtPmJp
bmRCdWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkFSUkFZX0JVRkZFUiwgbV9xdWFkVmVydGljZXMp
OwotICAgIH0KLX0KLQotdm9pZCBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6c2V0QWN0aXZlVGV4
dHVyZSh1bnNpZ25lZCB0ZXh0dXJlVW5pdCkKLXsKLSAgICBtX2NvbnRleHQtPmFjdGl2ZVRleHR1
cmUodGV4dHVyZVVuaXQpOwotfQotCi12b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpiaW5k
VGV4dHVyZSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHRleHR1cmUpCi17Ci0gICAgbV9jb250
ZXh0LT5iaW5kVGV4dHVyZSh0YXJnZXQsIHRleHR1cmUpOwotfQotCi12b2lkIFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEOjp1c2VGaWxsU29saWRQcm9ncmFtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
dHJhbnNmb3JtLCBjb25zdCBDb2xvciYgY29sb3IpCi17Ci0gICAgbV9zb2xpZEZpbGxTaGFkZXIt
PnVzZSh0cmFuc2Zvcm0sIGNvbG9yKTsKLX0KLQotdm9pZCBTaGFyZWRHcmFwaGljc0NvbnRleHQz
RDo6dXNlVGV4dHVyZVByb2dyYW0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgdGV4VHJhbnNmb3JtLCBmbG9hdCBhbHBoYSkKLXsKLSAgICBt
X3RleFNoYWRlci0+dXNlKHRyYW5zZm9ybSwgdGV4VHJhbnNmb3JtLCAwLCBhbHBoYSk7Ci19Ci0K
LXZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcih1bnNpZ25lZCBm
cmFtZWJ1ZmZlcikKLXsKLSAgICBtX2NvbnRleHQtPmJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0Nv
bnRleHQzRDo6RlJBTUVCVUZGRVIsIGZyYW1lYnVmZmVyKTsKLX0KLQotdm9pZCBTaGFyZWRHcmFw
aGljc0NvbnRleHQzRDo6c2V0Vmlld3BvcnQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICBt
X2NvbnRleHQtPnZpZXdwb3J0KDAsIDAsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7Ci19
Ci0KLWJvb2wgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50c0ludG9DYW52YXNCdWZmZXIo
KSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQtPnBhaW50c0ludG9DYW52YXNCdWZmZXIo
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDFiYWEwZjYuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaAorKysgL2Rldi9udWxsCkBA
IC0xLDEyNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0RfaAotI2RlZmlu
ZSBTaGFyZWRHcmFwaGljc0NvbnRleHQzRF9oCi0KLSNpbmNsdWRlICJHcmFwaGljc1R5cGVzLmgi
Ci0jaW5jbHVkZSAiSW1hZ2VTb3VyY2UuaCIKLSNpbmNsdWRlICJUZXh0dXJlLmgiCi0KLSNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBBZmZpbmVUcmFuc2Zvcm07Ci1jbGFzcyBDb2xvcjsKLWNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEOwotY2xhc3MgRmxvYXRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNz
IFNvbGlkRmlsbFNoYWRlcjsKLWNsYXNzIFRleFNoYWRlcjsKLQotdHlwZWRlZiBIYXNoTWFwPE5h
dGl2ZUltYWdlUHRyLCBSZWZQdHI8VGV4dHVyZT4gPiBUZXh0dXJlSGFzaE1hcDsKLQotY2xhc3Mg
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRD4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEPiBjcmVhdGUoUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQzRD4pOwotICAg
IH5TaGFyZWRHcmFwaGljc0NvbnRleHQzRCgpOwotCi0gICAgLy8gRnVuY3Rpb25zIHRoYXQgZGVs
ZWdhdGUgZGlyZWN0bHkgdG8gR3JhcGhpY3NDb250ZXh0M0QsIHdpdGggY2FjaGluZwotICAgIHZv
aWQgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgdm9pZCBiaW5kRnJhbWVidWZmZXIodW5zaWdu
ZWQgZnJhbWVidWZmZXIpOwotICAgIHZvaWQgc2V0Vmlld3BvcnQoY29uc3QgSW50U2l6ZSYpOwot
ICAgIHZvaWQgc2Npc3Nvcihjb25zdCBGbG9hdFJlY3QmKTsKLSAgICB2b2lkIGVuYWJsZSh1bnNp
Z25lZCBjYXBhY2l0eSk7Ci0gICAgdm9pZCBkaXNhYmxlKHVuc2lnbmVkIGNhcGFjaXR5KTsKLSAg
ICB2b2lkIGNsZWFyQ29sb3IoY29uc3QgQ29sb3ImKTsKLSAgICB2b2lkIGNsZWFyKHVuc2lnbmVk
IG1hc2spOwotICAgIHZvaWQgZHJhd0FycmF5cyh1bnNpZ25lZCBsb25nIG1vZGUsIGxvbmcgZmly
c3QsIGxvbmcgY291bnQpOwotICAgIHVuc2lnbmVkIGxvbmcgZ2V0RXJyb3IoKTsKLSAgICB2b2lk
IGdldEludGVnZXJ2KHVuc2lnbmVkIGxvbmcgcG5hbWUsIGludCogdmFsdWUpOwotCi0gICAgdW5z
aWduZWQgY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgICB1bnNpZ25lZCBjcmVhdGVUZXh0dXJlKCk7
Ci0KLSAgICB2b2lkIGRlbGV0ZUZyYW1lYnVmZmVyKHVuc2lnbmVkIGZyYW1lYnVmZmVyKTsKLSAg
ICB2b2lkIGRlbGV0ZVRleHR1cmUodW5zaWduZWQgdGV4dHVyZSk7Ci0KLSAgICB2b2lkIGZyYW1l
YnVmZmVyVGV4dHVyZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25nIGF0dGFj
aG1lbnQsIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCB1bnNpZ25lZCwgbG9uZyBsZXZlbCk7Ci0g
ICAgdm9pZCB0ZXhQYXJhbWV0ZXJpKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIGlu
dCBwYXJhbSk7Ci0gICAgaW50IHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0LCB1bnNpZ25lZCBs
ZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBo
ZWlnaHQsIHVuc2lnbmVkIGJvcmRlciwgdW5zaWduZWQgZm9ybWF0LCB1bnNpZ25lZCB0eXBlLCB2
b2lkKiBwaXhlbHMpOwotICAgIGludCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIHVuc2lnbmVk
IHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwg
dm9pZCogcGl4ZWxzKTsKLQotICAgIHZvaWQgcmVhZFBpeGVscyhsb25nIHgsIGxvbmcgeSwgdW5z
aWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQsIHVuc2lnbmVkIGxvbmcgZm9y
bWF0LCB1bnNpZ25lZCBsb25nIHR5cGUsIHZvaWQqIGRhdGEpOwotCi0gICAgYm9vbCBwYWludHNJ
bnRvQ2FudmFzQnVmZmVyKCkgY29uc3Q7Ci0KLSAgICAvLyBTaGFyZWQgbG9naWMgZm9yIGNhbnZh
cyAyZAotICAgIHZvaWQgYXBwbHlDb21wb3NpdGVPcGVyYXRvcihDb21wb3NpdGVPcGVyYXRvcik7
Ci0gICAgdm9pZCB1c2VRdWFkVmVydGljZXMoKTsKLQotICAgIHZvaWQgdXNlRmlsbFNvbGlkUHJv
Z3JhbShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBDb2xvciYpOwotICAgIHZvaWQgdXNl
VGV4dHVyZVByb2dyYW0oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiwgZmxvYXQgYWxwaGEpOwotCi0gICAgdm9pZCBzZXRBY3RpdmVUZXh0dXJlKHVuc2lnbmVk
IHRleHR1cmVVbml0KTsKLSAgICB2b2lkIGJpbmRUZXh0dXJlKHVuc2lnbmVkIHRhcmdldCwgdW5z
aWduZWQgdGV4dHVyZSk7Ci0KLSAgICBib29sIHN1cHBvcnRzQkdSQSgpOwotCi0gICAgLy8gQ3Jl
YXRlcyBhIHRleHR1cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBpbWFnZS4gIElzIG93bmVk
IGJ5IHRoaXMgY29udGV4dCdzCi0gICAgLy8gVGV4dHVyZUhhc2hNYXAuCi0gICAgVGV4dHVyZSog
Y3JlYXRlVGV4dHVyZShOYXRpdmVJbWFnZVB0ciwgVGV4dHVyZTo6Rm9ybWF0LCBpbnQgd2lkdGgs
IGludCBoZWlnaHQpOwotICAgIFRleHR1cmUqIGdldFRleHR1cmUoTmF0aXZlSW1hZ2VQdHIpOwot
Ci0gICAgLy8gQ3JlYXRlcyBhIHRleHR1cmUgdGhhdCBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGFu
eSBpbWFnZS4gIFRoZSBjYWxsZXIgdGFrZXMgb3duZXJzaGlwIG9mCi0gICAgLy8gdGhlIHRleHR1
cmUuCi0gICAgUGFzc1JlZlB0cjxUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRleHR1cmU6OkZvcm1h
dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKLQotcHJpdmF0ZToKLSAgICBTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRChQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250ZXh0KTsKLQotICAg
IE93blB0cjxHcmFwaGljc0NvbnRleHQzRD4gbV9jb250ZXh0OwotCi0gICAgdW5zaWduZWQgbV9x
dWFkVmVydGljZXM7Ci0KLSAgICBPd25QdHI8U29saWRGaWxsU2hhZGVyPiBtX3NvbGlkRmlsbFNo
YWRlcjsKLSAgICBPd25QdHI8VGV4U2hhZGVyPiBtX3RleFNoYWRlcjsKLQotICAgIFRleHR1cmVI
YXNoTWFwIG1fdGV4dHVyZXM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBTaGFyZWRHcmFwaGljc0NvbnRleHQzRF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dwdS9UZXh0dXJlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3B1L1RleHR1cmUuY3BwCmluZGV4IDM2ZTRhZDUuLjU1NzYwM2MgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RleHR1cmUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1RleHR1cmUuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLQogI2luY2x1ZGUg
PHd0Zi9Pd25BcnJheVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKaW5k
ZXggYTc0MDJiOS4uMWM4MGQ0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcApAQCAtMTI0MCwxNCArMTI0MCwxNCBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6dHJhbnNsYXRlKGZsb2F0IHcsIGZsb2F0IGgpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZUZsb2F0VG9Ta1Nj
YWxhcihoKSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0OjpzeW5jU29mdHdhcmVDYW52YXMo
KQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29u
dGV4dDNEKiBjb250ZXh0M0QsIGNvbnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgcGxhdGZvcm1D
b250ZXh0KCktPnN5bmNTb2Z0d2FyZUNhbnZhcygpOworICAgIHBsYXRmb3JtQ29udGV4dCgpLT5z
ZXRHcmFwaGljc0NvbnRleHQzRChjb250ZXh0M0QsIHNpemUpOwogfQogCi12b2lkIEdyYXBoaWNz
Q29udGV4dDo6c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QoU2hhcmVkR3JhcGhpY3NDb250ZXh0
M0QqIGNvbnRleHQsIERyYXdpbmdCdWZmZXIqIGZyYW1lYnVmZmVyLCBjb25zdCBJbnRTaXplJiBz
aXplKQordm9pZCBHcmFwaGljc0NvbnRleHQ6OnN5bmNTb2Z0d2FyZUNhbnZhcygpCiB7Ci0gICAg
cGxhdGZvcm1Db250ZXh0KCktPnNldFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKGNvbnRleHQsIGZy
YW1lYnVmZmVyLCBzaXplKTsKKyAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c3luY1NvZnR3YXJlQ2Fu
dmFzKCk7CiB9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IGUwYmRhMDMuLjk0
MDM0MDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1
ZmZlclNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1
ZmZlclNraWEuY3BwCkBAIC0zNiwxMiArMzYsMTAgQEAKICNpbmNsdWRlICJCYXNlNjQuaCIKICNp
bmNsdWRlICJCaXRtYXBJbWFnZS5oIgogI2luY2x1ZGUgIkJpdG1hcEltYWdlU2luZ2xlRnJhbWVT
a2lhLmgiCi0jaW5jbHVkZSAiRHJhd2luZ0J1ZmZlci5oIgotI2luY2x1ZGUgIkdMRVMyQ2FudmFz
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW1hZ2VEYXRhLmgi
Ci0jaW5jbHVkZSAiUE5HSW1hZ2VFbmNvZGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0
U2tpYS5oIgorI2luY2x1ZGUgIlBOR0ltYWdlRW5jb2Rlci5oIgogI2luY2x1ZGUgIlNrQ29sb3JQ
cml2LmgiCiAjaW5jbHVkZSAiU2tpYVV0aWxzLmgiCiAKQEAgLTExMCwxNiArMTA4LDYgQEAgdm9p
ZCBJbWFnZUJ1ZmZlcjo6Y2xpcChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkgY29uc3QKIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBk
ZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LAogICAgICAgICAgICAgICAgICAgICAg
ICBDb21wb3NpdGVPcGVyYXRvciBvcCwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7Ci0gICAg
aWYgKG1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dC51c2VHUFUoKSAmJiBjb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKS0+dXNlR1BVKCkpIHsKLSAgICAgICAgRHJhd2luZ0J1ZmZlciogc291cmNlRHJh
d2luZ0J1ZmZlciA9IG1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dC5ncHVDYW52YXMoKS0+ZHJhd2lu
Z0J1ZmZlcigpOwotICAgICAgICB1bnNpZ25lZCBzb3VyY2VUZXh0dXJlID0gc291cmNlRHJhd2lu
Z0J1ZmZlci0+Z2V0UmVuZGVyaW5nUmVzdWx0c0FzVGV4dHVyZSgpOwotICAgICAgICBGbG9hdFJl
Y3QgZGVzdFJlY3RGbGlwcGVkKGRlc3RSZWN0KTsKLSAgICAgICAgZGVzdFJlY3RGbGlwcGVkLnNl
dFkoZGVzdFJlY3QueSgpICsgZGVzdFJlY3QuaGVpZ2h0KCkpOwotICAgICAgICBkZXN0UmVjdEZs
aXBwZWQuc2V0SGVpZ2h0KC1kZXN0UmVjdC5oZWlnaHQoKSk7Ci0gICAgICAgIGNvbnRleHQtPnBs
YXRmb3JtQ29udGV4dCgpLT5ncHVDYW52YXMoKS0+ZHJhd1RleHR1cmVkUmVjdChzb3VyY2VUZXh0
dXJlLCBtX3NpemUsIHNyY1JlY3QsIGRlc3RSZWN0RmxpcHBlZCwgc3R5bGVDb2xvclNwYWNlLCBv
cCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0g
Qml0bWFwSW1hZ2VTaW5nbGVGcmFtZVNraWE6OmNyZWF0ZSgqbV9kYXRhLm1fcGxhdGZvcm1Db250
ZXh0LmJpdG1hcCgpLCBjb250ZXh0ID09IG1fY29udGV4dCk7CiAgICAgY29udGV4dC0+ZHJhd0lt
YWdlKGltYWdlLmdldCgpLCBzdHlsZUNvbG9yU3BhY2UsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcCwg
dXNlTG93UXVhbGl0eVNjYWxlKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9JbWFnZVNraWEuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0ltYWdlU2tpYS5jcHAKaW5kZXggNWI1OTYyYS4uYWVkMjg5ZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlU2tpYS5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNs
dWRlICJTa1JlY3QuaCIKICNpbmNsdWRlICJTa1NoYWRlci5oIgogI2luY2x1ZGUgIlNraWFVdGls
cy5oIgotI2luY2x1ZGUgIlRleHR1cmUuaCIKIAogI2luY2x1ZGUgInNraWEvZXh0L2ltYWdlX29w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJza2lhL2V4dC9wbGF0Zm9ybV9jYW52YXMuaCIKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
LmNwcAppbmRleCA0YTIxNTNlLi4zYjFkMDE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCkBAIC0zMywxMyArMzMs
MTIgQEAKICNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAKICNpbmNsdWRlICJBZmZp
bmVUcmFuc2Zvcm0uaCIKLSNpbmNsdWRlICJEcmF3aW5nQnVmZmVyLmgiCisjaW5jbHVkZSAiQ2Fu
dmFzTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkdMRVMyQ2FudmFzLmgiCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNs
dWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgotI2luY2x1
ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiU2tpYVV0aWxzLmgiCiAj
aW5jbHVkZSAiVGV4dHVyZS5oIgogI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKQEAgLTIxNyw4ICsy
MTYsMTIgQEAgUGxhdGZvcm1Db250ZXh0U2tpYTo6UGxhdGZvcm1Db250ZXh0U2tpYShza2lhOjpQ
bGF0Zm9ybUNhbnZhcyogY2FudmFzKQogCiBQbGF0Zm9ybUNvbnRleHRTa2lhOjp+UGxhdGZvcm1D
b250ZXh0U2tpYSgpCiB7Ci0gICAgaWYgKG1fZ3B1Q2FudmFzKQotICAgICAgICBtX2dwdUNhbnZh
cy0+ZHJhd2luZ0J1ZmZlcigpLT5zZXRXaWxsUHVibGlzaENhbGxiYWNrKDApOworI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKKyAgICBpZiAobV9ncHVDYW52YXMpIHsKKyAgICAgICAg
Q2FudmFzTGF5ZXJDaHJvbWl1bSogbGF5ZXIgPSBzdGF0aWNfY2FzdDxDYW52YXNMYXllckNocm9t
aXVtKj4obV9ncHVDYW52YXMtPmNvbnRleHQoKS0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAg
bGF5ZXItPnNldFByZXBhcmVUZXh0dXJlQ2FsbGJhY2soMCk7CisgICAgfQorI2VuZGlmCiB9CiAK
IHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0Q2FudmFzKHNraWE6OlBsYXRmb3JtQ2FudmFz
KiBjYW52YXMpCkBAIC02NzUsNDAgKzY3OCwzMyBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6
OmFwcGx5QW50aUFsaWFzZWRDbGlwUGF0aHMoV1RGOjpWZWN0b3I8U2tQYXRoPiYgcGF0aHMpCiAg
ICAgbV9jYW52YXMtPnJlc3RvcmUoKTsKIH0KIAotY2xhc3MgV2lsbFB1Ymxpc2hDYWxsYmFja0lt
cGwgOiBwdWJsaWMgRHJhd2luZ0J1ZmZlcjo6V2lsbFB1Ymxpc2hDYWxsYmFjayB7CisjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorY2xhc3MgUHJlcGFyZVRleHR1cmVDYWxsYmFja0lt
cGwgOiBwdWJsaWMgQ2FudmFzTGF5ZXJDaHJvbWl1bTo6UHJlcGFyZVRleHR1cmVDYWxsYmFjayB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2lsbFB1Ymxpc2hDYWxsYmFjaz4gY3Jl
YXRlKFBsYXRmb3JtQ29udGV4dFNraWEqIHBjcykKKyAgICBzdGF0aWMgUGFzc093blB0cjxQcmVw
YXJlVGV4dHVyZUNhbGxiYWNrSW1wbD4gY3JlYXRlKFBsYXRmb3JtQ29udGV4dFNraWEqIHBjcykK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lsbFB1Ymxpc2hDYWxsYmFja0lt
cGwocGNzKSk7CisgICAgICAgIHJldHVybiBuZXcgUHJlcGFyZVRleHR1cmVDYWxsYmFja0ltcGwo
cGNzKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFB1Ymxpc2goKQorICAgIHZpcnR1
YWwgdm9pZCB3aWxsUHJlcGFyZVRleHR1cmUoKQogICAgIHsKICAgICAgICAgbV9wY3MtPnByZXBh
cmVGb3JIYXJkd2FyZURyYXcoKTsKICAgICB9Ci0KIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ls
bFB1Ymxpc2hDYWxsYmFja0ltcGwoUGxhdGZvcm1Db250ZXh0U2tpYSogcGNzKQotICAgICAgICA6
IG1fcGNzKHBjcykKLSAgICB7Ci0gICAgfQotCisgICAgZXhwbGljaXQgUHJlcGFyZVRleHR1cmVD
YWxsYmFja0ltcGwoUGxhdGZvcm1Db250ZXh0U2tpYSogcGNzKSA6IG1fcGNzKHBjcykge30KICAg
ICBQbGF0Zm9ybUNvbnRleHRTa2lhKiBtX3BjczsKIH07CisjZW5kaWYKIAotdm9pZCBQbGF0Zm9y
bUNvbnRleHRTa2lhOjpzZXRTaGFyZWRHcmFwaGljc0NvbnRleHQzRChTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRCogY29udGV4dCwgRHJhd2luZ0J1ZmZlciogZHJhd2luZ0J1ZmZlciwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2l6ZSkKK3ZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0R3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNpemUpCiB7Ci0gICAgaWYgKGNvbnRleHQgJiYgZHJhd2luZ0J1ZmZlcikgewotICAg
ICAgICBtX3VzZUdQVSA9IHRydWU7Ci0gICAgICAgIG1fZ3B1Q2FudmFzID0gbmV3IEdMRVMyQ2Fu
dmFzKGNvbnRleHQsIGRyYXdpbmdCdWZmZXIsIHNpemUpOwotICAgICAgICBtX3VwbG9hZFRleHR1
cmUuY2xlYXIoKTsKLSAgICAgICAgZHJhd2luZ0J1ZmZlci0+c2V0V2lsbFB1Ymxpc2hDYWxsYmFj
ayhXaWxsUHVibGlzaENhbGxiYWNrSW1wbDo6Y3JlYXRlKHRoaXMpKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBzeW5jU29mdHdhcmVDYW52YXMoKTsKLSAgICAgICAgbV91cGxvYWRUZXh0dXJlLmNs
ZWFyKCk7Ci0gICAgICAgIG1fZ3B1Q2FudmFzLmNsZWFyKCk7Ci0gICAgICAgIG1fdXNlR1BVID0g
ZmFsc2U7Ci0gICAgfQorICAgIG1fdXNlR1BVID0gdHJ1ZTsKKyAgICBtX2dwdUNhbnZhcyA9IG5l
dyBHTEVTMkNhbnZhcyhjb250ZXh0LCBzaXplKTsKKyAgICBtX3VwbG9hZFRleHR1cmUuY2xlYXIo
KTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgQ2FudmFzTGF5ZXJDaHJv
bWl1bSogbGF5ZXIgPSBzdGF0aWNfY2FzdDxDYW52YXNMYXllckNocm9taXVtKj4oY29udGV4dC0+
cGxhdGZvcm1MYXllcigpKTsKKyAgICBsYXllci0+c2V0UHJlcGFyZVRleHR1cmVDYWxsYmFjayhQ
cmVwYXJlVGV4dHVyZUNhbGxiYWNrSW1wbDo6Y3JlYXRlKHRoaXMpKTsKKyNlbmRpZgogfQogCiB2
b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OnByZXBhcmVGb3JTb2Z0d2FyZURyYXcoKSBjb25zdApA
QCAtNzg4LDkgKzc4NCw5IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6dXBsb2FkU29mdHdh
cmVUb0hhcmR3YXJlKENvbXBvc2l0ZU9wZXJhdG9yIG9wKSBjb25zdAogewogICAgIGNvbnN0IFNr
Qml0bWFwJiBiaXRtYXAgPSBtX2NhbnZhcy0+Z2V0RGV2aWNlKCktPmFjY2Vzc0JpdG1hcChmYWxz
ZSk7CiAgICAgU2tBdXRvTG9ja1BpeGVscyBsb2NrKGJpdG1hcCk7Ci0gICAgU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QqIGNvbnRleHQgPSBtX2dwdUNhbnZhcy0+Y29udGV4dCgpOworICAgIEdyYXBo
aWNzQ29udGV4dDNEKiBjb250ZXh0ID0gbV9ncHVDYW52YXMtPmNvbnRleHQoKTsKICAgICBpZiAo
IW1fdXBsb2FkVGV4dHVyZSB8fCBtX3VwbG9hZFRleHR1cmUtPnRpbGVzKCkudG90YWxTaXplWCgp
IDwgYml0bWFwLndpZHRoKCkgfHwgbV91cGxvYWRUZXh0dXJlLT50aWxlcygpLnRvdGFsU2l6ZVko
KSA8IGJpdG1hcC5oZWlnaHQoKSkKLSAgICAgICAgbV91cGxvYWRUZXh0dXJlID0gY29udGV4dC0+
Y3JlYXRlVGV4dHVyZShUZXh0dXJlOjpCR1JBOCwgYml0bWFwLndpZHRoKCksIGJpdG1hcC5oZWln
aHQoKSk7CisgICAgICAgIG1fdXBsb2FkVGV4dHVyZSA9IFRleHR1cmU6OmNyZWF0ZShjb250ZXh0
LCBUZXh0dXJlOjpCR1JBOCwgYml0bWFwLndpZHRoKCksIGJpdG1hcC5oZWlnaHQoKSk7CiAgICAg
bV91cGxvYWRUZXh0dXJlLT5sb2FkKGJpdG1hcC5nZXRQaXhlbHMoKSk7CiAgICAgSW50UmVjdCBy
ZWN0KDAsIDAsIGJpdG1hcC53aWR0aCgpLCBiaXRtYXAuaGVpZ2h0KCkpOwogICAgIEFmZmluZVRy
YW5zZm9ybSBpZGVudGl0eTsKQEAgLTgwMyw4ICs3OTksNyBAQCB2b2lkIFBsYXRmb3JtQ29udGV4
dFNraWE6OnJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKCkgY29uc3QKICAgICBTa0F1dG9Mb2Nr
UGl4ZWxzIGxvY2soYml0bWFwKTsKICAgICBpbnQgd2lkdGggPSBiaXRtYXAud2lkdGgoKSwgaGVp
Z2h0ID0gYml0bWFwLmhlaWdodCgpOwogICAgIE93bkFycmF5UHRyPHVpbnQzMl90PiBidWYobmV3
IHVpbnQzMl90W3dpZHRoXSk7Ci0gICAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQg
PSBtX2dwdUNhbnZhcy0+Y29udGV4dCgpOwotICAgIG1fZ3B1Q2FudmFzLT5iaW5kRnJhbWVidWZm
ZXIoKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCA9IG1fZ3B1Q2FudmFzLT5jb250
ZXh0KCk7CiAgICAgLy8gRmxpcHMgdGhlIGltYWdlIHZlcnRpY2FsbHkuCiAgICAgZm9yIChpbnQg
eSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgewogICAgICAgICB1aW50MzJfdCogcGl4ZWxzID0gYml0
bWFwLmdldEFkZHIzMigwLCB5KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCmluZGV4IDI2MDYyNDAuLjgyZWRjMTYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
LmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNr
aWEuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIk5vbmNvcHlhYmxlLmgiCiAKICNpbmNs
dWRlICJTa0Rhc2hQYXRoRWZmZWN0LmgiCisjaW5jbHVkZSAiU2tEZXF1ZS5oIgogI2luY2x1ZGUg
IlNrRHJhd0xvb3Blci5oIgogI2luY2x1ZGUgIlNrUGFpbnQuaCIKICNpbmNsdWRlICJTa1BhdGgu
aCIKQEAgLTQ1LDEwICs0Niw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gQ29tcG9z
aXRlT3BlcmF0b3I7Ci1jbGFzcyBEcmF3aW5nQnVmZmVyOwogY2xhc3MgR0xFUzJDYW52YXM7Ci1j
bGFzcyBHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFRleHR1cmU7CitjbGFzcyBHcmFwaGljc0Nv
bnRleHQzRDsKIAogLy8gVGhpcyBjbGFzcyBob2xkcyB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgc3Rh
dGUgZm9yIEdyYXBoaWNzQ29udGV4dC4gV2UgcHV0CiAvLyBtb3N0IG9mIG91ciBTa2lhIHdyYXBw
ZXJzIG9uIHRoaXMgY2xhc3MuIEluIHRoZW9yeSwgYSBsb3Qgb2YgdGhpcyBzdHVmZiBjb3VsZApA
QCAtMTgxLDcgKzE4MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFySW1hZ2VSZXNhbXBsaW5n
SGludCgpOwogICAgIGJvb2wgaGFzSW1hZ2VSZXNhbXBsaW5nSGludCgpIGNvbnN0OwogICAgIGJv
b2wgdXNlR1BVKCkgeyByZXR1cm4gbV91c2VHUFU7IH0KLSAgICB2b2lkIHNldFNoYXJlZEdyYXBo
aWNzQ29udGV4dDNEKFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKiwgRHJhd2luZ0J1ZmZlciosIGNv
bnN0IEludFNpemUmKTsKKyAgICB2b2lkIHNldEdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29u
dGV4dDNEKiwgY29uc3QgSW50U2l6ZSYpOwogICAgIEdMRVMyQ2FudmFzKiBncHVDYW52YXMoKSBj
b25zdCB7IHJldHVybiBtX2dwdUNhbnZhcy5nZXQoKTsgfQogCiAgICAgLy8gQ2FsbCB0aGVzZSBi
ZWZvcmUgbWFraW5nIGEgY2FsbCB0aGF0IG1hbmlwdWxhdGVzIHRoZSB1bmRlcmx5aW5nCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRleCA0MDZhMzc1Li43ODZmMWI2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKQEAgLTIyNiw3ICsyMjYsNyBAQCB2b2lk
IEZvcm1EYXRhOjphcHBlbmRLZXlWYWx1ZVBhaXJJdGVtcyhjb25zdCBGb3JtRGF0YUxpc3QmIGxp
c3QsIGNvbnN0IFRleHRFbmNvZAogICAgICAgICAgICAgICAgIEZvcm1EYXRhQnVpbGRlcjo6YWRk
RmlsZW5hbWVUb011bHRpUGFydEhlYWRlcihoZWFkZXIsIGVuY29kaW5nLCBuYW1lKTsKIAogICAg
ICAgICAgICAgICAgIC8vIEFkZCB0aGUgY29udGVudCB0eXBlIGlmIGl0IGlzIGF2YWlsYWJsZS4K
LSAgICAgICAgICAgICAgICBpZiAoIXZhbHVlLmJsb2IoKS0+dHlwZSgpLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgICAgICBpZiAodmFsdWUuYmxvYigpLT50eXBlKCkuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgICAgICAgICBGb3JtRGF0YUJ1aWxkZXI6OmFkZENvbnRlbnRUeXBlVG9NdWx0aVBhcnRI
ZWFkZXIoaGVhZGVyLCB2YWx1ZS5ibG9iKCktPnR5cGUoKS5sYXRpbjEoKSk7CiAgICAgICAgICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC93aW5jZS9UZXh0Q29kZWNX
aW5DRS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvd2luY2UvVGV4dENvZGVjV2luQ0UuY3Bw
CmluZGV4IDI3ODkxNDguLjU3OGY3ODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC93aW5jZS9UZXh0Q29kZWNXaW5DRS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L3dp
bmNlL1RleHRDb2RlY1dpbkNFLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlRleHRDb2RlY1dpbkNFLmgiCiAKKyNpbmNsdWRlICJjZV90ZXh0Y29k
ZWNzLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlIDxtbGFuZy5oPgpAQCAtNDIsNiArNDMsNyBAQCBzdHJ1Y3QgQ2hhcnNldElu
Zm8gewogICAgIFN0cmluZyBtX2ZyaWVuZGx5TmFtZTsKICAgICBVSU5UIG1fY29kZVBhZ2U7CiAg
ICAgVmVjdG9yPENTdHJpbmc+IG1fYWxpYXNlczsKKyAgICBib29sIG1fdXNlc05hdGl2ZUNvZGVj
OwogfTsKIAogY2xhc3MgTGFuZ3VhZ2VNYW5hZ2VyIHsKQEAgLTgwLDggKzgyLDQ1IEBAIHN0YXRp
YyBMYW5ndWFnZU1hbmFnZXImIGxhbmd1YWdlTWFuYWdlcigpCiAgICAgcmV0dXJuIGxtOwogfQog
CitzdGF0aWMgdm9pZCBhZGRDaGFyc2V0KFVJTlQgY29kZVBhZ2UsIGNvbnN0IGNoYXIqIGNoYXJz
ZXROYW1lLCBjb25zdCB3Y2hhcl90KiBmcmllbmRseU5hbWUsIGNvbnN0IGNoYXIqIGNoYXJzZXRB
bGlhc2VzLCBib29sIG5hdGl2ZVN1cHBvcnQgPSBmYWxzZSkKK3sKKyAgICBDaGFyc2V0SW5mbyBp
bmZvOworICAgIGluZm8ubV9jb2RlUGFnZSA9IGNvZGVQYWdlOworICAgIGluZm8ubV9uYW1lID0g
Y2hhcnNldE5hbWU7CisgICAgaW5mby5tX2ZyaWVuZGx5TmFtZSA9IGZyaWVuZGx5TmFtZTsKKyAg
ICBpbmZvLm1fdXNlc05hdGl2ZUNvZGVjID0gbmF0aXZlU3VwcG9ydDsKKyAgICBjb25zdCBjaGFy
KiBiZWdpbiA9IGNoYXJzZXRBbGlhc2VzOworICAgIGZvciAoOzspIHsKKyAgICAgICAgY29uc3Qg
Y2hhciogZW5kID0gc3RyY2hyKGJlZ2luLCAnfCcpOworICAgICAgICBDU3RyaW5nIGFsaWFzID0g
ZW5kID8gQ1N0cmluZyhiZWdpbiwgZW5kIC0gYmVnaW4pIDogYmVnaW47CisgICAgICAgIGlmIChh
bGlhcy5sZW5ndGgoKSkKKyAgICAgICAgICAgIGluZm8ubV9hbGlhc2VzLmFwcGVuZChhbGlhcyk7
CisgICAgICAgIGlmICghZW5kKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGJlZ2luID0g
ZW5kICsgMTsKKyAgICB9CisgICAga25vd25DaGFyc2V0cygpLnNldChpbmZvLm1fbmFtZS5kYXRh
KCksIGluZm8pOworICAgIGlmIChjb2RlUGFnZSAhPSBDUF9BQ1ApCisgICAgICAgIGNvZGVQYWdl
Q2hhcnNldHMoKS5zZXQoY29kZVBhZ2UsIGluZm8ubV9uYW1lKTsKK30KKwogTGFuZ3VhZ2VNYW5h
Z2VyOjpMYW5ndWFnZU1hbmFnZXIoKQogeworICAgIC8vIDQzNywgNzA4LCA3MDksIDcxMCwgNzIw
LCA3MzcsIDc3NSwgODUwLCA4NTIKKyAgICBhZGRDaGFyc2V0KDkzMiwgICAgICJTSElGVF9KSVMi
LCBMIkphcGFuZXNlIChTSElGVF9KSVMpIiwgICAgICAgICJzaGlmdF9qaXMiKTsKKyAgICBhZGRD
aGFyc2V0KDkzNiwgICAgICJHQksiLCAgICAgICBMIkNoaW5lc2UgU2ltcGxpZmllZCAoR0JLKSIs
ICAgICJnYmt8Z2IyMzEyIik7CisgICAgYWRkQ2hhcnNldCg5NDksICAgICAiS1NDNTYwMSIsICAg
TCJLb3JlYW4gKEtTQzU2MDEpIiwgICAgICAgICAgICAia3NfY181NjAxLTE5ODd8a3NjNTYwMXxl
dWMta3J8ZXVja3J8eC1ldWMta3IiKTsKKyAgICBhZGRDaGFyc2V0KDk1MCwgICAgICJCSUc1Iiwg
ICAgICBMIkNoaW5lc2UgVHJhZGl0aW9uYWwgKEJJRzUpIiwgICJiaWc1Iik7CisgICAgYWRkQ2hh
cnNldCgxMzYxLCAgICAiSk9IQUIiLCAgICAgTCJLb3JlYW4gKEpvaGFiKSIsICAgICAgICAgICAg
ICAiam9oYWJ8a29yZWFuLmpvaGFiIik7CisgICAgYWRkQ2hhcnNldCg1MTkzMiwgICAiRVVDLUpQ
IiwgICAgTCJKYXBhbmVzZSAoRVVDKSIsICAgICAgICAgICAgICAiZXVjLWpwfGV1Y2pwfHgtZXVj
LWpwIiwgdHJ1ZSk7CisgICAgYWRkQ2hhcnNldCg4NzQsICAgICAiQ1A4NzQiLCAgICAgTCJUaGFp
IChXaW5kb3dzKSIsICAgICAgICAgICAgICAiY3A4NzR8d2luZG93cy04NzQiLCB0cnVlKTsKKyAg
ICBhZGRDaGFyc2V0KENQX0FDUCwgICJUSVM2MjAiLCAgICBMIlRoYWkgKFRJUyA2MjApIiwgICAg
ICAgICAgICAgICJ0aXM2MjB8SVNPLTg4NTktMTF8SVNPLUlSLTE2NnxUSVMtNjIwfFRJUzYyMC0w
VElTNjIwLjI1MjktMXxUSVM2MjAuMjUzMy0wfFRJUzYyMC4yNTMzLTF8dGhhaTgiLCB0cnVlKTsK
KyAgICBhZGRDaGFyc2V0KENQX0FDUCwgICJNQUNUSEFJIiwgICBMIlRoYWkgKE1hYyBPUykiLCAg
ICAgICAgICAgICAgICJtYWN0aGFpfHgtbWFjLXRoYWl8bWFjLXRoYWkiLCB0cnVlKTsKKyAgICBz
dXBwb3J0ZWRDaGFyc2V0cygpLmFkZCgiRVVDLUpQIik7CisgICAgc3VwcG9ydGVkQ2hhcnNldHMo
KS5hZGQoIkNQODc0Iik7CisgICAgc3VwcG9ydGVkQ2hhcnNldHMoKS5hZGQoIlRJUzYyMCIpOwor
ICAgIHN1cHBvcnRlZENoYXJzZXRzKCkuYWRkKCJNQUNUSEFJIik7CisKICAgICBJRW51bUNvZGVQ
YWdlKiBlbnVtSW50ZXJmYWNlOwogICAgIElNdWx0aUxhbmd1YWdlKiBtbGkgPSBGb250Q2FjaGU6
OmdldE11bHRpTGFuZ3VhZ2VJbnRlcmZhY2UoKTsKICAgICBpZiAobWxpICYmIFNfT0sgPT0gbWxp
LT5FbnVtQ29kZVBhZ2VzKE1JTUVDT05URl9CUk9XU0VSLCAmZW51bUludGVyZmFjZSkpIHsKQEAg
LTEwOSw2ICsxNDgsNyBAQCBMYW5ndWFnZU1hbmFnZXI6Okxhbmd1YWdlTWFuYWdlcigpCiAgICAg
ICAgICAgICAgICAgaW5mby5tX2FsaWFzZXMuYXBwZW5kKG5hbWUpOwogICAgICAgICAgICAgICAg
IGluZm8ubV9hbGlhc2VzLmFwcGVuZChTdHJpbmcoY3BJbmZvLndzekhlYWRlckNoYXJzZXQpLmxh
dGluMSgpKTsKICAgICAgICAgICAgICAgICBpbmZvLm1fYWxpYXNlcy5hcHBlbmQoU3RyaW5nKGNw
SW5mby53c3pCb2R5Q2hhcnNldCkubGF0aW4xKCkpOworICAgICAgICAgICAgICAgIGluZm8ubV91
c2VzTmF0aXZlQ29kZWMgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBTdHJpbmcgY3BOYW1lID0g
U3RyaW5nOjpmb3JtYXQoImNwJWQiLCBjcEluZm8udWlDb2RlUGFnZSk7CiAgICAgICAgICAgICAg
ICAgaW5mby5tX2FsaWFzZXMuYXBwZW5kKGNwTmFtZS5sYXRpbjEoKSk7CiAgICAgICAgICAgICAg
ICAgc3VwcG9ydGVkQ2hhcnNldHMoKS5hZGQoaS0+c2Vjb25kLmRhdGEoKSk7CkBAIC0yMjUsNiAr
MjY1LDUyIEBAIHN0YXRpYyB2b2lkIGRlY29kZShWZWN0b3I8VUNoYXIsIDgxOTI+JiByZXN1bHQs
IGNvbnN0IGNoYXIqIGVuY29kaW5nTmFtZSwgY29uc3QKICAgICAgICAgICAgIGNvZGVQYWdlID0g
Q1BfVVRGODsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY29kZVBhZ2UgPSBDUF9BQ1A7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgY29kZVBhZ2UgPSBpLT5zZWNvbmQubV9jb2RlUGFnZTsKKyAg
ICAgICAgaWYgKGktPnNlY29uZC5tX3VzZXNOYXRpdmVDb2RlYykgeworICAgICAgICAgICAgdHlw
ZWRlZiBpbnQgKCpGdW5jRXVjTWJUb1djKSh3Y2hhcl90ICpwd2MsIGNvbnN0IHVuc2lnbmVkIGNo
YXIgKnMsIGludCBuKTsKKyAgICAgICAgICAgIEZ1bmNFdWNNYlRvV2MgZW5jTWJUb1djID0gMDsK
KyAgICAgICAgICAgIGlmICghc3RyY21wKGVuY29kaW5nTmFtZSwgIkVVQy1KUCIpKQorICAgICAg
ICAgICAgICAgIGVuY01iVG9XYyA9IFRleHRDb2RlY3NDRTo6ZXVjX2pwX21idG93YzsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKCFzdHJjbXAoZW5jb2RpbmdOYW1lLCAiQ1A4NzQiKSkKKyAgICAgICAg
ICAgICAgICBlbmNNYlRvV2MgPSBUZXh0Q29kZWNzQ0U6OmNwODc0X21idG93YzsKKyAgICAgICAg
ICAgIGVsc2UgaWYgKCFzdHJjbXAoZW5jb2RpbmdOYW1lLCAiVElTNjIwIikpCisgICAgICAgICAg
ICAgICAgZW5jTWJUb1djID0gVGV4dENvZGVjc0NFOjp0aXM2MjBfbWJ0b3djOworICAgICAgICAg
ICAgZWxzZSBpZiAoIXN0cmNtcChlbmNvZGluZ05hbWUsICJNQUNUSEFJIikpCisgICAgICAgICAg
ICAgICAgZW5jTWJUb1djID0gVGV4dENvZGVjc0NFOjptYWNfdGhhaV9tYnRvd2M7CisKKyAgICAg
ICAgICAgIGlmIChlbmNNYlRvV2MpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBjb25z
dCBzcmNTdGFydCA9IGJ5dGVzOworICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGNvbnN0IHNy
Y0VuZCA9IGJ5dGVzICsgbGVuZ3RoOworICAgICAgICAgICAgICAgIGludCBsYXN0U2l6ZSA9IHJl
c3VsdC5zaXplKCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LnJlc2l6ZShsYXN0U2l6ZSArIGxl
bmd0aCk7CisgICAgICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgICAgICBV
Q2hhciogZHN0ID0gcmVzdWx0LmRhdGEoKSArIGxhc3RTaXplOworICAgICAgICAgICAgICAgICAg
ICBjb25zdCBVQ2hhciogY29uc3QgZHN0RW5kID0gcmVzdWx0LmRhdGEoKSArIHJlc3VsdC5zaXpl
KCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoOyBkc3QgPCBkc3RFbmQgJiYgYnl0ZXMgPCBz
cmNFbmQ7ICsrZHN0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtYmVyRW5jb2Rl
ZCA9IGVuY01iVG9XYyhkc3QsIChjb25zdCB1bnNpZ25lZCBjaGFyKilieXRlcywgc3JjRW5kIC0g
Ynl0ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG51bWJlckVuY29kZWQgPj0gMCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlcyArPSBudW1iZXJFbmNvZGVkOworICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG51bWJlckVuY29kZWQgPT0gUkVUX0lMU0VRKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzYXdJbnZhbGlkQ2hhciA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJ5dGVzID09IHNyY0VuZCB8fCBkc3QgIT0gZHN0
RW5kKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAqbGVmdCA9IHNyY0VuZCAtIGJ5dGVzOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJlc2l6ZShkc3QgLSByZXN1bHQuZGF0YSgp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBsYXN0U2l6ZSA9IHJlc3VsdC5zaXplKCk7CisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdC5yZXNpemUocmVzdWx0LnNpemUoKSArIDI1Nik7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAqbGVmdCA9
IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChieXRlcywgbGVuZ3RoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAg
ICBEV09SRCBmbGFncyA9IGdldENvZGVQYWdlRmxhZ3MoY29kZVBhZ2UpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blBhY2thZ2UuY3BwCmluZGV4IDk5NDQ1ZTcuLjVmMzU4YjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFj
a2FnZS5jcHAKQEAgLTIxNSwxMyArMjE1LDYgQEAgdm9pZCBQbHVnaW5QYWNrYWdlOjpkZXRlcm1p
bmVRdWlya3MoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICAgICAgbV9xdWlya3MuYWRkKFBs
dWdpblF1aXJrVGhyb3R0bGVXTVVzZXJQbHVzT25lTWVzc2FnZXMpOwogICAgICAgICBtX3F1aXJr
cy5hZGQoUGx1Z2luUXVpcmtGbGFzaFVSTE5vdGlmeUJ1Zyk7CiAgICAgfQotCi0jaWYgZGVmaW5l
ZChRX1dTX01BRU1PXzUpIHx8IGRlZmluZWQoUV9XU19NQUVNT182KQotICAgIC8vIFBhc3Npbmcg
YSAzMi1iaXQgZGVwdGggcGl4bWFwIHRvIE5QQVBJIHBsdWdpbnMgaXMgdG9vIGluZWZmaWNpZW50
LiBJbnN0ZWFkLCBwYXNzIGEgWCBQaXhtYXAKLSAgICAvLyB0aGF0IGhhcyBzYW1lIGRlcHRoIGFz
IHRoZSBzY3JlZW4gZGVwdGggc2luY2UgZ3JhcGhpY3Mgb3BlcmF0aW9ucyBhcmUgb3B0aW1pemVk
Ci0gICAgLy8gZm9yIHRoaXMgZGVwdGguCi0gICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrUmVx
dWlyZXNEZWZhdWx0U2NyZWVuRGVwdGgpOwotI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXcuY3BwCmluZGV4IGI4YjgwZjUuLmJlZThkY2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
QEAgLTUzNyw3ICs1MzcsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmxvYWQoY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYgZnJhbWVMb2FkUmVxdWVzdCwgYm9vbCBzZW5kTm90aQogICAgICAgICAvLyBG
b3Igc2VjdXJpdHkgcmVhc29ucywgb25seSBhbGxvdyBKUyByZXF1ZXN0cyB0byBiZSBtYWRlIG9u
IHRoZSBmcmFtZSB0aGF0IGNvbnRhaW5zIHRoZSBwbHVnLWluLgogICAgICAgICBpZiAoIXRhcmdl
dEZyYW1lTmFtZS5pc051bGwoKSAmJiBtX3BhcmVudEZyYW1lLT50cmVlKCktPmZpbmQodGFyZ2V0
RnJhbWVOYW1lKSAhPSBtX3BhcmVudEZyYW1lKQogICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0lO
VkFMSURfUEFSQU07Ci0gICAgfSBlbHNlIGlmICghU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXko
dXJsLCBTdHJpbmcoKSwgbV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKSkpCisgICAgfSBlbHNlIGlm
ICghU2VjdXJpdHlPcmlnaW46OmNhbkxvYWQodXJsLCBTdHJpbmcoKSwgbV9wYXJlbnRGcmFtZS0+
ZG9jdW1lbnQoKSkpCiAgICAgICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKIAog
ICAgIFBsdWdpblJlcXVlc3QqIHJlcXVlc3QgPSBuZXcgUGx1Z2luUmVxdWVzdChmcmFtZUxvYWRS
ZXF1ZXN0LCBzZW5kTm90aWZpY2F0aW9uLCBub3RpZnlEYXRhLCBhcmVQb3B1cHNBbGxvd2VkKCkp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1dl
YkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggNDIzYTA1YS4uYWI0M2Jm
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorKysg
Yi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC0yOTksNyArMjk5LDYg
QEAgdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2
ZW50KQogCiAgICAgTlBFdmVudCB4RXZlbnQ7CiAjaWYgZGVmaW5lZChYUF9VTklYKQotICAgIGlu
aXRYRXZlbnQoJnhFdmVudCk7CiAgICAgR2RrRXZlbnRLZXkqIGdka0V2ZW50ID0gZXZlbnQtPmtl
eUV2ZW50KCktPmdka0V2ZW50S2V5KCk7CiAKICAgICB4RXZlbnQudHlwZSA9IChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpID8gMiA6IDM7IC8vIEtleVByZXNzL1Jl
bGVhc2UgZ2V0IHVuc2V0IHNvbWV3aGVyZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggZjkwOTBiYS4uMGJhOTA3YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCkBAIC0yNywxMSArMjcsOCBAQAogCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCi0KICNp
bmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FudmFzUmVuZGVyaW5n
Q29udGV4dC5oIgotI2luY2x1ZGUgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIgogI2luY2x1
ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC01NCw3ICs1MSw4IEBACiAjaW5jbHVkZSAiUmVuZGVy
VmlkZW8uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
LSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKworI2luY2x1ZGUgIlJlbmRlckxh
eWVyQmFja2luZy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0yNjAsOCArMjU4LDkg
QEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0
aW9uKCkKICAgICBlbHNlIGlmIChpc0FjY2VsZXJhdGVkQ2FudmFzKHJlbmRlcmVyKCkpKSB7CiAg
ICAgICAgIEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSBzdGF0aWNfY2FzdDxIVE1MQ2FudmFz
RWxlbWVudCo+KHJlbmRlcmVyKCktPm5vZGUoKSk7CiAgICAgICAgIGlmIChDYW52YXNSZW5kZXJp
bmdDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkpCi0gICAgICAg
ICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9DYW52YXMoY29udGV4dC0+cGxhdGZv
cm1MYXllcigpKTsKLSAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChjb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpKQorICAgICAgICAgICAgICAgIGlm
IChQbGF0Zm9ybUxheWVyKiBwbCA9IGNvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCktPnBsYXRm
b3JtTGF5ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250
ZW50c1RvQ2FudmFzKHBsKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCBiOGFhOGE5Li45ZmJhZjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAt
MjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiQWZmaW5lVHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VDbGllbnQuaCIKLSNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZs
b2F0UXVhZC5oIgpAQCAtOTg3LDE0ICs5ODYsMTMgQEAgaW5saW5lIHZvaWQgbWFrZU1hdHJpeFJl
bmRlcmFibGUoVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1hdHJpeCwgYm9vbCBoYXMzRFJlbmRlcmkK
IAogaW5saW5lIGludCBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oaW50IHZhbHVlLCBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKQogewotICAgIGRvdWJsZSB6b29tRmFjdG9yID0gcmVuZGVyZXItPnN0eWxl
KCktPmVmZmVjdGl2ZVpvb20oKTsKKyAgICBmbG9hdCB6b29tRmFjdG9yID0gcmVuZGVyZXItPnN0
eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKICAgICBpZiAoem9vbUZhY3RvciA9PSAxKQogICAgICAg
ICByZXR1cm4gdmFsdWU7CiAgICAgLy8gTmVlZGVkIGJlY2F1c2UgY29tcHV0ZUxlbmd0aEludCB0
cnVuY2F0ZXMgKHJhdGhlciB0aGFuIHJvdW5kcykgd2hlbiBzY2FsaW5nIHVwLgogICAgIGlmICh6
b29tRmFjdG9yID4gMSkKICAgICAgICAgdmFsdWUrKzsKLQotICAgIHJldHVybiByb3VuZEZvcklt
cHJlY2lzZUNvbnZlcnNpb248aW50LCBJTlRfTUFYLCBJTlRfTUlOPih2YWx1ZSAvIHpvb21GYWN0
b3IpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHZhbHVlIC8gem9vbUZhY3Rvcik7CiB9
CiAKIGlubGluZSB2b2lkIGFkanVzdEludFJlY3RGb3JBYnNvbHV0ZVpvb20oSW50UmVjdCYgcmVj
dCwgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNWR1Jvb3QuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAK
aW5kZXggNGUyM2M0Mi4uM2ZkNDM5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAK
QEAgLTM0OSwxNiArMzQ5LDggQEAgYm9vbCBSZW5kZXJTVkdSb290Ojpub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmUKICAgICAgICAgfQog
ICAgIH0KIAotICAgIC8vIElmIHdlIGRpZG4ndCBlYXJseSBleGl0IGFib3ZlLCB3ZSd2ZSBqdXN0
IGhpdCB0aGUgY29udGFpbmVyIDxzdmc+IGVsZW1lbnQuIFVubGlrZSBTVkcgMS4xLCAybmQgRWRp
dGlvbiBhbGxvd3MgY29udGFpbmVyIGVsZW1lbnRzIHRvIGJlIGhpdC4KLSAgICBpZiAoaGl0VGVz
dEFjdGlvbiA9PSBIaXRUZXN0QmxvY2tCYWNrZ3JvdW5kKSB7Ci0gICAgICAgIC8vIE9ubHkgcmV0
dXJuIHRydWUgaGVyZSwgaWYgdGhlIGxhc3QgaGl0IHRlc3RpbmcgcGhhc2UgJ0Jsb2NrQmFja2dy
b3VuZCcgaXMgZXhlY3V0ZWQuIElmIHdlJ2QgcmV0dXJuIHRydWUgaW4gdGhlICdGb3JlZ3JvdW5k
JyBwaGFzZSwKLSAgICAgICAgLy8gaGl0IHRlc3Rpbmcgd291bGQgc3RvcCBpbW1lZGlhdGVseS4g
Rm9yIFNWRyBvbmx5IHRyZWVzIHRoaXMgZG9lc24ndCBtYXR0ZXIuIFRob3VnaCB3aGVuIHdlIGhh
dmUgYSA8Zm9yZWlnbk9iamVjdD4gc3VidHJlZSB3ZSBuZWVkCi0gICAgICAgIC8vIHRvIGJlIGFi
bGUgdG8gZGV0ZWN0IGhpdHMgb24gdGhlIGJhY2tncm91bmQgb2YgYSA8ZGl2PiBlbGVtZW50LiBJ
ZiB3ZSdkIHJldHVybiB0cnVlIGhlcmUgaW4gdGhlICdGb3JlZ3JvdW5kJyBwaGFzZSwgd2UgYXJl
IG5vdCBhYmxlIAotICAgICAgICAvLyB0byBkZXRlY3QgdGhlc2UgaGl0cyBhbnltb3JlLgotICAg
ICAgICB1cGRhdGVIaXRUZXN0UmVzdWx0KHJlc3VsdCwgcm91bmRlZEludFBvaW50KGxvY2FsUG9p
bnQpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCisgICAgLy8gU3BlYzogT25seSBn
cmFwaGljYWwgZWxlbWVudHMgY2FuIGJlIHRhcmdldGVkIGJ5IHRoZSBtb3VzZSwgc28gd2UgZG9u
J3QgY2hlY2sgc2VsZiBoZXJlLgorICAgIC8vIDE2LjQ6ICJJZiB0aGVyZSBhcmUgbm8gZ3JhcGhp
Y3MgZWxlbWVudHMgd2hvc2UgcmVsZXZhbnQgZ3JhcGhpY3MgY29udGVudCBpcyB1bmRlciB0aGUg
cG9pbnRlciAoaS5lLiwgdGhlcmUgaXMgbm8gdGFyZ2V0IGVsZW1lbnQpLCB0aGUgZXZlbnQgaXMg
bm90IGRpc3BhdGNoZWQuIgogICAgIHJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVdpbi5jcHAgYi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAppbmRleCBiZTY3MGZmLi4zMDIzNzk4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtV2luLmNwcApAQCAtNTYs
MTAgKzU2LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBUaGUgc3RhbmRhcmQgd2lk
dGggZm9yIHRoZSBtZW51IGxpc3QgZHJvcC1kb3duIGJ1dHRvbiB3aGVuIHJ1biB1bmRlcgotLy8g
bGF5b3V0IHRlc3QgbW9kZS4gVXNlIHRoZSB2YWx1ZSB0aGF0J3MgY3VycmVudGx5IGNhcHR1cmVk
IGluIG1vc3QgYmFzZWxpbmVzLgotc3RhdGljIGNvbnN0IGludCBrU3RhbmRhcmRNZW51TGlzdEJ1
dHRvbldpZHRoID0gMTc7Ci0KIG5hbWVzcGFjZSB7CiBjbGFzcyBUaGVtZVBhaW50ZXIgewogcHVi
bGljOgpAQCAtNDQxLDEyICs0MzcsNiBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1XaW46OnBh
aW50U2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mCiAgICAgcmV0
dXJuIHBhaW50U2xpZGVyVHJhY2sobywgaSwgcik7CiB9CiAKLXN0YXRpYyBpbnQgbWVudUxpc3RC
dXR0b25XaWR0aCgpCi17Ci0gICAgc3RhdGljIGludCB3aWR0aCA9IENocm9taXVtQnJpZGdlOjps
YXlvdXRUZXN0TW9kZSgpID8ga1N0YW5kYXJkTWVudUxpc3RCdXR0b25XaWR0aCA6IEdldFN5c3Rl
bU1ldHJpY3MoU01fQ1hWU0NST0xMKTsKLSAgICByZXR1cm4gd2lkdGg7Ci19Ci0KIC8vIFVzZWQg
dG8gcGFpbnQgdW5zdHlsZWQgbWVudWxpc3RzIChpLmUuIHdpdGggdGhlIGRlZmF1bHQgYm9yZGVy
KQogYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtV2luOjpwYWludE1lbnVMaXN0KFJlbmRlck9iamVj
dCogbywgY29uc3QgUGFpbnRJbmZvJiBpLCBjb25zdCBJbnRSZWN0JiByKQogewpAQCAtNDcxLDcg
KzQ2MSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVdpbjo6cGFpbnRNZW51TGlzdChSZW5k
ZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgaSwKICAgICAvLyBUYWtlIHBhZGRpbmcgYW5k
IGJvcmRlciBpbnRvIGFjY291bnQuICBJZiB0aGUgTWVudUxpc3QgaXMgc21hbGxlciB0aGFuCiAg
ICAgLy8gdGhlIHNpemUgb2YgYSBidXR0b24sIG1ha2Ugc3VyZSB0byBzaHJpbmsgaXQgYXBwcm9w
cmlhdGVseSBhbmQgbm90IHB1dAogICAgIC8vIGl0cyB4IHBvc2l0aW9uIHRvIHRoZSBsZWZ0IG9m
IHRoZSBtZW51bGlzdC4KLSAgICBjb25zdCBpbnQgYnV0dG9uV2lkdGggPSBtZW51TGlzdEJ1dHRv
bldpZHRoKCk7CisgICAgY29uc3QgaW50IGJ1dHRvbldpZHRoID0gR2V0U3lzdGVtTWV0cmljcyhT
TV9DWFZTQ1JPTEwpOwogICAgIGludCBzcGFjaW5nTGVmdCA9IGJvcmRlckxlZnQgKyBib3gtPnBh
ZGRpbmdMZWZ0KCk7CiAgICAgaW50IHNwYWNpbmdSaWdodCA9IGJvcmRlclJpZ2h0ICsgYm94LT5w
YWRkaW5nUmlnaHQoKTsKICAgICBpbnQgc3BhY2luZ1RvcCA9IGJvcmRlclRvcCArIGJveC0+cGFk
ZGluZ1RvcCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5jcHAgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCQW55LmNwcAppbmRleCA3MzAzZmQ2Li45M2QyNjMzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55
LmNwcApAQCAtMzcsMTggKzM3LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1Jl
ZlB0cjxJREJBbnk+IElEQkFueTo6Y3JlYXRlSW52YWxpZCgpCitQYXNzUmVmUHRyPElEQkFueT4g
SURCQW55OjpjcmVhdGUoKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQW55KCkpOwog
fQogCi1QYXNzUmVmUHRyPElEQkFueT4gSURCQW55OjpjcmVhdGVOdWxsKCkKLXsKLSAgICBSZWZQ
dHI8SURCQW55PiBpZGJBbnkgPSBhZG9wdFJlZihuZXcgSURCQW55KCkpOwotICAgIGlkYkFueS0+
c2V0TnVsbCgpOwotICAgIHJldHVybiBpZGJBbnkucmVsZWFzZSgpOwotfQotCiBJREJBbnk6OklE
QkFueSgpCiAgICAgOiBtX3R5cGUoVW5kZWZpbmVkVHlwZSkKIHsKQEAgLTEwMCw3ICs5Myw3IEBA
IFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBJREJBbnk6OnNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSgpCiAgICAgcmV0dXJuIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlOwogfQogCi12b2lk
IElEQkFueTo6c2V0TnVsbCgpCit2b2lkIElEQkFueTo6c2V0KCkKIHsKICAgICBBU1NFUlQobV90
eXBlID09IFVuZGVmaW5lZFR5cGUpOwogICAgIG1fdHlwZSA9IE51bGxUeXBlOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCmlu
ZGV4IDkwNjZlMTMuLjk1MDY2MGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnku
aAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKQEAgLTQ0LDE5ICs0NCwxMSBAQCBjbGFz
cyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKIGNsYXNzIElEQkFueSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPElEQkFueT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkFueT4gY3Jl
YXRlSW52YWxpZCgpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkFueT4gY3JlYXRlTnVsbCgp
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkFueT4gY3JlYXRlKCk7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJBbnk+IGNyZWF0ZShUKiBpZGJP
YmplY3QpCiAgICAgewotICAgICAgICBSZWZQdHI8SURCQW55PiBhbnkgPSBJREJBbnk6OmNyZWF0
ZUludmFsaWQoKTsKLSAgICAgICAgYW55LT5zZXQoaWRiT2JqZWN0KTsKLSAgICAgICAgcmV0dXJu
IGFueS5yZWxlYXNlKCk7Ci0gICAgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8SURCQW55PiBjcmVhdGUoUGFzc1JlZlB0cjxUPiBpZGJPYmplY3QpCi0g
ICAgewotICAgICAgICBSZWZQdHI8SURCQW55PiBhbnkgPSBJREJBbnk6OmNyZWF0ZUludmFsaWQo
KTsKKyAgICAgICAgUmVmUHRyPElEQkFueT4gYW55ID0gSURCQW55OjpjcmVhdGUoKTsKICAgICAg
ICAgYW55LT5zZXQoaWRiT2JqZWN0KTsKICAgICAgICAgcmV0dXJuIGFueS5yZWxlYXNlKCk7CiAg
ICAgfQpAQCAtODUsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgpOwogCiAgICAgLy8gU2V0IGNhbiBv
bmx5IGJlIGNhbGxlZCBvbmNlLgotICAgIHZvaWQgc2V0TnVsbCgpOworICAgIHZvaWQgc2V0KCk7
IC8vIEZvciAibnVsbCIuCiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJDdXJzb3I+KTsKICAg
ICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAgICAgdm9pZCBzZXQoUGFzc1Jl
ZlB0cjxJREJGYWN0b3J5Pik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuY3BwCmluZGV4IDUyOTQ1ZjguLmFlMGQx
MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJDdXJzb3IuY3BwCkBAIC0zOCw5ICszOCw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSURCQ3Vyc29yOjpJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW50ZXJmYWNlPiBiYWNrZW5kLCBJREJSZXF1ZXN0KiByZXF1ZXN0KQorSURCQ3Vyc29yOjpJ
REJDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQog
ICAgIDogbV9iYWNrZW5kKGJhY2tlbmQpCi0gICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKIHsKIH0K
IApAQCAtNzAsMTMgKzY5LDExIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1
cGRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlCiAgICAgcmV0dXJu
IHJlcXVlc3QucmVsZWFzZSgpOwogfQogCi12b2lkIElEQkN1cnNvcjo6Y29udGludWVGdW5jdGlv
bihQYXNzUmVmUHRyPElEQktleT4ga2V5KQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJz
b3I6OmNvbnRpbnVlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSkKIHsKLSAgICAvLyBGSVhNRTogV2UncmUgbm90IHVzaW5nIHRo
ZSBjb250ZXh0IGZyb20gd2hlbiBjb250aW51ZSB3YXMgY2FsbGVkLCB3aGljaCBtZWFucyB0aGUg
Y2FsbGJhY2sKLSAgICAvLyAgICAgICAgd2lsbCBiZSBvbiB0aGUgb3JpZ2luYWwgY29udGV4dCBv
cGVuQ3Vyc29yIHdhcyBjYWxsZWQgb24uIElzIHRoaXMgcmlnaHQ/Ci0gICAgaWYgKG1fcmVxdWVz
dC0+cmVzZXRSZWFkeVN0YXRlKCkpCi0gICAgICAgIG1fYmFja2VuZC0+Y29udGludWVGdW5jdGlv
bihrZXksIG1fcmVxdWVzdCk7Ci0gICAgLy8gRklYTUU6IEVsc2UgdGhyb3c/CisgICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55
OjpjcmVhdGUodGhpcykpOworICAgIG1fYmFja2VuZC0+Y29udGludWVGdW5jdGlvbihrZXksIHJl
cXVlc3QpOworICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAogUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJDdXJzb3I6OnJlbW92ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5oIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQkN1cnNvci5oCmluZGV4IDBjNDM4YzQuLmNjY2UwMDEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvc3RvcmFnZS9JREJDdXJzb3IuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29y
LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Miw3ICs0Myw3
IEBAIGNsYXNzIElEQlJlcXVlc3Q7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xh
c3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCi1jbGFzcyBJREJDdXJzb3IgOiBwdWJsaWMgUmVm
Q291bnRlZDxJREJDdXJzb3I+IHsKK2NsYXNzIElEQkN1cnNvciA6IHB1YmxpYyBUaHJlYWRTYWZl
U2hhcmVkPElEQkN1cnNvcj4gewogcHVibGljOgogICAgIGVudW0gRGlyZWN0aW9uIHsKICAgICAg
ICAgTkVYVCA9IDAsCkBAIC01MCwyNSArNTEsMjQgQEAgcHVibGljOgogICAgICAgICBQUkVWID0g
MiwKICAgICAgICAgUFJFVl9OT19EVVBMSUNBVEUgPSAzLAogICAgIH07Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCQ3Vyc29yPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50
ZXJmYWNlPiBiYWNrZW5kLCBJREJSZXF1ZXN0KiByZXF1ZXN0KQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPElEQkN1cnNvcj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVyZmFj
ZT4gYmFja2VuZCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCQ3Vyc29y
KGJhY2tlbmQsIHJlcXVlc3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJz
b3IoYmFja2VuZCkpOwogICAgIH0KLSAgICB+SURCQ3Vyc29yKCk7CisgICAgdmlydHVhbCB+SURC
Q3Vyc29yKCk7CiAKICAgICAvLyBJbXBsZW1lbnQgdGhlIElETAotICAgIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbigpIGNvbnN0OwotICAgIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkoKSBjb25zdDsK
LSAgICBQYXNzUmVmUHRyPElEQkFueT4gdmFsdWUoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IHVwZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+KTsKLSAgICB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0
cjxJREJLZXk+ID0gMCk7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiByZW1vdmUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
KCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4ga2V5KCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkFueT4gdmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gdXBkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBjb250aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPElEQktleT4gPSAwKTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gcmVtb3ZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBJREJDdXJzb3IoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiwgSURC
UmVxdWVzdCopOworICAgIGV4cGxpY2l0IElEQkN1cnNvcihQYXNzUmVmUHRyPElEQkN1cnNvckJh
Y2tlbmRJbnRlcmZhY2U+KTsKIAogICAgIFJlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNl
PiBtX2JhY2tlbmQ7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IG1fcmVxdWVzdDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJz
b3IuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKaW5kZXggMjMyODQyYi4uMzcw
MmVmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQkN1cnNvci5pZGwKQEAgLTM4LDcgKzM4LDcgQEAgbW9kdWxlIHN0b3Jh
Z2UgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCQW55IHZhbHVlOwogCiAgICAgICAg
IFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IHVwZGF0ZShpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUpOwotICAgICAgICBbSW1wbGVtZW50YXRpb25GdW5j
dGlvbj1jb250aW51ZUZ1bmN0aW9uXSB2b2lkIGNvbnRpbnVlKGluIFtPcHRpb25hbF0gSURCS2V5
IGtleSk7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1l
bnRhdGlvbkZ1bmN0aW9uPWNvbnRpbnVlRnVuY3Rpb25dIElEQlJlcXVlc3QgY29udGludWUoaW4g
W09wdGlvbmFsXSBJREJLZXkga2V5KTsKICAgICAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlJlcXVlc3QgcmVtb3ZlKCk7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFu
Z2UuaWRsCmluZGV4IDhlNGQ2MWYuLjZkYWFlYzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJLZXlSYW5nZS5pZGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmlkbApA
QCAtMzksMTEgKzM5LDEwIEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIElEQktleSByaWdodDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVk
IHNob3J0IGZsYWdzOwogCi0gICAgICAgIC8vIEZJWE1FOiBNYWtlIENsYXNzTWV0aG9kIHdvcmsg
Zm9yIEpTQyBhcyB3ZWxsLgotICAgICAgICBbQ2xhc3NNZXRob2RdIElEQktleVJhbmdlIG9ubHko
aW4gSURCS2V5IHZhbHVlKTsKLSAgICAgICAgW0NsYXNzTWV0aG9kXSBJREJLZXlSYW5nZSBsZWZ0
Qm91bmQoaW4gSURCS2V5IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3Blbik7Ci0gICAg
ICAgIFtDbGFzc01ldGhvZF0gSURCS2V5UmFuZ2UgcmlnaHRCb3VuZChpbiBJREJLZXkgYm91bmQs
IGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKTsKLSAgICAgICAgW0NsYXNzTWV0aG9kXSBJREJL
ZXlSYW5nZSBib3VuZChpbiBJREJLZXkgbGVmdCwgaW4gSURCS2V5IHJpZ2h0LCBpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gb3BlbkxlZnQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuUmlnaHQpOwor
ICAgICAgICBJREJLZXlSYW5nZSBvbmx5KGluIElEQktleSB2YWx1ZSk7CisgICAgICAgIElEQktl
eVJhbmdlIGxlZnRCb3VuZChpbiBJREJLZXkgYm91bmQsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBv
cGVuKTsKKyAgICAgICAgSURCS2V5UmFuZ2UgcmlnaHRCb3VuZChpbiBJREJLZXkgYm91bmQsIGlu
IFtPcHRpb25hbF0gYm9vbGVhbiBvcGVuKTsKKyAgICAgICAgSURCS2V5UmFuZ2UgYm91bmQoaW4g
SURCS2V5IGxlZnQsIGluIElEQktleSByaWdodCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9wZW5M
ZWZ0LCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3BlblJpZ2h0KTsKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCUmVxdWVzdC5jcHAKaW5kZXggMzUxM2MxNy4uOTRlZjdlNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0
LmNwcApAQCAtNDgsNzIgKzQ4LDcxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIElEQlJlcXVlc3Q6
OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQogICAg
ICwgbV9zb3VyY2Uoc291cmNlKQorICAgICwgbV9yZXN1bHQoSURCQW55OjpjcmVhdGUoKSkKICAg
ICAsIG1fdGltZXIodGhpcywgJklEQlJlcXVlc3Q6OnRpbWVyRmlyZWQpCiAgICAgLCBtX2Fib3J0
ZWQoZmFsc2UpCi0gICAgLCBtX3JlYWR5U3RhdGUoTE9BRElORykKKyAgICAsIG1fcmVhZHlTdGF0
ZShJTklUSUFMKQogewogfQogCiBJREJSZXF1ZXN0Ojp+SURCUmVxdWVzdCgpCiB7Ci0gICAgYWJv
cnQoKTsKLX0KLQotYm9vbCBJREJSZXF1ZXN0OjpyZXNldFJlYWR5U3RhdGUoKQotewotICAgIGlm
IChtX2Fib3J0ZWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBBU1NFUlQobV9yZWFkeVN0
YXRlID09IERPTkUpOwotICAgIG1fcmVhZHlTdGF0ZSA9IExPQURJTkc7Ci0gICAgcmV0dXJuIHRy
dWU7CisgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBET05FKQorICAgICAgICBhYm9ydCgpOwogfQog
CiB2b2lkIElEQlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBl
cnJvcikKIHsKLSAgICBzY2hlZHVsZUV2ZW50KDAsIGVycm9yKTsKKyAgICBvbkV2ZW50Q29tbW9u
KCk7CisgICAgbV9lcnJvciA9IGVycm9yOwogfQogCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vz
cygpCiB7Ci0gICAgc2NoZWR1bGVFdmVudChJREJBbnk6OmNyZWF0ZU51bGwoKSwgMCk7CisgICAg
b25FdmVudENvbW1vbigpOworICAgIG1fcmVzdWx0LT5zZXQoKTsKIH0KIAogdm9pZCBJREJSZXF1
ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBiYWNr
ZW5kKQogewotICAgIHNjaGVkdWxlRXZlbnQoSURCQW55OjpjcmVhdGUoSURCQ3Vyc29yOjpjcmVh
dGUoYmFja2VuZCwgdGhpcykpLCAwKTsKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1
bHQtPnNldChJREJDdXJzb3I6OmNyZWF0ZShiYWNrZW5kKSk7CiB9CiAKIHZvaWQgSURCUmVxdWVz
dDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlPiBiYWNr
ZW5kKQogewotICAgIHNjaGVkdWxlRXZlbnQoSURCQW55OjpjcmVhdGUoSURCRGF0YWJhc2U6OmNy
ZWF0ZShiYWNrZW5kKSksIDApOworICAgIG9uRXZlbnRDb21tb24oKTsKKyAgICBtX3Jlc3VsdC0+
c2V0KElEQkRhdGFiYXNlOjpjcmVhdGUoYmFja2VuZCkpOwogfQogCiB2b2lkIElEQlJlcXVlc3Q6
Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkK
IHsKLSAgICBzY2hlZHVsZUV2ZW50KElEQkFueTo6Y3JlYXRlKElEQkluZGV4OjpjcmVhdGUoYmFj
a2VuZCkpLCAwKTsKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHQtPnNldChJREJJ
bmRleDo6Y3JlYXRlKGJhY2tlbmQpKTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3Mo
UGFzc1JlZlB0cjxJREJLZXk+IGlkYktleSkKIHsKLSAgICBzY2hlZHVsZUV2ZW50KElEQkFueTo6
Y3JlYXRlKGlkYktleSksIDApOworICAgIG9uRXZlbnRDb21tb24oKTsKKyAgICBtX3Jlc3VsdC0+
c2V0KGlkYktleSk7CiB9CiAKIHZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQogewotICAgIHNjaGVkdWxl
RXZlbnQoSURCQW55OjpjcmVhdGUoSURCT2JqZWN0U3RvcmU6OmNyZWF0ZShiYWNrZW5kKSksIDAp
OworICAgIG9uRXZlbnRDb21tb24oKTsKKyAgICBtX3Jlc3VsdC0+c2V0KElEQk9iamVjdFN0b3Jl
OjpjcmVhdGUoYmFja2VuZCkpOwogfQogCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVlKQogewot
ICAgIHNjaGVkdWxlRXZlbnQoSURCQW55OjpjcmVhdGUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKSwg
MCk7CisgICAgb25FdmVudENvbW1vbigpOworICAgIG1fcmVzdWx0LT5zZXQoc2VyaWFsaXplZFNj
cmlwdFZhbHVlKTsKIH0KIAogdm9pZCBJREJSZXF1ZXN0OjphYm9ydCgpCiB7CiAgICAgbV90aW1l
ci5zdG9wKCk7CiAgICAgbV9hYm9ydGVkID0gdHJ1ZTsKLSAgICBtX3BlbmRpbmdFdmVudHMuY2xl
YXIoKTsKLQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBjYW5jZWwgYW55IHBlbmRpbmcgd29y
ayBiZWluZyBkb25lIGluIHRoZSBiYWNrZW5kLgogfQogCkBAIC0xNDEsNDcgKzE0MCwzOCBAQCBF
dmVudFRhcmdldERhdGEqIElEQlJlcXVlc3Q6OmVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpCiAKIHZv
aWQgSURCUmVxdWVzdDo6dGltZXJGaXJlZChUaW1lcjxJREJSZXF1ZXN0PiopCiB7CisgICAgQVNT
RVJUKG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKICAgICBBU1NFUlQobV9zZWxmUmVmKTsKICAgICBB
U1NFUlQoIW1fYWJvcnRlZCk7Ci0gICAgQVNTRVJUKG1fcGVuZGluZ0V2ZW50cy5zaXplKCkpOwog
CiAgICAgLy8gV2UgbmVlZCB0byBrZWVwIHNlbGYtcmVmZXJlbmNpbmcgb3Vyc2VsZiwgb3RoZXJ3
aXNlIGl0J3MgcG9zc2libGUgd2UnbGwgYmUgZGVsZXRlZC4KICAgICAvLyBCdXQgaW4gc29tZSBj
YXNlcywgc3VzcGVuZCgpIGNvdWxkIGJlIGNhbGxlZCB3aGlsZSB3ZSdyZSBkaXNwYXRjaGluZyBh
biBldmVudCwgc28gd2UKICAgICAvLyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHJlc3VtZSgpIGRv
ZXNuJ3QgcmUtc3RhcnQgdGhlIHRpbWVyIGJhc2VkIG9uIG1fc2VsZlJlZiBiZWluZyBzZXQuCiAg
ICAgUmVmUHRyPElEQlJlcXVlc3Q+IHNlbGZSZWYgPSBtX3NlbGZSZWYucmVsZWFzZSgpOwogCi0g
ICAgVmVjdG9yPFBlbmRpbmdFdmVudD4gcGVuZGluZ0V2ZW50czsKLSAgICBwZW5kaW5nRXZlbnRz
LnN3YXAobV9wZW5kaW5nRXZlbnRzKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBlbmRp
bmdFdmVudHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUGVuZGluZ0V2ZW50IHBlbmRpbmdFdmVu
dCA9IHBlbmRpbmdFdmVudHNbaV07Ci0gICAgICAgIGlmIChwZW5kaW5nRXZlbnQubV9lcnJvcikg
ewotICAgICAgICAgICAgQVNTRVJUKCFwZW5kaW5nRXZlbnQubV9yZXN1bHQpOwotICAgICAgICAg
ICAgZGlzcGF0Y2hFdmVudChJREJFcnJvckV2ZW50OjpjcmVhdGUobV9zb3VyY2UsICpwZW5kaW5n
RXZlbnQubV9lcnJvcikpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQVNTRVJUKHBl
bmRpbmdFdmVudC5tX3Jlc3VsdC0+dHlwZSgpICE9IElEQkFueTo6VW5kZWZpbmVkVHlwZSk7Ci0g
ICAgICAgICAgICBkaXNwYXRjaEV2ZW50KElEQlN1Y2Nlc3NFdmVudDo6Y3JlYXRlKG1fc291cmNl
LCBwZW5kaW5nRXZlbnQubV9yZXN1bHQpKTsKLSAgICAgICAgfQorICAgIGlmIChtX2Vycm9yKSB7
CisgICAgICAgIEFTU0VSVChtX3Jlc3VsdC0+dHlwZSgpID09IElEQkFueTo6VW5kZWZpbmVkVHlw
ZSk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoSURCRXJyb3JFdmVudDo6Y3JlYXRlKG1fc291cmNl
LCAqbV9lcnJvcikpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFTU0VSVChtX3Jlc3VsdC0+dHlw
ZSgpICE9IElEQkFueTo6VW5kZWZpbmVkVHlwZSk7CisgICAgICAgIGRpc3BhdGNoRXZlbnQoSURC
U3VjY2Vzc0V2ZW50OjpjcmVhdGUobV9zb3VyY2UsIG1fcmVzdWx0KSk7CiAgICAgfQogfQogCi12
b2lkIElEQlJlcXVlc3Q6OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxJREJBbnk+IHJlc3VsdCwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKK3ZvaWQgSURCUmVxdWVzdDo6b25F
dmVudENvbW1vbigpCiB7CiAgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA8IERPTkUpOwotICAgIEFT
U0VSVCghIW1fc2VsZlJlZiA9PSBtX3RpbWVyLmlzQWN0aXZlKCkpOworICAgIEFTU0VSVChtX3Jl
c3VsdC0+dHlwZSgpID09IElEQkFueTo6VW5kZWZpbmVkVHlwZSk7CisgICAgQVNTRVJUKCFtX2Vy
cm9yKTsKKyAgICBBU1NFUlQoIW1fc2VsZlJlZik7CisgICAgQVNTRVJUKCFtX3RpbWVyLmlzQWN0
aXZlKCkpOwogCiAgICAgaWYgKG1fYWJvcnRlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUGVu
ZGluZ0V2ZW50IHBlbmRpbmdFdmVudDsKLSAgICBwZW5kaW5nRXZlbnQubV9yZXN1bHQgPSByZXN1
bHQ7Ci0gICAgcGVuZGluZ0V2ZW50Lm1fZXJyb3IgPSBlcnJvcjsKLSAgICBtX3BlbmRpbmdFdmVu
dHMuYXBwZW5kKHBlbmRpbmdFdmVudCk7Ci0KICAgICBtX3JlYWR5U3RhdGUgPSBET05FOwotICAg
IGlmICghbV90aW1lci5pc0FjdGl2ZSgpKSB7Ci0gICAgICAgIG1fc2VsZlJlZiA9IHRoaXM7Ci0g
ICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgIH0KKyAgICBtX3NlbGZSZWYgPSB0
aGlzOworICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAppbmRleCA5YjBlYTdlLi5kZGZkY2YzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJS
ZXF1ZXN0LmgKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRl
ICJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01MCwxNSArNDksMTYgQEAgcHVibGlj
OgogICAgIC8vIERlZmluZWQgaW4gdGhlIElETAogICAgIHZvaWQgYWJvcnQoKTsKICAgICBlbnVt
IFJlYWR5U3RhdGUgeworICAgICAgICBJTklUSUFMID0gMCwKICAgICAgICAgTE9BRElORyA9IDEs
CiAgICAgICAgIERPTkUgPSAyCiAgICAgfTsKICAgICB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CisgICAgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZUVycm9yPiBlcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3I7IH0KKyAgICBQYXNzUmVm
UHRyPElEQkFueT4gcmVzdWx0KCkgeyByZXR1cm4gbV9yZXN1bHQ7IH0KICAgICBERUZJTkVfQVRU
UklCVVRFX0VWRU5UX0xJU1RFTkVSKHN1Y2Nlc3MpOwogICAgIERFRklORV9BVFRSSUJVVEVfRVZF
TlRfTElTVEVORVIoZXJyb3IpOwogCi0gICAgYm9vbCByZXNldFJlYWR5U3RhdGUoKTsKLQogICAg
IC8vIElEQkNhbGxiYWNrcwogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VFcnJvcj4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoKTsgLy8gRm9yICJu
dWxsIi4KQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICBJREJSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlKTsKIAogICAgIHZvaWQg
dGltZXJGaXJlZChUaW1lcjxJREJSZXF1ZXN0PiopOwotICAgIHZvaWQgc2NoZWR1bGVFdmVudChQ
YXNzUmVmUHRyPElEQkFueT4gcmVzdWx0LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsK
KyAgICB2b2lkIG9uRXZlbnRDb21tb24oKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0CiAgICAgdmly
dHVhbCB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQpAQCAtOTMsMTEgKzkzLDggQEAg
cHJpdmF0ZToKIAogICAgIFJlZlB0cjxJREJBbnk+IG1fc291cmNlOwogCi0gICAgc3RydWN0IFBl
bmRpbmdFdmVudCB7Ci0gICAgICAgIFJlZlB0cjxJREJBbnk+IG1fcmVzdWx0OwotICAgICAgICBS
ZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gbV9lcnJvcjsKLSAgICB9OwotICAgIFZlY3RvcjxQZW5k
aW5nRXZlbnQ+IG1fcGVuZGluZ0V2ZW50czsKKyAgICBSZWZQdHI8SURCQW55PiBtX3Jlc3VsdDsK
KyAgICBSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gbV9lcnJvcjsKIAogICAgIC8vIFVzZWQgdG8g
ZmlyZSBldmVudHMgYXN5bmNocm9ub3VzbHkuCiAgICAgVGltZXI8SURCUmVxdWVzdD4gbV90aW1l
cjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmlkbCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJSZXF1ZXN0LmlkbAppbmRleCAzMDM2YjZiLi45ZDdlMGU0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5pZGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QlJlcXVlc3QuaWRsCkBAIC0zNSwxMCArMzUsMTUgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAg
ICB2b2lkIGFib3J0KCk7CiAKICAgICAgICAgLy8gU3RhdGVzCisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IElOSVRJQUwgPSAwOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMT0FE
SU5HID0gMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRE9ORSA9IDI7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOwogCisgICAgICAg
IC8vIFBvc3NpYmxlIHJlc3VsdHMKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkRhdGFi
YXNlRXJyb3IgZXJyb3I7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJREJBbnkgcmVzdWx0
OworCiAgICAgICAgIC8vIEV2ZW50cwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBv
bnN1Y2Nlc3M7CiAgICAgICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9uZXJyb3I7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaCBiL1dlYkNvcmUvc3RvcmFn
ZS9JREJUcmFuc2FjdGlvbi5oCmluZGV4IDBkNmYzZWEuLjNjN2Y5ZGQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJU
cmFuc2FjdGlvbi5oCkBAIC01NCw4ICs1NCw3IEBAIHB1YmxpYzoKICAgICBlbnVtIE1vZGUgewog
ICAgICAgICBSRUFEX1dSSVRFID0gMCwKICAgICAgICAgUkVBRF9PTkxZID0gMSwKLSAgICAgICAg
U05BUFNIT1RfUkVBRCA9IDIsCi0gICAgICAgIFZFUlNJT05fQ0hBTkdFID0gMworICAgICAgICBT
TkFQU0hPVF9SRUFEID0gMgogICAgIH07CiAKICAgICB1bnNpZ25lZCBzaG9ydCBtb2RlKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaWRsIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQlRyYW5zYWN0aW9uLmlkbAppbmRleCBjZGY5ZjYzLi5hMzkwN2RjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCVHJhbnNhY3Rpb24uaWRsCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJUcmFuc2FjdGlvbi5pZGwKQEAgLTMzLDggKzMzLDYgQEAgbW9kdWxlIHN0
b3JhZ2UgewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBSRUFEX1dSSVRFID0gMDsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgUkVBRF9PTkxZID0gMTsKICAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgU05BUFNIT1RfUkVBRCA9IDI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFZFUlNJT05fQ0hBTkdFID0gMzsKLQogICAgICAgICAvLyBQcm9wZXJ0aWVzCiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBtb2RlOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgSURCRGF0YWJhc2UgZGI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmluZGV4IDM3
MjNmOWEuLmZjNmM5ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAj
aW5jbHVkZSAiU1ZHU2hhZG93VHJlZUVsZW1lbnRzLmgiCiAjaW5jbHVkZSAiU1ZHU3ltYm9sRWxl
bWVudC5oIgogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKLSNpbmNsdWRlICJYTUxEb2N1bWVudFBh
cnNlci5oIgogI2luY2x1ZGUgIlhNTFNlcmlhbGl6ZXIuaCIKIAogLy8gRHVtcCBTVkdFbGVtZW50
SW5zdGFuY2Ugb2JqZWN0IHRyZWUgLSB1c2VmdWwgdG8gZGVidWcgaW5zdGFuY2VSb290IHByb2Js
ZW1zCkBAIC0xMjEsMTQgKzEyMCwxNCBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6Omluc2VydGVkSW50
b0RvY3VtZW50KCkKIHsKICAgICAvLyBUaGlzIGZ1bmN0aW9ucyBleGlzdHMgdG8gYXNzdXJlIGFz
c3VtcHRpb25zIG1hZGUgaW4gdGhlIGNvZGUgcmVnYXJkaW5nIFNWR0VsZW1lbnRJbnN0YW5jZSBj
cmVhdGlvbi9kZXN0cnVjdGlvbiBhcmUgc2F0aXNmaWVkLgogICAgIFNWR1N0eWxlZFRyYW5zZm9y
bWFibGVFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpOwotICAgIEFTU0VSVCghbV90YXJn
ZXRFbGVtZW50SW5zdGFuY2UgfHwgKChkb2N1bWVudCgpLT5pc1NWR0RvY3VtZW50KCkgfHwgZG9j
dW1lbnQoKS0+aXNYSFRNTERvY3VtZW50KCkpICYmICFzdGF0aWNfY2FzdDxYTUxEb2N1bWVudFBh
cnNlcio+KGRvY3VtZW50KCktPnBhcnNlcigpKS0+d2VsbEZvcm1lZCgpKSk7CisgICAgQVNTRVJU
KCFtX3RhcmdldEVsZW1lbnRJbnN0YW5jZSk7CiAgICAgQVNTRVJUKCFtX2lzUGVuZGluZ1Jlc291
cmNlKTsKIH0KIAogdm9pZCBTVkdVc2VFbGVtZW50OjpyZW1vdmVkRnJvbURvY3VtZW50KCkKIHsK
LSAgICBTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgp
OwogICAgIG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlID0gMDsKKyAgICBTVkdTdHlsZWRUcmFuc2Zv
cm1hYmxlRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCiB2b2lkIFNWR1VzZUVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CkBAIC02MDksOCArNjA4LDggQEAgdm9pZCBTVkdVc2VFbGVtZW50OjphdHRhY2goKQogCiB2b2lk
IFNWR1VzZUVsZW1lbnQ6OmRldGFjaCgpCiB7Ci0gICAgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVs
ZW1lbnQ6OmRldGFjaCgpOwogICAgIG1fdGFyZ2V0RWxlbWVudEluc3RhbmNlID0gMDsKKyAgICBT
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAKIHN0YXRpYyBib29s
IGlzRGlyZWN0UmVmZXJlbmNlKE5vZGUqIG4pCmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFy
dHkvUkVBRE1FLnR4dCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9SRUFETUUudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzMTFlMTBhLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvdGhpcmRw
YXJ0eS9SRUFETUUudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGhpcyBkaXJl
Y3RvcnkgaXMgaW50ZW5kZWQgdG8gY29udGFpbiBjb3BpZXMgb2YgdGhpcmQtcGFydHkgbGlicmFy
aWVzIHVzZWQKLWJ5IFdlYkNvcmUsIGluIHBhcnRpY3VsYXIgdGhvc2Ugd2hpY2ggbWF5IHJlcXVp
cmUgc29tZSBtb2RpZmljYXRpb24gaW4KLW9yZGVyIHRvIGluY29ycG9yYXRlLgotCi1UaGUgY3Vy
cmVudCBjb252ZW50aW9uIGlzIHRvIGZ1bGx5IHNjb3BlIHRoZSBpbmNsdWRlIHBhdGhzIG9mIGhl
YWRlcnMsIGluCi1vcmRlciB0byBhdm9pZCBjb2xsaXNpb25zIHdpdGggb3RoZXIgV2ViQ29yZSBo
ZWFkZXJzLiBGb3IgZXhhbXBsZSwgYSBmaWxlCi1pbiBXZWJDb3JlIHVzaW5nIHRoZSBHTFUgdGVz
c2VsbGF0b3Igc291cmNlcyB3b3VsZCB1c2UKLQotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2lu
dGVybmFsX2dsdS5oIgotCi1IZWFkZXIgcmVmZXJlbmNlcyBpbiBzb3VyY2UgZmlsZXMgaW4gdGhp
cyBkaXJlY3RvcnkgbmVlZCB0byBiZSBzaW1pbGFybHkKLW1vZGlmaWVkLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS90aGlyZHBhcnR5L2dsdS9MSUNFTlNFLnR4dCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9n
bHUvTElDRU5TRS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1OGFlMzguLjAw
MDAwMDAKLS0tIGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9MSUNFTlNFLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDMxICswLDAgQEAKLVNHSSBGUkVFIFNPRlRXQVJFIExJQ0VOU0UgQiAoVmVyc2lv
biAyLjAsIFNlcHQuIDE4LCAyMDA4KSAKLQotQ29weXJpZ2h0IChDKSBbZGF0ZXMgb2YgZmlyc3Qg
cHVibGljYXRpb25dIFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsCi1SaWdodHMgUmVzZXJ2ZWQu
Ci0KLVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZwotYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg
ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0iU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29m
dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi13aXRob3V0IGxpbWl0YXRpb24g
dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi1kaXN0cmli
dXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg
dG8KLXBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBk
byBzbywgc3ViamVjdCB0bwotdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotCi1UaGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSBpbmNsdWRpbmcgdGhlIGRhdGVzIG9mIGZpcnN0IHB1YmxpY2F0aW9u
Ci1hbmQgZWl0aGVyIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugb3IgYSByZWZlcmVuY2UgdG8gSFlQ
RVJMSU5LCi0iaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3RzL0ZyZWVCLyJodHRwOi8vb3NzLnNn
aS5jb20vcHJvamVjdHMvRnJlZUIvCi1zaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y
IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotU29mdHdhcmUuCi0KLVRIRSBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAotRVhQUkVT
UyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT
IE9GCi1NRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO
RAotTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBTSUxJQ09OIEdSQVBISUNTLCBJ
TkMuIEJFIExJQUJMRQotRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GCi1DT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS
SVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04KLVdJVEggVEhFIFNPRlRXQVJFIE9S
IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotCi1FeGNlcHQgYXMg
Y29udGFpbmVkIGluIHRoaXMgbm90aWNlLCB0aGUgbmFtZSBvZiBTaWxpY29uIEdyYXBoaWNzLAot
SW5jLiBzaGFsbCBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBvdGhlcndpc2UgdG8gcHJv
bW90ZSB0aGUKLXNhbGUsIHVzZSBvciBvdGhlciBkZWFsaW5ncyBpbiB0aGlzIFNvZnR3YXJlIHdp
dGhvdXQgcHJpb3Igd3JpdHRlbgotYXV0aG9yaXphdGlvbiBmcm9tIFNpbGljb24gR3JhcGhpY3Ms
IEluYy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvUkVBRE1FLndlYmtpdCBi
L1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvUkVBRE1FLndlYmtpdApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2ZjYWM4NC4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1
L1JFQURNRS53ZWJraXQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGlzIGlzIGEg
bmVhcmx5IHZlcmJhdGltIGNvcHkgb2YgdGhlIEdMVSB0ZXNzZWxsYXRvciBzb3VyY2UgY29kZSBm
cm9tCi1TR0kncyBPcGVuR0wgU2FtcGxlIEltcGxlbWVudGF0aW9uIGF0Ci1odHRwOi8vb3NzLnNn
aS5jb20vcHJvamVjdHMvb2dsLXNhbXBsZS8gLiBQZXIKLWh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9q
ZWN0cy9GcmVlQi8gLCB0aGUgY29kZSBpcyBjb3ZlcmVkIHVuZGVyIHRoZSBTR0kKLUZyZWUgU29m
dHdhcmUgTGljZW5zZSBCLCB2ZXJzaW9uIDIuMCwgYSBjb3B5IG9mIHdoaWNoIGlzIGluCi1MSUNF
TlNFLnR4dCBpbiB0aGlzIGRpcmVjdG9yeS4KLQotVGhlIGZvbGxvd2luZyBjaGFuZ2VzIHdlcmUg
bWFkZSBpbiBvcmRlciB0byBpbmNvcnBvcmF0ZSB0aGlzIGNvZGU6Ci0KLSAgLSBUaGUgYWRkaXRp
b24gb2YgYSBzaW1wbGlmaWVkIGdsdW9zLmggdG8gZWxpbWluYXRlIG9wZXJhdGluZyBzeXN0ZW0K
LSAgICBkZXBlbmRlbmNpZXMuCi0KLSAgLSBUaGUgcmVtb3ZhbCBvZiBpbmNsdXNpb24gb2YgR0wv
Z2x1LmggYW5kIHJlcGxhY2VtZW50IHdpdGggYW4KLSAgICBpbmNsdWRlIG9mIGludGVybmFsX2ds
dS5oLgotCi0gIC0gSW5jbHVkZXMgd2VyZSBtb2RpZmllZCB0byBiZSBzY29wZWQgd2l0aGluIHRo
aXJkcGFydHkvZ2x1LyBhbmQKLSAgICB0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzLy4KLQotICAtIFRo
ZSBlbnRyeSBwb2ludHMgdG8gdGhlIHRlc3NlbGxhdG9yIHdlcmUgcHJlZml4ZWQgd2l0aCBpbnRl
cm5hbF8KLSAgICB0byBhdm9pZCBzeW1ib2wgY29sbGlzaW9ucyB3aXRoIGFueSBob3N0IE9TIHZl
cnNpb24gb2YgR0xVLgotCi0gIC0gSW4gdGVzcy5jLCB0aGUgb2Jzb2xldGUgZW50cnkgcG9pbnRz
IGdsdUJlZ2luUG9seWdvbiwKLSAgICBnbHVOZXh0Q29udG91ciBhbmQgZ2x1RW5kUG9seWdvbiBp
biB0ZXNzLmMgd2VyZSAjaWYgMCdkIG91dC4KLSAgICBEZWZhdWx0IGJyYW5jaGVzIHdlcmUgYWRk
ZWQgdG8gdGhlIHN3aXRjaCBzdGF0ZW1lbnRzIGluIEdvdG9TdGF0ZS4KLQotICAtIEluIG1lbWFs
bG9jLmgsIHRoZSBpbmNsdWRlIG9mIG1hbGxvYy5oIHdhcyBjaGFuZ2VkIHRvIGFuIGluY2x1ZGUK
LSAgICBvZiBzdGRsaWIuaC4KLQotICAtIEluIG5vcm1hbC5jLCBhbiB1bnVzZWQgdmFyaWFibGUg
InciIHdhcyByZW1vdmVkIGZyb20KLSAgICBfX2dsX3Byb2plY3RQb2x5Z29uLiAjaWYgZ3VhcmRz
IHdlcmUgcGxhY2VkIGFyb3VuZCB0aGUgZGVmaW5pdGlvbgotICAgIG9mIHRoZSB1bnVzZWQgTm9y
bWFsaXplIGZ1bmN0aW9uLgotCi0gIC0gSW4gcHJpb3JpdHlxLWhlYXAuYywgYW4gI2luY2x1ZGUg
b2YgPGxpbWl0cy5oPiB3YXMgYWRkZWQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFydHkv
Z2x1L2dsdW9zLmggYi9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2dsdW9zLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDYwMGRjMGIuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS90aGlyZHBh
cnR5L2dsdS9nbHVvcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAyMDEwLCBHb29nbGUgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdM
VU9TX0hfCi0jZGVmaW5lIEdMVU9TX0hfCi0KLS8vIFRoaXMgaGVhZGVyIHByb3ZpZGVzIHRoZSBt
aW5pbWFsIGRlZmluaXRpb25zIG5lZWRlZCB0byBjb21waWxlIHRoZQotLy8gR0xVIHRlc3NlbGxh
dG9yIHNvdXJjZXMuCi0jZGVmaW5lIEdMQVBJRU5UUlkKLQotdHlwZWRlZiB1bnNpZ25lZCBjaGFy
IEdMYm9vbGVhbjsKLXR5cGVkZWYgZG91YmxlIEdMZG91YmxlOwotdHlwZWRlZiB1bnNpZ25lZCBp
bnQgR0xlbnVtOwotdHlwZWRlZiBmbG9hdCBHTGZsb2F0OwotdHlwZWRlZiB2b2lkIEdMdm9pZDsK
LQotI2VuZGlmICAvLyBHTFVPU19IXwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBhcnR5L2ds
dS9pbnRlcm5hbF9nbHUuaCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvaW50ZXJuYWxfZ2x1LmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2OTViMGIuLjAwMDAwMDAKLS0tIGEvV2Vi
Q29yZS90aGlyZHBhcnR5L2dsdS9pbnRlcm5hbF9nbHUuaAorKysgL2Rldi9udWxsCkBAIC0xLDE0
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IDIwMTAsIEdvb2dsZSBJbmMuCi0gKiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0
OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
Ci0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLS8vIFRoaXMgaGVhZGVyIGlzIGEgc2tlbGV0b24gc3Vic3RpdHV0ZSBmb3IgR0wv
Z2x1Lmggd2hpY2ggY29udGFpbnMKLS8vIG9ubHkgdGhlIGRlZmluaXRpb25zLCBjb25zdGFudHMg
YW5kIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBuZWNlc3NhcnkKLS8vIHRvIGNvbXBpbGUgdGhlIEdM
VSB0ZXNzZWxsYXRvci4KLQotI2lmbmRlZiBJTlRFUk5BTF9HTFVfSF8KLSNkZWZpbmUgSU5URVJO
QUxfR0xVX0hfCi0KLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9nbHVvcy5oIgotCi0vKiBQcmlt
aXRpdmVzICovCi0jZGVmaW5lIEdMX0xJTkVfTE9PUCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAweDAwMDIKLSNkZWZpbmUgR0xfVFJJQU5HTEVTICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDB4MDAwNAotI2RlZmluZSBHTF9UUklBTkdMRV9TVFJJUCAgICAgICAgICAgICAgICAgICAgICAg
MHgwMDA1Ci0jZGVmaW5lIEdMX1RSSUFOR0xFX0ZBTiAgICAgICAgICAgICAgICAgICAgICAgICAw
eDAwMDYKLQotLyogRXJyb3JDb2RlICovCi0jZGVmaW5lIEdMVV9JTlZBTElEX0VOVU0gICAgICAg
ICAgICAgICAgICAgICAxMDA5MDAKLSNkZWZpbmUgR0xVX0lOVkFMSURfVkFMVUUgICAgICAgICAg
ICAgICAgICAgIDEwMDkwMQotI2RlZmluZSBHTFVfT1VUX09GX01FTU9SWSAgICAgICAgICAgICAg
ICAgICAgMTAwOTAyCi0KLS8qIFRlc3NDYWxsYmFjayAqLwotI2RlZmluZSBHTFVfVEVTU19CRUdJ
TiAgICAgICAgICAgICAgICAgICAgICAgMTAwMTAwCi0jZGVmaW5lIEdMVV9CRUdJTiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMDAxMDAKLSNkZWZpbmUgR0xVX1RFU1NfVkVSVEVYICAgICAg
ICAgICAgICAgICAgICAgIDEwMDEwMQotI2RlZmluZSBHTFVfVkVSVEVYICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMTAwMTAxCi0jZGVmaW5lIEdMVV9URVNTX0VORCAgICAgICAgICAgICAgICAg
ICAgICAgICAxMDAxMDIKLSNkZWZpbmUgR0xVX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEwMDEwMgotI2RlZmluZSBHTFVfVEVTU19FUlJPUiAgICAgICAgICAgICAgICAgICAgICAg
MTAwMTAzCi0jZGVmaW5lIEdMVV9URVNTX0VER0VfRkxBRyAgICAgICAgICAgICAgICAgICAxMDAx
MDQKLSNkZWZpbmUgR0xVX0VER0VfRkxBRyAgICAgICAgICAgICAgICAgICAgICAgIDEwMDEwNAot
I2RlZmluZSBHTFVfVEVTU19DT01CSU5FICAgICAgICAgICAgICAgICAgICAgMTAwMTA1Ci0jZGVm
aW5lIEdMVV9URVNTX0JFR0lOX0RBVEEgICAgICAgICAgICAgICAgICAxMDAxMDYKLSNkZWZpbmUg
R0xVX1RFU1NfVkVSVEVYX0RBVEEgICAgICAgICAgICAgICAgIDEwMDEwNwotI2RlZmluZSBHTFVf
VEVTU19FTkRfREFUQSAgICAgICAgICAgICAgICAgICAgMTAwMTA4Ci0jZGVmaW5lIEdMVV9URVNT
X0VSUk9SX0RBVEEgICAgICAgICAgICAgICAgICAxMDAxMDkKLSNkZWZpbmUgR0xVX1RFU1NfRURH
RV9GTEFHX0RBVEEgICAgICAgICAgICAgIDEwMDExMAotI2RlZmluZSBHTFVfVEVTU19DT01CSU5F
X0RBVEEgICAgICAgICAgICAgICAgMTAwMTExCi0KLS8qIFRlc3NDb250b3VyICovCi0jZGVmaW5l
IEdMVV9DVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAxMjAKLSNkZWZpbmUgR0xV
X0NDVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMDEyMQotI2RlZmluZSBHTFVfSU5U
RVJJT1IgICAgICAgICAgICAgICAgICAgICAgICAgMTAwMTIyCi0jZGVmaW5lIEdMVV9FWFRFUklP
UiAgICAgICAgICAgICAgICAgICAgICAgICAxMDAxMjMKLSNkZWZpbmUgR0xVX1VOS05PV04gICAg
ICAgICAgICAgICAgICAgICAgICAgIDEwMDEyNAotCi0vKiBUZXNzUHJvcGVydHkgKi8KLSNkZWZp
bmUgR0xVX1RFU1NfV0lORElOR19SVUxFICAgICAgICAgICAgICAgIDEwMDE0MAotI2RlZmluZSBH
TFVfVEVTU19CT1VOREFSWV9PTkxZICAgICAgICAgICAgICAgMTAwMTQxCi0jZGVmaW5lIEdMVV9U
RVNTX1RPTEVSQU5DRSAgICAgICAgICAgICAgICAgICAxMDAxNDIKLQotLyogVGVzc0Vycm9yICov
Ci0jZGVmaW5lIEdMVV9URVNTX0VSUk9SMSAgICAgICAgICAgICAgICAgICAgICAxMDAxNTEKLSNk
ZWZpbmUgR0xVX1RFU1NfRVJST1IyICAgICAgICAgICAgICAgICAgICAgIDEwMDE1MgotI2RlZmlu
ZSBHTFVfVEVTU19FUlJPUjMgICAgICAgICAgICAgICAgICAgICAgMTAwMTUzCi0jZGVmaW5lIEdM
VV9URVNTX0VSUk9SNCAgICAgICAgICAgICAgICAgICAgICAxMDAxNTQKLSNkZWZpbmUgR0xVX1RF
U1NfRVJST1I1ICAgICAgICAgICAgICAgICAgICAgIDEwMDE1NQotI2RlZmluZSBHTFVfVEVTU19F
UlJPUjYgICAgICAgICAgICAgICAgICAgICAgMTAwMTU2Ci0jZGVmaW5lIEdMVV9URVNTX0VSUk9S
NyAgICAgICAgICAgICAgICAgICAgICAxMDAxNTcKLSNkZWZpbmUgR0xVX1RFU1NfRVJST1I4ICAg
ICAgICAgICAgICAgICAgICAgIDEwMDE1OAotI2RlZmluZSBHTFVfVEVTU19NSVNTSU5HX0JFR0lO
X1BPTFlHT04gICAgICAgMTAwMTUxCi0jZGVmaW5lIEdMVV9URVNTX01JU1NJTkdfQkVHSU5fQ09O
VE9VUiAgICAgICAxMDAxNTIKLSNkZWZpbmUgR0xVX1RFU1NfTUlTU0lOR19FTkRfUE9MWUdPTiAg
ICAgICAgIDEwMDE1MwotI2RlZmluZSBHTFVfVEVTU19NSVNTSU5HX0VORF9DT05UT1VSICAgICAg
ICAgMTAwMTU0Ci0jZGVmaW5lIEdMVV9URVNTX0NPT1JEX1RPT19MQVJHRSAgICAgICAgICAgICAx
MDAxNTUKLSNkZWZpbmUgR0xVX1RFU1NfTkVFRF9DT01CSU5FX0NBTExCQUNLICAgICAgIDEwMDE1
NgotCi0vKiBUZXNzV2luZGluZyAqLwotI2RlZmluZSBHTFVfVEVTU19XSU5ESU5HX09ERCAgICAg
ICAgICAgICAgICAgMTAwMTMwCi0jZGVmaW5lIEdMVV9URVNTX1dJTkRJTkdfTk9OWkVSTyAgICAg
ICAgICAgICAxMDAxMzEKLSNkZWZpbmUgR0xVX1RFU1NfV0lORElOR19QT1NJVElWRSAgICAgICAg
ICAgIDEwMDEzMgotI2RlZmluZSBHTFVfVEVTU19XSU5ESU5HX05FR0FUSVZFICAgICAgICAgICAg
MTAwMTMzCi0jZGVmaW5lIEdMVV9URVNTX1dJTkRJTkdfQUJTX0dFUV9UV08gICAgICAgICAxMDAx
MzQKLQotI2RlZmluZSBHTFVfVEVTU19NQVhfQ09PUkQgMS4wZTE1MAotCi10eXBlZGVmIHN0cnVj
dCBHTFV0ZXNzZWxhdG9yIEdMVXRlc3NlbGF0b3I7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0
ZXJuICJDIiB7Ci0jZW5kaWYKLQotZXh0ZXJuIEdMVXRlc3NlbGF0b3IgKiBHTEFQSUVOVFJZIGlu
dGVybmFsX2dsdU5ld1Rlc3Modm9pZCk7Ci1leHRlcm4gdm9pZCBHTEFQSUVOVFJZIGludGVybmFs
X2dsdURlbGV0ZVRlc3MoR0xVdGVzc2VsYXRvciAqdGVzcyk7Ci1leHRlcm4gdm9pZCBHTEFQSUVO
VFJZIGludGVybmFsX2dsdVRlc3NQcm9wZXJ0eShHTFV0ZXNzZWxhdG9yICp0ZXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xlbnVtIHdoaWNoLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xkb3VibGUg
dmFsdWUpOwotZXh0ZXJuIHZvaWQgR0xBUElFTlRSWSBpbnRlcm5hbF9nbHVHZXRUZXNzUHJvcGVy
dHkoR0xVdGVzc2VsYXRvciAqdGVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMZW51bSB3aGljaCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZG91YmxlICp2YWx1ZSk7Ci1leHRlcm4gdm9p
ZCBHTEFQSUVOVFJZIGludGVybmFsX2dsdVRlc3NOb3JtYWwoR0xVdGVzc2VsYXRvciAqdGVzcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGRvdWJsZSB4
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMZG91Ymxl
IHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xkb3Vi
bGUgeik7Ci1leHRlcm4gdm9pZCBHTEFQSUVOVFJZIGludGVybmFsX2dsdVRlc3NDYWxsYmFjayhH
TFV0ZXNzZWxhdG9yICp0ZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0xlbnVtIHdoaWNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdm9pZCAoR0xBUElFTlRSWSAqZm4pKCkpOwotZXh0ZXJuIHZvaWQg
R0xBUElFTlRSWSBpbnRlcm5hbF9nbHVUZXNzVmVydGV4KEdMVXRlc3NlbGF0b3IgKnRlc3MsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xkb3VibGUgY29v
cmRzWzNdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv
aWQgKmRhdGEpOwotZXh0ZXJuIHZvaWQgR0xBUElFTlRSWSBpbnRlcm5hbF9nbHVUZXNzQmVnaW5Q
b2x5Z29uKEdMVXRlc3NlbGF0b3IgKnRlc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0YSk7Ci1leHRlcm4gdm9pZCBHTEFQSUVO
VFJZIGludGVybmFsX2dsdVRlc3NCZWdpbkNvbnRvdXIoR0xVdGVzc2VsYXRvciAqdGVzcyk7Ci1l
eHRlcm4gdm9pZCBHTEFQSUVOVFJZIGludGVybmFsX2dsdVRlc3NFbmRDb250b3VyKEdMVXRlc3Nl
bGF0b3IgKnRlc3MpOwotZXh0ZXJuIHZvaWQgR0xBUElFTlRSWSBpbnRlcm5hbF9nbHVUZXNzRW5k
UG9seWdvbihHTFV0ZXNzZWxhdG9yICp0ZXNzKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0j
ZW5kaWYKLQotI2VuZGlmICAvLyBJTlRFUk5BTF9HTFVfSF8KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
dGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9HTlVtYWtlZmlsZSBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9n
bHUvbGlidGVzcy9HTlVtYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFl
ODU5Zi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvR05VbWFr
ZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotIyFnbWFrZQotIwotIyBMaWNl
bnNlIEFwcGxpY2FiaWxpdHkuIEV4Y2VwdCB0byB0aGUgZXh0ZW50IHBvcnRpb25zIG9mIHRoaXMg
ZmlsZSBhcmUKLSMgbWFkZSBzdWJqZWN0IHRvIGFuIGFsdGVybmF0aXZlIGxpY2Vuc2UgYXMgcGVy
bWl0dGVkIGluIHRoZSBTR0kgRnJlZQotIyBTb2Z0d2FyZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4x
ICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9mIHRoaXMKLSMgZmlsZSBhcmUgc3ViamVj
dCBvbmx5IHRvIHRoZSBwcm92aXNpb25zIG9mIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG5vdCB1c2UK
LSMgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBt
YXkgb2J0YWluIGEgY29weQotIyBvZiB0aGUgTGljZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJ
bmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYwMAotIyBBbXBoaXRoZWF0cmUgUGFya3dheSwg
TW91bnRhaW4gVmlldywgQ0EgOTQwNDMtMTM1MSwgb3IgYXQ6Ci0jCi0jIGh0dHA6Ly9vc3Muc2dp
LmNvbS9wcm9qZWN0cy9GcmVlQgotIwotIyBOb3RlIHRoYXQsIGFzIHByb3ZpZGVkIGluIHRoZSBM
aWNlbnNlLCB0aGUgU29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSMgIkFTIElTIiBiYXNp
cywgd2l0aCBBTEwgRVhQUkVTUyBBTkQgSU1QTElFRCBXQVJSQU5USUVTIEFORCBDT05ESVRJT05T
Ci0jIERJU0NMQUlNRUQsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElF
RCBXQVJSQU5USUVTIEFORAotIyBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgU0FUSVNG
QUNUT1JZIFFVQUxJVFksIEZJVE5FU1MgRk9SIEEKLSMgUEFSVElDVUxBUiBQVVJQT1NFLCBBTkQg
Tk9OLUlORlJJTkdFTUVOVC4KLSMKLSMgT3JpZ2luYWwgQ29kZS4gVGhlIE9yaWdpbmFsIENvZGUg
aXM6IE9wZW5HTCBTYW1wbGUgSW1wbGVtZW50YXRpb24sCi0jIFZlcnNpb24gMS4yLjEsIHJlbGVh
c2VkIEphbnVhcnkgMjYsIDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotIyBJ
bmMuIFRoZSBPcmlnaW5hbCBDb2RlIGlzIENvcHlyaWdodCAoYykgMTk5MS0yMDAwIFNpbGljb24g
R3JhcGhpY3MsIEluYy4KLSMgQ29weXJpZ2h0IGluIGFueSBwb3J0aW9ucyBjcmVhdGVkIGJ5IHRo
aXJkIHBhcnRpZXMgaXMgYXMgaW5kaWNhdGVkCi0jIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCi0jCi0jIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBs
aWNhdGlvbiBwcm9ncmFtbWluZyBpbnRlcmZhY2VzCi0jIGVzdGFibGlzaGVkIGJ5IFNHSSBpbiBj
b25qdW5jdGlvbiB3aXRoIHRoZSBPcmlnaW5hbCBDb2RlIGFyZSBUaGUKLSMgT3BlbkdMKFIpIEdy
YXBoaWNzIFN5c3RlbTogQSBTcGVjaWZpY2F0aW9uIChWZXJzaW9uIDEuMi4xKSwgcmVsZWFzZWQK
LSMgQXByaWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBM
aWJyYXJ5IChWZXJzaW9uCi0jIDEuMyksIHJlbGVhc2VkIE5vdmVtYmVyIDQsIDE5OTg7IGFuZCBP
cGVuR0woUikgR3JhcGhpY3Mgd2l0aCB0aGUgWAotIyBXaW5kb3cgU3lzdGVtKFIpIChWZXJzaW9u
IDEuMyksIHJlbGVhc2VkIE9jdG9iZXIgMTksIDE5OTguIFRoaXMgc29mdHdhcmUKLSMgd2FzIGNy
ZWF0ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRh
dGlvbgotIyBwdWJsaXNoZWQgYnkgU0dJLCBidXQgaGFzIG5vdCBiZWVuIGluZGVwZW5kZW50bHkg
dmVyaWZpZWQgYXMgYmVpbmcKLSMgY29tcGxpYW50IHdpdGggdGhlIE9wZW5HTChSKSB2ZXJzaW9u
IDEuMi4xIFNwZWNpZmljYXRpb24uCi0jCi0jICREYXRlJCAkUmV2aXNpb24kCi0jICRIZWFkZXI6
IC8vZGVwb3QvbWFpbi9nZngvbGliL2dsdS9saWJ0ZXNzL0dOVW1ha2VmaWxlIzkgJAotCi1PQkpF
Q1RfU1RZTEUgPSBOMzIKLQotaW5jbHVkZSAkKFJPT1QpL3Vzci9pbmNsdWRlL21ha2UvY29tbW9u
ZGVmcwotCi1UQVJHRVQgPSBsaWJ0ZXNzLmEKLQotVEFSR0VUUyA9ICQoVEFSR0VUKQotCi1MQ0lO
Q1MgPSAtSS4uL2luY2x1ZGUKLQotIyBDb21waWxhdGlvbiBmbGFnczoKLSMKLSMgLUROREVCVUcg
aXMgZm9yIHRoZSBwcm9kdWN0aW9uIGNvZGU7IGl0IHJlbW92ZXMgYWxsIGFzc2VydGlvbiBjaGVj
a3MKLSMgICAgKG5vdGUgdGhhdCA8YXNzZXJ0Lmg+IGxvb2tzIGF0IHRoaXMgc3ltYm9sKS4KLSMK
LSMgLUROT19NQUxMT1BUIHVzZXMgcmVndWxhciBtYWxsb2MgaW5zdGVhZCBvZiB0aGUgbWFsbG9w
dCgpIHZlcnNpb24uCi0jICAgKioqKiogVW5sZXNzIHlvdSB1c2UgdGhpcyBmbGFnLCB5b3UgbXVz
dCB1c2UgIi1sbWFsbG9jIiB0byBsaW5rCi0jICAgKioqKiogeW91ciBhcHBsaWNhdGlvbiEKLSMK
LSMgLURNRU1PUllfREVCVUcgdHVybnMgb24gdGhlIE1fREVCVUcgb3B0aW9uIG9mIG1hbGxvcHQ7
IHRoaXMgY2FuCi0jICAgIGluY3JlYXNlIHRoZSBydW5uaW5nIHRpbWUgYSBMT1QuCi0jCi0jIC1E
R0xVX1RFU1NfQVBJX0ZMT0FUIGNvbXBpbGVzIGEgc2luZ2xlLXByZWNpc2lvbiB2ZXJzaW9uIG9m
IHRoZSBsaWJyYXJ5LgotIwotIyAtZmxvYXQgcHJldmVudHMgYXV0b21hdGljIHByb21vdGlvbiB0
byBkb3VibGUgcHJlY2lzaW9uOyB0aGlzIHdpbGwgcHJvZHVjZQotIyAgICBmYXN0ZXIgY29kZSB3
aGVuIGNvbXBpbGVkIHdpdGggLURHTFVfVEVTU19BUElfRkxPQVQuCi0jCi0jIC1ETk9fQlJBTkNI
X0NPTkRJVElPTlMgdXNlcyAmIGFuZCB8IGluc3RlYWQgb2YgJiYgYW5kIHx8IG9uIGEgY291cGxl
Ci0jICAgIG9mIGhlYXZpbHktdXNlZCB0ZXN0cyAoVmVydEVxIGFuZCBWZXJ0TGVxKTsgc29tZSBj
b21waWxlcnMgY2FuIGdlbmVyYXRlCi0jICAgIGJldHRlciBjb2RlIHdpdGggdGhlc2UgKHVzZSBz
cGVjaWFsIGluc3RydWN0aW9ucyB0byBhdm9pZCBicmFuY2hpbmcpLgotIwotIyAtREZPUl9UUklU
RV9URVNUX1BST0dSQU0gaXMgKm9ubHkqIGZvciB1c2Ugd2l0aCB0aGUgdGVzdCBwcm9ncmFtIGNh
bGxlZAotIyAgICAidHJpdGUiLiAgSXQgdXNlcyBzb21lIHZhcmlhYmxlcyB3aGljaCBhcmUgZGVm
aW5lZCBieSB0aGUgdGVzdCBwcm9ncmFtLAotIyAgICBzbyB5b3Ugd29uJ3QgYmUgYWJsZSB0byBs
aW5rIGl0IHdpdGggYW55dGhpbmcgZWxzZS4KLQotSEZJTEVTID0gXAotCWRpY3QuaCBcCi0JZGlj
dC1saXN0LmggXAotCWdlb20uaCBcCi0JbWVtYWxsb2MuaCBcCi0JbWVzaC5oIFwKLQlub3JtYWwu
aCBcCi0JcHJpb3JpdHlxLWhlYXAuaCBcCi0JcHJpb3JpdHlxLWhlYXAuYyBcCi0JcHJpb3JpdHlx
LXNvcnQuaCBcCi0JcHJpb3JpdHlxLmggXAotCXJlbmRlci5oIFwKLQlzd2VlcC5oIFwKLQl0ZXNz
LmggXAotCXRlc3Ntb25vLmggXAotCSQoTlVMTCkKLQotQ0ZJTEVTID0gXAotCWRpY3QuYyBcCi0J
Z2VvbS5jIFwKLQltZW1hbGxvYy5jIFwKLQltZXNoLmMgXAotCW5vcm1hbC5jIFwKLQlwcmlvcml0
eXEuYyBcCi0JcmVuZGVyLmMgXAotCXN3ZWVwLmMgXAotCXRlc3MuYyBcCi0JdGVzc21vbm8uYyBc
Ci0JJChOVUxMKQotCi1kZWZhdWx0IGxpYnMgbGlic19pbnN0YWxsIGluc3RhbGw6ICQoVEFSR0VU
KQotCi1oZWFkZXJzIGhlYWRlcnNfaW5zdGFsbCBhcHBzOgotCi0kKFRBUkdFVCk6ICQoT0JKRUNU
UykKLQkkKEFSKSBjcmwgJEAgJChPQkpFQ1RTKTsKLQotaW5jbHVkZSAkKENPTU1PTlJVTEVTKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL0ltYWtlZmlsZSBiL1dl
YkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9JbWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZiOTljZTIuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS90aGlyZHBhcnR5L2ds
dS9saWJ0ZXNzL0ltYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLVhDT01N
IExpY2Vuc2UgQXBwbGljYWJpbGl0eS4gRXhjZXB0IHRvIHRoZSBleHRlbnQgcG9ydGlvbnMgb2Yg
dGhpcyBmaWxlIGFyZQotWENPTU0gbWFkZSBzdWJqZWN0IHRvIGFuIGFsdGVybmF0aXZlIGxpY2Vu
c2UgYXMgcGVybWl0dGVkIGluIHRoZSBTR0kgRnJlZQotWENPTU0gU29mdHdhcmUgTGljZW5zZSBC
LCBWZXJzaW9uIDEuMSAodGhlICJMaWNlbnNlIiksIHRoZSBjb250ZW50cyBvZiB0aGlzCi1YQ09N
TSBmaWxlIGFyZSBzdWJqZWN0IG9ubHkgdG8gdGhlIHByb3Zpc2lvbnMgb2YgdGhlIExpY2Vuc2Uu
IFlvdSBtYXkgbm90IHVzZQotWENPTU0gdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdp
dGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weQotWENPTU0gb2YgdGhlIExpY2Vu
c2UgYXQgU2lsaWNvbiBHcmFwaGljcywgSW5jLiwgYXR0bjogTGVnYWwgU2VydmljZXMsIDE2MDAK
LVhDT01NIEFtcGhpdGhlYXRyZSBQYXJrd2F5LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0My0xMzUx
LCBvciBhdDoKLVhDT01NIAotWENPTU0gaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3RzL0ZyZWVC
Ci1YQ09NTSAKLVhDT01NIE5vdGUgdGhhdCwgYXMgcHJvdmlkZWQgaW4gdGhlIExpY2Vuc2UsIHRo
ZSBTb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbgotWENPTU0gIkFTIElTIiBiYXNpcywgd2l0
aCBBTEwgRVhQUkVTUyBBTkQgSU1QTElFRCBXQVJSQU5USUVTIEFORCBDT05ESVRJT05TCi1YQ09N
TSBESVNDTEFJTUVELCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIElNUExJRUQg
V0FSUkFOVElFUyBBTkQKLVhDT01NIENPTkRJVElPTlMgT0YgTUVSQ0hBTlRBQklMSVRZLCBTQVRJ
U0ZBQ1RPUlkgUVVBTElUWSwgRklUTkVTUyBGT1IgQQotWENPTU0gUEFSVElDVUxBUiBQVVJQT1NF
LCBBTkQgTk9OLUlORlJJTkdFTUVOVC4KLVhDT01NIAotWENPTU0gT3JpZ2luYWwgQ29kZS4gVGhl
IE9yaWdpbmFsIENvZGUgaXM6IE9wZW5HTCBTYW1wbGUgSW1wbGVtZW50YXRpb24sCi1YQ09NTSBW
ZXJzaW9uIDEuMi4xLCByZWxlYXNlZCBKYW51YXJ5IDI2LCAyMDAwLCBkZXZlbG9wZWQgYnkgU2ls
aWNvbiBHcmFwaGljcywKLVhDT01NIEluYy4gVGhlIE9yaWdpbmFsIENvZGUgaXMgQ29weXJpZ2h0
IChjKSAxOTkxLTIwMDAgU2lsaWNvbiBHcmFwaGljcywgSW5jLgotWENPTU0gQ29weXJpZ2h0IGlu
IGFueSBwb3J0aW9ucyBjcmVhdGVkIGJ5IHRoaXJkIHBhcnRpZXMgaXMgYXMgaW5kaWNhdGVkCi1Y
Q09NTSBlbHNld2hlcmUgaGVyZWluLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotWENPTU0gCi1YQ09N
TSBBZGRpdGlvbmFsIE5vdGljZSBQcm92aXNpb25zOiBUaGUgYXBwbGljYXRpb24gcHJvZ3JhbW1p
bmcgaW50ZXJmYWNlcwotWENPTU0gZXN0YWJsaXNoZWQgYnkgU0dJIGluIGNvbmp1bmN0aW9uIHdp
dGggdGhlIE9yaWdpbmFsIENvZGUgYXJlIFRoZQotWENPTU0gT3BlbkdMKFIpIEdyYXBoaWNzIFN5
c3RlbTogQSBTcGVjaWZpY2F0aW9uIChWZXJzaW9uIDEuMi4xKSwgcmVsZWFzZWQKLVhDT01NIEFw
cmlsIDEsIDE5OTk7IFRoZSBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtIFV0aWxpdHkgTGlicmFy
eSAoVmVyc2lvbgotWENPTU0gMS4zKSwgcmVsZWFzZWQgTm92ZW1iZXIgNCwgMTk5ODsgYW5kIE9w
ZW5HTChSKSBHcmFwaGljcyB3aXRoIHRoZSBYCi1YQ09NTSBXaW5kb3cgU3lzdGVtKFIpIChWZXJz
aW9uIDEuMyksIHJlbGVhc2VkIE9jdG9iZXIgMTksIDE5OTguIFRoaXMgc29mdHdhcmUKLVhDT01N
IHdhcyBjcmVhdGVkIHVzaW5nIHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTYW1wbGUgSW1w
bGVtZW50YXRpb24KLVhDT01NIHB1Ymxpc2hlZCBieSBTR0ksIGJ1dCBoYXMgbm90IGJlZW4gaW5k
ZXBlbmRlbnRseSB2ZXJpZmllZCBhcyBiZWluZwotWENPTU0gY29tcGxpYW50IHdpdGggdGhlIE9w
ZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNwZWNpZmljYXRpb24uCi1YQ09NTQotCi0jaW5jbHVkZSA8
TGlicmFyeS50bXBsPgotCi1PQkpTID0gXAotCWRpY3QubyBcCi0JZ2VvbS5vIFwKLQltZW1hbGxv
Yy5vIFwKLQltZXNoLm8gXAotCW5vcm1hbC5vIFwKLQlwcmlvcml0eXEubyBcCi0JcmVuZGVyLm8g
XAotCXN3ZWVwLm8gXAotCXRlc3MubyBcCi0JdGVzc21vbm8ubwotCi1JTkNMVURFUyA9IFwKLQkt
SS4uL2luY2x1ZGUgXAotCS1JJChUT1ApL2luY2x1ZGUgXAotCS1JJChUT1ApL2luY2x1ZGUvR0wK
LQotREVGSU5FUyA9IFwKLQktRE5ERUJVRwotCi1Ob3JtYWxMaWJyYXJ5T2JqZWN0UnVsZSgpCi0K
LU5vcm1hbExpYnJhcnlUYXJnZXQodGVzcywgJChPQkpTKSkKLQotRGVwZW5kVGFyZ2V0KCkKLUNs
ZWFuVGFyZ2V0KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9S
RUFETUUgYi9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvUkVBRE1FCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1OWY0ZmYyLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvdGhpcmRw
YXJ0eS9nbHUvbGlidGVzcy9SRUFETUUKKysrIC9kZXYvbnVsbApAQCAtMSw0NDcgKzAsMCBAQAot
LyoKLSoqICRIZWFkZXI6IC9jdnMvcHJvamVjdHMvb2dsLXNhbXBsZS9tYWluL2dmeC9saWIvZ2x1
L2xpYnRlc3MvUkVBRE1FLHYgMS4xIDIwMDAvMDQvMjYgMDU6NTM6NTkgbGpwIEV4cCAkCi0qLwot
Ci1HZW5lcmFsIFBvbHlnb24gVGVzc2VsYXRpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi0gIFRoaXMgbm90ZSBkZXNjcmliZXMgYSB0ZXNzZWxhdG9yIGZvciBwb2x5Z29ucyBjb25z
aXN0aW5nIG9mIG9uZSBvcgotICBtb3JlIGNsb3NlZCBjb250b3Vycy4gIEl0IGlzIGJhY2t3YXJk
LWNvbXBhdGlibGUgd2l0aCB0aGUgY3VycmVudAotICBPcGVuR0wgVXRpbGl0aWVzIHRlc3NlbGF0
b3IsIGFuZCBpcyBpbnRlbmRlZCB0byByZXBsYWNlIGl0LiAgSGVyZSBpcwotICBhIHN1bW1hcnkg
b2YgdGhlIG1ham9yIGRpZmZlcmVuY2VzOgotCi0gICAtIGlucHV0IGNvbnRvdXJzIGNhbiBiZSBp
bnRlcnNlY3RpbmcsIHNlbGYtaW50ZXJzZWN0aW5nLCBvciBkZWdlbmVyYXRlLgotICAKLSAgIC0g
c3VwcG9ydHMgYSBjaG9pY2Ugb2Ygc2V2ZXJhbCB3aW5kaW5nIHJ1bGVzIGZvciBkZXRlcm1pbmlu
ZyB3aGljaCBwYXJ0cwotICAgICBvZiB0aGUgcG9seWdvbiBhcmUgb24gdGhlICJpbnRlcmlvciIu
ICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGRvCi0gICAgIENTRyBvcGVyYXRpb25zIG9uIHBv
bHlnb25zLgotICAKLSAgIC0gYm91bmRhcnkgZXh0cmFjdGlvbjogaW5zdGVhZCBvZiB0ZXNzZWxh
dGluZyB0aGUgcG9seWdvbiwgcmV0dXJucyBhCi0gICAgIHNldCBvZiBjbG9zZWQgY29udG91cnMg
d2hpY2ggc2VwYXJhdGUgdGhlIGludGVyaW9yIGZyb20gdGhlIGV4dGVyaW9yLgotICAKLSAgIC0g
cmV0dXJucyB0aGUgb3V0cHV0IGFzIGEgc21hbGwgbnVtYmVyIG9mIHRyaWFuZ2xlIGZhbnMgYW5k
IHN0cmlwcywKLSAgICAgcmF0aGVyIHRoYW4gYSBsaXN0IG9mIGluZGVwZW5kZW50IHRyaWFuZ2xl
cyAod2hlbiBwb3NzaWJsZSkuCi0gIAotICAgLSBvdXRwdXQgaXMgYXZhaWxhYmxlIGFzIGFuIGV4
cGxpY2l0IG1lc2ggKGEgcXVhZC1lZGdlIHN0cnVjdHVyZSksCi0gICAgIGluIGFkZGl0aW9uIHRv
IHRoZSBub3JtYWwgY2FsbGJhY2sgaW50ZXJmYWNlLgotICAKLSAgIC0gdGhlIGFsZ29yaXRobSB1
c2VkIGlzIGV4dHJlbWVseSByb2J1c3QuCi0KLQotVGhlIGludGVyZmFjZQotLS0tLS0tLS0tLS0t
LQotCi0gIFRoZSB0ZXNzZWxhdG9yIHN0YXRlIGlzIG1haW50YWluZWQgaW4gYSAidGVzc2VsYXRv
ciBvYmplY3QiLgotICBUaGVzZSBhcmUgYWxsb2NhdGVkIGFuZCBkZXN0cm95ZWQgdXNpbmcKLQot
ICAgICBHTFV0ZXNzZWxhdG9yICpnbHVOZXdUZXNzKCB2b2lkICk7Ci0gICAgIHZvaWQgZ2x1RGVs
ZXRlVGVzcyggR0xVdGVzc2VsYXRvciAqdGVzcyApOwotCi0gIFNldmVyYWwgdGVzc2VsYXRvciBv
YmplY3RzIG1heSBiZSB1c2VkIHNpbXVsdGFuZW91c2x5LgotCi0gIElucHV0cwotICAtLS0tLS0K
LSAgCi0gIFRoZSBpbnB1dCBjb250b3VycyBhcmUgc3BlY2lmaWVkIHdpdGggdGhlIGZvbGxvd2lu
ZyByb3V0aW5lczoKLQotICAgICB2b2lkIGdsdVRlc3NCZWdpblBvbHlnb24oIEdMVXRlc3NlbGF0
b3IgKnRlc3MgKTsKLSAgICAgdm9pZCBnbHVUZXNzQmVnaW5Db250b3VyKCBHTFV0ZXNzZWxhdG9y
ICp0ZXNzICk7Ci0gICAgIHZvaWQgZ2x1VGVzc1ZlcnRleCggR0xVdGVzc2VsYXRvciAqdGVzcywg
R0xVY29vcmQgY29vcmRzWzNdLCB2b2lkICpkYXRhICk7Ci0gICAgIHZvaWQgZ2x1VGVzc0VuZENv
bnRvdXIoIEdMVXRlc3NlbGF0b3IgKnRlc3MgKTsKLSAgICAgdm9pZCBnbHVUZXNzRW5kUG9seWdv
biggR0xVdGVzc2VsYXRvciAqdGVzcyApOwotCi0gIFdpdGhpbiBlYWNoIEJlZ2luUG9seWdvbi9F
bmRQb2x5Z29uIHBhaXIsIHRoZXJlIGNhbiBiZSB6ZXJvIG9yIG1vcmUKLSAgY2FsbHMgdG8gQmVn
aW5Db250b3VyL0VuZENvbnRvdXIuICBXaXRoaW4gZWFjaCBjb250b3VyLCB0aGVyZSBhcmUgemVy
bwotICBvciBtb3JlIGNhbGxzIHRvIGdsdVRlc3NWZXJ0ZXgoKS4gIFRoZSB2ZXJ0aWNlcyBzcGVj
aWZ5IGEgY2xvc2VkCi0gIGNvbnRvdXIgKHRoZSBsYXN0IHZlcnRleCBvZiBlYWNoIGNvbnRvdXIg
aXMgYXV0b21hdGljYWxseSBsaW5rZWQgdG8KLSAgdGhlIGZpcnN0KS4KLQotICAiY29vcmRzIiBn
aXZlIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgdmVydGV4IGluIDMtc3BhY2UuICBGb3IgdXNlZnVs
Ci0gIHJlc3VsdHMsIGFsbCB2ZXJ0aWNlcyBzaG91bGQgbGllIGluIHNvbWUgcGxhbmUsIHNpbmNl
IHRoZSB2ZXJ0aWNlcwotICBhcmUgcHJvamVjdGVkIG9udG8gYSBwbGFuZSBiZWZvcmUgdGVzc2Vs
YXRpb24uICAiZGF0YSIgaXMgYSBwb2ludGVyCi0gIHRvIGEgdXNlci1kZWZpbmVkIHZlcnRleCBz
dHJ1Y3R1cmUsIHdoaWNoIHR5cGljYWxseSBjb250YWlucyBvdGhlcgotICBpbmZvcm1hdGlvbiBz
dWNoIGFzIGNvbG9yLCB0ZXh0dXJlIGNvb3JkaW5hdGVzLCBub3JtYWwsIGV0Yy4gIEl0IGlzCi0g
IHVzZWQgdG8gcmVmZXIgdG8gdGhlIHZlcnRleCBkdXJpbmcgcmVuZGVyaW5nLgotCi0gIFRoZSBs
aWJyYXJ5IGNhbiBiZSBjb21waWxlZCBpbiBzaW5nbGUtIG9yIGRvdWJsZS1wcmVjaXNpb247IHRo
ZSB0eXBlCi0gIEdMVWNvb3JkIHJlcHJlc2VudHMgZWl0aGVyICJmbG9hdCIgb3IgImRvdWJsZSIg
YWNjb3JkaW5nbHkuICBUaGUgR0xVCi0gIHZlcnNpb24gd2lsbCBiZSBhdmFpbGFibGUgaW4gZG91
YmxlLXByZWNpc2lvbiBvbmx5LiAgQ29tcGlsZSB3aXRoCi0gIEdMVV9URVNTX0FQSV9GTE9BVCBk
ZWZpbmVkIHRvIGdldCB0aGUgc2luZ2xlLXByZWNpc2lvbiB2ZXJzaW9uLgotCi0gIFdoZW4gRW5k
UG9seWdvbiBpcyBjYWxsZWQsIHRoZSB0ZXNzZWxhdGlvbiBhbGdvcml0aG0gZGV0ZXJtaW5lcwot
ICB3aGljaCByZWdpb25zIGFyZSBpbnRlcmlvciB0byB0aGUgZ2l2ZW4gY29udG91cnMsIGFjY29y
ZGluZyB0byBvbmUKLSAgb2Ygc2V2ZXJhbCAid2luZGluZyBydWxlcyIgZGVzY3JpYmVkIGJlbG93
LiAgVGhlIGludGVyaW9yIHJlZ2lvbnMKLSAgYXJlIHRoZW4gdGVzc2VsYXRlZCwgYW5kIHRoZSBv
dXRwdXQgaXMgcHJvdmlkZWQgYXMgY2FsbGJhY2tzLgotCi0KLSAgUmVuZGVyaW5nIENhbGxiYWNr
cwotICAtLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSAgQ2FsbGJhY2tzIGFyZSBzcGVjaWZpZWQgYnkg
dGhlIGNsaWVudCB1c2luZwotCi0gICAgIHZvaWQgZ2x1VGVzc0NhbGxiYWNrKCBHTFV0ZXNzZWxh
dG9yICp0ZXNzLCBHTGVudW0gd2hpY2gsIHZvaWQgKCpmbikoKSk7Ci0KLSAgSWYgImZuIiBpcyBO
VUxMLCBhbnkgcHJldmlvdXNseSBkZWZpbmVkIGNhbGxiYWNrIGlzIGRpc2NhcmRlZC4KLSAgCi0g
IFRoZSBjYWxsYmFja3MgdXNlZCB0byBwcm92aWRlIG91dHB1dCBhcmU6CS8qIHdoaWNoID09ICov
Ci0KLSAgICAgdm9pZCBiZWdpbiggR0xlbnVtIHR5cGUgKTsJCQkvKiBHTFVfVEVTU19CRUdJTiAq
LwotICAgICB2b2lkIGVkZ2VGbGFnKCBHTGJvb2xlYW4gZmxhZyApOwkJLyogR0xVX1RFU1NfRURH
RV9GTEFHICovCi0gICAgIHZvaWQgdmVydGV4KCB2b2lkICpkYXRhICk7CQkJLyogR0xVX1RFU1Nf
VkVSVEVYICovCi0gICAgIHZvaWQgZW5kKCB2b2lkICk7CQkJCS8qIEdMVV9URVNTX0VORCAqLwot
Ci0gIEFueSBvZiB0aGUgY2FsbGJhY2tzIG1heSBiZSBsZWZ0IHVuZGVmaW5lZDsgaWYgc28sIHRo
ZSBjb3JyZXNwb25kaW5nCi0gIGluZm9ybWF0aW9uIHdpbGwgbm90IGJlIHN1cHBsaWVkIGR1cmlu
ZyByZW5kZXJpbmcuCi0KLSAgVGhlICJiZWdpbiIgY2FsbGJhY2sgaW5kaWNhdGVzIHRoZSBzdGFy
dCBvZiBhIHByaW1pdGl2ZTsgdHlwZSBpcyBvbmUKLSAgb2YgR0xfVFJJQU5HTEVfU1RSSVAsIEdM
X1RSSUFOR0xFX0ZBTiwgb3IgR0xfVFJJQU5HTEVTIChidXQgc2VlIHRoZQotICBub3RlcyBvbiAi
Ym91bmRhcnkgZXh0cmFjdGlvbiIgYmVsb3cpLgotICAKLSAgSXQgaXMgZm9sbG93ZWQgYnkgYW55
IG51bWJlciBvZiAidmVydGV4IiBjYWxsYmFja3MsIHdoaWNoIHN1cHBseSB0aGUKLSAgdmVydGlj
ZXMgaW4gdGhlIHNhbWUgb3JkZXIgYXMgZXhwZWN0ZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgZ2xC
ZWdpbigpCi0gIGNhbGwuICBBZnRlciB0aGUgbGFzdCB2ZXJ0ZXggb2YgYSBnaXZlbiBwcmltaXRp
dmUsIHRoZXJlIGlzIGEgY2FsbGJhY2sKLSAgdG8gImVuZCIuCi0KLSAgSWYgdGhlICJlZGdlRmxh
ZyIgY2FsbGJhY2sgaXMgcHJvdmlkZWQsIG5vIHRyaWFuZ2xlIGZhbnMgb3Igc3RyaXBzCi0gIHdp
bGwgYmUgdXNlZC4gIFdoZW4gZWRnZUZsYWcgaXMgY2FsbGVkLCBpZiAiZmxhZyIgaXMgR0xfVFJV
RSB0aGVuIGVhY2gKLSAgdmVydGV4IHdoaWNoIGZvbGxvd3MgYmVnaW5zIGFuIGVkZ2Ugd2hpY2gg
bGllcyBvbiB0aGUgcG9seWdvbiBib3VuZGFyeQotICAoaWUuIGFuIGVkZ2Ugd2hpY2ggc2VwYXJh
dGVzIGFuIGludGVyaW9yIHJlZ2lvbiBmcm9tIGFuIGV4dGVyaW9yIG9uZSkuCi0gIElmICJmbGFn
IiBpcyBHTF9GQUxTRSwgZWFjaCB2ZXJ0ZXggd2hpY2ggZm9sbG93cyBiZWdpbnMgYW4gZWRnZSB3
aGljaCBsaWVzCi0gIGluIHRoZSBwb2x5Z29uIGludGVyaW9yLiAgImVkZ2VGbGFnIiB3aWxsIGJl
IGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0Ci0gIGNhbGwgdG8gInZlcnRleCIuCi0KLSAgT3RoZXIg
Q2FsbGJhY2tzCi0gIC0tLS0tLS0tLS0tLS0tLQotCi0gICB2b2lkIG1lc2goIEdMVW1lc2ggKm1l
c2ggKTsJCQkvKiBHTFVfVEVTU19NRVNIICovCi0KLSAgIC0gUmV0dXJucyBhbiBleHBsaWNpdCBt
ZXNoLCByZXByZXNlbnRlZCB1c2luZyB0aGUgcXVhZC1lZGdlIHN0cnVjdHVyZQotICAgICAoR3Vp
YmFzL1N0b2xmaSAnODUpLiAgT3RoZXIgaW1wbGVtZW50YXRpb25zIG9mIHRoaXMgaW50ZXJmYWNl
IG1pZ2h0Ci0gICAgIHVzZSBhIGRpZmZlcmVudCBtZXNoIHN0cnVjdHVyZSwgc28gdGhpcyBpcyBh
dmFpbGFibGUgb25seSBvbmx5IGFzIGFuCi0gICAgIFNHSSBleHRlbnNpb24uICBXaGVuIHRoZSBt
ZXNoIGlzIG5vIGxvbmdlciBuZWVkZWQsIGl0IHNob3VsZCBiZSBmcmVlZAotICAgICB1c2luZwot
Ci0Jdm9pZCBnbHVEZWxldGVNZXNoKCBHTFVtZXNoICptZXNoICk7Ci0KLSAgICAgVGhlcmUgaXMg
YSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGlzIGRhdGEgc3RydWN0dXJlIGluIHRoZSBpbmNsdWRl
Ci0gICAgIGZpbGUgIm1lc2guaCIuICBGb3IgdGhlIGZ1bGwgZGV0YWlscywgc2VlIEwuIEd1aWJh
cyBhbmQgSi4gU3RvbGZpLAotICAgICBQcmltaXRpdmVzIGZvciB0aGUgbWFuaXB1bGF0aW9uIG9m
IGdlbmVyYWwgc3ViZGl2aXNpb25zIGFuZCB0aGUKLSAgICAgY29tcHV0YXRpb24gb2YgVm9yb25v
aSBkaWFncmFtcywgQUNNIFRyYW5zYWN0aW9ucyBvbiBHcmFwaGljcywKLSAgICAgNCgyKTo3NC0x
MjMsIEFwcmlsIDE5ODUuICBGb3IgYW4gaW50cm9kdWN0aW9uLCBzZWUgdGhlIGNvdXJzZSBub3Rl
cwotICAgICBmb3IgQ1MzNDhhLCAiTWF0aGVtYXRpY2FsIEZvdW5kYXRpb25zIG9mIENvbXB1dGVy
IEdyYXBoaWNzIiwKLSAgICAgYXZhaWxhYmxlIGF0IHRoZSBTdGFuZm9yZCBib29rc3RvcmUgKGFu
ZCB0YXVnaHQgZHVyaW5nIHRoZSBmYWxsCi0gICAgIHF1YXJ0ZXIpLgotCi0gICB2b2lkIGVycm9y
KCBHTGVudW0gZXJybm8gKTsJCQkvKiBHTFVfVEVTU19FUlJPUiAqLwotCi0gICAtIGVycm5vIGlz
IG9uZSBvZglHTFVfVEVTU19NSVNTSU5HX0JFR0lOX1BPTFlHT04sCi0JCQlHTFVfVEVTU19NSVNT
SU5HX0VORF9QT0xZR09OLAotCQkJR0xVX1RFU1NfTUlTU0lOR19CRUdJTl9DT05UT1VSLAotCQkJ
R0xVX1RFU1NfTUlTU0lOR19FTkRfQ09OVE9VUiwKLQkJCUdMVV9URVNTX0NPT1JEX1RPT19MQVJH
RSwKLQkJCUdMVV9URVNTX05FRURfQ09NQklORV9DQUxMQkFDSwotCi0gICAgIFRoZSBmaXJzdCBm
b3VyIGFyZSBvYnZpb3VzLiAgVGhlIGludGVyZmFjZSByZWNvdmVycyBmcm9tIHRoZXNlCi0gICAg
IGVycm9ycyBieSBpbnNlcnRpbmcgdGhlIG1pc3NpbmcgY2FsbChzKS4KLSAgCi0gICAgIEdMVV9U
RVNTX0NPT1JEX1RPT19MQVJHRSBzYXlzIHRoYXQgc29tZSB2ZXJ0ZXggY29vcmRpbmF0ZSBleGNl
ZWRlZAotICAgICB0aGUgcHJlZGVmaW5lZCBjb25zdGFudCBHTFVfVEVTU19NQVhfQ09PUkQgaW4g
YWJzb2x1dGUgdmFsdWUsIGFuZAotICAgICB0aGF0IHRoZSB2YWx1ZSBoYXMgYmVlbiBjbGFtcGVk
LiAgKENvb3JkaW5hdGUgdmFsdWVzIG11c3QgYmUgc21hbGwKLSAgICAgZW5vdWdoIHNvIHRoYXQg
dHdvIGNhbiBiZSBtdWx0aXBsaWVkIHRvZ2V0aGVyIHdpdGhvdXQgb3ZlcmZsb3cuKQotCi0gICAg
IEdMVV9URVNTX05FRURfQ09NQklORV9DQUxMQkFDSyBzYXlzIHRoYXQgdGhlIGFsZ29yaXRobSBk
ZXRlY3RlZCBhbgotICAgICBpbnRlcnNlY3Rpb24gYmV0d2VlbiB0d28gZWRnZXMgaW4gdGhlIGlu
cHV0IGRhdGEsIGFuZCB0aGUgImNvbWJpbmUiCi0gICAgIGNhbGxiYWNrIChiZWxvdykgd2FzIG5v
dCBwcm92aWRlZC4gIE5vIG91dHB1dCB3aWxsIGJlIGdlbmVyYXRlZC4KLQotCi0gICB2b2lkIGNv
bWJpbmUoIEdMVWNvb3JkIGNvb3Jkc1szXSwgdm9pZCAqZGF0YVs0XSwJLyogR0xVX1RFU1NfQ09N
QklORSAqLwotCQkgR0xVY29vcmQgd2VpZ2h0WzRdLCB2b2lkICoqb3V0RGF0YSApOwotCi0gICAt
IFdoZW4gdGhlIGFsZ29yaXRobSBkZXRlY3RzIGFuIGludGVyc2VjdGlvbiwgb3Igd2lzaGVzIHRv
IG1lcmdlCi0gICAgIGZlYXR1cmVzLCBpdCBuZWVkcyB0byBjcmVhdGUgYSBuZXcgdmVydGV4LiAg
VGhlIHZlcnRleCBpcyBkZWZpbmVkCi0gICAgIGFzIGEgbGluZWFyIGNvbWJpbmF0aW9uIG9mIHVw
IHRvIDQgZXhpc3RpbmcgdmVydGljZXMsIHJlZmVyZW5jZWQKLSAgICAgYnkgZGF0YVswLi4zXS4g
IFRoZSBjb2VmZmljaWVudHMgb2YgdGhlIGxpbmVhciBjb21iaW5hdGlvbiBhcmUKLSAgICAgZ2l2
ZW4gYnkgd2VpZ2h0WzAuLjNdOyB0aGVzZSB3ZWlnaHRzIGFsd2F5cyBzdW0gdG8gMS4wLiAgQWxs
IHZlcnRleAotICAgICBwb2ludGVycyBhcmUgdmFsaWQgZXZlbiB3aGVuIHNvbWUgb2YgdGhlIHdl
aWdodHMgYXJlIHplcm8uCi0gICAgICJjb29yZHMiIGdpdmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUg
bmV3IHZlcnRleC4KLQotICAgICBUaGUgdXNlciBtdXN0IGFsbG9jYXRlIGFub3RoZXIgdmVydGV4
LCBpbnRlcnBvbGF0ZSBwYXJhbWV0ZXJzCi0gICAgIHVzaW5nICJkYXRhIiBhbmQgIndlaWdodHMi
LCBhbmQgcmV0dXJuIHRoZSBuZXcgdmVydGV4IHBvaW50ZXIgaW4KLSAgICAgIm91dERhdGEiLiAg
VGhpcyBoYW5kbGUgaXMgc3VwcGxpZWQgZHVyaW5nIHJlbmRlcmluZyBjYWxsYmFja3MuCi0gICAg
IEZvciBleGFtcGxlLCBpZiB0aGUgcG9seWdvbiBsaWVzIGluIGFuIGFyYml0cmFyeSBwbGFuZSBp
biAzLXNwYWNlLAotICAgICBhbmQgd2UgYXNzb2NpYXRlIGEgY29sb3Igd2l0aCBlYWNoIHZlcnRl
eCwgdGhlIGNvbWJpbmUgY2FsbGJhY2sgbWlnaHQKLSAgICAgbG9vayBsaWtlIHRoaXM6Ci0gICAg
Ci0gICAgIHZvaWQgbXlDb21iaW5lKCBHTFVjb29yZCBjb29yZHNbM10sIFZFUlRFWCAqZFs0XSwK
LSAgICAgICAgICAgICAgICAgICAgIEdMVWNvb3JkIHdbNF0sIFZFUlRFWCAqKmRhdGFPdXQgKQot
ICAgICB7Ci0gICAgICAgIFZFUlRFWCAqbmV3ID0gbmV3X3ZlcnRleCgpOwotICAgICAgIAotICAg
ICAgICBuZXctPnggPSBjb29yZHNbMF07Ci0gICAgICAgIG5ldy0+eSA9IGNvb3Jkc1sxXTsKLSAg
ICAgICAgbmV3LT56ID0gY29vcmRzWzJdOwotICAgICAgICBuZXctPnIgPSB3WzBdKmRbMF0tPnIg
KyB3WzFdKmRbMV0tPnIgKyB3WzJdKmRbMl0tPnIgKyB3WzNdKmRbM10tPnI7Ci0gICAgICAgIG5l
dy0+ZyA9IHdbMF0qZFswXS0+ZyArIHdbMV0qZFsxXS0+ZyArIHdbMl0qZFsyXS0+ZyArIHdbM10q
ZFszXS0+ZzsKLSAgICAgICAgbmV3LT5iID0gd1swXSpkWzBdLT5iICsgd1sxXSpkWzFdLT5iICsg
d1syXSpkWzJdLT5iICsgd1szXSpkWzNdLT5iOwotICAgICAgICBuZXctPmEgPSB3WzBdKmRbMF0t
PmEgKyB3WzFdKmRbMV0tPmEgKyB3WzJdKmRbMl0tPmEgKyB3WzNdKmRbM10tPmE7Ci0gICAgICAg
ICpkYXRhT3V0ID0gbmV3OwotICAgICB9Ci0KLSAgICAgSWYgdGhlIGFsZ29yaXRobSBkZXRlY3Rz
IGFuIGludGVyc2VjdGlvbiwgdGhlbiB0aGUgImNvbWJpbmUiIGNhbGxiYWNrCi0gICAgIG11c3Qg
YmUgZGVmaW5lZCwgYW5kIG11c3Qgd3JpdGUgYSBub24tTlVMTCBwb2ludGVyIGludG8gImRhdGFP
dXQiLgotICAgICBPdGhlcndpc2UgdGhlIEdMVV9URVNTX05FRURfQ09NQklORV9DQUxMQkFDSyBl
cnJvciBvY2N1cnMsIGFuZCBubwotICAgICBvdXRwdXQgaXMgZ2VuZXJhdGVkLiAgVGhpcyBpcyB0
aGUgb25seSBlcnJvciB0aGF0IGNhbiBvY2N1ciBkdXJpbmcKLSAgICAgdGVzc2VsYXRpb24gYW5k
IHJlbmRlcmluZy4KLQotCi0gIENvbnRyb2wgb3ZlciBUZXNzZWxhdGlvbgotICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSAgCi0gICB2b2lkIGdsdVRlc3NQcm9wZXJ0eSggR0xVdGVzc2VsYXRv
ciAqdGVzcywgR0xlbnVtIHdoaWNoLCBHTFVjb29yZCB2YWx1ZSApOwotCi0gICBQcm9wZXJ0aWVz
IGRlZmluZWQ6Ci0KLSAgICAtIEdMVV9URVNTX1dJTkRJTkdfUlVMRS4gIFBvc3NpYmxlIHZhbHVl
czoKLQotCSAgR0xVX1RFU1NfV0lORElOR19PREQKLQkgIEdMVV9URVNTX1dJTkRJTkdfTk9OWkVS
TwotCSAgR0xVX1RFU1NfV0lORElOR19QT1NJVElWRQotCSAgR0xVX1RFU1NfV0lORElOR19ORUdB
VElWRQotCSAgR0xVX1RFU1NfV0lORElOR19BQlNfR0VRX1RXTwotCi0gICAgICBUaGUgaW5wdXQg
Y29udG91cnMgcGFyaXRpb24gdGhlIHBsYW5lIGludG8gcmVnaW9ucy4gIEEgd2luZGluZwotICAg
ICAgcnVsZSBkZXRlcm1pbmVzIHdoaWNoIG9mIHRoZXNlIHJlZ2lvbnMgYXJlIGluc2lkZSB0aGUg
cG9seWdvbi4KLSAgICAgIAotICAgICAgRm9yIGEgc2luZ2xlIGNvbnRvdXIgQywgdGhlIHdpbmRp
bmcgbnVtYmVyIG9mIGEgcG9pbnQgeCBpcyBzaW1wbHkKLSAgICAgIHRoZSBzaWduZWQgbnVtYmVy
IG9mIHJldm9sdXRpb25zIHdlIG1ha2UgYXJvdW5kIHggYXMgd2UgdHJhdmVsCi0gICAgICBvbmNl
IGFyb3VuZCBDICh3aGVyZSBDQ1cgaXMgcG9zaXRpdmUpLiAgV2hlbiB0aGVyZSBhcmUgc2V2ZXJh
bAotICAgICAgY29udG91cnMsIHRoZSBpbmRpdmlkdWFsIHdpbmRpbmcgbnVtYmVycyBhcmUgc3Vt
bWVkLiAgVGhpcwotICAgICAgcHJvY2VkdXJlIGFzc29jaWF0ZXMgYSBzaWduZWQgaW50ZWdlciB2
YWx1ZSB3aXRoIGVhY2ggcG9pbnQgeCBpbgotICAgICAgdGhlIHBsYW5lLiAgTm90ZSB0aGF0IHRo
ZSB3aW5kaW5nIG51bWJlciBpcyB0aGUgc2FtZSBmb3IgYWxsCi0gICAgICBwb2ludHMgaW4gYSBz
aW5nbGUgcmVnaW9uLgotCi0gICAgICBUaGUgd2luZGluZyBydWxlIGNsYXNzaWZpZXMgYSByZWdp
b24gYXMgImluc2lkZSIgaWYgaXRzIHdpbmRpbmcKLSAgICAgIG51bWJlciBiZWxvbmdzIHRvIHRo
ZSBjaG9zZW4gY2F0ZWdvcnkgKG9kZCwgbm9uemVybywgcG9zaXRpdmUsCi0gICAgICBuZWdhdGl2
ZSwgb3IgYWJzb2x1dGUgdmFsdWUgb2YgYXQgbGVhc3QgdHdvKS4gIFRoZSBjdXJyZW50IEdMVQot
ICAgICAgdGVzc2VsYXRvciBpbXBsZW1lbnRzIHRoZSAib2RkIiBydWxlLiAgVGhlICJub256ZXJv
IiBydWxlIGlzIGFub3RoZXIKLSAgICAgIGNvbW1vbiB3YXkgdG8gZGVmaW5lIHRoZSBpbnRlcmlv
ci4gIFRoZSBvdGhlciB0aHJlZSBydWxlcyBhcmUKLSAgICAgIHVzZWZ1bCBmb3IgcG9seWdvbiBD
U0cgb3BlcmF0aW9ucyAoc2VlIGJlbG93KS4KLQotICAgIC0gR0xVX1RFU1NfQk9VTkRBUllfT05M
WS4gIFZhbHVlczogVFJVRSAobm9uLXplcm8pIG9yIEZBTFNFICh6ZXJvKS4KLQotICAgICAgSWYg
VFJVRSwgcmV0dXJucyBhIHNldCBvZiBjbG9zZWQgY29udG91cnMgd2hpY2ggc2VwYXJhdGUgdGhl
Ci0gICAgICBwb2x5Z29uIGludGVyaW9yIGFuZCBleHRlcmlvciAocmF0aGVyIHRoYW4gYSB0ZXNz
ZWxhdGlvbikuCi0gICAgICBFeHRlcmlvciBjb250b3VycyBhcmUgb3JpZW50ZWQgQ0NXIHdpdGgg
cmVzcGVjdCB0byB0aGUgbm9ybWFsLAotICAgICAgaW50ZXJpb3IgY29udG91cnMgYXJlIG9yaWVu
dGVkIENXLiAgVGhlIEdMVV9URVNTX0JFR0lOIGNhbGxiYWNrCi0gICAgICB1c2VzIHRoZSB0eXBl
IEdMX0xJTkVfTE9PUCBmb3IgZWFjaCBjb250b3VyLgotICAgICAgCi0gICAgLSBHTFVfVEVTU19U
T0xFUkFOQ0UuICBWYWx1ZTogYSByZWFsIG51bWJlciBiZXR3ZWVuIDAuMCBhbmQgMS4wLgotCi0g
ICAgICBUaGlzIHNwZWNpZmllcyBhIHRvbGVyYW5jZSBmb3IgbWVyZ2luZyBmZWF0dXJlcyB0byBy
ZWR1Y2UgdGhlIHNpemUKLSAgICAgIG9mIHRoZSBvdXRwdXQuICBGb3IgZXhhbXBsZSwgdHdvIHZl
cnRpY2VzIHdoaWNoIGFyZSB2ZXJ5IGNsb3NlIHRvCi0gICAgICBlYWNoIG90aGVyIG1pZ2h0IGJl
IHJlcGxhY2VkIGJ5IGEgc2luZ2xlIHZlcnRleC4gIFRoZSB0b2xlcmFuY2UKLSAgICAgIGlzIG11
bHRpcGxpZWQgYnkgdGhlIGxhcmdlc3QgY29vcmRpbmF0ZSBtYWduaXR1ZGUgb2YgYW55IGlucHV0
IHZlcnRleDsKLSAgICAgIHRoaXMgc3BlY2lmaWVzIHRoZSBtYXhpbXVtIGRpc3RhbmNlIHRoYXQg
YW55IGZlYXR1cmUgY2FuIG1vdmUgYXMgdGhlCi0gICAgICByZXN1bHQgb2YgYSBzaW5nbGUgbWVy
Z2Ugb3BlcmF0aW9uLiAgSWYgYSBzaW5nbGUgZmVhdHVyZSB0YWtlcyBwYXJ0Ci0gICAgICBpbiBz
ZXZlcmFsIG1lcmdlIG9wZXJhdGlvbnMsIHRoZSB0b3RhbCBkaXN0YW5jZSBtb3ZlZCBjb3VsZCBi
ZSBsYXJnZXIuCi0KLSAgICAgIEZlYXR1cmUgbWVyZ2luZyBpcyBjb21wbGV0ZWx5IG9wdGlvbmFs
OyB0aGUgdG9sZXJhbmNlIGlzIG9ubHkgYSBoaW50LgotICAgICAgVGhlIGltcGxlbWVudGF0aW9u
IGlzIGZyZWUgdG8gbWVyZ2UgaW4gc29tZSBjYXNlcyBhbmQgbm90IGluIG90aGVycywKLSAgICAg
IG9yIHRvIG5ldmVyIG1lcmdlIGZlYXR1cmVzIGF0IGFsbC4gIFRoZSBkZWZhdWx0IHRvbGVyYW5j
ZSBpcyB6ZXJvLgotICAgICAgCi0gICAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBtZXJn
ZXMgdmVydGljZXMgb25seSBpZiB0aGV5IGFyZSBleGFjdGx5Ci0gICAgICBjb2luY2lkZW50LCBy
ZWdhcmRsZXNzIG9mIHRoZSBjdXJyZW50IHRvbGVyYW5jZS4gIEEgdmVydGV4IGlzCi0gICAgICBz
cGxpY2VkIGludG8gYW4gZWRnZSBvbmx5IGlmIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyB1bmFibGUg
dG8KLSAgICAgIGRpc3Rpbmd1aXNoIHdoaWNoIHNpZGUgb2YgdGhlIGVkZ2UgdGhlIHZlcnRleCBs
aWVzIG9uLgotICAgICAgVHdvIGVkZ2VzIGFyZSBtZXJnZWQgb25seSB3aGVuIGJvdGggZW5kcG9p
bnRzIGFyZSBpZGVudGljYWwuCi0KLQotICAgdm9pZCBnbHVUZXNzTm9ybWFsKCBHTFV0ZXNzZWxh
dG9yICp0ZXNzLAotCQkgICAgICBHTFVjb29yZCB4LCBHTFVjb29yZCB5LCBHTFVjb29yZCB6ICkK
LQotICAgIC0gTGV0cyB0aGUgdXNlciBzdXBwbHkgdGhlIHBvbHlnb24gbm9ybWFsLCBpZiBrbm93
bi4gIEFsbCBpbnB1dCBkYXRhCi0gICAgICBpcyBwcm9qZWN0ZWQgaW50byBhIHBsYW5lIHBlcnBl
bmRpY3VsYXIgdG8gdGhlIG5vcm1hbCBiZWZvcmUKLSAgICAgIHRlc3NlbGF0aW9uLiAgQWxsIG91
dHB1dCB0cmlhbmdsZXMgYXJlIG9yaWVudGVkIENDVyB3aXRoCi0gICAgICByZXNwZWN0IHRvIHRo
ZSBub3JtYWwgKENXIG9yaWVudGF0aW9uIGNhbiBiZSBvYnRhaW5lZCBieQotICAgICAgcmV2ZXJz
aW5nIHRoZSBzaWduIG9mIHRoZSBzdXBwbGllZCBub3JtYWwpLiAgRm9yIGV4YW1wbGUsIGlmCi0g
ICAgICB5b3Uga25vdyB0aGF0IGFsbCBwb2x5Z29ucyBsaWUgaW4gdGhlIHgteSBwbGFuZSwgY2Fs
bAotICAgICAgImdsdVRlc3NOb3JtYWwodGVzcywgMC4wLCAwLjAsIDEuMCkiIGJlZm9yZSByZW5k
ZXJpbmcgYW55IHBvbHlnb25zLgotICAgICAgCi0gICAgLSBJZiB0aGUgc3VwcGxpZWQgbm9ybWFs
IGlzICgwLDAsMCkgKHRoZSBkZWZhdWx0IHZhbHVlKSwgdGhlCi0gICAgICBub3JtYWwgaXMgZGV0
ZXJtaW5lZCBhcyBmb2xsb3dzLiAgVGhlIGRpcmVjdGlvbiBvZiB0aGUgbm9ybWFsLAotICAgICAg
dXAgdG8gaXRzIHNpZ24sIGlzIGZvdW5kIGJ5IGZpdHRpbmcgYSBwbGFuZSB0byB0aGUgdmVydGlj
ZXMsCi0gICAgICB3aXRob3V0IHJlZ2FyZCB0byBob3cgdGhlIHZlcnRpY2VzIGFyZSBjb25uZWN0
ZWQuICBJdCBpcwotICAgICAgZXhwZWN0ZWQgdGhhdCB0aGUgaW5wdXQgZGF0YSBsaWVzIGFwcHJv
eGltYXRlbHkgaW4gcGxhbmU7Ci0gICAgICBvdGhlcndpc2UgcHJvamVjdGlvbiBwZXJwZW5kaWN1
bGFyIHRvIHRoZSBjb21wdXRlZCBub3JtYWwgbWF5Ci0gICAgICBzdWJzdGFudGlhbGx5IGNoYW5n
ZSB0aGUgZ2VvbWV0cnkuICBUaGUgc2lnbiBvZiB0aGUgbm9ybWFsIGlzCi0gICAgICBjaG9zZW4g
c28gdGhhdCB0aGUgc3VtIG9mIHRoZSBzaWduZWQgYXJlYXMgb2YgYWxsIGlucHV0IGNvbnRvdXJz
Ci0gICAgICBpcyBub24tbmVnYXRpdmUgKHdoZXJlIGEgQ0NXIGNvbnRvdXIgaGFzIHBvc2l0aXZl
IGFyZWEpLgotICAgIAotICAgIC0gVGhlIHN1cHBsaWVkIG5vcm1hbCBwZXJzaXN0cyB1bnRpbCBp
dCBpcyBjaGFuZ2VkIGJ5IGFub3RoZXIKLSAgICAgIGNhbGwgdG8gZ2x1VGVzc05vcm1hbC4KLQot
Ci0gIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgR0xVIHRlc3NlbGF0b3IKLSAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0gIFRoZSBwcmVm
ZXJyZWQgaW50ZXJmYWNlIGlzIHRoZSBvbmUgZGVzY3JpYmVkIGFib3ZlLiAgVGhlIGZvbGxvd2lu
ZwotICByb3V0aW5lcyBhcmUgb2Jzb2xldGUsIGFuZCBhcmUgcHJvdmlkZWQgb25seSBmb3IgYmFj
a3dhcmQgY29tcGF0aWJpbGl0eToKLQotICAgIHR5cGVkZWYgR0xVdGVzc2VsYXRvciBHTFV0cmlh
bmd1bGF0b3JPYmo7CS8qIG9ic29sZXRlIG5hbWUgKi8KLQotICAgIHZvaWQgZ2x1QmVnaW5Qb2x5
Z29uKCBHTFV0ZXNzZWxhdG9yICp0ZXNzICk7Ci0gICAgdm9pZCBnbHVOZXh0Q29udG91ciggR0xV
dGVzc2VsYXRvciAqdGVzcywgR0xlbnVtIHR5cGUgKTsKLSAgICB2b2lkIGdsdUVuZFBvbHlnb24o
IEdMVXRlc3NlbGF0b3IgKnRlc3MgKTsKLSAgCi0gICJ0eXBlIiBpcyBvbmUgb2YgR0xVX0VYVEVS
SU9SLCBHTFVfSU5URVJJT1IsIEdMVV9DQ1csIEdMVV9DVywgb3IKLSAgR0xVX1VOS05PV04uICBJ
dCBpcyBpZ25vcmVkIGJ5IHRoZSBjdXJyZW50IEdMVSB0ZXNzZWxhdG9yLgotICAKLSAgR0xVX0JF
R0lOLCBHTFVfVkVSVEVYLCBHTFVfRU5ELCBHTFVfRVJST1IsIGFuZCBHTFVfRURHRV9GTEFHIGFy
ZSBkZWZpbmVkCi0gIGFzIHN5bm9ueW1zIGZvciBHTFVfVEVTU19CRUdJTiwgR0xVX1RFU1NfVkVS
VEVYLCBHTFVfVEVTU19FTkQsCi0gIEdMVV9URVNTX0VSUk9SLCBhbmQgR0xVX1RFU1NfRURHRV9G
TEFHLgotCi0KLVBvbHlnb24gQ1NHIG9wZXJhdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotICBUaGUgZmVhdHVyZXMgb2YgdGhlIHRlc3NlbGF0b3IgbWFrZSBpdCBlYXN5IHRvIGZpbmQg
dGhlIHVuaW9uLCBkaWZmZXJlbmNlLAotICBvciBpbnRlcnNlY3Rpb24gb2Ygc2V2ZXJhbCBwb2x5
Z29ucy4KLQotICBGaXJzdCwgYXNzdW1lIHRoYXQgZWFjaCBwb2x5Z29uIGlzIGRlZmluZWQgc28g
dGhhdCB0aGUgd2luZGluZyBudW1iZXIKLSAgaXMgMCBmb3IgZWFjaCBleHRlcmlvciByZWdpb24s
IGFuZCAxIGZvciBlYWNoIGludGVyaW9yIHJlZ2lvbi4gIFVuZGVyCi0gIHRoaXMgbW9kZWwsIEND
VyBjb250b3VycyBkZWZpbmUgdGhlIG91dGVyIGJvdW5kYXJ5IG9mIHRoZSBwb2x5Z29uLCBhbmQK
LSAgQ1cgY29udG91cnMgZGVmaW5lIGhvbGVzLiAgQ29udG91cnMgbWF5IGJlIG5lc3RlZCwgYnV0
IGEgbmVzdGVkCi0gIGNvbnRvdXIgbXVzdCBiZSBvcmllbnRlZCBvcHBvc2l0ZWx5IGZyb20gdGhl
IGNvbnRvdXIgdGhhdCBjb250YWlucyBpdC4KLQotICBJZiB0aGUgb3JpZ2luYWwgcG9seWdvbnMg
ZG8gbm90IHNhdGlzZnkgdGhpcyBkZXNjcmlwdGlvbiwgdGhleSBjYW4gYmUKLSAgY29udmVydGVk
IHRvIHRoaXMgZm9ybSBieSBmaXJzdCBydW5uaW5nIHRoZSB0ZXNzZWxhdG9yIHdpdGggdGhlCi0g
IEdMVV9URVNTX0JPVU5EQVJZX09OTFkgcHJvcGVydHkgdHVybmVkIG9uLiAgVGhpcyByZXR1cm5z
IGEgbGlzdCBvZgotICBjb250b3VycyBzYXRpc2Z5aW5nIHRoZSByZXN0cmljdGlvbiBhYm92ZS4g
IEJ5IGFsbG9jYXRpbmcgdHdvCi0gIHRlc3NlbGF0b3Igb2JqZWN0cywgdGhlIGNhbGxiYWNrcyBm
cm9tIG9uZSB0ZXNzZWxhdG9yIGNhbiBiZSBmZWQKLSAgZGlyZWN0bHkgdG8gdGhlIGlucHV0IG9m
IGFub3RoZXIuCi0KLSAgR2l2ZW4gdHdvIG9yIG1vcmUgcG9seWdvbnMgb2YgdGhlIGZvcm0gYWJv
dmUsIENTRyBvcGVyYXRpb25zIGNhbiBiZQotICBpbXBsZW1lbnRlZCBhcyBmb2xsb3dzOgotCi0g
IFVuaW9uCi0gICAgIERyYXcgYWxsIHRoZSBpbnB1dCBjb250b3VycyBhcyBhIHNpbmdsZSBwb2x5
Z29uLiAgVGhlIHdpbmRpbmcgbnVtYmVyCi0gICAgIG9mIGVhY2ggcmVzdWx0aW5nIHJlZ2lvbiBp
cyB0aGUgbnVtYmVyIG9mIG9yaWdpbmFsIHBvbHlnb25zCi0gICAgIHdoaWNoIGNvdmVyIGl0LiAg
VGhlIHVuaW9uIGNhbiBiZSBleHRyYWN0ZWQgdXNpbmcgdGhlCi0gICAgIEdMVV9URVNTX1dJTkRJ
TkdfTk9OWkVSTyBvciBHTFVfVEVTU19XSU5ESU5HX1BPU0lUSVZFIHdpbmRpbmcgcnVsZXMuCi0g
ICAgIE5vdGUgdGhhdCB3aXRoIHRoZSBub256ZXJvIHJ1bGUsIHdlIHdvdWxkIGdldCB0aGUgc2Ft
ZSByZXN1bHQgaWYKLSAgICAgYWxsIGNvbnRvdXIgb3JpZW50YXRpb25zIHdlcmUgcmV2ZXJzZWQu
Ci0KLSAgSW50ZXJzZWN0aW9uICh0d28gcG9seWdvbnMgYXQgYSB0aW1lIG9ubHkpCi0gICAgIERy
YXcgYSBzaW5nbGUgcG9seWdvbiB1c2luZyB0aGUgY29udG91cnMgZnJvbSBib3RoIGlucHV0IHBv
bHlnb25zLgotICAgICBFeHRyYWN0IHRoZSByZXN1bHQgdXNpbmcgR0xVX1RFU1NfV0lORElOR19B
QlNfR0VRX1RXTy4gIChTaW5jZSB0aGlzCi0gICAgIHdpbmRpbmcgcnVsZSBsb29rcyBhdCB0aGUg
YWJzb2x1dGUgdmFsdWUsIHJldmVyc2luZyBhbGwgY29udG91cgotICAgICBvcmllbnRhdGlvbnMg
ZG9lcyBub3QgY2hhbmdlIHRoZSByZXN1bHQuKQotCi0gIERpZmZlcmVuY2UKLSAgCi0gICAgIFN1
cHBvc2Ugd2Ugd2FudCB0byBjb21wdXRlIEEgXCAoQiB1bmlvbiBDIHVuaW9uIEQpLiAgRHJhdyBh
IHNpbmdsZQotICAgICBwb2x5Z29uIGNvbnNpc3Rpbmcgb2YgdGhlIHVubW9kaWZpZWQgY29udG91
cnMgZnJvbSBBLCBmb2xsb3dlZCBieQotICAgICB0aGUgY29udG91cnMgb2YgQixDLEQgd2l0aCB0
aGUgdmVydGV4IG9yZGVyIHJldmVyc2VkICh0aGlzIGNoYW5nZXMKLSAgICAgdGhlIHdpbmRpbmcg
bnVtYmVyIG9mIHRoZSBpbnRlcmlvciByZWdpb25zIHRvIC0xKS4gIFRvIGV4dHJhY3QgdGhlCi0g
ICAgIHJlc3VsdCwgdXNlIHRoZSBHTFVfVEVTU19XSU5ESU5HX1BPU0lUSVZFIHJ1bGUuCi0gICAK
LSAgICAgSWYgQixDLEQgYXJlIHRoZSByZXN1bHQgb2YgYSBHTFVfVEVTU19CT1VOREFSWV9PTkxZ
IGNhbGwsIGFuCi0gICAgIGFsdGVybmF0aXZlIHRvIHJldmVyc2luZyB0aGUgdmVydGV4IG9yZGVy
IGlzIHRvIHJldmVyc2UgdGhlIHNpZ24gb2YKLSAgICAgdGhlIHN1cHBsaWVkIG5vcm1hbC4gIEZv
ciBleGFtcGxlIGluIHRoZSB4LXkgcGxhbmUsIGNhbGwKLSAgICAgZ2x1VGVzc05vcm1hbCggdGVz
cywgMC4wLCAwLjAsIC0xLjAgKS4KLSAKLQotUGVyZm9ybWFuY2UKLS0tLS0tLS0tLS0tCi0KLSAg
VGhlIHRlc3NlbGF0b3IgaXMgbm90IGludGVuZGVkIGZvciBpbW1lZGlhdGUtbW9kZSByZW5kZXJp
bmc7IHdoZW4KLSAgcG9zc2libGUgdGhlIG91dHB1dCBzaG91bGQgYmUgY2FjaGVkIGluIGEgdXNl
ciBzdHJ1Y3R1cmUgb3IgZGlzcGxheQotICBsaXN0LiAgR2VuZXJhbCBwb2x5Z29uIHRlc3NlbGF0
aW9uIGlzIGFuIGluaGVyZW50bHkgZGlmZmljdWx0IHByb2JsZW0sCi0gIGVzcGVjaWFsbHkgZ2l2
ZW4gdGhlIGdvYWwgb2YgZXh0cmVtZSByb2J1c3RuZXNzLgotCi0gIFRoZSBpbXBsZW1lbnRhdGlv
biBtYWtlcyBhbiBlZmZvcnQgdG8gb3V0cHV0IGEgc21hbGwgbnVtYmVyIG9mIGZhbnMKLSAgYW5k
IHN0cmlwczsgdGhpcyBzaG91bGQgaW1wcm92ZSB0aGUgcmVuZGVyaW5nIHBlcmZvcm1hbmNlIHdo
ZW4gdGhlCi0gIG91dHB1dCBpcyB1c2VkIGluIGEgZGlzcGxheSBsaXN0LgotCi0gIFNpbmdsZS1j
b250b3VyIGlucHV0IHBvbHlnb25zIGFyZSBmaXJzdCB0ZXN0ZWQgdG8gc2VlIHdoZXRoZXIgdGhl
eSBjYW4KLSAgYmUgcmVuZGVyZWQgYXMgYSB0cmlhbmdsZSBmYW4gd2l0aCByZXNwZWN0IHRvIHRo
ZSBmaXJzdCB2ZXJ0ZXggKHRvCi0gIGF2b2lkIHJ1bm5pbmcgdGhlIGZ1bGwgZGVjb21wb3NpdGlv
biBhbGdvcml0aG0gb24gY29udmV4IHBvbHlnb25zKS4KLSAgTm9uLWNvbnZleCBwb2x5Z29ucyBt
YXkgYmUgcmVuZGVyZWQgYnkgdGhpcyAiZmFzdCBwYXRoIiBhcyB3ZWxsLCBpZgotICB0aGUgYWxn
b3JpdGhtIGdldHMgbHVja3kgaW4gaXRzIGNob2ljZSBvZiBhIHN0YXJ0aW5nIHZlcnRleC4KLQot
ICBGb3IgYmVzdCBwZXJmb3JtYW5jZSBmb2xsb3cgdGhlc2UgZ3VpZGVsaW5lczoKLQotICAgLSBz
dXBwbHkgdGhlIHBvbHlnb24gbm9ybWFsLCBpZiBhdmFpbGFibGUsIHVzaW5nIGdsdVRlc3NOb3Jt
YWwoKS4KLSAgICAgVGhpcyByZXByZXNlbnRzIGFib3V0IDEwJSBvZiB0aGUgY29tcHV0YXRpb24g
dGltZS4gIEZvciBleGFtcGxlLAotICAgICBpZiBhbGwgcG9seWdvbnMgbGllIGluIHRoZSB4LXkg
cGxhbmUsIHVzZSBnbHVUZXNzTm9ybWFsKHRlc3MsMCwwLDEpLgotCi0gICAtIHJlbmRlciBtYW55
IHBvbHlnb25zIHVzaW5nIHRoZSBzYW1lIHRlc3NlbGF0b3Igb2JqZWN0LCByYXRoZXIgdGhhbgot
ICAgICBhbGxvY2F0aW5nIGEgbmV3IHRlc3NlbGF0b3IgZm9yIGVhY2ggb25lLiAgKEluIGEgbXVs
dGktdGhyZWFkZWQsCi0gICAgIG11bHRpLXByb2Nlc3NvciBlbnZpcm9ubWVudCB5b3UgbWF5IGdl
dCBiZXR0ZXIgcGVyZm9ybWFuY2UgdXNpbmcKLSAgICAgc2V2ZXJhbCB0ZXNzZWxhdG9ycy4pCi0K
LQotQ29tcGFyaXNvbiB3aXRoIHRoZSBHTFUgdGVzc2VsYXRvcgotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0gIE9uIHBvbHlnb25zIHdoaWNoIG1ha2UgaXQgdGhyb3VnaCB0
aGUgImZhc3QgcGF0aCIsIHRoZSB0ZXNzZWxhdG9yIGlzCi0gIDMgdG8gNSB0aW1lcyBmYXN0ZXIg
dGhhbiB0aGUgR0xVIHRlc3NlbGF0b3IuCi0KLSAgT24gcG9seWdvbnMgd2hpY2ggZG9uJ3QgbWFr
ZSBpdCB0aHJvdWdoIHRoZSBmYXN0IHBhdGggKGJ1dCB3aGljaCBkb24ndAotICBoYXZlIHNlbGYt
aW50ZXJzZWN0aW9ucyBvciBkZWdlbmVyYWNpZXMpLCBpdCBpcyBhYm91dCAyIHRpbWVzIHNsb3dl
ci4KLQotICBPbiBwb2x5Z29ucyB3aXRoIHNlbGYtaW50ZXJzZWN0aW9ucyBvciBkZWdlbmVyYWNl
cywgdGhlcmUgaXMgbm90aGluZwotICB0byBjb21wYXJlIGFnYWluc3QuCi0KLSAgVGhlIG5ldyB0
ZXNzZWxhdG9yIGdlbmVyYXRlcyBtYW55IG1vcmUgZmFucyBhbmQgc3RyaXBzLCByZWR1Y2luZyB0
aGUKLSAgbnVtYmVyIG9mIHZlcnRpY2VzIHRoYXQgbmVlZCB0byBiZSBzZW50IHRvIHRoZSBoYXJk
d2FyZS4KLQotICBLZXkgdG8gdGhlIHN0YXRpc3RpY3M6Ci0KLQl2ZXJ0CQludW1iZXIgb2YgaW5w
dXQgdmVydGljZXMgb24gYWxsIGNvbnRvdXJzCi0JY250cgkJbnVtYmVyIG9mIGlucHV0IGNvbnRv
dXJzCi0JdHJpCQludW1iZXIgb2YgdHJpYW5nbGVzIGluIGFsbCBvdXRwdXQgcHJpbWl0aXZlcwot
CXN0cmlwCQludW1iZXIgb2YgdHJpYW5nbGUgc3RyaXBzCi0JZmFuCQludW1iZXIgb2YgdHJpYW5n
bGUgZmFucwotCWluZAkJbnVtYmVyIG9mIGluZGVwZW5kZW50IHRyaWFuZ2xlcwotCW1zCQludW1i
ZXIgb2YgbWlsbGlzZWNvbmRzIGZvciB0ZXNzZWxhdGlvbgotCQkJKG9uIGEgMTUwTUh6IFI0NDAw
IEluZHkpCi0KLSAgQ29udmV4IHBvbHlnb24gZXhhbXBsZXM6Ci0KLU5ldzogICAgIDMgdmVydCwg
ICAxIGNudHIsICAgICAxIHRyaSwgICAwIHN0cmlwLCAgIDAgZmFuLCAgICAgMSBpbmQsICAwLjA0
NTkgbXMKLU9sZDogICAgIDMgdmVydCwgICAxIGNudHIsICAgICAxIHRyaSwgICAwIHN0cmlwLCAg
IDAgZmFuLCAgICAgMSBpbmQsICAgMC4xNDkgbXMKLU5ldzogICAgIDQgdmVydCwgICAxIGNudHIs
ICAgICAyIHRyaSwgICAwIHN0cmlwLCAgIDEgZmFuLCAgICAgMCBpbmQsICAwLjA0NTkgbXMKLU9s
ZDogICAgIDQgdmVydCwgICAxIGNudHIsICAgICAyIHRyaSwgICAwIHN0cmlwLCAgIDAgZmFuLCAg
ICAgMiBpbmQsICAgMC4xNjEgbXMKLU5ldzogICAgMzYgdmVydCwgICAxIGNudHIsICAgIDM0IHRy
aSwgICAwIHN0cmlwLCAgIDEgZmFuLCAgICAgMCBpbmQsICAgMC4xNTMgbXMKLU9sZDogICAgMzYg
dmVydCwgICAxIGNudHIsICAgIDM0IHRyaSwgICAwIHN0cmlwLCAgIDAgZmFuLCAgICAzNCBpbmQs
ICAgMC42MjEgbXMKLQotICBDb25jYXZlIHNpbmdsZS1jb250b3VyIHBvbHlnb25zOgotCi1OZXc6
ICAgICA1IHZlcnQsICAgMSBjbnRyLCAgICAgMyB0cmksICAgMCBzdHJpcCwgICAxIGZhbiwgICAg
IDAgaW5kLCAgIDAuMDUyIG1zCi1PbGQ6ICAgICA1IHZlcnQsICAgMSBjbnRyLCAgICAgMyB0cmks
ICAgMCBzdHJpcCwgICAwIGZhbiwgICAgIDMgaW5kLCAgIDAuMjUyIG1zCi1OZXc6ICAgIDE5IHZl
cnQsICAgMSBjbnRyLCAgICAxNyB0cmksICAgMiBzdHJpcCwgICAyIGZhbiwgICAgIDEgaW5kLCAg
IDAuOTExIG1zCi1PbGQ6ICAgIDE5IHZlcnQsICAgMSBjbnRyLCAgICAxNyB0cmksICAgMCBzdHJp
cCwgICAwIGZhbiwgICAgMTcgaW5kLCAgIDAuNTI5IG1zCi1OZXc6ICAgMTUxIHZlcnQsICAgMSBj
bnRyLCAgIDE0OSB0cmksICAxMyBzdHJpcCwgIDE4IGZhbiwgICAgIDMgaW5kLCAgICA2LjgyIG1z
Ci1PbGQ6ICAgMTUxIHZlcnQsICAgMSBjbnRyLCAgIDE0OSB0cmksICAgMCBzdHJpcCwgICAzIGZh
biwgICAxNDMgaW5kLCAgICAgMi43IG1zCi1OZXc6ICAgNTc0IHZlcnQsICAgMSBjbnRyLCAgIDU3
MiB0cmksICA1OSBzdHJpcCwgIDU0IGZhbiwgICAgMTEgaW5kLCAgICAyNi42IG1zCi1PbGQ6ICAg
NTc0IHZlcnQsICAgMSBjbnRyLCAgIDU3MiB0cmksICAgMCBzdHJpcCwgIDMxIGZhbiwgICA0OTkg
aW5kLCAgICAxMi40IG1zCi0KLSAgTXVsdGlwbGUgY29udG91cnMsIGJ1dCBubyBpbnRlcnNlY3Rp
b25zOgotCi1OZXc6ICAgICA3IHZlcnQsICAgMiBjbnRyLCAgICAgNyB0cmksICAgMSBzdHJpcCwg
ICAwIGZhbiwgICAgIDAgaW5kLCAgIDAuNTI3IG1zCi1PbGQ6ICAgICA3IHZlcnQsICAgMiBjbnRy
LCAgICAgNyB0cmksICAgMCBzdHJpcCwgICAwIGZhbiwgICAgIDcgaW5kLCAgIDAuMjc0IG1zCi1O
ZXc6ICAgIDgxIHZlcnQsICAgNiBjbnRyLCAgICA4OSB0cmksICAgOSBzdHJpcCwgICA3IGZhbiwg
ICAgIDYgaW5kLCAgICAzLjg4IG1zCi1PbGQ6ICAgIDgxIHZlcnQsICAgNiBjbnRyLCAgICA4OSB0
cmksICAgMCBzdHJpcCwgIDEzIGZhbiwgICAgNjEgaW5kLCAgICAgMi4yIG1zCi1OZXc6ICAgMzkx
IHZlcnQsICAxOSBjbnRyLCAgIDQxMyB0cmksICAzNyBzdHJpcCwgIDMyIGZhbiwgICAgMjYgaW5k
LCAgICAyMC4yIG1zCi1PbGQ6ICAgMzkxIHZlcnQsICAxOSBjbnRyLCAgIDQxMyB0cmksICAgMCBz
dHJpcCwgIDI1IGZhbiwgICAzNjMgaW5kLCAgICA4LjY4IG1zCi0KLSAgU2VsZi1pbnRlcnNlY3Rp
bmcgYW5kIGRlZ2VuZXJhdGUgZXhhbXBsZXM6Ci0KLUJvd3RpZTogIDQgdmVydCwgICAxIGNudHIs
ICAgICAyIHRyaSwgICAwIHN0cmlwLCAgIDAgZmFuLCAgICAgMiBpbmQsICAgMC40ODMgbXMKLVN0
YXI6ICAgIDUgdmVydCwgICAxIGNudHIsICAgICA1IHRyaSwgICAwIHN0cmlwLCAgIDAgZmFuLCAg
ICAgNSBpbmQsICAgIDAuOTEgbXMKLVJhbmRvbTogMjQgdmVydCwgICA3IGNudHIsICAgIDQ2IHRy
aSwgICAyIHN0cmlwLCAgMTIgZmFuLCAgICAgNyBpbmQsICAgIDUuMzIgbXMKLUZvbnQ6ICAzMzMg
dmVydCwgICAyIGNudHIsICAgMzMxIHRyaSwgIDMyIHN0cmlwLCAgMTYgZmFuLCAgICAgMyBpbmQs
ICAgIDE0LjEgbXMKLTogICAgICAxNjcgdmVydCwgIDM1IGNudHIsICAgMjU0IHRyaSwgICA4IHN0
cmlwLCAgNTYgZmFuLCAgICA1MiBpbmQsICAgIDQ2LjMgbXMKLTogICAgICAgNzggdmVydCwgICAx
IGNudHIsICAyNjc1IHRyaSwgMTQ4IHN0cmlwLCAyMDcgZmFuLCAgIDE4MCBpbmQsICAgICAyNDMg
bXMKLTogICAgMTI0ODAgdmVydCwgICAyIGNudHIsIDEyNDc4IHRyaSwgNzM2IHN0cmlwLDEyNzUg
ZmFuLCAgICAgNSBpbmQsICAgIDEwMTAgbXMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvdGhpcmRwYXJ0
eS9nbHUvbGlidGVzcy9hbGctb3V0bGluZSBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVz
cy9hbGctb3V0bGluZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTFlZDdmMy4uMDAw
MDAwMAotLS0gYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvYWxnLW91dGxpbmUKKysr
IC9kZXYvbnVsbApAQCAtMSwyMjkgKzAsMCBAQAotLyoKLSoqICRIZWFkZXI6IC9jdnMvcHJvamVj
dHMvb2dsLXNhbXBsZS9tYWluL2dmeC9saWIvZ2x1L2xpYnRlc3MvYWxnLW91dGxpbmUsdiAxLjEg
MjAwMC8wNC8yNiAwNTo1Mzo1OSBsanAgRXhwICQKLSovCi0KLVRoaXMgaXMgb25seSBhIHZlcnkg
YnJpZWYgb3ZlcnZpZXcuICBUaGVyZSBpcyBxdWl0ZSBhIGJpdCBvZgotYWRkaXRpb25hbCBkb2N1
bWVudGF0aW9uIGluIHRoZSBzb3VyY2UgY29kZSBpdHNlbGYuCi0KLQotR29hbHMgb2Ygcm9idXN0
IHRlc3NlbGF0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGhlIHRlc3NlbGF0
aW9uIGFsZ29yaXRobSBpcyBmdW5kYW1lbnRhbGx5IGEgMkQgYWxnb3JpdGhtLiAgV2UKLWluaXRp
YWxseSBwcm9qZWN0IGFsbCBkYXRhIGludG8gYSBwbGFuZTsgb3VyIGdvYWwgaXMgdG8gcm9idXN0
bHkKLXRlc3NlbGF0ZSB0aGUgcHJvamVjdGVkIGRhdGEuICBUaGUgc2FtZSB0b3BvbG9naWNhbCB0
ZXNzZWxhdGlvbiBpcwotdGhlbiBhcHBsaWVkIHRvIHRoZSBpbnB1dCBkYXRhLgotCi1Ub3BvbG9n
aWNhbGx5LCB0aGUgb3V0cHV0IHNob3VsZCBhbHdheXMgYmUgYSB0ZXNzZWxhdGlvbi4gIElmIHRo
ZQotaW5wdXQgaXMgZXZlbiBzbGlnaHRseSBub24tcGxhbmFyLCB0aGVuIHNvbWUgdHJpYW5nbGVz
IHdpbGwKLW5lY2Vzc2FyaWx5IGJlIGJhY2stZmFjaW5nIHdoZW4gdmlld2VkIGZyb20gc29tZSBh
bmdsZXMsIGJ1dCB0aGUgZ29hbAotaXMgdG8gbWluaW1pemUgdGhpcyBlZmZlY3QuCi0KLVRoZSBh
bGdvcml0aG0gbmVlZHMgc29tZSBjYXBhYmlsaXR5IG9mIGNsZWFuaW5nIHVwIHRoZSBpbnB1dCBk
YXRhIGFzCi13ZWxsIGFzIHRoZSBudW1lcmljYWwgZXJyb3JzIGluIGl0cyBvd24gY2FsY3VsYXRp
b25zLiAgT25lIHdheSB0byBkbwotdGhpcyBpcyB0byBzcGVjaWZ5IGEgdG9sZXJhbmNlIGFzIGRl
ZmluZWQgYWJvdmUsIGFuZCBjbGVhbiB1cCB0aGUKLWlucHV0IGFuZCBvdXRwdXQgZHVyaW5nIHRo
ZSBsaW5lIHN3ZWVwIHByb2Nlc3MuICBBdCB0aGUgdmVyeSBsZWFzdCwKLXRoZSBhbGdvcml0aG0g
bXVzdCBoYW5kbGUgY29pbmNpZGVudCB2ZXJ0aWNlcywgdmVydGljZXMgaW5jaWRlbnQgdG8gYW4K
LWVkZ2UsIGFuZCBjb2luY2lkZW50IGVkZ2VzLgotCi0KLVBoYXNlcyBvZiB0aGUgYWxnb3JpdGht
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0xLiBGaW5kIHRoZSBwb2x5Z29uIG5vcm1hbCBO
LgotMi4gUHJvamVjdCB0aGUgdmVydGV4IGRhdGEgb250byBhIHBsYW5lLiAgSXQgZG9lcyBub3Qg
bmVlZCB0byBiZQotICAgcGVycGVuZGljdWxhciB0byB0aGUgbm9ybWFsLCBlZy4gd2UgY2FuIHBy
b2plY3Qgb250byB0aGUgcGxhbmUKLSAgIHBlcnBlbmRpY3VsYXIgdG8gdGhlIGNvb3JkaW5hdGUg
YXhpcyB3aG9zZSBkb3QgcHJvZHVjdCB3aXRoIE4KLSAgIGlzIGxhcmdlc3QuCi0zLiBVc2luZyBh
IGxpbmUtc3dlZXAgYWxnb3JpdGhtLCBwYXJ0aXRpb24gdGhlIHBsYW5lIGludG8geC1tb25vdG9u
ZQotICAgcmVnaW9ucy4gIEFueSB2ZXJ0aWNhbCBsaW5lIGludGVyc2VjdHMgYW4geC1tb25vdG9u
ZSByZWdpb24gaW4KLSAgIGF0IG1vc3Qgb25lIGludGVydmFsLgotNC4gVHJpYW5ndWxhdGUgdGhl
IHgtbW9ub3RvbmUgcmVnaW9ucy4KLTUuIEdyb3VwIHRoZSB0cmlhbmdsZXMgaW50byBzdHJpcHMg
YW5kIGZhbnMuCi0KLQotRmluZGluZyB0aGUgbm9ybWFsIHZlY3RvcgotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotCi1BIGNvbW1vbiB3YXkgdG8gZmluZCBhIHBvbHlnb24gbm9ybWFsIGlzIHRv
IGNvbXB1dGUgdGhlIHNpZ25lZCBhcmVhCi13aGVuIHRoZSBwb2x5Z29uIGlzIHByb2plY3RlZCBh
bG9uZyB0aGUgdGhyZWUgY29vcmRpbmF0ZSBheGVzLiAgV2UKLWNhbid0IGRvIHRoaXMsIHNpbmNl
IGNvbnRvdXJzIGNhbiBoYXZlIHplcm8gYXJlYSB3aXRob3V0IGJlaW5nCi1kZWdlbmVyYXRlIChl
Zy4gYSBib3d0aWUpLgotCi1XZSBmaXQgYSBwbGFuZSB0byB0aGUgdmVydGV4IGRhdGEsIGlnbm9y
aW5nIGhvdyB0aGV5IGFyZSBjb25uZWN0ZWQKLWludG8gY29udG91cnMuICBJZGVhbGx5IHRoaXMg
d291bGQgYmUgYSBsZWFzdC1zcXVhcmVzIGZpdDsgaG93ZXZlciBmb3IKLW91ciBwdXJwb3NlIHRo
ZSBhY2N1cmFjeSBvZiB0aGUgbm9ybWFsIGlzIG5vdCBpbXBvcnRhbnQuICBJbnN0ZWFkIHdlCi1m
aW5kIHRocmVlIHZlcnRpY2VzIHdoaWNoIGFyZSB3aWRlbHkgc2VwYXJhdGVkLCBhbmQgY29tcHV0
ZSB0aGUgbm9ybWFsCi10byB0aGUgdHJpYW5nbGUgdGhleSBmb3JtLiAgVGhlIHZlcnRpY2VzIGFy
ZSBjaG9zZW4gc28gdGhhdCB0aGUKLXRyaWFuZ2xlIGhhcyBhbiBhcmVhIGF0IGxlYXN0IDEvc3Fy
dCgzKSB0aW1lcyB0aGUgbGFyZ2VzdCBhcmVhIG9mIGFueQotdHJpYW5nbGUgZm9ybWVkIHVzaW5n
IHRoZSBpbnB1dCB2ZXJ0aWNlcy4gIAotCi1UaGUgY29udG91cnMgZG8gYWZmZWN0IHRoZSBvcmll
bnRhdGlvbiBvZiB0aGUgbm9ybWFsOyBhZnRlciBjb21wdXRpbmcKLXRoZSBub3JtYWwsIHdlIGNo
ZWNrIHRoYXQgdGhlIHN1bSBvZiB0aGUgc2lnbmVkIGNvbnRvdXIgYXJlYXMgaXMKLW5vbi1uZWdh
dGl2ZSwgYW5kIHJldmVyc2UgdGhlIG5vcm1hbCBpZiBuZWNlc3NhcnkuCi0KLQotUHJvamVjdGlu
ZyB0aGUgdmVydGljZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVdlIHByb2plY3QgdGhl
IHZlcnRpY2VzIG9udG8gYSBwbGFuZSBwZXJwZW5kaWN1bGFyIHRvIG9uZSBvZiB0aGUgdGhyZWUK
LWNvb3JkaW5hdGUgYXhlcy4gIFRoaXMgaGVscHMgbnVtZXJpY2FsIGFjY3VyYWN5IGJ5IHJlbW92
aW5nIGEKLXRyYW5zZm9ybWF0aW9uIHN0ZXAgYmV0d2VlbiB0aGUgb3JpZ2luYWwgaW5wdXQgZGF0
YSBhbmQgdGhlIGRhdGEKLXByb2Nlc3NlZCBieSB0aGUgYWxnb3JpdGhtLiAgVGhlIHByb2plY3Rp
b24gYWxzbyBjb21wcmVzc2VzIHRoZSBpbnB1dAotZGF0YTsgdGhlIDJEIGRpc3RhbmNlIGJldHdl
ZW4gdmVydGljZXMgYWZ0ZXIgcHJvamVjdGlvbiBtYXkgYmUgc21hbGxlcgotdGhhbiB0aGUgb3Jp
Z2luYWwgMkQgZGlzdGFuY2UuICBIb3dldmVyIGJ5IGNob29zaW5nIHRoZSBjb29yZGluYXRlCi1h
eGlzIHdob3NlIGRvdCBwcm9kdWN0IHdpdGggdGhlIG5vcm1hbCBpcyBncmVhdGVzdCwgdGhlIGNv
bXByZXNzaW9uCi1mYWN0b3IgaXMgYXQgbW9zdCAxL3NxcnQoMykuCi0KLUV2ZW4gdGhvdWdoIHRo
ZSAqYWNjdXJhY3kqIG9mIHRoZSBub3JtYWwgaXMgbm90IHRoYXQgaW1wb3J0YW50IChzaW5jZQot
d2UgYXJlIHByb2plY3RpbmcgcGVycGVuZGljdWxhciB0byBhIGNvb3JkaW5hdGUgYXhpcyBhbnl3
YXkpLCB0aGUKLSpyb2J1c3RuZXNzKiBvZiB0aGUgY29tcHV0YXRpb24gaXMgaW1wb3J0YW50LiAg
Rm9yIGV4YW1wbGUsIGlmIHRoZXJlCi1hcmUgbWFueSB2ZXJ0aWNlcyB3aGljaCBsaWUgYWxtb3N0
IGFsb25nIGEgbGluZSwgYW5kIG9uZSB2ZXJ0ZXggVgotd2hpY2ggaXMgd2VsbC1zZXBhcmF0ZWQg
ZnJvbSB0aGUgbGluZSwgdGhlbiBvdXIgbm9ybWFsIGNvbXB1dGF0aW9uCi1zaG91bGQgaW52b2x2
ZSBWIG90aGVyd2lzZSB0aGUgcmVzdWx0cyB3aWxsIGJlIGdhcmJhZ2UuCi0KLVRoZSBhZHZhbnRh
Z2Ugb2YgcHJvamVjdGluZyBwZXJwZW5kaWN1bGFyIHRvIHRoZSBwb2x5Z29uIG5vcm1hbCBpcwot
dGhhdCBjb21wdXRlZCBpbnRlcnNlY3Rpb24gcG9pbnRzIHdpbGwgYmUgYXMgY2xvc2UgYXMgcG9z
c2libGUgdG8KLXRoZWlyIGlkZWFsIGxvY2F0aW9ucy4gIFRvIGdldCB0aGlzIGJlaGF2aW9yLCBk
ZWZpbmUgVFJVRV9QUk9KRUNULgotCi0KLVRoZSBMaW5lIFN3ZWVwCi0tLS0tLS0tLS0tLS0tLQot
Ci1UaGVyZSBhcmUgdGhyZWUgZGF0YSBzdHJ1Y3R1cmVzOiB0aGUgbWVzaCwgdGhlIGV2ZW50IHF1
ZXVlLCBhbmQgdGhlCi1lZGdlIGRpY3Rpb25hcnkuCi0KLVRoZSBtZXNoIGlzIGEgInF1YWQtZWRn
ZSIgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggcmVjb3JkcyB0aGUgdG9wb2xvZ3kgb2YKLXRoZSBjdXJy
ZW50IGRlY29tcG9zaXRpb247IGZvciBkZXRhaWxzIHNlZSB0aGUgaW5jbHVkZSBmaWxlICJtZXNo
LmgiLgotCi1UaGUgZXZlbnQgcXVldWUgc2ltcGx5IGhvbGRzIGFsbCB2ZXJ0aWNlcyAoYm90aCBv
cmlnaW5hbCBhbmQgY29tcHV0ZWQKLW9uZXMpLCBvcmdhbml6ZWQgc28gdGhhdCB3ZSBjYW4gcXVp
Y2tseSBleHRyYWN0IHRoZSB2ZXJ0ZXggd2l0aCB0aGUKLW1pbmltdW0geC1jb29yZCAoYW5kIGFt
b25nIHRob3NlLCB0aGUgb25lIHdpdGggdGhlIG1pbmltdW0geS1jb29yZCkuCi0KLVRoZSBlZGdl
IGRpY3Rpb25hcnkgZGVzY3JpYmVzIHRoZSBjdXJyZW50IGludGVyc2VjdGlvbiBvZiB0aGUgc3dl
ZXAKLWxpbmUgd2l0aCB0aGUgcmVnaW9ucyBvZiB0aGUgcG9seWdvbi4gIFRoaXMgaXMganVzdCBh
biBvcmRlcmluZyBvZiB0aGUKLWVkZ2VzIHdoaWNoIGludGVyc2VjdCB0aGUgc3dlZXAgbGluZSwg
c29ydGVkIGJ5IHRoZWlyIGN1cnJlbnQgb3JkZXIgb2YKLWludGVyc2VjdGlvbi4gIEZvciBlYWNo
IHBhaXIgb2YgZWRnZXMsIHdlIHN0b3JlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQKLXRoZSBtb25v
dG9uZSByZWdpb24gYmV0d2VlbiB0aGVtIC0tIHRoZXNlIGFyZSBjYWxsICJhY3RpdmUgcmVnaW9u
cyIKLShzaW5jZSB0aGV5IGFyZSBjcm9zc2VkIGJ5IHRoZSBjdXJyZW50IHN3ZWVwIGxpbmUpLgot
Ci1UaGUgYmFzaWMgYWxnb3JpdGhtIGlzIHRvIHN3ZWVwIGZyb20gbGVmdCB0byByaWdodCwgcHJv
Y2Vzc2luZyBlYWNoCi12ZXJ0ZXguICBUaGUgcHJvY2Vzc2VkIHBvcnRpb24gb2YgdGhlIG1lc2gg
KGxlZnQgb2YgdGhlIHN3ZWVwIGxpbmUpIGlzCi1hIHBsYW5hciBkZWNvbXBvc2l0aW9uLiAgQXMg
d2UgY3Jvc3MgZWFjaCB2ZXJ0ZXgsIHdlIHVwZGF0ZSB0aGUgbWVzaAotYW5kIHRoZSBlZGdlIGRp
Y3Rpb25hcnksIHRoZW4gd2UgY2hlY2sgYW55IG5ld2x5IGFkamFjZW50IHBhaXJzIG9mCi1lZGdl
cyB0byBzZWUgaWYgdGhleSBpbnRlcnNlY3QuCi0KLUEgdmVydGV4IGNhbiBoYXZlIGFueSBudW1i
ZXIgb2YgZWRnZXMuICBWZXJ0aWNlcyB3aXRoIG1hbnkgZWRnZXMgY2FuCi1iZSBjcmVhdGVkIGFz
IHZlcnRpY2VzIGFyZSBtZXJnZWQgYW5kIGludGVyc2VjdGlvbiBwb2ludHMgYXJlCi1jb21wdXRl
ZC4gIEZvciB1bnByb2Nlc3NlZCB2ZXJ0aWNlcyAocmlnaHQgb2YgdGhlIHN3ZWVwIGxpbmUpLCB0
aGVzZQotZWRnZXMgYXJlIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgYXJvdW5kIHRoZSB2ZXJ0ZXg7
IGZvciBwcm9jZXNzZWQKLXZlcnRpY2VzLCB0aGUgdG9wb2xvZ2ljYWwgb3JkZXJpbmcgc2hvdWxk
IG1hdGNoIHRoZSBnZW9tZXRyaWMgb3JkZXJpbmcuCi0KLVRoZSB2ZXJ0ZXggcHJvY2Vzc2luZyBo
YXBwZW5zIGluIHR3byBwaGFzZXM6IGZpcnN0IHdlIHByb2Nlc3MgYXJlIHRoZQotbGVmdC1nb2lu
ZyBlZGdlcyAoYWxsIHRoZXNlIGVkZ2VzIGFyZSBjdXJyZW50bHkgaW4gdGhlIGVkZ2UKLWRpY3Rp
b25hcnkpLiAgVGhpcyBpbnZvbHZlczoKLQotIC0gZGVsZXRpbmcgdGhlIGxlZnQtZ29pbmcgZWRn
ZXMgZnJvbSB0aGUgZGljdGlvbmFyeTsKLSAtIHJlbGlua2luZyB0aGUgbWVzaCBpZiBuZWNlc3Nh
cnksIHNvIHRoYXQgdGhlIG9yZGVyIG9mIHRoZXNlIGVkZ2VzIGFyb3VuZAotICAgdGhlIGV2ZW50
IHZlcnRleCBtYXRjaGVzIHRoZSBvcmRlciBpbiB0aGUgZGljdGlvbmFyeTsKLSAtIG1hcmtpbmcg
YW55IHRlcm1pbmF0ZWQgcmVnaW9ucyAocmVnaW9ucyB3aGljaCBsaWUgYmV0d2VlbiB0d28gbGVm
dC1nb2luZwotICAgZWRnZXMpIGFzIGVpdGhlciAiaW5zaWRlIiBvciAib3V0c2lkZSIgYWNjb3Jk
aW5nIHRvIHRoZWlyIHdpbmRpbmcgbnVtYmVyLgotCi1XaGVuIHRoZXJlIGFyZSBubyBsZWZ0LWdv
aW5nIGVkZ2VzLCBhbmQgdGhlIGV2ZW50IHZlcnRleCBpcyBpbiBhbgotImludGVyaW9yIiByZWdp
b24sIHdlIG5lZWQgdG8gYWRkIGFuIGVkZ2UgKHRvIHNwbGl0IHRoZSByZWdpb24gaW50bwotbW9u
b3RvbmUgcGllY2VzKS4gIFRvIGRvIHRoaXMgd2Ugc2ltcGx5IGpvaW4gdGhlIGV2ZW50IHZlcnRl
eCB0byB0aGUKLXJpZ2h0bW9zdCBsZWZ0IGVuZHBvaW50IG9mIHRoZSB1cHBlciBvciBsb3dlciBl
ZGdlIG9mIHRoZSBjb250YWluaW5nCi1yZWdpb24uCi0KLVRoZW4gd2UgcHJvY2VzcyB0aGUgcmln
aHQtZ29pbmcgZWRnZXMuICBUaGlzIGludm9sdmVzOgotCi0gLSBpbnNlcnRpbmcgdGhlIGVkZ2Vz
IGluIHRoZSBlZGdlIGRpY3Rpb25hcnk7Ci0gLSBjb21wdXRpbmcgdGhlIHdpbmRpbmcgbnVtYmVy
IG9mIGFueSBuZXdseSBjcmVhdGVkIGFjdGl2ZSByZWdpb25zLgotICAgV2UgY2FuIGNvbXB1dGUg
dGhpcyBpbmNyZW1lbnRhbGx5IHVzaW5nIHRoZSB3aW5kaW5nIG9mIGVhY2ggZWRnZQotICAgdGhh
dCB3ZSBjcm9zcyBhcyB3ZSB3YWxrIHRocm91Z2ggdGhlIGRpY3Rpb25hcnkuCi0gLSByZWxpbmtp
bmcgdGhlIG1lc2ggaWYgbmVjZXNzYXJ5LCBzbyB0aGF0IHRoZSBvcmRlciBvZiB0aGVzZSBlZGdl
cyBhcm91bmQKLSAgIHRoZSBldmVudCB2ZXJ0ZXggbWF0Y2hlcyB0aGUgb3JkZXIgaW4gdGhlIGRp
Y3Rpb25hcnk7Ci0gLSBjaGVja2luZyBhbnkgbmV3bHkgYWRqYWNlbnQgZWRnZXMgZm9yIGludGVy
c2VjdGlvbiBhbmQvb3IgbWVyZ2luZy4KLQotSWYgdGhlcmUgYXJlIG5vIHJpZ2h0LWdvaW5nIGVk
Z2VzLCBhZ2FpbiB3ZSBuZWVkIHRvIGFkZCBvbmUgdG8gc3BsaXQKLXRoZSBjb250YWluaW5nIHJl
Z2lvbiBpbnRvIG1vbm90b25lIHBpZWNlcy4gIEluIG91ciBjYXNlIGl0IGlzIG1vc3QKLWNvbnZl
bmllbnQgdG8gYWRkIGFuIGVkZ2UgdG8gdGhlIGxlZnRtb3N0IHJpZ2h0IGVuZHBvaW50IG9mIGVp
dGhlcgotY29udGFpbmluZyBlZGdlOyBob3dldmVyIHdlIG1heSBuZWVkIHRvIGNoYW5nZSB0aGlz
IGxhdGVyIChzZWUgdGhlCi1jb2RlIGZvciBkZXRhaWxzKS4KLQotCi1JbnZhcmlhbnRzCi0tLS0t
LS0tLS0tCi0KLVRoZXNlIGFyZSB0aGUgbW9zdCBpbXBvcnRhbnQgaW52YXJpYW50cyBtYWludGFp
bmVkIGR1cmluZyB0aGUgc3dlZXAuCi1XZSBkZWZpbmUgYSBmdW5jdGlvbiBWZXJ0TGVxKHYxLHYy
KSB3aGljaCBkZWZpbmVzIHRoZSBvcmRlciBpbiB3aGljaAotdmVydGljZXMgY3Jvc3MgdGhlIHN3
ZWVwIGxpbmUsIGFuZCBhIGZ1bmN0aW9uIEVkZ2VMZXEoZTEsZTI7IGxvYykKLXdoaWNoIHNheXMg
d2hldGhlciBlMSBpcyBiZWxvdyBlMiBhdCB0aGUgc3dlZXAgZXZlbnQgbG9jYXRpb24gImxvYyIu
Ci1UaGlzIGZ1bmN0aW9uIGlzIGRlZmluZWQgb25seSBhdCBzd2VlcCBldmVudCBsb2NhdGlvbnMg
d2hpY2ggbGllCi1iZXR3ZWVuIHRoZSByaWdodG1vc3QgbGVmdCBlbmRwb2ludCBvZiB7ZTEsZTJ9
LCBhbmQgdGhlIGxlZnRtb3N0IHJpZ2h0Ci1lbmRwb2ludCBvZiB7ZTEsZTJ9LgotCi1JbnZhcmlh
bnRzIGZvciB0aGUgRWRnZSBEaWN0aW9uYXJ5LgotCi0gLSBFYWNoIHBhaXIgb2YgYWRqYWNlbnQg
ZWRnZXMgZTI9U3VjYyhlMSkgc2F0aXNmaWVzIEVkZ2VMZXEoZTEsZTIpCi0gICBhdCBhbnkgdmFs
aWQgbG9jYXRpb24gb2YgdGhlIHN3ZWVwIGV2ZW50LgotIC0gSWYgRWRnZUxlcShlMixlMSkgYXMg
d2VsbCAoYXQgYW55IHZhbGlkIHN3ZWVwIGV2ZW50KSwgdGhlbiBlMSBhbmQgZTIKLSAgIHNoYXJl
IGEgY29tbW9uIGVuZHBvaW50LgotIC0gRm9yIGVhY2ggZSBpbiB0aGUgZGljdGlvbmFyeSwgZS0+
RHN0IGhhcyBiZWVuIHByb2Nlc3NlZCBidXQgbm90IGUtPk9yZy4KLSAtIEVhY2ggZWRnZSBlIHNh
dGlzZmllcyBWZXJ0TGVxKGUtPkRzdCxldmVudCkgJiYgVmVydExlcShldmVudCxlLT5PcmcpCi0g
ICB3aGVyZSAiZXZlbnQiIGlzIHRoZSBjdXJyZW50IHN3ZWVwIGxpbmUgZXZlbnQuCi0gLSBObyBl
ZGdlIGUgaGFzIHplcm8gbGVuZ3RoLgotIC0gTm8gdHdvIGVkZ2VzIGhhdmUgaWRlbnRpY2FsIGxl
ZnQgYW5kIHJpZ2h0IGVuZHBvaW50cy4KLSAKLUludmFyaWFudHMgZm9yIHRoZSBNZXNoICh0aGUg
cHJvY2Vzc2VkIHBvcnRpb24pLgotCi0gLSBUaGUgcG9ydGlvbiBvZiB0aGUgbWVzaCBsZWZ0IG9m
IHRoZSBzd2VlcCBsaW5lIGlzIGEgcGxhbmFyIGdyYXBoLAotICAgaWUuIHRoZXJlIGlzICpzb21l
KiB3YXkgdG8gZW1iZWQgaXQgaW4gdGhlIHBsYW5lLgotIC0gTm8gcHJvY2Vzc2VkIGVkZ2UgaGFz
IHplcm8gbGVuZ3RoLgotIC0gTm8gdHdvIHByb2Nlc3NlZCB2ZXJ0aWNlcyBoYXZlIGlkZW50aWNh
bCBjb29yZGluYXRlcy4KLSAtIEVhY2ggImluc2lkZSIgcmVnaW9uIGlzIG1vbm90b25lLCBpZS4g
Y2FuIGJlIGJyb2tlbiBpbnRvIHR3byBjaGFpbnMKLSAgIG9mIG1vbm90b25pY2FsbHkgaW5jcmVh
c2luZyB2ZXJ0aWNlcyBhY2NvcmRpbmcgdG8gVmVydExlcSh2MSx2MikKLSAgIC0gYSBub24taW52
YXJpYW50OiB0aGVzZSBjaGFpbnMgbWF5IGludGVyc2VjdCAoc2xpZ2h0bHkpIGR1ZSB0bwotICAg
ICBudW1lcmljYWwgZXJyb3JzLCBidXQgdGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGFsZ29yaXRo
bSdzIG9wZXJhdGlvbi4KLQotSW52YXJpYW50cyBmb3IgdGhlIFN3ZWVwLgotCi0gLSBJZiBhIHZl
cnRleCBoYXMgYW55IGxlZnQtZ29pbmcgZWRnZXMsIHRoZW4gdGhlc2UgbXVzdCBiZSBpbiB0aGUg
ZWRnZQotICAgZGljdGlvbmFyeSBhdCB0aGUgdGltZSB0aGUgdmVydGV4IGlzIHByb2Nlc3NlZC4K
LSAtIElmIGFuIGVkZ2UgaXMgbWFya2VkICJmaXhVcHBlckVkZ2UiIChpdCBpcyBhIHRlbXBvcmFy
eSBlZGdlIGludHJvZHVjZWQKLSAgIGJ5IENvbm5lY3RSaWdodFZlcnRleCksIHRoZW4gaXQgaXMg
dGhlIG9ubHkgcmlnaHQtZ29pbmcgZWRnZSBmcm9tCi0gICBpdHMgYXNzb2NpYXRlZCB2ZXJ0ZXgu
ICAoVGhpcyBzYXlzIHRoYXQgdGhlc2UgZWRnZXMgZXhpc3Qgb25seQotICAgd2hlbiBpdCBpcyBu
ZWNlc3NhcnkuKQotCi0KLVJvYnVzdG5lc3MKLS0tLS0tLS0tLS0KLQotVGhlIGtleSB0byB0aGUg
cm9idXN0bmVzcyBvZiB0aGUgYWxnb3JpdGhtIGlzIG1haW50YWluaW5nIHRoZQotaW52YXJpYW50
cyBhYm92ZSwgZXNwZWNpYWxseSB0aGUgY29ycmVjdCBvcmRlcmluZyBvZiB0aGUgZWRnZQotZGlj
dGlvbmFyeS4gIFdlIGFjaGlldmUgdGhpcyBieToKLQotICAxLiBXcml0aW5nIHRoZSBudW1lcmlj
YWwgY29tcHV0YXRpb25zIGZvciBtYXhpbXVtIHByZWNpc2lvbiByYXRoZXIKLSAgICAgdGhhbiBt
YXhpbXVtIHNwZWVkLgotICAgICAKLSAgMi4gTWFraW5nIG5vIGFzc3VtcHRpb25zIGF0IGFsbCBh
Ym91dCB0aGUgcmVzdWx0cyBvZiB0aGUgZWRnZQotICAgICBpbnRlcnNlY3Rpb24gY2FsY3VsYXRp
b25zIC0tIGZvciBzdWZmaWNpZW50bHkgZGVnZW5lcmF0ZSBpbnB1dHMsCi0gICAgIHRoZSBjb21w
dXRlZCBsb2NhdGlvbiBpcyBub3QgbXVjaCBiZXR0ZXIgdGhhbiBhIHJhbmRvbSBudW1iZXIuCi0g
ICAgIAotICAzLiBXaGVuIG51bWVyaWNhbCBlcnJvcnMgdmlvbGF0ZSB0aGUgaW52YXJpYW50cywg
cmVzdG9yZSB0aGVtCi0gICAgIGJ5IG1ha2luZyAqdG9wb2xvZ2ljYWwqIGNoYW5nZXMgd2hlbiBu
ZWNlc3NhcnkgKGllLiByZWxpbmtpbmcKLSAgICAgdGhlIG1lc2ggc3RydWN0dXJlKS4KLSAgICAg
Ci0gICAgIAotVHJpYW5ndWxhdGlvbiBhbmQgR3JvdXBpbmcKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0KLVdlIGZpbmlzaCB0aGUgbGluZSBzd2VlcCBiZWZvcmUgZG9pbmcgYW55IHRyaWFu
Z3VsYXRpb24uICBUaGlzIGlzCi1iZWNhdXNlIGV2ZW4gYWZ0ZXIgYSBtb25vdG9uZSByZWdpb24g
aXMgY29tcGxldGUsIHRoZXJlIGNhbiBiZSBmdXJ0aGVyCi1jaGFuZ2VzIHRvIGl0cyB2ZXJ0ZXgg
ZGF0YSBiZWNhdXNlIG9mIGZ1cnRoZXIgdmVydGV4IG1lcmdpbmcuCi0KLUFmdGVyIHRyaWFuZ3Vs
YXRpbmcgYWxsIG1vbm90b25lIHJlZ2lvbnMsIHdlIHdhbnQgdG8gZ3JvdXAgdGhlCi10cmlhbmds
ZXMgaW50byBmYW5zIGFuZCBzdHJpcHMuICBXZSBkbyB0aGlzIHVzaW5nIGEgZ3JlZWR5IGFwcHJv
YWNoLgotVGhlIHRyaWFuZ3VsYXRpb24gaXRzZWxmIGlzIG5vdCBvcHRpbWl6ZWQgdG8gcmVkdWNl
IHRoZSBudW1iZXIgb2YKLXByaW1pdGl2ZXM7IHdlIGp1c3QgdHJ5IHRvIGdldCBhIHJlYXNvbmFi
bGUgZGVjb21wb3NpdGlvbiBvZiB0aGUKLWNvbXB1dGVkIHRyaWFuZ3VsYXRpb24uCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvZGljdC1saXN0LmggYi9XZWJDb3Jl
L3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvZGljdC1saXN0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDljNjdjNDkuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9s
aWJ0ZXNzL2RpY3QtbGlzdC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA3ICswLDAgQEAKLS8qCi0q
KiBMaWNlbnNlIEFwcGxpY2FiaWxpdHkuIEV4Y2VwdCB0byB0aGUgZXh0ZW50IHBvcnRpb25zIG9m
IHRoaXMgZmlsZSBhcmUKLSoqIG1hZGUgc3ViamVjdCB0byBhbiBhbHRlcm5hdGl2ZSBsaWNlbnNl
IGFzIHBlcm1pdHRlZCBpbiB0aGUgU0dJIEZyZWUKLSoqIFNvZnR3YXJlIExpY2Vuc2UgQiwgVmVy
c2lvbiAxLjEgKHRoZSAiTGljZW5zZSIpLCB0aGUgY29udGVudHMgb2YgdGhpcwotKiogZmlsZSBh
cmUgc3ViamVjdCBvbmx5IHRvIHRoZSBwcm92aXNpb25zIG9mIHRoZSBMaWNlbnNlLiBZb3UgbWF5
IG5vdCB1c2UKLSoqIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNl
bnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKLSoqIG9mIHRoZSBMaWNlbnNlIGF0IFNpbGljb24g
R3JhcGhpY3MsIEluYy4sIGF0dG46IExlZ2FsIFNlcnZpY2VzLCAxNjAwCi0qKiBBbXBoaXRoZWF0
cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDMtMTM1MSwgb3IgYXQ6Ci0qKiAKLSoq
IGh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9qZWN0cy9GcmVlQgotKiogCi0qKiBOb3RlIHRoYXQsIGFz
IHByb3ZpZGVkIGluIHRoZSBMaWNlbnNlLCB0aGUgU29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24g
YW4KLSoqICJBUyBJUyIgYmFzaXMsIHdpdGggQUxMIEVYUFJFU1MgQU5EIElNUExJRUQgV0FSUkFO
VElFUyBBTkQgQ09ORElUSU9OUwotKiogRElTQ0xBSU1FRCwgSU5DTFVESU5HLCBXSVRIT1VUIExJ
TUlUQVRJT04sIEFOWSBJTVBMSUVEIFdBUlJBTlRJRVMgQU5ECi0qKiBDT05ESVRJT05TIE9GIE1F
UkNIQU5UQUJJTElUWSwgU0FUSVNGQUNUT1JZIFFVQUxJVFksIEZJVE5FU1MgRk9SIEEKLSoqIFBB
UlRJQ1VMQVIgUFVSUE9TRSwgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0qKiAKLSoqIE9yaWdpbmFs
IENvZGUuIFRoZSBPcmlnaW5hbCBDb2RlIGlzOiBPcGVuR0wgU2FtcGxlIEltcGxlbWVudGF0aW9u
LAotKiogVmVyc2lvbiAxLjIuMSwgcmVsZWFzZWQgSmFudWFyeSAyNiwgMjAwMCwgZGV2ZWxvcGVk
IGJ5IFNpbGljb24gR3JhcGhpY3MsCi0qKiBJbmMuIFRoZSBPcmlnaW5hbCBDb2RlIGlzIENvcHly
aWdodCAoYykgMTk5MS0yMDAwIFNpbGljb24gR3JhcGhpY3MsIEluYy4KLSoqIENvcHlyaWdodCBp
biBhbnkgcG9ydGlvbnMgY3JlYXRlZCBieSB0aGlyZCBwYXJ0aWVzIGlzIGFzIGluZGljYXRlZAot
KiogZWxzZXdoZXJlIGhlcmVpbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSoqIAotKiogQWRkaXRp
b25hbCBOb3RpY2UgUHJvdmlzaW9uczogVGhlIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVy
ZmFjZXMKLSoqIGVzdGFibGlzaGVkIGJ5IFNHSSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBPcmln
aW5hbCBDb2RlIGFyZSBUaGUKLSoqIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW06IEEgU3BlY2lm
aWNhdGlvbiAoVmVyc2lvbiAxLjIuMSksIHJlbGVhc2VkCi0qKiBBcHJpbCAxLCAxOTk5OyBUaGUg
T3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbSBVdGlsaXR5IExpYnJhcnkgKFZlcnNpb24KLSoqIDEu
MyksIHJlbGVhc2VkIE5vdmVtYmVyIDQsIDE5OTg7IGFuZCBPcGVuR0woUikgR3JhcGhpY3Mgd2l0
aCB0aGUgWAotKiogV2luZG93IFN5c3RlbShSKSAoVmVyc2lvbiAxLjMpLCByZWxlYXNlZCBPY3Rv
YmVyIDE5LCAxOTk4LiBUaGlzIHNvZnR3YXJlCi0qKiB3YXMgY3JlYXRlZCB1c2luZyB0aGUgT3Bl
bkdMKFIpIHZlcnNpb24gMS4yLjEgU2FtcGxlIEltcGxlbWVudGF0aW9uCi0qKiBwdWJsaXNoZWQg
YnkgU0dJLCBidXQgaGFzIG5vdCBiZWVuIGluZGVwZW5kZW50bHkgdmVyaWZpZWQgYXMgYmVpbmcK
LSoqIGNvbXBsaWFudCB3aXRoIHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTcGVjaWZpY2F0
aW9uLgotKioKLSovCi0vKgotKiogQXV0aG9yOiBFcmljIFZlYWNoLCBKdWx5IDE5OTQuCi0qKgot
KiogJERhdGUkICRSZXZpc2lvbiQKLSoqICRIZWFkZXI6IC8vZGVwb3QvbWFpbi9nZngvbGliL2ds
dS9saWJ0ZXNzL2RpY3QtbGlzdC5oIzUgJAotKi8KLQotI2lmbmRlZiBfX2RpY3RfbGlzdF9oXwot
I2RlZmluZSBfX2RpY3RfbGlzdF9oXwotCi0vKiBVc2UgI2RlZmluZSdzIHNvIHRoYXQgYW5vdGhl
ciBoZWFwIGltcGxlbWVudGF0aW9uIGNhbiB1c2UgdGhpcyBvbmUgKi8KLQotI2RlZmluZSBEaWN0
S2V5CQlEaWN0TGlzdEtleQotI2RlZmluZSBEaWN0CQlEaWN0TGlzdAotI2RlZmluZSBEaWN0Tm9k
ZQlEaWN0TGlzdE5vZGUKLQotI2RlZmluZSBkaWN0TmV3RGljdChmcmFtZSxsZXEpCQlfX2dsX2Rp
Y3RMaXN0TmV3RGljdChmcmFtZSxsZXEpCi0jZGVmaW5lIGRpY3REZWxldGVEaWN0KGRpY3QpCQlf
X2dsX2RpY3RMaXN0RGVsZXRlRGljdChkaWN0KQotCi0jZGVmaW5lIGRpY3RTZWFyY2goZGljdCxr
ZXkpCQlfX2dsX2RpY3RMaXN0U2VhcmNoKGRpY3Qsa2V5KQotI2RlZmluZSBkaWN0SW5zZXJ0KGRp
Y3Qsa2V5KQkJX19nbF9kaWN0TGlzdEluc2VydChkaWN0LGtleSkKLSNkZWZpbmUgZGljdEluc2Vy
dEJlZm9yZShkaWN0LG5vZGUsa2V5KQlfX2dsX2RpY3RMaXN0SW5zZXJ0QmVmb3JlKGRpY3Qsbm9k
ZSxrZXkpCi0jZGVmaW5lIGRpY3REZWxldGUoZGljdCxub2RlKQkJX19nbF9kaWN0TGlzdERlbGV0
ZShkaWN0LG5vZGUpCi0KLSNkZWZpbmUgZGljdEtleShuKQkJCV9fZ2xfZGljdExpc3RLZXkobikK
LSNkZWZpbmUgZGljdFN1Y2MobikJCQlfX2dsX2RpY3RMaXN0U3VjYyhuKQotI2RlZmluZSBkaWN0
UHJlZChuKQkJCV9fZ2xfZGljdExpc3RQcmVkKG4pCi0jZGVmaW5lIGRpY3RNaW4oZCkJCQlfX2ds
X2RpY3RMaXN0TWluKGQpCi0jZGVmaW5lIGRpY3RNYXgoZCkJCQlfX2dsX2RpY3RMaXN0TWF4KGQp
Ci0KLQotCi10eXBlZGVmIHZvaWQgKkRpY3RLZXk7Ci10eXBlZGVmIHN0cnVjdCBEaWN0IERpY3Q7
Ci10eXBlZGVmIHN0cnVjdCBEaWN0Tm9kZSBEaWN0Tm9kZTsKLQotRGljdAkJKmRpY3ROZXdEaWN0
KAotCQkJdm9pZCAqZnJhbWUsCi0JCQlpbnQgKCpsZXEpKHZvaWQgKmZyYW1lLCBEaWN0S2V5IGtl
eTEsIERpY3RLZXkga2V5MikgKTsKLQkJCQotdm9pZAkJZGljdERlbGV0ZURpY3QoIERpY3QgKmRp
Y3QgKTsKLQotLyogU2VhcmNoIHJldHVybnMgdGhlIG5vZGUgd2l0aCB0aGUgc21hbGxlc3Qga2V5
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbAotICogdG8gdGhlIGdpdmVuIGtleS4gIElmIHRoZXJlIGlz
IG5vIHN1Y2gga2V5LCByZXR1cm5zIGEgbm9kZSB3aG9zZQotICoga2V5IGlzIE5VTEwuICBTaW1p
bGFybHksIFN1Y2MoTWF4KGQpKSBoYXMgYSBOVUxMIGtleSwgZXRjLgotICovCi1EaWN0Tm9kZQkq
ZGljdFNlYXJjaCggRGljdCAqZGljdCwgRGljdEtleSBrZXkgKTsKLURpY3ROb2RlCSpkaWN0SW5z
ZXJ0QmVmb3JlKCBEaWN0ICpkaWN0LCBEaWN0Tm9kZSAqbm9kZSwgRGljdEtleSBrZXkgKTsKLXZv
aWQJCWRpY3REZWxldGUoIERpY3QgKmRpY3QsIERpY3ROb2RlICpub2RlICk7Ci0KLSNkZWZpbmUJ
CV9fZ2xfZGljdExpc3RLZXkobikJKChuKS0+a2V5KQotI2RlZmluZQkJX19nbF9kaWN0TGlzdFN1
Y2MobikJKChuKS0+bmV4dCkKLSNkZWZpbmUJCV9fZ2xfZGljdExpc3RQcmVkKG4pCSgobiktPnBy
ZXYpCi0jZGVmaW5lCQlfX2dsX2RpY3RMaXN0TWluKGQpCSgoZCktPmhlYWQubmV4dCkKLSNkZWZp
bmUJCV9fZ2xfZGljdExpc3RNYXgoZCkJKChkKS0+aGVhZC5wcmV2KQotI2RlZmluZQkgICAgICAg
X19nbF9kaWN0TGlzdEluc2VydChkLGspIChkaWN0SW5zZXJ0QmVmb3JlKChkKSwmKGQpLT5oZWFk
LChrKSkpCi0KLQotLyoqKiBQcml2YXRlIGRhdGEgc3RydWN0dXJlcyAqKiovCi0KLXN0cnVjdCBE
aWN0Tm9kZSB7Ci0gIERpY3RLZXkJa2V5OwotICBEaWN0Tm9kZQkqbmV4dDsKLSAgRGljdE5vZGUJ
KnByZXY7Ci19OwotCi1zdHJ1Y3QgRGljdCB7Ci0gIERpY3ROb2RlCWhlYWQ7Ci0gIHZvaWQJCSpm
cmFtZTsKLSAgaW50CQkoKmxlcSkodm9pZCAqZnJhbWUsIERpY3RLZXkga2V5MSwgRGljdEtleSBr
ZXkyKTsKLX07Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9s
aWJ0ZXNzL2RpY3QuYyBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9kaWN0LmMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjM2IyN2EuLjAwMDAwMDAKLS0tIGEvV2ViQ29y
ZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL2RpY3QuYworKysgL2Rldi9udWxsCkBAIC0xLDExNyAr
MCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8gdGhlIGV4dGVu
dCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1YmplY3QgdG8gYW4gYWx0ZXJu
YXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBTb2Z0d2FyZSBM
aWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9mIHRo
aXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgTGlj
ZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ug
d2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0aGUgTGljZW5z
ZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYwMAot
KiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzLTEzNTEsIG9y
IGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMvRnJlZUIKLSoqIAotKiog
Tm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhlIFNvZnR3YXJlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBSRVNTIEFORCBJ
TVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NMQUlNRUQsIElOQ0xVRElO
RywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5USUVTIEFORAotKiogQ09O
RElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBRVUFMSVRZLCBGSVRORVNT
IEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5GUklOR0VNRU5ULgotKiog
Ci0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczogT3BlbkdMIFNhbXBsZSBJ
bXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2VkIEphbnVhcnkgMjYsIDIw
MDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5jLiBUaGUgT3JpZ2luYWwg
Q29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCi0q
KiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFydGllcyBpcyBh
cyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0q
KiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNhdGlvbiBwcm9n
cmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kgaW4gY29uanVuY3Rpb24g
d2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0woUikgR3JhcGhpY3MgU3lz
dGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxlYXNlZAotKiogQXByaWwg
MSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBMaWJyYXJ5IChW
ZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQgT3BlbkdMKFIp
IEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNpb24gMS4zKSwg
cmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQotKiogd2FzIGNyZWF0ZWQg
dXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRhdGlvbgot
KiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVudGx5IHZlcmlm
aWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4y
LjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjogRXJpYyBWZWFjaCwgSnVs
eSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVhZGVyOiAvL2RlcG90L21h
aW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9kaWN0LmMjNSAkCi0qLwotCi0jaW5jbHVkZSA8c3RkZGVm
Lmg+Ci0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9kaWN0LWxpc3QuaCIKLSNpbmNs
dWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lbWFsbG9jLmgiCi0KLS8qIHJlYWxseSBfX2ds
X2RpY3RMaXN0TmV3RGljdCAqLwotRGljdCAqZGljdE5ld0RpY3QoIHZvaWQgKmZyYW1lLAotCQkg
ICBpbnQgKCpsZXEpKHZvaWQgKmZyYW1lLCBEaWN0S2V5IGtleTEsIERpY3RLZXkga2V5MikgKQot
ewotICBEaWN0ICpkaWN0ID0gKERpY3QgKikgbWVtQWxsb2MoIHNpemVvZiggRGljdCApKTsKLSAg
RGljdE5vZGUgKmhlYWQ7Ci0KLSAgaWYgKGRpY3QgPT0gTlVMTCkgcmV0dXJuIE5VTEw7Ci0KLSAg
aGVhZCA9ICZkaWN0LT5oZWFkOwotCi0gIGhlYWQtPmtleSA9IE5VTEw7Ci0gIGhlYWQtPm5leHQg
PSBoZWFkOwotICBoZWFkLT5wcmV2ID0gaGVhZDsKLQotICBkaWN0LT5mcmFtZSA9IGZyYW1lOwot
ICBkaWN0LT5sZXEgPSBsZXE7Ci0KLSAgcmV0dXJuIGRpY3Q7Ci19Ci0KLS8qIHJlYWxseSBfX2ds
X2RpY3RMaXN0RGVsZXRlRGljdCAqLwotdm9pZCBkaWN0RGVsZXRlRGljdCggRGljdCAqZGljdCAp
Ci17Ci0gIERpY3ROb2RlICpub2RlOwotCi0gIGZvciggbm9kZSA9IGRpY3QtPmhlYWQubmV4dDsg
bm9kZSAhPSAmZGljdC0+aGVhZDsgbm9kZSA9IG5vZGUtPm5leHQgKSB7Ci0gICAgbWVtRnJlZSgg
bm9kZSApOwotICB9Ci0gIG1lbUZyZWUoIGRpY3QgKTsKLX0KLQotLyogcmVhbGx5IF9fZ2xfZGlj
dExpc3RJbnNlcnRCZWZvcmUgKi8KLURpY3ROb2RlICpkaWN0SW5zZXJ0QmVmb3JlKCBEaWN0ICpk
aWN0LCBEaWN0Tm9kZSAqbm9kZSwgRGljdEtleSBrZXkgKQotewotICBEaWN0Tm9kZSAqbmV3Tm9k
ZTsKLQotICBkbyB7Ci0gICAgbm9kZSA9IG5vZGUtPnByZXY7Ci0gIH0gd2hpbGUoIG5vZGUtPmtl
eSAhPSBOVUxMICYmICEgKCpkaWN0LT5sZXEpKGRpY3QtPmZyYW1lLCBub2RlLT5rZXksIGtleSkp
OwotCi0gIG5ld05vZGUgPSAoRGljdE5vZGUgKikgbWVtQWxsb2MoIHNpemVvZiggRGljdE5vZGUg
KSk7Ci0gIGlmIChuZXdOb2RlID09IE5VTEwpIHJldHVybiBOVUxMOwotCi0gIG5ld05vZGUtPmtl
eSA9IGtleTsKLSAgbmV3Tm9kZS0+bmV4dCA9IG5vZGUtPm5leHQ7Ci0gIG5vZGUtPm5leHQtPnBy
ZXYgPSBuZXdOb2RlOwotICBuZXdOb2RlLT5wcmV2ID0gbm9kZTsKLSAgbm9kZS0+bmV4dCA9IG5l
d05vZGU7Ci0KLSAgcmV0dXJuIG5ld05vZGU7Ci19Ci0KLS8qIHJlYWxseSBfX2dsX2RpY3RMaXN0
RGVsZXRlICovCi12b2lkIGRpY3REZWxldGUoIERpY3QgKmRpY3QsIERpY3ROb2RlICpub2RlICkg
LypBUkdTVVNFRCovCi17Ci0gIG5vZGUtPm5leHQtPnByZXYgPSBub2RlLT5wcmV2OwotICBub2Rl
LT5wcmV2LT5uZXh0ID0gbm9kZS0+bmV4dDsKLSAgbWVtRnJlZSggbm9kZSApOwotfQotCi0vKiBy
ZWFsbHkgX19nbF9kaWN0TGlzdFNlYXJjaCAqLwotRGljdE5vZGUgKmRpY3RTZWFyY2goIERpY3Qg
KmRpY3QsIERpY3RLZXkga2V5ICkKLXsKLSAgRGljdE5vZGUgKm5vZGUgPSAmZGljdC0+aGVhZDsK
LQotICBkbyB7Ci0gICAgbm9kZSA9IG5vZGUtPm5leHQ7Ci0gIH0gd2hpbGUoIG5vZGUtPmtleSAh
PSBOVUxMICYmICEgKCpkaWN0LT5sZXEpKGRpY3QtPmZyYW1lLCBrZXksIG5vZGUtPmtleSkpOwot
Ci0gIHJldHVybiBub2RlOwotfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9s
aWJ0ZXNzL2RpY3QuaCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9kaWN0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4NTFiYWMuLjAwMDAwMDAKLS0tIGEvV2ViQ29y
ZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL2RpY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwNyAr
MCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8gdGhlIGV4dGVu
dCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1YmplY3QgdG8gYW4gYWx0ZXJu
YXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBTb2Z0d2FyZSBM
aWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9mIHRo
aXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgTGlj
ZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ug
d2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0aGUgTGljZW5z
ZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYwMAot
KiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzLTEzNTEsIG9y
IGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMvRnJlZUIKLSoqIAotKiog
Tm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhlIFNvZnR3YXJlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBSRVNTIEFORCBJ
TVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NMQUlNRUQsIElOQ0xVRElO
RywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5USUVTIEFORAotKiogQ09O
RElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBRVUFMSVRZLCBGSVRORVNT
IEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5GUklOR0VNRU5ULgotKiog
Ci0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczogT3BlbkdMIFNhbXBsZSBJ
bXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2VkIEphbnVhcnkgMjYsIDIw
MDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5jLiBUaGUgT3JpZ2luYWwg
Q29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCi0q
KiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFydGllcyBpcyBh
cyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0q
KiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNhdGlvbiBwcm9n
cmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kgaW4gY29uanVuY3Rpb24g
d2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0woUikgR3JhcGhpY3MgU3lz
dGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxlYXNlZAotKiogQXByaWwg
MSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBMaWJyYXJ5IChW
ZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQgT3BlbkdMKFIp
IEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNpb24gMS4zKSwg
cmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQotKiogd2FzIGNyZWF0ZWQg
dXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRhdGlvbgot
KiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVudGx5IHZlcmlm
aWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4y
LjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjogRXJpYyBWZWFjaCwgSnVs
eSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVhZGVyOiAvL2RlcG90L21h
aW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9kaWN0LmgjNSAkCi0qLwotCi0jaWZuZGVmIF9fZGljdF9s
aXN0X2hfCi0jZGVmaW5lIF9fZGljdF9saXN0X2hfCi0KLS8qIFVzZSAjZGVmaW5lJ3Mgc28gdGhh
dCBhbm90aGVyIGhlYXAgaW1wbGVtZW50YXRpb24gY2FuIHVzZSB0aGlzIG9uZSAqLwotCi0jZGVm
aW5lIERpY3RLZXkJCURpY3RMaXN0S2V5Ci0jZGVmaW5lIERpY3QJCURpY3RMaXN0Ci0jZGVmaW5l
IERpY3ROb2RlCURpY3RMaXN0Tm9kZQotCi0jZGVmaW5lIGRpY3ROZXdEaWN0KGZyYW1lLGxlcSkJ
CV9fZ2xfZGljdExpc3ROZXdEaWN0KGZyYW1lLGxlcSkKLSNkZWZpbmUgZGljdERlbGV0ZURpY3Qo
ZGljdCkJCV9fZ2xfZGljdExpc3REZWxldGVEaWN0KGRpY3QpCi0KLSNkZWZpbmUgZGljdFNlYXJj
aChkaWN0LGtleSkJCV9fZ2xfZGljdExpc3RTZWFyY2goZGljdCxrZXkpCi0jZGVmaW5lIGRpY3RJ
bnNlcnQoZGljdCxrZXkpCQlfX2dsX2RpY3RMaXN0SW5zZXJ0KGRpY3Qsa2V5KQotI2RlZmluZSBk
aWN0SW5zZXJ0QmVmb3JlKGRpY3Qsbm9kZSxrZXkpCV9fZ2xfZGljdExpc3RJbnNlcnRCZWZvcmUo
ZGljdCxub2RlLGtleSkKLSNkZWZpbmUgZGljdERlbGV0ZShkaWN0LG5vZGUpCQlfX2dsX2RpY3RM
aXN0RGVsZXRlKGRpY3Qsbm9kZSkKLQotI2RlZmluZSBkaWN0S2V5KG4pCQkJX19nbF9kaWN0TGlz
dEtleShuKQotI2RlZmluZSBkaWN0U3VjYyhuKQkJCV9fZ2xfZGljdExpc3RTdWNjKG4pCi0jZGVm
aW5lIGRpY3RQcmVkKG4pCQkJX19nbF9kaWN0TGlzdFByZWQobikKLSNkZWZpbmUgZGljdE1pbihk
KQkJCV9fZ2xfZGljdExpc3RNaW4oZCkKLSNkZWZpbmUgZGljdE1heChkKQkJCV9fZ2xfZGljdExp
c3RNYXgoZCkKLQotCi0KLXR5cGVkZWYgdm9pZCAqRGljdEtleTsKLXR5cGVkZWYgc3RydWN0IERp
Y3QgRGljdDsKLXR5cGVkZWYgc3RydWN0IERpY3ROb2RlIERpY3ROb2RlOwotCi1EaWN0CQkqZGlj
dE5ld0RpY3QoCi0JCQl2b2lkICpmcmFtZSwKLQkJCWludCAoKmxlcSkodm9pZCAqZnJhbWUsIERp
Y3RLZXkga2V5MSwgRGljdEtleSBrZXkyKSApOwotCQkJCi12b2lkCQlkaWN0RGVsZXRlRGljdCgg
RGljdCAqZGljdCApOwotCi0vKiBTZWFyY2ggcmV0dXJucyB0aGUgbm9kZSB3aXRoIHRoZSBzbWFs
bGVzdCBrZXkgZ3JlYXRlciB0aGFuIG9yIGVxdWFsCi0gKiB0byB0aGUgZ2l2ZW4ga2V5LiAgSWYg
dGhlcmUgaXMgbm8gc3VjaCBrZXksIHJldHVybnMgYSBub2RlIHdob3NlCi0gKiBrZXkgaXMgTlVM
TC4gIFNpbWlsYXJseSwgU3VjYyhNYXgoZCkpIGhhcyBhIE5VTEwga2V5LCBldGMuCi0gKi8KLURp
Y3ROb2RlCSpkaWN0U2VhcmNoKCBEaWN0ICpkaWN0LCBEaWN0S2V5IGtleSApOwotRGljdE5vZGUJ
KmRpY3RJbnNlcnRCZWZvcmUoIERpY3QgKmRpY3QsIERpY3ROb2RlICpub2RlLCBEaWN0S2V5IGtl
eSApOwotdm9pZAkJZGljdERlbGV0ZSggRGljdCAqZGljdCwgRGljdE5vZGUgKm5vZGUgKTsKLQot
I2RlZmluZQkJX19nbF9kaWN0TGlzdEtleShuKQkoKG4pLT5rZXkpCi0jZGVmaW5lCQlfX2dsX2Rp
Y3RMaXN0U3VjYyhuKQkoKG4pLT5uZXh0KQotI2RlZmluZQkJX19nbF9kaWN0TGlzdFByZWQobikJ
KChuKS0+cHJldikKLSNkZWZpbmUJCV9fZ2xfZGljdExpc3RNaW4oZCkJKChkKS0+aGVhZC5uZXh0
KQotI2RlZmluZQkJX19nbF9kaWN0TGlzdE1heChkKQkoKGQpLT5oZWFkLnByZXYpCi0jZGVmaW5l
CSAgICAgICBfX2dsX2RpY3RMaXN0SW5zZXJ0KGQsaykgKGRpY3RJbnNlcnRCZWZvcmUoKGQpLCYo
ZCktPmhlYWQsKGspKSkKLQotCi0vKioqIFByaXZhdGUgZGF0YSBzdHJ1Y3R1cmVzICoqKi8KLQot
c3RydWN0IERpY3ROb2RlIHsKLSAgRGljdEtleQlrZXk7Ci0gIERpY3ROb2RlCSpuZXh0OwotICBE
aWN0Tm9kZQkqcHJldjsKLX07Ci0KLXN0cnVjdCBEaWN0IHsKLSAgRGljdE5vZGUJaGVhZDsKLSAg
dm9pZAkJKmZyYW1lOwotICBpbnQJCSgqbGVxKSh2b2lkICpmcmFtZSwgRGljdEtleSBrZXkxLCBE
aWN0S2V5IGtleTIpOwotfTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFy
dHkvZ2x1L2xpYnRlc3MvZ2VvbS5jIGIvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL2dl
b20uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmRiMjY5OS4uMDAwMDAwMAotLS0g
YS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvZ2VvbS5jCisrKyAvZGV2L251bGwKQEAg
LTEsMjcxICswLDAgQEAKLS8qCi0qKiBMaWNlbnNlIEFwcGxpY2FiaWxpdHkuIEV4Y2VwdCB0byB0
aGUgZXh0ZW50IHBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUKLSoqIG1hZGUgc3ViamVjdCB0byBh
biBhbHRlcm5hdGl2ZSBsaWNlbnNlIGFzIHBlcm1pdHRlZCBpbiB0aGUgU0dJIEZyZWUKLSoqIFNv
ZnR3YXJlIExpY2Vuc2UgQiwgVmVyc2lvbiAxLjEgKHRoZSAiTGljZW5zZSIpLCB0aGUgY29udGVu
dHMgb2YgdGhpcwotKiogZmlsZSBhcmUgc3ViamVjdCBvbmx5IHRvIHRoZSBwcm92aXNpb25zIG9m
IHRoZSBMaWNlbnNlLiBZb3UgbWF5IG5vdCB1c2UKLSoqIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKLSoqIG9mIHRo
ZSBMaWNlbnNlIGF0IFNpbGljb24gR3JhcGhpY3MsIEluYy4sIGF0dG46IExlZ2FsIFNlcnZpY2Vz
LCAxNjAwCi0qKiBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDMt
MTM1MSwgb3IgYXQ6Ci0qKiAKLSoqIGh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9qZWN0cy9GcmVlQgot
KiogCi0qKiBOb3RlIHRoYXQsIGFzIHByb3ZpZGVkIGluIHRoZSBMaWNlbnNlLCB0aGUgU29mdHdh
cmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSoqICJBUyBJUyIgYmFzaXMsIHdpdGggQUxMIEVYUFJF
U1MgQU5EIElNUExJRUQgV0FSUkFOVElFUyBBTkQgQ09ORElUSU9OUwotKiogRElTQ0xBSU1FRCwg
SU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBJTVBMSUVEIFdBUlJBTlRJRVMgQU5E
Ci0qKiBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgU0FUSVNGQUNUT1JZIFFVQUxJVFks
IEZJVE5FU1MgRk9SIEEKLSoqIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQU5EIE5PTi1JTkZSSU5HRU1F
TlQuCi0qKiAKLSoqIE9yaWdpbmFsIENvZGUuIFRoZSBPcmlnaW5hbCBDb2RlIGlzOiBPcGVuR0wg
U2FtcGxlIEltcGxlbWVudGF0aW9uLAotKiogVmVyc2lvbiAxLjIuMSwgcmVsZWFzZWQgSmFudWFy
eSAyNiwgMjAwMCwgZGV2ZWxvcGVkIGJ5IFNpbGljb24gR3JhcGhpY3MsCi0qKiBJbmMuIFRoZSBP
cmlnaW5hbCBDb2RlIGlzIENvcHlyaWdodCAoYykgMTk5MS0yMDAwIFNpbGljb24gR3JhcGhpY3Ms
IEluYy4KLSoqIENvcHlyaWdodCBpbiBhbnkgcG9ydGlvbnMgY3JlYXRlZCBieSB0aGlyZCBwYXJ0
aWVzIGlzIGFzIGluZGljYXRlZAotKiogZWxzZXdoZXJlIGhlcmVpbi4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSoqIAotKiogQWRkaXRpb25hbCBOb3RpY2UgUHJvdmlzaW9uczogVGhlIGFwcGxpY2F0
aW9uIHByb2dyYW1taW5nIGludGVyZmFjZXMKLSoqIGVzdGFibGlzaGVkIGJ5IFNHSSBpbiBjb25q
dW5jdGlvbiB3aXRoIHRoZSBPcmlnaW5hbCBDb2RlIGFyZSBUaGUKLSoqIE9wZW5HTChSKSBHcmFw
aGljcyBTeXN0ZW06IEEgU3BlY2lmaWNhdGlvbiAoVmVyc2lvbiAxLjIuMSksIHJlbGVhc2VkCi0q
KiBBcHJpbCAxLCAxOTk5OyBUaGUgT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbSBVdGlsaXR5IExp
YnJhcnkgKFZlcnNpb24KLSoqIDEuMyksIHJlbGVhc2VkIE5vdmVtYmVyIDQsIDE5OTg7IGFuZCBP
cGVuR0woUikgR3JhcGhpY3Mgd2l0aCB0aGUgWAotKiogV2luZG93IFN5c3RlbShSKSAoVmVyc2lv
biAxLjMpLCByZWxlYXNlZCBPY3RvYmVyIDE5LCAxOTk4LiBUaGlzIHNvZnR3YXJlCi0qKiB3YXMg
Y3JlYXRlZCB1c2luZyB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU2FtcGxlIEltcGxlbWVu
dGF0aW9uCi0qKiBwdWJsaXNoZWQgYnkgU0dJLCBidXQgaGFzIG5vdCBiZWVuIGluZGVwZW5kZW50
bHkgdmVyaWZpZWQgYXMgYmVpbmcKLSoqIGNvbXBsaWFudCB3aXRoIHRoZSBPcGVuR0woUikgdmVy
c2lvbiAxLjIuMSBTcGVjaWZpY2F0aW9uLgotKioKLSovCi0vKgotKiogQXV0aG9yOiBFcmljIFZl
YWNoLCBKdWx5IDE5OTQuCi0qKgotKiogJERhdGUkICRSZXZpc2lvbiQKLSoqICRIZWFkZXI6IC8v
ZGVwb3QvbWFpbi9nZngvbGliL2dsdS9saWJ0ZXNzL2dlb20uYyM1ICQKLSovCi0KLSNpbmNsdWRl
IDxhc3NlcnQuaD4KLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9nbHVvcy5oIgotI2luY2x1ZGUg
InRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvbWVzaC5oIgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1
L2xpYnRlc3MvZ2VvbS5oIgotCi1pbnQgX19nbF92ZXJ0TGVxKCBHTFV2ZXJ0ZXggKnUsIEdMVXZl
cnRleCAqdiApCi17Ci0gIC8qIFJldHVybnMgVFJVRSBpZiB1IGlzIGxleGljb2dyYXBoaWNhbGx5
IDw9IHYuICovCi0KLSAgcmV0dXJuIFZlcnRMZXEoIHUsIHYgKTsKLX0KLQotR0xkb3VibGUgX19n
bF9lZGdlRXZhbCggR0xVdmVydGV4ICp1LCBHTFV2ZXJ0ZXggKnYsIEdMVXZlcnRleCAqdyApCi17
Ci0gIC8qIEdpdmVuIHRocmVlIHZlcnRpY2VzIHUsdix3IHN1Y2ggdGhhdCBWZXJ0TGVxKHUsdikg
JiYgVmVydExlcSh2LHcpLAotICAgKiBldmFsdWF0ZXMgdGhlIHQtY29vcmQgb2YgdGhlIGVkZ2Ug
dXcgYXQgdGhlIHMtY29vcmQgb2YgdGhlIHZlcnRleCB2LgotICAgKiBSZXR1cm5zIHYtPnQgLSAo
dXcpKHYtPnMpLCBpZS4gdGhlIHNpZ25lZCBkaXN0YW5jZSBmcm9tIHV3IHRvIHYuCi0gICAqIElm
IHV3IGlzIHZlcnRpY2FsIChhbmQgdGh1cyBwYXNzZXMgdGhydSB2KSwgdGhlIHJlc3VsdCBpcyB6
ZXJvLgotICAgKgotICAgKiBUaGUgY2FsY3VsYXRpb24gaXMgZXh0cmVtZWx5IGFjY3VyYXRlIGFu
ZCBzdGFibGUsIGV2ZW4gd2hlbiB2Ci0gICAqIGlzIHZlcnkgY2xvc2UgdG8gdSBvciB3LiAgSW4g
cGFydGljdWxhciBpZiB3ZSBzZXQgdi0+dCA9IDAgYW5kCi0gICAqIGxldCByIGJlIHRoZSBuZWdh
dGVkIHJlc3VsdCAodGhpcyBldmFsdWF0ZXMgKHV3KSh2LT5zKSksIHRoZW4KLSAgICogciBpcyBn
dWFyYW50ZWVkIHRvIHNhdGlzZnkgTUlOKHUtPnQsdy0+dCkgPD0gciA8PSBNQVgodS0+dCx3LT50
KS4KLSAgICovCi0gIEdMZG91YmxlIGdhcEwsIGdhcFI7Ci0KLSAgYXNzZXJ0KCBWZXJ0TGVxKCB1
LCB2ICkgJiYgVmVydExlcSggdiwgdyApKTsKLSAgCi0gIGdhcEwgPSB2LT5zIC0gdS0+czsKLSAg
Z2FwUiA9IHctPnMgLSB2LT5zOwotCi0gIGlmKCBnYXBMICsgZ2FwUiA+IDAgKSB7Ci0gICAgaWYo
IGdhcEwgPCBnYXBSICkgewotICAgICAgcmV0dXJuICh2LT50IC0gdS0+dCkgKyAodS0+dCAtIHct
PnQpICogKGdhcEwgLyAoZ2FwTCArIGdhcFIpKTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0dXJu
ICh2LT50IC0gdy0+dCkgKyAody0+dCAtIHUtPnQpICogKGdhcFIgLyAoZ2FwTCArIGdhcFIpKTsK
LSAgICB9Ci0gIH0KLSAgLyogdmVydGljYWwgbGluZSAqLwotICByZXR1cm4gMDsKLX0KLQotR0xk
b3VibGUgX19nbF9lZGdlU2lnbiggR0xVdmVydGV4ICp1LCBHTFV2ZXJ0ZXggKnYsIEdMVXZlcnRl
eCAqdyApCi17Ci0gIC8qIFJldHVybnMgYSBudW1iZXIgd2hvc2Ugc2lnbiBtYXRjaGVzIEVkZ2VF
dmFsKHUsdix3KSBidXQgd2hpY2gKLSAgICogaXMgY2hlYXBlciB0byBldmFsdWF0ZS4gIFJldHVy
bnMgPiAwLCA9PSAwICwgb3IgPCAwCi0gICAqIGFzIHYgaXMgYWJvdmUsIG9uLCBvciBiZWxvdyB0
aGUgZWRnZSB1dy4KLSAgICovCi0gIEdMZG91YmxlIGdhcEwsIGdhcFI7Ci0KLSAgYXNzZXJ0KCBW
ZXJ0TGVxKCB1LCB2ICkgJiYgVmVydExlcSggdiwgdyApKTsKLSAgCi0gIGdhcEwgPSB2LT5zIC0g
dS0+czsKLSAgZ2FwUiA9IHctPnMgLSB2LT5zOwotCi0gIGlmKCBnYXBMICsgZ2FwUiA+IDAgKSB7
Ci0gICAgcmV0dXJuICh2LT50IC0gdy0+dCkgKiBnYXBMICsgKHYtPnQgLSB1LT50KSAqIGdhcFI7
Ci0gIH0KLSAgLyogdmVydGljYWwgbGluZSAqLwotICByZXR1cm4gMDsKLX0KLQotCi0vKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLSAqIERlZmluZSB2ZXJzaW9ucyBvZiBFZGdlU2lnbiwgRWRnZUV2YWwgd2l0aCBz
IGFuZCB0IHRyYW5zcG9zZWQuCi0gKi8KLQotR0xkb3VibGUgX19nbF90cmFuc0V2YWwoIEdMVXZl
cnRleCAqdSwgR0xVdmVydGV4ICp2LCBHTFV2ZXJ0ZXggKncgKQotewotICAvKiBHaXZlbiB0aHJl
ZSB2ZXJ0aWNlcyB1LHYsdyBzdWNoIHRoYXQgVHJhbnNMZXEodSx2KSAmJiBUcmFuc0xlcSh2LHcp
LAotICAgKiBldmFsdWF0ZXMgdGhlIHQtY29vcmQgb2YgdGhlIGVkZ2UgdXcgYXQgdGhlIHMtY29v
cmQgb2YgdGhlIHZlcnRleCB2LgotICAgKiBSZXR1cm5zIHYtPnMgLSAodXcpKHYtPnQpLCBpZS4g
dGhlIHNpZ25lZCBkaXN0YW5jZSBmcm9tIHV3IHRvIHYuCi0gICAqIElmIHV3IGlzIHZlcnRpY2Fs
IChhbmQgdGh1cyBwYXNzZXMgdGhydSB2KSwgdGhlIHJlc3VsdCBpcyB6ZXJvLgotICAgKgotICAg
KiBUaGUgY2FsY3VsYXRpb24gaXMgZXh0cmVtZWx5IGFjY3VyYXRlIGFuZCBzdGFibGUsIGV2ZW4g
d2hlbiB2Ci0gICAqIGlzIHZlcnkgY2xvc2UgdG8gdSBvciB3LiAgSW4gcGFydGljdWxhciBpZiB3
ZSBzZXQgdi0+cyA9IDAgYW5kCi0gICAqIGxldCByIGJlIHRoZSBuZWdhdGVkIHJlc3VsdCAodGhp
cyBldmFsdWF0ZXMgKHV3KSh2LT50KSksIHRoZW4KLSAgICogciBpcyBndWFyYW50ZWVkIHRvIHNh
dGlzZnkgTUlOKHUtPnMsdy0+cykgPD0gciA8PSBNQVgodS0+cyx3LT5zKS4KLSAgICovCi0gIEdM
ZG91YmxlIGdhcEwsIGdhcFI7Ci0KLSAgYXNzZXJ0KCBUcmFuc0xlcSggdSwgdiApICYmIFRyYW5z
TGVxKCB2LCB3ICkpOwotICAKLSAgZ2FwTCA9IHYtPnQgLSB1LT50OwotICBnYXBSID0gdy0+dCAt
IHYtPnQ7Ci0KLSAgaWYoIGdhcEwgKyBnYXBSID4gMCApIHsKLSAgICBpZiggZ2FwTCA8IGdhcFIg
KSB7Ci0gICAgICByZXR1cm4gKHYtPnMgLSB1LT5zKSArICh1LT5zIC0gdy0+cykgKiAoZ2FwTCAv
IChnYXBMICsgZ2FwUikpOwotICAgIH0gZWxzZSB7Ci0gICAgICByZXR1cm4gKHYtPnMgLSB3LT5z
KSArICh3LT5zIC0gdS0+cykgKiAoZ2FwUiAvIChnYXBMICsgZ2FwUikpOwotICAgIH0KLSAgfQot
ICAvKiB2ZXJ0aWNhbCBsaW5lICovCi0gIHJldHVybiAwOwotfQotCi1HTGRvdWJsZSBfX2dsX3Ry
YW5zU2lnbiggR0xVdmVydGV4ICp1LCBHTFV2ZXJ0ZXggKnYsIEdMVXZlcnRleCAqdyApCi17Ci0g
IC8qIFJldHVybnMgYSBudW1iZXIgd2hvc2Ugc2lnbiBtYXRjaGVzIFRyYW5zRXZhbCh1LHYsdykg
YnV0IHdoaWNoCi0gICAqIGlzIGNoZWFwZXIgdG8gZXZhbHVhdGUuICBSZXR1cm5zID4gMCwgPT0g
MCAsIG9yIDwgMAotICAgKiBhcyB2IGlzIGFib3ZlLCBvbiwgb3IgYmVsb3cgdGhlIGVkZ2UgdXcu
Ci0gICAqLwotICBHTGRvdWJsZSBnYXBMLCBnYXBSOwotCi0gIGFzc2VydCggVHJhbnNMZXEoIHUs
IHYgKSAmJiBUcmFuc0xlcSggdiwgdyApKTsKLSAgCi0gIGdhcEwgPSB2LT50IC0gdS0+dDsKLSAg
Z2FwUiA9IHctPnQgLSB2LT50OwotCi0gIGlmKCBnYXBMICsgZ2FwUiA+IDAgKSB7Ci0gICAgcmV0
dXJuICh2LT5zIC0gdy0+cykgKiBnYXBMICsgKHYtPnMgLSB1LT5zKSAqIGdhcFI7Ci0gIH0KLSAg
LyogdmVydGljYWwgbGluZSAqLwotICByZXR1cm4gMDsKLX0KLQotCi1pbnQgX19nbF92ZXJ0Q0NX
KCBHTFV2ZXJ0ZXggKnUsIEdMVXZlcnRleCAqdiwgR0xVdmVydGV4ICp3ICkKLXsKLSAgLyogRm9y
IGFsbW9zdC1kZWdlbmVyYXRlIHNpdHVhdGlvbnMsIHRoZSByZXN1bHRzIGFyZSBub3QgcmVsaWFi
bGUuCi0gICAqIFVubGVzcyB0aGUgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYyBjYW4gYmUgcGVy
Zm9ybWVkIHdpdGhvdXQKLSAgICogcm91bmRpbmcgZXJyb3JzLCAqYW55KiBpbXBsZW1lbnRhdGlv
biB3aWxsIGdpdmUgaW5jb3JyZWN0IHJlc3VsdHMKLSAgICogb24gc29tZSBkZWdlbmVyYXRlIGlu
cHV0cywgc28gdGhlIGNsaWVudCBtdXN0IGhhdmUgc29tZSB3YXkgdG8KLSAgICogaGFuZGxlIHRo
aXMgc2l0dWF0aW9uLgotICAgKi8KLSAgcmV0dXJuICh1LT5zKih2LT50IC0gdy0+dCkgKyB2LT5z
Kih3LT50IC0gdS0+dCkgKyB3LT5zKih1LT50IC0gdi0+dCkpID49IDA7Ci19Ci0KLS8qIEdpdmVu
IHBhcmFtZXRlcnMgYSx4LGIseSByZXR1cm5zIHRoZSB2YWx1ZSAoYip4K2EqeSkvKGErYiksCi0g
KiBvciAoeCt5KS8yIGlmIGE9PWI9PTAuICBJdCByZXF1aXJlcyB0aGF0IGEsYiA+PSAwLCBhbmQg
ZW5mb3JjZXMKLSAqIHRoaXMgaW4gdGhlIHJhcmUgY2FzZSB0aGF0IG9uZSBhcmd1bWVudCBpcyBz
bGlnaHRseSBuZWdhdGl2ZS4KLSAqIFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBleHRyZW1lbHkgc3Rh
YmxlIG51bWVyaWNhbGx5LgotICogSW4gcGFydGljdWxhciBpdCBndWFyYW50ZWVzIHRoYXQgdGhl
IHJlc3VsdCByIHNhdGlzZmllcwotICogTUlOKHgseSkgPD0gciA8PSBNQVgoeCx5KSwgYW5kIHRo
ZSByZXN1bHRzIGFyZSB2ZXJ5IGFjY3VyYXRlCi0gKiBldmVuIHdoZW4gYSBhbmQgYiBkaWZmZXIg
Z3JlYXRseSBpbiBtYWduaXR1ZGUuCi0gKi8KLSNkZWZpbmUgUmVhbEludGVycG9sYXRlKGEseCxi
LHkpCQkJXAotICAoYSA9IChhIDwgMCkgPyAwIDogYSwgYiA9IChiIDwgMCkgPyAwIDogYiwJCVwK
LSAgKChhIDw9IGIpID8gKChiID09IDApID8gKCh4K3kpIC8gMikJCQlcCi0gICAgICAgICAgICAg
ICAgICAgICAgICA6ICh4ICsgKHkteCkgKiAoYS8oYStiKSkpKQlcCi0gICAgICAgICAgICA6ICh5
ICsgKHgteSkgKiAoYi8oYStiKSkpKSkKLQotI2lmbmRlZiBGT1JfVFJJVEVfVEVTVF9QUk9HUkFN
Ci0jZGVmaW5lIEludGVycG9sYXRlKGEseCxiLHkpCVJlYWxJbnRlcnBvbGF0ZShhLHgsYix5KQot
I2Vsc2UKLQotLyogQ2xhaW06IHRoZSBPTkxZIHByb3BlcnR5IHRoZSBzd2VlcCBhbGdvcml0aG0g
cmVsaWVzIG9uIGlzIHRoYXQKLSAqIE1JTih4LHkpIDw9IHIgPD0gTUFYKHgseSkuICBUaGlzIGlz
IGEgbmFzdHkgd2F5IHRvIHRlc3QgdGhhdC4KLSAqLwotI2luY2x1ZGUgPHN0ZGxpYi5oPgotZXh0
ZXJuIGludCBSYW5kb21JbnRlcnBvbGF0ZTsKLQotR0xkb3VibGUgSW50ZXJwb2xhdGUoIEdMZG91
YmxlIGEsIEdMZG91YmxlIHgsIEdMZG91YmxlIGIsIEdMZG91YmxlIHkpCi17Ci1wcmludGYoIioq
KioqKioqKioqKioqKioqKioqKiVkXG4iLFJhbmRvbUludGVycG9sYXRlKTsKLSAgaWYoIFJhbmRv
bUludGVycG9sYXRlICkgewotICAgIGEgPSAxLjIgKiBkcmFuZDQ4KCkgLSAwLjE7Ci0gICAgYSA9
IChhIDwgMCkgPyAwIDogKChhID4gMSkgPyAxIDogYSk7Ci0gICAgYiA9IDEuMCAtIGE7Ci0gIH0K
LSAgcmV0dXJuIFJlYWxJbnRlcnBvbGF0ZShhLHgsYix5KTsKLX0KLQotI2VuZGlmCi0KLSNkZWZp
bmUgU3dhcChhLGIpCWlmICgxKSB7IEdMVXZlcnRleCAqdCA9IGE7IGEgPSBiOyBiID0gdDsgfSBl
bHNlCi0KLXZvaWQgX19nbF9lZGdlSW50ZXJzZWN0KCBHTFV2ZXJ0ZXggKm8xLCBHTFV2ZXJ0ZXgg
KmQxLAotCQkJIEdMVXZlcnRleCAqbzIsIEdMVXZlcnRleCAqZDIsCi0JCQkgR0xVdmVydGV4ICp2
ICkKLS8qIEdpdmVuIGVkZ2VzIChvMSxkMSkgYW5kIChvMixkMiksIGNvbXB1dGUgdGhlaXIgcG9p
bnQgb2YgaW50ZXJzZWN0aW9uLgotICogVGhlIGNvbXB1dGVkIHBvaW50IGlzIGd1YXJhbnRlZWQg
dG8gbGllIGluIHRoZSBpbnRlcnNlY3Rpb24gb2YgdGhlCi0gKiBib3VuZGluZyByZWN0YW5nbGVz
IGRlZmluZWQgYnkgZWFjaCBlZGdlLgotICovCi17Ci0gIEdMZG91YmxlIHoxLCB6MjsKLQotICAv
KiBUaGlzIGlzIGNlcnRhaW5seSBub3QgdGhlIG1vc3QgZWZmaWNpZW50IHdheSB0byBmaW5kIHRo
ZSBpbnRlcnNlY3Rpb24KLSAgICogb2YgdHdvIGxpbmUgc2VnbWVudHMsIGJ1dCBpdCBpcyB2ZXJ5
IG51bWVyaWNhbGx5IHN0YWJsZS4KLSAgICoKLSAgICogU3RyYXRlZ3k6IGZpbmQgdGhlIHR3byBt
aWRkbGUgdmVydGljZXMgaW4gdGhlIFZlcnRMZXEgb3JkZXJpbmcsCi0gICAqIGFuZCBpbnRlcnBv
bGF0ZSB0aGUgaW50ZXJzZWN0aW9uIHMtdmFsdWUgZnJvbSB0aGVzZS4gIFRoZW4gcmVwZWF0Ci0g
ICAqIHVzaW5nIHRoZSBUcmFuc0xlcSBvcmRlcmluZyB0byBmaW5kIHRoZSBpbnRlcnNlY3Rpb24g
dC12YWx1ZS4KLSAgICovCi0KLSAgaWYoICEgVmVydExlcSggbzEsIGQxICkpIHsgU3dhcCggbzEs
IGQxICk7IH0KLSAgaWYoICEgVmVydExlcSggbzIsIGQyICkpIHsgU3dhcCggbzIsIGQyICk7IH0K
LSAgaWYoICEgVmVydExlcSggbzEsIG8yICkpIHsgU3dhcCggbzEsIG8yICk7IFN3YXAoIGQxLCBk
MiApOyB9Ci0KLSAgaWYoICEgVmVydExlcSggbzIsIGQxICkpIHsKLSAgICAvKiBUZWNobmljYWxs
eSwgbm8gaW50ZXJzZWN0aW9uIC0tIGRvIG91ciBiZXN0ICovCi0gICAgdi0+cyA9IChvMi0+cyAr
IGQxLT5zKSAvIDI7Ci0gIH0gZWxzZSBpZiggVmVydExlcSggZDEsIGQyICkpIHsKLSAgICAvKiBJ
bnRlcnBvbGF0ZSBiZXR3ZWVuIG8yIGFuZCBkMSAqLwotICAgIHoxID0gRWRnZUV2YWwoIG8xLCBv
MiwgZDEgKTsKLSAgICB6MiA9IEVkZ2VFdmFsKCBvMiwgZDEsIGQyICk7Ci0gICAgaWYoIHoxK3oy
IDwgMCApIHsgejEgPSAtejE7IHoyID0gLXoyOyB9Ci0gICAgdi0+cyA9IEludGVycG9sYXRlKCB6
MSwgbzItPnMsIHoyLCBkMS0+cyApOwotICB9IGVsc2UgewotICAgIC8qIEludGVycG9sYXRlIGJl
dHdlZW4gbzIgYW5kIGQyICovCi0gICAgejEgPSBFZGdlU2lnbiggbzEsIG8yLCBkMSApOwotICAg
IHoyID0gLUVkZ2VTaWduKCBvMSwgZDIsIGQxICk7Ci0gICAgaWYoIHoxK3oyIDwgMCApIHsgejEg
PSAtejE7IHoyID0gLXoyOyB9Ci0gICAgdi0+cyA9IEludGVycG9sYXRlKCB6MSwgbzItPnMsIHoy
LCBkMi0+cyApOwotICB9Ci0KLSAgLyogTm93IHJlcGVhdCB0aGUgcHJvY2VzcyBmb3IgdCAqLwot
Ci0gIGlmKCAhIFRyYW5zTGVxKCBvMSwgZDEgKSkgeyBTd2FwKCBvMSwgZDEgKTsgfQotICBpZigg
ISBUcmFuc0xlcSggbzIsIGQyICkpIHsgU3dhcCggbzIsIGQyICk7IH0KLSAgaWYoICEgVHJhbnNM
ZXEoIG8xLCBvMiApKSB7IFN3YXAoIG8xLCBvMiApOyBTd2FwKCBkMSwgZDIgKTsgfQotCi0gIGlm
KCAhIFRyYW5zTGVxKCBvMiwgZDEgKSkgewotICAgIC8qIFRlY2huaWNhbGx5LCBubyBpbnRlcnNl
Y3Rpb24gLS0gZG8gb3VyIGJlc3QgKi8KLSAgICB2LT50ID0gKG8yLT50ICsgZDEtPnQpIC8gMjsK
LSAgfSBlbHNlIGlmKCBUcmFuc0xlcSggZDEsIGQyICkpIHsKLSAgICAvKiBJbnRlcnBvbGF0ZSBi
ZXR3ZWVuIG8yIGFuZCBkMSAqLwotICAgIHoxID0gVHJhbnNFdmFsKCBvMSwgbzIsIGQxICk7Ci0g
ICAgejIgPSBUcmFuc0V2YWwoIG8yLCBkMSwgZDIgKTsKLSAgICBpZiggejErejIgPCAwICkgeyB6
MSA9IC16MTsgejIgPSAtejI7IH0KLSAgICB2LT50ID0gSW50ZXJwb2xhdGUoIHoxLCBvMi0+dCwg
ejIsIGQxLT50ICk7Ci0gIH0gZWxzZSB7Ci0gICAgLyogSW50ZXJwb2xhdGUgYmV0d2VlbiBvMiBh
bmQgZDIgKi8KLSAgICB6MSA9IFRyYW5zU2lnbiggbzEsIG8yLCBkMSApOwotICAgIHoyID0gLVRy
YW5zU2lnbiggbzEsIGQyLCBkMSApOwotICAgIGlmKCB6MSt6MiA8IDAgKSB7IHoxID0gLXoxOyB6
MiA9IC16MjsgfQotICAgIHYtPnQgPSBJbnRlcnBvbGF0ZSggejEsIG8yLT50LCB6MiwgZDItPnQg
KTsKLSAgfQotfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL2dl
b20uaCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9nZW9tLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk3YjdiMzAuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS90aGlyZHBh
cnR5L2dsdS9saWJ0ZXNzL2dlb20uaAorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLS8q
Ci0qKiBMaWNlbnNlIEFwcGxpY2FiaWxpdHkuIEV4Y2VwdCB0byB0aGUgZXh0ZW50IHBvcnRpb25z
IG9mIHRoaXMgZmlsZSBhcmUKLSoqIG1hZGUgc3ViamVjdCB0byBhbiBhbHRlcm5hdGl2ZSBsaWNl
bnNlIGFzIHBlcm1pdHRlZCBpbiB0aGUgU0dJIEZyZWUKLSoqIFNvZnR3YXJlIExpY2Vuc2UgQiwg
VmVyc2lvbiAxLjEgKHRoZSAiTGljZW5zZSIpLCB0aGUgY29udGVudHMgb2YgdGhpcwotKiogZmls
ZSBhcmUgc3ViamVjdCBvbmx5IHRvIHRoZSBwcm92aXNpb25zIG9mIHRoZSBMaWNlbnNlLiBZb3Ug
bWF5IG5vdCB1c2UKLSoqIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBM
aWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKLSoqIG9mIHRoZSBMaWNlbnNlIGF0IFNpbGlj
b24gR3JhcGhpY3MsIEluYy4sIGF0dG46IExlZ2FsIFNlcnZpY2VzLCAxNjAwCi0qKiBBbXBoaXRo
ZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDMtMTM1MSwgb3IgYXQ6Ci0qKiAK
LSoqIGh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9qZWN0cy9GcmVlQgotKiogCi0qKiBOb3RlIHRoYXQs
IGFzIHByb3ZpZGVkIGluIHRoZSBMaWNlbnNlLCB0aGUgU29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQg
b24gYW4KLSoqICJBUyBJUyIgYmFzaXMsIHdpdGggQUxMIEVYUFJFU1MgQU5EIElNUExJRUQgV0FS
UkFOVElFUyBBTkQgQ09ORElUSU9OUwotKiogRElTQ0xBSU1FRCwgSU5DTFVESU5HLCBXSVRIT1VU
IExJTUlUQVRJT04sIEFOWSBJTVBMSUVEIFdBUlJBTlRJRVMgQU5ECi0qKiBDT05ESVRJT05TIE9G
IE1FUkNIQU5UQUJJTElUWSwgU0FUSVNGQUNUT1JZIFFVQUxJVFksIEZJVE5FU1MgRk9SIEEKLSoq
IFBBUlRJQ1VMQVIgUFVSUE9TRSwgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0qKiAKLSoqIE9yaWdp
bmFsIENvZGUuIFRoZSBPcmlnaW5hbCBDb2RlIGlzOiBPcGVuR0wgU2FtcGxlIEltcGxlbWVudGF0
aW9uLAotKiogVmVyc2lvbiAxLjIuMSwgcmVsZWFzZWQgSmFudWFyeSAyNiwgMjAwMCwgZGV2ZWxv
cGVkIGJ5IFNpbGljb24gR3JhcGhpY3MsCi0qKiBJbmMuIFRoZSBPcmlnaW5hbCBDb2RlIGlzIENv
cHlyaWdodCAoYykgMTk5MS0yMDAwIFNpbGljb24gR3JhcGhpY3MsIEluYy4KLSoqIENvcHlyaWdo
dCBpbiBhbnkgcG9ydGlvbnMgY3JlYXRlZCBieSB0aGlyZCBwYXJ0aWVzIGlzIGFzIGluZGljYXRl
ZAotKiogZWxzZXdoZXJlIGhlcmVpbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSoqIAotKiogQWRk
aXRpb25hbCBOb3RpY2UgUHJvdmlzaW9uczogVGhlIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nIGlu
dGVyZmFjZXMKLSoqIGVzdGFibGlzaGVkIGJ5IFNHSSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBP
cmlnaW5hbCBDb2RlIGFyZSBUaGUKLSoqIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW06IEEgU3Bl
Y2lmaWNhdGlvbiAoVmVyc2lvbiAxLjIuMSksIHJlbGVhc2VkCi0qKiBBcHJpbCAxLCAxOTk5OyBU
aGUgT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbSBVdGlsaXR5IExpYnJhcnkgKFZlcnNpb24KLSoq
IDEuMyksIHJlbGVhc2VkIE5vdmVtYmVyIDQsIDE5OTg7IGFuZCBPcGVuR0woUikgR3JhcGhpY3Mg
d2l0aCB0aGUgWAotKiogV2luZG93IFN5c3RlbShSKSAoVmVyc2lvbiAxLjMpLCByZWxlYXNlZCBP
Y3RvYmVyIDE5LCAxOTk4LiBUaGlzIHNvZnR3YXJlCi0qKiB3YXMgY3JlYXRlZCB1c2luZyB0aGUg
T3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU2FtcGxlIEltcGxlbWVudGF0aW9uCi0qKiBwdWJsaXNo
ZWQgYnkgU0dJLCBidXQgaGFzIG5vdCBiZWVuIGluZGVwZW5kZW50bHkgdmVyaWZpZWQgYXMgYmVp
bmcKLSoqIGNvbXBsaWFudCB3aXRoIHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTcGVjaWZp
Y2F0aW9uLgotKioKLSovCi0vKgotKiogQXV0aG9yOiBFcmljIFZlYWNoLCBKdWx5IDE5OTQuCi0q
KgotKiogJERhdGUkICRSZXZpc2lvbiQKLSoqICRIZWFkZXI6IC8vZGVwb3QvbWFpbi9nZngvbGli
L2dsdS9saWJ0ZXNzL2dlb20uaCM1ICQKLSovCi0KLSNpZm5kZWYgX19nZW9tX2hfCi0jZGVmaW5l
IF9fZ2VvbV9oXwotCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZXNoLmgiCi0K
LSNpZmRlZiBOT19CUkFOQ0hfQ09ORElUSU9OUwotLyogTUlQUyBhcmNoaXRlY3R1cmUgaGFzIHNw
ZWNpYWwgaW5zdHJ1Y3Rpb25zIHRvIGV2YWx1YXRlIGJvb2xlYW4KLSAqIGNvbmRpdGlvbnMgLS0g
bW9yZSBlZmZpY2llbnQgdGhhbiBicmFuY2hpbmcsIElGIHlvdSBjYW4gZ2V0IHRoZQotICogY29t
cGlsZXIgdG8gZ2VuZXJhdGUgdGhlIHJpZ2h0IGluc3RydWN0aW9ucyAoU0dJIGNvbXBpbGVyIGRv
ZXNuJ3QpCi0gKi8KLSNkZWZpbmUgVmVydEVxKHUsdikJKCgodSktPnMgPT0gKHYpLT5zKSAmICgo
dSktPnQgPT0gKHYpLT50KSkKLSNkZWZpbmUgVmVydExlcSh1LHYpCSgoKHUpLT5zIDwgKHYpLT5z
KSB8IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoKHUpLT5zID09ICh2KS0+cyAmICh1KS0+
dCA8PSAodiktPnQpKQotI2Vsc2UKLSNkZWZpbmUgVmVydEVxKHUsdikJKCh1KS0+cyA9PSAodikt
PnMgJiYgKHUpLT50ID09ICh2KS0+dCkKLSNkZWZpbmUgVmVydExlcSh1LHYpCSgoKHUpLT5zIDwg
KHYpLT5zKSB8fCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCh1KS0+cyA9PSAodiktPnMg
JiYgKHUpLT50IDw9ICh2KS0+dCkpCi0jZW5kaWYKLQotI2RlZmluZSBFZGdlRXZhbCh1LHYsdykJ
X19nbF9lZGdlRXZhbCh1LHYsdykKLSNkZWZpbmUgRWRnZVNpZ24odSx2LHcpCV9fZ2xfZWRnZVNp
Z24odSx2LHcpCi0KLS8qIFZlcnNpb25zIG9mIFZlcnRMZXEsIEVkZ2VTaWduLCBFZGdlRXZhbCB3
aXRoIHMgYW5kIHQgdHJhbnNwb3NlZC4gKi8KLQotI2RlZmluZSBUcmFuc0xlcSh1LHYpCSgoKHUp
LT50IDwgKHYpLT50KSB8fCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCh1KS0+dCA9PSAo
diktPnQgJiYgKHUpLT5zIDw9ICh2KS0+cykpCi0jZGVmaW5lIFRyYW5zRXZhbCh1LHYsdykJX19n
bF90cmFuc0V2YWwodSx2LHcpCi0jZGVmaW5lIFRyYW5zU2lnbih1LHYsdykJX19nbF90cmFuc1Np
Z24odSx2LHcpCi0KLQotI2RlZmluZSBFZGdlR29lc0xlZnQoZSkJCVZlcnRMZXEoIChlKS0+RHN0
LCAoZSktPk9yZyApCi0jZGVmaW5lIEVkZ2VHb2VzUmlnaHQoZSkJVmVydExlcSggKGUpLT5Pcmcs
IChlKS0+RHN0ICkKLQotI2RlZmluZSBBQlMoeCkJKCh4KSA8IDAgPyAtKHgpIDogKHgpKQotI2Rl
ZmluZSBWZXJ0TDFkaXN0KHUsdikJKEFCUyh1LT5zIC0gdi0+cykgKyBBQlModS0+dCAtIHYtPnQp
KQotCi0jZGVmaW5lIFZlcnRDQ1codSx2LHcpCV9fZ2xfdmVydENDVyh1LHYsdykKLQotaW50CQlf
X2dsX3ZlcnRMZXEoIEdMVXZlcnRleCAqdSwgR0xVdmVydGV4ICp2ICk7Ci1HTGRvdWJsZQlfX2ds
X2VkZ2VFdmFsKCBHTFV2ZXJ0ZXggKnUsIEdMVXZlcnRleCAqdiwgR0xVdmVydGV4ICp3ICk7Ci1H
TGRvdWJsZQlfX2dsX2VkZ2VTaWduKCBHTFV2ZXJ0ZXggKnUsIEdMVXZlcnRleCAqdiwgR0xVdmVy
dGV4ICp3ICk7Ci1HTGRvdWJsZQlfX2dsX3RyYW5zRXZhbCggR0xVdmVydGV4ICp1LCBHTFV2ZXJ0
ZXggKnYsIEdMVXZlcnRleCAqdyApOwotR0xkb3VibGUJX19nbF90cmFuc1NpZ24oIEdMVXZlcnRl
eCAqdSwgR0xVdmVydGV4ICp2LCBHTFV2ZXJ0ZXggKncgKTsKLWludAkJX19nbF92ZXJ0Q0NXKCBH
TFV2ZXJ0ZXggKnUsIEdMVXZlcnRleCAqdiwgR0xVdmVydGV4ICp3ICk7Ci12b2lkCQlfX2dsX2Vk
Z2VJbnRlcnNlY3QoIEdMVXZlcnRleCAqbzEsIEdMVXZlcnRleCAqZDEsCi0JCQkJICAgIEdMVXZl
cnRleCAqbzIsIEdMVXZlcnRleCAqZDIsCi0JCQkJICAgIEdMVXZlcnRleCAqdiApOwotCi0jZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZW1hbGxvYy5j
IGIvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lbWFsbG9jLmMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI0MjJiNjYuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS90aGlyZHBh
cnR5L2dsdS9saWJ0ZXNzL21lbWFsbG9jLmMKKysrIC9kZXYvbnVsbApAQCAtMSw2MiArMCwwIEBA
Ci0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8gdGhlIGV4dGVudCBwb3J0
aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1YmplY3QgdG8gYW4gYWx0ZXJuYXRpdmUg
bGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBTb2Z0d2FyZSBMaWNlbnNl
IEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9mIHRoaXMKLSoq
IGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgTGljZW5zZS4g
WW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0
aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0aGUgTGljZW5zZSBhdCBT
aWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYwMAotKiogQW1w
aGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzLTEzNTEsIG9yIGF0Ogot
KiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMvRnJlZUIKLSoqIAotKiogTm90ZSB0
aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhlIFNvZnR3YXJlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBSRVNTIEFORCBJTVBMSUVE
IFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NMQUlNRUQsIElOQ0xVRElORywgV0lU
SE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5USUVTIEFORAotKiogQ09ORElUSU9O
UyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBRVUFMSVRZLCBGSVRORVNTIEZPUiBB
Ci0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5GUklOR0VNRU5ULgotKiogCi0qKiBP
cmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczogT3BlbkdMIFNhbXBsZSBJbXBsZW1l
bnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2VkIEphbnVhcnkgMjYsIDIwMDAsIGRl
dmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5jLiBUaGUgT3JpZ2luYWwgQ29kZSBp
cyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCi0qKiBDb3B5
cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFydGllcyBpcyBhcyBpbmRp
Y2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0qKiAKLSoq
IEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNhdGlvbiBwcm9ncmFtbWlu
ZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kgaW4gY29uanVuY3Rpb24gd2l0aCB0
aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtOiBB
IFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxlYXNlZAotKiogQXByaWwgMSwgMTk5
OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBMaWJyYXJ5IChWZXJzaW9u
Ci0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQgT3BlbkdMKFIpIEdyYXBo
aWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNpb24gMS4zKSwgcmVsZWFz
ZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQotKiogd2FzIGNyZWF0ZWQgdXNpbmcg
dGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRhdGlvbgotKiogcHVi
bGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVudGx5IHZlcmlmaWVkIGFz
IGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU3Bl
Y2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjogRXJpYyBWZWFjaCwgSnVseSAxOTk0
LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVhZGVyOiAvL2RlcG90L21haW4vZ2Z4
L2xpYi9nbHUvbGlidGVzcy9tZW1hbGxvYy5jIzUgJAotKi8KLQotI2luY2x1ZGUgInN0cmluZy5o
IgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvbWVtYWxsb2MuaCIKLQotaW50IF9f
Z2xfbWVtSW5pdCggc2l6ZV90IG1heEZhc3QgKQotewotI2lmbmRlZiBOT19NQUxMT1BUCi0vKiAg
bWFsbG9wdCggTV9NWEZBU1QsIG1heEZhc3QgKTsqLwotI2lmZGVmIE1FTU9SWV9ERUJVRwotICBt
YWxsb3B0KCBNX0RFQlVHLCAxICk7Ci0jZW5kaWYKLSNlbmRpZgotICAgcmV0dXJuIDE7Ci19Ci0K
LSNpZmRlZiBNRU1PUllfREVCVUcKLXZvaWQgKl9fZ2xfbWVtQWxsb2MoIHNpemVfdCBuICkKLXsK
LSAgcmV0dXJuIG1lbXNldCggbWFsbG9jKCBuICksIDB4YTUsIG4gKTsKLX0KLSNlbmRpZgotCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvbWVtYWxsb2MuaCBiL1dl
YkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZW1hbGxvYy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxZTM3ZjdhLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9n
bHUvbGlidGVzcy9tZW1hbGxvYy5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoK
LSoqIExpY2Vuc2UgQXBwbGljYWJpbGl0eS4gRXhjZXB0IHRvIHRoZSBleHRlbnQgcG9ydGlvbnMg
b2YgdGhpcyBmaWxlIGFyZQotKiogbWFkZSBzdWJqZWN0IHRvIGFuIGFsdGVybmF0aXZlIGxpY2Vu
c2UgYXMgcGVybWl0dGVkIGluIHRoZSBTR0kgRnJlZQotKiogU29mdHdhcmUgTGljZW5zZSBCLCBW
ZXJzaW9uIDEuMSAodGhlICJMaWNlbnNlIiksIHRoZSBjb250ZW50cyBvZiB0aGlzCi0qKiBmaWxl
IGFyZSBzdWJqZWN0IG9ubHkgdG8gdGhlIHByb3Zpc2lvbnMgb2YgdGhlIExpY2Vuc2UuIFlvdSBt
YXkgbm90IHVzZQotKiogdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExp
Y2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weQotKiogb2YgdGhlIExpY2Vuc2UgYXQgU2lsaWNv
biBHcmFwaGljcywgSW5jLiwgYXR0bjogTGVnYWwgU2VydmljZXMsIDE2MDAKLSoqIEFtcGhpdGhl
YXRyZSBQYXJrd2F5LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0My0xMzUxLCBvciBhdDoKLSoqIAot
KiogaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3RzL0ZyZWVCCi0qKiAKLSoqIE5vdGUgdGhhdCwg
YXMgcHJvdmlkZWQgaW4gdGhlIExpY2Vuc2UsIHRoZSBTb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBv
biBhbgotKiogIkFTIElTIiBiYXNpcywgd2l0aCBBTEwgRVhQUkVTUyBBTkQgSU1QTElFRCBXQVJS
QU5USUVTIEFORCBDT05ESVRJT05TCi0qKiBESVNDTEFJTUVELCBJTkNMVURJTkcsIFdJVEhPVVQg
TElNSVRBVElPTiwgQU5ZIElNUExJRUQgV0FSUkFOVElFUyBBTkQKLSoqIENPTkRJVElPTlMgT0Yg
TUVSQ0hBTlRBQklMSVRZLCBTQVRJU0ZBQ1RPUlkgUVVBTElUWSwgRklUTkVTUyBGT1IgQQotKiog
UEFSVElDVUxBUiBQVVJQT1NFLCBBTkQgTk9OLUlORlJJTkdFTUVOVC4KLSoqIAotKiogT3JpZ2lu
YWwgQ29kZS4gVGhlIE9yaWdpbmFsIENvZGUgaXM6IE9wZW5HTCBTYW1wbGUgSW1wbGVtZW50YXRp
b24sCi0qKiBWZXJzaW9uIDEuMi4xLCByZWxlYXNlZCBKYW51YXJ5IDI2LCAyMDAwLCBkZXZlbG9w
ZWQgYnkgU2lsaWNvbiBHcmFwaGljcywKLSoqIEluYy4gVGhlIE9yaWdpbmFsIENvZGUgaXMgQ29w
eXJpZ2h0IChjKSAxOTkxLTIwMDAgU2lsaWNvbiBHcmFwaGljcywgSW5jLgotKiogQ29weXJpZ2h0
IGluIGFueSBwb3J0aW9ucyBjcmVhdGVkIGJ5IHRoaXJkIHBhcnRpZXMgaXMgYXMgaW5kaWNhdGVk
Ci0qKiBlbHNld2hlcmUgaGVyZWluLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotKiogCi0qKiBBZGRp
dGlvbmFsIE5vdGljZSBQcm92aXNpb25zOiBUaGUgYXBwbGljYXRpb24gcHJvZ3JhbW1pbmcgaW50
ZXJmYWNlcwotKiogZXN0YWJsaXNoZWQgYnkgU0dJIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIE9y
aWdpbmFsIENvZGUgYXJlIFRoZQotKiogT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbTogQSBTcGVj
aWZpY2F0aW9uIChWZXJzaW9uIDEuMi4xKSwgcmVsZWFzZWQKLSoqIEFwcmlsIDEsIDE5OTk7IFRo
ZSBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtIFV0aWxpdHkgTGlicmFyeSAoVmVyc2lvbgotKiog
MS4zKSwgcmVsZWFzZWQgTm92ZW1iZXIgNCwgMTk5ODsgYW5kIE9wZW5HTChSKSBHcmFwaGljcyB3
aXRoIHRoZSBYCi0qKiBXaW5kb3cgU3lzdGVtKFIpIChWZXJzaW9uIDEuMyksIHJlbGVhc2VkIE9j
dG9iZXIgMTksIDE5OTguIFRoaXMgc29mdHdhcmUKLSoqIHdhcyBjcmVhdGVkIHVzaW5nIHRoZSBP
cGVuR0woUikgdmVyc2lvbiAxLjIuMSBTYW1wbGUgSW1wbGVtZW50YXRpb24KLSoqIHB1Ymxpc2hl
ZCBieSBTR0ksIGJ1dCBoYXMgbm90IGJlZW4gaW5kZXBlbmRlbnRseSB2ZXJpZmllZCBhcyBiZWlu
ZwotKiogY29tcGxpYW50IHdpdGggdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNwZWNpZmlj
YXRpb24uCi0qKgotKi8KLS8qCi0qKiBBdXRob3I6IEVyaWMgVmVhY2gsIEp1bHkgMTk5NC4KLSoq
Ci0qKiAkRGF0ZSQgJFJldmlzaW9uJAotKiogJEhlYWRlcjogLy9kZXBvdC9tYWluL2dmeC9saWIv
Z2x1L2xpYnRlc3MvbWVtYWxsb2MuaCM1ICQKLSovCi0KLSNpZm5kZWYgX19tZW1hbGxvY19zaW1w
bGVfaF8KLSNkZWZpbmUgX19tZW1hbGxvY19zaW1wbGVfaF8KLQotI2luY2x1ZGUgPHN0ZGxpYi5o
PgotCi0jZGVmaW5lIG1lbVJlYWxsb2MJcmVhbGxvYwotI2RlZmluZSBtZW1GcmVlCQlmcmVlCi0K
LSNkZWZpbmUgbWVtSW5pdAkJX19nbF9tZW1Jbml0Ci0vKmV4dGVybiB2b2lkCQlfX2dsX21lbUlu
aXQoIHNpemVfdCApOyovCi1leHRlcm4gaW50CQlfX2dsX21lbUluaXQoIHNpemVfdCApOwotCi0j
aWZuZGVmIE1FTU9SWV9ERUJVRwotI2RlZmluZSBtZW1BbGxvYwltYWxsb2MKLSNlbHNlCi0jZGVm
aW5lIG1lbUFsbG9jCV9fZ2xfbWVtQWxsb2MKLWV4dGVybiB2b2lkICoJCV9fZ2xfbWVtQWxsb2Mo
IHNpemVfdCApOwotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBh
cnR5L2dsdS9saWJ0ZXNzL21lc2guYyBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9t
ZXNoLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyZmY0NjkuLjAwMDAwMDAKLS0t
IGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lc2guYworKysgL2Rldi9udWxsCkBA
IC0xLDc5NiArMCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8g
dGhlIGV4dGVudCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1YmplY3QgdG8g
YW4gYWx0ZXJuYXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBT
b2Z0d2FyZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRl
bnRzIG9mIHRoaXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlzaW9ucyBv
ZiB0aGUgTGljZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0IGluIGNv
bXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0
aGUgTGljZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNl
cywgMTYwMAotKiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQz
LTEzNTEsIG9yIGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMvRnJlZUIK
LSoqIAotKiogTm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhlIFNvZnR3
YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBS
RVNTIEFORCBJTVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NMQUlNRUQs
IElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5USUVTIEFO
RAotKiogQ09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBRVUFMSVRZ
LCBGSVRORVNTIEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5GUklOR0VN
RU5ULgotKiogCi0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczogT3BlbkdM
IFNhbXBsZSBJbXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2VkIEphbnVh
cnkgMjYsIDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5jLiBUaGUg
T3JpZ2luYWwgQ29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNz
LCBJbmMuCi0qKiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFy
dGllcyBpcyBhcyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0qKiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNh
dGlvbiBwcm9ncmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kgaW4gY29u
anVuY3Rpb24gd2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0woUikgR3Jh
cGhpY3MgU3lzdGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxlYXNlZAot
KiogQXByaWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBM
aWJyYXJ5IChWZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQg
T3BlbkdMKFIpIEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNp
b24gMS4zKSwgcmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQotKiogd2Fz
IGNyZWF0ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1l
bnRhdGlvbgotKiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVu
dGx5IHZlcmlmaWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZl
cnNpb24gMS4yLjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjogRXJpYyBW
ZWFjaCwgSnVseSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVhZGVyOiAv
L2RlcG90L21haW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9tZXNoLmMjNiAkCi0qLwotCi0jaW5jbHVk
ZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSAidGhpcmRwYXJ0eS9n
bHUvZ2x1b3MuaCIKLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lbWFsbG9jLmgi
Ci0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZXNoLmgiCi0KLSNkZWZpbmUgVFJV
RSAxCi0jZGVmaW5lIEZBTFNFIDAKLQotc3RhdGljIEdMVXZlcnRleCAqYWxsb2NWZXJ0ZXgoKQot
ewotICAgcmV0dXJuIChHTFV2ZXJ0ZXggKiltZW1BbGxvYyggc2l6ZW9mKCBHTFV2ZXJ0ZXggKSk7
Ci19Ci0KLXN0YXRpYyBHTFVmYWNlICphbGxvY0ZhY2UoKQotewotICAgcmV0dXJuIChHTFVmYWNl
ICopbWVtQWxsb2MoIHNpemVvZiggR0xVZmFjZSApKTsKLX0KLQotLyoqKioqKioqKioqKioqKioq
KioqKioqKiBVdGlsaXR5IFJvdXRpbmVzICoqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyog
QWxsb2NhdGUgYW5kIGZyZWUgaGFsZi1lZGdlcyBpbiBwYWlycyBmb3IgZWZmaWNpZW5jeS4KLSAq
IFRoZSAqb25seSogcGxhY2UgdGhhdCBzaG91bGQgdXNlIHRoaXMgZmFjdCBpcyBhbGxvY2F0aW9u
L2ZyZWUuCi0gKi8KLXR5cGVkZWYgc3RydWN0IHsgR0xVaGFsZkVkZ2UgZSwgZVN5bTsgfSBFZGdl
UGFpcjsKLQotLyogTWFrZUVkZ2UgY3JlYXRlcyBhIG5ldyBwYWlyIG9mIGhhbGYtZWRnZXMgd2hp
Y2ggZm9ybSB0aGVpciBvd24gbG9vcC4KLSAqIE5vIHZlcnRleCBvciBmYWNlIHN0cnVjdHVyZXMg
YXJlIGFsbG9jYXRlZCwgYnV0IHRoZXNlIG11c3QgYmUgYXNzaWduZWQKLSAqIGJlZm9yZSB0aGUg
Y3VycmVudCBlZGdlIG9wZXJhdGlvbiBpcyBjb21wbGV0ZWQuCi0gKi8KLXN0YXRpYyBHTFVoYWxm
RWRnZSAqTWFrZUVkZ2UoIEdMVWhhbGZFZGdlICplTmV4dCApCi17Ci0gIEdMVWhhbGZFZGdlICpl
OwotICBHTFVoYWxmRWRnZSAqZVN5bTsKLSAgR0xVaGFsZkVkZ2UgKmVQcmV2OwotICBFZGdlUGFp
ciAqcGFpciA9IChFZGdlUGFpciAqKW1lbUFsbG9jKCBzaXplb2YoIEVkZ2VQYWlyICkpOwotICBp
ZiAocGFpciA9PSBOVUxMKSByZXR1cm4gTlVMTDsKLQotICBlID0gJnBhaXItPmU7Ci0gIGVTeW0g
PSAmcGFpci0+ZVN5bTsKLQotICAvKiBNYWtlIHN1cmUgZU5leHQgcG9pbnRzIHRvIHRoZSBmaXJz
dCBlZGdlIG9mIHRoZSBlZGdlIHBhaXIgKi8KLSAgaWYoIGVOZXh0LT5TeW0gPCBlTmV4dCApIHsg
ZU5leHQgPSBlTmV4dC0+U3ltOyB9Ci0KLSAgLyogSW5zZXJ0IGluIGNpcmN1bGFyIGRvdWJseS1s
aW5rZWQgbGlzdCBiZWZvcmUgZU5leHQuCi0gICAqIE5vdGUgdGhhdCB0aGUgcHJldiBwb2ludGVy
IGlzIHN0b3JlZCBpbiBTeW0tPm5leHQuCi0gICAqLwotICBlUHJldiA9IGVOZXh0LT5TeW0tPm5l
eHQ7Ci0gIGVTeW0tPm5leHQgPSBlUHJldjsKLSAgZVByZXYtPlN5bS0+bmV4dCA9IGU7Ci0gIGUt
Pm5leHQgPSBlTmV4dDsKLSAgZU5leHQtPlN5bS0+bmV4dCA9IGVTeW07Ci0KLSAgZS0+U3ltID0g
ZVN5bTsKLSAgZS0+T25leHQgPSBlOwotICBlLT5MbmV4dCA9IGVTeW07Ci0gIGUtPk9yZyA9IE5V
TEw7Ci0gIGUtPkxmYWNlID0gTlVMTDsKLSAgZS0+d2luZGluZyA9IDA7Ci0gIGUtPmFjdGl2ZVJl
Z2lvbiA9IE5VTEw7Ci0KLSAgZVN5bS0+U3ltID0gZTsKLSAgZVN5bS0+T25leHQgPSBlU3ltOwot
ICBlU3ltLT5MbmV4dCA9IGU7Ci0gIGVTeW0tPk9yZyA9IE5VTEw7Ci0gIGVTeW0tPkxmYWNlID0g
TlVMTDsKLSAgZVN5bS0+d2luZGluZyA9IDA7Ci0gIGVTeW0tPmFjdGl2ZVJlZ2lvbiA9IE5VTEw7
Ci0KLSAgcmV0dXJuIGU7Ci19Ci0KLS8qIFNwbGljZSggYSwgYiApIGlzIGJlc3QgZGVzY3JpYmVk
IGJ5IHRoZSBHdWliYXMvU3RvbGZpIHBhcGVyIG9yIHRoZQotICogQ1MzNDhhIG5vdGVzIChzZWUg
bWVzaC5oKS4gIEJhc2ljYWxseSBpdCBtb2RpZmllcyB0aGUgbWVzaCBzbyB0aGF0Ci0gKiBhLT5P
bmV4dCBhbmQgYi0+T25leHQgYXJlIGV4Y2hhbmdlZC4gIFRoaXMgY2FuIGhhdmUgdmFyaW91cyBl
ZmZlY3RzCi0gKiBkZXBlbmRpbmcgb24gd2hldGhlciBhIGFuZCBiIGJlbG9uZyB0byBkaWZmZXJl
bnQgZmFjZSBvciB2ZXJ0ZXggcmluZ3MuCi0gKiBGb3IgbW9yZSBleHBsYW5hdGlvbiBzZWUgX19n
bF9tZXNoU3BsaWNlKCkgYmVsb3cuCi0gKi8KLXN0YXRpYyB2b2lkIFNwbGljZSggR0xVaGFsZkVk
Z2UgKmEsIEdMVWhhbGZFZGdlICpiICkKLXsKLSAgR0xVaGFsZkVkZ2UgKmFPbmV4dCA9IGEtPk9u
ZXh0OwotICBHTFVoYWxmRWRnZSAqYk9uZXh0ID0gYi0+T25leHQ7Ci0KLSAgYU9uZXh0LT5TeW0t
PkxuZXh0ID0gYjsKLSAgYk9uZXh0LT5TeW0tPkxuZXh0ID0gYTsKLSAgYS0+T25leHQgPSBiT25l
eHQ7Ci0gIGItPk9uZXh0ID0gYU9uZXh0OwotfQotCi0vKiBNYWtlVmVydGV4KCBuZXdWZXJ0ZXgs
IGVPcmlnLCB2TmV4dCApIGF0dGFjaGVzIGEgbmV3IHZlcnRleCBhbmQgbWFrZXMgaXQgdGhlCi0g
KiBvcmlnaW4gb2YgYWxsIGVkZ2VzIGluIHRoZSB2ZXJ0ZXggbG9vcCB0byB3aGljaCBlT3JpZyBi
ZWxvbmdzLiAidk5leHQiIGdpdmVzCi0gKiBhIHBsYWNlIHRvIGluc2VydCB0aGUgbmV3IHZlcnRl
eCBpbiB0aGUgZ2xvYmFsIHZlcnRleCBsaXN0LiAgV2UgaW5zZXJ0Ci0gKiB0aGUgbmV3IHZlcnRl
eCAqYmVmb3JlKiB2TmV4dCBzbyB0aGF0IGFsZ29yaXRobXMgd2hpY2ggd2FsayB0aGUgdmVydGV4
Ci0gKiBsaXN0IHdpbGwgbm90IHNlZSB0aGUgbmV3bHkgY3JlYXRlZCB2ZXJ0aWNlcy4KLSAqLwot
c3RhdGljIHZvaWQgTWFrZVZlcnRleCggR0xVdmVydGV4ICpuZXdWZXJ0ZXgsIAotCQkJR0xVaGFs
ZkVkZ2UgKmVPcmlnLCBHTFV2ZXJ0ZXggKnZOZXh0ICkKLXsKLSAgR0xVaGFsZkVkZ2UgKmU7Ci0g
IEdMVXZlcnRleCAqdlByZXY7Ci0gIEdMVXZlcnRleCAqdk5ldyA9IG5ld1ZlcnRleDsKLQotICBh
c3NlcnQodk5ldyAhPSBOVUxMKTsKLQotICAvKiBpbnNlcnQgaW4gY2lyY3VsYXIgZG91Ymx5LWxp
bmtlZCBsaXN0IGJlZm9yZSB2TmV4dCAqLwotICB2UHJldiA9IHZOZXh0LT5wcmV2OwotICB2TmV3
LT5wcmV2ID0gdlByZXY7Ci0gIHZQcmV2LT5uZXh0ID0gdk5ldzsKLSAgdk5ldy0+bmV4dCA9IHZO
ZXh0OwotICB2TmV4dC0+cHJldiA9IHZOZXc7Ci0KLSAgdk5ldy0+YW5FZGdlID0gZU9yaWc7Ci0g
IHZOZXctPmRhdGEgPSBOVUxMOwotICAvKiBsZWF2ZSBjb29yZHMsIHMsIHQgdW5kZWZpbmVkICov
Ci0KLSAgLyogZml4IG90aGVyIGVkZ2VzIG9uIHRoaXMgdmVydGV4IGxvb3AgKi8KLSAgZSA9IGVP
cmlnOwotICBkbyB7Ci0gICAgZS0+T3JnID0gdk5ldzsKLSAgICBlID0gZS0+T25leHQ7Ci0gIH0g
d2hpbGUoIGUgIT0gZU9yaWcgKTsKLX0KLQotLyogTWFrZUZhY2UoIG5ld0ZhY2UsIGVPcmlnLCBm
TmV4dCApIGF0dGFjaGVzIGEgbmV3IGZhY2UgYW5kIG1ha2VzIGl0IHRoZSBsZWZ0Ci0gKiBmYWNl
IG9mIGFsbCBlZGdlcyBpbiB0aGUgZmFjZSBsb29wIHRvIHdoaWNoIGVPcmlnIGJlbG9uZ3MuICAi
Zk5leHQiIGdpdmVzCi0gKiBhIHBsYWNlIHRvIGluc2VydCB0aGUgbmV3IGZhY2UgaW4gdGhlIGds
b2JhbCBmYWNlIGxpc3QuICBXZSBpbnNlcnQKLSAqIHRoZSBuZXcgZmFjZSAqYmVmb3JlKiBmTmV4
dCBzbyB0aGF0IGFsZ29yaXRobXMgd2hpY2ggd2FsayB0aGUgZmFjZQotICogbGlzdCB3aWxsIG5v
dCBzZWUgdGhlIG5ld2x5IGNyZWF0ZWQgZmFjZXMuCi0gKi8KLXN0YXRpYyB2b2lkIE1ha2VGYWNl
KCBHTFVmYWNlICpuZXdGYWNlLCBHTFVoYWxmRWRnZSAqZU9yaWcsIEdMVWZhY2UgKmZOZXh0ICkK
LXsKLSAgR0xVaGFsZkVkZ2UgKmU7Ci0gIEdMVWZhY2UgKmZQcmV2OwotICBHTFVmYWNlICpmTmV3
ID0gbmV3RmFjZTsKLQotICBhc3NlcnQoZk5ldyAhPSBOVUxMKTsgCi0KLSAgLyogaW5zZXJ0IGlu
IGNpcmN1bGFyIGRvdWJseS1saW5rZWQgbGlzdCBiZWZvcmUgZk5leHQgKi8KLSAgZlByZXYgPSBm
TmV4dC0+cHJldjsKLSAgZk5ldy0+cHJldiA9IGZQcmV2OwotICBmUHJldi0+bmV4dCA9IGZOZXc7
Ci0gIGZOZXctPm5leHQgPSBmTmV4dDsKLSAgZk5leHQtPnByZXYgPSBmTmV3OwotCi0gIGZOZXct
PmFuRWRnZSA9IGVPcmlnOwotICBmTmV3LT5kYXRhID0gTlVMTDsKLSAgZk5ldy0+dHJhaWwgPSBO
VUxMOwotICBmTmV3LT5tYXJrZWQgPSBGQUxTRTsKLQotICAvKiBUaGUgbmV3IGZhY2UgaXMgbWFy
a2VkICJpbnNpZGUiIGlmIHRoZSBvbGQgb25lIHdhcy4gIFRoaXMgaXMgYQotICAgKiBjb252ZW5p
ZW5jZSBmb3IgdGhlIGNvbW1vbiBjYXNlIHdoZXJlIGEgZmFjZSBoYXMgYmVlbiBzcGxpdCBpbiB0
d28uCi0gICAqLwotICBmTmV3LT5pbnNpZGUgPSBmTmV4dC0+aW5zaWRlOwotCi0gIC8qIGZpeCBv
dGhlciBlZGdlcyBvbiB0aGlzIGZhY2UgbG9vcCAqLwotICBlID0gZU9yaWc7Ci0gIGRvIHsKLSAg
ICBlLT5MZmFjZSA9IGZOZXc7Ci0gICAgZSA9IGUtPkxuZXh0OwotICB9IHdoaWxlKCBlICE9IGVP
cmlnICk7Ci19Ci0KLS8qIEtpbGxFZGdlKCBlRGVsICkgZGVzdHJveXMgYW4gZWRnZSAodGhlIGhh
bGYtZWRnZXMgZURlbCBhbmQgZURlbC0+U3ltKSwKLSAqIGFuZCByZW1vdmVzIGZyb20gdGhlIGds
b2JhbCBlZGdlIGxpc3QuCi0gKi8KLXN0YXRpYyB2b2lkIEtpbGxFZGdlKCBHTFVoYWxmRWRnZSAq
ZURlbCApCi17Ci0gIEdMVWhhbGZFZGdlICplUHJldiwgKmVOZXh0OwotCi0gIC8qIEhhbGYtZWRn
ZXMgYXJlIGFsbG9jYXRlZCBpbiBwYWlycywgc2VlIEVkZ2VQYWlyIGFib3ZlICovCi0gIGlmKCBl
RGVsLT5TeW0gPCBlRGVsICkgeyBlRGVsID0gZURlbC0+U3ltOyB9Ci0KLSAgLyogZGVsZXRlIGZy
b20gY2lyY3VsYXIgZG91Ymx5LWxpbmtlZCBsaXN0ICovCi0gIGVOZXh0ID0gZURlbC0+bmV4dDsK
LSAgZVByZXYgPSBlRGVsLT5TeW0tPm5leHQ7Ci0gIGVOZXh0LT5TeW0tPm5leHQgPSBlUHJldjsK
LSAgZVByZXYtPlN5bS0+bmV4dCA9IGVOZXh0OwotCi0gIG1lbUZyZWUoIGVEZWwgKTsKLX0KLQot
Ci0vKiBLaWxsVmVydGV4KCB2RGVsICkgZGVzdHJveXMgYSB2ZXJ0ZXggYW5kIHJlbW92ZXMgaXQg
ZnJvbSB0aGUgZ2xvYmFsCi0gKiB2ZXJ0ZXggbGlzdC4gIEl0IHVwZGF0ZXMgdGhlIHZlcnRleCBs
b29wIHRvIHBvaW50IHRvIGEgZ2l2ZW4gbmV3IHZlcnRleC4KLSAqLwotc3RhdGljIHZvaWQgS2ls
bFZlcnRleCggR0xVdmVydGV4ICp2RGVsLCBHTFV2ZXJ0ZXggKm5ld09yZyApCi17Ci0gIEdMVWhh
bGZFZGdlICplLCAqZVN0YXJ0ID0gdkRlbC0+YW5FZGdlOwotICBHTFV2ZXJ0ZXggKnZQcmV2LCAq
dk5leHQ7Ci0KLSAgLyogY2hhbmdlIHRoZSBvcmlnaW4gb2YgYWxsIGFmZmVjdGVkIGVkZ2VzICov
Ci0gIGUgPSBlU3RhcnQ7Ci0gIGRvIHsKLSAgICBlLT5PcmcgPSBuZXdPcmc7Ci0gICAgZSA9IGUt
Pk9uZXh0OwotICB9IHdoaWxlKCBlICE9IGVTdGFydCApOwotCi0gIC8qIGRlbGV0ZSBmcm9tIGNp
cmN1bGFyIGRvdWJseS1saW5rZWQgbGlzdCAqLwotICB2UHJldiA9IHZEZWwtPnByZXY7Ci0gIHZO
ZXh0ID0gdkRlbC0+bmV4dDsKLSAgdk5leHQtPnByZXYgPSB2UHJldjsKLSAgdlByZXYtPm5leHQg
PSB2TmV4dDsKLQotICBtZW1GcmVlKCB2RGVsICk7Ci19Ci0KLS8qIEtpbGxGYWNlKCBmRGVsICkg
ZGVzdHJveXMgYSBmYWNlIGFuZCByZW1vdmVzIGl0IGZyb20gdGhlIGdsb2JhbCBmYWNlCi0gKiBs
aXN0LiAgSXQgdXBkYXRlcyB0aGUgZmFjZSBsb29wIHRvIHBvaW50IHRvIGEgZ2l2ZW4gbmV3IGZh
Y2UuCi0gKi8KLXN0YXRpYyB2b2lkIEtpbGxGYWNlKCBHTFVmYWNlICpmRGVsLCBHTFVmYWNlICpu
ZXdMZmFjZSApCi17Ci0gIEdMVWhhbGZFZGdlICplLCAqZVN0YXJ0ID0gZkRlbC0+YW5FZGdlOwot
ICBHTFVmYWNlICpmUHJldiwgKmZOZXh0OwotCi0gIC8qIGNoYW5nZSB0aGUgbGVmdCBmYWNlIG9m
IGFsbCBhZmZlY3RlZCBlZGdlcyAqLwotICBlID0gZVN0YXJ0OwotICBkbyB7Ci0gICAgZS0+TGZh
Y2UgPSBuZXdMZmFjZTsKLSAgICBlID0gZS0+TG5leHQ7Ci0gIH0gd2hpbGUoIGUgIT0gZVN0YXJ0
ICk7Ci0KLSAgLyogZGVsZXRlIGZyb20gY2lyY3VsYXIgZG91Ymx5LWxpbmtlZCBsaXN0ICovCi0g
IGZQcmV2ID0gZkRlbC0+cHJldjsKLSAgZk5leHQgPSBmRGVsLT5uZXh0OwotICBmTmV4dC0+cHJl
diA9IGZQcmV2OwotICBmUHJldi0+bmV4dCA9IGZOZXh0OwotCi0gIG1lbUZyZWUoIGZEZWwgKTsK
LX0KLQotCi0vKioqKioqKioqKioqKioqKioqIEJhc2ljIEVkZ2UgT3BlcmF0aW9ucyAqKioqKioq
KioqKioqKioqKioqKioqLwotCi0vKiBfX2dsX21lc2hNYWtlRWRnZSBjcmVhdGVzIG9uZSBlZGdl
LCB0d28gdmVydGljZXMsIGFuZCBhIGxvb3AgKGZhY2UpLgotICogVGhlIGxvb3AgY29uc2lzdHMg
b2YgdGhlIHR3byBuZXcgaGFsZi1lZGdlcy4KLSAqLwotR0xVaGFsZkVkZ2UgKl9fZ2xfbWVzaE1h
a2VFZGdlKCBHTFVtZXNoICptZXNoICkKLXsKLSAgR0xVdmVydGV4ICpuZXdWZXJ0ZXgxPSBhbGxv
Y1ZlcnRleCgpOwotICBHTFV2ZXJ0ZXggKm5ld1ZlcnRleDI9IGFsbG9jVmVydGV4KCk7Ci0gIEdM
VWZhY2UgKm5ld0ZhY2U9IGFsbG9jRmFjZSgpOwotICBHTFVoYWxmRWRnZSAqZTsKLQotICAvKiBp
ZiBhbnkgb25lIGlzIG51bGwgdGhlbiBhbGwgZ2V0IGZyZWVkICovCi0gIGlmIChuZXdWZXJ0ZXgx
ID09IE5VTEwgfHwgbmV3VmVydGV4MiA9PSBOVUxMIHx8IG5ld0ZhY2UgPT0gTlVMTCkgewotICAg
ICBpZiAobmV3VmVydGV4MSAhPSBOVUxMKSBtZW1GcmVlKG5ld1ZlcnRleDEpOwotICAgICBpZiAo
bmV3VmVydGV4MiAhPSBOVUxMKSBtZW1GcmVlKG5ld1ZlcnRleDIpOwotICAgICBpZiAobmV3RmFj
ZSAhPSBOVUxMKSBtZW1GcmVlKG5ld0ZhY2UpOyAgICAgCi0gICAgIHJldHVybiBOVUxMOwotICB9
IAotCi0gIGUgPSBNYWtlRWRnZSggJm1lc2gtPmVIZWFkICk7Ci0gIGlmIChlID09IE5VTEwpIHJl
dHVybiBOVUxMOwotCi0gIE1ha2VWZXJ0ZXgoIG5ld1ZlcnRleDEsIGUsICZtZXNoLT52SGVhZCAp
OwotICBNYWtlVmVydGV4KCBuZXdWZXJ0ZXgyLCBlLT5TeW0sICZtZXNoLT52SGVhZCApOwotICBN
YWtlRmFjZSggbmV3RmFjZSwgZSwgJm1lc2gtPmZIZWFkICk7Ci0gIHJldHVybiBlOwotfQotICAK
LQotLyogX19nbF9tZXNoU3BsaWNlKCBlT3JnLCBlRHN0ICkgaXMgdGhlIGJhc2ljIG9wZXJhdGlv
biBmb3IgY2hhbmdpbmcgdGhlCi0gKiBtZXNoIGNvbm5lY3Rpdml0eSBhbmQgdG9wb2xvZ3kuICBJ
dCBjaGFuZ2VzIHRoZSBtZXNoIHNvIHRoYXQKLSAqCWVPcmctPk9uZXh0IDwtIE9MRCggZURzdC0+
T25leHQgKQotICoJZURzdC0+T25leHQgPC0gT0xEKCBlT3JnLT5PbmV4dCApCi0gKiB3aGVyZSBP
TEQoLi4uKSBtZWFucyB0aGUgdmFsdWUgYmVmb3JlIHRoZSBtZXNoU3BsaWNlIG9wZXJhdGlvbi4K
LSAqCi0gKiBUaGlzIGNhbiBoYXZlIHR3byBlZmZlY3RzIG9uIHRoZSB2ZXJ0ZXggc3RydWN0dXJl
OgotICogIC0gaWYgZU9yZy0+T3JnICE9IGVEc3QtPk9yZywgdGhlIHR3byB2ZXJ0aWNlcyBhcmUg
bWVyZ2VkIHRvZ2V0aGVyCi0gKiAgLSBpZiBlT3JnLT5PcmcgPT0gZURzdC0+T3JnLCB0aGUgb3Jp
Z2luIGlzIHNwbGl0IGludG8gdHdvIHZlcnRpY2VzCi0gKiBJbiBib3RoIGNhc2VzLCBlRHN0LT5P
cmcgaXMgY2hhbmdlZCBhbmQgZU9yZy0+T3JnIGlzIHVudG91Y2hlZC4KLSAqCi0gKiBTaW1pbGFy
bHkgKGFuZCBpbmRlcGVuZGVudGx5KSBmb3IgdGhlIGZhY2Ugc3RydWN0dXJlLAotICogIC0gaWYg
ZU9yZy0+TGZhY2UgPT0gZURzdC0+TGZhY2UsIG9uZSBsb29wIGlzIHNwbGl0IGludG8gdHdvCi0g
KiAgLSBpZiBlT3JnLT5MZmFjZSAhPSBlRHN0LT5MZmFjZSwgdHdvIGRpc3RpbmN0IGxvb3BzIGFy
ZSBqb2luZWQgaW50byBvbmUKLSAqIEluIGJvdGggY2FzZXMsIGVEc3QtPkxmYWNlIGlzIGNoYW5n
ZWQgYW5kIGVPcmctPkxmYWNlIGlzIHVuYWZmZWN0ZWQuCi0gKgotICogU29tZSBzcGVjaWFsIGNh
c2VzOgotICogSWYgZURzdCA9PSBlT3JnLCB0aGUgb3BlcmF0aW9uIGhhcyBubyBlZmZlY3QuCi0g
KiBJZiBlRHN0ID09IGVPcmctPkxuZXh0LCB0aGUgbmV3IGZhY2Ugd2lsbCBoYXZlIGEgc2luZ2xl
IGVkZ2UuCi0gKiBJZiBlRHN0ID09IGVPcmctPkxwcmV2LCB0aGUgb2xkIGZhY2Ugd2lsbCBoYXZl
IGEgc2luZ2xlIGVkZ2UuCi0gKiBJZiBlRHN0ID09IGVPcmctPk9uZXh0LCB0aGUgbmV3IHZlcnRl
eCB3aWxsIGhhdmUgYSBzaW5nbGUgZWRnZS4KLSAqIElmIGVEc3QgPT0gZU9yZy0+T3ByZXYsIHRo
ZSBvbGQgdmVydGV4IHdpbGwgaGF2ZSBhIHNpbmdsZSBlZGdlLgotICovCi1pbnQgX19nbF9tZXNo
U3BsaWNlKCBHTFVoYWxmRWRnZSAqZU9yZywgR0xVaGFsZkVkZ2UgKmVEc3QgKQotewotICBpbnQg
am9pbmluZ0xvb3BzID0gRkFMU0U7Ci0gIGludCBqb2luaW5nVmVydGljZXMgPSBGQUxTRTsKLQot
ICBpZiggZU9yZyA9PSBlRHN0ICkgcmV0dXJuIDE7Ci0KLSAgaWYoIGVEc3QtPk9yZyAhPSBlT3Jn
LT5PcmcgKSB7Ci0gICAgLyogV2UgYXJlIG1lcmdpbmcgdHdvIGRpc2pvaW50IHZlcnRpY2VzIC0t
IGRlc3Ryb3kgZURzdC0+T3JnICovCi0gICAgam9pbmluZ1ZlcnRpY2VzID0gVFJVRTsKLSAgICBL
aWxsVmVydGV4KCBlRHN0LT5PcmcsIGVPcmctPk9yZyApOwotICB9Ci0gIGlmKCBlRHN0LT5MZmFj
ZSAhPSBlT3JnLT5MZmFjZSApIHsKLSAgICAvKiBXZSBhcmUgY29ubmVjdGluZyB0d28gZGlzam9p
bnQgbG9vcHMgLS0gZGVzdHJveSBlRHN0LT5MZmFjZSAqLwotICAgIGpvaW5pbmdMb29wcyA9IFRS
VUU7Ci0gICAgS2lsbEZhY2UoIGVEc3QtPkxmYWNlLCBlT3JnLT5MZmFjZSApOwotICB9Ci0KLSAg
LyogQ2hhbmdlIHRoZSBlZGdlIHN0cnVjdHVyZSAqLwotICBTcGxpY2UoIGVEc3QsIGVPcmcgKTsK
LQotICBpZiggISBqb2luaW5nVmVydGljZXMgKSB7Ci0gICAgR0xVdmVydGV4ICpuZXdWZXJ0ZXg9
IGFsbG9jVmVydGV4KCk7Ci0gICAgaWYgKG5ld1ZlcnRleCA9PSBOVUxMKSByZXR1cm4gMDsKLQot
ICAgIC8qIFdlIHNwbGl0IG9uZSB2ZXJ0ZXggaW50byB0d28gLS0gdGhlIG5ldyB2ZXJ0ZXggaXMg
ZURzdC0+T3JnLgotICAgICAqIE1ha2Ugc3VyZSB0aGUgb2xkIHZlcnRleCBwb2ludHMgdG8gYSB2
YWxpZCBoYWxmLWVkZ2UuCi0gICAgICovCi0gICAgTWFrZVZlcnRleCggbmV3VmVydGV4LCBlRHN0
LCBlT3JnLT5PcmcgKTsKLSAgICBlT3JnLT5PcmctPmFuRWRnZSA9IGVPcmc7Ci0gIH0KLSAgaWYo
ICEgam9pbmluZ0xvb3BzICkgewotICAgIEdMVWZhY2UgKm5ld0ZhY2U9IGFsbG9jRmFjZSgpOyAg
Ci0gICAgaWYgKG5ld0ZhY2UgPT0gTlVMTCkgcmV0dXJuIDA7Ci0KLSAgICAvKiBXZSBzcGxpdCBv
bmUgbG9vcCBpbnRvIHR3byAtLSB0aGUgbmV3IGxvb3AgaXMgZURzdC0+TGZhY2UuCi0gICAgICog
TWFrZSBzdXJlIHRoZSBvbGQgZmFjZSBwb2ludHMgdG8gYSB2YWxpZCBoYWxmLWVkZ2UuCi0gICAg
ICovCi0gICAgTWFrZUZhY2UoIG5ld0ZhY2UsIGVEc3QsIGVPcmctPkxmYWNlICk7Ci0gICAgZU9y
Zy0+TGZhY2UtPmFuRWRnZSA9IGVPcmc7Ci0gIH0KLQotICByZXR1cm4gMTsKLX0KLQotCi0vKiBf
X2dsX21lc2hEZWxldGUoIGVEZWwgKSByZW1vdmVzIHRoZSBlZGdlIGVEZWwuICBUaGVyZSBhcmUg
c2V2ZXJhbCBjYXNlczoKLSAqIGlmIChlRGVsLT5MZmFjZSAhPSBlRGVsLT5SZmFjZSksIHdlIGpv
aW4gdHdvIGxvb3BzIGludG8gb25lOyB0aGUgbG9vcAotICogZURlbC0+TGZhY2UgaXMgZGVsZXRl
ZC4gIE90aGVyd2lzZSwgd2UgYXJlIHNwbGl0dGluZyBvbmUgbG9vcCBpbnRvIHR3bzsKLSAqIHRo
ZSBuZXdseSBjcmVhdGVkIGxvb3Agd2lsbCBjb250YWluIGVEZWwtPkRzdC4gIElmIHRoZSBkZWxl
dGlvbiBvZiBlRGVsCi0gKiB3b3VsZCBjcmVhdGUgaXNvbGF0ZWQgdmVydGljZXMsIHRob3NlIGFy
ZSBkZWxldGVkIGFzIHdlbGwuCi0gKgotICogVGhpcyBmdW5jdGlvbiBjb3VsZCBiZSBpbXBsZW1l
bnRlZCBhcyB0d28gY2FsbHMgdG8gX19nbF9tZXNoU3BsaWNlCi0gKiBwbHVzIGEgZmV3IGNhbGxz
IHRvIG1lbUZyZWUsIGJ1dCB0aGlzIHdvdWxkIGFsbG9jYXRlIGFuZCBkZWxldGUKLSAqIHVubmVj
ZXNzYXJ5IHZlcnRpY2VzIGFuZCBmYWNlcy4KLSAqLwotaW50IF9fZ2xfbWVzaERlbGV0ZSggR0xV
aGFsZkVkZ2UgKmVEZWwgKQotewotICBHTFVoYWxmRWRnZSAqZURlbFN5bSA9IGVEZWwtPlN5bTsK
LSAgaW50IGpvaW5pbmdMb29wcyA9IEZBTFNFOwotCi0gIC8qIEZpcnN0IHN0ZXA6IGRpc2Nvbm5l
Y3QgdGhlIG9yaWdpbiB2ZXJ0ZXggZURlbC0+T3JnLiAgV2UgbWFrZSBhbGwKLSAgICogY2hhbmdl
cyB0byBnZXQgYSBjb25zaXN0ZW50IG1lc2ggaW4gdGhpcyAiaW50ZXJtZWRpYXRlIiBzdGF0ZS4K
LSAgICovCi0gIGlmKCBlRGVsLT5MZmFjZSAhPSBlRGVsLT5SZmFjZSApIHsKLSAgICAvKiBXZSBh
cmUgam9pbmluZyB0d28gbG9vcHMgaW50byBvbmUgLS0gcmVtb3ZlIHRoZSBsZWZ0IGZhY2UgKi8K
LSAgICBqb2luaW5nTG9vcHMgPSBUUlVFOwotICAgIEtpbGxGYWNlKCBlRGVsLT5MZmFjZSwgZURl
bC0+UmZhY2UgKTsKLSAgfQotCi0gIGlmKCBlRGVsLT5PbmV4dCA9PSBlRGVsICkgewotICAgIEtp
bGxWZXJ0ZXgoIGVEZWwtPk9yZywgTlVMTCApOwotICB9IGVsc2UgewotICAgIC8qIE1ha2Ugc3Vy
ZSB0aGF0IGVEZWwtPk9yZyBhbmQgZURlbC0+UmZhY2UgcG9pbnQgdG8gdmFsaWQgaGFsZi1lZGdl
cyAqLwotICAgIGVEZWwtPlJmYWNlLT5hbkVkZ2UgPSBlRGVsLT5PcHJldjsKLSAgICBlRGVsLT5P
cmctPmFuRWRnZSA9IGVEZWwtPk9uZXh0OwotCi0gICAgU3BsaWNlKCBlRGVsLCBlRGVsLT5PcHJl
diApOwotICAgIGlmKCAhIGpvaW5pbmdMb29wcyApIHsKLSAgICAgIEdMVWZhY2UgKm5ld0ZhY2U9
IGFsbG9jRmFjZSgpOwotICAgICAgaWYgKG5ld0ZhY2UgPT0gTlVMTCkgcmV0dXJuIDA7IAotCi0g
ICAgICAvKiBXZSBhcmUgc3BsaXR0aW5nIG9uZSBsb29wIGludG8gdHdvIC0tIGNyZWF0ZSBhIG5l
dyBsb29wIGZvciBlRGVsLiAqLwotICAgICAgTWFrZUZhY2UoIG5ld0ZhY2UsIGVEZWwsIGVEZWwt
PkxmYWNlICk7Ci0gICAgfQotICB9Ci0KLSAgLyogQ2xhaW06IHRoZSBtZXNoIGlzIG5vdyBpbiBh
IGNvbnNpc3RlbnQgc3RhdGUsIGV4Y2VwdCB0aGF0IGVEZWwtPk9yZwotICAgKiBtYXkgaGF2ZSBi
ZWVuIGRlbGV0ZWQuICBOb3cgd2UgZGlzY29ubmVjdCBlRGVsLT5Ec3QuCi0gICAqLwotICBpZigg
ZURlbFN5bS0+T25leHQgPT0gZURlbFN5bSApIHsKLSAgICBLaWxsVmVydGV4KCBlRGVsU3ltLT5P
cmcsIE5VTEwgKTsKLSAgICBLaWxsRmFjZSggZURlbFN5bS0+TGZhY2UsIE5VTEwgKTsKLSAgfSBl
bHNlIHsKLSAgICAvKiBNYWtlIHN1cmUgdGhhdCBlRGVsLT5Ec3QgYW5kIGVEZWwtPkxmYWNlIHBv
aW50IHRvIHZhbGlkIGhhbGYtZWRnZXMgKi8KLSAgICBlRGVsLT5MZmFjZS0+YW5FZGdlID0gZURl
bFN5bS0+T3ByZXY7Ci0gICAgZURlbFN5bS0+T3JnLT5hbkVkZ2UgPSBlRGVsU3ltLT5PbmV4dDsK
LSAgICBTcGxpY2UoIGVEZWxTeW0sIGVEZWxTeW0tPk9wcmV2ICk7Ci0gIH0KLQotICAvKiBBbnkg
aXNvbGF0ZWQgdmVydGljZXMgb3IgZmFjZXMgaGF2ZSBhbHJlYWR5IGJlZW4gZnJlZWQuICovCi0g
IEtpbGxFZGdlKCBlRGVsICk7Ci0KLSAgcmV0dXJuIDE7Ci19Ci0KLQotLyoqKioqKioqKioqKioq
KioqKioqIE90aGVyIEVkZ2UgT3BlcmF0aW9ucyAqKioqKioqKioqKioqKioqKioqKioqLwotCi0v
KiBBbGwgdGhlc2Ugcm91dGluZXMgY2FuIGJlIGltcGxlbWVudGVkIHdpdGggdGhlIGJhc2ljIGVk
Z2UKLSAqIG9wZXJhdGlvbnMgYWJvdmUuICBUaGV5IGFyZSBwcm92aWRlZCBmb3IgY29udmVuaWVu
Y2UgYW5kIGVmZmljaWVuY3kuCi0gKi8KLQotCi0vKiBfX2dsX21lc2hBZGRFZGdlVmVydGV4KCBl
T3JnICkgY3JlYXRlcyBhIG5ldyBlZGdlIGVOZXcgc3VjaCB0aGF0Ci0gKiBlTmV3ID09IGVPcmct
PkxuZXh0LCBhbmQgZU5ldy0+RHN0IGlzIGEgbmV3bHkgY3JlYXRlZCB2ZXJ0ZXguCi0gKiBlT3Jn
IGFuZCBlTmV3IHdpbGwgaGF2ZSB0aGUgc2FtZSBsZWZ0IGZhY2UuCi0gKi8KLUdMVWhhbGZFZGdl
ICpfX2dsX21lc2hBZGRFZGdlVmVydGV4KCBHTFVoYWxmRWRnZSAqZU9yZyApCi17Ci0gIEdMVWhh
bGZFZGdlICplTmV3U3ltOwotICBHTFVoYWxmRWRnZSAqZU5ldyA9IE1ha2VFZGdlKCBlT3JnICk7
Ci0gIGlmIChlTmV3ID09IE5VTEwpIHJldHVybiBOVUxMOwotCi0gIGVOZXdTeW0gPSBlTmV3LT5T
eW07Ci0KLSAgLyogQ29ubmVjdCB0aGUgbmV3IGVkZ2UgYXBwcm9wcmlhdGVseSAqLwotICBTcGxp
Y2UoIGVOZXcsIGVPcmctPkxuZXh0ICk7Ci0KLSAgLyogU2V0IHRoZSB2ZXJ0ZXggYW5kIGZhY2Ug
aW5mb3JtYXRpb24gKi8KLSAgZU5ldy0+T3JnID0gZU9yZy0+RHN0OwotICB7Ci0gICAgR0xVdmVy
dGV4ICpuZXdWZXJ0ZXg9IGFsbG9jVmVydGV4KCk7Ci0gICAgaWYgKG5ld1ZlcnRleCA9PSBOVUxM
KSByZXR1cm4gTlVMTDsKLQotICAgIE1ha2VWZXJ0ZXgoIG5ld1ZlcnRleCwgZU5ld1N5bSwgZU5l
dy0+T3JnICk7Ci0gIH0KLSAgZU5ldy0+TGZhY2UgPSBlTmV3U3ltLT5MZmFjZSA9IGVPcmctPkxm
YWNlOwotCi0gIHJldHVybiBlTmV3OwotfQotCi0KLS8qIF9fZ2xfbWVzaFNwbGl0RWRnZSggZU9y
ZyApIHNwbGl0cyBlT3JnIGludG8gdHdvIGVkZ2VzIGVPcmcgYW5kIGVOZXcsCi0gKiBzdWNoIHRo
YXQgZU5ldyA9PSBlT3JnLT5MbmV4dC4gIFRoZSBuZXcgdmVydGV4IGlzIGVPcmctPkRzdCA9PSBl
TmV3LT5PcmcuCi0gKiBlT3JnIGFuZCBlTmV3IHdpbGwgaGF2ZSB0aGUgc2FtZSBsZWZ0IGZhY2Uu
Ci0gKi8KLUdMVWhhbGZFZGdlICpfX2dsX21lc2hTcGxpdEVkZ2UoIEdMVWhhbGZFZGdlICplT3Jn
ICkKLXsKLSAgR0xVaGFsZkVkZ2UgKmVOZXc7Ci0gIEdMVWhhbGZFZGdlICp0ZW1wSGFsZkVkZ2U9
IF9fZ2xfbWVzaEFkZEVkZ2VWZXJ0ZXgoIGVPcmcgKTsKLSAgaWYgKHRlbXBIYWxmRWRnZSA9PSBO
VUxMKSByZXR1cm4gTlVMTDsKLQotICBlTmV3ID0gdGVtcEhhbGZFZGdlLT5TeW07Ci0KLSAgLyog
RGlzY29ubmVjdCBlT3JnIGZyb20gZU9yZy0+RHN0IGFuZCBjb25uZWN0IGl0IHRvIGVOZXctPk9y
ZyAqLwotICBTcGxpY2UoIGVPcmctPlN5bSwgZU9yZy0+U3ltLT5PcHJldiApOwotICBTcGxpY2Uo
IGVPcmctPlN5bSwgZU5ldyApOwotCi0gIC8qIFNldCB0aGUgdmVydGV4IGFuZCBmYWNlIGluZm9y
bWF0aW9uICovCi0gIGVPcmctPkRzdCA9IGVOZXctPk9yZzsKLSAgZU5ldy0+RHN0LT5hbkVkZ2Ug
PSBlTmV3LT5TeW07CS8qIG1heSBoYXZlIHBvaW50ZWQgdG8gZU9yZy0+U3ltICovCi0gIGVOZXct
PlJmYWNlID0gZU9yZy0+UmZhY2U7Ci0gIGVOZXctPndpbmRpbmcgPSBlT3JnLT53aW5kaW5nOwkv
KiBjb3B5IG9sZCB3aW5kaW5nIGluZm9ybWF0aW9uICovCi0gIGVOZXctPlN5bS0+d2luZGluZyA9
IGVPcmctPlN5bS0+d2luZGluZzsKLQotICByZXR1cm4gZU5ldzsKLX0KLQotCi0vKiBfX2dsX21l
c2hDb25uZWN0KCBlT3JnLCBlRHN0ICkgY3JlYXRlcyBhIG5ldyBlZGdlIGZyb20gZU9yZy0+RHN0
Ci0gKiB0byBlRHN0LT5PcmcsIGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIGhhbGYtZWRn
ZSBlTmV3LgotICogSWYgZU9yZy0+TGZhY2UgPT0gZURzdC0+TGZhY2UsIHRoaXMgc3BsaXRzIG9u
ZSBsb29wIGludG8gdHdvLAotICogYW5kIHRoZSBuZXdseSBjcmVhdGVkIGxvb3AgaXMgZU5ldy0+
TGZhY2UuICBPdGhlcndpc2UsIHR3byBkaXNqb2ludAotICogbG9vcHMgYXJlIG1lcmdlZCBpbnRv
IG9uZSwgYW5kIHRoZSBsb29wIGVEc3QtPkxmYWNlIGlzIGRlc3Ryb3llZC4KLSAqCi0gKiBJZiAo
ZU9yZyA9PSBlRHN0KSwgdGhlIG5ldyBmYWNlIHdpbGwgaGF2ZSBvbmx5IHR3byBlZGdlcy4KLSAq
IElmIChlT3JnLT5MbmV4dCA9PSBlRHN0KSwgdGhlIG9sZCBmYWNlIGlzIHJlZHVjZWQgdG8gYSBz
aW5nbGUgZWRnZS4KLSAqIElmIChlT3JnLT5MbmV4dC0+TG5leHQgPT0gZURzdCksIHRoZSBvbGQg
ZmFjZSBpcyByZWR1Y2VkIHRvIHR3byBlZGdlcy4KLSAqLwotR0xVaGFsZkVkZ2UgKl9fZ2xfbWVz
aENvbm5lY3QoIEdMVWhhbGZFZGdlICplT3JnLCBHTFVoYWxmRWRnZSAqZURzdCApCi17Ci0gIEdM
VWhhbGZFZGdlICplTmV3U3ltOwotICBpbnQgam9pbmluZ0xvb3BzID0gRkFMU0U7ICAKLSAgR0xV
aGFsZkVkZ2UgKmVOZXcgPSBNYWtlRWRnZSggZU9yZyApOwotICBpZiAoZU5ldyA9PSBOVUxMKSBy
ZXR1cm4gTlVMTDsKLQotICBlTmV3U3ltID0gZU5ldy0+U3ltOwotCi0gIGlmKCBlRHN0LT5MZmFj
ZSAhPSBlT3JnLT5MZmFjZSApIHsKLSAgICAvKiBXZSBhcmUgY29ubmVjdGluZyB0d28gZGlzam9p
bnQgbG9vcHMgLS0gZGVzdHJveSBlRHN0LT5MZmFjZSAqLwotICAgIGpvaW5pbmdMb29wcyA9IFRS
VUU7Ci0gICAgS2lsbEZhY2UoIGVEc3QtPkxmYWNlLCBlT3JnLT5MZmFjZSApOwotICB9Ci0KLSAg
LyogQ29ubmVjdCB0aGUgbmV3IGVkZ2UgYXBwcm9wcmlhdGVseSAqLwotICBTcGxpY2UoIGVOZXcs
IGVPcmctPkxuZXh0ICk7Ci0gIFNwbGljZSggZU5ld1N5bSwgZURzdCApOwotCi0gIC8qIFNldCB0
aGUgdmVydGV4IGFuZCBmYWNlIGluZm9ybWF0aW9uICovCi0gIGVOZXctPk9yZyA9IGVPcmctPkRz
dDsKLSAgZU5ld1N5bS0+T3JnID0gZURzdC0+T3JnOwotICBlTmV3LT5MZmFjZSA9IGVOZXdTeW0t
PkxmYWNlID0gZU9yZy0+TGZhY2U7Ci0KLSAgLyogTWFrZSBzdXJlIHRoZSBvbGQgZmFjZSBwb2lu
dHMgdG8gYSB2YWxpZCBoYWxmLWVkZ2UgKi8KLSAgZU9yZy0+TGZhY2UtPmFuRWRnZSA9IGVOZXdT
eW07Ci0KLSAgaWYoICEgam9pbmluZ0xvb3BzICkgewotICAgIEdMVWZhY2UgKm5ld0ZhY2U9IGFs
bG9jRmFjZSgpOwotICAgIGlmIChuZXdGYWNlID09IE5VTEwpIHJldHVybiBOVUxMOwotCi0gICAg
LyogV2Ugc3BsaXQgb25lIGxvb3AgaW50byB0d28gLS0gdGhlIG5ldyBsb29wIGlzIGVOZXctPkxm
YWNlICovCi0gICAgTWFrZUZhY2UoIG5ld0ZhY2UsIGVOZXcsIGVPcmctPkxmYWNlICk7Ci0gIH0K
LSAgcmV0dXJuIGVOZXc7Ci19Ci0KLQotLyoqKioqKioqKioqKioqKioqKioqIE90aGVyIE9wZXJh
dGlvbnMgKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogX19nbF9tZXNoWmFwRmFjZSggZlph
cCApIGRlc3Ryb3lzIGEgZmFjZSBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZQotICogZ2xvYmFsIGZh
Y2UgbGlzdC4gIEFsbCBlZGdlcyBvZiBmWmFwIHdpbGwgaGF2ZSBhIE5VTEwgcG9pbnRlciBhcyB0
aGVpcgotICogbGVmdCBmYWNlLiAgQW55IGVkZ2VzIHdoaWNoIGFsc28gaGF2ZSBhIE5VTEwgcG9p
bnRlciBhcyB0aGVpciByaWdodCBmYWNlCi0gKiBhcmUgZGVsZXRlZCBlbnRpcmVseSAoYWxvbmcg
d2l0aCBhbnkgaXNvbGF0ZWQgdmVydGljZXMgdGhpcyBwcm9kdWNlcykuCi0gKiBBbiBlbnRpcmUg
bWVzaCBjYW4gYmUgZGVsZXRlZCBieSB6YXBwaW5nIGl0cyBmYWNlcywgb25lIGF0IGEgdGltZSwK
LSAqIGluIGFueSBvcmRlci4gIFphcHBlZCBmYWNlcyBjYW5ub3QgYmUgdXNlZCBpbiBmdXJ0aGVy
IG1lc2ggb3BlcmF0aW9ucyEKLSAqLwotdm9pZCBfX2dsX21lc2haYXBGYWNlKCBHTFVmYWNlICpm
WmFwICkKLXsKLSAgR0xVaGFsZkVkZ2UgKmVTdGFydCA9IGZaYXAtPmFuRWRnZTsKLSAgR0xVaGFs
ZkVkZ2UgKmUsICplTmV4dCwgKmVTeW07Ci0gIEdMVWZhY2UgKmZQcmV2LCAqZk5leHQ7Ci0KLSAg
Lyogd2FsayBhcm91bmQgZmFjZSwgZGVsZXRpbmcgZWRnZXMgd2hvc2UgcmlnaHQgZmFjZSBpcyBh
bHNvIE5VTEwgKi8KLSAgZU5leHQgPSBlU3RhcnQtPkxuZXh0OwotICBkbyB7Ci0gICAgZSA9IGVO
ZXh0OwotICAgIGVOZXh0ID0gZS0+TG5leHQ7Ci0KLSAgICBlLT5MZmFjZSA9IE5VTEw7Ci0gICAg
aWYoIGUtPlJmYWNlID09IE5VTEwgKSB7Ci0gICAgICAvKiBkZWxldGUgdGhlIGVkZ2UgLS0gc2Vl
IF9fZ2xfTWVzaERlbGV0ZSBhYm92ZSAqLwotCi0gICAgICBpZiggZS0+T25leHQgPT0gZSApIHsK
LQlLaWxsVmVydGV4KCBlLT5PcmcsIE5VTEwgKTsKLSAgICAgIH0gZWxzZSB7Ci0JLyogTWFrZSBz
dXJlIHRoYXQgZS0+T3JnIHBvaW50cyB0byBhIHZhbGlkIGhhbGYtZWRnZSAqLwotCWUtPk9yZy0+
YW5FZGdlID0gZS0+T25leHQ7Ci0JU3BsaWNlKCBlLCBlLT5PcHJldiApOwotICAgICAgfQotICAg
ICAgZVN5bSA9IGUtPlN5bTsKLSAgICAgIGlmKCBlU3ltLT5PbmV4dCA9PSBlU3ltICkgewotCUtp
bGxWZXJ0ZXgoIGVTeW0tPk9yZywgTlVMTCApOwotICAgICAgfSBlbHNlIHsKLQkvKiBNYWtlIHN1
cmUgdGhhdCBlU3ltLT5PcmcgcG9pbnRzIHRvIGEgdmFsaWQgaGFsZi1lZGdlICovCi0JZVN5bS0+
T3JnLT5hbkVkZ2UgPSBlU3ltLT5PbmV4dDsKLQlTcGxpY2UoIGVTeW0sIGVTeW0tPk9wcmV2ICk7
Ci0gICAgICB9Ci0gICAgICBLaWxsRWRnZSggZSApOwotICAgIH0KLSAgfSB3aGlsZSggZSAhPSBl
U3RhcnQgKTsKLQotICAvKiBkZWxldGUgZnJvbSBjaXJjdWxhciBkb3VibHktbGlua2VkIGxpc3Qg
Ki8KLSAgZlByZXYgPSBmWmFwLT5wcmV2OwotICBmTmV4dCA9IGZaYXAtPm5leHQ7Ci0gIGZOZXh0
LT5wcmV2ID0gZlByZXY7Ci0gIGZQcmV2LT5uZXh0ID0gZk5leHQ7Ci0KLSAgbWVtRnJlZSggZlph
cCApOwotfQotCi0KLS8qIF9fZ2xfbWVzaE5ld01lc2goKSBjcmVhdGVzIGEgbmV3IG1lc2ggd2l0
aCBubyBlZGdlcywgbm8gdmVydGljZXMsCi0gKiBhbmQgbm8gbG9vcHMgKHdoYXQgd2UgdXN1YWxs
eSBjYWxsIGEgImZhY2UiKS4KLSAqLwotR0xVbWVzaCAqX19nbF9tZXNoTmV3TWVzaCggdm9pZCAp
Ci17Ci0gIEdMVXZlcnRleCAqdjsKLSAgR0xVZmFjZSAqZjsKLSAgR0xVaGFsZkVkZ2UgKmU7Ci0g
IEdMVWhhbGZFZGdlICplU3ltOwotICBHTFVtZXNoICptZXNoID0gKEdMVW1lc2ggKiltZW1BbGxv
Yyggc2l6ZW9mKCBHTFVtZXNoICkpOwotICBpZiAobWVzaCA9PSBOVUxMKSB7Ci0gICAgIHJldHVy
biBOVUxMOwotICB9Ci0gIAotICB2ID0gJm1lc2gtPnZIZWFkOwotICBmID0gJm1lc2gtPmZIZWFk
OwotICBlID0gJm1lc2gtPmVIZWFkOwotICBlU3ltID0gJm1lc2gtPmVIZWFkU3ltOwotCi0gIHYt
Pm5leHQgPSB2LT5wcmV2ID0gdjsKLSAgdi0+YW5FZGdlID0gTlVMTDsKLSAgdi0+ZGF0YSA9IE5V
TEw7Ci0KLSAgZi0+bmV4dCA9IGYtPnByZXYgPSBmOwotICBmLT5hbkVkZ2UgPSBOVUxMOwotICBm
LT5kYXRhID0gTlVMTDsKLSAgZi0+dHJhaWwgPSBOVUxMOwotICBmLT5tYXJrZWQgPSBGQUxTRTsK
LSAgZi0+aW5zaWRlID0gRkFMU0U7Ci0KLSAgZS0+bmV4dCA9IGU7Ci0gIGUtPlN5bSA9IGVTeW07
Ci0gIGUtPk9uZXh0ID0gTlVMTDsKLSAgZS0+TG5leHQgPSBOVUxMOwotICBlLT5PcmcgPSBOVUxM
OwotICBlLT5MZmFjZSA9IE5VTEw7Ci0gIGUtPndpbmRpbmcgPSAwOwotICBlLT5hY3RpdmVSZWdp
b24gPSBOVUxMOwotCi0gIGVTeW0tPm5leHQgPSBlU3ltOwotICBlU3ltLT5TeW0gPSBlOwotICBl
U3ltLT5PbmV4dCA9IE5VTEw7Ci0gIGVTeW0tPkxuZXh0ID0gTlVMTDsKLSAgZVN5bS0+T3JnID0g
TlVMTDsKLSAgZVN5bS0+TGZhY2UgPSBOVUxMOwotICBlU3ltLT53aW5kaW5nID0gMDsKLSAgZVN5
bS0+YWN0aXZlUmVnaW9uID0gTlVMTDsKLQotICByZXR1cm4gbWVzaDsKLX0KLQotCi0vKiBfX2ds
X21lc2hVbmlvbiggbWVzaDEsIG1lc2gyICkgZm9ybXMgdGhlIHVuaW9uIG9mIGFsbCBzdHJ1Y3R1
cmVzIGluCi0gKiBib3RoIG1lc2hlcywgYW5kIHJldHVybnMgdGhlIG5ldyBtZXNoICh0aGUgb2xk
IG1lc2hlcyBhcmUgZGVzdHJveWVkKS4KLSAqLwotR0xVbWVzaCAqX19nbF9tZXNoVW5pb24oIEdM
VW1lc2ggKm1lc2gxLCBHTFVtZXNoICptZXNoMiApCi17Ci0gIEdMVWZhY2UgKmYxID0gJm1lc2gx
LT5mSGVhZDsKLSAgR0xVdmVydGV4ICp2MSA9ICZtZXNoMS0+dkhlYWQ7Ci0gIEdMVWhhbGZFZGdl
ICplMSA9ICZtZXNoMS0+ZUhlYWQ7Ci0gIEdMVWZhY2UgKmYyID0gJm1lc2gyLT5mSGVhZDsKLSAg
R0xVdmVydGV4ICp2MiA9ICZtZXNoMi0+dkhlYWQ7Ci0gIEdMVWhhbGZFZGdlICplMiA9ICZtZXNo
Mi0+ZUhlYWQ7Ci0KLSAgLyogQWRkIHRoZSBmYWNlcywgdmVydGljZXMsIGFuZCBlZGdlcyBvZiBt
ZXNoMiB0byB0aG9zZSBvZiBtZXNoMSAqLwotICBpZiggZjItPm5leHQgIT0gZjIgKSB7Ci0gICAg
ZjEtPnByZXYtPm5leHQgPSBmMi0+bmV4dDsKLSAgICBmMi0+bmV4dC0+cHJldiA9IGYxLT5wcmV2
OwotICAgIGYyLT5wcmV2LT5uZXh0ID0gZjE7Ci0gICAgZjEtPnByZXYgPSBmMi0+cHJldjsKLSAg
fQotCi0gIGlmKCB2Mi0+bmV4dCAhPSB2MiApIHsKLSAgICB2MS0+cHJldi0+bmV4dCA9IHYyLT5u
ZXh0OwotICAgIHYyLT5uZXh0LT5wcmV2ID0gdjEtPnByZXY7Ci0gICAgdjItPnByZXYtPm5leHQg
PSB2MTsKLSAgICB2MS0+cHJldiA9IHYyLT5wcmV2OwotICB9Ci0KLSAgaWYoIGUyLT5uZXh0ICE9
IGUyICkgewotICAgIGUxLT5TeW0tPm5leHQtPlN5bS0+bmV4dCA9IGUyLT5uZXh0OwotICAgIGUy
LT5uZXh0LT5TeW0tPm5leHQgPSBlMS0+U3ltLT5uZXh0OwotICAgIGUyLT5TeW0tPm5leHQtPlN5
bS0+bmV4dCA9IGUxOwotICAgIGUxLT5TeW0tPm5leHQgPSBlMi0+U3ltLT5uZXh0OwotICB9Ci0K
LSAgbWVtRnJlZSggbWVzaDIgKTsKLSAgcmV0dXJuIG1lc2gxOwotfQotCi0KLSNpZmRlZiBERUxF
VEVfQllfWkFQUElORwotCi0vKiBfX2dsX21lc2hEZWxldGVNZXNoKCBtZXNoICkgd2lsbCBmcmVl
IGFsbCBzdG9yYWdlIGZvciBhbnkgdmFsaWQgbWVzaC4KLSAqLwotdm9pZCBfX2dsX21lc2hEZWxl
dGVNZXNoKCBHTFVtZXNoICptZXNoICkKLXsKLSAgR0xVZmFjZSAqZkhlYWQgPSAmbWVzaC0+Zkhl
YWQ7Ci0KLSAgd2hpbGUoIGZIZWFkLT5uZXh0ICE9IGZIZWFkICkgewotICAgIF9fZ2xfbWVzaFph
cEZhY2UoIGZIZWFkLT5uZXh0ICk7Ci0gIH0KLSAgYXNzZXJ0KCBtZXNoLT52SGVhZC5uZXh0ID09
ICZtZXNoLT52SGVhZCApOwotCi0gIG1lbUZyZWUoIG1lc2ggKTsKLX0KLQotI2Vsc2UKLQotLyog
X19nbF9tZXNoRGVsZXRlTWVzaCggbWVzaCApIHdpbGwgZnJlZSBhbGwgc3RvcmFnZSBmb3IgYW55
IHZhbGlkIG1lc2guCi0gKi8KLXZvaWQgX19nbF9tZXNoRGVsZXRlTWVzaCggR0xVbWVzaCAqbWVz
aCApCi17Ci0gIEdMVWZhY2UgKmYsICpmTmV4dDsKLSAgR0xVdmVydGV4ICp2LCAqdk5leHQ7Ci0g
IEdMVWhhbGZFZGdlICplLCAqZU5leHQ7Ci0KLSAgZm9yKCBmID0gbWVzaC0+ZkhlYWQubmV4dDsg
ZiAhPSAmbWVzaC0+ZkhlYWQ7IGYgPSBmTmV4dCApIHsKLSAgICBmTmV4dCA9IGYtPm5leHQ7Ci0g
ICAgbWVtRnJlZSggZiApOwotICB9Ci0KLSAgZm9yKCB2ID0gbWVzaC0+dkhlYWQubmV4dDsgdiAh
PSAmbWVzaC0+dkhlYWQ7IHYgPSB2TmV4dCApIHsKLSAgICB2TmV4dCA9IHYtPm5leHQ7Ci0gICAg
bWVtRnJlZSggdiApOwotICB9Ci0KLSAgZm9yKCBlID0gbWVzaC0+ZUhlYWQubmV4dDsgZSAhPSAm
bWVzaC0+ZUhlYWQ7IGUgPSBlTmV4dCApIHsKLSAgICAvKiBPbmUgY2FsbCBmcmVlcyBib3RoIGUg
YW5kIGUtPlN5bSAoc2VlIEVkZ2VQYWlyIGFib3ZlKSAqLwotICAgIGVOZXh0ID0gZS0+bmV4dDsK
LSAgICBtZW1GcmVlKCBlICk7Ci0gIH0KLQotICBtZW1GcmVlKCBtZXNoICk7Ci19Ci0KLSNlbmRp
ZgotCi0jaWZuZGVmIE5ERUJVRwotCi0vKiBfX2dsX21lc2hDaGVja01lc2goIG1lc2ggKSBjaGVj
a3MgYSBtZXNoIGZvciBzZWxmLWNvbnNpc3RlbmN5LgotICovCi12b2lkIF9fZ2xfbWVzaENoZWNr
TWVzaCggR0xVbWVzaCAqbWVzaCApCi17Ci0gIEdMVWZhY2UgKmZIZWFkID0gJm1lc2gtPmZIZWFk
OwotICBHTFV2ZXJ0ZXggKnZIZWFkID0gJm1lc2gtPnZIZWFkOwotICBHTFVoYWxmRWRnZSAqZUhl
YWQgPSAmbWVzaC0+ZUhlYWQ7Ci0gIEdMVWZhY2UgKmYsICpmUHJldjsKLSAgR0xVdmVydGV4ICp2
LCAqdlByZXY7Ci0gIEdMVWhhbGZFZGdlICplLCAqZVByZXY7Ci0KLSAgZlByZXYgPSBmSGVhZDsK
LSAgZm9yKCBmUHJldiA9IGZIZWFkIDsgKGYgPSBmUHJldi0+bmV4dCkgIT0gZkhlYWQ7IGZQcmV2
ID0gZikgewotICAgIGFzc2VydCggZi0+cHJldiA9PSBmUHJldiApOwotICAgIGUgPSBmLT5hbkVk
Z2U7Ci0gICAgZG8gewotICAgICAgYXNzZXJ0KCBlLT5TeW0gIT0gZSApOwotICAgICAgYXNzZXJ0
KCBlLT5TeW0tPlN5bSA9PSBlICk7Ci0gICAgICBhc3NlcnQoIGUtPkxuZXh0LT5PbmV4dC0+U3lt
ID09IGUgKTsKLSAgICAgIGFzc2VydCggZS0+T25leHQtPlN5bS0+TG5leHQgPT0gZSApOwotICAg
ICAgYXNzZXJ0KCBlLT5MZmFjZSA9PSBmICk7Ci0gICAgICBlID0gZS0+TG5leHQ7Ci0gICAgfSB3
aGlsZSggZSAhPSBmLT5hbkVkZ2UgKTsKLSAgfQotICBhc3NlcnQoIGYtPnByZXYgPT0gZlByZXYg
JiYgZi0+YW5FZGdlID09IE5VTEwgJiYgZi0+ZGF0YSA9PSBOVUxMICk7Ci0KLSAgdlByZXYgPSB2
SGVhZDsKLSAgZm9yKCB2UHJldiA9IHZIZWFkIDsgKHYgPSB2UHJldi0+bmV4dCkgIT0gdkhlYWQ7
IHZQcmV2ID0gdikgewotICAgIGFzc2VydCggdi0+cHJldiA9PSB2UHJldiApOwotICAgIGUgPSB2
LT5hbkVkZ2U7Ci0gICAgZG8gewotICAgICAgYXNzZXJ0KCBlLT5TeW0gIT0gZSApOwotICAgICAg
YXNzZXJ0KCBlLT5TeW0tPlN5bSA9PSBlICk7Ci0gICAgICBhc3NlcnQoIGUtPkxuZXh0LT5PbmV4
dC0+U3ltID09IGUgKTsKLSAgICAgIGFzc2VydCggZS0+T25leHQtPlN5bS0+TG5leHQgPT0gZSAp
OwotICAgICAgYXNzZXJ0KCBlLT5PcmcgPT0gdiApOwotICAgICAgZSA9IGUtPk9uZXh0OwotICAg
IH0gd2hpbGUoIGUgIT0gdi0+YW5FZGdlICk7Ci0gIH0KLSAgYXNzZXJ0KCB2LT5wcmV2ID09IHZQ
cmV2ICYmIHYtPmFuRWRnZSA9PSBOVUxMICYmIHYtPmRhdGEgPT0gTlVMTCApOwotCi0gIGVQcmV2
ID0gZUhlYWQ7Ci0gIGZvciggZVByZXYgPSBlSGVhZCA7IChlID0gZVByZXYtPm5leHQpICE9IGVI
ZWFkOyBlUHJldiA9IGUpIHsKLSAgICBhc3NlcnQoIGUtPlN5bS0+bmV4dCA9PSBlUHJldi0+U3lt
ICk7Ci0gICAgYXNzZXJ0KCBlLT5TeW0gIT0gZSApOwotICAgIGFzc2VydCggZS0+U3ltLT5TeW0g
PT0gZSApOwotICAgIGFzc2VydCggZS0+T3JnICE9IE5VTEwgKTsKLSAgICBhc3NlcnQoIGUtPkRz
dCAhPSBOVUxMICk7Ci0gICAgYXNzZXJ0KCBlLT5MbmV4dC0+T25leHQtPlN5bSA9PSBlICk7Ci0g
ICAgYXNzZXJ0KCBlLT5PbmV4dC0+U3ltLT5MbmV4dCA9PSBlICk7Ci0gIH0KLSAgYXNzZXJ0KCBl
LT5TeW0tPm5leHQgPT0gZVByZXYtPlN5bQotICAgICAgICYmIGUtPlN5bSA9PSAmbWVzaC0+ZUhl
YWRTeW0KLSAgICAgICAmJiBlLT5TeW0tPlN5bSA9PSBlCi0gICAgICAgJiYgZS0+T3JnID09IE5V
TEwgJiYgZS0+RHN0ID09IE5VTEwKLSAgICAgICAmJiBlLT5MZmFjZSA9PSBOVUxMICYmIGUtPlJm
YWNlID09IE5VTEwgKTsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFy
dHkvZ2x1L2xpYnRlc3MvbWVzaC5oIGIvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21l
c2guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQyYmNkMS4uMDAwMDAwMAotLS0g
YS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvbWVzaC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMjczICswLDAgQEAKLS8qCi0qKiBMaWNlbnNlIEFwcGxpY2FiaWxpdHkuIEV4Y2VwdCB0byB0
aGUgZXh0ZW50IHBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUKLSoqIG1hZGUgc3ViamVjdCB0byBh
biBhbHRlcm5hdGl2ZSBsaWNlbnNlIGFzIHBlcm1pdHRlZCBpbiB0aGUgU0dJIEZyZWUKLSoqIFNv
ZnR3YXJlIExpY2Vuc2UgQiwgVmVyc2lvbiAxLjEgKHRoZSAiTGljZW5zZSIpLCB0aGUgY29udGVu
dHMgb2YgdGhpcwotKiogZmlsZSBhcmUgc3ViamVjdCBvbmx5IHRvIHRoZSBwcm92aXNpb25zIG9m
IHRoZSBMaWNlbnNlLiBZb3UgbWF5IG5vdCB1c2UKLSoqIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKLSoqIG9mIHRo
ZSBMaWNlbnNlIGF0IFNpbGljb24gR3JhcGhpY3MsIEluYy4sIGF0dG46IExlZ2FsIFNlcnZpY2Vz
LCAxNjAwCi0qKiBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0EgOTQwNDMt
MTM1MSwgb3IgYXQ6Ci0qKiAKLSoqIGh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9qZWN0cy9GcmVlQgot
KiogCi0qKiBOb3RlIHRoYXQsIGFzIHByb3ZpZGVkIGluIHRoZSBMaWNlbnNlLCB0aGUgU29mdHdh
cmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSoqICJBUyBJUyIgYmFzaXMsIHdpdGggQUxMIEVYUFJF
U1MgQU5EIElNUExJRUQgV0FSUkFOVElFUyBBTkQgQ09ORElUSU9OUwotKiogRElTQ0xBSU1FRCwg
SU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBJTVBMSUVEIFdBUlJBTlRJRVMgQU5E
Ci0qKiBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgU0FUSVNGQUNUT1JZIFFVQUxJVFks
IEZJVE5FU1MgRk9SIEEKLSoqIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQU5EIE5PTi1JTkZSSU5HRU1F
TlQuCi0qKiAKLSoqIE9yaWdpbmFsIENvZGUuIFRoZSBPcmlnaW5hbCBDb2RlIGlzOiBPcGVuR0wg
U2FtcGxlIEltcGxlbWVudGF0aW9uLAotKiogVmVyc2lvbiAxLjIuMSwgcmVsZWFzZWQgSmFudWFy
eSAyNiwgMjAwMCwgZGV2ZWxvcGVkIGJ5IFNpbGljb24gR3JhcGhpY3MsCi0qKiBJbmMuIFRoZSBP
cmlnaW5hbCBDb2RlIGlzIENvcHlyaWdodCAoYykgMTk5MS0yMDAwIFNpbGljb24gR3JhcGhpY3Ms
IEluYy4KLSoqIENvcHlyaWdodCBpbiBhbnkgcG9ydGlvbnMgY3JlYXRlZCBieSB0aGlyZCBwYXJ0
aWVzIGlzIGFzIGluZGljYXRlZAotKiogZWxzZXdoZXJlIGhlcmVpbi4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSoqIAotKiogQWRkaXRpb25hbCBOb3RpY2UgUHJvdmlzaW9uczogVGhlIGFwcGxpY2F0
aW9uIHByb2dyYW1taW5nIGludGVyZmFjZXMKLSoqIGVzdGFibGlzaGVkIGJ5IFNHSSBpbiBjb25q
dW5jdGlvbiB3aXRoIHRoZSBPcmlnaW5hbCBDb2RlIGFyZSBUaGUKLSoqIE9wZW5HTChSKSBHcmFw
aGljcyBTeXN0ZW06IEEgU3BlY2lmaWNhdGlvbiAoVmVyc2lvbiAxLjIuMSksIHJlbGVhc2VkCi0q
KiBBcHJpbCAxLCAxOTk5OyBUaGUgT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbSBVdGlsaXR5IExp
YnJhcnkgKFZlcnNpb24KLSoqIDEuMyksIHJlbGVhc2VkIE5vdmVtYmVyIDQsIDE5OTg7IGFuZCBP
cGVuR0woUikgR3JhcGhpY3Mgd2l0aCB0aGUgWAotKiogV2luZG93IFN5c3RlbShSKSAoVmVyc2lv
biAxLjMpLCByZWxlYXNlZCBPY3RvYmVyIDE5LCAxOTk4LiBUaGlzIHNvZnR3YXJlCi0qKiB3YXMg
Y3JlYXRlZCB1c2luZyB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU2FtcGxlIEltcGxlbWVu
dGF0aW9uCi0qKiBwdWJsaXNoZWQgYnkgU0dJLCBidXQgaGFzIG5vdCBiZWVuIGluZGVwZW5kZW50
bHkgdmVyaWZpZWQgYXMgYmVpbmcKLSoqIGNvbXBsaWFudCB3aXRoIHRoZSBPcGVuR0woUikgdmVy
c2lvbiAxLjIuMSBTcGVjaWZpY2F0aW9uLgotKioKLSovCi0vKgotKiogQXV0aG9yOiBFcmljIFZl
YWNoLCBKdWx5IDE5OTQuCi0qKgotKiogJERhdGUkICRSZXZpc2lvbiQKLSoqICRIZWFkZXI6IC8v
ZGVwb3QvbWFpbi9nZngvbGliL2dsdS9saWJ0ZXNzL21lc2guaCM1ICQKLSovCi0KLSNpZm5kZWYg
X19tZXNoX2hfCi0jZGVmaW5lIF9fbWVzaF9oXwotCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUv
aW50ZXJuYWxfZ2x1LmgiCi0KLXR5cGVkZWYgc3RydWN0IEdMVW1lc2ggR0xVbWVzaDsgCi0KLXR5
cGVkZWYgc3RydWN0IEdMVXZlcnRleCBHTFV2ZXJ0ZXg7Ci10eXBlZGVmIHN0cnVjdCBHTFVmYWNl
IEdMVWZhY2U7Ci10eXBlZGVmIHN0cnVjdCBHTFVoYWxmRWRnZSBHTFVoYWxmRWRnZTsKLQotdHlw
ZWRlZiBzdHJ1Y3QgQWN0aXZlUmVnaW9uIEFjdGl2ZVJlZ2lvbjsJLyogSW50ZXJuYWwgZGF0YSAq
LwotCi0vKiBUaGUgbWVzaCBzdHJ1Y3R1cmUgaXMgc2ltaWxhciBpbiBzcGlyaXQsIG5vdGF0aW9u
LCBhbmQgb3BlcmF0aW9ucwotICogdG8gdGhlICJxdWFkLWVkZ2UiIHN0cnVjdHVyZSAoc2VlIEwu
IEd1aWJhcyBhbmQgSi4gU3RvbGZpLCBQcmltaXRpdmVzCi0gKiBmb3IgdGhlIG1hbmlwdWxhdGlv
biBvZiBnZW5lcmFsIHN1YmRpdmlzaW9ucyBhbmQgdGhlIGNvbXB1dGF0aW9uIG9mCi0gKiBWb3Jv
bm9pIGRpYWdyYW1zLCBBQ00gVHJhbnNhY3Rpb25zIG9uIEdyYXBoaWNzLCA0KDIpOjc0LTEyMywg
QXByaWwgMTk4NSkuCi0gKiBGb3IgYSBzaW1wbGlmaWVkIGRlc2NyaXB0aW9uLCBzZWUgdGhlIGNv
dXJzZSBub3RlcyBmb3IgQ1MzNDhhLAotICogIk1hdGhlbWF0aWNhbCBGb3VuZGF0aW9ucyBvZiBD
b21wdXRlciBHcmFwaGljcyIsIGF2YWlsYWJsZSBhdCB0aGUKLSAqIFN0YW5mb3JkIGJvb2tzdG9y
ZSAoYW5kIHRhdWdodCBkdXJpbmcgdGhlIGZhbGwgcXVhcnRlcikuCi0gKiBUaGUgaW1wbGVtZW50
YXRpb24gYWxzbyBib3Jyb3dzIGEgdGlueSBzdWJzZXQgb2YgdGhlIGdyYXBoLWJhc2VkIGFwcHJv
YWNoCi0gKiB1c2UgaW4gTWFudHlsYSdzIEdlb21ldHJpYyBXb3JrIEJlbmNoIChzZWUgTS4gTWFu
dHlsYSwgQW4gSW50cm9kdWN0aW9uCi0gKiB0byBTb2xkIE1vZGVsaW5nLCBDb21wdXRlciBTY2ll
bmNlIFByZXNzLCBSb2NrdmlsbGUsIE1hcnlsYW5kLCAxOTg4KS4KLSAqCi0gKiBUaGUgZnVuZGFt
ZW50YWwgZGF0YSBzdHJ1Y3R1cmUgaXMgdGhlICJoYWxmLWVkZ2UiLiAgVHdvIGhhbGYtZWRnZXMK
LSAqIGdvIHRvZ2V0aGVyIHRvIG1ha2UgYW4gZWRnZSwgYnV0IHRoZXkgcG9pbnQgaW4gb3Bwb3Np
dGUgZGlyZWN0aW9ucy4KLSAqIEVhY2ggaGFsZi1lZGdlIGhhcyBhIHBvaW50ZXIgdG8gaXRzIG1h
dGUgKHRoZSAic3ltbWV0cmljIiBoYWxmLWVkZ2UgU3ltKSwKLSAqIGl0cyBvcmlnaW4gdmVydGV4
IChPcmcpLCB0aGUgZmFjZSBvbiBpdHMgbGVmdCBzaWRlIChMZmFjZSksIGFuZCB0aGUKLSAqIGFk
amFjZW50IGhhbGYtZWRnZXMgaW4gdGhlIENDVyBkaXJlY3Rpb24gYXJvdW5kIHRoZSBvcmlnaW4g
dmVydGV4Ci0gKiAoT25leHQpIGFuZCBhcm91bmQgdGhlIGxlZnQgZmFjZSAoTG5leHQpLiAgVGhl
cmUgaXMgYWxzbyBhICJuZXh0IgotICogcG9pbnRlciBmb3IgdGhlIGdsb2JhbCBlZGdlIGxpc3Qg
KHNlZSBiZWxvdykuCi0gKgotICogVGhlIG5vdGF0aW9uIHVzZWQgZm9yIG1lc2ggbmF2aWdhdGlv
bjoKLSAqCVN5bSAgID0gdGhlIG1hdGUgb2YgYSBoYWxmLWVkZ2UgKHNhbWUgZWRnZSwgYnV0IG9w
cG9zaXRlIGRpcmVjdGlvbikKLSAqCU9uZXh0ID0gZWRnZSBDQ1cgYXJvdW5kIG9yaWdpbiB2ZXJ0
ZXggKGtlZXAgc2FtZSBvcmlnaW4pCi0gKglEbmV4dCA9IGVkZ2UgQ0NXIGFyb3VuZCBkZXN0aW5h
dGlvbiB2ZXJ0ZXggKGtlZXAgc2FtZSBkZXN0KQotICoJTG5leHQgPSBlZGdlIENDVyBhcm91bmQg
bGVmdCBmYWNlIChkZXN0IGJlY29tZXMgbmV3IG9yaWdpbikKLSAqCVJuZXh0ID0gZWRnZSBDQ1cg
YXJvdW5kIHJpZ2h0IGZhY2UgKG9yaWdpbiBiZWNvbWVzIG5ldyBkZXN0KQotICoKLSAqICJwcmV2
IiBtZWFucyB0byBzdWJzdGl0dXRlIENXIGZvciBDQ1cgaW4gdGhlIGRlZmluaXRpb25zIGFib3Zl
LgotICoKLSAqIFRoZSBtZXNoIGtlZXBzIGdsb2JhbCBsaXN0cyBvZiBhbGwgdmVydGljZXMsIGZh
Y2VzLCBhbmQgZWRnZXMsCi0gKiBzdG9yZWQgYXMgZG91Ymx5LWxpbmtlZCBjaXJjdWxhciBsaXN0
cyB3aXRoIGEgZHVtbXkgaGVhZGVyIG5vZGUuCi0gKiBUaGUgbWVzaCBzdG9yZXMgcG9pbnRlcnMg
dG8gdGhlc2UgZHVtbXkgaGVhZGVycyAodkhlYWQsIGZIZWFkLCBlSGVhZCkuCi0gKgotICogVGhl
IGNpcmN1bGFyIGVkZ2UgbGlzdCBpcyBzcGVjaWFsOyBzaW5jZSBoYWxmLWVkZ2VzIGFsd2F5cyBv
Y2N1cgotICogaW4gcGFpcnMgKGUgYW5kIGUtPlN5bSksIGVhY2ggaGFsZi1lZGdlIHN0b3JlcyBh
IHBvaW50ZXIgaW4gb25seQotICogb25lIGRpcmVjdGlvbi4gIFN0YXJ0aW5nIGF0IGVIZWFkIGFu
ZCBmb2xsb3dpbmcgdGhlIGUtPm5leHQgcG9pbnRlcnMKLSAqIHdpbGwgdmlzaXQgZWFjaCAqZWRn
ZSogb25jZSAoaWUuIGUgb3IgZS0+U3ltLCBidXQgbm90IGJvdGgpLgotICogZS0+U3ltIHN0b3Jl
cyBhIHBvaW50ZXIgaW4gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbiwgdGh1cyBpdCBpcwotICogYWx3
YXlzIHRydWUgdGhhdCBlLT5TeW0tPm5leHQtPlN5bS0+bmV4dCA9PSBlLgotICoKLSAqIEVhY2gg
dmVydGV4IGhhcyBhIHBvaW50ZXIgdG8gbmV4dCBhbmQgcHJldmlvdXMgdmVydGljZXMgaW4gdGhl
Ci0gKiBjaXJjdWxhciBsaXN0LCBhbmQgYSBwb2ludGVyIHRvIGEgaGFsZi1lZGdlIHdpdGggdGhp
cyB2ZXJ0ZXggYXMKLSAqIHRoZSBvcmlnaW4gKE5VTEwgaWYgdGhpcyBpcyB0aGUgZHVtbXkgaGVh
ZGVyKS4gIFRoZXJlIGlzIGFsc28gYQotICogZmllbGQgImRhdGEiIGZvciBjbGllbnQgZGF0YS4K
LSAqCi0gKiBFYWNoIGZhY2UgaGFzIGEgcG9pbnRlciB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMg
ZmFjZXMgaW4gdGhlCi0gKiBjaXJjdWxhciBsaXN0LCBhbmQgYSBwb2ludGVyIHRvIGEgaGFsZi1l
ZGdlIHdpdGggdGhpcyBmYWNlIGFzCi0gKiB0aGUgbGVmdCBmYWNlIChOVUxMIGlmIHRoaXMgaXMg
dGhlIGR1bW15IGhlYWRlcikuICBUaGVyZSBpcyBhbHNvCi0gKiBhIGZpZWxkICJkYXRhIiBmb3Ig
Y2xpZW50IGRhdGEuCi0gKgotICogTm90ZSB0aGF0IHdoYXQgd2UgY2FsbCBhICJmYWNlIiBpcyBy
ZWFsbHkgYSBsb29wOyBmYWNlcyBtYXkgY29uc2lzdAotICogb2YgbW9yZSB0aGFuIG9uZSBsb29w
IChpZS4gbm90IHNpbXBseSBjb25uZWN0ZWQpLCBidXQgdGhlcmUgaXMgbm8KLSAqIHJlY29yZCBv
ZiB0aGlzIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gIFRoZSBtZXNoIG1heSBjb25zaXN0IG9mCi0g
KiBzZXZlcmFsIGRpc2Nvbm5lY3RlZCByZWdpb25zLCBzbyBpdCBtYXkgbm90IGJlIHBvc3NpYmxl
IHRvIHZpc2l0Ci0gKiB0aGUgZW50aXJlIG1lc2ggYnkgc3RhcnRpbmcgYXQgYSBoYWxmLWVkZ2Ug
YW5kIHRyYXZlcnNpbmcgdGhlIGVkZ2UKLSAqIHN0cnVjdHVyZS4KLSAqCi0gKiBUaGUgbWVzaCBk
b2VzIE5PVCBzdXBwb3J0IGlzb2xhdGVkIHZlcnRpY2VzOyBhIHZlcnRleCBpcyBkZWxldGVkIGFs
b25nCi0gKiB3aXRoIGl0cyBsYXN0IGVkZ2UuICBTaW1pbGFybHkgd2hlbiB0d28gZmFjZXMgYXJl
IG1lcmdlZCwgb25lIG9mIHRoZQotICogZmFjZXMgaXMgZGVsZXRlZCAoc2VlIF9fZ2xfbWVzaERl
bGV0ZSBiZWxvdykuICBGb3IgbWVzaCBvcGVyYXRpb25zLAotICogYWxsIGZhY2UgKGxvb3ApIGFu
ZCB2ZXJ0ZXggcG9pbnRlcnMgbXVzdCBub3QgYmUgTlVMTC4gIEhvd2V2ZXIsIG9uY2UKLSAqIG1l
c2ggbWFuaXB1bGF0aW9uIGlzIGZpbmlzaGVkLCBfX2dsX01lc2haYXBGYWNlIGNhbiBiZSB1c2Vk
IHRvIGRlbGV0ZQotICogZmFjZXMgb2YgdGhlIG1lc2gsIG9uZSBhdCBhIHRpbWUuICBBbGwgZXh0
ZXJuYWwgZmFjZXMgY2FuIGJlICJ6YXBwZWQiCi0gKiBiZWZvcmUgdGhlIG1lc2ggaXMgcmV0dXJu
ZWQgdG8gdGhlIGNsaWVudDsgdGhlbiBhIE5VTEwgZmFjZSBpbmRpY2F0ZXMKLSAqIGEgcmVnaW9u
IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoZSBvdXRwdXQgcG9seWdvbi4KLSAqLwotCi1zdHJ1Y3Qg
R0xVdmVydGV4IHsKLSAgR0xVdmVydGV4CSpuZXh0OwkJLyogbmV4dCB2ZXJ0ZXggKG5ldmVyIE5V
TEwpICovCi0gIEdMVXZlcnRleAkqcHJldjsJCS8qIHByZXZpb3VzIHZlcnRleCAobmV2ZXIgTlVM
TCkgKi8KLSAgR0xVaGFsZkVkZ2UJKmFuRWRnZTsJLyogYSBoYWxmLWVkZ2Ugd2l0aCB0aGlzIG9y
aWdpbiAqLwotICB2b2lkCQkqZGF0YTsJCS8qIGNsaWVudCdzIGRhdGEgKi8KLQotICAvKiBJbnRl
cm5hbCBkYXRhIChrZWVwIGhpZGRlbikgKi8KLSAgR0xkb3VibGUJY29vcmRzWzNdOwkvKiB2ZXJ0
ZXggbG9jYXRpb24gaW4gM0QgKi8KLSAgR0xkb3VibGUJcywgdDsJCS8qIHByb2plY3Rpb24gb250
byB0aGUgc3dlZXAgcGxhbmUgKi8KLSAgbG9uZwkJcHFIYW5kbGU7CS8qIHRvIGFsbG93IGRlbGV0
aW9uIGZyb20gcHJpb3JpdHkgcXVldWUgKi8KLX07Ci0KLXN0cnVjdCBHTFVmYWNlIHsKLSAgR0xV
ZmFjZQkqbmV4dDsJCS8qIG5leHQgZmFjZSAobmV2ZXIgTlVMTCkgKi8KLSAgR0xVZmFjZQkqcHJl
djsJCS8qIHByZXZpb3VzIGZhY2UgKG5ldmVyIE5VTEwpICovCi0gIEdMVWhhbGZFZGdlCSphbkVk
Z2U7CS8qIGEgaGFsZiBlZGdlIHdpdGggdGhpcyBsZWZ0IGZhY2UgKi8KLSAgdm9pZAkJKmRhdGE7
CQkvKiByb29tIGZvciBjbGllbnQncyBkYXRhICovCi0KLSAgLyogSW50ZXJuYWwgZGF0YSAoa2Vl
cCBoaWRkZW4pICovCi0gIEdMVWZhY2UJKnRyYWlsOwkJLyogInN0YWNrIiBmb3IgY29udmVyc2lv
biB0byBzdHJpcHMgKi8KLSAgR0xib29sZWFuCW1hcmtlZDsJCS8qIGZsYWcgZm9yIGNvbnZlcnNp
b24gdG8gc3RyaXBzICovCi0gIEdMYm9vbGVhbglpbnNpZGU7CQkvKiB0aGlzIGZhY2UgaXMgaW4g
dGhlIHBvbHlnb24gaW50ZXJpb3IgKi8KLX07Ci0KLXN0cnVjdCBHTFVoYWxmRWRnZSB7Ci0gIEdM
VWhhbGZFZGdlCSpuZXh0OwkJLyogZG91Ymx5LWxpbmtlZCBsaXN0IChwcmV2PT1TeW0tPm5leHQp
ICovCi0gIEdMVWhhbGZFZGdlCSpTeW07CQkvKiBzYW1lIGVkZ2UsIG9wcG9zaXRlIGRpcmVjdGlv
biAqLwotICBHTFVoYWxmRWRnZQkqT25leHQ7CQkvKiBuZXh0IGVkZ2UgQ0NXIGFyb3VuZCBvcmln
aW4gKi8KLSAgR0xVaGFsZkVkZ2UJKkxuZXh0OwkJLyogbmV4dCBlZGdlIENDVyBhcm91bmQgbGVm
dCBmYWNlICovCi0gIEdMVXZlcnRleAkqT3JnOwkJLyogb3JpZ2luIHZlcnRleCAoT3ZlcnRleCB0
b28gbG9uZykgKi8KLSAgR0xVZmFjZQkqTGZhY2U7CQkvKiBsZWZ0IGZhY2UgKi8KLQotICAvKiBJ
bnRlcm5hbCBkYXRhIChrZWVwIGhpZGRlbikgKi8KLSAgQWN0aXZlUmVnaW9uCSphY3RpdmVSZWdp
b247CS8qIGEgcmVnaW9uIHdpdGggdGhpcyB1cHBlciBlZGdlIChzd2VlcC5jKSAqLwotICBpbnQJ
CXdpbmRpbmc7CS8qIGNoYW5nZSBpbiB3aW5kaW5nIG51bWJlciB3aGVuIGNyb3NzaW5nCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHJpZ2h0IGZhY2UgdG8gdGhl
IGxlZnQgZmFjZSAqLwotfTsKLQotI2RlZmluZQlSZmFjZQlTeW0tPkxmYWNlCi0jZGVmaW5lIERz
dAlTeW0tPk9yZwotCi0jZGVmaW5lIE9wcmV2CVN5bS0+TG5leHQKLSNkZWZpbmUgTHByZXYgICBP
bmV4dC0+U3ltCi0jZGVmaW5lIERwcmV2CUxuZXh0LT5TeW0KLSNkZWZpbmUgUnByZXYJU3ltLT5P
bmV4dAotI2RlZmluZSBEbmV4dAlScHJldi0+U3ltCS8qIDMgcG9pbnRlcnMgKi8KLSNkZWZpbmUg
Um5leHQJT3ByZXYtPlN5bQkvKiAzIHBvaW50ZXJzICovCi0KLQotc3RydWN0IEdMVW1lc2ggewot
ICBHTFV2ZXJ0ZXgJdkhlYWQ7CQkvKiBkdW1teSBoZWFkZXIgZm9yIHZlcnRleCBsaXN0ICovCi0g
IEdMVWZhY2UJZkhlYWQ7CQkvKiBkdW1teSBoZWFkZXIgZm9yIGZhY2UgbGlzdCAqLwotICBHTFVo
YWxmRWRnZQllSGVhZDsJCS8qIGR1bW15IGhlYWRlciBmb3IgZWRnZSBsaXN0ICovCi0gIEdMVWhh
bGZFZGdlCWVIZWFkU3ltOwkvKiBhbmQgaXRzIHN5bW1ldHJpYyBjb3VudGVycGFydCAqLwotfTsK
LQotLyogVGhlIG1lc2ggb3BlcmF0aW9ucyBiZWxvdyBoYXZlIHRocmVlIG1vdGl2YXRpb25zOiBj
b21wbGV0ZW5lc3MsCi0gKiBjb252ZW5pZW5jZSwgYW5kIGVmZmljaWVuY3kuICBUaGUgYmFzaWMg
bWVzaCBvcGVyYXRpb25zIGFyZSBNYWtlRWRnZSwKLSAqIFNwbGljZSwgYW5kIERlbGV0ZS4gIEFs
bCB0aGUgb3RoZXIgZWRnZSBvcGVyYXRpb25zIGNhbiBiZSBpbXBsZW1lbnRlZAotICogaW4gdGVy
bXMgb2YgdGhlc2UuICBUaGUgb3RoZXIgb3BlcmF0aW9ucyBhcmUgcHJvdmlkZWQgZm9yIGNvbnZl
bmllbmNlCi0gKiBhbmQvb3IgZWZmaWNpZW5jeS4KLSAqCi0gKiBXaGVuIGEgZmFjZSBpcyBzcGxp
dCBvciBhIHZlcnRleCBpcyBhZGRlZCwgdGhleSBhcmUgaW5zZXJ0ZWQgaW50byB0aGUKLSAqIGds
b2JhbCBsaXN0ICpiZWZvcmUqIHRoZSBleGlzdGluZyB2ZXJ0ZXggb3IgZmFjZSAoaWUuIGUtPk9y
ZyBvciBlLT5MZmFjZSkuCi0gKiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBwcm9jZXNzIGFsbCB2
ZXJ0aWNlcyBvciBmYWNlcyBpbiB0aGUgZ2xvYmFsIGxpc3RzCi0gKiB3aXRob3V0IHdvcnJ5aW5n
IGFib3V0IHByb2Nlc3NpbmcgdGhlIHNhbWUgZGF0YSB0d2ljZS4gIEFzIGEgY29udmVuaWVuY2Us
Ci0gKiB3aGVuIGEgZmFjZSBpcyBzcGxpdCwgdGhlICJpbnNpZGUiIGZsYWcgaXMgY29waWVkIGZy
b20gdGhlIG9sZCBmYWNlLgotICogT3RoZXIgaW50ZXJuYWwgZGF0YSAodi0+ZGF0YSwgdi0+YWN0
aXZlUmVnaW9uLCBmLT5kYXRhLCBmLT5tYXJrZWQsCi0gKiBmLT50cmFpbCwgZS0+d2luZGluZykg
aXMgc2V0IHRvIHplcm8uCi0gKgotICogKioqKioqKioqKioqKioqKioqKioqKiBCYXNpYyBFZGdl
IE9wZXJhdGlvbnMgKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCi0gKiBfX2dsX21lc2hN
YWtlRWRnZSggbWVzaCApIGNyZWF0ZXMgb25lIGVkZ2UsIHR3byB2ZXJ0aWNlcywgYW5kIGEgbG9v
cC4KLSAqIFRoZSBsb29wIChmYWNlKSBjb25zaXN0cyBvZiB0aGUgdHdvIG5ldyBoYWxmLWVkZ2Vz
LgotICoKLSAqIF9fZ2xfbWVzaFNwbGljZSggZU9yZywgZURzdCApIGlzIHRoZSBiYXNpYyBvcGVy
YXRpb24gZm9yIGNoYW5naW5nIHRoZQotICogbWVzaCBjb25uZWN0aXZpdHkgYW5kIHRvcG9sb2d5
LiAgSXQgY2hhbmdlcyB0aGUgbWVzaCBzbyB0aGF0Ci0gKgllT3JnLT5PbmV4dCA8LSBPTEQoIGVE
c3QtPk9uZXh0ICkKLSAqCWVEc3QtPk9uZXh0IDwtIE9MRCggZU9yZy0+T25leHQgKQotICogd2hl
cmUgT0xEKC4uLikgbWVhbnMgdGhlIHZhbHVlIGJlZm9yZSB0aGUgbWVzaFNwbGljZSBvcGVyYXRp
b24uCi0gKgotICogVGhpcyBjYW4gaGF2ZSB0d28gZWZmZWN0cyBvbiB0aGUgdmVydGV4IHN0cnVj
dHVyZToKLSAqICAtIGlmIGVPcmctPk9yZyAhPSBlRHN0LT5PcmcsIHRoZSB0d28gdmVydGljZXMg
YXJlIG1lcmdlZCB0b2dldGhlcgotICogIC0gaWYgZU9yZy0+T3JnID09IGVEc3QtPk9yZywgdGhl
IG9yaWdpbiBpcyBzcGxpdCBpbnRvIHR3byB2ZXJ0aWNlcwotICogSW4gYm90aCBjYXNlcywgZURz
dC0+T3JnIGlzIGNoYW5nZWQgYW5kIGVPcmctPk9yZyBpcyB1bnRvdWNoZWQuCi0gKgotICogU2lt
aWxhcmx5IChhbmQgaW5kZXBlbmRlbnRseSkgZm9yIHRoZSBmYWNlIHN0cnVjdHVyZSwKLSAqICAt
IGlmIGVPcmctPkxmYWNlID09IGVEc3QtPkxmYWNlLCBvbmUgbG9vcCBpcyBzcGxpdCBpbnRvIHR3
bwotICogIC0gaWYgZU9yZy0+TGZhY2UgIT0gZURzdC0+TGZhY2UsIHR3byBkaXN0aW5jdCBsb29w
cyBhcmUgam9pbmVkIGludG8gb25lCi0gKiBJbiBib3RoIGNhc2VzLCBlRHN0LT5MZmFjZSBpcyBj
aGFuZ2VkIGFuZCBlT3JnLT5MZmFjZSBpcyB1bmFmZmVjdGVkLgotICoKLSAqIF9fZ2xfbWVzaERl
bGV0ZSggZURlbCApIHJlbW92ZXMgdGhlIGVkZ2UgZURlbC4gIFRoZXJlIGFyZSBzZXZlcmFsIGNh
c2VzOgotICogaWYgKGVEZWwtPkxmYWNlICE9IGVEZWwtPlJmYWNlKSwgd2Ugam9pbiB0d28gbG9v
cHMgaW50byBvbmU7IHRoZSBsb29wCi0gKiBlRGVsLT5MZmFjZSBpcyBkZWxldGVkLiAgT3RoZXJ3
aXNlLCB3ZSBhcmUgc3BsaXR0aW5nIG9uZSBsb29wIGludG8gdHdvOwotICogdGhlIG5ld2x5IGNy
ZWF0ZWQgbG9vcCB3aWxsIGNvbnRhaW4gZURlbC0+RHN0LiAgSWYgdGhlIGRlbGV0aW9uIG9mIGVE
ZWwKLSAqIHdvdWxkIGNyZWF0ZSBpc29sYXRlZCB2ZXJ0aWNlcywgdGhvc2UgYXJlIGRlbGV0ZWQg
YXMgd2VsbC4KLSAqCi0gKiAqKioqKioqKioqKioqKioqKioqKioqIE90aGVyIEVkZ2UgT3BlcmF0
aW9ucyAqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoKLSAqIF9fZ2xfbWVzaEFkZEVkZ2VW
ZXJ0ZXgoIGVPcmcgKSBjcmVhdGVzIGEgbmV3IGVkZ2UgZU5ldyBzdWNoIHRoYXQKLSAqIGVOZXcg
PT0gZU9yZy0+TG5leHQsIGFuZCBlTmV3LT5Ec3QgaXMgYSBuZXdseSBjcmVhdGVkIHZlcnRleC4K
LSAqIGVPcmcgYW5kIGVOZXcgd2lsbCBoYXZlIHRoZSBzYW1lIGxlZnQgZmFjZS4KLSAqCi0gKiBf
X2dsX21lc2hTcGxpdEVkZ2UoIGVPcmcgKSBzcGxpdHMgZU9yZyBpbnRvIHR3byBlZGdlcyBlT3Jn
IGFuZCBlTmV3LAotICogc3VjaCB0aGF0IGVOZXcgPT0gZU9yZy0+TG5leHQuICBUaGUgbmV3IHZl
cnRleCBpcyBlT3JnLT5Ec3QgPT0gZU5ldy0+T3JnLgotICogZU9yZyBhbmQgZU5ldyB3aWxsIGhh
dmUgdGhlIHNhbWUgbGVmdCBmYWNlLgotICoKLSAqIF9fZ2xfbWVzaENvbm5lY3QoIGVPcmcsIGVE
c3QgKSBjcmVhdGVzIGEgbmV3IGVkZ2UgZnJvbSBlT3JnLT5Ec3QKLSAqIHRvIGVEc3QtPk9yZywg
YW5kIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgaGFsZi1lZGdlIGVOZXcuCi0gKiBJZiBlT3Jn
LT5MZmFjZSA9PSBlRHN0LT5MZmFjZSwgdGhpcyBzcGxpdHMgb25lIGxvb3AgaW50byB0d28sCi0g
KiBhbmQgdGhlIG5ld2x5IGNyZWF0ZWQgbG9vcCBpcyBlTmV3LT5MZmFjZS4gIE90aGVyd2lzZSwg
dHdvIGRpc2pvaW50Ci0gKiBsb29wcyBhcmUgbWVyZ2VkIGludG8gb25lLCBhbmQgdGhlIGxvb3Ag
ZURzdC0+TGZhY2UgaXMgZGVzdHJveWVkLgotICoKLSAqICoqKioqKioqKioqKioqKioqKioqKioq
KiBPdGhlciBPcGVyYXRpb25zICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKgotICog
X19nbF9tZXNoTmV3TWVzaCgpIGNyZWF0ZXMgYSBuZXcgbWVzaCB3aXRoIG5vIGVkZ2VzLCBubyB2
ZXJ0aWNlcywKLSAqIGFuZCBubyBsb29wcyAod2hhdCB3ZSB1c3VhbGx5IGNhbGwgYSAiZmFjZSIp
LgotICoKLSAqIF9fZ2xfbWVzaFVuaW9uKCBtZXNoMSwgbWVzaDIgKSBmb3JtcyB0aGUgdW5pb24g
b2YgYWxsIHN0cnVjdHVyZXMgaW4KLSAqIGJvdGggbWVzaGVzLCBhbmQgcmV0dXJucyB0aGUgbmV3
IG1lc2ggKHRoZSBvbGQgbWVzaGVzIGFyZSBkZXN0cm95ZWQpLgotICoKLSAqIF9fZ2xfbWVzaERl
bGV0ZU1lc2goIG1lc2ggKSB3aWxsIGZyZWUgYWxsIHN0b3JhZ2UgZm9yIGFueSB2YWxpZCBtZXNo
LgotICoKLSAqIF9fZ2xfbWVzaFphcEZhY2UoIGZaYXAgKSBkZXN0cm95cyBhIGZhY2UgYW5kIHJl
bW92ZXMgaXQgZnJvbSB0aGUKLSAqIGdsb2JhbCBmYWNlIGxpc3QuICBBbGwgZWRnZXMgb2YgZlph
cCB3aWxsIGhhdmUgYSBOVUxMIHBvaW50ZXIgYXMgdGhlaXIKLSAqIGxlZnQgZmFjZS4gIEFueSBl
ZGdlcyB3aGljaCBhbHNvIGhhdmUgYSBOVUxMIHBvaW50ZXIgYXMgdGhlaXIgcmlnaHQgZmFjZQot
ICogYXJlIGRlbGV0ZWQgZW50aXJlbHkgKGFsb25nIHdpdGggYW55IGlzb2xhdGVkIHZlcnRpY2Vz
IHRoaXMgcHJvZHVjZXMpLgotICogQW4gZW50aXJlIG1lc2ggY2FuIGJlIGRlbGV0ZWQgYnkgemFw
cGluZyBpdHMgZmFjZXMsIG9uZSBhdCBhIHRpbWUsCi0gKiBpbiBhbnkgb3JkZXIuICBaYXBwZWQg
ZmFjZXMgY2Fubm90IGJlIHVzZWQgaW4gZnVydGhlciBtZXNoIG9wZXJhdGlvbnMhCi0gKgotICog
X19nbF9tZXNoQ2hlY2tNZXNoKCBtZXNoICkgY2hlY2tzIGEgbWVzaCBmb3Igc2VsZi1jb25zaXN0
ZW5jeS4KLSAqLwotCi1HTFVoYWxmRWRnZQkqX19nbF9tZXNoTWFrZUVkZ2UoIEdMVW1lc2ggKm1l
c2ggKTsKLWludAkJX19nbF9tZXNoU3BsaWNlKCBHTFVoYWxmRWRnZSAqZU9yZywgR0xVaGFsZkVk
Z2UgKmVEc3QgKTsKLWludAkJX19nbF9tZXNoRGVsZXRlKCBHTFVoYWxmRWRnZSAqZURlbCApOwot
Ci1HTFVoYWxmRWRnZQkqX19nbF9tZXNoQWRkRWRnZVZlcnRleCggR0xVaGFsZkVkZ2UgKmVPcmcg
KTsKLUdMVWhhbGZFZGdlCSpfX2dsX21lc2hTcGxpdEVkZ2UoIEdMVWhhbGZFZGdlICplT3JnICk7
Ci1HTFVoYWxmRWRnZQkqX19nbF9tZXNoQ29ubmVjdCggR0xVaGFsZkVkZ2UgKmVPcmcsIEdMVWhh
bGZFZGdlICplRHN0ICk7Ci0KLUdMVW1lc2gJCSpfX2dsX21lc2hOZXdNZXNoKCB2b2lkICk7Ci1H
TFVtZXNoCQkqX19nbF9tZXNoVW5pb24oIEdMVW1lc2ggKm1lc2gxLCBHTFVtZXNoICptZXNoMiAp
Owotdm9pZAkJX19nbF9tZXNoRGVsZXRlTWVzaCggR0xVbWVzaCAqbWVzaCApOwotdm9pZAkJX19n
bF9tZXNoWmFwRmFjZSggR0xVZmFjZSAqZlphcCApOwotCi0jaWZkZWYgTkRFQlVHCi0jZGVmaW5l
CQlfX2dsX21lc2hDaGVja01lc2goIG1lc2ggKQotI2Vsc2UKLXZvaWQJCV9fZ2xfbWVzaENoZWNr
TWVzaCggR0xVbWVzaCAqbWVzaCApOwotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL25vcm1hbC5jIGIvV2ViQ29yZS90aGlyZHBhcnR5
L2dsdS9saWJ0ZXNzL25vcm1hbC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOGZk
NmFjLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9ub3JtYWwu
YworKysgL2Rldi9udWxsCkBAIC0xLDI1OSArMCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNh
YmlsaXR5LiBFeGNlcHQgdG8gdGhlIGV4dGVudCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0q
KiBtYWRlIHN1YmplY3QgdG8gYW4gYWx0ZXJuYXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4g
dGhlIFNHSSBGcmVlCi0qKiBTb2Z0d2FyZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxp
Y2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9mIHRoaXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0
byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgTGljZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlz
IGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRh
aW4gYSBjb3B5Ci0qKiBvZiB0aGUgTGljZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBh
dHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYwMAotKiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50
YWluIFZpZXcsIENBIDk0MDQzLTEzNTEsIG9yIGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5j
b20vcHJvamVjdHMvRnJlZUIKLSoqIAotKiogTm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUg
TGljZW5zZSwgdGhlIFNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJh
c2lzLCB3aXRoIEFMTCBFWFBSRVNTIEFORCBJTVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElP
TlMKLSoqIERJU0NMQUlNRUQsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1Q
TElFRCBXQVJSQU5USUVTIEFORAotKiogQ09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNB
VElTRkFDVE9SWSBRVUFMSVRZLCBGSVRORVNTIEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0Us
IEFORCBOT04tSU5GUklOR0VNRU5ULgotKiogCi0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2lu
YWwgQ29kZSBpczogT3BlbkdMIFNhbXBsZSBJbXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4y
LjEsIHJlbGVhc2VkIEphbnVhcnkgMjYsIDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBo
aWNzLAotKiogSW5jLiBUaGUgT3JpZ2luYWwgQ29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAw
MCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCi0qKiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNy
ZWF0ZWQgYnkgdGhpcmQgcGFydGllcyBpcyBhcyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJl
aW4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0qKiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zp
c2lvbnM6IFRoZSBhcHBsaWNhdGlvbiBwcm9ncmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxp
c2hlZCBieSBTR0kgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhl
Ci0qKiBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24g
MS4yLjEpLCByZWxlYXNlZAotKiogQXByaWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGlj
cyBTeXN0ZW0gVXRpbGl0eSBMaWJyYXJ5IChWZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3Zl
bWJlciA0LCAxOTk4OyBhbmQgT3BlbkdMKFIpIEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRv
dyBTeXN0ZW0oUikgKFZlcnNpb24gMS4zKSwgcmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhp
cyBzb2Z0d2FyZQotKiogd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEu
Mi4xIFNhbXBsZSBJbXBsZW1lbnRhdGlvbgotKiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBu
b3QgYmVlbiBpbmRlcGVuZGVudGx5IHZlcmlmaWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0
aCB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoK
LSoqIEF1dGhvcjogRXJpYyBWZWFjaCwgSnVseSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNp
b24kCi0qKiAkSGVhZGVyOiAvL2RlcG90L21haW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9ub3JtYWwu
YyM1ICQKLSovCi0KLSNpbmNsdWRlIDxhc3NlcnQuaD4KLSNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5j
bHVkZSAidGhpcmRwYXJ0eS9nbHUvZ2x1b3MuaCIKLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9s
aWJ0ZXNzL21lc2guaCIKLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL25vcm1hbC5o
IgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzcy5oIgotCi0jZGVmaW5lIFRS
VUUgMQotI2RlZmluZSBGQUxTRSAwCi0KLSNkZWZpbmUgRG90KHUsdikJKHVbMF0qdlswXSArIHVb
MV0qdlsxXSArIHVbMl0qdlsyXSkKLQotI2lmIGRlZmluZWQoRk9SX1RSSVRFX1RFU1RfUFJPR1JB
TSkgfHwgZGVmaW5lZChUUlVFX1BST0pFQ1QpCi1zdGF0aWMgdm9pZCBOb3JtYWxpemUoIEdMZG91
YmxlIHZbM10gKQotewotICBHTGRvdWJsZSBsZW4gPSB2WzBdKnZbMF0gKyB2WzFdKnZbMV0gKyB2
WzJdKnZbMl07Ci0KLSAgYXNzZXJ0KCBsZW4gPiAwICk7Ci0gIGxlbiA9IHNxcnQoIGxlbiApOwot
ICB2WzBdIC89IGxlbjsKLSAgdlsxXSAvPSBsZW47Ci0gIHZbMl0gLz0gbGVuOwotfQotI2VuZGlm
Ci0KLSNkZWZpbmUgQUJTKHgpCSgoeCkgPCAwID8gLSh4KSA6ICh4KSkKLQotc3RhdGljIGludCBM
b25nQXhpcyggR0xkb3VibGUgdlszXSApCi17Ci0gIGludCBpID0gMDsKLQotICBpZiggQUJTKHZb
MV0pID4gQUJTKHZbMF0pICkgeyBpID0gMTsgfQotICBpZiggQUJTKHZbMl0pID4gQUJTKHZbaV0p
ICkgeyBpID0gMjsgfQotICByZXR1cm4gaTsKLX0KLQotc3RhdGljIHZvaWQgQ29tcHV0ZU5vcm1h
bCggR0xVdGVzc2VsYXRvciAqdGVzcywgR0xkb3VibGUgbm9ybVszXSApCi17Ci0gIEdMVXZlcnRl
eCAqdiwgKnYxLCAqdjI7Ci0gIEdMZG91YmxlIGMsIHRMZW4yLCBtYXhMZW4yOwotICBHTGRvdWJs
ZSBtYXhWYWxbM10sIG1pblZhbFszXSwgZDFbM10sIGQyWzNdLCB0Tm9ybVszXTsKLSAgR0xVdmVy
dGV4ICptYXhWZXJ0WzNdLCAqbWluVmVydFszXTsKLSAgR0xVdmVydGV4ICp2SGVhZCA9ICZ0ZXNz
LT5tZXNoLT52SGVhZDsKLSAgaW50IGk7Ci0KLSAgbWF4VmFsWzBdID0gbWF4VmFsWzFdID0gbWF4
VmFsWzJdID0gLTIgKiBHTFVfVEVTU19NQVhfQ09PUkQ7Ci0gIG1pblZhbFswXSA9IG1pblZhbFsx
XSA9IG1pblZhbFsyXSA9IDIgKiBHTFVfVEVTU19NQVhfQ09PUkQ7Ci0KLSAgZm9yKCB2ID0gdkhl
YWQtPm5leHQ7IHYgIT0gdkhlYWQ7IHYgPSB2LT5uZXh0ICkgewotICAgIGZvciggaSA9IDA7IGkg
PCAzOyArK2kgKSB7Ci0gICAgICBjID0gdi0+Y29vcmRzW2ldOwotICAgICAgaWYoIGMgPCBtaW5W
YWxbaV0gKSB7IG1pblZhbFtpXSA9IGM7IG1pblZlcnRbaV0gPSB2OyB9Ci0gICAgICBpZiggYyA+
IG1heFZhbFtpXSApIHsgbWF4VmFsW2ldID0gYzsgbWF4VmVydFtpXSA9IHY7IH0KLSAgICB9Ci0g
IH0KLQotICAvKiBGaW5kIHR3byB2ZXJ0aWNlcyBzZXBhcmF0ZWQgYnkgYXQgbGVhc3QgMS9zcXJ0
KDMpIG9mIHRoZSBtYXhpbXVtCi0gICAqIGRpc3RhbmNlIGJldHdlZW4gYW55IHR3byB2ZXJ0aWNl
cwotICAgKi8KLSAgaSA9IDA7Ci0gIGlmKCBtYXhWYWxbMV0gLSBtaW5WYWxbMV0gPiBtYXhWYWxb
MF0gLSBtaW5WYWxbMF0gKSB7IGkgPSAxOyB9Ci0gIGlmKCBtYXhWYWxbMl0gLSBtaW5WYWxbMl0g
PiBtYXhWYWxbaV0gLSBtaW5WYWxbaV0gKSB7IGkgPSAyOyB9Ci0gIGlmKCBtaW5WYWxbaV0gPj0g
bWF4VmFsW2ldICkgewotICAgIC8qIEFsbCB2ZXJ0aWNlcyBhcmUgdGhlIHNhbWUgLS0gbm9ybWFs
IGRvZXNuJ3QgbWF0dGVyICovCi0gICAgbm9ybVswXSA9IDA7IG5vcm1bMV0gPSAwOyBub3JtWzJd
ID0gMTsKLSAgICByZXR1cm47Ci0gIH0KLQotICAvKiBMb29rIGZvciBhIHRoaXJkIHZlcnRleCB3
aGljaCBmb3JtcyB0aGUgdHJpYW5nbGUgd2l0aCBtYXhpbXVtIGFyZWEKLSAgICogKExlbmd0aCBv
ZiBub3JtYWwgPT0gdHdpY2UgdGhlIHRyaWFuZ2xlIGFyZWEpCi0gICAqLwotICBtYXhMZW4yID0g
MDsKLSAgdjEgPSBtaW5WZXJ0W2ldOwotICB2MiA9IG1heFZlcnRbaV07Ci0gIGQxWzBdID0gdjEt
PmNvb3Jkc1swXSAtIHYyLT5jb29yZHNbMF07Ci0gIGQxWzFdID0gdjEtPmNvb3Jkc1sxXSAtIHYy
LT5jb29yZHNbMV07Ci0gIGQxWzJdID0gdjEtPmNvb3Jkc1syXSAtIHYyLT5jb29yZHNbMl07Ci0g
IGZvciggdiA9IHZIZWFkLT5uZXh0OyB2ICE9IHZIZWFkOyB2ID0gdi0+bmV4dCApIHsKLSAgICBk
MlswXSA9IHYtPmNvb3Jkc1swXSAtIHYyLT5jb29yZHNbMF07Ci0gICAgZDJbMV0gPSB2LT5jb29y
ZHNbMV0gLSB2Mi0+Y29vcmRzWzFdOwotICAgIGQyWzJdID0gdi0+Y29vcmRzWzJdIC0gdjItPmNv
b3Jkc1syXTsKLSAgICB0Tm9ybVswXSA9IGQxWzFdKmQyWzJdIC0gZDFbMl0qZDJbMV07Ci0gICAg
dE5vcm1bMV0gPSBkMVsyXSpkMlswXSAtIGQxWzBdKmQyWzJdOwotICAgIHROb3JtWzJdID0gZDFb
MF0qZDJbMV0gLSBkMVsxXSpkMlswXTsKLSAgICB0TGVuMiA9IHROb3JtWzBdKnROb3JtWzBdICsg
dE5vcm1bMV0qdE5vcm1bMV0gKyB0Tm9ybVsyXSp0Tm9ybVsyXTsKLSAgICBpZiggdExlbjIgPiBt
YXhMZW4yICkgewotICAgICAgbWF4TGVuMiA9IHRMZW4yOwotICAgICAgbm9ybVswXSA9IHROb3Jt
WzBdOwotICAgICAgbm9ybVsxXSA9IHROb3JtWzFdOwotICAgICAgbm9ybVsyXSA9IHROb3JtWzJd
OwotICAgIH0KLSAgfQotCi0gIGlmKCBtYXhMZW4yIDw9IDAgKSB7Ci0gICAgLyogQWxsIHBvaW50
cyBsaWUgb24gYSBzaW5nbGUgbGluZSAtLSBhbnkgZGVjZW50IG5vcm1hbCB3aWxsIGRvICovCi0g
ICAgbm9ybVswXSA9IG5vcm1bMV0gPSBub3JtWzJdID0gMDsKLSAgICBub3JtW0xvbmdBeGlzKGQx
KV0gPSAxOwotICB9Ci19Ci0gIAotCi1zdGF0aWMgdm9pZCBDaGVja09yaWVudGF0aW9uKCBHTFV0
ZXNzZWxhdG9yICp0ZXNzICkKLXsKLSAgR0xkb3VibGUgYXJlYTsKLSAgR0xVZmFjZSAqZiwgKmZI
ZWFkID0gJnRlc3MtPm1lc2gtPmZIZWFkOwotICBHTFV2ZXJ0ZXggKnYsICp2SGVhZCA9ICZ0ZXNz
LT5tZXNoLT52SGVhZDsKLSAgR0xVaGFsZkVkZ2UgKmU7Ci0KLSAgLyogV2hlbiB3ZSBjb21wdXRl
IHRoZSBub3JtYWwgYXV0b21hdGljYWxseSwgd2UgY2hvb3NlIHRoZSBvcmllbnRhdGlvbgotICAg
KiBzbyB0aGF0IHRoZSB0aGUgc3VtIG9mIHRoZSBzaWduZWQgYXJlYXMgb2YgYWxsIGNvbnRvdXJz
IGlzIG5vbi1uZWdhdGl2ZS4KLSAgICovCi0gIGFyZWEgPSAwOwotICBmb3IoIGYgPSBmSGVhZC0+
bmV4dDsgZiAhPSBmSGVhZDsgZiA9IGYtPm5leHQgKSB7Ci0gICAgZSA9IGYtPmFuRWRnZTsKLSAg
ICBpZiggZS0+d2luZGluZyA8PSAwICkgY29udGludWU7Ci0gICAgZG8gewotICAgICAgYXJlYSAr
PSAoZS0+T3JnLT5zIC0gZS0+RHN0LT5zKSAqIChlLT5PcmctPnQgKyBlLT5Ec3QtPnQpOwotICAg
ICAgZSA9IGUtPkxuZXh0OwotICAgIH0gd2hpbGUoIGUgIT0gZi0+YW5FZGdlICk7Ci0gIH0KLSAg
aWYoIGFyZWEgPCAwICkgewotICAgIC8qIFJldmVyc2UgdGhlIG9yaWVudGF0aW9uIGJ5IGZsaXBw
aW5nIGFsbCB0aGUgdC1jb29yZGluYXRlcyAqLwotICAgIGZvciggdiA9IHZIZWFkLT5uZXh0OyB2
ICE9IHZIZWFkOyB2ID0gdi0+bmV4dCApIHsKLSAgICAgIHYtPnQgPSAtIHYtPnQ7Ci0gICAgfQot
ICAgIHRlc3MtPnRVbml0WzBdID0gLSB0ZXNzLT50VW5pdFswXTsKLSAgICB0ZXNzLT50VW5pdFsx
XSA9IC0gdGVzcy0+dFVuaXRbMV07Ci0gICAgdGVzcy0+dFVuaXRbMl0gPSAtIHRlc3MtPnRVbml0
WzJdOwotICB9Ci19Ci0KLSNpZmRlZiBGT1JfVFJJVEVfVEVTVF9QUk9HUkFNCi0jaW5jbHVkZSA8
c3RkbGliLmg+Ci1leHRlcm4gaW50IFJhbmRvbVN3ZWVwOwotI2RlZmluZSBTX1VOSVRfWAkoUmFu
ZG9tU3dlZXAgPyAoMipkcmFuZDQ4KCktMSkgOiAxLjApCi0jZGVmaW5lIFNfVU5JVF9ZCShSYW5k
b21Td2VlcCA/ICgyKmRyYW5kNDgoKS0xKSA6IDAuMCkKLSNlbHNlCi0jaWYgZGVmaW5lZChTTEFO
VEVEX1NXRUVQKSAKLS8qIFRoZSAiZmVhdHVyZSBtZXJnaW5nIiBpcyBub3QgaW50ZW5kZWQgdG8g
YmUgY29tcGxldGUuICBUaGVyZSBhcmUKLSAqIHNwZWNpYWwgY2FzZXMgd2hlcmUgZWRnZXMgYXJl
IG5lYXJseSBwYXJhbGxlbCB0byB0aGUgc3dlZXAgbGluZQotICogd2hpY2ggYXJlIG5vdCBpbXBs
ZW1lbnRlZC4gIFRoZSBhbGdvcml0aG0gc2hvdWxkIHN0aWxsIGJlaGF2ZQotICogcm9idXN0bHkg
KGllLiBwcm9kdWNlIGEgcmVhc29uYWJsZSB0ZXNzZWxhdGlvbikgaW4gdGhlIHByZXNlbmNlCi0g
KiBvZiBzdWNoIGVkZ2VzLCBob3dldmVyIGl0IG1heSBtaXNzIGZlYXR1cmVzIHdoaWNoIGNvdWxk
IGhhdmUgYmVlbgotICogbWVyZ2VkLiAgV2UgY291bGQgbWluaW1pemUgdGhpcyBlZmZlY3QgYnkg
Y2hvb3NpbmcgdGhlIHN3ZWVwIGxpbmUKLSAqIGRpcmVjdGlvbiB0byBiZSBzb21ldGhpbmcgdW51
c3VhbCAoaWUuIG5vdCBwYXJhbGxlbCB0byBvbmUgb2YgdGhlCi0gKiBjb29yZGluYXRlIGF4ZXMp
LgotICovCi0jZGVmaW5lIFNfVU5JVF9YCTAuNTA5NDE1Mzk1NjQ5NTUzODUJLyogUHJlLW5vcm1h
bGl6ZWQgKi8KLSNkZWZpbmUgU19VTklUX1kJMC44NjA1MjA3NDYyMjAxMDYzMwotI2Vsc2UKLSNk
ZWZpbmUgU19VTklUX1gJMS4wCi0jZGVmaW5lIFNfVU5JVF9ZCTAuMAotI2VuZGlmCi0jZW5kaWYK
LQotLyogRGV0ZXJtaW5lIHRoZSBwb2x5Z29uIG5vcm1hbCBhbmQgcHJvamVjdCB2ZXJ0aWNlcyBv
bnRvIHRoZSBwbGFuZQotICogb2YgdGhlIHBvbHlnb24uCi0gKi8KLXZvaWQgX19nbF9wcm9qZWN0
UG9seWdvbiggR0xVdGVzc2VsYXRvciAqdGVzcyApCi17Ci0gIEdMVXZlcnRleCAqdiwgKnZIZWFk
ID0gJnRlc3MtPm1lc2gtPnZIZWFkOwotICBHTGRvdWJsZSBub3JtWzNdOwotICBHTGRvdWJsZSAq
c1VuaXQsICp0VW5pdDsKLSAgaW50IGksIGNvbXB1dGVkTm9ybWFsID0gRkFMU0U7Ci0KLSAgbm9y
bVswXSA9IHRlc3MtPm5vcm1hbFswXTsKLSAgbm9ybVsxXSA9IHRlc3MtPm5vcm1hbFsxXTsKLSAg
bm9ybVsyXSA9IHRlc3MtPm5vcm1hbFsyXTsKLSAgaWYoIG5vcm1bMF0gPT0gMCAmJiBub3JtWzFd
ID09IDAgJiYgbm9ybVsyXSA9PSAwICkgewotICAgIENvbXB1dGVOb3JtYWwoIHRlc3MsIG5vcm0g
KTsKLSAgICBjb21wdXRlZE5vcm1hbCA9IFRSVUU7Ci0gIH0KLSAgc1VuaXQgPSB0ZXNzLT5zVW5p
dDsKLSAgdFVuaXQgPSB0ZXNzLT50VW5pdDsKLSAgaSA9IExvbmdBeGlzKCBub3JtICk7Ci0KLSNp
ZiBkZWZpbmVkKEZPUl9UUklURV9URVNUX1BST0dSQU0pIHx8IGRlZmluZWQoVFJVRV9QUk9KRUNU
KQotICAvKiBDaG9vc2UgdGhlIGluaXRpYWwgc1VuaXQgdmVjdG9yIHRvIGJlIGFwcHJveGltYXRl
bHkgcGVycGVuZGljdWxhcgotICAgKiB0byB0aGUgbm9ybWFsLgotICAgKi8KLSAgTm9ybWFsaXpl
KCBub3JtICk7Ci0KLSAgc1VuaXRbaV0gPSAwOwotICBzVW5pdFsoaSsxKSUzXSA9IFNfVU5JVF9Y
OwotICBzVW5pdFsoaSsyKSUzXSA9IFNfVU5JVF9ZOwotCi0gIC8qIE5vdyBtYWtlIGl0IGV4YWN0
bHkgcGVycGVuZGljdWxhciAqLwotICB3ID0gRG90KCBzVW5pdCwgbm9ybSApOwotICBzVW5pdFsw
XSAtPSB3ICogbm9ybVswXTsKLSAgc1VuaXRbMV0gLT0gdyAqIG5vcm1bMV07Ci0gIHNVbml0WzJd
IC09IHcgKiBub3JtWzJdOwotICBOb3JtYWxpemUoIHNVbml0ICk7Ci0KLSAgLyogQ2hvb3NlIHRV
bml0IHNvIHRoYXQgKHNVbml0LHRVbml0LG5vcm0pIGZvcm0gYSByaWdodC1oYW5kZWQgZnJhbWUg
Ki8KLSAgdFVuaXRbMF0gPSBub3JtWzFdKnNVbml0WzJdIC0gbm9ybVsyXSpzVW5pdFsxXTsKLSAg
dFVuaXRbMV0gPSBub3JtWzJdKnNVbml0WzBdIC0gbm9ybVswXSpzVW5pdFsyXTsKLSAgdFVuaXRb
Ml0gPSBub3JtWzBdKnNVbml0WzFdIC0gbm9ybVsxXSpzVW5pdFswXTsKLSAgTm9ybWFsaXplKCB0
VW5pdCApOwotI2Vsc2UKLSAgLyogUHJvamVjdCBwZXJwZW5kaWN1bGFyIHRvIGEgY29vcmRpbmF0
ZSBheGlzIC0tIGJldHRlciBudW1lcmljYWxseSAqLwotICBzVW5pdFtpXSA9IDA7Ci0gIHNVbml0
WyhpKzEpJTNdID0gU19VTklUX1g7Ci0gIHNVbml0WyhpKzIpJTNdID0gU19VTklUX1k7Ci0gIAot
ICB0VW5pdFtpXSA9IDA7Ci0gIHRVbml0WyhpKzEpJTNdID0gKG5vcm1baV0gPiAwKSA/IC1TX1VO
SVRfWSA6IFNfVU5JVF9ZOwotICB0VW5pdFsoaSsyKSUzXSA9IChub3JtW2ldID4gMCkgPyBTX1VO
SVRfWCA6IC1TX1VOSVRfWDsKLSNlbmRpZgotCi0gIC8qIFByb2plY3QgdGhlIHZlcnRpY2VzIG9u
dG8gdGhlIHN3ZWVwIHBsYW5lICovCi0gIGZvciggdiA9IHZIZWFkLT5uZXh0OyB2ICE9IHZIZWFk
OyB2ID0gdi0+bmV4dCApIHsKLSAgICB2LT5zID0gRG90KCB2LT5jb29yZHMsIHNVbml0ICk7Ci0g
ICAgdi0+dCA9IERvdCggdi0+Y29vcmRzLCB0VW5pdCApOwotICB9Ci0gIGlmKCBjb21wdXRlZE5v
cm1hbCApIHsKLSAgICBDaGVja09yaWVudGF0aW9uKCB0ZXNzICk7Ci0gIH0KLX0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9ub3JtYWwuaCBiL1dlYkNvcmUvdGhp
cmRwYXJ0eS9nbHUvbGlidGVzcy9ub3JtYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWU3NGRiMi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3Mv
bm9ybWFsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0vKgotKiogTGljZW5zZSBB
cHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8gdGhlIGV4dGVudCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUg
YXJlCi0qKiBtYWRlIHN1YmplY3QgdG8gYW4gYWx0ZXJuYXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0
ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBTb2Z0d2FyZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4xICh0
aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9mIHRoaXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qg
b25seSB0byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgTGljZW5zZS4gWW91IG1heSBub3QgdXNlCi0q
KiB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1h
eSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0aGUgTGljZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJ
bmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYwMAotKiogQW1waGl0aGVhdHJlIFBhcmt3YXks
IE1vdW50YWluIFZpZXcsIENBIDk0MDQzLTEzNTEsIG9yIGF0OgotKiogCi0qKiBodHRwOi8vb3Nz
LnNnaS5jb20vcHJvamVjdHMvRnJlZUIKLSoqIAotKiogTm90ZSB0aGF0LCBhcyBwcm92aWRlZCBp
biB0aGUgTGljZW5zZSwgdGhlIFNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMg
SVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBSRVNTIEFORCBJTVBMSUVEIFdBUlJBTlRJRVMgQU5EIENP
TkRJVElPTlMKLSoqIERJU0NMQUlNRUQsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBB
TlkgSU1QTElFRCBXQVJSQU5USUVTIEFORAotKiogQ09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJ
VFksIFNBVElTRkFDVE9SWSBRVUFMSVRZLCBGSVRORVNTIEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBV
UlBPU0UsIEFORCBOT04tSU5GUklOR0VNRU5ULgotKiogCi0qKiBPcmlnaW5hbCBDb2RlLiBUaGUg
T3JpZ2luYWwgQ29kZSBpczogT3BlbkdMIFNhbXBsZSBJbXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNp
b24gMS4yLjEsIHJlbGVhc2VkIEphbnVhcnkgMjYsIDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29u
IEdyYXBoaWNzLAotKiogSW5jLiBUaGUgT3JpZ2luYWwgQ29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5
OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCi0qKiBDb3B5cmlnaHQgaW4gYW55IHBvcnRp
b25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFydGllcyBpcyBhcyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVy
ZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0qKiAKLSoqIEFkZGl0aW9uYWwgTm90aWNl
IFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNhdGlvbiBwcm9ncmFtbWluZyBpbnRlcmZhY2VzCi0qKiBl
c3RhYmxpc2hlZCBieSBTR0kgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBh
cmUgVGhlCi0qKiBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtOiBBIFNwZWNpZmljYXRpb24gKFZl
cnNpb24gMS4yLjEpLCByZWxlYXNlZAotKiogQXByaWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBH
cmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBMaWJyYXJ5IChWZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNl
ZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQgT3BlbkdMKFIpIEdyYXBoaWNzIHdpdGggdGhlIFgKLSoq
IFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNpb24gMS4zKSwgcmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5
OC4gVGhpcyBzb2Z0d2FyZQotKiogd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJz
aW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRhdGlvbgotKiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0
IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVudGx5IHZlcmlmaWVkIGFzIGJlaW5nCi0qKiBjb21wbGlh
bnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0q
LwotLyoKLSoqIEF1dGhvcjogRXJpYyBWZWFjaCwgSnVseSAxOTk0LgotKioKLSoqICREYXRlJCAk
UmV2aXNpb24kCi0qKiAkSGVhZGVyOiAvL2RlcG90L21haW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9u
b3JtYWwuaCM1ICQKLSovCi0KLSNpZm5kZWYgX19ub3JtYWxfaF8KLSNkZWZpbmUgX19ub3JtYWxf
aF8KLQotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzcy5oIgotCi0vKiBfX2ds
X3Byb2plY3RQb2x5Z29uKCB0ZXNzICkgZGV0ZXJtaW5lcyB0aGUgcG9seWdvbiBub3JtYWwKLSAq
IGFuZCBwcm9qZWN0IHZlcnRpY2VzIG9udG8gdGhlIHBsYW5lIG9mIHRoZSBwb2x5Z29uLgotICov
Ci12b2lkIF9fZ2xfcHJvamVjdFBvbHlnb24oIEdMVXRlc3NlbGF0b3IgKnRlc3MgKTsKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlx
LWhlYXAuYyBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9wcmlvcml0eXEtaGVhcC5j
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1ZDYwYWU3Li4wMDAwMDAwCi0tLSBhL1dl
YkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9wcmlvcml0eXEtaGVhcC5jCisrKyAvZGV2L251
bGwKQEAgLTEsMjYwICswLDAgQEAKLS8qCi0qKiBMaWNlbnNlIEFwcGxpY2FiaWxpdHkuIEV4Y2Vw
dCB0byB0aGUgZXh0ZW50IHBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUKLSoqIG1hZGUgc3ViamVj
dCB0byBhbiBhbHRlcm5hdGl2ZSBsaWNlbnNlIGFzIHBlcm1pdHRlZCBpbiB0aGUgU0dJIEZyZWUK
LSoqIFNvZnR3YXJlIExpY2Vuc2UgQiwgVmVyc2lvbiAxLjEgKHRoZSAiTGljZW5zZSIpLCB0aGUg
Y29udGVudHMgb2YgdGhpcwotKiogZmlsZSBhcmUgc3ViamVjdCBvbmx5IHRvIHRoZSBwcm92aXNp
b25zIG9mIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG5vdCB1c2UKLSoqIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKLSoq
IG9mIHRoZSBMaWNlbnNlIGF0IFNpbGljb24gR3JhcGhpY3MsIEluYy4sIGF0dG46IExlZ2FsIFNl
cnZpY2VzLCAxNjAwCi0qKiBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0Eg
OTQwNDMtMTM1MSwgb3IgYXQ6Ci0qKiAKLSoqIGh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9qZWN0cy9G
cmVlQgotKiogCi0qKiBOb3RlIHRoYXQsIGFzIHByb3ZpZGVkIGluIHRoZSBMaWNlbnNlLCB0aGUg
U29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSoqICJBUyBJUyIgYmFzaXMsIHdpdGggQUxM
IEVYUFJFU1MgQU5EIElNUExJRUQgV0FSUkFOVElFUyBBTkQgQ09ORElUSU9OUwotKiogRElTQ0xB
SU1FRCwgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBJTVBMSUVEIFdBUlJBTlRJ
RVMgQU5ECi0qKiBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgU0FUSVNGQUNUT1JZIFFV
QUxJVFksIEZJVE5FU1MgRk9SIEEKLSoqIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQU5EIE5PTi1JTkZS
SU5HRU1FTlQuCi0qKiAKLSoqIE9yaWdpbmFsIENvZGUuIFRoZSBPcmlnaW5hbCBDb2RlIGlzOiBP
cGVuR0wgU2FtcGxlIEltcGxlbWVudGF0aW9uLAotKiogVmVyc2lvbiAxLjIuMSwgcmVsZWFzZWQg
SmFudWFyeSAyNiwgMjAwMCwgZGV2ZWxvcGVkIGJ5IFNpbGljb24gR3JhcGhpY3MsCi0qKiBJbmMu
IFRoZSBPcmlnaW5hbCBDb2RlIGlzIENvcHlyaWdodCAoYykgMTk5MS0yMDAwIFNpbGljb24gR3Jh
cGhpY3MsIEluYy4KLSoqIENvcHlyaWdodCBpbiBhbnkgcG9ydGlvbnMgY3JlYXRlZCBieSB0aGly
ZCBwYXJ0aWVzIGlzIGFzIGluZGljYXRlZAotKiogZWxzZXdoZXJlIGhlcmVpbi4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLSoqIAotKiogQWRkaXRpb25hbCBOb3RpY2UgUHJvdmlzaW9uczogVGhlIGFw
cGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVyZmFjZXMKLSoqIGVzdGFibGlzaGVkIGJ5IFNHSSBp
biBjb25qdW5jdGlvbiB3aXRoIHRoZSBPcmlnaW5hbCBDb2RlIGFyZSBUaGUKLSoqIE9wZW5HTChS
KSBHcmFwaGljcyBTeXN0ZW06IEEgU3BlY2lmaWNhdGlvbiAoVmVyc2lvbiAxLjIuMSksIHJlbGVh
c2VkCi0qKiBBcHJpbCAxLCAxOTk5OyBUaGUgT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbSBVdGls
aXR5IExpYnJhcnkgKFZlcnNpb24KLSoqIDEuMyksIHJlbGVhc2VkIE5vdmVtYmVyIDQsIDE5OTg7
IGFuZCBPcGVuR0woUikgR3JhcGhpY3Mgd2l0aCB0aGUgWAotKiogV2luZG93IFN5c3RlbShSKSAo
VmVyc2lvbiAxLjMpLCByZWxlYXNlZCBPY3RvYmVyIDE5LCAxOTk4LiBUaGlzIHNvZnR3YXJlCi0q
KiB3YXMgY3JlYXRlZCB1c2luZyB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU2FtcGxlIElt
cGxlbWVudGF0aW9uCi0qKiBwdWJsaXNoZWQgYnkgU0dJLCBidXQgaGFzIG5vdCBiZWVuIGluZGVw
ZW5kZW50bHkgdmVyaWZpZWQgYXMgYmVpbmcKLSoqIGNvbXBsaWFudCB3aXRoIHRoZSBPcGVuR0wo
UikgdmVyc2lvbiAxLjIuMSBTcGVjaWZpY2F0aW9uLgotKioKLSovCi0vKgotKiogQXV0aG9yOiBF
cmljIFZlYWNoLCBKdWx5IDE5OTQuCi0qKgotKiogJERhdGUkICRSZXZpc2lvbiQKLSoqICRIZWFk
ZXI6IC8vZGVwb3QvbWFpbi9nZngvbGliL2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS1oZWFwLmMjNSAk
Ci0qLwotCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVk
ZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZW1hbGxvYy5o
IgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlxLWhlYXAuaCIKLQot
I2RlZmluZSBJTklUX1NJWkUJMzIKLQotI2RlZmluZSBUUlVFIDEKLSNkZWZpbmUgRkFMU0UgMAot
Ci0jaWZkZWYgRk9SX1RSSVRFX1RFU1RfUFJPR1JBTQotI2RlZmluZSBMRVEoeCx5KQkoKnBxLT5s
ZXEpKHgseSkKLSNlbHNlCi0vKiBWaW9sYXRlcyBtb2R1bGFyaXR5LCBidXQgYSBsaXR0bGUgZmFz
dGVyICovCi0jaW5jbHVkZSAiZ2VvbS5oIgotI2RlZmluZSBMRVEoeCx5KQlWZXJ0TGVxKChHTFV2
ZXJ0ZXggKil4LCAoR0xVdmVydGV4ICopeSkKLSNlbmRpZgotCi0vKiByZWFsbHkgX19nbF9wcUhl
YXBOZXdQcmlvcml0eVEgKi8KLVByaW9yaXR5USAqcHFOZXdQcmlvcml0eVEoIGludCAoKmxlcSko
UFFrZXkga2V5MSwgUFFrZXkga2V5MikgKQotewotICBQcmlvcml0eVEgKnBxID0gKFByaW9yaXR5
USAqKW1lbUFsbG9jKCBzaXplb2YoIFByaW9yaXR5USApKTsKLSAgaWYgKHBxID09IE5VTEwpIHJl
dHVybiBOVUxMOwotCi0gIHBxLT5zaXplID0gMDsKLSAgcHEtPm1heCA9IElOSVRfU0laRTsKLSAg
cHEtPm5vZGVzID0gKFBRbm9kZSAqKW1lbUFsbG9jKCAoSU5JVF9TSVpFICsgMSkgKiBzaXplb2Yo
cHEtPm5vZGVzWzBdKSApOwotICBpZiAocHEtPm5vZGVzID09IE5VTEwpIHsKLSAgICAgbWVtRnJl
ZShwcSk7Ci0gICAgIHJldHVybiBOVUxMOwotICB9Ci0KLSAgcHEtPmhhbmRsZXMgPSAoUFFoYW5k
bGVFbGVtICopbWVtQWxsb2MoIChJTklUX1NJWkUgKyAxKSAqIHNpemVvZihwcS0+aGFuZGxlc1sw
XSkgKTsKLSAgaWYgKHBxLT5oYW5kbGVzID09IE5VTEwpIHsKLSAgICAgbWVtRnJlZShwcS0+bm9k
ZXMpOwotICAgICBtZW1GcmVlKHBxKTsKLSAgICAgcmV0dXJuIE5VTEw7Ci0gIH0KLQotICBwcS0+
aW5pdGlhbGl6ZWQgPSBGQUxTRTsKLSAgcHEtPmZyZWVMaXN0ID0gMDsKLSAgcHEtPmxlcSA9IGxl
cTsKLQotICBwcS0+bm9kZXNbMV0uaGFuZGxlID0gMTsJLyogc28gdGhhdCBNaW5pbXVtKCkgcmV0
dXJucyBOVUxMICovCi0gIHBxLT5oYW5kbGVzWzFdLmtleSA9IE5VTEw7Ci0gIHJldHVybiBwcTsK
LX0KLQotLyogcmVhbGx5IF9fZ2xfcHFIZWFwRGVsZXRlUHJpb3JpdHlRICovCi12b2lkIHBxRGVs
ZXRlUHJpb3JpdHlRKCBQcmlvcml0eVEgKnBxICkKLXsKLSAgbWVtRnJlZSggcHEtPmhhbmRsZXMg
KTsKLSAgbWVtRnJlZSggcHEtPm5vZGVzICk7Ci0gIG1lbUZyZWUoIHBxICk7Ci19Ci0KLQotc3Rh
dGljIHZvaWQgRmxvYXREb3duKCBQcmlvcml0eVEgKnBxLCBsb25nIGN1cnIgKQotewotICBQUW5v
ZGUgKm4gPSBwcS0+bm9kZXM7Ci0gIFBRaGFuZGxlRWxlbSAqaCA9IHBxLT5oYW5kbGVzOwotICBQ
UWhhbmRsZSBoQ3VyciwgaENoaWxkOwotICBsb25nIGNoaWxkOwotCi0gIGhDdXJyID0gbltjdXJy
XS5oYW5kbGU7Ci0gIGZvciggOzsgKSB7Ci0gICAgY2hpbGQgPSBjdXJyIDw8IDE7Ci0gICAgaWYo
IGNoaWxkIDwgcHEtPnNpemUgJiYgTEVRKCBoW25bY2hpbGQrMV0uaGFuZGxlXS5rZXksCi0JCQkJ
IGhbbltjaGlsZF0uaGFuZGxlXS5rZXkgKSkgewotICAgICAgKytjaGlsZDsKLSAgICB9Ci0KLSAg
ICBhc3NlcnQoY2hpbGQgPD0gcHEtPm1heCk7Ci0KLSAgICBoQ2hpbGQgPSBuW2NoaWxkXS5oYW5k
bGU7Ci0gICAgaWYoIGNoaWxkID4gcHEtPnNpemUgfHwgTEVRKCBoW2hDdXJyXS5rZXksIGhbaENo
aWxkXS5rZXkgKSkgewotICAgICAgbltjdXJyXS5oYW5kbGUgPSBoQ3VycjsKLSAgICAgIGhbaEN1
cnJdLm5vZGUgPSBjdXJyOwotICAgICAgYnJlYWs7Ci0gICAgfQotICAgIG5bY3Vycl0uaGFuZGxl
ID0gaENoaWxkOwotICAgIGhbaENoaWxkXS5ub2RlID0gY3VycjsKLSAgICBjdXJyID0gY2hpbGQ7
Ci0gIH0KLX0KLQotCi1zdGF0aWMgdm9pZCBGbG9hdFVwKCBQcmlvcml0eVEgKnBxLCBsb25nIGN1
cnIgKQotewotICBQUW5vZGUgKm4gPSBwcS0+bm9kZXM7Ci0gIFBRaGFuZGxlRWxlbSAqaCA9IHBx
LT5oYW5kbGVzOwotICBQUWhhbmRsZSBoQ3VyciwgaFBhcmVudDsKLSAgbG9uZyBwYXJlbnQ7Ci0K
LSAgaEN1cnIgPSBuW2N1cnJdLmhhbmRsZTsKLSAgZm9yKCA7OyApIHsKLSAgICBwYXJlbnQgPSBj
dXJyID4+IDE7Ci0gICAgaFBhcmVudCA9IG5bcGFyZW50XS5oYW5kbGU7Ci0gICAgaWYoIHBhcmVu
dCA9PSAwIHx8IExFUSggaFtoUGFyZW50XS5rZXksIGhbaEN1cnJdLmtleSApKSB7Ci0gICAgICBu
W2N1cnJdLmhhbmRsZSA9IGhDdXJyOwotICAgICAgaFtoQ3Vycl0ubm9kZSA9IGN1cnI7Ci0gICAg
ICBicmVhazsKLSAgICB9Ci0gICAgbltjdXJyXS5oYW5kbGUgPSBoUGFyZW50OwotICAgIGhbaFBh
cmVudF0ubm9kZSA9IGN1cnI7Ci0gICAgY3VyciA9IHBhcmVudDsKLSAgfQotfQotCi0vKiByZWFs
bHkgX19nbF9wcUhlYXBJbml0ICovCi12b2lkIHBxSW5pdCggUHJpb3JpdHlRICpwcSApCi17Ci0g
IGxvbmcgaTsKLQotICAvKiBUaGlzIG1ldGhvZCBvZiBidWlsZGluZyBhIGhlYXAgaXMgTyhuKSwg
cmF0aGVyIHRoYW4gTyhuIGxnIG4pLiAqLwotCi0gIGZvciggaSA9IHBxLT5zaXplOyBpID49IDE7
IC0taSApIHsKLSAgICBGbG9hdERvd24oIHBxLCBpICk7Ci0gIH0KLSAgcHEtPmluaXRpYWxpemVk
ID0gVFJVRTsKLX0KLQotLyogcmVhbGx5IF9fZ2xfcHFIZWFwSW5zZXJ0ICovCi0vKiByZXR1cm5z
IExPTkdfTUFYIGlmZiBvdXQgb2YgbWVtb3J5ICovCi1QUWhhbmRsZSBwcUluc2VydCggUHJpb3Jp
dHlRICpwcSwgUFFrZXkga2V5TmV3ICkKLXsKLSAgbG9uZyBjdXJyOwotICBQUWhhbmRsZSBmcmVl
OwotCi0gIGN1cnIgPSArKyBwcS0+c2l6ZTsKLSAgaWYoIChjdXJyKjIpID4gcHEtPm1heCApIHsK
LSAgICBQUW5vZGUgKnNhdmVOb2Rlcz0gcHEtPm5vZGVzOwotICAgIFBRaGFuZGxlRWxlbSAqc2F2
ZUhhbmRsZXM9IHBxLT5oYW5kbGVzOwotCi0gICAgLyogSWYgdGhlIGhlYXAgb3ZlcmZsb3dzLCBk
b3VibGUgaXRzIHNpemUuICovCi0gICAgcHEtPm1heCA8PD0gMTsKLSAgICBwcS0+bm9kZXMgPSAo
UFFub2RlICopbWVtUmVhbGxvYyggcHEtPm5vZGVzLCAKLQkJCQkgICAgIChzaXplX3QpIAotCQkJ
CSAgICAgKChwcS0+bWF4ICsgMSkgKiBzaXplb2YoIHBxLT5ub2Rlc1swXSApKSk7Ci0gICAgaWYg
KHBxLT5ub2RlcyA9PSBOVUxMKSB7Ci0gICAgICAgcHEtPm5vZGVzID0gc2F2ZU5vZGVzOwkvKiBy
ZXN0b3JlIHB0ciB0byBmcmVlIHVwb24gcmV0dXJuICovCi0gICAgICAgcmV0dXJuIExPTkdfTUFY
OwotICAgIH0KLSAgICBwcS0+aGFuZGxlcyA9IChQUWhhbmRsZUVsZW0gKiltZW1SZWFsbG9jKCBw
cS0+aGFuZGxlcywKLQkJCSAgICAgICAgICAgICAgICAgICAgIChzaXplX3QpCi0JCQkgICAgICAg
ICAgICAgICAgICAgICAgKChwcS0+bWF4ICsgMSkgKiAKLQkJCQkJICAgICAgIHNpemVvZiggcHEt
PmhhbmRsZXNbMF0gKSkpOwotICAgIGlmIChwcS0+aGFuZGxlcyA9PSBOVUxMKSB7Ci0gICAgICAg
cHEtPmhhbmRsZXMgPSBzYXZlSGFuZGxlczsgLyogcmVzdG9yZSBwdHIgdG8gZnJlZSB1cG9uIHJl
dHVybiAqLwotICAgICAgIHJldHVybiBMT05HX01BWDsKLSAgICB9Ci0gIH0KLQotICBpZiggcHEt
PmZyZWVMaXN0ID09IDAgKSB7Ci0gICAgZnJlZSA9IGN1cnI7Ci0gIH0gZWxzZSB7Ci0gICAgZnJl
ZSA9IHBxLT5mcmVlTGlzdDsKLSAgICBwcS0+ZnJlZUxpc3QgPSBwcS0+aGFuZGxlc1tmcmVlXS5u
b2RlOwotICB9Ci0KLSAgcHEtPm5vZGVzW2N1cnJdLmhhbmRsZSA9IGZyZWU7Ci0gIHBxLT5oYW5k
bGVzW2ZyZWVdLm5vZGUgPSBjdXJyOwotICBwcS0+aGFuZGxlc1tmcmVlXS5rZXkgPSBrZXlOZXc7
Ci0KLSAgaWYoIHBxLT5pbml0aWFsaXplZCApIHsKLSAgICBGbG9hdFVwKCBwcSwgY3VyciApOwot
ICB9Ci0gIGFzc2VydChmcmVlICE9IExPTkdfTUFYKTsKLSAgcmV0dXJuIGZyZWU7Ci19Ci0KLS8q
IHJlYWxseSBfX2dsX3BxSGVhcEV4dHJhY3RNaW4gKi8KLVBRa2V5IHBxRXh0cmFjdE1pbiggUHJp
b3JpdHlRICpwcSApCi17Ci0gIFBRbm9kZSAqbiA9IHBxLT5ub2RlczsKLSAgUFFoYW5kbGVFbGVt
ICpoID0gcHEtPmhhbmRsZXM7Ci0gIFBRaGFuZGxlIGhNaW4gPSBuWzFdLmhhbmRsZTsKLSAgUFFr
ZXkgbWluID0gaFtoTWluXS5rZXk7Ci0KLSAgaWYoIHBxLT5zaXplID4gMCApIHsKLSAgICBuWzFd
LmhhbmRsZSA9IG5bcHEtPnNpemVdLmhhbmRsZTsKLSAgICBoW25bMV0uaGFuZGxlXS5ub2RlID0g
MTsKLQotICAgIGhbaE1pbl0ua2V5ID0gTlVMTDsKLSAgICBoW2hNaW5dLm5vZGUgPSBwcS0+ZnJl
ZUxpc3Q7Ci0gICAgcHEtPmZyZWVMaXN0ID0gaE1pbjsKLQotICAgIGlmKCAtLSBwcS0+c2l6ZSA+
IDAgKSB7Ci0gICAgICBGbG9hdERvd24oIHBxLCAxICk7Ci0gICAgfQotICB9Ci0gIHJldHVybiBt
aW47Ci19Ci0KLS8qIHJlYWxseSBfX2dsX3BxSGVhcERlbGV0ZSAqLwotdm9pZCBwcURlbGV0ZSgg
UHJpb3JpdHlRICpwcSwgUFFoYW5kbGUgaEN1cnIgKQotewotICBQUW5vZGUgKm4gPSBwcS0+bm9k
ZXM7Ci0gIFBRaGFuZGxlRWxlbSAqaCA9IHBxLT5oYW5kbGVzOwotICBsb25nIGN1cnI7Ci0KLSAg
YXNzZXJ0KCBoQ3VyciA+PSAxICYmIGhDdXJyIDw9IHBxLT5tYXggJiYgaFtoQ3Vycl0ua2V5ICE9
IE5VTEwgKTsKLQotICBjdXJyID0gaFtoQ3Vycl0ubm9kZTsKLSAgbltjdXJyXS5oYW5kbGUgPSBu
W3BxLT5zaXplXS5oYW5kbGU7Ci0gIGhbbltjdXJyXS5oYW5kbGVdLm5vZGUgPSBjdXJyOwotCi0g
IGlmKCBjdXJyIDw9IC0tIHBxLT5zaXplICkgewotICAgIGlmKCBjdXJyIDw9IDEgfHwgTEVRKCBo
W25bY3Vycj4+MV0uaGFuZGxlXS5rZXksIGhbbltjdXJyXS5oYW5kbGVdLmtleSApKSB7Ci0gICAg
ICBGbG9hdERvd24oIHBxLCBjdXJyICk7Ci0gICAgfSBlbHNlIHsKLSAgICAgIEZsb2F0VXAoIHBx
LCBjdXJyICk7Ci0gICAgfQotICB9Ci0gIGhbaEN1cnJdLmtleSA9IE5VTEw7Ci0gIGhbaEN1cnJd
Lm5vZGUgPSBwcS0+ZnJlZUxpc3Q7Ci0gIHBxLT5mcmVlTGlzdCA9IGhDdXJyOwotfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS1oZWFwLmggYi9X
ZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlxLWhlYXAuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDJlNDQzNC4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3RoaXJk
cGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlxLWhlYXAuaAorKysgL2Rldi9udWxsCkBAIC0xLDEx
NCArMCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8gdGhlIGV4
dGVudCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1YmplY3QgdG8gYW4gYWx0
ZXJuYXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBTb2Z0d2Fy
ZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9m
IHRoaXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUg
TGljZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0aGUgTGlj
ZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYw
MAotKiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzLTEzNTEs
IG9yIGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMvRnJlZUIKLSoqIAot
KiogTm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhlIFNvZnR3YXJlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBSRVNTIEFO
RCBJTVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NMQUlNRUQsIElOQ0xV
RElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5USUVTIEFORAotKiog
Q09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBRVUFMSVRZLCBGSVRO
RVNTIEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5GUklOR0VNRU5ULgot
KiogCi0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczogT3BlbkdMIFNhbXBs
ZSBJbXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2VkIEphbnVhcnkgMjYs
IDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5jLiBUaGUgT3JpZ2lu
YWwgQ29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNzLCBJbmMu
Ci0qKiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFydGllcyBp
cyBhcyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
Ci0qKiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNhdGlvbiBw
cm9ncmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kgaW4gY29uanVuY3Rp
b24gd2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0woUikgR3JhcGhpY3Mg
U3lzdGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxlYXNlZAotKiogQXBy
aWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBMaWJyYXJ5
IChWZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQgT3BlbkdM
KFIpIEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNpb24gMS4z
KSwgcmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQotKiogd2FzIGNyZWF0
ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRhdGlv
bgotKiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVudGx5IHZl
cmlmaWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZlcnNpb24g
MS4yLjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjogRXJpYyBWZWFjaCwg
SnVseSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVhZGVyOiAvL2RlcG90
L21haW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9wcmlvcml0eXEtaGVhcC5oIzUgJAotKi8KLQotI2lm
bmRlZiBfX3ByaW9yaXR5cV9oZWFwX2hfCi0jZGVmaW5lIF9fcHJpb3JpdHlxX2hlYXBfaF8KLQot
LyogVXNlICNkZWZpbmUncyBzbyB0aGF0IGFub3RoZXIgaGVhcCBpbXBsZW1lbnRhdGlvbiBjYW4g
dXNlIHRoaXMgb25lICovCi0KLSNkZWZpbmUgUFFrZXkJCQlQUUhlYXBLZXkKLSNkZWZpbmUgUFFo
YW5kbGUJCVBRSGVhcEhhbmRsZQotI2RlZmluZSBQcmlvcml0eVEJCVByaW9yaXR5UUhlYXAKLQot
I2RlZmluZSBwcU5ld1ByaW9yaXR5UShsZXEpCV9fZ2xfcHFIZWFwTmV3UHJpb3JpdHlRKGxlcSkK
LSNkZWZpbmUgcHFEZWxldGVQcmlvcml0eVEocHEpCV9fZ2xfcHFIZWFwRGVsZXRlUHJpb3JpdHlR
KHBxKQotCi0vKiBUaGUgYmFzaWMgb3BlcmF0aW9ucyBhcmUgaW5zZXJ0aW9uIG9mIGEgbmV3IGtl
eSAocHFJbnNlcnQpLAotICogYW5kIGV4YW1pbmF0aW9uL2V4dHJhY3Rpb24gb2YgYSBrZXkgd2hv
c2UgdmFsdWUgaXMgbWluaW11bQotICogKHBxTWluaW11bS9wcUV4dHJhY3RNaW4pLiAgRGVsZXRp
b24gaXMgYWxzbyBhbGxvd2VkIChwcURlbGV0ZSk7Ci0gKiBmb3IgdGhpcyBwdXJwb3NlIHBxSW5z
ZXJ0IHJldHVybnMgYSAiaGFuZGxlIiB3aGljaCBpcyBzdXBwbGllZAotICogYXMgdGhlIGFyZ3Vt
ZW50LgotICoKLSAqIEFuIGluaXRpYWwgaGVhcCBtYXkgYmUgY3JlYXRlZCBlZmZpY2llbnRseSBi
eSBjYWxsaW5nIHBxSW5zZXJ0Ci0gKiByZXBlYXRlZGx5LCB0aGVuIGNhbGxpbmcgcHFJbml0LiAg
SW4gYW55IGNhc2UgcHFJbml0IG11c3QgYmUgY2FsbGVkCi0gKiBiZWZvcmUgYW55IG9wZXJhdGlv
bnMgb3RoZXIgdGhhbiBwcUluc2VydCBhcmUgdXNlZC4KLSAqCi0gKiBJZiB0aGUgaGVhcCBpcyBl
bXB0eSwgcHFNaW5pbXVtL3BxRXh0cmFjdE1pbiB3aWxsIHJldHVybiBhIE5VTEwga2V5LgotICog
VGhpcyBtYXkgYWxzbyBiZSB0ZXN0ZWQgd2l0aCBwcUlzRW1wdHkuCi0gKi8KLSNkZWZpbmUgcHFJ
bml0KHBxKQkJX19nbF9wcUhlYXBJbml0KHBxKQotI2RlZmluZSBwcUluc2VydChwcSxrZXkpCV9f
Z2xfcHFIZWFwSW5zZXJ0KHBxLGtleSkKLSNkZWZpbmUgcHFNaW5pbXVtKHBxKQkJX19nbF9wcUhl
YXBNaW5pbXVtKHBxKQotI2RlZmluZSBwcUV4dHJhY3RNaW4ocHEpCV9fZ2xfcHFIZWFwRXh0cmFj
dE1pbihwcSkKLSNkZWZpbmUgcHFEZWxldGUocHEsaGFuZGxlKQlfX2dsX3BxSGVhcERlbGV0ZShw
cSxoYW5kbGUpCi0jZGVmaW5lIHBxSXNFbXB0eShwcSkJCV9fZ2xfcHFIZWFwSXNFbXB0eShwcSkK
LQotCi0vKiBTaW5jZSB3ZSBzdXBwb3J0IGRlbGV0aW9uIHRoZSBkYXRhIHN0cnVjdHVyZSBpcyBh
IGxpdHRsZSBtb3JlCi0gKiBjb21wbGljYXRlZCB0aGFuIGFuIG9yZGluYXJ5IGhlYXAuICAibm9k
ZXMiIGlzIHRoZSBoZWFwIGl0c2VsZjsKLSAqIGFjdGl2ZSBub2RlcyBhcmUgc3RvcmVkIGluIHRo
ZSByYW5nZSAxLi5wcS0+c2l6ZS4gIFdoZW4gdGhlCi0gKiBoZWFwIGV4Y2VlZHMgaXRzIGFsbG9j
YXRlZCBzaXplIChwcS0+bWF4KSwgaXRzIHNpemUgZG91Ymxlcy4KLSAqIFRoZSBjaGlsZHJlbiBv
ZiBub2RlIGkgYXJlIG5vZGVzIDJpIGFuZCAyaSsxLgotICoKLSAqIEVhY2ggbm9kZSBzdG9yZXMg
YW4gaW5kZXggaW50byBhbiBhcnJheSAiaGFuZGxlcyIuICBFYWNoIGhhbmRsZQotICogc3RvcmVz
IGEga2V5LCBwbHVzIGEgcG9pbnRlciBiYWNrIHRvIHRoZSBub2RlIHdoaWNoIGN1cnJlbnRseQot
ICogcmVwcmVzZW50cyB0aGF0IGtleSAoaWUuIG5vZGVzW2hhbmRsZXNbaV0ubm9kZV0uaGFuZGxl
ID09IGkpLgotICovCi0KLXR5cGVkZWYgdm9pZCAqUFFrZXk7Ci10eXBlZGVmIGxvbmcgUFFoYW5k
bGU7Ci10eXBlZGVmIHN0cnVjdCBQcmlvcml0eVEgUHJpb3JpdHlROwotCi10eXBlZGVmIHN0cnVj
dCB7IFBRaGFuZGxlIGhhbmRsZTsgfSBQUW5vZGU7Ci10eXBlZGVmIHN0cnVjdCB7IFBRa2V5IGtl
eTsgUFFoYW5kbGUgbm9kZTsgfSBQUWhhbmRsZUVsZW07Ci0KLXN0cnVjdCBQcmlvcml0eVEgewot
ICBQUW5vZGUJKm5vZGVzOwotICBQUWhhbmRsZUVsZW0JKmhhbmRsZXM7Ci0gIGxvbmcJCXNpemUs
IG1heDsKLSAgUFFoYW5kbGUJZnJlZUxpc3Q7Ci0gIGludAkJaW5pdGlhbGl6ZWQ7Ci0gIGludAkJ
KCpsZXEpKFBRa2V5IGtleTEsIFBRa2V5IGtleTIpOwotfTsKLSAgCi1Qcmlvcml0eVEJKnBxTmV3
UHJpb3JpdHlRKCBpbnQgKCpsZXEpKFBRa2V5IGtleTEsIFBRa2V5IGtleTIpICk7Ci12b2lkCQlw
cURlbGV0ZVByaW9yaXR5USggUHJpb3JpdHlRICpwcSApOwotCi12b2lkCQlwcUluaXQoIFByaW9y
aXR5USAqcHEgKTsKLVBRaGFuZGxlCXBxSW5zZXJ0KCBQcmlvcml0eVEgKnBxLCBQUWtleSBrZXkg
KTsKLVBRa2V5CQlwcUV4dHJhY3RNaW4oIFByaW9yaXR5USAqcHEgKTsKLXZvaWQJCXBxRGVsZXRl
KCBQcmlvcml0eVEgKnBxLCBQUWhhbmRsZSBoYW5kbGUgKTsKLQotCi0jZGVmaW5lIF9fZ2xfcHFI
ZWFwTWluaW11bShwcSkJKChwcSktPmhhbmRsZXNbKHBxKS0+bm9kZXNbMV0uaGFuZGxlXS5rZXkp
Ci0jZGVmaW5lIF9fZ2xfcHFIZWFwSXNFbXB0eShwcSkJKChwcSktPnNpemUgPT0gMCkKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlx
LXNvcnQuaCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9wcmlvcml0eXEtc29ydC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzI4OWQ2Li4wMDAwMDAwCi0tLSBhL1dl
YkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9wcmlvcml0eXEtc29ydC5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTI0ICswLDAgQEAKLS8qCi0qKiBMaWNlbnNlIEFwcGxpY2FiaWxpdHkuIEV4Y2Vw
dCB0byB0aGUgZXh0ZW50IHBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUKLSoqIG1hZGUgc3ViamVj
dCB0byBhbiBhbHRlcm5hdGl2ZSBsaWNlbnNlIGFzIHBlcm1pdHRlZCBpbiB0aGUgU0dJIEZyZWUK
LSoqIFNvZnR3YXJlIExpY2Vuc2UgQiwgVmVyc2lvbiAxLjEgKHRoZSAiTGljZW5zZSIpLCB0aGUg
Y29udGVudHMgb2YgdGhpcwotKiogZmlsZSBhcmUgc3ViamVjdCBvbmx5IHRvIHRoZSBwcm92aXNp
b25zIG9mIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG5vdCB1c2UKLSoqIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkKLSoq
IG9mIHRoZSBMaWNlbnNlIGF0IFNpbGljb24gR3JhcGhpY3MsIEluYy4sIGF0dG46IExlZ2FsIFNl
cnZpY2VzLCAxNjAwCi0qKiBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRhaW4gVmlldywgQ0Eg
OTQwNDMtMTM1MSwgb3IgYXQ6Ci0qKiAKLSoqIGh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9qZWN0cy9G
cmVlQgotKiogCi0qKiBOb3RlIHRoYXQsIGFzIHByb3ZpZGVkIGluIHRoZSBMaWNlbnNlLCB0aGUg
U29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSoqICJBUyBJUyIgYmFzaXMsIHdpdGggQUxM
IEVYUFJFU1MgQU5EIElNUExJRUQgV0FSUkFOVElFUyBBTkQgQ09ORElUSU9OUwotKiogRElTQ0xB
SU1FRCwgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBJTVBMSUVEIFdBUlJBTlRJ
RVMgQU5ECi0qKiBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgU0FUSVNGQUNUT1JZIFFV
QUxJVFksIEZJVE5FU1MgRk9SIEEKLSoqIFBBUlRJQ1VMQVIgUFVSUE9TRSwgQU5EIE5PTi1JTkZS
SU5HRU1FTlQuCi0qKiAKLSoqIE9yaWdpbmFsIENvZGUuIFRoZSBPcmlnaW5hbCBDb2RlIGlzOiBP
cGVuR0wgU2FtcGxlIEltcGxlbWVudGF0aW9uLAotKiogVmVyc2lvbiAxLjIuMSwgcmVsZWFzZWQg
SmFudWFyeSAyNiwgMjAwMCwgZGV2ZWxvcGVkIGJ5IFNpbGljb24gR3JhcGhpY3MsCi0qKiBJbmMu
IFRoZSBPcmlnaW5hbCBDb2RlIGlzIENvcHlyaWdodCAoYykgMTk5MS0yMDAwIFNpbGljb24gR3Jh
cGhpY3MsIEluYy4KLSoqIENvcHlyaWdodCBpbiBhbnkgcG9ydGlvbnMgY3JlYXRlZCBieSB0aGly
ZCBwYXJ0aWVzIGlzIGFzIGluZGljYXRlZAotKiogZWxzZXdoZXJlIGhlcmVpbi4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLSoqIAotKiogQWRkaXRpb25hbCBOb3RpY2UgUHJvdmlzaW9uczogVGhlIGFw
cGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVyZmFjZXMKLSoqIGVzdGFibGlzaGVkIGJ5IFNHSSBp
biBjb25qdW5jdGlvbiB3aXRoIHRoZSBPcmlnaW5hbCBDb2RlIGFyZSBUaGUKLSoqIE9wZW5HTChS
KSBHcmFwaGljcyBTeXN0ZW06IEEgU3BlY2lmaWNhdGlvbiAoVmVyc2lvbiAxLjIuMSksIHJlbGVh
c2VkCi0qKiBBcHJpbCAxLCAxOTk5OyBUaGUgT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbSBVdGls
aXR5IExpYnJhcnkgKFZlcnNpb24KLSoqIDEuMyksIHJlbGVhc2VkIE5vdmVtYmVyIDQsIDE5OTg7
IGFuZCBPcGVuR0woUikgR3JhcGhpY3Mgd2l0aCB0aGUgWAotKiogV2luZG93IFN5c3RlbShSKSAo
VmVyc2lvbiAxLjMpLCByZWxlYXNlZCBPY3RvYmVyIDE5LCAxOTk4LiBUaGlzIHNvZnR3YXJlCi0q
KiB3YXMgY3JlYXRlZCB1c2luZyB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU2FtcGxlIElt
cGxlbWVudGF0aW9uCi0qKiBwdWJsaXNoZWQgYnkgU0dJLCBidXQgaGFzIG5vdCBiZWVuIGluZGVw
ZW5kZW50bHkgdmVyaWZpZWQgYXMgYmVpbmcKLSoqIGNvbXBsaWFudCB3aXRoIHRoZSBPcGVuR0wo
UikgdmVyc2lvbiAxLjIuMSBTcGVjaWZpY2F0aW9uLgotKioKLSovCi0vKgotKiogQXV0aG9yOiBF
cmljIFZlYWNoLCBKdWx5IDE5OTQuCi0qKgotKiogJERhdGUkICRSZXZpc2lvbiQKLSoqICRIZWFk
ZXI6IC8vZGVwb3QvbWFpbi9nZngvbGliL2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS1zb3J0LmgjNSAk
Ci0qLwotCi0jaWZuZGVmIF9fcHJpb3JpdHlxX3NvcnRfaF8KLSNkZWZpbmUgX19wcmlvcml0eXFf
c29ydF9oXwotCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9wcmlvcml0eXEtaGVh
cC5oIgotCi0jdW5kZWYgUFFrZXkKLSN1bmRlZiBQUWhhbmRsZQotI3VuZGVmIFByaW9yaXR5UQot
I3VuZGVmIHBxTmV3UHJpb3JpdHlRCi0jdW5kZWYgcHFEZWxldGVQcmlvcml0eVEKLSN1bmRlZiBw
cUluaXQKLSN1bmRlZiBwcUluc2VydAotI3VuZGVmIHBxTWluaW11bQotI3VuZGVmIHBxRXh0cmFj
dE1pbgotI3VuZGVmIHBxRGVsZXRlCi0jdW5kZWYgcHFJc0VtcHR5Ci0KLS8qIFVzZSAjZGVmaW5l
J3Mgc28gdGhhdCBhbm90aGVyIGhlYXAgaW1wbGVtZW50YXRpb24gY2FuIHVzZSB0aGlzIG9uZSAq
LwotCi0jZGVmaW5lIFBRa2V5CQkJUFFTb3J0S2V5Ci0jZGVmaW5lIFBRaGFuZGxlCQlQUVNvcnRI
YW5kbGUKLSNkZWZpbmUgUHJpb3JpdHlRCQlQcmlvcml0eVFTb3J0Ci0KLSNkZWZpbmUgcHFOZXdQ
cmlvcml0eVEobGVxKQlfX2dsX3BxU29ydE5ld1ByaW9yaXR5UShsZXEpCi0jZGVmaW5lIHBxRGVs
ZXRlUHJpb3JpdHlRKHBxKQlfX2dsX3BxU29ydERlbGV0ZVByaW9yaXR5UShwcSkKLQotLyogVGhl
IGJhc2ljIG9wZXJhdGlvbnMgYXJlIGluc2VydGlvbiBvZiBhIG5ldyBrZXkgKHBxSW5zZXJ0KSwK
LSAqIGFuZCBleGFtaW5hdGlvbi9leHRyYWN0aW9uIG9mIGEga2V5IHdob3NlIHZhbHVlIGlzIG1p
bmltdW0KLSAqIChwcU1pbmltdW0vcHFFeHRyYWN0TWluKS4gIERlbGV0aW9uIGlzIGFsc28gYWxs
b3dlZCAocHFEZWxldGUpOwotICogZm9yIHRoaXMgcHVycG9zZSBwcUluc2VydCByZXR1cm5zIGEg
ImhhbmRsZSIgd2hpY2ggaXMgc3VwcGxpZWQKLSAqIGFzIHRoZSBhcmd1bWVudC4KLSAqCi0gKiBB
biBpbml0aWFsIGhlYXAgbWF5IGJlIGNyZWF0ZWQgZWZmaWNpZW50bHkgYnkgY2FsbGluZyBwcUlu
c2VydAotICogcmVwZWF0ZWRseSwgdGhlbiBjYWxsaW5nIHBxSW5pdC4gIEluIGFueSBjYXNlIHBx
SW5pdCBtdXN0IGJlIGNhbGxlZAotICogYmVmb3JlIGFueSBvcGVyYXRpb25zIG90aGVyIHRoYW4g
cHFJbnNlcnQgYXJlIHVzZWQuCi0gKgotICogSWYgdGhlIGhlYXAgaXMgZW1wdHksIHBxTWluaW11
bS9wcUV4dHJhY3RNaW4gd2lsbCByZXR1cm4gYSBOVUxMIGtleS4KLSAqIFRoaXMgbWF5IGFsc28g
YmUgdGVzdGVkIHdpdGggcHFJc0VtcHR5LgotICovCi0jZGVmaW5lIHBxSW5pdChwcSkJCV9fZ2xf
cHFTb3J0SW5pdChwcSkKLSNkZWZpbmUgcHFJbnNlcnQocHEsa2V5KQlfX2dsX3BxU29ydEluc2Vy
dChwcSxrZXkpCi0jZGVmaW5lIHBxTWluaW11bShwcSkJCV9fZ2xfcHFTb3J0TWluaW11bShwcSkK
LSNkZWZpbmUgcHFFeHRyYWN0TWluKHBxKQlfX2dsX3BxU29ydEV4dHJhY3RNaW4ocHEpCi0jZGVm
aW5lIHBxRGVsZXRlKHBxLGhhbmRsZSkJX19nbF9wcVNvcnREZWxldGUocHEsaGFuZGxlKQotI2Rl
ZmluZSBwcUlzRW1wdHkocHEpCQlfX2dsX3BxU29ydElzRW1wdHkocHEpCi0KLQotLyogU2luY2Ug
d2Ugc3VwcG9ydCBkZWxldGlvbiB0aGUgZGF0YSBzdHJ1Y3R1cmUgaXMgYSBsaXR0bGUgbW9yZQot
ICogY29tcGxpY2F0ZWQgdGhhbiBhbiBvcmRpbmFyeSBoZWFwLiAgIm5vZGVzIiBpcyB0aGUgaGVh
cCBpdHNlbGY7Ci0gKiBhY3RpdmUgbm9kZXMgYXJlIHN0b3JlZCBpbiB0aGUgcmFuZ2UgMS4ucHEt
PnNpemUuICBXaGVuIHRoZQotICogaGVhcCBleGNlZWRzIGl0cyBhbGxvY2F0ZWQgc2l6ZSAocHEt
Pm1heCksIGl0cyBzaXplIGRvdWJsZXMuCi0gKiBUaGUgY2hpbGRyZW4gb2Ygbm9kZSBpIGFyZSBu
b2RlcyAyaSBhbmQgMmkrMS4KLSAqCi0gKiBFYWNoIG5vZGUgc3RvcmVzIGFuIGluZGV4IGludG8g
YW4gYXJyYXkgImhhbmRsZXMiLiAgRWFjaCBoYW5kbGUKLSAqIHN0b3JlcyBhIGtleSwgcGx1cyBh
IHBvaW50ZXIgYmFjayB0byB0aGUgbm9kZSB3aGljaCBjdXJyZW50bHkKLSAqIHJlcHJlc2VudHMg
dGhhdCBrZXkgKGllLiBub2Rlc1toYW5kbGVzW2ldLm5vZGVdLmhhbmRsZSA9PSBpKS4KLSAqLwot
Ci10eXBlZGVmIFBRSGVhcEtleSBQUWtleTsKLXR5cGVkZWYgUFFIZWFwSGFuZGxlIFBRaGFuZGxl
OwotdHlwZWRlZiBzdHJ1Y3QgUHJpb3JpdHlRIFByaW9yaXR5UTsKLQotc3RydWN0IFByaW9yaXR5
USB7Ci0gIFByaW9yaXR5UUhlYXAJKmhlYXA7Ci0gIFBRa2V5CQkqa2V5czsKLSAgUFFrZXkJCSoq
b3JkZXI7Ci0gIFBRaGFuZGxlCXNpemUsIG1heDsKLSAgaW50CQlpbml0aWFsaXplZDsKLSAgaW50
CQkoKmxlcSkoUFFrZXkga2V5MSwgUFFrZXkga2V5Mik7Ci19OwotICAKLVByaW9yaXR5UQkqcHFO
ZXdQcmlvcml0eVEoIGludCAoKmxlcSkoUFFrZXkga2V5MSwgUFFrZXkga2V5MikgKTsKLXZvaWQJ
CXBxRGVsZXRlUHJpb3JpdHlRKCBQcmlvcml0eVEgKnBxICk7Ci0KLWludAkJcHFJbml0KCBQcmlv
cml0eVEgKnBxICk7Ci1QUWhhbmRsZQlwcUluc2VydCggUHJpb3JpdHlRICpwcSwgUFFrZXkga2V5
ICk7Ci1QUWtleQkJcHFFeHRyYWN0TWluKCBQcmlvcml0eVEgKnBxICk7Ci12b2lkCQlwcURlbGV0
ZSggUHJpb3JpdHlRICpwcSwgUFFoYW5kbGUgaGFuZGxlICk7Ci0KLVBRa2V5CQlwcU1pbmltdW0o
IFByaW9yaXR5USAqcHEgKTsKLWludAkJcHFJc0VtcHR5KCBQcmlvcml0eVEgKnBxICk7Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5
cS5jIGIvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS5jCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YjBiZWExLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvdGhp
cmRwYXJ0eS9nbHUvbGlidGVzcy9wcmlvcml0eXEuYworKysgL2Rldi9udWxsCkBAIC0xLDI2NyAr
MCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8gdGhlIGV4dGVu
dCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1YmplY3QgdG8gYW4gYWx0ZXJu
YXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBTb2Z0d2FyZSBM
aWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRzIG9mIHRo
aXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlzaW9ucyBvZiB0aGUgTGlj
ZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ug
d2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0aGUgTGljZW5z
ZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywgMTYwMAot
KiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzLTEzNTEsIG9y
IGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMvRnJlZUIKLSoqIAotKiog
Tm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhlIFNvZnR3YXJlIGlzIGRp
c3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBSRVNTIEFORCBJ
TVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NMQUlNRUQsIElOQ0xVRElO
RywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5USUVTIEFORAotKiogQ09O
RElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBRVUFMSVRZLCBGSVRORVNT
IEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5GUklOR0VNRU5ULgotKiog
Ci0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczogT3BlbkdMIFNhbXBsZSBJ
bXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2VkIEphbnVhcnkgMjYsIDIw
MDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5jLiBUaGUgT3JpZ2luYWwg
Q29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuCi0q
KiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFydGllcyBpcyBh
cyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0q
KiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNhdGlvbiBwcm9n
cmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kgaW4gY29uanVuY3Rpb24g
d2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0woUikgR3JhcGhpY3MgU3lz
dGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxlYXNlZAotKiogQXByaWwg
MSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBMaWJyYXJ5IChW
ZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQgT3BlbkdMKFIp
IEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNpb24gMS4zKSwg
cmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQotKiogd2FzIGNyZWF0ZWQg
dXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRhdGlvbgot
KiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVudGx5IHZlcmlm
aWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4y
LjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjogRXJpYyBWZWFjaCwgSnVs
eSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVhZGVyOiAvL2RlcG90L21h
aW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9wcmlvcml0eXEuYyM1ICQKLSovCi0KLSNpbmNsdWRlIDxh
c3NlcnQuaD4KLSNpbmNsdWRlIDxsaW1pdHMuaD4JCS8qIExPTkdfTUFYICovCi0jaW5jbHVkZSA8
c3RkZGVmLmg+Ci0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvZ2x1b3MuaCIKLSNpbmNsdWRlICJ0
aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lbWFsbG9jLmgiCi0KLS8qIEluY2x1ZGUgYWxsIHRoZSBj
b2RlIGZvciB0aGUgcmVndWxhciBoZWFwLWJhc2VkIHF1ZXVlIGhlcmUuICovCi0KLSNpbmNsdWRl
ICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS1oZWFwLmMiCi0KLS8qIE5vdyByZWRl
ZmluZSBhbGwgdGhlIGZ1bmN0aW9uIG5hbWVzIHRvIG1hcCB0byB0aGVpciAiU29ydCIgdmVyc2lv
bnMuICovCi0KLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS1zb3J0
LmgiCi0KLS8qIHJlYWxseSBfX2dsX3BxU29ydE5ld1ByaW9yaXR5USAqLwotUHJpb3JpdHlRICpw
cU5ld1ByaW9yaXR5USggaW50ICgqbGVxKShQUWtleSBrZXkxLCBQUWtleSBrZXkyKSApCi17Ci0g
IFByaW9yaXR5USAqcHEgPSAoUHJpb3JpdHlRICopbWVtQWxsb2MoIHNpemVvZiggUHJpb3JpdHlR
ICkpOwotICBpZiAocHEgPT0gTlVMTCkgcmV0dXJuIE5VTEw7Ci0KLSAgcHEtPmhlYXAgPSBfX2ds
X3BxSGVhcE5ld1ByaW9yaXR5USggbGVxICk7Ci0gIGlmIChwcS0+aGVhcCA9PSBOVUxMKSB7Ci0g
ICAgIG1lbUZyZWUocHEpOwotICAgICByZXR1cm4gTlVMTDsKLSAgfQotCi0gIHBxLT5rZXlzID0g
KFBRSGVhcEtleSAqKW1lbUFsbG9jKCBJTklUX1NJWkUgKiBzaXplb2YocHEtPmtleXNbMF0pICk7
Ci0gIGlmIChwcS0+a2V5cyA9PSBOVUxMKSB7Ci0gICAgIF9fZ2xfcHFIZWFwRGVsZXRlUHJpb3Jp
dHlRKHBxLT5oZWFwKTsKLSAgICAgbWVtRnJlZShwcSk7Ci0gICAgIHJldHVybiBOVUxMOwotICB9
Ci0KLSAgcHEtPnNpemUgPSAwOwotICBwcS0+bWF4ID0gSU5JVF9TSVpFOwotICBwcS0+aW5pdGlh
bGl6ZWQgPSBGQUxTRTsKLSAgcHEtPmxlcSA9IGxlcTsKLSAgcmV0dXJuIHBxOwotfQotCi0vKiBy
ZWFsbHkgX19nbF9wcVNvcnREZWxldGVQcmlvcml0eVEgKi8KLXZvaWQgcHFEZWxldGVQcmlvcml0
eVEoIFByaW9yaXR5USAqcHEgKQotewotICBhc3NlcnQocHEgIT0gTlVMTCk7IAotICBpZiAocHEt
PmhlYXAgIT0gTlVMTCkgX19nbF9wcUhlYXBEZWxldGVQcmlvcml0eVEoIHBxLT5oZWFwICk7Ci0g
IGlmIChwcS0+b3JkZXIgIT0gTlVMTCkgbWVtRnJlZSggcHEtPm9yZGVyICk7Ci0gIGlmIChwcS0+
a2V5cyAhPSBOVUxMKSBtZW1GcmVlKCBwcS0+a2V5cyApOwotICBtZW1GcmVlKCBwcSApOwotfQot
Ci0KLSNkZWZpbmUgTFQoeCx5KQkJKCEgTEVRKHkseCkpCi0jZGVmaW5lIEdUKHgseSkJCSghIExF
USh4LHkpKQotI2RlZmluZSBTd2FwKGEsYikJaWYoMSl7UFFrZXkgKnRtcCA9ICphOyAqYSA9ICpi
OyAqYiA9IHRtcDt9ZWxzZQotCi0vKiByZWFsbHkgX19nbF9wcVNvcnRJbml0ICovCi1pbnQgcHFJ
bml0KCBQcmlvcml0eVEgKnBxICkKLXsKLSAgUFFrZXkgKipwLCAqKnIsICoqaSwgKipqLCAqcGl2
OwotICBzdHJ1Y3QgeyBQUWtleSAqKnAsICoqcjsgfSBTdGFja1s1MF0sICp0b3AgPSBTdGFjazsK
LSAgdW5zaWduZWQgbG9uZyBzZWVkID0gMjAxNjQ3MzI4MzsKLQotICAvKiBDcmVhdGUgYW4gYXJy
YXkgb2YgaW5kaXJlY3QgcG9pbnRlcnMgdG8gdGhlIGtleXMsIHNvIHRoYXQgd2UKLSAgICogdGhl
IGhhbmRsZXMgd2UgaGF2ZSByZXR1cm5lZCBhcmUgc3RpbGwgdmFsaWQuCi0gICAqLwotLyoKLSAg
cHEtPm9yZGVyID0gKFBRSGVhcEtleSAqKiltZW1BbGxvYyggKHNpemVfdCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAocHEtPnNpemUgKiBzaXplb2YocHEtPm9yZGVyWzBdKSkg
KTsKLSovCi0gIHBxLT5vcmRlciA9IChQUUhlYXBLZXkgKiopbWVtQWxsb2MoIChzaXplX3QpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcS0+c2l6ZSsxKSAqIHNpemVvZihw
cS0+b3JkZXJbMF0pKSApOwotLyogdGhlIHByZXZpb3VzIGxpbmUgaXMgYSBwYXRjaCB0byBjb21w
ZW5zYXRlIGZvciB0aGUgZmFjdCB0aGF0IElCTSAqLwotLyogbWFjaGluZXMgcmV0dXJuIGEgbnVs
bCBvbiBhIG1hbGxvYyBvZiB6ZXJvIGJ5dGVzICh1bmxpa2UgU0dJKSwgICAqLwotLyogc28gd2Ug
aGF2ZSB0byBwdXQgaW4gdGhpcyBkZWZlbnNlIHRvIGd1YXJkIGFnYWluc3QgYSBtZW1vcnkgICAg
ICAqLwotLyogZmF1bHQgZm91ciBsaW5lcyBkb3duLiBmcm9tIGZvc3N1bUBhdXN0aW4uaWJtLmNv
bS4gICAgICAgICAgICAgICAqLwotICBpZiAocHEtPm9yZGVyID09IE5VTEwpIHJldHVybiAwOwot
Ci0gIHAgPSBwcS0+b3JkZXI7Ci0gIHIgPSBwICsgcHEtPnNpemUgLSAxOwotICBmb3IoIHBpdiA9
IHBxLT5rZXlzLCBpID0gcDsgaSA8PSByOyArK3BpdiwgKytpICkgewotICAgICppID0gcGl2Owot
ICB9Ci0KLSAgLyogU29ydCB0aGUgaW5kaXJlY3QgcG9pbnRlcnMgaW4gZGVzY2VuZGluZyBvcmRl
ciwKLSAgICogdXNpbmcgcmFuZG9taXplZCBRdWlja3NvcnQKLSAgICovCi0gIHRvcC0+cCA9IHA7
IHRvcC0+ciA9IHI7ICsrdG9wOwotICB3aGlsZSggLS10b3AgPj0gU3RhY2sgKSB7Ci0gICAgcCA9
IHRvcC0+cDsKLSAgICByID0gdG9wLT5yOwotICAgIHdoaWxlKCByID4gcCArIDEwICkgewotICAg
ICAgc2VlZCA9IHNlZWQgKiAxNTM5NDE1ODIxICsgMTsKLSAgICAgIGkgPSBwICsgc2VlZCAlIChy
IC0gcCArIDEpOwotICAgICAgcGl2ID0gKmk7Ci0gICAgICAqaSA9ICpwOwotICAgICAgKnAgPSBw
aXY7Ci0gICAgICBpID0gcCAtIDE7Ci0gICAgICBqID0gciArIDE7Ci0gICAgICBkbyB7Ci0JZG8g
eyArK2k7IH0gd2hpbGUoIEdUKCAqKmksICpwaXYgKSk7Ci0JZG8geyAtLWo7IH0gd2hpbGUoIExU
KCAqKmosICpwaXYgKSk7Ci0JU3dhcCggaSwgaiApOwotICAgICAgfSB3aGlsZSggaSA8IGogKTsK
LSAgICAgIFN3YXAoIGksIGogKTsJLyogVW5kbyBsYXN0IHN3YXAgKi8KLSAgICAgIGlmKCBpIC0g
cCA8IHIgLSBqICkgewotCXRvcC0+cCA9IGorMTsgdG9wLT5yID0gcjsgKyt0b3A7Ci0JciA9IGkt
MTsKLSAgICAgIH0gZWxzZSB7Ci0JdG9wLT5wID0gcDsgdG9wLT5yID0gaS0xOyArK3RvcDsKLQlw
ID0gaisxOwotICAgICAgfQotICAgIH0KLSAgICAvKiBJbnNlcnRpb24gc29ydCBzbWFsbCBsaXN0
cyAqLwotICAgIGZvciggaSA9IHArMTsgaSA8PSByOyArK2kgKSB7Ci0gICAgICBwaXYgPSAqaTsK
LSAgICAgIGZvciggaiA9IGk7IGogPiBwICYmIExUKCAqKihqLTEpLCAqcGl2ICk7IC0taiApIHsK
LQkqaiA9ICooai0xKTsKLSAgICAgIH0KLSAgICAgICpqID0gcGl2OwotICAgIH0KLSAgfQotICBw
cS0+bWF4ID0gcHEtPnNpemU7Ci0gIHBxLT5pbml0aWFsaXplZCA9IFRSVUU7Ci0gIF9fZ2xfcHFI
ZWFwSW5pdCggcHEtPmhlYXAgKTsJLyogYWx3YXlzIHN1Y2NlZWRzICovCi0KLSNpZm5kZWYgTkRF
QlVHCi0gIHAgPSBwcS0+b3JkZXI7Ci0gIHIgPSBwICsgcHEtPnNpemUgLSAxOwotICBmb3IoIGkg
PSBwOyBpIDwgcjsgKytpICkgewotICAgIGFzc2VydCggTEVRKCAqKihpKzEpLCAqKmkgKSk7Ci0g
IH0KLSNlbmRpZgotCi0gIHJldHVybiAxOwotfQotCi0vKiByZWFsbHkgX19nbF9wcVNvcnRJbnNl
cnQgKi8KLS8qIHJldHVybnMgTE9OR19NQVggaWZmIG91dCBvZiBtZW1vcnkgKi8gCi1QUWhhbmRs
ZSBwcUluc2VydCggUHJpb3JpdHlRICpwcSwgUFFrZXkga2V5TmV3ICkKLXsKLSAgbG9uZyBjdXJy
OwotCi0gIGlmKCBwcS0+aW5pdGlhbGl6ZWQgKSB7Ci0gICAgcmV0dXJuIF9fZ2xfcHFIZWFwSW5z
ZXJ0KCBwcS0+aGVhcCwga2V5TmV3ICk7Ci0gIH0KLSAgY3VyciA9IHBxLT5zaXplOwotICBpZigg
KysgcHEtPnNpemUgPj0gcHEtPm1heCApIHsKLSAgICBQUWtleSAqc2F2ZUtleT0gcHEtPmtleXM7
Ci0KLSAgICAvKiBJZiB0aGUgaGVhcCBvdmVyZmxvd3MsIGRvdWJsZSBpdHMgc2l6ZS4gKi8KLSAg
ICBwcS0+bWF4IDw8PSAxOwotICAgIHBxLT5rZXlzID0gKFBRSGVhcEtleSAqKW1lbVJlYWxsb2Mo
IHBxLT5rZXlzLCAKLQkgCSAgICAgICAgICAgICAgICAgICAgICAgIChzaXplX3QpCi0JICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBxLT5tYXggKiBzaXplb2YoIHBxLT5rZXlzWzBd
ICkpKTsKLSAgICBpZiAocHEtPmtleXMgPT0gTlVMTCkgewkKLSAgICAgICBwcS0+a2V5cyA9IHNh
dmVLZXk7CS8qIHJlc3RvcmUgcHRyIHRvIGZyZWUgdXBvbiByZXR1cm4gKi8KLSAgICAgICByZXR1
cm4gTE9OR19NQVg7Ci0gICAgfQotICB9Ci0gIGFzc2VydChjdXJyICE9IExPTkdfTUFYKTsJCi0g
IHBxLT5rZXlzW2N1cnJdID0ga2V5TmV3OwotCi0gIC8qIE5lZ2F0aXZlIGhhbmRsZXMgaW5kZXgg
dGhlIHNvcnRlZCBhcnJheS4gKi8KLSAgcmV0dXJuIC0oY3VycisxKTsKLX0KLQotLyogcmVhbGx5
IF9fZ2xfcHFTb3J0RXh0cmFjdE1pbiAqLwotUFFrZXkgcHFFeHRyYWN0TWluKCBQcmlvcml0eVEg
KnBxICkKLXsKLSAgUFFrZXkgc29ydE1pbiwgaGVhcE1pbjsKLQotICBpZiggcHEtPnNpemUgPT0g
MCApIHsKLSAgICByZXR1cm4gX19nbF9wcUhlYXBFeHRyYWN0TWluKCBwcS0+aGVhcCApOwotICB9
Ci0gIHNvcnRNaW4gPSAqKHBxLT5vcmRlcltwcS0+c2l6ZS0xXSk7Ci0gIGlmKCAhIF9fZ2xfcHFI
ZWFwSXNFbXB0eSggcHEtPmhlYXAgKSkgewotICAgIGhlYXBNaW4gPSBfX2dsX3BxSGVhcE1pbmlt
dW0oIHBxLT5oZWFwICk7Ci0gICAgaWYoIExFUSggaGVhcE1pbiwgc29ydE1pbiApKSB7Ci0gICAg
ICByZXR1cm4gX19nbF9wcUhlYXBFeHRyYWN0TWluKCBwcS0+aGVhcCApOwotICAgIH0KLSAgfQot
ICBkbyB7Ci0gICAgLS0gcHEtPnNpemU7Ci0gIH0gd2hpbGUoIHBxLT5zaXplID4gMCAmJiAqKHBx
LT5vcmRlcltwcS0+c2l6ZS0xXSkgPT0gTlVMTCApOwotICByZXR1cm4gc29ydE1pbjsKLX0KLQot
LyogcmVhbGx5IF9fZ2xfcHFTb3J0TWluaW11bSAqLwotUFFrZXkgcHFNaW5pbXVtKCBQcmlvcml0
eVEgKnBxICkKLXsKLSAgUFFrZXkgc29ydE1pbiwgaGVhcE1pbjsKLQotICBpZiggcHEtPnNpemUg
PT0gMCApIHsKLSAgICByZXR1cm4gX19nbF9wcUhlYXBNaW5pbXVtKCBwcS0+aGVhcCApOwotICB9
Ci0gIHNvcnRNaW4gPSAqKHBxLT5vcmRlcltwcS0+c2l6ZS0xXSk7Ci0gIGlmKCAhIF9fZ2xfcHFI
ZWFwSXNFbXB0eSggcHEtPmhlYXAgKSkgewotICAgIGhlYXBNaW4gPSBfX2dsX3BxSGVhcE1pbmlt
dW0oIHBxLT5oZWFwICk7Ci0gICAgaWYoIExFUSggaGVhcE1pbiwgc29ydE1pbiApKSB7Ci0gICAg
ICByZXR1cm4gaGVhcE1pbjsKLSAgICB9Ci0gIH0KLSAgcmV0dXJuIHNvcnRNaW47Ci19Ci0KLS8q
IHJlYWxseSBfX2dsX3BxU29ydElzRW1wdHkgKi8KLWludCBwcUlzRW1wdHkoIFByaW9yaXR5USAq
cHEgKQotewotICByZXR1cm4gKHBxLT5zaXplID09IDApICYmIF9fZ2xfcHFIZWFwSXNFbXB0eSgg
cHEtPmhlYXAgKTsKLX0KLQotLyogcmVhbGx5IF9fZ2xfcHFTb3J0RGVsZXRlICovCi12b2lkIHBx
RGVsZXRlKCBQcmlvcml0eVEgKnBxLCBQUWhhbmRsZSBjdXJyICkKLXsKLSAgaWYoIGN1cnIgPj0g
MCApIHsKLSAgICBfX2dsX3BxSGVhcERlbGV0ZSggcHEtPmhlYXAsIGN1cnIgKTsKLSAgICByZXR1
cm47Ci0gIH0KLSAgY3VyciA9IC0oY3VycisxKTsKLSAgYXNzZXJ0KCBjdXJyIDwgcHEtPm1heCAm
JiBwcS0+a2V5c1tjdXJyXSAhPSBOVUxMICk7Ci0KLSAgcHEtPmtleXNbY3Vycl0gPSBOVUxMOwot
ICB3aGlsZSggcHEtPnNpemUgPiAwICYmICoocHEtPm9yZGVyW3BxLT5zaXplLTFdKSA9PSBOVUxM
ICkgewotICAgIC0tIHBxLT5zaXplOwotICB9Ci19CmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJk
cGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlxLmggYi9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xp
YnRlc3MvcHJpb3JpdHlxLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3YWE3MGIu
LjAwMDAwMDAKLS0tIGEvV2ViQ29yZS90aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3ByaW9yaXR5cS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAgQEAKLS8qCi0qKiBMaWNlbnNlIEFwcGxpY2Fi
aWxpdHkuIEV4Y2VwdCB0byB0aGUgZXh0ZW50IHBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUKLSoq
IG1hZGUgc3ViamVjdCB0byBhbiBhbHRlcm5hdGl2ZSBsaWNlbnNlIGFzIHBlcm1pdHRlZCBpbiB0
aGUgU0dJIEZyZWUKLSoqIFNvZnR3YXJlIExpY2Vuc2UgQiwgVmVyc2lvbiAxLjEgKHRoZSAiTGlj
ZW5zZSIpLCB0aGUgY29udGVudHMgb2YgdGhpcwotKiogZmlsZSBhcmUgc3ViamVjdCBvbmx5IHRv
IHRoZSBwcm92aXNpb25zIG9mIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG5vdCB1c2UKLSoqIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFp
biBhIGNvcHkKLSoqIG9mIHRoZSBMaWNlbnNlIGF0IFNpbGljb24gR3JhcGhpY3MsIEluYy4sIGF0
dG46IExlZ2FsIFNlcnZpY2VzLCAxNjAwCi0qKiBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRh
aW4gVmlldywgQ0EgOTQwNDMtMTM1MSwgb3IgYXQ6Ci0qKiAKLSoqIGh0dHA6Ly9vc3Muc2dpLmNv
bS9wcm9qZWN0cy9GcmVlQgotKiogCi0qKiBOb3RlIHRoYXQsIGFzIHByb3ZpZGVkIGluIHRoZSBM
aWNlbnNlLCB0aGUgU29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSoqICJBUyBJUyIgYmFz
aXMsIHdpdGggQUxMIEVYUFJFU1MgQU5EIElNUExJRUQgV0FSUkFOVElFUyBBTkQgQ09ORElUSU9O
UwotKiogRElTQ0xBSU1FRCwgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBJTVBM
SUVEIFdBUlJBTlRJRVMgQU5ECi0qKiBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgU0FU
SVNGQUNUT1JZIFFVQUxJVFksIEZJVE5FU1MgRk9SIEEKLSoqIFBBUlRJQ1VMQVIgUFVSUE9TRSwg
QU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0qKiAKLSoqIE9yaWdpbmFsIENvZGUuIFRoZSBPcmlnaW5h
bCBDb2RlIGlzOiBPcGVuR0wgU2FtcGxlIEltcGxlbWVudGF0aW9uLAotKiogVmVyc2lvbiAxLjIu
MSwgcmVsZWFzZWQgSmFudWFyeSAyNiwgMjAwMCwgZGV2ZWxvcGVkIGJ5IFNpbGljb24gR3JhcGhp
Y3MsCi0qKiBJbmMuIFRoZSBPcmlnaW5hbCBDb2RlIGlzIENvcHlyaWdodCAoYykgMTk5MS0yMDAw
IFNpbGljb24gR3JhcGhpY3MsIEluYy4KLSoqIENvcHlyaWdodCBpbiBhbnkgcG9ydGlvbnMgY3Jl
YXRlZCBieSB0aGlyZCBwYXJ0aWVzIGlzIGFzIGluZGljYXRlZAotKiogZWxzZXdoZXJlIGhlcmVp
bi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSoqIAotKiogQWRkaXRpb25hbCBOb3RpY2UgUHJvdmlz
aW9uczogVGhlIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVyZmFjZXMKLSoqIGVzdGFibGlz
aGVkIGJ5IFNHSSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBPcmlnaW5hbCBDb2RlIGFyZSBUaGUK
LSoqIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW06IEEgU3BlY2lmaWNhdGlvbiAoVmVyc2lvbiAx
LjIuMSksIHJlbGVhc2VkCi0qKiBBcHJpbCAxLCAxOTk5OyBUaGUgT3BlbkdMKFIpIEdyYXBoaWNz
IFN5c3RlbSBVdGlsaXR5IExpYnJhcnkgKFZlcnNpb24KLSoqIDEuMyksIHJlbGVhc2VkIE5vdmVt
YmVyIDQsIDE5OTg7IGFuZCBPcGVuR0woUikgR3JhcGhpY3Mgd2l0aCB0aGUgWAotKiogV2luZG93
IFN5c3RlbShSKSAoVmVyc2lvbiAxLjMpLCByZWxlYXNlZCBPY3RvYmVyIDE5LCAxOTk4LiBUaGlz
IHNvZnR3YXJlCi0qKiB3YXMgY3JlYXRlZCB1c2luZyB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4y
LjEgU2FtcGxlIEltcGxlbWVudGF0aW9uCi0qKiBwdWJsaXNoZWQgYnkgU0dJLCBidXQgaGFzIG5v
dCBiZWVuIGluZGVwZW5kZW50bHkgdmVyaWZpZWQgYXMgYmVpbmcKLSoqIGNvbXBsaWFudCB3aXRo
IHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTcGVjaWZpY2F0aW9uLgotKioKLSovCi0vKgot
KiogQXV0aG9yOiBFcmljIFZlYWNoLCBKdWx5IDE5OTQuCi0qKgotKiogJERhdGUkICRSZXZpc2lv
biQKLSoqICRIZWFkZXI6IC8vZGVwb3QvbWFpbi9nZngvbGliL2dsdS9saWJ0ZXNzL3ByaW9yaXR5
cS5oIzUgJAotKi8KLQotI2lmbmRlZiBfX3ByaW9yaXR5cV9zb3J0X2hfCi0jZGVmaW5lIF9fcHJp
b3JpdHlxX3NvcnRfaF8KLQotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvcHJpb3Jp
dHlxLWhlYXAuaCIKLQotI3VuZGVmIFBRa2V5Ci0jdW5kZWYgUFFoYW5kbGUKLSN1bmRlZiBQcmlv
cml0eVEKLSN1bmRlZiBwcU5ld1ByaW9yaXR5UQotI3VuZGVmIHBxRGVsZXRlUHJpb3JpdHlRCi0j
dW5kZWYgcHFJbml0Ci0jdW5kZWYgcHFJbnNlcnQKLSN1bmRlZiBwcU1pbmltdW0KLSN1bmRlZiBw
cUV4dHJhY3RNaW4KLSN1bmRlZiBwcURlbGV0ZQotI3VuZGVmIHBxSXNFbXB0eQotCi0vKiBVc2Ug
I2RlZmluZSdzIHNvIHRoYXQgYW5vdGhlciBoZWFwIGltcGxlbWVudGF0aW9uIGNhbiB1c2UgdGhp
cyBvbmUgKi8KLQotI2RlZmluZSBQUWtleQkJCVBRU29ydEtleQotI2RlZmluZSBQUWhhbmRsZQkJ
UFFTb3J0SGFuZGxlCi0jZGVmaW5lIFByaW9yaXR5UQkJUHJpb3JpdHlRU29ydAotCi0jZGVmaW5l
IHBxTmV3UHJpb3JpdHlRKGxlcSkJX19nbF9wcVNvcnROZXdQcmlvcml0eVEobGVxKQotI2RlZmlu
ZSBwcURlbGV0ZVByaW9yaXR5UShwcSkJX19nbF9wcVNvcnREZWxldGVQcmlvcml0eVEocHEpCi0K
LS8qIFRoZSBiYXNpYyBvcGVyYXRpb25zIGFyZSBpbnNlcnRpb24gb2YgYSBuZXcga2V5IChwcUlu
c2VydCksCi0gKiBhbmQgZXhhbWluYXRpb24vZXh0cmFjdGlvbiBvZiBhIGtleSB3aG9zZSB2YWx1
ZSBpcyBtaW5pbXVtCi0gKiAocHFNaW5pbXVtL3BxRXh0cmFjdE1pbikuICBEZWxldGlvbiBpcyBh
bHNvIGFsbG93ZWQgKHBxRGVsZXRlKTsKLSAqIGZvciB0aGlzIHB1cnBvc2UgcHFJbnNlcnQgcmV0
dXJucyBhICJoYW5kbGUiIHdoaWNoIGlzIHN1cHBsaWVkCi0gKiBhcyB0aGUgYXJndW1lbnQuCi0g
KgotICogQW4gaW5pdGlhbCBoZWFwIG1heSBiZSBjcmVhdGVkIGVmZmljaWVudGx5IGJ5IGNhbGxp
bmcgcHFJbnNlcnQKLSAqIHJlcGVhdGVkbHksIHRoZW4gY2FsbGluZyBwcUluaXQuICBJbiBhbnkg
Y2FzZSBwcUluaXQgbXVzdCBiZSBjYWxsZWQKLSAqIGJlZm9yZSBhbnkgb3BlcmF0aW9ucyBvdGhl
ciB0aGFuIHBxSW5zZXJ0IGFyZSB1c2VkLgotICoKLSAqIElmIHRoZSBoZWFwIGlzIGVtcHR5LCBw
cU1pbmltdW0vcHFFeHRyYWN0TWluIHdpbGwgcmV0dXJuIGEgTlVMTCBrZXkuCi0gKiBUaGlzIG1h
eSBhbHNvIGJlIHRlc3RlZCB3aXRoIHBxSXNFbXB0eS4KLSAqLwotI2RlZmluZSBwcUluaXQocHEp
CQlfX2dsX3BxU29ydEluaXQocHEpCi0jZGVmaW5lIHBxSW5zZXJ0KHBxLGtleSkJX19nbF9wcVNv
cnRJbnNlcnQocHEsa2V5KQotI2RlZmluZSBwcU1pbmltdW0ocHEpCQlfX2dsX3BxU29ydE1pbmlt
dW0ocHEpCi0jZGVmaW5lIHBxRXh0cmFjdE1pbihwcSkJX19nbF9wcVNvcnRFeHRyYWN0TWluKHBx
KQotI2RlZmluZSBwcURlbGV0ZShwcSxoYW5kbGUpCV9fZ2xfcHFTb3J0RGVsZXRlKHBxLGhhbmRs
ZSkKLSNkZWZpbmUgcHFJc0VtcHR5KHBxKQkJX19nbF9wcVNvcnRJc0VtcHR5KHBxKQotCi0KLS8q
IFNpbmNlIHdlIHN1cHBvcnQgZGVsZXRpb24gdGhlIGRhdGEgc3RydWN0dXJlIGlzIGEgbGl0dGxl
IG1vcmUKLSAqIGNvbXBsaWNhdGVkIHRoYW4gYW4gb3JkaW5hcnkgaGVhcC4gICJub2RlcyIgaXMg
dGhlIGhlYXAgaXRzZWxmOwotICogYWN0aXZlIG5vZGVzIGFyZSBzdG9yZWQgaW4gdGhlIHJhbmdl
IDEuLnBxLT5zaXplLiAgV2hlbiB0aGUKLSAqIGhlYXAgZXhjZWVkcyBpdHMgYWxsb2NhdGVkIHNp
emUgKHBxLT5tYXgpLCBpdHMgc2l6ZSBkb3VibGVzLgotICogVGhlIGNoaWxkcmVuIG9mIG5vZGUg
aSBhcmUgbm9kZXMgMmkgYW5kIDJpKzEuCi0gKgotICogRWFjaCBub2RlIHN0b3JlcyBhbiBpbmRl
eCBpbnRvIGFuIGFycmF5ICJoYW5kbGVzIi4gIEVhY2ggaGFuZGxlCi0gKiBzdG9yZXMgYSBrZXks
IHBsdXMgYSBwb2ludGVyIGJhY2sgdG8gdGhlIG5vZGUgd2hpY2ggY3VycmVudGx5Ci0gKiByZXBy
ZXNlbnRzIHRoYXQga2V5IChpZS4gbm9kZXNbaGFuZGxlc1tpXS5ub2RlXS5oYW5kbGUgPT0gaSku
Ci0gKi8KLQotdHlwZWRlZiBQUUhlYXBLZXkgUFFrZXk7Ci10eXBlZGVmIFBRSGVhcEhhbmRsZSBQ
UWhhbmRsZTsKLXR5cGVkZWYgc3RydWN0IFByaW9yaXR5USBQcmlvcml0eVE7Ci0KLXN0cnVjdCBQ
cmlvcml0eVEgewotICBQcmlvcml0eVFIZWFwCSpoZWFwOwotICBQUWtleQkJKmtleXM7Ci0gIFBR
a2V5CQkqKm9yZGVyOwotICBQUWhhbmRsZQlzaXplLCBtYXg7Ci0gIGludAkJaW5pdGlhbGl6ZWQ7
Ci0gIGludAkJKCpsZXEpKFBRa2V5IGtleTEsIFBRa2V5IGtleTIpOwotfTsKLSAgCi1Qcmlvcml0
eVEJKnBxTmV3UHJpb3JpdHlRKCBpbnQgKCpsZXEpKFBRa2V5IGtleTEsIFBRa2V5IGtleTIpICk7
Ci12b2lkCQlwcURlbGV0ZVByaW9yaXR5USggUHJpb3JpdHlRICpwcSApOwotCi1pbnQJCXBxSW5p
dCggUHJpb3JpdHlRICpwcSApOwotUFFoYW5kbGUJcHFJbnNlcnQoIFByaW9yaXR5USAqcHEsIFBR
a2V5IGtleSApOwotUFFrZXkJCXBxRXh0cmFjdE1pbiggUHJpb3JpdHlRICpwcSApOwotdm9pZAkJ
cHFEZWxldGUoIFByaW9yaXR5USAqcHEsIFBRaGFuZGxlIGhhbmRsZSApOwotCi1QUWtleQkJcHFN
aW5pbXVtKCBQcmlvcml0eVEgKnBxICk7Ci1pbnQJCXBxSXNFbXB0eSggUHJpb3JpdHlRICpwcSAp
OwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9y
ZW5kZXIuYyBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9yZW5kZXIuYwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGU5NDRhMi4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3Ro
aXJkcGFydHkvZ2x1L2xpYnRlc3MvcmVuZGVyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MDUgKzAs
MCBAQAotLyoKLSoqIExpY2Vuc2UgQXBwbGljYWJpbGl0eS4gRXhjZXB0IHRvIHRoZSBleHRlbnQg
cG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZQotKiogbWFkZSBzdWJqZWN0IHRvIGFuIGFsdGVybmF0
aXZlIGxpY2Vuc2UgYXMgcGVybWl0dGVkIGluIHRoZSBTR0kgRnJlZQotKiogU29mdHdhcmUgTGlj
ZW5zZSBCLCBWZXJzaW9uIDEuMSAodGhlICJMaWNlbnNlIiksIHRoZSBjb250ZW50cyBvZiB0aGlz
Ci0qKiBmaWxlIGFyZSBzdWJqZWN0IG9ubHkgdG8gdGhlIHByb3Zpc2lvbnMgb2YgdGhlIExpY2Vu
c2UuIFlvdSBtYXkgbm90IHVzZQotKiogdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdp
dGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weQotKiogb2YgdGhlIExpY2Vuc2Ug
YXQgU2lsaWNvbiBHcmFwaGljcywgSW5jLiwgYXR0bjogTGVnYWwgU2VydmljZXMsIDE2MDAKLSoq
IEFtcGhpdGhlYXRyZSBQYXJrd2F5LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0My0xMzUxLCBvciBh
dDoKLSoqIAotKiogaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3RzL0ZyZWVCCi0qKiAKLSoqIE5v
dGUgdGhhdCwgYXMgcHJvdmlkZWQgaW4gdGhlIExpY2Vuc2UsIHRoZSBTb2Z0d2FyZSBpcyBkaXN0
cmlidXRlZCBvbiBhbgotKiogIkFTIElTIiBiYXNpcywgd2l0aCBBTEwgRVhQUkVTUyBBTkQgSU1Q
TElFRCBXQVJSQU5USUVTIEFORCBDT05ESVRJT05TCi0qKiBESVNDTEFJTUVELCBJTkNMVURJTkcs
IFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIElNUExJRUQgV0FSUkFOVElFUyBBTkQKLSoqIENPTkRJ
VElPTlMgT0YgTUVSQ0hBTlRBQklMSVRZLCBTQVRJU0ZBQ1RPUlkgUVVBTElUWSwgRklUTkVTUyBG
T1IgQQotKiogUEFSVElDVUxBUiBQVVJQT1NFLCBBTkQgTk9OLUlORlJJTkdFTUVOVC4KLSoqIAot
KiogT3JpZ2luYWwgQ29kZS4gVGhlIE9yaWdpbmFsIENvZGUgaXM6IE9wZW5HTCBTYW1wbGUgSW1w
bGVtZW50YXRpb24sCi0qKiBWZXJzaW9uIDEuMi4xLCByZWxlYXNlZCBKYW51YXJ5IDI2LCAyMDAw
LCBkZXZlbG9wZWQgYnkgU2lsaWNvbiBHcmFwaGljcywKLSoqIEluYy4gVGhlIE9yaWdpbmFsIENv
ZGUgaXMgQ29weXJpZ2h0IChjKSAxOTkxLTIwMDAgU2lsaWNvbiBHcmFwaGljcywgSW5jLgotKiog
Q29weXJpZ2h0IGluIGFueSBwb3J0aW9ucyBjcmVhdGVkIGJ5IHRoaXJkIHBhcnRpZXMgaXMgYXMg
aW5kaWNhdGVkCi0qKiBlbHNld2hlcmUgaGVyZWluLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotKiog
Ci0qKiBBZGRpdGlvbmFsIE5vdGljZSBQcm92aXNpb25zOiBUaGUgYXBwbGljYXRpb24gcHJvZ3Jh
bW1pbmcgaW50ZXJmYWNlcwotKiogZXN0YWJsaXNoZWQgYnkgU0dJIGluIGNvbmp1bmN0aW9uIHdp
dGggdGhlIE9yaWdpbmFsIENvZGUgYXJlIFRoZQotKiogT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3Rl
bTogQSBTcGVjaWZpY2F0aW9uIChWZXJzaW9uIDEuMi4xKSwgcmVsZWFzZWQKLSoqIEFwcmlsIDEs
IDE5OTk7IFRoZSBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtIFV0aWxpdHkgTGlicmFyeSAoVmVy
c2lvbgotKiogMS4zKSwgcmVsZWFzZWQgTm92ZW1iZXIgNCwgMTk5ODsgYW5kIE9wZW5HTChSKSBH
cmFwaGljcyB3aXRoIHRoZSBYCi0qKiBXaW5kb3cgU3lzdGVtKFIpIChWZXJzaW9uIDEuMyksIHJl
bGVhc2VkIE9jdG9iZXIgMTksIDE5OTguIFRoaXMgc29mdHdhcmUKLSoqIHdhcyBjcmVhdGVkIHVz
aW5nIHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTYW1wbGUgSW1wbGVtZW50YXRpb24KLSoq
IHB1Ymxpc2hlZCBieSBTR0ksIGJ1dCBoYXMgbm90IGJlZW4gaW5kZXBlbmRlbnRseSB2ZXJpZmll
ZCBhcyBiZWluZwotKiogY29tcGxpYW50IHdpdGggdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4x
IFNwZWNpZmljYXRpb24uCi0qKgotKi8KLS8qCi0qKiBBdXRob3I6IEVyaWMgVmVhY2gsIEp1bHkg
MTk5NC4KLSoqCi0qKiAkRGF0ZSQgJFJldmlzaW9uJAotKiogJEhlYWRlcjogLy9kZXBvdC9tYWlu
L2dmeC9saWIvZ2x1L2xpYnRlc3MvcmVuZGVyLmMjNSAkCi0qLwotCi0jaW5jbHVkZSA8YXNzZXJ0
Lmg+Ci0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvZ2x1b3Mu
aCIKLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lc2guaCIKLSNpbmNsdWRlICJ0
aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3JlbmRlci5oIgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1
L2xpYnRlc3MvdGVzcy5oIgotCi0jZGVmaW5lIFRSVUUgMQotI2RlZmluZSBGQUxTRSAwCi0KLS8q
IFRoaXMgc3RydWN0dXJlIHJlbWVtYmVycyB0aGUgaW5mb3JtYXRpb24gd2UgbmVlZCBhYm91dCBh
IHByaW1pdGl2ZQotICogdG8gYmUgYWJsZSB0byByZW5kZXIgaXQgbGF0ZXIsIG9uY2Ugd2UgaGF2
ZSBkZXRlcm1pbmVkIHdoaWNoCi0gKiBwcmltaXRpdmUgaXMgYWJsZSB0byB1c2UgdGhlIG1vc3Qg
dHJpYW5nbGVzLgotICovCi1zdHJ1Y3QgRmFjZUNvdW50IHsKLSAgbG9uZwkJc2l6ZTsJCS8qIG51
bWJlciBvZiB0cmlhbmdsZXMgdXNlZCAqLwotICBHTFVoYWxmRWRnZQkqZVN0YXJ0OwkvKiBlZGdl
IHdoZXJlIHRoaXMgcHJpbWl0aXZlIHN0YXJ0cyAqLwotICB2b2lkCQkoKnJlbmRlcikoR0xVdGVz
c2VsYXRvciAqLCBHTFVoYWxmRWRnZSAqLCBsb25nKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLyogcm91dGluZSB0byByZW5kZXIgdGhpcyBwcmltaXRpdmUgKi8KLX07Ci0KLXN0
YXRpYyBzdHJ1Y3QgRmFjZUNvdW50IE1heGltdW1GYW4oIEdMVWhhbGZFZGdlICplT3JpZyApOwot
c3RhdGljIHN0cnVjdCBGYWNlQ291bnQgTWF4aW11bVN0cmlwKCBHTFVoYWxmRWRnZSAqZU9yaWcg
KTsKLQotc3RhdGljIHZvaWQgUmVuZGVyRmFuKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFVoYWxm
RWRnZSAqZVN0YXJ0LCBsb25nIHNpemUgKTsKLXN0YXRpYyB2b2lkIFJlbmRlclN0cmlwKCBHTFV0
ZXNzZWxhdG9yICp0ZXNzLCBHTFVoYWxmRWRnZSAqZVN0YXJ0LCBsb25nIHNpemUgKTsKLXN0YXRp
YyB2b2lkIFJlbmRlclRyaWFuZ2xlKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFVoYWxmRWRnZSAq
ZVN0YXJ0LAotCQkJICAgIGxvbmcgc2l6ZSApOwotCi1zdGF0aWMgdm9pZCBSZW5kZXJNYXhpbXVt
RmFjZUdyb3VwKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFVmYWNlICpmT3JpZyApOwotc3RhdGlj
IHZvaWQgUmVuZGVyTG9uZWx5VHJpYW5nbGVzKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFVmYWNl
ICpoZWFkICk7Ci0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIFN0cmlwcyBhbmQgRmFu
cyBkZWNvbXBvc2l0aW9uICoqKioqKioqKioqKioqKioqKi8KLQotLyogX19nbF9yZW5kZXJNZXNo
KCB0ZXNzLCBtZXNoICkgdGFrZXMgYSBtZXNoIGFuZCBicmVha3MgaXQgaW50byB0cmlhbmdsZQot
ICogZmFucywgc3RyaXBzLCBhbmQgc2VwYXJhdGUgdHJpYW5nbGVzLiAgQSBzdWJzdGFudGlhbCBl
ZmZvcnQgaXMgbWFkZQotICogdG8gdXNlIGFzIGZldyByZW5kZXJpbmcgcHJpbWl0aXZlcyBhcyBw
b3NzaWJsZSAoaWUuIHRvIG1ha2UgdGhlIGZhbnMKLSAqIGFuZCBzdHJpcHMgYXMgbGFyZ2UgYXMg
cG9zc2libGUpLgotICoKLSAqIFRoZSByZW5kZXJpbmcgb3V0cHV0IGlzIHByb3ZpZGVkIGFzIGNh
bGxiYWNrcyAoc2VlIHRoZSBhcGkpLgotICovCi12b2lkIF9fZ2xfcmVuZGVyTWVzaCggR0xVdGVz
c2VsYXRvciAqdGVzcywgR0xVbWVzaCAqbWVzaCApCi17Ci0gIEdMVWZhY2UgKmY7Ci0KLSAgLyog
TWFrZSBhIGxpc3Qgb2Ygc2VwYXJhdGUgdHJpYW5nbGVzIHNvIHdlIGNhbiByZW5kZXIgdGhlbSBh
bGwgYXQgb25jZSAqLwotICB0ZXNzLT5sb25lbHlUcmlMaXN0ID0gTlVMTDsKLQotICBmb3IoIGYg
PSBtZXNoLT5mSGVhZC5uZXh0OyBmICE9ICZtZXNoLT5mSGVhZDsgZiA9IGYtPm5leHQgKSB7Ci0g
ICAgZi0+bWFya2VkID0gRkFMU0U7Ci0gIH0KLSAgZm9yKCBmID0gbWVzaC0+ZkhlYWQubmV4dDsg
ZiAhPSAmbWVzaC0+ZkhlYWQ7IGYgPSBmLT5uZXh0ICkgewotCi0gICAgLyogV2UgZXhhbWluZSBh
bGwgZmFjZXMgaW4gYW4gYXJiaXRyYXJ5IG9yZGVyLiAgV2hlbmV2ZXIgd2UgZmluZAotICAgICAq
IGFuIHVucHJvY2Vzc2VkIGZhY2UgRiwgd2Ugb3V0cHV0IGEgZ3JvdXAgb2YgZmFjZXMgaW5jbHVk
aW5nIEYKLSAgICAgKiB3aG9zZSBzaXplIGlzIG1heGltdW0uCi0gICAgICovCi0gICAgaWYoIGYt
Pmluc2lkZSAmJiAhIGYtPm1hcmtlZCApIHsKLSAgICAgIFJlbmRlck1heGltdW1GYWNlR3JvdXAo
IHRlc3MsIGYgKTsKLSAgICAgIGFzc2VydCggZi0+bWFya2VkICk7Ci0gICAgfQotICB9Ci0gIGlm
KCB0ZXNzLT5sb25lbHlUcmlMaXN0ICE9IE5VTEwgKSB7Ci0gICAgUmVuZGVyTG9uZWx5VHJpYW5n
bGVzKCB0ZXNzLCB0ZXNzLT5sb25lbHlUcmlMaXN0ICk7Ci0gICAgdGVzcy0+bG9uZWx5VHJpTGlz
dCA9IE5VTEw7Ci0gIH0KLX0KLQotCi1zdGF0aWMgdm9pZCBSZW5kZXJNYXhpbXVtRmFjZUdyb3Vw
KCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFVmYWNlICpmT3JpZyApCi17Ci0gIC8qIFdlIHdhbnQg
dG8gZmluZCB0aGUgbGFyZ2VzdCB0cmlhbmdsZSBmYW4gb3Igc3RyaXAgb2YgdW5tYXJrZWQgZmFj
ZXMKLSAgICogd2hpY2ggaW5jbHVkZXMgdGhlIGdpdmVuIGZhY2UgZk9yaWcuICBUaGVyZSBhcmUg
MyBwb3NzaWJsZSBmYW5zCi0gICAqIHBhc3NpbmcgdGhyb3VnaCBmT3JpZyAob25lIGNlbnRlcmVk
IGF0IGVhY2ggdmVydGV4KSwgYW5kIDMgcG9zc2libGUKLSAgICogc3RyaXBzIChvbmUgZm9yIGVh
Y2ggQ0NXIHBlcm11dGF0aW9uIG9mIHRoZSB2ZXJ0aWNlcykuICBPdXIgc3RyYXRlZ3kKLSAgICog
aXMgdG8gdHJ5IGFsbCBvZiB0aGVzZSwgYW5kIHRha2UgdGhlIHByaW1pdGl2ZSB3aGljaCB1c2Vz
IHRoZSBtb3N0Ci0gICAqIHRyaWFuZ2xlcyAoYSBncmVlZHkgYXBwcm9hY2gpLgotICAgKi8KLSAg
R0xVaGFsZkVkZ2UgKmUgPSBmT3JpZy0+YW5FZGdlOwotICBzdHJ1Y3QgRmFjZUNvdW50IG1heCwg
bmV3RmFjZTsKLQotICBtYXguc2l6ZSA9IDE7Ci0gIG1heC5lU3RhcnQgPSBlOwotICBtYXgucmVu
ZGVyID0gJlJlbmRlclRyaWFuZ2xlOwotCi0gIGlmKCAhIHRlc3MtPmZsYWdCb3VuZGFyeSApIHsK
LSAgICBuZXdGYWNlID0gTWF4aW11bUZhbiggZSApOyBpZiggbmV3RmFjZS5zaXplID4gbWF4LnNp
emUgKSB7IG1heCA9IG5ld0ZhY2U7IH0KLSAgICBuZXdGYWNlID0gTWF4aW11bUZhbiggZS0+TG5l
eHQgKTsgaWYoIG5ld0ZhY2Uuc2l6ZSA+IG1heC5zaXplICkgeyBtYXggPSBuZXdGYWNlOyB9Ci0g
ICAgbmV3RmFjZSA9IE1heGltdW1GYW4oIGUtPkxwcmV2ICk7IGlmKCBuZXdGYWNlLnNpemUgPiBt
YXguc2l6ZSApIHsgbWF4ID0gbmV3RmFjZTsgfQotCi0gICAgbmV3RmFjZSA9IE1heGltdW1TdHJp
cCggZSApOyBpZiggbmV3RmFjZS5zaXplID4gbWF4LnNpemUgKSB7IG1heCA9IG5ld0ZhY2U7IH0K
LSAgICBuZXdGYWNlID0gTWF4aW11bVN0cmlwKCBlLT5MbmV4dCApOyBpZiggbmV3RmFjZS5zaXpl
ID4gbWF4LnNpemUgKSB7IG1heCA9IG5ld0ZhY2U7IH0KLSAgICBuZXdGYWNlID0gTWF4aW11bVN0
cmlwKCBlLT5McHJldiApOyBpZiggbmV3RmFjZS5zaXplID4gbWF4LnNpemUgKSB7IG1heCA9IG5l
d0ZhY2U7IH0KLSAgfQotICAoKihtYXgucmVuZGVyKSkoIHRlc3MsIG1heC5lU3RhcnQsIG1heC5z
aXplICk7Ci19Ci0KLQotLyogTWFjcm9zIHdoaWNoIGtlZXAgdHJhY2sgb2YgZmFjZXMgd2UgaGF2
ZSBtYXJrZWQgdGVtcG9yYXJpbHksIGFuZCBhbGxvdwotICogdXMgdG8gYmFja3RyYWNrIHdoZW4g
bmVjZXNzYXJ5LiAgV2l0aCB0cmlhbmdsZSBmYW5zLCB0aGlzIGlzIG5vdAotICogcmVhbGx5IG5l
Y2Vzc2FyeSwgc2luY2UgdGhlIG9ubHkgYXdrd2FyZCBjYXNlIGlzIGEgbG9vcCBvZiB0cmlhbmds
ZXMKLSAqIGFyb3VuZCBhIHNpbmdsZSBvcmlnaW4gdmVydGV4LiAgSG93ZXZlciB3aXRoIHN0cmlw
cyB0aGUgc2l0dWF0aW9uIGlzCi0gKiBtb3JlIGNvbXBsaWNhdGVkLCBhbmQgd2UgbmVlZCBhIGdl
bmVyYWwgdHJhY2tpbmcgbWV0aG9kIGxpa2UgdGhlCi0gKiBvbmUgaGVyZS4KLSAqLwotI2RlZmlu
ZSBNYXJrZWQoZikJKCEgKGYpLT5pbnNpZGUgfHwgKGYpLT5tYXJrZWQpCi0KLSNkZWZpbmUgQWRk
VG9UcmFpbChmLHQpCSgoZiktPnRyYWlsID0gKHQpLCAodCkgPSAoZiksIChmKS0+bWFya2VkID0g
VFJVRSkKLQotI2RlZmluZSBGcmVlVHJhaWwodCkJaWYoIDEgKSB7IFwKLQkJCSAgd2hpbGUoICh0
KSAhPSBOVUxMICkgeyBcCi0JCQkgICAgKHQpLT5tYXJrZWQgPSBGQUxTRTsgdCA9ICh0KS0+dHJh
aWw7IFwKLQkJCSAgfSBcCi0JCQl9IGVsc2UgLyogYWJzb3JiIHRyYWlsaW5nIHNlbWljb2xvbiAq
LwotCi0KLQotc3RhdGljIHN0cnVjdCBGYWNlQ291bnQgTWF4aW11bUZhbiggR0xVaGFsZkVkZ2Ug
KmVPcmlnICkKLXsKLSAgLyogZU9yaWctPkxmYWNlIGlzIHRoZSBmYWNlIHdlIHdhbnQgdG8gcmVu
ZGVyLiAgV2Ugd2FudCB0byBmaW5kIHRoZSBzaXplCi0gICAqIG9mIGEgbWF4aW1hbCBmYW4gYXJv
dW5kIGVPcmlnLT5PcmcuICBUbyBkbyB0aGlzIHdlIGp1c3Qgd2FsayBhcm91bmQKLSAgICogdGhl
IG9yaWdpbiB2ZXJ0ZXggYXMgZmFyIGFzIHBvc3NpYmxlIGluIGJvdGggZGlyZWN0aW9ucy4KLSAg
ICovCi0gIHN0cnVjdCBGYWNlQ291bnQgbmV3RmFjZSA9IHsgMCwgTlVMTCwgJlJlbmRlckZhbiB9
OwotICBHTFVmYWNlICp0cmFpbCA9IE5VTEw7Ci0gIEdMVWhhbGZFZGdlICplOwotCi0gIGZvcigg
ZSA9IGVPcmlnOyAhIE1hcmtlZCggZS0+TGZhY2UgKTsgZSA9IGUtPk9uZXh0ICkgewotICAgIEFk
ZFRvVHJhaWwoIGUtPkxmYWNlLCB0cmFpbCApOwotICAgICsrbmV3RmFjZS5zaXplOwotICB9Ci0g
IGZvciggZSA9IGVPcmlnOyAhIE1hcmtlZCggZS0+UmZhY2UgKTsgZSA9IGUtPk9wcmV2ICkgewot
ICAgIEFkZFRvVHJhaWwoIGUtPlJmYWNlLCB0cmFpbCApOwotICAgICsrbmV3RmFjZS5zaXplOwot
ICB9Ci0gIG5ld0ZhY2UuZVN0YXJ0ID0gZTsKLSAgLypMSU5URUQqLwotICBGcmVlVHJhaWwoIHRy
YWlsICk7Ci0gIHJldHVybiBuZXdGYWNlOwotfQotCi0KLSNkZWZpbmUgSXNFdmVuKG4pCSgoKG4p
ICYgMSkgPT0gMCkKLQotc3RhdGljIHN0cnVjdCBGYWNlQ291bnQgTWF4aW11bVN0cmlwKCBHTFVo
YWxmRWRnZSAqZU9yaWcgKQotewotICAvKiBIZXJlIHdlIGFyZSBsb29raW5nIGZvciBhIG1heGlt
YWwgc3RyaXAgdGhhdCBjb250YWlucyB0aGUgdmVydGljZXMKLSAgICogZU9yaWctPk9yZywgZU9y
aWctPkRzdCwgZU9yaWctPkxuZXh0LT5Ec3QgKGluIHRoYXQgb3JkZXIgb3IgdGhlCi0gICAqIHJl
dmVyc2UsIHN1Y2ggdGhhdCBhbGwgdHJpYW5nbGVzIGFyZSBvcmllbnRlZCBDQ1cpLgotICAgKgot
ICAgKiBBZ2FpbiB3ZSB3YWxrIGZvcndhcmQgYW5kIGJhY2t3YXJkIGFzIGZhciBhcyBwb3NzaWJs
ZS4gIEhvd2V2ZXIgZm9yCi0gICAqIHN0cmlwcyB0aGVyZSBpcyBhIHR3aXN0OiB0byBnZXQgQ0NX
IG9yaWVudGF0aW9ucywgdGhlcmUgbXVzdCBiZQotICAgKiBhbiAqZXZlbiogbnVtYmVyIG9mIHRy
aWFuZ2xlcyBpbiB0aGUgc3RyaXAgb24gb25lIHNpZGUgb2YgZU9yaWcuCi0gICAqIFdlIHdhbGsg
dGhlIHN0cmlwIHN0YXJ0aW5nIG9uIGEgc2lkZSB3aXRoIGFuIGV2ZW4gbnVtYmVyIG9mIHRyaWFu
Z2xlczsKLSAgICogaWYgYm90aCBzaWRlIGhhdmUgYW4gb2RkIG51bWJlciwgd2UgYXJlIGZvcmNl
ZCB0byBzaG9ydGVuIG9uZSBzaWRlLgotICAgKi8KLSAgc3RydWN0IEZhY2VDb3VudCBuZXdGYWNl
ID0geyAwLCBOVUxMLCAmUmVuZGVyU3RyaXAgfTsKLSAgbG9uZyBoZWFkU2l6ZSA9IDAsIHRhaWxT
aXplID0gMDsKLSAgR0xVZmFjZSAqdHJhaWwgPSBOVUxMOwotICBHTFVoYWxmRWRnZSAqZSwgKmVU
YWlsLCAqZUhlYWQ7Ci0KLSAgZm9yKCBlID0gZU9yaWc7ICEgTWFya2VkKCBlLT5MZmFjZSApOyAr
K3RhaWxTaXplLCBlID0gZS0+T25leHQgKSB7Ci0gICAgQWRkVG9UcmFpbCggZS0+TGZhY2UsIHRy
YWlsICk7Ci0gICAgKyt0YWlsU2l6ZTsKLSAgICBlID0gZS0+RHByZXY7Ci0gICAgaWYoIE1hcmtl
ZCggZS0+TGZhY2UgKSkgYnJlYWs7Ci0gICAgQWRkVG9UcmFpbCggZS0+TGZhY2UsIHRyYWlsICk7
Ci0gIH0KLSAgZVRhaWwgPSBlOwotCi0gIGZvciggZSA9IGVPcmlnOyAhIE1hcmtlZCggZS0+UmZh
Y2UgKTsgKytoZWFkU2l6ZSwgZSA9IGUtPkRuZXh0ICkgewotICAgIEFkZFRvVHJhaWwoIGUtPlJm
YWNlLCB0cmFpbCApOwotICAgICsraGVhZFNpemU7Ci0gICAgZSA9IGUtPk9wcmV2OwotICAgIGlm
KCBNYXJrZWQoIGUtPlJmYWNlICkpIGJyZWFrOwotICAgIEFkZFRvVHJhaWwoIGUtPlJmYWNlLCB0
cmFpbCApOwotICB9Ci0gIGVIZWFkID0gZTsKLQotICBuZXdGYWNlLnNpemUgPSB0YWlsU2l6ZSAr
IGhlYWRTaXplOwotICBpZiggSXNFdmVuKCB0YWlsU2l6ZSApKSB7Ci0gICAgbmV3RmFjZS5lU3Rh
cnQgPSBlVGFpbC0+U3ltOwotICB9IGVsc2UgaWYoIElzRXZlbiggaGVhZFNpemUgKSkgewotICAg
IG5ld0ZhY2UuZVN0YXJ0ID0gZUhlYWQ7Ci0gIH0gZWxzZSB7Ci0gICAgLyogQm90aCBzaWRlcyBo
YXZlIG9kZCBsZW5ndGgsIHdlIG11c3Qgc2hvcnRlbiBvbmUgb2YgdGhlbS4gIEluIGZhY3QsCi0g
ICAgICogd2UgbXVzdCBzdGFydCBmcm9tIGVIZWFkIHRvIGd1YXJhbnRlZSBpbmNsdXNpb24gb2Yg
ZU9yaWctPkxmYWNlLgotICAgICAqLwotICAgIC0tbmV3RmFjZS5zaXplOwotICAgIG5ld0ZhY2Uu
ZVN0YXJ0ID0gZUhlYWQtPk9uZXh0OwotICB9Ci0gIC8qTElOVEVEKi8KLSAgRnJlZVRyYWlsKCB0
cmFpbCApOwotICByZXR1cm4gbmV3RmFjZTsKLX0KLQotCi1zdGF0aWMgdm9pZCBSZW5kZXJUcmlh
bmdsZSggR0xVdGVzc2VsYXRvciAqdGVzcywgR0xVaGFsZkVkZ2UgKmUsIGxvbmcgc2l6ZSApCi17
Ci0gIC8qIEp1c3QgYWRkIHRoZSB0cmlhbmdsZSB0byBhIHRyaWFuZ2xlIGxpc3QsIHNvIHdlIGNh
biByZW5kZXIgYWxsCi0gICAqIHRoZSBzZXBhcmF0ZSB0cmlhbmdsZXMgYXQgb25jZS4KLSAgICov
Ci0gIGFzc2VydCggc2l6ZSA9PSAxICk7Ci0gIEFkZFRvVHJhaWwoIGUtPkxmYWNlLCB0ZXNzLT5s
b25lbHlUcmlMaXN0ICk7Ci19Ci0KLQotc3RhdGljIHZvaWQgUmVuZGVyTG9uZWx5VHJpYW5nbGVz
KCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFVmYWNlICpmICkKLXsKLSAgLyogTm93IHdlIHJlbmRl
ciBhbGwgdGhlIHNlcGFyYXRlIHRyaWFuZ2xlcyB3aGljaCBjb3VsZCBub3QgYmUKLSAgICogZ3Jv
dXBlZCBpbnRvIGEgdHJpYW5nbGUgZmFuIG9yIHN0cmlwLgotICAgKi8KLSAgR0xVaGFsZkVkZ2Ug
KmU7Ci0gIGludCBuZXdTdGF0ZTsKLSAgaW50IGVkZ2VTdGF0ZSA9IC0xOwkvKiBmb3JjZSBlZGdl
IHN0YXRlIG91dHB1dCBmb3IgZmlyc3QgdmVydGV4ICovCi0KLSAgQ0FMTF9CRUdJTl9PUl9CRUdJ
Tl9EQVRBKCBHTF9UUklBTkdMRVMgKTsKLQotICBmb3IoIDsgZiAhPSBOVUxMOyBmID0gZi0+dHJh
aWwgKSB7Ci0gICAgLyogTG9vcCBvbmNlIGZvciBlYWNoIGVkZ2UgKHRoZXJlIHdpbGwgYWx3YXlz
IGJlIDMgZWRnZXMpICovCi0KLSAgICBlID0gZi0+YW5FZGdlOwotICAgIGRvIHsKLSAgICAgIGlm
KCB0ZXNzLT5mbGFnQm91bmRhcnkgKSB7Ci0JLyogU2V0IHRoZSAiZWRnZSBzdGF0ZSIgdG8gVFJV
RSBqdXN0IGJlZm9yZSB3ZSBvdXRwdXQgdGhlCi0JICogZmlyc3QgdmVydGV4IG9mIGVhY2ggZWRn
ZSBvbiB0aGUgcG9seWdvbiBib3VuZGFyeS4KLQkgKi8KLQluZXdTdGF0ZSA9ICEgZS0+UmZhY2Ut
Pmluc2lkZTsKLQlpZiggZWRnZVN0YXRlICE9IG5ld1N0YXRlICkgewotCSAgZWRnZVN0YXRlID0g
bmV3U3RhdGU7Ci0gICAgICAgICAgQ0FMTF9FREdFX0ZMQUdfT1JfRURHRV9GTEFHX0RBVEEoIGVk
Z2VTdGF0ZSApOwotCX0KLSAgICAgIH0KLSAgICAgIENBTExfVkVSVEVYX09SX1ZFUlRFWF9EQVRB
KCBlLT5PcmctPmRhdGEgKTsKLQotICAgICAgZSA9IGUtPkxuZXh0OwotICAgIH0gd2hpbGUoIGUg
IT0gZi0+YW5FZGdlICk7Ci0gIH0KLSAgQ0FMTF9FTkRfT1JfRU5EX0RBVEEoKTsKLX0KLQotCi1z
dGF0aWMgdm9pZCBSZW5kZXJGYW4oIEdMVXRlc3NlbGF0b3IgKnRlc3MsIEdMVWhhbGZFZGdlICpl
LCBsb25nIHNpemUgKQotewotICAvKiBSZW5kZXIgYXMgbWFueSBDQ1cgdHJpYW5nbGVzIGFzIHBv
c3NpYmxlIGluIGEgZmFuIHN0YXJ0aW5nIGZyb20KLSAgICogZWRnZSAiZSIuICBUaGUgZmFuICpz
aG91bGQqIGNvbnRhaW4gZXhhY3RseSAic2l6ZSIgdHJpYW5nbGVzCi0gICAqIChvdGhlcndpc2Ug
d2UndmUgZ29vZmVkIHVwIHNvbWV3aGVyZSkuCi0gICAqLwotICBDQUxMX0JFR0lOX09SX0JFR0lO
X0RBVEEoIEdMX1RSSUFOR0xFX0ZBTiApOyAKLSAgQ0FMTF9WRVJURVhfT1JfVkVSVEVYX0RBVEEo
IGUtPk9yZy0+ZGF0YSApOyAKLSAgQ0FMTF9WRVJURVhfT1JfVkVSVEVYX0RBVEEoIGUtPkRzdC0+
ZGF0YSApOyAKLQotICB3aGlsZSggISBNYXJrZWQoIGUtPkxmYWNlICkpIHsKLSAgICBlLT5MZmFj
ZS0+bWFya2VkID0gVFJVRTsKLSAgICAtLXNpemU7Ci0gICAgZSA9IGUtPk9uZXh0OwotICAgIENB
TExfVkVSVEVYX09SX1ZFUlRFWF9EQVRBKCBlLT5Ec3QtPmRhdGEgKTsgCi0gIH0KLQotICBhc3Nl
cnQoIHNpemUgPT0gMCApOwotICBDQUxMX0VORF9PUl9FTkRfREFUQSgpOwotfQotCi0KLXN0YXRp
YyB2b2lkIFJlbmRlclN0cmlwKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFVoYWxmRWRnZSAqZSwg
bG9uZyBzaXplICkKLXsKLSAgLyogUmVuZGVyIGFzIG1hbnkgQ0NXIHRyaWFuZ2xlcyBhcyBwb3Nz
aWJsZSBpbiBhIHN0cmlwIHN0YXJ0aW5nIGZyb20KLSAgICogZWRnZSAiZSIuICBUaGUgc3RyaXAg
KnNob3VsZCogY29udGFpbiBleGFjdGx5ICJzaXplIiB0cmlhbmdsZXMKLSAgICogKG90aGVyd2lz
ZSB3ZSd2ZSBnb29mZWQgdXAgc29tZXdoZXJlKS4KLSAgICovCi0gIENBTExfQkVHSU5fT1JfQkVH
SU5fREFUQSggR0xfVFJJQU5HTEVfU1RSSVAgKTsKLSAgQ0FMTF9WRVJURVhfT1JfVkVSVEVYX0RB
VEEoIGUtPk9yZy0+ZGF0YSApOyAKLSAgQ0FMTF9WRVJURVhfT1JfVkVSVEVYX0RBVEEoIGUtPkRz
dC0+ZGF0YSApOyAKLQotICB3aGlsZSggISBNYXJrZWQoIGUtPkxmYWNlICkpIHsKLSAgICBlLT5M
ZmFjZS0+bWFya2VkID0gVFJVRTsKLSAgICAtLXNpemU7Ci0gICAgZSA9IGUtPkRwcmV2OwotICAg
IENBTExfVkVSVEVYX09SX1ZFUlRFWF9EQVRBKCBlLT5PcmctPmRhdGEgKTsgCi0gICAgaWYoIE1h
cmtlZCggZS0+TGZhY2UgKSkgYnJlYWs7Ci0KLSAgICBlLT5MZmFjZS0+bWFya2VkID0gVFJVRTsK
LSAgICAtLXNpemU7Ci0gICAgZSA9IGUtPk9uZXh0OwotICAgIENBTExfVkVSVEVYX09SX1ZFUlRF
WF9EQVRBKCBlLT5Ec3QtPmRhdGEgKTsgCi0gIH0KLQotICBhc3NlcnQoIHNpemUgPT0gMCApOwot
ICBDQUxMX0VORF9PUl9FTkRfREFUQSgpOwotfQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioq
KiogQm91bmRhcnkgY29udG91ciBkZWNvbXBvc2l0aW9uICoqKioqKioqKioqKioqKioqKi8KLQot
LyogX19nbF9yZW5kZXJCb3VuZGFyeSggdGVzcywgbWVzaCApIHRha2VzIGEgbWVzaCwgYW5kIG91
dHB1dHMgb25lCi0gKiBjb250b3VyIGZvciBlYWNoIGZhY2UgbWFya2VkICJpbnNpZGUiLiAgVGhl
IHJlbmRlcmluZyBvdXRwdXQgaXMKLSAqIHByb3ZpZGVkIGFzIGNhbGxiYWNrcyAoc2VlIHRoZSBh
cGkpLgotICovCi12b2lkIF9fZ2xfcmVuZGVyQm91bmRhcnkoIEdMVXRlc3NlbGF0b3IgKnRlc3Ms
IEdMVW1lc2ggKm1lc2ggKQotewotICBHTFVmYWNlICpmOwotICBHTFVoYWxmRWRnZSAqZTsKLQot
ICBmb3IoIGYgPSBtZXNoLT5mSGVhZC5uZXh0OyBmICE9ICZtZXNoLT5mSGVhZDsgZiA9IGYtPm5l
eHQgKSB7Ci0gICAgaWYoIGYtPmluc2lkZSApIHsKLSAgICAgIENBTExfQkVHSU5fT1JfQkVHSU5f
REFUQSggR0xfTElORV9MT09QICk7Ci0gICAgICBlID0gZi0+YW5FZGdlOwotICAgICAgZG8gewot
ICAgICAgICBDQUxMX1ZFUlRFWF9PUl9WRVJURVhfREFUQSggZS0+T3JnLT5kYXRhICk7IAotCWUg
PSBlLT5MbmV4dDsKLSAgICAgIH0gd2hpbGUoIGUgIT0gZi0+YW5FZGdlICk7Ci0gICAgICBDQUxM
X0VORF9PUl9FTkRfREFUQSgpOwotICAgIH0KLSAgfQotfQotCi0KLS8qKioqKioqKioqKioqKioq
KioqKioqKiogUXVpY2stYW5kLWRpcnR5IGRlY29tcG9zaXRpb24gKioqKioqKioqKioqKioqKioq
LwotCi0jZGVmaW5lIFNJR05fSU5DT05TSVNURU5UIDIKLQotc3RhdGljIGludCBDb21wdXRlTm9y
bWFsKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTGRvdWJsZSBub3JtWzNdLCBpbnQgY2hlY2sgKQot
LyoKLSAqIElmIGNoZWNrPT1GQUxTRSwgd2UgY29tcHV0ZSB0aGUgcG9seWdvbiBub3JtYWwgYW5k
IHBsYWNlIGl0IGluIG5vcm1bXS4KLSAqIElmIGNoZWNrPT1UUlVFLCB3ZSBjaGVjayB0aGF0IGVh
Y2ggdHJpYW5nbGUgaW4gdGhlIGZhbiBmcm9tIHYwIGhhcyBhCi0gKiBjb25zaXN0ZW50IG9yaWVu
dGF0aW9uIHdpdGggcmVzcGVjdCB0byBub3JtW10uICBJZiB0cmlhbmdsZXMgYXJlCi0gKiBjb25z
aXN0ZW50bHkgb3JpZW50ZWQgQ0NXLCByZXR1cm4gMTsgaWYgQ1csIHJldHVybiAtMTsgaWYgYWxs
IHRyaWFuZ2xlcwotICogYXJlIGRlZ2VuZXJhdGUgcmV0dXJuIDA7IG90aGVyd2lzZSAobm8gY29u
c2lzdGVudCBvcmllbnRhdGlvbikgcmV0dXJuCi0gKiBTSUdOX0lOQ09OU0lTVEVOVC4KLSAqLwot
ewotICBDYWNoZWRWZXJ0ZXggKnYwID0gdGVzcy0+Y2FjaGU7Ci0gIENhY2hlZFZlcnRleCAqdm4g
PSB2MCArIHRlc3MtPmNhY2hlQ291bnQ7Ci0gIENhY2hlZFZlcnRleCAqdmM7Ci0gIEdMZG91Ymxl
IGRvdCwgeGMsIHljLCB6YywgeHAsIHlwLCB6cCwgblszXTsKLSAgaW50IHNpZ24gPSAwOwotCi0g
IC8qIEZpbmQgdGhlIHBvbHlnb24gbm9ybWFsLiAgSXQgaXMgaW1wb3J0YW50IHRvIGdldCBhIHJl
YXNvbmFibGUKLSAgICogbm9ybWFsIGV2ZW4gd2hlbiB0aGUgcG9seWdvbiBpcyBzZWxmLWludGVy
c2VjdGluZyAoZWcuIGEgYm93dGllKS4KLSAgICogT3RoZXJ3aXNlLCB0aGUgY29tcHV0ZWQgbm9y
bWFsIGNvdWxkIGJlIHZlcnkgdGlueSwgYnV0IHBlcnBlbmRpY3VsYXIKLSAgICogdG8gdGhlIHRy
dWUgcGxhbmUgb2YgdGhlIHBvbHlnb24gZHVlIHRvIG51bWVyaWNhbCBub2lzZS4gIFRoZW4gYWxs
Ci0gICAqIHRoZSB0cmlhbmdsZXMgd291bGQgYXBwZWFyIHRvIGJlIGRlZ2VuZXJhdGUgYW5kIHdl
IHdvdWxkIGluY29ycmVjdGx5Ci0gICAqIGRlY29tcG9zZSB0aGUgcG9seWdvbiBhcyBhIGZhbiAo
b3Igc2ltcGx5IG5vdCByZW5kZXIgaXQgYXQgYWxsKS4KLSAgICoKLSAgICogV2UgdXNlIGEgc3Vt
LW9mLXRyaWFuZ2xlcyBub3JtYWwgYWxnb3JpdGhtIHJhdGhlciB0aGFuIHRoZSBtb3JlCi0gICAq
IGVmZmljaWVudCBzdW0tb2YtdHJhcGV6b2lkcyBtZXRob2QgKHVzZWQgaW4gQ2hlY2tPcmllbnRh
dGlvbigpCi0gICAqIGluIG5vcm1hbC5jKS4gIFRoaXMgbGV0cyB1cyBleHBsaWNpdGx5IHJldmVy
c2UgdGhlIHNpZ25lZCBhcmVhCi0gICAqIG9mIHNvbWUgdHJpYW5nbGVzIHRvIGdldCBhIHJlYXNv
bmFibGUgbm9ybWFsIGluIHRoZSBzZWxmLWludGVyc2VjdGluZwotICAgKiBjYXNlLgotICAgKi8K
LSAgaWYoICEgY2hlY2sgKSB7Ci0gICAgbm9ybVswXSA9IG5vcm1bMV0gPSBub3JtWzJdID0gMC4w
OwotICB9Ci0KLSAgdmMgPSB2MCArIDE7Ci0gIHhjID0gdmMtPmNvb3Jkc1swXSAtIHYwLT5jb29y
ZHNbMF07Ci0gIHljID0gdmMtPmNvb3Jkc1sxXSAtIHYwLT5jb29yZHNbMV07Ci0gIHpjID0gdmMt
PmNvb3Jkc1syXSAtIHYwLT5jb29yZHNbMl07Ci0gIHdoaWxlKCArK3ZjIDwgdm4gKSB7Ci0gICAg
eHAgPSB4YzsgeXAgPSB5YzsgenAgPSB6YzsKLSAgICB4YyA9IHZjLT5jb29yZHNbMF0gLSB2MC0+
Y29vcmRzWzBdOwotICAgIHljID0gdmMtPmNvb3Jkc1sxXSAtIHYwLT5jb29yZHNbMV07Ci0gICAg
emMgPSB2Yy0+Y29vcmRzWzJdIC0gdjAtPmNvb3Jkc1syXTsKLQotICAgIC8qIENvbXB1dGUgKHZw
IC0gdjApIGNyb3NzICh2YyAtIHYwKSAqLwotICAgIG5bMF0gPSB5cCp6YyAtIHpwKnljOwotICAg
IG5bMV0gPSB6cCp4YyAtIHhwKnpjOwotICAgIG5bMl0gPSB4cCp5YyAtIHlwKnhjOwotCi0gICAg
ZG90ID0gblswXSpub3JtWzBdICsgblsxXSpub3JtWzFdICsgblsyXSpub3JtWzJdOwotICAgIGlm
KCAhIGNoZWNrICkgewotICAgICAgLyogUmV2ZXJzZSB0aGUgY29udHJpYnV0aW9uIG9mIGJhY2st
ZmFjaW5nIHRyaWFuZ2xlcyB0byBnZXQKLSAgICAgICAqIGEgcmVhc29uYWJsZSBub3JtYWwgZm9y
IHNlbGYtaW50ZXJzZWN0aW5nIHBvbHlnb25zIChzZWUgYWJvdmUpCi0gICAgICAgKi8KLSAgICAg
IGlmKCBkb3QgPj0gMCApIHsKLQlub3JtWzBdICs9IG5bMF07IG5vcm1bMV0gKz0gblsxXTsgbm9y
bVsyXSArPSBuWzJdOwotICAgICAgfSBlbHNlIHsKLQlub3JtWzBdIC09IG5bMF07IG5vcm1bMV0g
LT0gblsxXTsgbm9ybVsyXSAtPSBuWzJdOwotICAgICAgfQotICAgIH0gZWxzZSBpZiggZG90ICE9
IDAgKSB7Ci0gICAgICAvKiBDaGVjayB0aGUgbmV3IG9yaWVudGF0aW9uIGZvciBjb25zaXN0ZW5j
eSB3aXRoIHByZXZpb3VzIHRyaWFuZ2xlcyAqLwotICAgICAgaWYoIGRvdCA+IDAgKSB7Ci0JaWYo
IHNpZ24gPCAwICkgcmV0dXJuIFNJR05fSU5DT05TSVNURU5UOwotCXNpZ24gPSAxOwotICAgICAg
fSBlbHNlIHsKLQlpZiggc2lnbiA+IDAgKSByZXR1cm4gU0lHTl9JTkNPTlNJU1RFTlQ7Ci0Jc2ln
biA9IC0xOwotICAgICAgfQotICAgIH0KLSAgfQotICByZXR1cm4gc2lnbjsKLX0KLQotLyogX19n
bF9yZW5kZXJDYWNoZSggdGVzcyApIHRha2VzIGEgc2luZ2xlIGNvbnRvdXIgYW5kIHRyaWVzIHRv
IHJlbmRlciBpdAotICogYXMgYSB0cmlhbmdsZSBmYW4uICBUaGlzIGhhbmRsZXMgY29udmV4IHBv
bHlnb25zLCBhcyB3ZWxsIGFzIHNvbWUKLSAqIG5vbi1jb252ZXggcG9seWdvbnMgaWYgd2UgZ2V0
IGx1Y2t5LgotICoKLSAqIFJldHVybnMgVFJVRSBpZiB0aGUgcG9seWdvbiB3YXMgc3VjY2Vzc2Z1
bGx5IHJlbmRlcmVkLiAgVGhlIHJlbmRlcmluZwotICogb3V0cHV0IGlzIHByb3ZpZGVkIGFzIGNh
bGxiYWNrcyAoc2VlIHRoZSBhcGkpLgotICovCi1HTGJvb2xlYW4gX19nbF9yZW5kZXJDYWNoZSgg
R0xVdGVzc2VsYXRvciAqdGVzcyApCi17Ci0gIENhY2hlZFZlcnRleCAqdjAgPSB0ZXNzLT5jYWNo
ZTsKLSAgQ2FjaGVkVmVydGV4ICp2biA9IHYwICsgdGVzcy0+Y2FjaGVDb3VudDsKLSAgQ2FjaGVk
VmVydGV4ICp2YzsKLSAgR0xkb3VibGUgbm9ybVszXTsKLSAgaW50IHNpZ247Ci0KLSAgaWYoIHRl
c3MtPmNhY2hlQ291bnQgPCAzICkgewotICAgIC8qIERlZ2VuZXJhdGUgY29udG91ciAtLSBubyBv
dXRwdXQgKi8KLSAgICByZXR1cm4gVFJVRTsKLSAgfQotCi0gIG5vcm1bMF0gPSB0ZXNzLT5ub3Jt
YWxbMF07Ci0gIG5vcm1bMV0gPSB0ZXNzLT5ub3JtYWxbMV07Ci0gIG5vcm1bMl0gPSB0ZXNzLT5u
b3JtYWxbMl07Ci0gIGlmKCBub3JtWzBdID09IDAgJiYgbm9ybVsxXSA9PSAwICYmIG5vcm1bMl0g
PT0gMCApIHsKLSAgICBDb21wdXRlTm9ybWFsKCB0ZXNzLCBub3JtLCBGQUxTRSApOwotICB9Ci0K
LSAgc2lnbiA9IENvbXB1dGVOb3JtYWwoIHRlc3MsIG5vcm0sIFRSVUUgKTsKLSAgaWYoIHNpZ24g
PT0gU0lHTl9JTkNPTlNJU1RFTlQgKSB7Ci0gICAgLyogRmFuIHRyaWFuZ2xlcyBkaWQgbm90IGhh
dmUgYSBjb25zaXN0ZW50IG9yaWVudGF0aW9uICovCi0gICAgcmV0dXJuIEZBTFNFOwotICB9Ci0g
IGlmKCBzaWduID09IDAgKSB7Ci0gICAgLyogQWxsIHRyaWFuZ2xlcyB3ZXJlIGRlZ2VuZXJhdGUg
Ki8KLSAgICByZXR1cm4gVFJVRTsKLSAgfQotCi0gIC8qIE1ha2Ugc3VyZSB3ZSBkbyB0aGUgcmln
aHQgdGhpbmcgZm9yIGVhY2ggd2luZGluZyBydWxlICovCi0gIHN3aXRjaCggdGVzcy0+d2luZGlu
Z1J1bGUgKSB7Ci0gIGNhc2UgR0xVX1RFU1NfV0lORElOR19PREQ6Ci0gIGNhc2UgR0xVX1RFU1Nf
V0lORElOR19OT05aRVJPOgotICAgIGJyZWFrOwotICBjYXNlIEdMVV9URVNTX1dJTkRJTkdfUE9T
SVRJVkU6Ci0gICAgaWYoIHNpZ24gPCAwICkgcmV0dXJuIFRSVUU7Ci0gICAgYnJlYWs7Ci0gIGNh
c2UgR0xVX1RFU1NfV0lORElOR19ORUdBVElWRToKLSAgICBpZiggc2lnbiA+IDAgKSByZXR1cm4g
VFJVRTsKLSAgICBicmVhazsKLSAgY2FzZSBHTFVfVEVTU19XSU5ESU5HX0FCU19HRVFfVFdPOgot
ICAgIHJldHVybiBUUlVFOwotICB9Ci0KLSAgQ0FMTF9CRUdJTl9PUl9CRUdJTl9EQVRBKCB0ZXNz
LT5ib3VuZGFyeU9ubHkgPyBHTF9MSU5FX0xPT1AKLQkJCSAgOiAodGVzcy0+Y2FjaGVDb3VudCA+
IDMpID8gR0xfVFJJQU5HTEVfRkFOCi0JCQkgIDogR0xfVFJJQU5HTEVTICk7Ci0KLSAgQ0FMTF9W
RVJURVhfT1JfVkVSVEVYX0RBVEEoIHYwLT5kYXRhICk7IAotICBpZiggc2lnbiA+IDAgKSB7Ci0g
ICAgZm9yKCB2YyA9IHYwKzE7IHZjIDwgdm47ICsrdmMgKSB7Ci0gICAgICBDQUxMX1ZFUlRFWF9P
Ul9WRVJURVhfREFUQSggdmMtPmRhdGEgKTsgCi0gICAgfQotICB9IGVsc2UgewotICAgIGZvcigg
dmMgPSB2bi0xOyB2YyA+IHYwOyAtLXZjICkgewotICAgICAgQ0FMTF9WRVJURVhfT1JfVkVSVEVY
X0RBVEEoIHZjLT5kYXRhICk7IAotICAgIH0KLSAgfQotICBDQUxMX0VORF9PUl9FTkRfREFUQSgp
OwotICByZXR1cm4gVFJVRTsKLX0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUv
bGlidGVzcy9yZW5kZXIuaCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9yZW5kZXIu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDhlZjkxNC4uMDAwMDAwMAotLS0gYS9X
ZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvcmVuZGVyLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1OSArMCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNlcHQgdG8gdGhl
IGV4dGVudCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1YmplY3QgdG8gYW4g
YWx0ZXJuYXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVlCi0qKiBTb2Z0
d2FyZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhlIGNvbnRlbnRz
IG9mIHRoaXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlzaW9ucyBvZiB0
aGUgTGljZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBs
aWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0qKiBvZiB0aGUg
TGljZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBTZXJ2aWNlcywg
MTYwMAotKiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENBIDk0MDQzLTEz
NTEsIG9yIGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMvRnJlZUIKLSoq
IAotKiogTm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhlIFNvZnR3YXJl
IGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFMTCBFWFBSRVNT
IEFORCBJTVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NMQUlNRUQsIElO
Q0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5USUVTIEFORAot
KiogQ09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBRVUFMSVRZLCBG
SVRORVNTIEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5GUklOR0VNRU5U
LgotKiogCi0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczogT3BlbkdMIFNh
bXBsZSBJbXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2VkIEphbnVhcnkg
MjYsIDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5jLiBUaGUgT3Jp
Z2luYWwgQ29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdyYXBoaWNzLCBJ
bmMuCi0qKiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhpcmQgcGFydGll
cyBpcyBhcyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0qKiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBhcHBsaWNhdGlv
biBwcm9ncmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kgaW4gY29uanVu
Y3Rpb24gd2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0woUikgR3JhcGhp
Y3MgU3lzdGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxlYXNlZAotKiog
QXByaWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRpbGl0eSBMaWJy
YXJ5IChWZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4OyBhbmQgT3Bl
bkdMKFIpIEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikgKFZlcnNpb24g
MS4zKSwgcmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQotKiogd2FzIGNy
ZWF0ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJbXBsZW1lbnRh
dGlvbgotKiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRlcGVuZGVudGx5
IHZlcmlmaWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdMKFIpIHZlcnNp
b24gMS4yLjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjogRXJpYyBWZWFj
aCwgSnVseSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVhZGVyOiAvL2Rl
cG90L21haW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9yZW5kZXIuaCM1ICQKLSovCi0KLSNpZm5kZWYg
X19yZW5kZXJfaF8KLSNkZWZpbmUgX19yZW5kZXJfaF8KLQotI2luY2x1ZGUgInRoaXJkcGFydHkv
Z2x1L2xpYnRlc3MvbWVzaC5oIgotCi0vKiBfX2dsX3JlbmRlck1lc2goIHRlc3MsIG1lc2ggKSB0
YWtlcyBhIG1lc2ggYW5kIGJyZWFrcyBpdCBpbnRvIHRyaWFuZ2xlCi0gKiBmYW5zLCBzdHJpcHMs
IGFuZCBzZXBhcmF0ZSB0cmlhbmdsZXMuICBBIHN1YnN0YW50aWFsIGVmZm9ydCBpcyBtYWRlCi0g
KiB0byB1c2UgYXMgZmV3IHJlbmRlcmluZyBwcmltaXRpdmVzIGFzIHBvc3NpYmxlIChpZS4gdG8g
bWFrZSB0aGUgZmFucwotICogYW5kIHN0cmlwcyBhcyBsYXJnZSBhcyBwb3NzaWJsZSkuCi0gKgot
ICogVGhlIHJlbmRlcmluZyBvdXRwdXQgaXMgcHJvdmlkZWQgYXMgY2FsbGJhY2tzIChzZWUgdGhl
IGFwaSkuCi0gKi8KLXZvaWQgX19nbF9yZW5kZXJNZXNoKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBH
TFVtZXNoICptZXNoICk7Ci12b2lkIF9fZ2xfcmVuZGVyQm91bmRhcnkoIEdMVXRlc3NlbGF0b3Ig
KnRlc3MsIEdMVW1lc2ggKm1lc2ggKTsKLQotR0xib29sZWFuIF9fZ2xfcmVuZGVyQ2FjaGUoIEdM
VXRlc3NlbGF0b3IgKnRlc3MgKTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJk
cGFydHkvZ2x1L2xpYnRlc3Mvc3dlZXAuYyBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVz
cy9zd2VlcC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlODU3NTdjLi4wMDAwMDAw
Ci0tLSBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9zd2VlcC5jCisrKyAvZGV2L251
bGwKQEAgLTEsMTM1OSArMCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5LiBFeGNl
cHQgdG8gdGhlIGV4dGVudCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRlIHN1Ympl
Y3QgdG8gYW4gYWx0ZXJuYXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNHSSBGcmVl
Ci0qKiBTb2Z0d2FyZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2UiKSwgdGhl
IGNvbnRlbnRzIG9mIHRoaXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUgcHJvdmlz
aW9ucyBvZiB0aGUgTGljZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUgZXhjZXB0
IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5Ci0q
KiBvZiB0aGUgTGljZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBMZWdhbCBT
ZXJ2aWNlcywgMTYwMAotKiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcsIENB
IDk0MDQzLTEzNTEsIG9yIGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJvamVjdHMv
RnJlZUIKLSoqIAotKiogTm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5zZSwgdGhl
IFNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3aXRoIEFM
TCBFWFBSRVNTIEFORCBJTVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoqIERJU0NM
QUlNRUQsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBXQVJSQU5U
SUVTIEFORAotKiogQ09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFDVE9SWSBR
VUFMSVRZLCBGSVRORVNTIEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBOT04tSU5G
UklOR0VNRU5ULgotKiogCi0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29kZSBpczog
T3BlbkdMIFNhbXBsZSBJbXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJlbGVhc2Vk
IEphbnVhcnkgMjYsIDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAotKiogSW5j
LiBUaGUgT3JpZ2luYWwgQ29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxpY29uIEdy
YXBoaWNzLCBJbmMuCi0qKiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQgYnkgdGhp
cmQgcGFydGllcyBpcyBhcyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCi0qKiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6IFRoZSBh
cHBsaWNhdGlvbiBwcm9ncmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBieSBTR0kg
aW4gY29uanVuY3Rpb24gd2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBPcGVuR0wo
UikgR3JhcGhpY3MgU3lzdGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEpLCByZWxl
YXNlZAotKiogQXByaWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW0gVXRp
bGl0eSBMaWJyYXJ5IChWZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0LCAxOTk4
OyBhbmQgT3BlbkdMKFIpIEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0ZW0oUikg
KFZlcnNpb24gMS4zKSwgcmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0d2FyZQot
Kiogd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNhbXBsZSBJ
bXBsZW1lbnRhdGlvbgotKiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVlbiBpbmRl
cGVuZGVudGx5IHZlcmlmaWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUgT3BlbkdM
KFIpIHZlcnNpb24gMS4yLjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1dGhvcjog
RXJpYyBWZWFjaCwgSnVseSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0qKiAkSGVh
ZGVyOiAvL2RlcG90L21haW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy9zd2VlcC5jIzUgJAotKi8KLQot
I2luY2x1ZGUgPGFzc2VydC5oPgotI2luY2x1ZGUgPHNldGptcC5oPgkJLyogbG9uZ2ptcCAqLwot
I2luY2x1ZGUgPGxpbWl0cy5oPgkJLyogTE9OR19NQVggKi8KLSNpbmNsdWRlIDxzdGRkZWYuaD4K
LQotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2dsdW9zLmgiCi0jaW5jbHVkZSAidGhpcmRwYXJ0
eS9nbHUvbGlidGVzcy9kaWN0LmgiCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9n
ZW9tLmgiCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZW1hbGxvYy5oIgotI2lu
Y2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvbWVzaC5oIgotI2luY2x1ZGUgInRoaXJkcGFy
dHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlxLmgiCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGli
dGVzcy9zd2VlcC5oIgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzcy5oIgot
Ci0jZGVmaW5lIFRSVUUgMQotI2RlZmluZSBGQUxTRSAwCi0KLSNpZmRlZiBGT1JfVFJJVEVfVEVT
VF9QUk9HUkFNCi1leHRlcm4gdm9pZCBEZWJ1Z0V2ZW50KCBHTFV0ZXNzZWxhdG9yICp0ZXNzICk7
Ci0jZWxzZQotI2RlZmluZSBEZWJ1Z0V2ZW50KCB0ZXNzICkKLSNlbmRpZgotCi0vKgotICogSW52
YXJpYW50cyBmb3IgdGhlIEVkZ2UgRGljdGlvbmFyeS4KLSAqIC0gZWFjaCBwYWlyIG9mIGFkamFj
ZW50IGVkZ2VzIGUyPVN1Y2MoZTEpIHNhdGlzZmllcyBFZGdlTGVxKGUxLGUyKQotICogICBhdCBh
bnkgdmFsaWQgbG9jYXRpb24gb2YgdGhlIHN3ZWVwIGV2ZW50Ci0gKiAtIGlmIEVkZ2VMZXEoZTIs
ZTEpIGFzIHdlbGwgKGF0IGFueSB2YWxpZCBzd2VlcCBldmVudCksIHRoZW4gZTEgYW5kIGUyCi0g
KiAgIHNoYXJlIGEgY29tbW9uIGVuZHBvaW50Ci0gKiAtIGZvciBlYWNoIGUsIGUtPkRzdCBoYXMg
YmVlbiBwcm9jZXNzZWQsIGJ1dCBub3QgZS0+T3JnCi0gKiAtIGVhY2ggZWRnZSBlIHNhdGlzZmll
cyBWZXJ0TGVxKGUtPkRzdCxldmVudCkgJiYgVmVydExlcShldmVudCxlLT5PcmcpCi0gKiAgIHdo
ZXJlICJldmVudCIgaXMgdGhlIGN1cnJlbnQgc3dlZXAgbGluZSBldmVudC4KLSAqIC0gbm8gZWRn
ZSBlIGhhcyB6ZXJvIGxlbmd0aAotICoKLSAqIEludmFyaWFudHMgZm9yIHRoZSBNZXNoICh0aGUg
cHJvY2Vzc2VkIHBvcnRpb24pLgotICogLSB0aGUgcG9ydGlvbiBvZiB0aGUgbWVzaCBsZWZ0IG9m
IHRoZSBzd2VlcCBsaW5lIGlzIGEgcGxhbmFyIGdyYXBoLAotICogICBpZS4gdGhlcmUgaXMgKnNv
bWUqIHdheSB0byBlbWJlZCBpdCBpbiB0aGUgcGxhbmUKLSAqIC0gbm8gcHJvY2Vzc2VkIGVkZ2Ug
aGFzIHplcm8gbGVuZ3RoCi0gKiAtIG5vIHR3byBwcm9jZXNzZWQgdmVydGljZXMgaGF2ZSBpZGVu
dGljYWwgY29vcmRpbmF0ZXMKLSAqIC0gZWFjaCAiaW5zaWRlIiByZWdpb24gaXMgbW9ub3RvbmUs
IGllLiBjYW4gYmUgYnJva2VuIGludG8gdHdvIGNoYWlucwotICogICBvZiBtb25vdG9uaWNhbGx5
IGluY3JlYXNpbmcgdmVydGljZXMgYWNjb3JkaW5nIHRvIFZlcnRMZXEodjEsdjIpCi0gKiAgIC0g
YSBub24taW52YXJpYW50OiB0aGVzZSBjaGFpbnMgbWF5IGludGVyc2VjdCAodmVyeSBzbGlnaHRs
eSkKLSAqCi0gKiBJbnZhcmlhbnRzIGZvciB0aGUgU3dlZXAuCi0gKiAtIGlmIG5vbmUgb2YgdGhl
IGVkZ2VzIGluY2lkZW50IHRvIHRoZSBldmVudCB2ZXJ0ZXggaGF2ZSBhbiBhY3RpdmVSZWdpb24K
LSAqICAgKGllLiBub25lIG9mIHRoZXNlIGVkZ2VzIGFyZSBpbiB0aGUgZWRnZSBkaWN0aW9uYXJ5
KSwgdGhlbiB0aGUgdmVydGV4Ci0gKiAgIGhhcyBvbmx5IHJpZ2h0LWdvaW5nIGVkZ2VzLgotICog
LSBpZiBhbiBlZGdlIGlzIG1hcmtlZCAiZml4VXBwZXJFZGdlIiAoaXQgaXMgYSB0ZW1wb3Jhcnkg
ZWRnZSBpbnRyb2R1Y2VkCi0gKiAgIGJ5IENvbm5lY3RSaWdodFZlcnRleCksIHRoZW4gaXQgaXMg
dGhlIG9ubHkgcmlnaHQtZ29pbmcgZWRnZSBmcm9tCi0gKiAgIGl0cyBhc3NvY2lhdGVkIHZlcnRl
eC4gIChUaGlzIHNheXMgdGhhdCB0aGVzZSBlZGdlcyBleGlzdCBvbmx5Ci0gKiAgIHdoZW4gaXQg
aXMgbmVjZXNzYXJ5LikKLSAqLwotCi0jZGVmaW5lIE1BWCh4LHkpCSgoeCkgPj0gKHkpID8gKHgp
IDogKHkpKQotI2RlZmluZSBNSU4oeCx5KQkoKHgpIDw9ICh5KSA/ICh4KSA6ICh5KSkKLQotLyog
V2hlbiB3ZSBtZXJnZSB0d28gZWRnZXMgaW50byBvbmUsIHdlIG5lZWQgdG8gY29tcHV0ZSB0aGUg
Y29tYmluZWQKLSAqIHdpbmRpbmcgb2YgdGhlIG5ldyBlZGdlLgotICovCi0jZGVmaW5lIEFkZFdp
bmRpbmcoZURzdCxlU3JjKQkoZURzdC0+d2luZGluZyArPSBlU3JjLT53aW5kaW5nLCBcCi0JCQkJ
IGVEc3QtPlN5bS0+d2luZGluZyArPSBlU3JjLT5TeW0tPndpbmRpbmcpCi0KLXN0YXRpYyB2b2lk
IFN3ZWVwRXZlbnQoIEdMVXRlc3NlbGF0b3IgKnRlc3MsIEdMVXZlcnRleCAqdkV2ZW50ICk7Ci1z
dGF0aWMgdm9pZCBXYWxrRGlydHlSZWdpb25zKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBBY3RpdmVS
ZWdpb24gKnJlZ1VwICk7Ci1zdGF0aWMgaW50IENoZWNrRm9yUmlnaHRTcGxpY2UoIEdMVXRlc3Nl
bGF0b3IgKnRlc3MsIEFjdGl2ZVJlZ2lvbiAqcmVnVXAgKTsKLQotc3RhdGljIGludCBFZGdlTGVx
KCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBBY3RpdmVSZWdpb24gKnJlZzEsCi0JCSAgICBBY3RpdmVS
ZWdpb24gKnJlZzIgKQotLyoKLSAqIEJvdGggZWRnZXMgbXVzdCBiZSBkaXJlY3RlZCBmcm9tIHJp
Z2h0IHRvIGxlZnQgKHRoaXMgaXMgdGhlIGNhbm9uaWNhbAotICogZGlyZWN0aW9uIGZvciB0aGUg
dXBwZXIgZWRnZSBvZiBlYWNoIHJlZ2lvbikuCi0gKgotICogVGhlIHN0cmF0ZWd5IGlzIHRvIGV2
YWx1YXRlIGEgInQiIHZhbHVlIGZvciBlYWNoIGVkZ2UgYXQgdGhlCi0gKiBjdXJyZW50IHN3ZWVw
IGxpbmUgcG9zaXRpb24sIGdpdmVuIGJ5IHRlc3MtPmV2ZW50LiAgVGhlIGNhbGN1bGF0aW9ucwot
ICogYXJlIGRlc2lnbmVkIHRvIGJlIHZlcnkgc3RhYmxlLCBidXQgb2YgY291cnNlIHRoZXkgYXJl
IG5vdCBwZXJmZWN0LgotICoKLSAqIFNwZWNpYWwgY2FzZTogaWYgYm90aCBlZGdlIGRlc3RpbmF0
aW9ucyBhcmUgYXQgdGhlIHN3ZWVwIGV2ZW50LAotICogd2Ugc29ydCB0aGUgZWRnZXMgYnkgc2xv
cGUgKHRoZXkgd291bGQgb3RoZXJ3aXNlIGNvbXBhcmUgZXF1YWxseSkuCi0gKi8KLXsKLSAgR0xV
dmVydGV4ICpldmVudCA9IHRlc3MtPmV2ZW50OwotICBHTFVoYWxmRWRnZSAqZTEsICplMjsKLSAg
R0xkb3VibGUgdDEsIHQyOwotCi0gIGUxID0gcmVnMS0+ZVVwOwotICBlMiA9IHJlZzItPmVVcDsK
LQotICBpZiggZTEtPkRzdCA9PSBldmVudCApIHsKLSAgICBpZiggZTItPkRzdCA9PSBldmVudCAp
IHsKLSAgICAgIC8qIFR3byBlZGdlcyByaWdodCBvZiB0aGUgc3dlZXAgbGluZSB3aGljaCBtZWV0
IGF0IHRoZSBzd2VlcCBldmVudC4KLSAgICAgICAqIFNvcnQgdGhlbSBieSBzbG9wZS4KLSAgICAg
ICAqLwotICAgICAgaWYoIFZlcnRMZXEoIGUxLT5PcmcsIGUyLT5PcmcgKSkgewotCXJldHVybiBF
ZGdlU2lnbiggZTItPkRzdCwgZTEtPk9yZywgZTItPk9yZyApIDw9IDA7Ci0gICAgICB9Ci0gICAg
ICByZXR1cm4gRWRnZVNpZ24oIGUxLT5Ec3QsIGUyLT5PcmcsIGUxLT5PcmcgKSA+PSAwOwotICAg
IH0KLSAgICByZXR1cm4gRWRnZVNpZ24oIGUyLT5Ec3QsIGV2ZW50LCBlMi0+T3JnICkgPD0gMDsK
LSAgfQotICBpZiggZTItPkRzdCA9PSBldmVudCApIHsKLSAgICByZXR1cm4gRWRnZVNpZ24oIGUx
LT5Ec3QsIGV2ZW50LCBlMS0+T3JnICkgPj0gMDsKLSAgfQotCi0gIC8qIEdlbmVyYWwgY2FzZSAt
IGNvbXB1dGUgc2lnbmVkIGRpc3RhbmNlICpmcm9tKiBlMSwgZTIgdG8gZXZlbnQgKi8KLSAgdDEg
PSBFZGdlRXZhbCggZTEtPkRzdCwgZXZlbnQsIGUxLT5PcmcgKTsKLSAgdDIgPSBFZGdlRXZhbCgg
ZTItPkRzdCwgZXZlbnQsIGUyLT5PcmcgKTsKLSAgcmV0dXJuICh0MSA+PSB0Mik7Ci19Ci0KLQot
c3RhdGljIHZvaWQgRGVsZXRlUmVnaW9uKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBBY3RpdmVSZWdp
b24gKnJlZyApCi17Ci0gIGlmKCByZWctPmZpeFVwcGVyRWRnZSApIHsKLSAgICAvKiBJdCB3YXMg
Y3JlYXRlZCB3aXRoIHplcm8gd2luZGluZyBudW1iZXIsIHNvIGl0IGJldHRlciBiZQotICAgICAq
IGRlbGV0ZWQgd2l0aCB6ZXJvIHdpbmRpbmcgbnVtYmVyIChpZS4gaXQgYmV0dGVyIG5vdCBnZXQg
bWVyZ2VkCi0gICAgICogd2l0aCBhIHJlYWwgZWRnZSkuCi0gICAgICovCi0gICAgYXNzZXJ0KCBy
ZWctPmVVcC0+d2luZGluZyA9PSAwICk7Ci0gIH0KLSAgcmVnLT5lVXAtPmFjdGl2ZVJlZ2lvbiA9
IE5VTEw7Ci0gIGRpY3REZWxldGUoIHRlc3MtPmRpY3QsIHJlZy0+bm9kZVVwICk7IC8qIF9fZ2xf
ZGljdExpc3REZWxldGUgKi8KLSAgbWVtRnJlZSggcmVnICk7Ci19Ci0KLQotc3RhdGljIGludCBG
aXhVcHBlckVkZ2UoIEFjdGl2ZVJlZ2lvbiAqcmVnLCBHTFVoYWxmRWRnZSAqbmV3RWRnZSApCi0v
KgotICogUmVwbGFjZSBhbiB1cHBlciBlZGdlIHdoaWNoIG5lZWRzIGZpeGluZyAoc2VlIENvbm5l
Y3RSaWdodFZlcnRleCkuCi0gKi8KLXsKLSAgYXNzZXJ0KCByZWctPmZpeFVwcGVyRWRnZSApOwot
ICBpZiAoICFfX2dsX21lc2hEZWxldGUoIHJlZy0+ZVVwICkgKSByZXR1cm4gMDsKLSAgcmVnLT5m
aXhVcHBlckVkZ2UgPSBGQUxTRTsKLSAgcmVnLT5lVXAgPSBuZXdFZGdlOwotICBuZXdFZGdlLT5h
Y3RpdmVSZWdpb24gPSByZWc7Ci0KLSAgcmV0dXJuIDE7IAotfQotCi1zdGF0aWMgQWN0aXZlUmVn
aW9uICpUb3BMZWZ0UmVnaW9uKCBBY3RpdmVSZWdpb24gKnJlZyApCi17Ci0gIEdMVXZlcnRleCAq
b3JnID0gcmVnLT5lVXAtPk9yZzsKLSAgR0xVaGFsZkVkZ2UgKmU7Ci0KLSAgLyogRmluZCB0aGUg
cmVnaW9uIGFib3ZlIHRoZSB1cHBlcm1vc3QgZWRnZSB3aXRoIHRoZSBzYW1lIG9yaWdpbiAqLwot
ICBkbyB7Ci0gICAgcmVnID0gUmVnaW9uQWJvdmUoIHJlZyApOwotICB9IHdoaWxlKCByZWctPmVV
cC0+T3JnID09IG9yZyApOwotCi0gIC8qIElmIHRoZSBlZGdlIGFib3ZlIHdhcyBhIHRlbXBvcmFy
eSBlZGdlIGludHJvZHVjZWQgYnkgQ29ubmVjdFJpZ2h0VmVydGV4LAotICAgKiBub3cgaXMgdGhl
IHRpbWUgdG8gZml4IGl0LgotICAgKi8KLSAgaWYoIHJlZy0+Zml4VXBwZXJFZGdlICkgewotICAg
IGUgPSBfX2dsX21lc2hDb25uZWN0KCBSZWdpb25CZWxvdyhyZWcpLT5lVXAtPlN5bSwgcmVnLT5l
VXAtPkxuZXh0ICk7Ci0gICAgaWYgKGUgPT0gTlVMTCkgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKCAh
Rml4VXBwZXJFZGdlKCByZWcsIGUgKSApIHJldHVybiBOVUxMOwotICAgIHJlZyA9IFJlZ2lvbkFi
b3ZlKCByZWcgKTsKLSAgfQotICByZXR1cm4gcmVnOwotfQotCi1zdGF0aWMgQWN0aXZlUmVnaW9u
ICpUb3BSaWdodFJlZ2lvbiggQWN0aXZlUmVnaW9uICpyZWcgKQotewotICBHTFV2ZXJ0ZXggKmRz
dCA9IHJlZy0+ZVVwLT5Ec3Q7Ci0KLSAgLyogRmluZCB0aGUgcmVnaW9uIGFib3ZlIHRoZSB1cHBl
cm1vc3QgZWRnZSB3aXRoIHRoZSBzYW1lIGRlc3RpbmF0aW9uICovCi0gIGRvIHsKLSAgICByZWcg
PSBSZWdpb25BYm92ZSggcmVnICk7Ci0gIH0gd2hpbGUoIHJlZy0+ZVVwLT5Ec3QgPT0gZHN0ICk7
Ci0gIHJldHVybiByZWc7Ci19Ci0KLXN0YXRpYyBBY3RpdmVSZWdpb24gKkFkZFJlZ2lvbkJlbG93
KCBHTFV0ZXNzZWxhdG9yICp0ZXNzLAotCQkJCSAgICAgQWN0aXZlUmVnaW9uICpyZWdBYm92ZSwK
LQkJCQkgICAgIEdMVWhhbGZFZGdlICplTmV3VXAgKQotLyoKLSAqIEFkZCBhIG5ldyBhY3RpdmUg
cmVnaW9uIHRvIHRoZSBzd2VlcCBsaW5lLCAqc29tZXdoZXJlKiBiZWxvdyAicmVnQWJvdmUiCi0g
KiAoYWNjb3JkaW5nIHRvIHdoZXJlIHRoZSBuZXcgZWRnZSBiZWxvbmdzIGluIHRoZSBzd2VlcC1s
aW5lIGRpY3Rpb25hcnkpLgotICogVGhlIHVwcGVyIGVkZ2Ugb2YgdGhlIG5ldyByZWdpb24gd2ls
bCBiZSAiZU5ld1VwIi4KLSAqIFdpbmRpbmcgbnVtYmVyIGFuZCAiaW5zaWRlIiBmbGFnIGFyZSBu
b3QgdXBkYXRlZC4KLSAqLwotewotICBBY3RpdmVSZWdpb24gKnJlZ05ldyA9IChBY3RpdmVSZWdp
b24gKiltZW1BbGxvYyggc2l6ZW9mKCBBY3RpdmVSZWdpb24gKSk7Ci0gIGlmIChyZWdOZXcgPT0g
TlVMTCkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7Ci0KLSAgcmVnTmV3LT5lVXAgPSBlTmV3VXA7Ci0g
IC8qIF9fZ2xfZGljdExpc3RJbnNlcnRCZWZvcmUgKi8gCi0gIHJlZ05ldy0+bm9kZVVwID0gZGlj
dEluc2VydEJlZm9yZSggdGVzcy0+ZGljdCwgcmVnQWJvdmUtPm5vZGVVcCwgcmVnTmV3ICk7Ci0g
IGlmIChyZWdOZXctPm5vZGVVcCA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgcmVn
TmV3LT5maXhVcHBlckVkZ2UgPSBGQUxTRTsKLSAgcmVnTmV3LT5zZW50aW5lbCA9IEZBTFNFOwot
ICByZWdOZXctPmRpcnR5ID0gRkFMU0U7Ci0KLSAgZU5ld1VwLT5hY3RpdmVSZWdpb24gPSByZWdO
ZXc7Ci0gIHJldHVybiByZWdOZXc7Ci19Ci0KLXN0YXRpYyBHTGJvb2xlYW4gSXNXaW5kaW5nSW5z
aWRlKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBpbnQgbiApCi17Ci0gIHN3aXRjaCggdGVzcy0+d2lu
ZGluZ1J1bGUgKSB7Ci0gIGNhc2UgR0xVX1RFU1NfV0lORElOR19PREQ6Ci0gICAgcmV0dXJuIChu
ICYgMSk7Ci0gIGNhc2UgR0xVX1RFU1NfV0lORElOR19OT05aRVJPOgotICAgIHJldHVybiAobiAh
PSAwKTsKLSAgY2FzZSBHTFVfVEVTU19XSU5ESU5HX1BPU0lUSVZFOgotICAgIHJldHVybiAobiA+
IDApOwotICBjYXNlIEdMVV9URVNTX1dJTkRJTkdfTkVHQVRJVkU6Ci0gICAgcmV0dXJuIChuIDwg
MCk7Ci0gIGNhc2UgR0xVX1RFU1NfV0lORElOR19BQlNfR0VRX1RXTzoKLSAgICByZXR1cm4gKG4g
Pj0gMikgfHwgKG4gPD0gLTIpOwotICB9Ci0gIC8qTElOVEVEKi8KLSAgYXNzZXJ0KCBGQUxTRSAp
OwotICAvKk5PVFJFQUNIRUQqLwotfQotCi0KLXN0YXRpYyB2b2lkIENvbXB1dGVXaW5kaW5nKCBH
TFV0ZXNzZWxhdG9yICp0ZXNzLCBBY3RpdmVSZWdpb24gKnJlZyApCi17Ci0gIHJlZy0+d2luZGlu
Z051bWJlciA9IFJlZ2lvbkFib3ZlKHJlZyktPndpbmRpbmdOdW1iZXIgKyByZWctPmVVcC0+d2lu
ZGluZzsKLSAgcmVnLT5pbnNpZGUgPSBJc1dpbmRpbmdJbnNpZGUoIHRlc3MsIHJlZy0+d2luZGlu
Z051bWJlciApOwotfQotCi0KLXN0YXRpYyB2b2lkIEZpbmlzaFJlZ2lvbiggR0xVdGVzc2VsYXRv
ciAqdGVzcywgQWN0aXZlUmVnaW9uICpyZWcgKQotLyoKLSAqIERlbGV0ZSBhIHJlZ2lvbiBmcm9t
IHRoZSBzd2VlcCBsaW5lLiAgVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHVwcGVyCi0gKiBhbmQgbG93
ZXIgY2hhaW5zIG9mIGEgcmVnaW9uIG1lZXQgKGF0IGEgdmVydGV4IG9uIHRoZSBzd2VlcCBsaW5l
KS4KLSAqIFRoZSAiaW5zaWRlIiBmbGFnIGlzIGNvcGllZCB0byB0aGUgYXBwcm9wcmlhdGUgbWVz
aCBmYWNlICh3ZSBjb3VsZAotICogbm90IGRvIHRoaXMgYmVmb3JlIC0tIHNpbmNlIHRoZSBzdHJ1
Y3R1cmUgb2YgdGhlIG1lc2ggaXMgYWx3YXlzCi0gKiBjaGFuZ2luZywgdGhpcyBmYWNlIG1heSBu
b3QgaGF2ZSBldmVuIGV4aXN0ZWQgdW50aWwgbm93KS4KLSAqLwotewotICBHTFVoYWxmRWRnZSAq
ZSA9IHJlZy0+ZVVwOwotICBHTFVmYWNlICpmID0gZS0+TGZhY2U7Ci0KLSAgZi0+aW5zaWRlID0g
cmVnLT5pbnNpZGU7Ci0gIGYtPmFuRWRnZSA9IGU7ICAgLyogb3B0aW1pemF0aW9uIGZvciBfX2ds
X21lc2hUZXNzZWxsYXRlTW9ub1JlZ2lvbigpICovCi0gIERlbGV0ZVJlZ2lvbiggdGVzcywgcmVn
ICk7Ci19Ci0KLQotc3RhdGljIEdMVWhhbGZFZGdlICpGaW5pc2hMZWZ0UmVnaW9ucyggR0xVdGVz
c2VsYXRvciAqdGVzcywKLQkgICAgICAgQWN0aXZlUmVnaW9uICpyZWdGaXJzdCwgQWN0aXZlUmVn
aW9uICpyZWdMYXN0ICkKLS8qCi0gKiBXZSBhcmUgZ2l2ZW4gYSB2ZXJ0ZXggd2l0aCBvbmUgb3Ig
bW9yZSBsZWZ0LWdvaW5nIGVkZ2VzLiAgQWxsIGFmZmVjdGVkCi0gKiBlZGdlcyBzaG91bGQgYmUg
aW4gdGhlIGVkZ2UgZGljdGlvbmFyeS4gIFN0YXJ0aW5nIGF0IHJlZ0ZpcnN0LT5lVXAsCi0gKiB3
ZSB3YWxrIGRvd24gZGVsZXRpbmcgYWxsIHJlZ2lvbnMgd2hlcmUgYm90aCBlZGdlcyBoYXZlIHRo
ZSBzYW1lCi0gKiBvcmlnaW4gdk9yZy4gIEF0IHRoZSBzYW1lIHRpbWUgd2UgY29weSB0aGUgImlu
c2lkZSIgZmxhZyBmcm9tIHRoZQotICogYWN0aXZlIHJlZ2lvbiB0byB0aGUgZmFjZSwgc2luY2Ug
YXQgdGhpcyBwb2ludCBlYWNoIGZhY2Ugd2lsbCBiZWxvbmcKLSAqIHRvIGF0IG1vc3Qgb25lIHJl
Z2lvbiAodGhpcyB3YXMgbm90IG5lY2Vzc2FyaWx5IHRydWUgdW50aWwgdGhpcyBwb2ludAotICog
aW4gdGhlIHN3ZWVwKS4gIFRoZSB3YWxrIHN0b3BzIGF0IHRoZSByZWdpb24gYWJvdmUgcmVnTGFz
dDsgaWYgcmVnTGFzdAotICogaXMgTlVMTCB3ZSB3YWxrIGFzIGZhciBhcyBwb3NzaWJsZS4gIEF0
IHRoZSBzYW1lIHRpbWUgd2UgcmVsaW5rIHRoZQotICogbWVzaCBpZiBuZWNlc3NhcnksIHNvIHRo
YXQgdGhlIG9yZGVyaW5nIG9mIGVkZ2VzIGFyb3VuZCB2T3JnIGlzIHRoZQotICogc2FtZSBhcyBp
biB0aGUgZGljdGlvbmFyeS4KLSAqLwotewotICBBY3RpdmVSZWdpb24gKnJlZywgKnJlZ1ByZXY7
Ci0gIEdMVWhhbGZFZGdlICplLCAqZVByZXY7Ci0KLSAgcmVnUHJldiA9IHJlZ0ZpcnN0OwotICBl
UHJldiA9IHJlZ0ZpcnN0LT5lVXA7Ci0gIHdoaWxlKCByZWdQcmV2ICE9IHJlZ0xhc3QgKSB7Ci0g
ICAgcmVnUHJldi0+Zml4VXBwZXJFZGdlID0gRkFMU0U7CS8qIHBsYWNlbWVudCB3YXMgT0sgKi8K
LSAgICByZWcgPSBSZWdpb25CZWxvdyggcmVnUHJldiApOwotICAgIGUgPSByZWctPmVVcDsKLSAg
ICBpZiggZS0+T3JnICE9IGVQcmV2LT5PcmcgKSB7Ci0gICAgICBpZiggISByZWctPmZpeFVwcGVy
RWRnZSApIHsKLQkvKiBSZW1vdmUgdGhlIGxhc3QgbGVmdC1nb2luZyBlZGdlLiAgRXZlbiB0aG91
Z2ggdGhlcmUgYXJlIG5vIGZ1cnRoZXIKLQkgKiBlZGdlcyBpbiB0aGUgZGljdGlvbmFyeSB3aXRo
IHRoaXMgb3JpZ2luLCB0aGVyZSBtYXkgYmUgZnVydGhlcgotCSAqIHN1Y2ggZWRnZXMgaW4gdGhl
IG1lc2ggKGlmIHdlIGFyZSBhZGRpbmcgbGVmdCBlZGdlcyB0byBhIHZlcnRleAotCSAqIHRoYXQg
aGFzIGFscmVhZHkgYmVlbiBwcm9jZXNzZWQpLiAgVGh1cyBpdCBpcyBpbXBvcnRhbnQgdG8gY2Fs
bAotCSAqIEZpbmlzaFJlZ2lvbiByYXRoZXIgdGhhbiBqdXN0IERlbGV0ZVJlZ2lvbi4KLQkgKi8K
LQlGaW5pc2hSZWdpb24oIHRlc3MsIHJlZ1ByZXYgKTsKLQlicmVhazsKLSAgICAgIH0KLSAgICAg
IC8qIElmIHRoZSBlZGdlIGJlbG93IHdhcyBhIHRlbXBvcmFyeSBlZGdlIGludHJvZHVjZWQgYnkK
LSAgICAgICAqIENvbm5lY3RSaWdodFZlcnRleCwgbm93IGlzIHRoZSB0aW1lIHRvIGZpeCBpdC4K
LSAgICAgICAqLwotICAgICAgZSA9IF9fZ2xfbWVzaENvbm5lY3QoIGVQcmV2LT5McHJldiwgZS0+
U3ltICk7Ci0gICAgICBpZiAoZSA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgICAg
IGlmICggIUZpeFVwcGVyRWRnZSggcmVnLCBlICkgKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAg
ICB9Ci0KLSAgICAvKiBSZWxpbmsgZWRnZXMgc28gdGhhdCBlUHJldi0+T25leHQgPT0gZSAqLwot
ICAgIGlmKCBlUHJldi0+T25leHQgIT0gZSApIHsKLSAgICAgIGlmICggIV9fZ2xfbWVzaFNwbGlj
ZSggZS0+T3ByZXYsIGUgKSApIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAgICAgaWYgKCAhX19n
bF9tZXNoU3BsaWNlKCBlUHJldiwgZSApICkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7Ci0gICAgfQot
ICAgIEZpbmlzaFJlZ2lvbiggdGVzcywgcmVnUHJldiApOwkvKiBtYXkgY2hhbmdlIHJlZy0+ZVVw
ICovCi0gICAgZVByZXYgPSByZWctPmVVcDsKLSAgICByZWdQcmV2ID0gcmVnOwotICB9Ci0gIHJl
dHVybiBlUHJldjsKLX0KLQotCi1zdGF0aWMgdm9pZCBBZGRSaWdodEVkZ2VzKCBHTFV0ZXNzZWxh
dG9yICp0ZXNzLCBBY3RpdmVSZWdpb24gKnJlZ1VwLAotICAgICAgIEdMVWhhbGZFZGdlICplRmly
c3QsIEdMVWhhbGZFZGdlICplTGFzdCwgR0xVaGFsZkVkZ2UgKmVUb3BMZWZ0LAotICAgICAgIEdM
Ym9vbGVhbiBjbGVhblVwICkKLS8qCi0gKiBQdXJwb3NlOiBpbnNlcnQgcmlnaHQtZ29pbmcgZWRn
ZXMgaW50byB0aGUgZWRnZSBkaWN0aW9uYXJ5LCBhbmQgdXBkYXRlCi0gKiB3aW5kaW5nIG51bWJl
cnMgYW5kIG1lc2ggY29ubmVjdGl2aXR5IGFwcHJvcHJpYXRlbHkuICBBbGwgcmlnaHQtZ29pbmcK
LSAqIGVkZ2VzIHNoYXJlIGEgY29tbW9uIG9yaWdpbiB2T3JnLiAgRWRnZXMgYXJlIGluc2VydGVk
IENDVyBzdGFydGluZyBhdAotICogZUZpcnN0OyB0aGUgbGFzdCBlZGdlIGluc2VydGVkIGlzIGVM
YXN0LT5PcHJldi4gIElmIHZPcmcgaGFzIGFueQotICogbGVmdC1nb2luZyBlZGdlcyBhbHJlYWR5
IHByb2Nlc3NlZCwgdGhlbiBlVG9wTGVmdCBtdXN0IGJlIHRoZSBlZGdlCi0gKiBzdWNoIHRoYXQg
YW4gaW1hZ2luYXJ5IHVwd2FyZCB2ZXJ0aWNhbCBzZWdtZW50IGZyb20gdk9yZyB3b3VsZCBiZQot
ICogY29udGFpbmVkIGJldHdlZW4gZVRvcExlZnQtPk9wcmV2IGFuZCBlVG9wTGVmdDsgb3RoZXJ3
aXNlIGVUb3BMZWZ0Ci0gKiBzaG91bGQgYmUgTlVMTC4KLSAqLwotewotICBBY3RpdmVSZWdpb24g
KnJlZywgKnJlZ1ByZXY7Ci0gIEdMVWhhbGZFZGdlICplLCAqZVByZXY7Ci0gIGludCBmaXJzdFRp
bWUgPSBUUlVFOwotCi0gIC8qIEluc2VydCB0aGUgbmV3IHJpZ2h0LWdvaW5nIGVkZ2VzIGluIHRo
ZSBkaWN0aW9uYXJ5ICovCi0gIGUgPSBlRmlyc3Q7Ci0gIGRvIHsKLSAgICBhc3NlcnQoIFZlcnRM
ZXEoIGUtPk9yZywgZS0+RHN0ICkpOwotICAgIEFkZFJlZ2lvbkJlbG93KCB0ZXNzLCByZWdVcCwg
ZS0+U3ltICk7Ci0gICAgZSA9IGUtPk9uZXh0OwotICB9IHdoaWxlICggZSAhPSBlTGFzdCApOwot
Ci0gIC8qIFdhbGsgKmFsbCogcmlnaHQtZ29pbmcgZWRnZXMgZnJvbSBlLT5PcmcsIGluIHRoZSBk
aWN0aW9uYXJ5IG9yZGVyLAotICAgKiB1cGRhdGluZyB0aGUgd2luZGluZyBudW1iZXJzIG9mIGVh
Y2ggcmVnaW9uLCBhbmQgcmUtbGlua2luZyB0aGUgbWVzaAotICAgKiBlZGdlcyB0byBtYXRjaCB0
aGUgZGljdGlvbmFyeSBvcmRlcmluZyAoaWYgbmVjZXNzYXJ5KS4KLSAgICovCi0gIGlmKCBlVG9w
TGVmdCA9PSBOVUxMICkgewotICAgIGVUb3BMZWZ0ID0gUmVnaW9uQmVsb3coIHJlZ1VwICktPmVV
cC0+UnByZXY7Ci0gIH0KLSAgcmVnUHJldiA9IHJlZ1VwOwotICBlUHJldiA9IGVUb3BMZWZ0Owot
ICBmb3IoIDs7ICkgewotICAgIHJlZyA9IFJlZ2lvbkJlbG93KCByZWdQcmV2ICk7Ci0gICAgZSA9
IHJlZy0+ZVVwLT5TeW07Ci0gICAgaWYoIGUtPk9yZyAhPSBlUHJldi0+T3JnICkgYnJlYWs7Ci0K
LSAgICBpZiggZS0+T25leHQgIT0gZVByZXYgKSB7Ci0gICAgICAvKiBVbmxpbmsgZSBmcm9tIGl0
cyBjdXJyZW50IHBvc2l0aW9uLCBhbmQgcmVsaW5rIGJlbG93IGVQcmV2ICovCi0gICAgICBpZiAo
ICFfX2dsX21lc2hTcGxpY2UoIGUtPk9wcmV2LCBlICkgKSBsb25nam1wKHRlc3MtPmVudiwxKTsK
LSAgICAgIGlmICggIV9fZ2xfbWVzaFNwbGljZSggZVByZXYtPk9wcmV2LCBlICkgKSBsb25nam1w
KHRlc3MtPmVudiwxKTsKLSAgICB9Ci0gICAgLyogQ29tcHV0ZSB0aGUgd2luZGluZyBudW1iZXIg
YW5kICJpbnNpZGUiIGZsYWcgZm9yIHRoZSBuZXcgcmVnaW9ucyAqLwotICAgIHJlZy0+d2luZGlu
Z051bWJlciA9IHJlZ1ByZXYtPndpbmRpbmdOdW1iZXIgLSBlLT53aW5kaW5nOwotICAgIHJlZy0+
aW5zaWRlID0gSXNXaW5kaW5nSW5zaWRlKCB0ZXNzLCByZWctPndpbmRpbmdOdW1iZXIgKTsKLQot
ICAgIC8qIENoZWNrIGZvciB0d28gb3V0Z29pbmcgZWRnZXMgd2l0aCBzYW1lIHNsb3BlIC0tIHBy
b2Nlc3MgdGhlc2UKLSAgICAgKiBiZWZvcmUgYW55IGludGVyc2VjdGlvbiB0ZXN0cyAoc2VlIGV4
YW1wbGUgaW4gX19nbF9jb21wdXRlSW50ZXJpb3IpLgotICAgICAqLwotICAgIHJlZ1ByZXYtPmRp
cnR5ID0gVFJVRTsKLSAgICBpZiggISBmaXJzdFRpbWUgJiYgQ2hlY2tGb3JSaWdodFNwbGljZSgg
dGVzcywgcmVnUHJldiApKSB7Ci0gICAgICBBZGRXaW5kaW5nKCBlLCBlUHJldiApOwotICAgICAg
RGVsZXRlUmVnaW9uKCB0ZXNzLCByZWdQcmV2ICk7Ci0gICAgICBpZiAoICFfX2dsX21lc2hEZWxl
dGUoIGVQcmV2ICkgKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgICB9Ci0gICAgZmlyc3RUaW1l
ID0gRkFMU0U7Ci0gICAgcmVnUHJldiA9IHJlZzsKLSAgICBlUHJldiA9IGU7Ci0gIH0KLSAgcmVn
UHJldi0+ZGlydHkgPSBUUlVFOwotICBhc3NlcnQoIHJlZ1ByZXYtPndpbmRpbmdOdW1iZXIgLSBl
LT53aW5kaW5nID09IHJlZy0+d2luZGluZ051bWJlciApOwotCi0gIGlmKCBjbGVhblVwICkgewot
ICAgIC8qIENoZWNrIGZvciBpbnRlcnNlY3Rpb25zIGJldHdlZW4gbmV3bHkgYWRqYWNlbnQgZWRn
ZXMuICovCi0gICAgV2Fsa0RpcnR5UmVnaW9ucyggdGVzcywgcmVnUHJldiApOwotICB9Ci19Ci0K
LQotc3RhdGljIHZvaWQgQ2FsbENvbWJpbmUoIEdMVXRlc3NlbGF0b3IgKnRlc3MsIEdMVXZlcnRl
eCAqaXNlY3QsCi0JCQkgdm9pZCAqZGF0YVs0XSwgR0xmbG9hdCB3ZWlnaHRzWzRdLCBpbnQgbmVl
ZGVkICkKLXsKLSAgR0xkb3VibGUgY29vcmRzWzNdOwotCi0gIC8qIENvcHkgY29vcmQgZGF0YSBp
biBjYXNlIHRoZSBjYWxsYmFjayBjaGFuZ2VzIGl0LiAqLwotICBjb29yZHNbMF0gPSBpc2VjdC0+
Y29vcmRzWzBdOwotICBjb29yZHNbMV0gPSBpc2VjdC0+Y29vcmRzWzFdOwotICBjb29yZHNbMl0g
PSBpc2VjdC0+Y29vcmRzWzJdOwotCi0gIGlzZWN0LT5kYXRhID0gTlVMTDsKLSAgQ0FMTF9DT01C
SU5FX09SX0NPTUJJTkVfREFUQSggY29vcmRzLCBkYXRhLCB3ZWlnaHRzLCAmaXNlY3QtPmRhdGEg
KTsKLSAgaWYoIGlzZWN0LT5kYXRhID09IE5VTEwgKSB7Ci0gICAgaWYoICEgbmVlZGVkICkgewot
ICAgICAgaXNlY3QtPmRhdGEgPSBkYXRhWzBdOwotICAgIH0gZWxzZSBpZiggISB0ZXNzLT5mYXRh
bEVycm9yICkgewotICAgICAgLyogVGhlIG9ubHkgd2F5IGZhdGFsIGVycm9yIGlzIHdoZW4gdHdv
IGVkZ2VzIGFyZSBmb3VuZCB0byBpbnRlcnNlY3QsCi0gICAgICAgKiBidXQgdGhlIHVzZXIgaGFz
IG5vdCBwcm92aWRlZCB0aGUgY2FsbGJhY2sgbmVjZXNzYXJ5IHRvIGhhbmRsZQotICAgICAgICog
Z2VuZXJhdGVkIGludGVyc2VjdGlvbiBwb2ludHMuCi0gICAgICAgKi8KLSAgICAgIENBTExfRVJS
T1JfT1JfRVJST1JfREFUQSggR0xVX1RFU1NfTkVFRF9DT01CSU5FX0NBTExCQUNLICk7Ci0gICAg
ICB0ZXNzLT5mYXRhbEVycm9yID0gVFJVRTsKLSAgICB9Ci0gIH0KLX0KLQotc3RhdGljIHZvaWQg
U3BsaWNlTWVyZ2VWZXJ0aWNlcyggR0xVdGVzc2VsYXRvciAqdGVzcywgR0xVaGFsZkVkZ2UgKmUx
LAotCQkJCSBHTFVoYWxmRWRnZSAqZTIgKQotLyoKLSAqIFR3byB2ZXJ0aWNlcyB3aXRoIGlkZW50
aWFsIGNvb3JkaW5hdGVzIGFyZSBjb21iaW5lZCBpbnRvIG9uZS4KLSAqIGUxLT5PcmcgaXMga2Vw
dCwgd2hpbGUgZTItPk9yZyBpcyBkaXNjYXJkZWQuCi0gKi8KLXsKLSAgdm9pZCAqZGF0YVs0XSA9
IHsgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9OwotICBHTGZsb2F0IHdlaWdodHNbNF0gPSB7IDAu
NSwgMC41LCAwLjAsIDAuMCB9OwotCi0gIGRhdGFbMF0gPSBlMS0+T3JnLT5kYXRhOwotICBkYXRh
WzFdID0gZTItPk9yZy0+ZGF0YTsKLSAgQ2FsbENvbWJpbmUoIHRlc3MsIGUxLT5PcmcsIGRhdGEs
IHdlaWdodHMsIEZBTFNFICk7Ci0gIGlmICggIV9fZ2xfbWVzaFNwbGljZSggZTEsIGUyICkgKSBs
b25nam1wKHRlc3MtPmVudiwxKTsgCi19Ci0KLXN0YXRpYyB2b2lkIFZlcnRleFdlaWdodHMoIEdM
VXZlcnRleCAqaXNlY3QsIEdMVXZlcnRleCAqb3JnLCBHTFV2ZXJ0ZXggKmRzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdMZmxvYXQgKndlaWdodHMgKQotLyoKLSAqIEZpbmQgc29tZSB3
ZWlnaHRzIHdoaWNoIGRlc2NyaWJlIGhvdyB0aGUgaW50ZXJzZWN0aW9uIHZlcnRleCBpcwotICog
YSBsaW5lYXIgY29tYmluYXRpb24gb2YgIm9yZyIgYW5kICJkZXN0Ii4gIEVhY2ggb2YgdGhlIHR3
byBlZGdlcwotICogd2hpY2ggZ2VuZXJhdGVkICJpc2VjdCIgaXMgYWxsb2NhdGVkIDUwJSBvZiB0
aGUgd2VpZ2h0OyBlYWNoIGVkZ2UKLSAqIHNwbGl0cyB0aGUgd2VpZ2h0IGJldHdlZW4gaXRzIG9y
ZyBhbmQgZHN0IGFjY29yZGluZyB0byB0aGUKLSAqIHJlbGF0aXZlIGRpc3RhbmNlIHRvICJpc2Vj
dCIuCi0gKi8KLXsKLSAgR0xkb3VibGUgdDEgPSBWZXJ0TDFkaXN0KCBvcmcsIGlzZWN0ICk7Ci0g
IEdMZG91YmxlIHQyID0gVmVydEwxZGlzdCggZHN0LCBpc2VjdCApOwotCi0gIHdlaWdodHNbMF0g
PSAwLjUgKiB0MiAvICh0MSArIHQyKTsKLSAgd2VpZ2h0c1sxXSA9IDAuNSAqIHQxIC8gKHQxICsg
dDIpOwotICBpc2VjdC0+Y29vcmRzWzBdICs9IHdlaWdodHNbMF0qb3JnLT5jb29yZHNbMF0gKyB3
ZWlnaHRzWzFdKmRzdC0+Y29vcmRzWzBdOwotICBpc2VjdC0+Y29vcmRzWzFdICs9IHdlaWdodHNb
MF0qb3JnLT5jb29yZHNbMV0gKyB3ZWlnaHRzWzFdKmRzdC0+Y29vcmRzWzFdOwotICBpc2VjdC0+
Y29vcmRzWzJdICs9IHdlaWdodHNbMF0qb3JnLT5jb29yZHNbMl0gKyB3ZWlnaHRzWzFdKmRzdC0+
Y29vcmRzWzJdOwotfQotCi0KLXN0YXRpYyB2b2lkIEdldEludGVyc2VjdERhdGEoIEdMVXRlc3Nl
bGF0b3IgKnRlc3MsIEdMVXZlcnRleCAqaXNlY3QsCi0gICAgICAgR0xVdmVydGV4ICpvcmdVcCwg
R0xVdmVydGV4ICpkc3RVcCwKLSAgICAgICBHTFV2ZXJ0ZXggKm9yZ0xvLCBHTFV2ZXJ0ZXggKmRz
dExvICkKLS8qCi0gKiBXZSd2ZSBjb21wdXRlZCBhIG5ldyBpbnRlcnNlY3Rpb24gcG9pbnQsIG5v
dyB3ZSBuZWVkIGEgImRhdGEiIHBvaW50ZXIKLSAqIGZyb20gdGhlIHVzZXIgc28gdGhhdCB3ZSBj
YW4gcmVmZXIgdG8gdGhpcyBuZXcgdmVydGV4IGluIHRoZQotICogcmVuZGVyaW5nIGNhbGxiYWNr
cy4KLSAqLwotewotICB2b2lkICpkYXRhWzRdOwotICBHTGZsb2F0IHdlaWdodHNbNF07Ci0KLSAg
ZGF0YVswXSA9IG9yZ1VwLT5kYXRhOwotICBkYXRhWzFdID0gZHN0VXAtPmRhdGE7Ci0gIGRhdGFb
Ml0gPSBvcmdMby0+ZGF0YTsKLSAgZGF0YVszXSA9IGRzdExvLT5kYXRhOwotCi0gIGlzZWN0LT5j
b29yZHNbMF0gPSBpc2VjdC0+Y29vcmRzWzFdID0gaXNlY3QtPmNvb3Jkc1syXSA9IDA7Ci0gIFZl
cnRleFdlaWdodHMoIGlzZWN0LCBvcmdVcCwgZHN0VXAsICZ3ZWlnaHRzWzBdICk7Ci0gIFZlcnRl
eFdlaWdodHMoIGlzZWN0LCBvcmdMbywgZHN0TG8sICZ3ZWlnaHRzWzJdICk7Ci0KLSAgQ2FsbENv
bWJpbmUoIHRlc3MsIGlzZWN0LCBkYXRhLCB3ZWlnaHRzLCBUUlVFICk7Ci19Ci0KLXN0YXRpYyBp
bnQgQ2hlY2tGb3JSaWdodFNwbGljZSggR0xVdGVzc2VsYXRvciAqdGVzcywgQWN0aXZlUmVnaW9u
ICpyZWdVcCApCi0vKgotICogQ2hlY2sgdGhlIHVwcGVyIGFuZCBsb3dlciBlZGdlIG9mICJyZWdV
cCIsIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZQotICogZVVwLT5PcmcgaXMgYWJvdmUgZUxvLCBvciBl
TG8tPk9yZyBpcyBiZWxvdyBlVXAgKGRlcGVuZGluZyBvbiB3aGljaAotICogb3JpZ2luIGlzIGxl
ZnRtb3N0KS4KLSAqCi0gKiBUaGUgbWFpbiBwdXJwb3NlIGlzIHRvIHNwbGljZSByaWdodC1nb2lu
ZyBlZGdlcyB3aXRoIHRoZSBzYW1lCi0gKiBkZXN0IHZlcnRleCBhbmQgbmVhcmx5IGlkZW50aWNh
bCBzbG9wZXMgKGllLiB3ZSBjYW4ndCBkaXN0aW5ndWlzaAotICogdGhlIHNsb3BlcyBudW1lcmlj
YWxseSkuICBIb3dldmVyIHRoZSBzcGxpY2luZyBjYW4gYWxzbyBoZWxwIHVzCi0gKiB0byByZWNv
dmVyIGZyb20gbnVtZXJpY2FsIGVycm9ycy4gIEZvciBleGFtcGxlLCBzdXBwb3NlIGF0IG9uZQot
ICogcG9pbnQgd2UgY2hlY2tlZCBlVXAgYW5kIGVMbywgYW5kIGRlY2lkZWQgdGhhdCBlVXAtPk9y
ZyBpcyBiYXJlbHkKLSAqIGFib3ZlIGVMby4gIFRoZW4gbGF0ZXIsIHdlIHNwbGl0IGVMbyBpbnRv
IHR3byBlZGdlcyAoZWcuIGZyb20KLSAqIGEgc3BsaWNlIG9wZXJhdGlvbiBsaWtlIHRoaXMgb25l
KS4gIFRoaXMgY2FuIGNoYW5nZSB0aGUgcmVzdWx0IG9mCi0gKiBvdXIgdGVzdCBzbyB0aGF0IG5v
dyBlVXAtPk9yZyBpcyBpbmNpZGVudCB0byBlTG8sIG9yIGJhcmVseSBiZWxvdyBpdC4KLSAqIFdl
IG11c3QgY29ycmVjdCB0aGlzIGNvbmRpdGlvbiB0byBtYWludGFpbiB0aGUgZGljdGlvbmFyeSBp
bnZhcmlhbnRzLgotICoKLSAqIE9uZSBwb3NzaWJpbGl0eSBpcyB0byBjaGVjayB0aGVzZSBlZGdl
cyBmb3IgaW50ZXJzZWN0aW9uIGFnYWluCi0gKiAoaWUuIENoZWNrRm9ySW50ZXJzZWN0KS4gIFRo
aXMgaXMgd2hhdCB3ZSBkbyBpZiBwb3NzaWJsZS4gIEhvd2V2ZXIKLSAqIENoZWNrRm9ySW50ZXJz
ZWN0IHJlcXVpcmVzIHRoYXQgdGVzcy0+ZXZlbnQgbGllcyBiZXR3ZWVuIGVVcCBhbmQgZUxvLAot
ICogc28gdGhhdCBpdCBoYXMgc29tZXRoaW5nIHRvIGZhbGwgYmFjayBvbiB3aGVuIHRoZSBpbnRl
cnNlY3Rpb24KLSAqIGNhbGN1bGF0aW9uIGdpdmVzIHVzIGFuIHVudXNhYmxlIGFuc3dlci4gIFNv
LCBmb3IgdGhvc2UgY2FzZXMgd2hlcmUKLSAqIHdlIGNhbid0IGNoZWNrIGZvciBpbnRlcnNlY3Rp
b24sIHRoaXMgcm91dGluZSBmaXhlcyB0aGUgcHJvYmxlbQotICogYnkganVzdCBzcGxpY2luZyB0
aGUgb2ZmZW5kaW5nIHZlcnRleCBpbnRvIHRoZSBvdGhlciBlZGdlLgotICogVGhpcyBpcyBhIGd1
YXJhbnRlZWQgc29sdXRpb24sIG5vIG1hdHRlciBob3cgZGVnZW5lcmF0ZSB0aGluZ3MgZ2V0Lgot
ICogQmFzaWNhbGx5IHRoaXMgaXMgYSBjb21iaW5hdG9yaWFsIHNvbHV0aW9uIHRvIGEgbnVtZXJp
Y2FsIHByb2JsZW0uCi0gKi8KLXsKLSAgQWN0aXZlUmVnaW9uICpyZWdMbyA9IFJlZ2lvbkJlbG93
KHJlZ1VwKTsKLSAgR0xVaGFsZkVkZ2UgKmVVcCA9IHJlZ1VwLT5lVXA7Ci0gIEdMVWhhbGZFZGdl
ICplTG8gPSByZWdMby0+ZVVwOwotCi0gIGlmKCBWZXJ0TGVxKCBlVXAtPk9yZywgZUxvLT5Pcmcg
KSkgewotICAgIGlmKCBFZGdlU2lnbiggZUxvLT5Ec3QsIGVVcC0+T3JnLCBlTG8tPk9yZyApID4g
MCApIHJldHVybiBGQUxTRTsKLQotICAgIC8qIGVVcC0+T3JnIGFwcGVhcnMgdG8gYmUgYmVsb3cg
ZUxvICovCi0gICAgaWYoICEgVmVydEVxKCBlVXAtPk9yZywgZUxvLT5PcmcgKSkgewotICAgICAg
LyogU3BsaWNlIGVVcC0+T3JnIGludG8gZUxvICovCi0gICAgICBpZiAoIF9fZ2xfbWVzaFNwbGl0
RWRnZSggZUxvLT5TeW0gKSA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgICAgIGlm
ICggIV9fZ2xfbWVzaFNwbGljZSggZVVwLCBlTG8tPk9wcmV2ICkgKSBsb25nam1wKHRlc3MtPmVu
diwxKTsKLSAgICAgIHJlZ1VwLT5kaXJ0eSA9IHJlZ0xvLT5kaXJ0eSA9IFRSVUU7Ci0KLSAgICB9
IGVsc2UgaWYoIGVVcC0+T3JnICE9IGVMby0+T3JnICkgewotICAgICAgLyogbWVyZ2UgdGhlIHR3
byB2ZXJ0aWNlcywgZGlzY2FyZGluZyBlVXAtPk9yZyAqLwotICAgICAgcHFEZWxldGUoIHRlc3Mt
PnBxLCBlVXAtPk9yZy0+cHFIYW5kbGUgKTsgLyogX19nbF9wcVNvcnREZWxldGUgKi8KLSAgICAg
IFNwbGljZU1lcmdlVmVydGljZXMoIHRlc3MsIGVMby0+T3ByZXYsIGVVcCApOwotICAgIH0KLSAg
fSBlbHNlIHsKLSAgICBpZiggRWRnZVNpZ24oIGVVcC0+RHN0LCBlTG8tPk9yZywgZVVwLT5Pcmcg
KSA8IDAgKSByZXR1cm4gRkFMU0U7Ci0KLSAgICAvKiBlTG8tPk9yZyBhcHBlYXJzIHRvIGJlIGFi
b3ZlIGVVcCwgc28gc3BsaWNlIGVMby0+T3JnIGludG8gZVVwICovCi0gICAgUmVnaW9uQWJvdmUo
cmVnVXApLT5kaXJ0eSA9IHJlZ1VwLT5kaXJ0eSA9IFRSVUU7Ci0gICAgaWYgKF9fZ2xfbWVzaFNw
bGl0RWRnZSggZVVwLT5TeW0gKSA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgICBp
ZiAoICFfX2dsX21lc2hTcGxpY2UoIGVMby0+T3ByZXYsIGVVcCApICkgbG9uZ2ptcCh0ZXNzLT5l
bnYsMSk7Ci0gIH0KLSAgcmV0dXJuIFRSVUU7Ci19Ci0KLXN0YXRpYyBpbnQgQ2hlY2tGb3JMZWZ0
U3BsaWNlKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBBY3RpdmVSZWdpb24gKnJlZ1VwICkKLS8qCi0g
KiBDaGVjayB0aGUgdXBwZXIgYW5kIGxvd2VyIGVkZ2Ugb2YgInJlZ1VwIiwgdG8gbWFrZSBzdXJl
IHRoYXQgdGhlCi0gKiBlVXAtPkRzdCBpcyBhYm92ZSBlTG8sIG9yIGVMby0+RHN0IGlzIGJlbG93
IGVVcCAoZGVwZW5kaW5nIG9uIHdoaWNoCi0gKiBkZXN0aW5hdGlvbiBpcyByaWdodG1vc3QpLgot
ICoKLSAqIFRoZW9yZXRpY2FsbHksIHRoaXMgc2hvdWxkIGFsd2F5cyBiZSB0cnVlLiAgSG93ZXZl
ciwgc3BsaXR0aW5nIGFuIGVkZ2UKLSAqIGludG8gdHdvIHBpZWNlcyBjYW4gY2hhbmdlIHRoZSBy
ZXN1bHRzIG9mIHByZXZpb3VzIHRlc3RzLiAgRm9yIGV4YW1wbGUsCi0gKiBzdXBwb3NlIGF0IG9u
ZSBwb2ludCB3ZSBjaGVja2VkIGVVcCBhbmQgZUxvLCBhbmQgZGVjaWRlZCB0aGF0IGVVcC0+RHN0
Ci0gKiBpcyBiYXJlbHkgYWJvdmUgZUxvLiAgVGhlbiBsYXRlciwgd2Ugc3BsaXQgZUxvIGludG8g
dHdvIGVkZ2VzIChlZy4gZnJvbQotICogYSBzcGxpY2Ugb3BlcmF0aW9uIGxpa2UgdGhpcyBvbmUp
LiAgVGhpcyBjYW4gY2hhbmdlIHRoZSByZXN1bHQgb2YKLSAqIHRoZSB0ZXN0IHNvIHRoYXQgbm93
IGVVcC0+RHN0IGlzIGluY2lkZW50IHRvIGVMbywgb3IgYmFyZWx5IGJlbG93IGl0LgotICogV2Ug
bXVzdCBjb3JyZWN0IHRoaXMgY29uZGl0aW9uIHRvIG1haW50YWluIHRoZSBkaWN0aW9uYXJ5IGlu
dmFyaWFudHMKLSAqIChvdGhlcndpc2UgbmV3IGVkZ2VzIG1pZ2h0IGdldCBpbnNlcnRlZCBpbiB0
aGUgd3JvbmcgcGxhY2UgaW4gdGhlCi0gKiBkaWN0aW9uYXJ5LCBhbmQgYmFkIHN0dWZmIHdpbGwg
aGFwcGVuKS4KLSAqCi0gKiBXZSBmaXggdGhlIHByb2JsZW0gYnkganVzdCBzcGxpY2luZyB0aGUg
b2ZmZW5kaW5nIHZlcnRleCBpbnRvIHRoZQotICogb3RoZXIgZWRnZS4KLSAqLwotewotICBBY3Rp
dmVSZWdpb24gKnJlZ0xvID0gUmVnaW9uQmVsb3cocmVnVXApOwotICBHTFVoYWxmRWRnZSAqZVVw
ID0gcmVnVXAtPmVVcDsKLSAgR0xVaGFsZkVkZ2UgKmVMbyA9IHJlZ0xvLT5lVXA7Ci0gIEdMVWhh
bGZFZGdlICplOwotCi0gIGFzc2VydCggISBWZXJ0RXEoIGVVcC0+RHN0LCBlTG8tPkRzdCApKTsK
LQotICBpZiggVmVydExlcSggZVVwLT5Ec3QsIGVMby0+RHN0ICkpIHsKLSAgICBpZiggRWRnZVNp
Z24oIGVVcC0+RHN0LCBlTG8tPkRzdCwgZVVwLT5PcmcgKSA8IDAgKSByZXR1cm4gRkFMU0U7Ci0K
LSAgICAvKiBlTG8tPkRzdCBpcyBhYm92ZSBlVXAsIHNvIHNwbGljZSBlTG8tPkRzdCBpbnRvIGVV
cCAqLwotICAgIFJlZ2lvbkFib3ZlKHJlZ1VwKS0+ZGlydHkgPSByZWdVcC0+ZGlydHkgPSBUUlVF
OwotICAgIGUgPSBfX2dsX21lc2hTcGxpdEVkZ2UoIGVVcCApOwotICAgIGlmIChlID09IE5VTEwp
IGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAgIGlmICggIV9fZ2xfbWVzaFNwbGljZSggZUxvLT5T
eW0sIGUgKSApIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAgIGUtPkxmYWNlLT5pbnNpZGUgPSBy
ZWdVcC0+aW5zaWRlOwotICB9IGVsc2UgewotICAgIGlmKCBFZGdlU2lnbiggZUxvLT5Ec3QsIGVV
cC0+RHN0LCBlTG8tPk9yZyApID4gMCApIHJldHVybiBGQUxTRTsKLQotICAgIC8qIGVVcC0+RHN0
IGlzIGJlbG93IGVMbywgc28gc3BsaWNlIGVVcC0+RHN0IGludG8gZUxvICovCi0gICAgcmVnVXAt
PmRpcnR5ID0gcmVnTG8tPmRpcnR5ID0gVFJVRTsKLSAgICBlID0gX19nbF9tZXNoU3BsaXRFZGdl
KCBlTG8gKTsKLSAgICBpZiAoZSA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsgICAgCi0g
ICAgaWYgKCAhX19nbF9tZXNoU3BsaWNlKCBlVXAtPkxuZXh0LCBlTG8tPlN5bSApICkgbG9uZ2pt
cCh0ZXNzLT5lbnYsMSk7Ci0gICAgZS0+UmZhY2UtPmluc2lkZSA9IHJlZ1VwLT5pbnNpZGU7Ci0g
IH0KLSAgcmV0dXJuIFRSVUU7Ci19Ci0KLQotc3RhdGljIGludCBDaGVja0ZvckludGVyc2VjdCgg
R0xVdGVzc2VsYXRvciAqdGVzcywgQWN0aXZlUmVnaW9uICpyZWdVcCApCi0vKgotICogQ2hlY2sg
dGhlIHVwcGVyIGFuZCBsb3dlciBlZGdlcyBvZiB0aGUgZ2l2ZW4gcmVnaW9uIHRvIHNlZSBpZgot
ICogdGhleSBpbnRlcnNlY3QuICBJZiBzbywgY3JlYXRlIHRoZSBpbnRlcnNlY3Rpb24gYW5kIGFk
ZCBpdAotICogdG8gdGhlIGRhdGEgc3RydWN0dXJlcy4KLSAqCi0gKiBSZXR1cm5zIFRSVUUgaWYg
YWRkaW5nIHRoZSBuZXcgaW50ZXJzZWN0aW9uIHJlc3VsdGVkIGluIGEgcmVjdXJzaXZlCi0gKiBj
YWxsIHRvIEFkZFJpZ2h0RWRnZXMoKTsgaW4gdGhpcyBjYXNlIGFsbCAiZGlydHkiIHJlZ2lvbnMg
aGF2ZSBiZWVuCi0gKiBjaGVja2VkIGZvciBpbnRlcnNlY3Rpb25zLCBhbmQgcG9zc2libHkgcmVn
VXAgaGFzIGJlZW4gZGVsZXRlZC4KLSAqLwotewotICBBY3RpdmVSZWdpb24gKnJlZ0xvID0gUmVn
aW9uQmVsb3cocmVnVXApOwotICBHTFVoYWxmRWRnZSAqZVVwID0gcmVnVXAtPmVVcDsKLSAgR0xV
aGFsZkVkZ2UgKmVMbyA9IHJlZ0xvLT5lVXA7Ci0gIEdMVXZlcnRleCAqb3JnVXAgPSBlVXAtPk9y
ZzsKLSAgR0xVdmVydGV4ICpvcmdMbyA9IGVMby0+T3JnOwotICBHTFV2ZXJ0ZXggKmRzdFVwID0g
ZVVwLT5Ec3Q7Ci0gIEdMVXZlcnRleCAqZHN0TG8gPSBlTG8tPkRzdDsKLSAgR0xkb3VibGUgdE1p
blVwLCB0TWF4TG87Ci0gIEdMVXZlcnRleCBpc2VjdCwgKm9yZ01pbjsKLSAgR0xVaGFsZkVkZ2Ug
KmU7Ci0KLSAgYXNzZXJ0KCAhIFZlcnRFcSggZHN0TG8sIGRzdFVwICkpOwotICBhc3NlcnQoIEVk
Z2VTaWduKCBkc3RVcCwgdGVzcy0+ZXZlbnQsIG9yZ1VwICkgPD0gMCApOwotICBhc3NlcnQoIEVk
Z2VTaWduKCBkc3RMbywgdGVzcy0+ZXZlbnQsIG9yZ0xvICkgPj0gMCApOwotICBhc3NlcnQoIG9y
Z1VwICE9IHRlc3MtPmV2ZW50ICYmIG9yZ0xvICE9IHRlc3MtPmV2ZW50ICk7Ci0gIGFzc2VydCgg
ISByZWdVcC0+Zml4VXBwZXJFZGdlICYmICEgcmVnTG8tPmZpeFVwcGVyRWRnZSApOwotCi0gIGlm
KCBvcmdVcCA9PSBvcmdMbyApIHJldHVybiBGQUxTRTsJLyogcmlnaHQgZW5kcG9pbnRzIGFyZSB0
aGUgc2FtZSAqLwotCi0gIHRNaW5VcCA9IE1JTiggb3JnVXAtPnQsIGRzdFVwLT50ICk7Ci0gIHRN
YXhMbyA9IE1BWCggb3JnTG8tPnQsIGRzdExvLT50ICk7Ci0gIGlmKCB0TWluVXAgPiB0TWF4TG8g
KSByZXR1cm4gRkFMU0U7CS8qIHQgcmFuZ2VzIGRvIG5vdCBvdmVybGFwICovCi0KLSAgaWYoIFZl
cnRMZXEoIG9yZ1VwLCBvcmdMbyApKSB7Ci0gICAgaWYoIEVkZ2VTaWduKCBkc3RMbywgb3JnVXAs
IG9yZ0xvICkgPiAwICkgcmV0dXJuIEZBTFNFOwotICB9IGVsc2UgewotICAgIGlmKCBFZGdlU2ln
biggZHN0VXAsIG9yZ0xvLCBvcmdVcCApIDwgMCApIHJldHVybiBGQUxTRTsKLSAgfQotCi0gIC8q
IEF0IHRoaXMgcG9pbnQgdGhlIGVkZ2VzIGludGVyc2VjdCwgYXQgbGVhc3QgbWFyZ2luYWxseSAq
LwotICBEZWJ1Z0V2ZW50KCB0ZXNzICk7Ci0KLSAgX19nbF9lZGdlSW50ZXJzZWN0KCBkc3RVcCwg
b3JnVXAsIGRzdExvLCBvcmdMbywgJmlzZWN0ICk7Ci0gIC8qIFRoZSBmb2xsb3dpbmcgcHJvcGVy
dGllcyBhcmUgZ3VhcmFudGVlZDogKi8KLSAgYXNzZXJ0KCBNSU4oIG9yZ1VwLT50LCBkc3RVcC0+
dCApIDw9IGlzZWN0LnQgKTsKLSAgYXNzZXJ0KCBpc2VjdC50IDw9IE1BWCggb3JnTG8tPnQsIGRz
dExvLT50ICkpOwotICBhc3NlcnQoIE1JTiggZHN0TG8tPnMsIGRzdFVwLT5zICkgPD0gaXNlY3Qu
cyApOwotICBhc3NlcnQoIGlzZWN0LnMgPD0gTUFYKCBvcmdMby0+cywgb3JnVXAtPnMgKSk7Ci0K
LSAgaWYoIFZlcnRMZXEoICZpc2VjdCwgdGVzcy0+ZXZlbnQgKSkgewotICAgIC8qIFRoZSBpbnRl
cnNlY3Rpb24gcG9pbnQgbGllcyBzbGlnaHRseSB0byB0aGUgbGVmdCBvZiB0aGUgc3dlZXAgbGlu
ZSwKLSAgICAgKiBzbyBtb3ZlIGl0IHVudGlsIGl0JydzIHNsaWdodGx5IHRvIHRoZSByaWdodCBv
ZiB0aGUgc3dlZXAgbGluZS4KLSAgICAgKiAoSWYgd2UgaGFkIHBlcmZlY3QgbnVtZXJpY2FsIHBy
ZWNpc2lvbiwgdGhpcyB3b3VsZCBuZXZlciBoYXBwZW4KLSAgICAgKiBpbiB0aGUgZmlyc3QgcGxh
Y2UpLiAgVGhlIGVhc2llc3QgYW5kIHNhZmVzdCB0aGluZyB0byBkbyBpcwotICAgICAqIHJlcGxh
Y2UgdGhlIGludGVyc2VjdGlvbiBieSB0ZXNzLT5ldmVudC4KLSAgICAgKi8KLSAgICBpc2VjdC5z
ID0gdGVzcy0+ZXZlbnQtPnM7Ci0gICAgaXNlY3QudCA9IHRlc3MtPmV2ZW50LT50OwotICB9Ci0g
IC8qIFNpbWlsYXJseSwgaWYgdGhlIGNvbXB1dGVkIGludGVyc2VjdGlvbiBsaWVzIHRvIHRoZSBy
aWdodCBvZiB0aGUKLSAgICogcmlnaHRtb3N0IG9yaWdpbiAod2hpY2ggc2hvdWxkIHJhcmVseSBo
YXBwZW4pLCBpdCBjYW4gY2F1c2UKLSAgICogdW5iZWxpZXZhYmxlIGluZWZmaWNpZW5jeSBvbiBz
dWZmaWNpZW50bHkgZGVnZW5lcmF0ZSBpbnB1dHMuCi0gICAqIChJZiB5b3UgaGF2ZSB0aGUgdGVz
dCBwcm9ncmFtLCB0cnkgcnVubmluZyB0ZXN0NTQuZCB3aXRoIHRoZQotICAgKiAiWCB6b29tIiBv
cHRpb24gdHVybmVkIG9uKS4KLSAgICovCi0gIG9yZ01pbiA9IFZlcnRMZXEoIG9yZ1VwLCBvcmdM
byApID8gb3JnVXAgOiBvcmdMbzsKLSAgaWYoIFZlcnRMZXEoIG9yZ01pbiwgJmlzZWN0ICkpIHsK
LSAgICBpc2VjdC5zID0gb3JnTWluLT5zOwotICAgIGlzZWN0LnQgPSBvcmdNaW4tPnQ7Ci0gIH0K
LQotICBpZiggVmVydEVxKCAmaXNlY3QsIG9yZ1VwICkgfHwgVmVydEVxKCAmaXNlY3QsIG9yZ0xv
ICkpIHsKLSAgICAvKiBFYXN5IGNhc2UgLS0gaW50ZXJzZWN0aW9uIGF0IG9uZSBvZiB0aGUgcmln
aHQgZW5kcG9pbnRzICovCi0gICAgKHZvaWQpIENoZWNrRm9yUmlnaHRTcGxpY2UoIHRlc3MsIHJl
Z1VwICk7Ci0gICAgcmV0dXJuIEZBTFNFOwotICB9Ci0KLSAgaWYoICAgICghIFZlcnRFcSggZHN0
VXAsIHRlc3MtPmV2ZW50ICkKLQkgICYmIEVkZ2VTaWduKCBkc3RVcCwgdGVzcy0+ZXZlbnQsICZp
c2VjdCApID49IDApCi0gICAgICB8fCAoISBWZXJ0RXEoIGRzdExvLCB0ZXNzLT5ldmVudCApCi0J
ICAmJiBFZGdlU2lnbiggZHN0TG8sIHRlc3MtPmV2ZW50LCAmaXNlY3QgKSA8PSAwICkpCi0gIHsK
LSAgICAvKiBWZXJ5IHVudXN1YWwgLS0gdGhlIG5ldyB1cHBlciBvciBsb3dlciBlZGdlIHdvdWxk
IHBhc3Mgb24gdGhlCi0gICAgICogd3Jvbmcgc2lkZSBvZiB0aGUgc3dlZXAgZXZlbnQsIG9yIHRo
cm91Z2ggaXQuICBUaGlzIGNhbiBoYXBwZW4KLSAgICAgKiBkdWUgdG8gdmVyeSBzbWFsbCBudW1l
cmljYWwgZXJyb3JzIGluIHRoZSBpbnRlcnNlY3Rpb24gY2FsY3VsYXRpb24uCi0gICAgICovCi0g
ICAgaWYoIGRzdExvID09IHRlc3MtPmV2ZW50ICkgewotICAgICAgLyogU3BsaWNlIGRzdExvIGlu
dG8gZVVwLCBhbmQgcHJvY2VzcyB0aGUgbmV3IHJlZ2lvbihzKSAqLwotICAgICAgaWYgKF9fZ2xf
bWVzaFNwbGl0RWRnZSggZVVwLT5TeW0gKSA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsK
LSAgICAgIGlmICggIV9fZ2xfbWVzaFNwbGljZSggZUxvLT5TeW0sIGVVcCApICkgbG9uZ2ptcCh0
ZXNzLT5lbnYsMSk7Ci0gICAgICByZWdVcCA9IFRvcExlZnRSZWdpb24oIHJlZ1VwICk7Ci0gICAg
ICBpZiAocmVnVXAgPT0gTlVMTCkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7Ci0gICAgICBlVXAgPSBS
ZWdpb25CZWxvdyhyZWdVcCktPmVVcDsKLSAgICAgIEZpbmlzaExlZnRSZWdpb25zKCB0ZXNzLCBS
ZWdpb25CZWxvdyhyZWdVcCksIHJlZ0xvICk7Ci0gICAgICBBZGRSaWdodEVkZ2VzKCB0ZXNzLCBy
ZWdVcCwgZVVwLT5PcHJldiwgZVVwLCBlVXAsIFRSVUUgKTsKLSAgICAgIHJldHVybiBUUlVFOwot
ICAgIH0KLSAgICBpZiggZHN0VXAgPT0gdGVzcy0+ZXZlbnQgKSB7Ci0gICAgICAvKiBTcGxpY2Ug
ZHN0VXAgaW50byBlTG8sIGFuZCBwcm9jZXNzIHRoZSBuZXcgcmVnaW9uKHMpICovCi0gICAgICBp
ZiAoX19nbF9tZXNoU3BsaXRFZGdlKCBlTG8tPlN5bSApID09IE5VTEwpIGxvbmdqbXAodGVzcy0+
ZW52LDEpOwotICAgICAgaWYgKCAhX19nbF9tZXNoU3BsaWNlKCBlVXAtPkxuZXh0LCBlTG8tPk9w
cmV2ICkgKSBsb25nam1wKHRlc3MtPmVudiwxKTsgCi0gICAgICByZWdMbyA9IHJlZ1VwOwotICAg
ICAgcmVnVXAgPSBUb3BSaWdodFJlZ2lvbiggcmVnVXAgKTsKLSAgICAgIGUgPSBSZWdpb25CZWxv
dyhyZWdVcCktPmVVcC0+UnByZXY7Ci0gICAgICByZWdMby0+ZVVwID0gZUxvLT5PcHJldjsKLSAg
ICAgIGVMbyA9IEZpbmlzaExlZnRSZWdpb25zKCB0ZXNzLCByZWdMbywgTlVMTCApOwotICAgICAg
QWRkUmlnaHRFZGdlcyggdGVzcywgcmVnVXAsIGVMby0+T25leHQsIGVVcC0+UnByZXYsIGUsIFRS
VUUgKTsKLSAgICAgIHJldHVybiBUUlVFOwotICAgIH0KLSAgICAvKiBTcGVjaWFsIGNhc2U6IGNh
bGxlZCBmcm9tIENvbm5lY3RSaWdodFZlcnRleC4gIElmIGVpdGhlcgotICAgICAqIGVkZ2UgcGFz
c2VzIG9uIHRoZSB3cm9uZyBzaWRlIG9mIHRlc3MtPmV2ZW50LCBzcGxpdCBpdAotICAgICAqIChh
bmQgd2FpdCBmb3IgQ29ubmVjdFJpZ2h0VmVydGV4IHRvIHNwbGljZSBpdCBhcHByb3ByaWF0ZWx5
KS4KLSAgICAgKi8KLSAgICBpZiggRWRnZVNpZ24oIGRzdFVwLCB0ZXNzLT5ldmVudCwgJmlzZWN0
ICkgPj0gMCApIHsKLSAgICAgIFJlZ2lvbkFib3ZlKHJlZ1VwKS0+ZGlydHkgPSByZWdVcC0+ZGly
dHkgPSBUUlVFOwotICAgICAgaWYgKF9fZ2xfbWVzaFNwbGl0RWRnZSggZVVwLT5TeW0gKSA9PSBO
VUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgICAgIGVVcC0+T3JnLT5zID0gdGVzcy0+ZXZl
bnQtPnM7Ci0gICAgICBlVXAtPk9yZy0+dCA9IHRlc3MtPmV2ZW50LT50OwotICAgIH0KLSAgICBp
ZiggRWRnZVNpZ24oIGRzdExvLCB0ZXNzLT5ldmVudCwgJmlzZWN0ICkgPD0gMCApIHsKLSAgICAg
IHJlZ1VwLT5kaXJ0eSA9IHJlZ0xvLT5kaXJ0eSA9IFRSVUU7Ci0gICAgICBpZiAoX19nbF9tZXNo
U3BsaXRFZGdlKCBlTG8tPlN5bSApID09IE5VTEwpIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAg
ICAgZUxvLT5PcmctPnMgPSB0ZXNzLT5ldmVudC0+czsKLSAgICAgIGVMby0+T3JnLT50ID0gdGVz
cy0+ZXZlbnQtPnQ7Ci0gICAgfQotICAgIC8qIGxlYXZlIHRoZSByZXN0IGZvciBDb25uZWN0Umln
aHRWZXJ0ZXggKi8KLSAgICByZXR1cm4gRkFMU0U7Ci0gIH0KLQotICAvKiBHZW5lcmFsIGNhc2Ug
LS0gc3BsaXQgYm90aCBlZGdlcywgc3BsaWNlIGludG8gbmV3IHZlcnRleC4KLSAgICogV2hlbiB3
ZSBkbyB0aGUgc3BsaWNlIG9wZXJhdGlvbiwgdGhlIG9yZGVyIG9mIHRoZSBhcmd1bWVudHMgaXMK
LSAgICogYXJiaXRyYXJ5IGFzIGZhciBhcyBjb3JyZWN0bmVzcyBnb2VzLiAgSG93ZXZlciwgd2hl
biB0aGUgb3BlcmF0aW9uCi0gICAqIGNyZWF0ZXMgYSBuZXcgZmFjZSwgdGhlIHdvcmsgZG9uZSBp
cyBwcm9wb3J0aW9uYWwgdG8gdGhlIHNpemUgb2YKLSAgICogdGhlIG5ldyBmYWNlLiAgV2UgZXhw
ZWN0IHRoZSBmYWNlcyBpbiB0aGUgcHJvY2Vzc2VkIHBhcnQgb2YKLSAgICogdGhlIG1lc2ggKGll
LiBlVXAtPkxmYWNlKSB0byBiZSBzbWFsbGVyIHRoYW4gdGhlIGZhY2VzIGluIHRoZQotICAgKiB1
bnByb2Nlc3NlZCBvcmlnaW5hbCBjb250b3VycyAod2hpY2ggd2lsbCBiZSBlTG8tPk9wcmV2LT5M
ZmFjZSkuCi0gICAqLwotICBpZiAoX19nbF9tZXNoU3BsaXRFZGdlKCBlVXAtPlN5bSApID09IE5V
TEwpIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICBpZiAoX19nbF9tZXNoU3BsaXRFZGdlKCBlTG8t
PlN5bSApID09IE5VTEwpIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICBpZiAoICFfX2dsX21lc2hT
cGxpY2UoIGVMby0+T3ByZXYsIGVVcCApICkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7Ci0gIGVVcC0+
T3JnLT5zID0gaXNlY3QuczsKLSAgZVVwLT5PcmctPnQgPSBpc2VjdC50OwotICBlVXAtPk9yZy0+
cHFIYW5kbGUgPSBwcUluc2VydCggdGVzcy0+cHEsIGVVcC0+T3JnICk7IC8qIF9fZ2xfcHFTb3J0
SW5zZXJ0ICovCi0gIGlmIChlVXAtPk9yZy0+cHFIYW5kbGUgPT0gTE9OR19NQVgpIHsKLSAgICAg
cHFEZWxldGVQcmlvcml0eVEodGVzcy0+cHEpOwkvKiBfX2dsX3BxU29ydERlbGV0ZVByaW9yaXR5
USAqLwotICAgICB0ZXNzLT5wcSA9IE5VTEw7Ci0gICAgIGxvbmdqbXAodGVzcy0+ZW52LDEpOwot
ICB9Ci0gIEdldEludGVyc2VjdERhdGEoIHRlc3MsIGVVcC0+T3JnLCBvcmdVcCwgZHN0VXAsIG9y
Z0xvLCBkc3RMbyApOwotICBSZWdpb25BYm92ZShyZWdVcCktPmRpcnR5ID0gcmVnVXAtPmRpcnR5
ID0gcmVnTG8tPmRpcnR5ID0gVFJVRTsKLSAgcmV0dXJuIEZBTFNFOwotfQotCi1zdGF0aWMgdm9p
ZCBXYWxrRGlydHlSZWdpb25zKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBBY3RpdmVSZWdpb24gKnJl
Z1VwICkKLS8qCi0gKiBXaGVuIHRoZSB1cHBlciBvciBsb3dlciBlZGdlIG9mIGFueSByZWdpb24g
Y2hhbmdlcywgdGhlIHJlZ2lvbiBpcwotICogbWFya2VkICJkaXJ0eSIuICBUaGlzIHJvdXRpbmUg
d2Fsa3MgdGhyb3VnaCBhbGwgdGhlIGRpcnR5IHJlZ2lvbnMKLSAqIGFuZCBtYWtlcyBzdXJlIHRo
YXQgdGhlIGRpY3Rpb25hcnkgaW52YXJpYW50cyBhcmUgc2F0aXNmaWVkCi0gKiAoc2VlIHRoZSBj
b21tZW50cyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgZmlsZSkuICBPZiBjb3Vyc2UKLSAqIG5l
dyBkaXJ0eSByZWdpb25zIGNhbiBiZSBjcmVhdGVkIGFzIHdlIG1ha2UgY2hhbmdlcyB0byByZXN0
b3JlCi0gKiB0aGUgaW52YXJpYW50cy4KLSAqLwotewotICBBY3RpdmVSZWdpb24gKnJlZ0xvID0g
UmVnaW9uQmVsb3cocmVnVXApOwotICBHTFVoYWxmRWRnZSAqZVVwLCAqZUxvOwotCi0gIGZvcigg
OzsgKSB7Ci0gICAgLyogRmluZCB0aGUgbG93ZXN0IGRpcnR5IHJlZ2lvbiAod2Ugd2FsayBmcm9t
IHRoZSBib3R0b20gdXApLiAqLwotICAgIHdoaWxlKCByZWdMby0+ZGlydHkgKSB7Ci0gICAgICBy
ZWdVcCA9IHJlZ0xvOwotICAgICAgcmVnTG8gPSBSZWdpb25CZWxvdyhyZWdMbyk7Ci0gICAgfQot
ICAgIGlmKCAhIHJlZ1VwLT5kaXJ0eSApIHsKLSAgICAgIHJlZ0xvID0gcmVnVXA7Ci0gICAgICBy
ZWdVcCA9IFJlZ2lvbkFib3ZlKCByZWdVcCApOwotICAgICAgaWYoIHJlZ1VwID09IE5VTEwgfHwg
ISByZWdVcC0+ZGlydHkgKSB7Ci0JLyogV2UndmUgd2Fsa2VkIGFsbCB0aGUgZGlydHkgcmVnaW9u
cyAqLwotCXJldHVybjsKLSAgICAgIH0KLSAgICB9Ci0gICAgcmVnVXAtPmRpcnR5ID0gRkFMU0U7
Ci0gICAgZVVwID0gcmVnVXAtPmVVcDsKLSAgICBlTG8gPSByZWdMby0+ZVVwOwotCi0gICAgaWYo
IGVVcC0+RHN0ICE9IGVMby0+RHN0ICkgewotICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgZWRnZSBv
cmRlcmluZyBpcyBvYmV5ZWQgYXQgdGhlIERzdCB2ZXJ0aWNlcy4gKi8KLSAgICAgIGlmKCBDaGVj
a0ZvckxlZnRTcGxpY2UoIHRlc3MsIHJlZ1VwICkpIHsKLQotCS8qIElmIHRoZSB1cHBlciBvciBs
b3dlciBlZGdlIHdhcyBtYXJrZWQgZml4VXBwZXJFZGdlLCB0aGVuCi0JICogd2Ugbm8gbG9uZ2Vy
IG5lZWQgaXQgKHNpbmNlIHRoZXNlIGVkZ2VzIGFyZSBuZWVkZWQgb25seSBmb3IKLQkgKiB2ZXJ0
aWNlcyB3aGljaCBvdGhlcndpc2UgaGF2ZSBubyByaWdodC1nb2luZyBlZGdlcykuCi0JICovCi0J
aWYoIHJlZ0xvLT5maXhVcHBlckVkZ2UgKSB7Ci0JICBEZWxldGVSZWdpb24oIHRlc3MsIHJlZ0xv
ICk7Ci0JICBpZiAoICFfX2dsX21lc2hEZWxldGUoIGVMbyApICkgbG9uZ2ptcCh0ZXNzLT5lbnYs
MSk7Ci0JICByZWdMbyA9IFJlZ2lvbkJlbG93KCByZWdVcCApOwotCSAgZUxvID0gcmVnTG8tPmVV
cDsKLQl9IGVsc2UgaWYoIHJlZ1VwLT5maXhVcHBlckVkZ2UgKSB7Ci0JICBEZWxldGVSZWdpb24o
IHRlc3MsIHJlZ1VwICk7Ci0JICBpZiAoICFfX2dsX21lc2hEZWxldGUoIGVVcCApICkgbG9uZ2pt
cCh0ZXNzLT5lbnYsMSk7Ci0JICByZWdVcCA9IFJlZ2lvbkFib3ZlKCByZWdMbyApOwotCSAgZVVw
ID0gcmVnVXAtPmVVcDsKLQl9Ci0gICAgICB9Ci0gICAgfQotICAgIGlmKCBlVXAtPk9yZyAhPSBl
TG8tPk9yZyApIHsKLSAgICAgIGlmKCAgICBlVXAtPkRzdCAhPSBlTG8tPkRzdAotCSAgJiYgISBy
ZWdVcC0+Zml4VXBwZXJFZGdlICYmICEgcmVnTG8tPmZpeFVwcGVyRWRnZQotICAgICAgICAgICYm
IChlVXAtPkRzdCA9PSB0ZXNzLT5ldmVudCB8fCBlTG8tPkRzdCA9PSB0ZXNzLT5ldmVudCkgKQot
ICAgICAgewotCS8qIFdoZW4gYWxsIGVsc2UgZmFpbHMgaW4gQ2hlY2tGb3JJbnRlcnNlY3QoKSwg
aXQgdXNlcyB0ZXNzLT5ldmVudAotCSAqIGFzIHRoZSBpbnRlcnNlY3Rpb24gbG9jYXRpb24uICBU
byBtYWtlIHRoaXMgcG9zc2libGUsIGl0IHJlcXVpcmVzCi0JICogdGhhdCB0ZXNzLT5ldmVudCBs
aWUgYmV0d2VlbiB0aGUgdXBwZXIgYW5kIGxvd2VyIGVkZ2VzLCBhbmQgYWxzbwotCSAqIHRoYXQg
bmVpdGhlciBvZiB0aGVzZSBpcyBtYXJrZWQgZml4VXBwZXJFZGdlIChzaW5jZSBpbiB0aGUgd29y
c3QKLQkgKiBjYXNlIGl0IG1pZ2h0IHNwbGljZSBvbmUgb2YgdGhlc2UgZWRnZXMgaW50byB0ZXNz
LT5ldmVudCwgYW5kCi0JICogdmlvbGF0ZSB0aGUgaW52YXJpYW50IHRoYXQgZml4YWJsZSBlZGdl
cyBhcmUgdGhlIG9ubHkgcmlnaHQtZ29pbmcKLQkgKiBlZGdlIGZyb20gdGhlaXIgYXNzb2NpYXRl
ZCB2ZXJ0ZXgpLgotICAgICAgICAgKi8KLQlpZiggQ2hlY2tGb3JJbnRlcnNlY3QoIHRlc3MsIHJl
Z1VwICkpIHsKLQkgIC8qIFdhbGtEaXJ0eVJlZ2lvbnMoKSB3YXMgY2FsbGVkIHJlY3Vyc2l2ZWx5
OyB3ZSdyZSBkb25lICovCi0JICByZXR1cm47Ci0JfQotICAgICAgfSBlbHNlIHsKLQkvKiBFdmVu
IHRob3VnaCB3ZSBjYW4ndCB1c2UgQ2hlY2tGb3JJbnRlcnNlY3QoKSwgdGhlIE9yZyB2ZXJ0aWNl
cwotCSAqIG1heSB2aW9sYXRlIHRoZSBkaWN0aW9uYXJ5IGVkZ2Ugb3JkZXJpbmcuICBDaGVjayBh
bmQgY29ycmVjdCB0aGlzLgotCSAqLwotCSh2b2lkKSBDaGVja0ZvclJpZ2h0U3BsaWNlKCB0ZXNz
LCByZWdVcCApOwotICAgICAgfQotICAgIH0KLSAgICBpZiggZVVwLT5PcmcgPT0gZUxvLT5Pcmcg
JiYgZVVwLT5Ec3QgPT0gZUxvLT5Ec3QgKSB7Ci0gICAgICAvKiBBIGRlZ2VuZXJhdGUgbG9vcCBj
b25zaXN0aW5nIG9mIG9ubHkgdHdvIGVkZ2VzIC0tIGRlbGV0ZSBpdC4gKi8KLSAgICAgIEFkZFdp
bmRpbmcoIGVMbywgZVVwICk7Ci0gICAgICBEZWxldGVSZWdpb24oIHRlc3MsIHJlZ1VwICk7Ci0g
ICAgICBpZiAoICFfX2dsX21lc2hEZWxldGUoIGVVcCApICkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7
Ci0gICAgICByZWdVcCA9IFJlZ2lvbkFib3ZlKCByZWdMbyApOwotICAgIH0KLSAgfQotfQotCi0K
LXN0YXRpYyB2b2lkIENvbm5lY3RSaWdodFZlcnRleCggR0xVdGVzc2VsYXRvciAqdGVzcywgQWN0
aXZlUmVnaW9uICpyZWdVcCwKLQkJCSAgICAgICAgR0xVaGFsZkVkZ2UgKmVCb3R0b21MZWZ0ICkK
LS8qCi0gKiBQdXJwb3NlOiBjb25uZWN0IGEgInJpZ2h0IiB2ZXJ0ZXggdkV2ZW50IChvbmUgd2hl
cmUgYWxsIGVkZ2VzIGdvIGxlZnQpCi0gKiB0byB0aGUgdW5wcm9jZXNzZWQgcG9ydGlvbiBvZiB0
aGUgbWVzaC4gIFNpbmNlIHRoZXJlIGFyZSBubyByaWdodC1nb2luZwotICogZWRnZXMsIHR3byBy
ZWdpb25zIChvbmUgYWJvdmUgdkV2ZW50IGFuZCBvbmUgYmVsb3cpIGFyZSBiZWluZyBtZXJnZWQK
LSAqIGludG8gb25lLiAgInJlZ1VwIiBpcyB0aGUgdXBwZXIgb2YgdGhlc2UgdHdvIHJlZ2lvbnMu
Ci0gKgotICogVGhlcmUgYXJlIHR3byByZWFzb25zIGZvciBkb2luZyB0aGlzIChhZGRpbmcgYSBy
aWdodC1nb2luZyBlZGdlKToKLSAqICAtIGlmIHRoZSB0d28gcmVnaW9ucyBiZWluZyBtZXJnZWQg
YXJlICJpbnNpZGUiLCB3ZSBtdXN0IGFkZCBhbiBlZGdlCi0gKiAgICB0byBrZWVwIHRoZW0gc2Vw
YXJhdGVkICh0aGUgY29tYmluZWQgcmVnaW9uIHdvdWxkIG5vdCBiZSBtb25vdG9uZSkuCi0gKiAg
LSBpbiBhbnkgY2FzZSwgd2UgbXVzdCBsZWF2ZSBzb21lIHJlY29yZCBvZiB2RXZlbnQgaW4gdGhl
IGRpY3Rpb25hcnksCi0gKiAgICBzbyB0aGF0IHdlIGNhbiBtZXJnZSB2RXZlbnQgd2l0aCBmZWF0
dXJlcyB0aGF0IHdlIGhhdmUgbm90IHNlZW4geWV0LgotICogICAgRm9yIGV4YW1wbGUsIG1heWJl
IHRoZXJlIGlzIGEgdmVydGljYWwgZWRnZSB3aGljaCBwYXNzZXMganVzdCB0bwotICogICAgdGhl
IHJpZ2h0IG9mIHZFdmVudDsgd2Ugd291bGQgbGlrZSB0byBzcGxpY2UgdkV2ZW50IGludG8gdGhp
cyBlZGdlLgotICoKLSAqIEhvd2V2ZXIsIHdlIGRvbid0IHdhbnQgdG8gY29ubmVjdCB2RXZlbnQg
dG8ganVzdCBhbnkgdmVydGV4LiAgV2UgZG9uJyd0Ci0gKiB3YW50IHRoZSBuZXcgZWRnZSB0byBj
cm9zcyBhbnkgb3RoZXIgZWRnZXM7IG90aGVyd2lzZSB3ZSB3aWxsIGNyZWF0ZQotICogaW50ZXJz
ZWN0aW9uIHZlcnRpY2VzIGV2ZW4gd2hlbiB0aGUgaW5wdXQgZGF0YSBoYWQgbm8gc2VsZi1pbnRl
cnNlY3Rpb25zLgotICogKFRoaXMgaXMgYSBiYWQgdGhpbmc7IGlmIHRoZSB1c2VyJ3MgaW5wdXQg
ZGF0YSBoYXMgbm8gaW50ZXJzZWN0aW9ucywKLSAqIHdlIGRvbid0IHdhbnQgdG8gZ2VuZXJhdGUg
YW55IGZhbHNlIGludGVyc2VjdGlvbnMgb3Vyc2VsdmVzLikKLSAqCi0gKiBPdXIgZXZlbnR1YWwg
Z29hbCBpcyB0byBjb25uZWN0IHZFdmVudCB0byB0aGUgbGVmdG1vc3QgdW5wcm9jZXNzZWQKLSAq
IHZlcnRleCBvZiB0aGUgY29tYmluZWQgcmVnaW9uICh0aGUgdW5pb24gb2YgcmVnVXAgYW5kIHJl
Z0xvKS4KLSAqIEJ1dCBiZWNhdXNlIG9mIHVuc2VlbiB2ZXJ0aWNlcyB3aXRoIGFsbCByaWdodC1n
b2luZyBlZGdlcywgYW5kIGFsc28KLSAqIG5ldyB2ZXJ0aWNlcyB3aGljaCBtYXkgYmUgY3JlYXRl
ZCBieSBlZGdlIGludGVyc2VjdGlvbnMsIHdlIGRvbicndAotICoga25vdyB3aGVyZSB0aGF0IGxl
ZnRtb3N0IHVucHJvY2Vzc2VkIHZlcnRleCBpcy4gIEluIHRoZSBtZWFudGltZSwgd2UKLSAqIGNv
bm5lY3QgdkV2ZW50IHRvIHRoZSBjbG9zZXN0IHZlcnRleCBvZiBlaXRoZXIgY2hhaW4sIGFuZCBt
YXJrIHRoZSByZWdpb24KLSAqIGFzICJmaXhVcHBlckVkZ2UiLiAgVGhpcyBmbGFnIHNheXMgdG8g
ZGVsZXRlIGFuZCByZWNvbm5lY3QgdGhpcyBlZGdlCi0gKiB0byB0aGUgbmV4dCBwcm9jZXNzZWQg
dmVydGV4IG9uIHRoZSBib3VuZGFyeSBvZiB0aGUgY29tYmluZWQgcmVnaW9uLgotICogUXVpdGUg
cG9zc2libHkgdGhlIHZlcnRleCB3ZSBjb25uZWN0ZWQgdG8gd2lsbCB0dXJuIG91dCB0byBiZSB0
aGUKLSAqIGNsb3Nlc3Qgb25lLCBpbiB3aGljaCBjYXNlIHdlIHdvbicndCBuZWVkIHRvIG1ha2Ug
YW55IGNoYW5nZXMuCi0gKi8KLXsKLSAgR0xVaGFsZkVkZ2UgKmVOZXc7Ci0gIEdMVWhhbGZFZGdl
ICplVG9wTGVmdCA9IGVCb3R0b21MZWZ0LT5PbmV4dDsKLSAgQWN0aXZlUmVnaW9uICpyZWdMbyA9
IFJlZ2lvbkJlbG93KHJlZ1VwKTsKLSAgR0xVaGFsZkVkZ2UgKmVVcCA9IHJlZ1VwLT5lVXA7Ci0g
IEdMVWhhbGZFZGdlICplTG8gPSByZWdMby0+ZVVwOwotICBpbnQgZGVnZW5lcmF0ZSA9IEZBTFNF
OwotCi0gIGlmKCBlVXAtPkRzdCAhPSBlTG8tPkRzdCApIHsKLSAgICAodm9pZCkgQ2hlY2tGb3JJ
bnRlcnNlY3QoIHRlc3MsIHJlZ1VwICk7Ci0gIH0KLQotICAvKiBQb3NzaWJsZSBuZXcgZGVnZW5l
cmFjaWVzOiB1cHBlciBvciBsb3dlciBlZGdlIG9mIHJlZ1VwIG1heSBwYXNzCi0gICAqIHRocm91
Z2ggdkV2ZW50LCBvciBtYXkgY29pbmNpZGUgd2l0aCBuZXcgaW50ZXJzZWN0aW9uIHZlcnRleAot
ICAgKi8KLSAgaWYoIFZlcnRFcSggZVVwLT5PcmcsIHRlc3MtPmV2ZW50ICkpIHsKLSAgICBpZiAo
ICFfX2dsX21lc2hTcGxpY2UoIGVUb3BMZWZ0LT5PcHJldiwgZVVwICkgKSBsb25nam1wKHRlc3Mt
PmVudiwxKTsKLSAgICByZWdVcCA9IFRvcExlZnRSZWdpb24oIHJlZ1VwICk7Ci0gICAgaWYgKHJl
Z1VwID09IE5VTEwpIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAgIGVUb3BMZWZ0ID0gUmVnaW9u
QmVsb3coIHJlZ1VwICktPmVVcDsKLSAgICBGaW5pc2hMZWZ0UmVnaW9ucyggdGVzcywgUmVnaW9u
QmVsb3cocmVnVXApLCByZWdMbyApOwotICAgIGRlZ2VuZXJhdGUgPSBUUlVFOwotICB9Ci0gIGlm
KCBWZXJ0RXEoIGVMby0+T3JnLCB0ZXNzLT5ldmVudCApKSB7Ci0gICAgaWYgKCAhX19nbF9tZXNo
U3BsaWNlKCBlQm90dG9tTGVmdCwgZUxvLT5PcHJldiApICkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7
Ci0gICAgZUJvdHRvbUxlZnQgPSBGaW5pc2hMZWZ0UmVnaW9ucyggdGVzcywgcmVnTG8sIE5VTEwg
KTsKLSAgICBkZWdlbmVyYXRlID0gVFJVRTsKLSAgfQotICBpZiggZGVnZW5lcmF0ZSApIHsKLSAg
ICBBZGRSaWdodEVkZ2VzKCB0ZXNzLCByZWdVcCwgZUJvdHRvbUxlZnQtPk9uZXh0LCBlVG9wTGVm
dCwgZVRvcExlZnQsIFRSVUUgKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICAvKiBOb24tZGVnZW5l
cmF0ZSBzaXR1YXRpb24gLS0gbmVlZCB0byBhZGQgYSB0ZW1wb3JhcnksIGZpeGFibGUgZWRnZS4K
LSAgICogQ29ubmVjdCB0byB0aGUgY2xvc2VyIG9mIGVMby0+T3JnLCBlVXAtPk9yZy4KLSAgICov
Ci0gIGlmKCBWZXJ0TGVxKCBlTG8tPk9yZywgZVVwLT5PcmcgKSkgewotICAgIGVOZXcgPSBlTG8t
Pk9wcmV2OwotICB9IGVsc2UgewotICAgIGVOZXcgPSBlVXA7Ci0gIH0KLSAgZU5ldyA9IF9fZ2xf
bWVzaENvbm5lY3QoIGVCb3R0b21MZWZ0LT5McHJldiwgZU5ldyApOwotICBpZiAoZU5ldyA9PSBO
VUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLQotICAvKiBQcmV2ZW50IGNsZWFudXAsIG90aGVy
d2lzZSBlTmV3IG1pZ2h0IGRpc2FwcGVhciBiZWZvcmUgd2UndmUgZXZlbgotICAgKiBoYWQgYSBj
aGFuY2UgdG8gbWFyayBpdCBhcyBhIHRlbXBvcmFyeSBlZGdlLgotICAgKi8KLSAgQWRkUmlnaHRF
ZGdlcyggdGVzcywgcmVnVXAsIGVOZXcsIGVOZXctPk9uZXh0LCBlTmV3LT5PbmV4dCwgRkFMU0Ug
KTsKLSAgZU5ldy0+U3ltLT5hY3RpdmVSZWdpb24tPmZpeFVwcGVyRWRnZSA9IFRSVUU7Ci0gIFdh
bGtEaXJ0eVJlZ2lvbnMoIHRlc3MsIHJlZ1VwICk7Ci19Ci0KLS8qIEJlY2F1c2UgdmVydGljZXMg
YXQgZXhhY3RseSB0aGUgc2FtZSBsb2NhdGlvbiBhcmUgbWVyZ2VkIHRvZ2V0aGVyCi0gKiBiZWZv
cmUgd2UgcHJvY2VzcyB0aGUgc3dlZXAgZXZlbnQsIHNvbWUgZGVnZW5lcmF0ZSBjYXNlcyBjYW4n
dCBvY2N1ci4KLSAqIEhvd2V2ZXIgaWYgc29tZW9uZSBldmVudHVhbGx5IG1ha2VzIHRoZSBtb2Rp
ZmljYXRpb25zIHJlcXVpcmVkIHRvCi0gKiBtZXJnZSBmZWF0dXJlcyB3aGljaCBhcmUgY2xvc2Ug
dG9nZXRoZXIsIHRoZSBjYXNlcyBiZWxvdyBtYXJrZWQKLSAqIFRPTEVSQU5DRV9OT05aRVJPIHdp
bGwgYmUgdXNlZnVsLiAgVGhleSB3ZXJlIGRlYnVnZ2VkIGJlZm9yZSB0aGUKLSAqIGNvZGUgdG8g
bWVyZ2UgaWRlbnRpY2FsIHZlcnRpY2VzIGluIHRoZSBtYWluIGxvb3Agd2FzIGFkZGVkLgotICov
Ci0jZGVmaW5lIFRPTEVSQU5DRV9OT05aRVJPCUZBTFNFCi0KLXN0YXRpYyB2b2lkIENvbm5lY3RM
ZWZ0RGVnZW5lcmF0ZSggR0xVdGVzc2VsYXRvciAqdGVzcywKLQkJCQkgICBBY3RpdmVSZWdpb24g
KnJlZ1VwLCBHTFV2ZXJ0ZXggKnZFdmVudCApCi0vKgotICogVGhlIGV2ZW50IHZlcnRleCBsaWVz
IGV4YWN0eSBvbiBhbiBhbHJlYWR5LXByb2Nlc3NlZCBlZGdlIG9yIHZlcnRleC4KLSAqIEFkZGlu
ZyB0aGUgbmV3IHZlcnRleCBpbnZvbHZlcyBzcGxpY2luZyBpdCBpbnRvIHRoZSBhbHJlYWR5LXBy
b2Nlc3NlZAotICogcGFydCBvZiB0aGUgbWVzaC4KLSAqLwotewotICBHTFVoYWxmRWRnZSAqZSwg
KmVUb3BMZWZ0LCAqZVRvcFJpZ2h0LCAqZUxhc3Q7Ci0gIEFjdGl2ZVJlZ2lvbiAqcmVnOwotCi0g
IGUgPSByZWdVcC0+ZVVwOwotICBpZiggVmVydEVxKCBlLT5PcmcsIHZFdmVudCApKSB7Ci0gICAg
LyogZS0+T3JnIGlzIGFuIHVucHJvY2Vzc2VkIHZlcnRleCAtIGp1c3QgY29tYmluZSB0aGVtLCBh
bmQgd2FpdAotICAgICAqIGZvciBlLT5PcmcgdG8gYmUgcHVsbGVkIGZyb20gdGhlIHF1ZXVlCi0g
ICAgICovCi0gICAgYXNzZXJ0KCBUT0xFUkFOQ0VfTk9OWkVSTyApOwotICAgIFNwbGljZU1lcmdl
VmVydGljZXMoIHRlc3MsIGUsIHZFdmVudC0+YW5FZGdlICk7Ci0gICAgcmV0dXJuOwotICB9Ci0g
IAotICBpZiggISBWZXJ0RXEoIGUtPkRzdCwgdkV2ZW50ICkpIHsKLSAgICAvKiBHZW5lcmFsIGNh
c2UgLS0gc3BsaWNlIHZFdmVudCBpbnRvIGVkZ2UgZSB3aGljaCBwYXNzZXMgdGhyb3VnaCBpdCAq
LwotICAgIGlmIChfX2dsX21lc2hTcGxpdEVkZ2UoIGUtPlN5bSApID09IE5VTEwpIGxvbmdqbXAo
dGVzcy0+ZW52LDEpOwotICAgIGlmKCByZWdVcC0+Zml4VXBwZXJFZGdlICkgewotICAgICAgLyog
VGhpcyBlZGdlIHdhcyBmaXhhYmxlIC0tIGRlbGV0ZSB1bnVzZWQgcG9ydGlvbiBvZiBvcmlnaW5h
bCBlZGdlICovCi0gICAgICBpZiAoICFfX2dsX21lc2hEZWxldGUoIGUtPk9uZXh0ICkgKSBsb25n
am1wKHRlc3MtPmVudiwxKTsKLSAgICAgIHJlZ1VwLT5maXhVcHBlckVkZ2UgPSBGQUxTRTsKLSAg
ICB9Ci0gICAgaWYgKCAhX19nbF9tZXNoU3BsaWNlKCB2RXZlbnQtPmFuRWRnZSwgZSApICkgbG9u
Z2ptcCh0ZXNzLT5lbnYsMSk7Ci0gICAgU3dlZXBFdmVudCggdGVzcywgdkV2ZW50ICk7CS8qIHJl
Y3Vyc2UgKi8KLSAgICByZXR1cm47Ci0gIH0KLQotICAvKiB2RXZlbnQgY29pbmNpZGVzIHdpdGgg
ZS0+RHN0LCB3aGljaCBoYXMgYWxyZWFkeSBiZWVuIHByb2Nlc3NlZC4KLSAgICogU3BsaWNlIGlu
IHRoZSBhZGRpdGlvbmFsIHJpZ2h0LWdvaW5nIGVkZ2VzLgotICAgKi8KLSAgYXNzZXJ0KCBUT0xF
UkFOQ0VfTk9OWkVSTyApOwotICByZWdVcCA9IFRvcFJpZ2h0UmVnaW9uKCByZWdVcCApOwotICBy
ZWcgPSBSZWdpb25CZWxvdyggcmVnVXAgKTsKLSAgZVRvcFJpZ2h0ID0gcmVnLT5lVXAtPlN5bTsK
LSAgZVRvcExlZnQgPSBlTGFzdCA9IGVUb3BSaWdodC0+T25leHQ7Ci0gIGlmKCByZWctPmZpeFVw
cGVyRWRnZSApIHsKLSAgICAvKiBIZXJlIGUtPkRzdCBoYXMgb25seSBhIHNpbmdsZSBmaXhhYmxl
IGVkZ2UgZ29pbmcgcmlnaHQuCi0gICAgICogV2UgY2FuIGRlbGV0ZSBpdCBzaW5jZSBub3cgd2Ug
aGF2ZSBzb21lIHJlYWwgcmlnaHQtZ29pbmcgZWRnZXMuCi0gICAgICovCi0gICAgYXNzZXJ0KCBl
VG9wTGVmdCAhPSBlVG9wUmlnaHQgKTsgICAvKiB0aGVyZSBhcmUgc29tZSBsZWZ0IGVkZ2VzIHRv
byAqLwotICAgIERlbGV0ZVJlZ2lvbiggdGVzcywgcmVnICk7Ci0gICAgaWYgKCAhX19nbF9tZXNo
RGVsZXRlKCBlVG9wUmlnaHQgKSApIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAgIGVUb3BSaWdo
dCA9IGVUb3BMZWZ0LT5PcHJldjsKLSAgfQotICBpZiAoICFfX2dsX21lc2hTcGxpY2UoIHZFdmVu
dC0+YW5FZGdlLCBlVG9wUmlnaHQgKSApIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICBpZiggISBF
ZGdlR29lc0xlZnQoIGVUb3BMZWZ0ICkpIHsKLSAgICAvKiBlLT5Ec3QgaGFkIG5vIGxlZnQtZ29p
bmcgZWRnZXMgLS0gaW5kaWNhdGUgdGhpcyB0byBBZGRSaWdodEVkZ2VzKCkgKi8KLSAgICBlVG9w
TGVmdCA9IE5VTEw7Ci0gIH0KLSAgQWRkUmlnaHRFZGdlcyggdGVzcywgcmVnVXAsIGVUb3BSaWdo
dC0+T25leHQsIGVMYXN0LCBlVG9wTGVmdCwgVFJVRSApOwotfQotCi0KLXN0YXRpYyB2b2lkIENv
bm5lY3RMZWZ0VmVydGV4KCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCBHTFV2ZXJ0ZXggKnZFdmVudCAp
Ci0vKgotICogUHVycG9zZTogY29ubmVjdCBhICJsZWZ0IiB2ZXJ0ZXggKG9uZSB3aGVyZSBib3Ro
IGVkZ2VzIGdvIHJpZ2h0KQotICogdG8gdGhlIHByb2Nlc3NlZCBwb3J0aW9uIG9mIHRoZSBtZXNo
LiAgTGV0IFIgYmUgdGhlIGFjdGl2ZSByZWdpb24KLSAqIGNvbnRhaW5pbmcgdkV2ZW50LCBhbmQg
bGV0IFUgYW5kIEwgYmUgdGhlIHVwcGVyIGFuZCBsb3dlciBlZGdlCi0gKiBjaGFpbnMgb2YgUi4g
IFRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllczoKLSAqCi0gKiAtIHRoZSBub3JtYWwgY2FzZTog
c3BsaXQgUiBpbnRvIHR3byByZWdpb25zLCBieSBjb25uZWN0aW5nIHZFdmVudCB0bwotICogICB0
aGUgcmlnaHRtb3N0IHZlcnRleCBvZiBVIG9yIEwgbHlpbmcgdG8gdGhlIGxlZnQgb2YgdGhlIHN3
ZWVwIGxpbmUKLSAqCi0gKiAtIHRoZSBkZWdlbmVyYXRlIGNhc2U6IGlmIHZFdmVudCBpcyBjbG9z
ZSBlbm91Z2ggdG8gVSBvciBMLCB3ZQotICogICBtZXJnZSB2RXZlbnQgaW50byB0aGF0IGVkZ2Ug
Y2hhaW4uICBUaGUgc3ViY2FzZXMgYXJlOgotICoJLSBtZXJnaW5nIHdpdGggdGhlIHJpZ2h0bW9z
dCB2ZXJ0ZXggb2YgVSBvciBMCi0gKgktIG1lcmdpbmcgd2l0aCB0aGUgYWN0aXZlIGVkZ2Ugb2Yg
VSBvciBMCi0gKgktIG1lcmdpbmcgd2l0aCBhbiBhbHJlYWR5LXByb2Nlc3NlZCBwb3J0aW9uIG9m
IFUgb3IgTAotICovCi17Ci0gIEFjdGl2ZVJlZ2lvbiAqcmVnVXAsICpyZWdMbywgKnJlZzsKLSAg
R0xVaGFsZkVkZ2UgKmVVcCwgKmVMbywgKmVOZXc7Ci0gIEFjdGl2ZVJlZ2lvbiB0bXA7Ci0KLSAg
LyogYXNzZXJ0KCB2RXZlbnQtPmFuRWRnZS0+T25leHQtPk9uZXh0ID09IHZFdmVudC0+YW5FZGdl
ICk7ICovCi0KLSAgLyogR2V0IGEgcG9pbnRlciB0byB0aGUgYWN0aXZlIHJlZ2lvbiBjb250YWlu
aW5nIHZFdmVudCAqLwotICB0bXAuZVVwID0gdkV2ZW50LT5hbkVkZ2UtPlN5bTsKLSAgLyogX19H
TF9ESUNUTElTVEtFWSAqLyAvKiBfX2dsX2RpY3RMaXN0U2VhcmNoICovCi0gIHJlZ1VwID0gKEFj
dGl2ZVJlZ2lvbiAqKWRpY3RLZXkoIGRpY3RTZWFyY2goIHRlc3MtPmRpY3QsICZ0bXAgKSk7Ci0g
IHJlZ0xvID0gUmVnaW9uQmVsb3coIHJlZ1VwICk7Ci0gIGVVcCA9IHJlZ1VwLT5lVXA7Ci0gIGVM
byA9IHJlZ0xvLT5lVXA7Ci0KLSAgLyogVHJ5IG1lcmdpbmcgd2l0aCBVIG9yIEwgZmlyc3QgKi8K
LSAgaWYoIEVkZ2VTaWduKCBlVXAtPkRzdCwgdkV2ZW50LCBlVXAtPk9yZyApID09IDAgKSB7Ci0g
ICAgQ29ubmVjdExlZnREZWdlbmVyYXRlKCB0ZXNzLCByZWdVcCwgdkV2ZW50ICk7Ci0gICAgcmV0
dXJuOwotICB9Ci0KLSAgLyogQ29ubmVjdCB2RXZlbnQgdG8gcmlnaHRtb3N0IHByb2Nlc3NlZCB2
ZXJ0ZXggb2YgZWl0aGVyIGNoYWluLgotICAgKiBlLT5Ec3QgaXMgdGhlIHZlcnRleCB0aGF0IHdl
IHdpbGwgY29ubmVjdCB0byB2RXZlbnQuCi0gICAqLwotICByZWcgPSBWZXJ0TGVxKCBlTG8tPkRz
dCwgZVVwLT5Ec3QgKSA/IHJlZ1VwIDogcmVnTG87Ci0KLSAgaWYoIHJlZ1VwLT5pbnNpZGUgfHwg
cmVnLT5maXhVcHBlckVkZ2UpIHsKLSAgICBpZiggcmVnID09IHJlZ1VwICkgewotICAgICAgZU5l
dyA9IF9fZ2xfbWVzaENvbm5lY3QoIHZFdmVudC0+YW5FZGdlLT5TeW0sIGVVcC0+TG5leHQgKTsK
LSAgICAgIGlmIChlTmV3ID09IE5VTEwpIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICBHTFVoYWxmRWRnZSAqdGVtcEhhbGZFZGdlPSBfX2dsX21lc2hDb25uZWN0KCBl
TG8tPkRuZXh0LCB2RXZlbnQtPmFuRWRnZSk7Ci0gICAgICBpZiAodGVtcEhhbGZFZGdlID09IE5V
TEwpIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotCi0gICAgICBlTmV3ID0gdGVtcEhhbGZFZGdlLT5T
eW07Ci0gICAgfQotICAgIGlmKCByZWctPmZpeFVwcGVyRWRnZSApIHsKLSAgICAgIGlmICggIUZp
eFVwcGVyRWRnZSggcmVnLCBlTmV3ICkgKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgICB9IGVs
c2UgewotICAgICAgQ29tcHV0ZVdpbmRpbmcoIHRlc3MsIEFkZFJlZ2lvbkJlbG93KCB0ZXNzLCBy
ZWdVcCwgZU5ldyApKTsKLSAgICB9Ci0gICAgU3dlZXBFdmVudCggdGVzcywgdkV2ZW50ICk7Ci0g
IH0gZWxzZSB7Ci0gICAgLyogVGhlIG5ldyB2ZXJ0ZXggaXMgaW4gYSByZWdpb24gd2hpY2ggZG9l
cyBub3QgYmVsb25nIHRvIHRoZSBwb2x5Z29uLgotICAgICAqIFdlIGRvbicndCBuZWVkIHRvIGNv
bm5lY3QgdGhpcyB2ZXJ0ZXggdG8gdGhlIHJlc3Qgb2YgdGhlIG1lc2guCi0gICAgICovCi0gICAg
QWRkUmlnaHRFZGdlcyggdGVzcywgcmVnVXAsIHZFdmVudC0+YW5FZGdlLCB2RXZlbnQtPmFuRWRn
ZSwgTlVMTCwgVFJVRSApOwotICB9Ci19Ci0KLQotc3RhdGljIHZvaWQgU3dlZXBFdmVudCggR0xV
dGVzc2VsYXRvciAqdGVzcywgR0xVdmVydGV4ICp2RXZlbnQgKQotLyoKLSAqIERvZXMgZXZlcnl0
aGluZyBuZWNlc3Nhcnkgd2hlbiB0aGUgc3dlZXAgbGluZSBjcm9zc2VzIGEgdmVydGV4LgotICog
VXBkYXRlcyB0aGUgbWVzaCBhbmQgdGhlIGVkZ2UgZGljdGlvbmFyeS4KLSAqLwotewotICBBY3Rp
dmVSZWdpb24gKnJlZ1VwLCAqcmVnOwotICBHTFVoYWxmRWRnZSAqZSwgKmVUb3BMZWZ0LCAqZUJv
dHRvbUxlZnQ7Ci0KLSAgdGVzcy0+ZXZlbnQgPSB2RXZlbnQ7CQkvKiBmb3IgYWNjZXNzIGluIEVk
Z2VMZXEoKSAqLwotICBEZWJ1Z0V2ZW50KCB0ZXNzICk7Ci0gIAotICAvKiBDaGVjayBpZiB0aGlz
IHZlcnRleCBpcyB0aGUgcmlnaHQgZW5kcG9pbnQgb2YgYW4gZWRnZSB0aGF0IGlzCi0gICAqIGFs
cmVhZHkgaW4gdGhlIGRpY3Rpb25hcnkuICBJbiB0aGlzIGNhc2Ugd2UgZG9uJ3QgbmVlZCB0byB3
YXN0ZQotICAgKiB0aW1lIHNlYXJjaGluZyBmb3IgdGhlIGxvY2F0aW9uIHRvIGluc2VydCBuZXcg
ZWRnZXMuCi0gICAqLwotICBlID0gdkV2ZW50LT5hbkVkZ2U7Ci0gIHdoaWxlKCBlLT5hY3RpdmVS
ZWdpb24gPT0gTlVMTCApIHsKLSAgICBlID0gZS0+T25leHQ7Ci0gICAgaWYoIGUgPT0gdkV2ZW50
LT5hbkVkZ2UgKSB7Ci0gICAgICAvKiBBbGwgZWRnZXMgZ28gcmlnaHQgLS0gbm90IGluY2lkZW50
IHRvIGFueSBwcm9jZXNzZWQgZWRnZXMgKi8KLSAgICAgIENvbm5lY3RMZWZ0VmVydGV4KCB0ZXNz
LCB2RXZlbnQgKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gIH0KLQotICAvKiBQcm9jZXNzaW5n
IGNvbnNpc3RzIG9mIHR3byBwaGFzZXM6IGZpcnN0IHdlICJmaW5pc2giIGFsbCB0aGUKLSAgICog
YWN0aXZlIHJlZ2lvbnMgd2hlcmUgYm90aCB0aGUgdXBwZXIgYW5kIGxvd2VyIGVkZ2VzIHRlcm1p
bmF0ZQotICAgKiBhdCB2RXZlbnQgKGllLiB2RXZlbnQgaXMgY2xvc2luZyBvZmYgdGhlc2UgcmVn
aW9ucykuCi0gICAqIFdlIG1hcmsgdGhlc2UgZmFjZXMgImluc2lkZSIgb3IgIm91dHNpZGUiIHRo
ZSBwb2x5Z29uIGFjY29yZGluZwotICAgKiB0byB0aGVpciB3aW5kaW5nIG51bWJlciwgYW5kIGRl
bGV0ZSB0aGUgZWRnZXMgZnJvbSB0aGUgZGljdGlvbmFyeS4KLSAgICogVGhpcyB0YWtlcyBjYXJl
IG9mIGFsbCB0aGUgbGVmdC1nb2luZyBlZGdlcyBmcm9tIHZFdmVudC4KLSAgICovCi0gIHJlZ1Vw
ID0gVG9wTGVmdFJlZ2lvbiggZS0+YWN0aXZlUmVnaW9uICk7Ci0gIGlmIChyZWdVcCA9PSBOVUxM
KSBsb25nam1wKHRlc3MtPmVudiwxKTsKLSAgcmVnID0gUmVnaW9uQmVsb3coIHJlZ1VwICk7Ci0g
IGVUb3BMZWZ0ID0gcmVnLT5lVXA7Ci0gIGVCb3R0b21MZWZ0ID0gRmluaXNoTGVmdFJlZ2lvbnMo
IHRlc3MsIHJlZywgTlVMTCApOwotCi0gIC8qIE5leHQgd2UgcHJvY2VzcyBhbGwgdGhlIHJpZ2h0
LWdvaW5nIGVkZ2VzIGZyb20gdkV2ZW50LiAgVGhpcwotICAgKiBpbnZvbHZlcyBhZGRpbmcgdGhl
IGVkZ2VzIHRvIHRoZSBkaWN0aW9uYXJ5LCBhbmQgY3JlYXRpbmcgdGhlCi0gICAqIGFzc29jaWF0
ZWQgImFjdGl2ZSByZWdpb25zIiB3aGljaCByZWNvcmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlCi0g
ICAqIHJlZ2lvbnMgYmV0d2VlbiBhZGphY2VudCBkaWN0aW9uYXJ5IGVkZ2VzLgotICAgKi8KLSAg
aWYoIGVCb3R0b21MZWZ0LT5PbmV4dCA9PSBlVG9wTGVmdCApIHsKLSAgICAvKiBObyByaWdodC1n
b2luZyBlZGdlcyAtLSBhZGQgYSB0ZW1wb3JhcnkgImZpeGFibGUiIGVkZ2UgKi8KLSAgICBDb25u
ZWN0UmlnaHRWZXJ0ZXgoIHRlc3MsIHJlZ1VwLCBlQm90dG9tTGVmdCApOwotICB9IGVsc2Ugewot
ICAgIEFkZFJpZ2h0RWRnZXMoIHRlc3MsIHJlZ1VwLCBlQm90dG9tTGVmdC0+T25leHQsIGVUb3BM
ZWZ0LCBlVG9wTGVmdCwgVFJVRSApOwotICB9Ci19Ci0KLQotLyogTWFrZSB0aGUgc2VudGluZWwg
Y29vcmRpbmF0ZXMgYmlnIGVub3VnaCB0aGF0IHRoZXkgd2lsbCBuZXZlciBiZQotICogbWVyZ2Vk
IHdpdGggcmVhbCBpbnB1dCBmZWF0dXJlcy4gIChFdmVuIHdpdGggdGhlIGxhcmdlc3QgcG9zc2li
bGUKLSAqIGlucHV0IGNvbnRvdXIgYW5kIHRoZSBtYXhpbXVtIHRvbGVyYW5jZSBvZiAxLjAsIG5v
IG1lcmdpbmcgd2lsbCBiZQotICogZG9uZSB3aXRoIGNvb3JkaW5hdGVzIGxhcmdlciB0aGFuIDMg
KiBHTFVfVEVTU19NQVhfQ09PUkQpLgotICovCi0jZGVmaW5lIFNFTlRJTkVMX0NPT1JECSg0ICog
R0xVX1RFU1NfTUFYX0NPT1JEKQotCi1zdGF0aWMgdm9pZCBBZGRTZW50aW5lbCggR0xVdGVzc2Vs
YXRvciAqdGVzcywgR0xkb3VibGUgdCApCi0vKgotICogV2UgYWRkIHR3byBzZW50aW5lbCBlZGdl
cyBhYm92ZSBhbmQgYmVsb3cgYWxsIG90aGVyIGVkZ2VzLAotICogdG8gYXZvaWQgc3BlY2lhbCBj
YXNlcyBhdCB0aGUgdG9wIGFuZCBib3R0b20uCi0gKi8KLXsKLSAgR0xVaGFsZkVkZ2UgKmU7Ci0g
IEFjdGl2ZVJlZ2lvbiAqcmVnID0gKEFjdGl2ZVJlZ2lvbiAqKW1lbUFsbG9jKCBzaXplb2YoIEFj
dGl2ZVJlZ2lvbiApKTsKLSAgaWYgKHJlZyA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsK
LQotICBlID0gX19nbF9tZXNoTWFrZUVkZ2UoIHRlc3MtPm1lc2ggKTsKLSAgaWYgKGUgPT0gTlVM
TCkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7Ci0KLSAgZS0+T3JnLT5zID0gU0VOVElORUxfQ09PUkQ7
Ci0gIGUtPk9yZy0+dCA9IHQ7Ci0gIGUtPkRzdC0+cyA9IC1TRU5USU5FTF9DT09SRDsKLSAgZS0+
RHN0LT50ID0gdDsKLSAgdGVzcy0+ZXZlbnQgPSBlLT5Ec3Q7CQkvKiBpbml0aWFsaXplIGl0ICov
Ci0KLSAgcmVnLT5lVXAgPSBlOwotICByZWctPndpbmRpbmdOdW1iZXIgPSAwOwotICByZWctPmlu
c2lkZSA9IEZBTFNFOwotICByZWctPmZpeFVwcGVyRWRnZSA9IEZBTFNFOwotICByZWctPnNlbnRp
bmVsID0gVFJVRTsKLSAgcmVnLT5kaXJ0eSA9IEZBTFNFOwotICByZWctPm5vZGVVcCA9IGRpY3RJ
bnNlcnQoIHRlc3MtPmRpY3QsIHJlZyApOyAvKiBfX2dsX2RpY3RMaXN0SW5zZXJ0QmVmb3JlICov
Ci0gIGlmIChyZWctPm5vZGVVcCA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVudiwxKTsKLX0KLQot
Ci1zdGF0aWMgdm9pZCBJbml0RWRnZURpY3QoIEdMVXRlc3NlbGF0b3IgKnRlc3MgKQotLyoKLSAq
IFdlIG1haW50YWluIGFuIG9yZGVyaW5nIG9mIGVkZ2UgaW50ZXJzZWN0aW9ucyB3aXRoIHRoZSBz
d2VlcCBsaW5lLgotICogVGhpcyBvcmRlciBpcyBtYWludGFpbmVkIGluIGEgZHluYW1pYyBkaWN0
aW9uYXJ5LgotICovCi17Ci0gIC8qIF9fZ2xfZGljdExpc3ROZXdEaWN0ICovCi0gIHRlc3MtPmRp
Y3QgPSBkaWN0TmV3RGljdCggdGVzcywgKGludCAoKikodm9pZCAqLCBEaWN0S2V5LCBEaWN0S2V5
KSkgRWRnZUxlcSApOwotICBpZiAodGVzcy0+ZGljdCA9PSBOVUxMKSBsb25nam1wKHRlc3MtPmVu
diwxKTsKLQotICBBZGRTZW50aW5lbCggdGVzcywgLVNFTlRJTkVMX0NPT1JEICk7Ci0gIEFkZFNl
bnRpbmVsKCB0ZXNzLCBTRU5USU5FTF9DT09SRCApOwotfQotCi0KLXN0YXRpYyB2b2lkIERvbmVF
ZGdlRGljdCggR0xVdGVzc2VsYXRvciAqdGVzcyApCi17Ci0gIEFjdGl2ZVJlZ2lvbiAqcmVnOwot
ICBpbnQgZml4ZWRFZGdlcyA9IDA7Ci0KLSAgLyogX19HTF9ESUNUTElTVEtFWSAqLyAvKiBfX0dM
X0RJQ1RMSVNUTUlOICovCi0gIHdoaWxlKCAocmVnID0gKEFjdGl2ZVJlZ2lvbiAqKWRpY3RLZXko
IGRpY3RNaW4oIHRlc3MtPmRpY3QgKSkpICE9IE5VTEwgKSB7Ci0gICAgLyoKLSAgICAgKiBBdCB0
aGUgZW5kIG9mIGFsbCBwcm9jZXNzaW5nLCB0aGUgZGljdGlvbmFyeSBzaG91bGQgY29udGFpbgot
ICAgICAqIG9ubHkgdGhlIHR3byBzZW50aW5lbCBlZGdlcywgcGx1cyBhdCBtb3N0IG9uZSAiZml4
YWJsZSIgZWRnZQotICAgICAqIGNyZWF0ZWQgYnkgQ29ubmVjdFJpZ2h0VmVydGV4KCkuCi0gICAg
ICovCi0gICAgaWYoICEgcmVnLT5zZW50aW5lbCApIHsKLSAgICAgIGFzc2VydCggcmVnLT5maXhV
cHBlckVkZ2UgKTsKLSAgICAgIGFzc2VydCggKytmaXhlZEVkZ2VzID09IDEgKTsKLSAgICB9Ci0g
ICAgYXNzZXJ0KCByZWctPndpbmRpbmdOdW1iZXIgPT0gMCApOwotICAgIERlbGV0ZVJlZ2lvbigg
dGVzcywgcmVnICk7Ci0vKiAgICBfX2dsX21lc2hEZWxldGUoIHJlZy0+ZVVwICk7Ki8KLSAgfQot
ICBkaWN0RGVsZXRlRGljdCggdGVzcy0+ZGljdCApOwkvKiBfX2dsX2RpY3RMaXN0RGVsZXRlRGlj
dCAqLwotfQotCi0KLXN0YXRpYyB2b2lkIFJlbW92ZURlZ2VuZXJhdGVFZGdlcyggR0xVdGVzc2Vs
YXRvciAqdGVzcyApCi0vKgotICogUmVtb3ZlIHplcm8tbGVuZ3RoIGVkZ2VzLCBhbmQgY29udG91
cnMgd2l0aCBmZXdlciB0aGFuIDMgdmVydGljZXMuCi0gKi8KLXsKLSAgR0xVaGFsZkVkZ2UgKmUs
ICplTmV4dCwgKmVMbmV4dDsKLSAgR0xVaGFsZkVkZ2UgKmVIZWFkID0gJnRlc3MtPm1lc2gtPmVI
ZWFkOwotCi0gIC8qTElOVEVEKi8KLSAgZm9yKCBlID0gZUhlYWQtPm5leHQ7IGUgIT0gZUhlYWQ7
IGUgPSBlTmV4dCApIHsKLSAgICBlTmV4dCA9IGUtPm5leHQ7Ci0gICAgZUxuZXh0ID0gZS0+TG5l
eHQ7Ci0gICAgCi0gICAgaWYoIFZlcnRFcSggZS0+T3JnLCBlLT5Ec3QgKSAmJiBlLT5MbmV4dC0+
TG5leHQgIT0gZSApIHsKLSAgICAgIC8qIFplcm8tbGVuZ3RoIGVkZ2UsIGNvbnRvdXIgaGFzIGF0
IGxlYXN0IDMgZWRnZXMgKi8KLSAgICAgIAotICAgICAgU3BsaWNlTWVyZ2VWZXJ0aWNlcyggdGVz
cywgZUxuZXh0LCBlICk7CS8qIGRlbGV0ZXMgZS0+T3JnICovCi0gICAgICBpZiAoICFfX2dsX21l
c2hEZWxldGUoIGUgKSApIGxvbmdqbXAodGVzcy0+ZW52LDEpOyAvKiBlIGlzIGEgc2VsZi1sb29w
ICovCi0gICAgICBlID0gZUxuZXh0OwotICAgICAgZUxuZXh0ID0gZS0+TG5leHQ7Ci0gICAgfQot
ICAgIGlmKCBlTG5leHQtPkxuZXh0ID09IGUgKSB7Ci0gICAgICAvKiBEZWdlbmVyYXRlIGNvbnRv
dXIgKG9uZSBvciB0d28gZWRnZXMpICovCi0gICAgICAKLSAgICAgIGlmKCBlTG5leHQgIT0gZSAp
IHsKLQlpZiggZUxuZXh0ID09IGVOZXh0IHx8IGVMbmV4dCA9PSBlTmV4dC0+U3ltICkgeyBlTmV4
dCA9IGVOZXh0LT5uZXh0OyB9Ci0JaWYgKCAhX19nbF9tZXNoRGVsZXRlKCBlTG5leHQgKSApIGxv
bmdqbXAodGVzcy0+ZW52LDEpOwotICAgICAgfQotICAgICAgaWYoIGUgPT0gZU5leHQgfHwgZSA9
PSBlTmV4dC0+U3ltICkgeyBlTmV4dCA9IGVOZXh0LT5uZXh0OyB9Ci0gICAgICBpZiAoICFfX2ds
X21lc2hEZWxldGUoIGUgKSApIGxvbmdqbXAodGVzcy0+ZW52LDEpOwotICAgIH0KLSAgfQotfQot
Ci1zdGF0aWMgaW50IEluaXRQcmlvcml0eVEoIEdMVXRlc3NlbGF0b3IgKnRlc3MgKQotLyoKLSAq
IEluc2VydCBhbGwgdmVydGljZXMgaW50byB0aGUgcHJpb3JpdHkgcXVldWUgd2hpY2ggZGV0ZXJt
aW5lcyB0aGUKLSAqIG9yZGVyIGluIHdoaWNoIHZlcnRpY2VzIGNyb3NzIHRoZSBzd2VlcCBsaW5l
LgotICovCi17Ci0gIFByaW9yaXR5USAqcHE7Ci0gIEdMVXZlcnRleCAqdiwgKnZIZWFkOwotCi0g
IC8qIF9fZ2xfcHFTb3J0TmV3UHJpb3JpdHlRICovCi0gIHBxID0gdGVzcy0+cHEgPSBwcU5ld1By
aW9yaXR5USggKGludCAoKikoUFFrZXksIFBRa2V5KSkgX19nbF92ZXJ0TGVxICk7Ci0gIGlmIChw
cSA9PSBOVUxMKSByZXR1cm4gMDsKLQotICB2SGVhZCA9ICZ0ZXNzLT5tZXNoLT52SGVhZDsKLSAg
Zm9yKCB2ID0gdkhlYWQtPm5leHQ7IHYgIT0gdkhlYWQ7IHYgPSB2LT5uZXh0ICkgewotICAgIHYt
PnBxSGFuZGxlID0gcHFJbnNlcnQoIHBxLCB2ICk7IC8qIF9fZ2xfcHFTb3J0SW5zZXJ0ICovCi0g
ICAgaWYgKHYtPnBxSGFuZGxlID09IExPTkdfTUFYKSBicmVhazsKLSAgfQotICBpZiAodiAhPSB2
SGVhZCB8fCAhcHFJbml0KCBwcSApICkgeyAvKiBfX2dsX3BxU29ydEluaXQgKi8KLSAgICBwcURl
bGV0ZVByaW9yaXR5USh0ZXNzLT5wcSk7CS8qIF9fZ2xfcHFTb3J0RGVsZXRlUHJpb3JpdHlRICov
Ci0gICAgdGVzcy0+cHEgPSBOVUxMOwotICAgIHJldHVybiAwOwotICB9Ci0KLSAgcmV0dXJuIDE7
Ci19Ci0KLQotc3RhdGljIHZvaWQgRG9uZVByaW9yaXR5USggR0xVdGVzc2VsYXRvciAqdGVzcyAp
Ci17Ci0gIHBxRGVsZXRlUHJpb3JpdHlRKCB0ZXNzLT5wcSApOyAvKiBfX2dsX3BxU29ydERlbGV0
ZVByaW9yaXR5USAqLwotfQotCi0KLXN0YXRpYyBpbnQgUmVtb3ZlRGVnZW5lcmF0ZUZhY2VzKCBH
TFVtZXNoICptZXNoICkKLS8qCi0gKiBEZWxldGUgYW55IGRlZ2VuZXJhdGUgZmFjZXMgd2l0aCBv
bmx5IHR3byBlZGdlcy4gIFdhbGtEaXJ0eVJlZ2lvbnMoKQotICogd2lsbCBjYXRjaCBhbG1vc3Qg
YWxsIG9mIHRoZXNlLCBidXQgaXQgd29uJ3QgY2F0Y2ggZGVnZW5lcmF0ZSBmYWNlcwotICogcHJv
ZHVjZWQgYnkgc3BsaWNlIG9wZXJhdGlvbnMgb24gYWxyZWFkeS1wcm9jZXNzZWQgZWRnZXMuCi0g
KiBUaGUgdHdvIHBsYWNlcyB0aGlzIGNhbiBoYXBwZW4gYXJlIGluIEZpbmlzaExlZnRSZWdpb25z
KCksIHdoZW4KLSAqIHdlIHNwbGljZSBpbiBhICJ0ZW1wb3JhcnkiIGVkZ2UgcHJvZHVjZWQgYnkg
Q29ubmVjdFJpZ2h0VmVydGV4KCksCi0gKiBhbmQgaW4gQ2hlY2tGb3JMZWZ0U3BsaWNlKCksIHdo
ZXJlIHdlIHNwbGljZSBhbHJlYWR5LXByb2Nlc3NlZAotICogZWRnZXMgdG8gZW5zdXJlIHRoYXQg
b3VyIGRpY3Rpb25hcnkgaW52YXJpYW50cyBhcmUgbm90IHZpb2xhdGVkCi0gKiBieSBudW1lcmlj
YWwgZXJyb3JzLgotICoKLSAqIEluIGJvdGggdGhlc2UgY2FzZXMgaXQgaXMgKnZlcnkqIGRhbmdl
cm91cyB0byBkZWxldGUgdGhlIG9mZmVuZGluZwotICogZWRnZSBhdCB0aGUgdGltZSwgc2luY2Ug
b25lIG9mIHRoZSByb3V0aW5lcyBmdXJ0aGVyIHVwIHRoZSBzdGFjawotICogd2lsbCBzb21ldGlt
ZXMgYmUga2VlcGluZyBhIHBvaW50ZXIgdG8gdGhhdCBlZGdlLgotICovCi17Ci0gIEdMVWZhY2Ug
KmYsICpmTmV4dDsKLSAgR0xVaGFsZkVkZ2UgKmU7Ci0KLSAgLypMSU5URUQqLwotICBmb3IoIGYg
PSBtZXNoLT5mSGVhZC5uZXh0OyBmICE9ICZtZXNoLT5mSGVhZDsgZiA9IGZOZXh0ICkgewotICAg
IGZOZXh0ID0gZi0+bmV4dDsKLSAgICBlID0gZi0+YW5FZGdlOwotICAgIGFzc2VydCggZS0+TG5l
eHQgIT0gZSApOwotCi0gICAgaWYoIGUtPkxuZXh0LT5MbmV4dCA9PSBlICkgewotICAgICAgLyog
QSBmYWNlIHdpdGggb25seSB0d28gZWRnZXMgKi8KLSAgICAgIEFkZFdpbmRpbmcoIGUtPk9uZXh0
LCBlICk7Ci0gICAgICBpZiAoICFfX2dsX21lc2hEZWxldGUoIGUgKSApIHJldHVybiAwOwotICAg
IH0KLSAgfQotICByZXR1cm4gMTsKLX0KLQotaW50IF9fZ2xfY29tcHV0ZUludGVyaW9yKCBHTFV0
ZXNzZWxhdG9yICp0ZXNzICkKLS8qCi0gKiBfX2dsX2NvbXB1dGVJbnRlcmlvciggdGVzcyApIGNv
bXB1dGVzIHRoZSBwbGFuYXIgYXJyYW5nZW1lbnQgc3BlY2lmaWVkCi0gKiBieSB0aGUgZ2l2ZW4g
Y29udG91cnMsIGFuZCBmdXJ0aGVyIHN1YmRpdmlkZXMgdGhpcyBhcnJhbmdlbWVudAotICogaW50
byByZWdpb25zLiAgRWFjaCByZWdpb24gaXMgbWFya2VkICJpbnNpZGUiIGlmIGl0IGJlbG9uZ3MK
LSAqIHRvIHRoZSBwb2x5Z29uLCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGUgZ2l2ZW4gYnkgdGVzcy0+
d2luZGluZ1J1bGUuCi0gKiBFYWNoIGludGVyaW9yIHJlZ2lvbiBpcyBndWFyYW50ZWVkIGJlIG1v
bm90b25lLgotICovCi17Ci0gIEdMVXZlcnRleCAqdiwgKnZOZXh0OwotCi0gIHRlc3MtPmZhdGFs
RXJyb3IgPSBGQUxTRTsKLQotICAvKiBFYWNoIHZlcnRleCBkZWZpbmVzIGFuIGV2ZW50IGZvciBv
dXIgc3dlZXAgbGluZS4gIFN0YXJ0IGJ5IGluc2VydGluZwotICAgKiBhbGwgdGhlIHZlcnRpY2Vz
IGluIGEgcHJpb3JpdHkgcXVldWUuICBFdmVudHMgYXJlIHByb2Nlc3NlZCBpbgotICAgKiBsZXhp
Y29ncmFwaGljIG9yZGVyLCBpZS4KLSAgICoKLSAgICoJZTEgPCBlMiAgaWZmICBlMS54IDwgZTIu
eCB8fCAoZTEueCA9PSBlMi54ICYmIGUxLnkgPCBlMi55KQotICAgKi8KLSAgUmVtb3ZlRGVnZW5l
cmF0ZUVkZ2VzKCB0ZXNzICk7Ci0gIGlmICggIUluaXRQcmlvcml0eVEoIHRlc3MgKSApIHJldHVy
biAwOyAvKiBpZiBlcnJvciAqLwotICBJbml0RWRnZURpY3QoIHRlc3MgKTsKLQotICAvKiBfX2ds
X3BxU29ydEV4dHJhY3RNaW4gKi8KLSAgd2hpbGUoICh2ID0gKEdMVXZlcnRleCAqKXBxRXh0cmFj
dE1pbiggdGVzcy0+cHEgKSkgIT0gTlVMTCApIHsKLSAgICBmb3IoIDs7ICkgewotICAgICAgdk5l
eHQgPSAoR0xVdmVydGV4ICopcHFNaW5pbXVtKCB0ZXNzLT5wcSApOyAvKiBfX2dsX3BxU29ydE1p
bmltdW0gKi8KLSAgICAgIGlmKCB2TmV4dCA9PSBOVUxMIHx8ICEgVmVydEVxKCB2TmV4dCwgdiAp
KSBicmVhazsKLSAgICAgIAotICAgICAgLyogTWVyZ2UgdG9nZXRoZXIgYWxsIHZlcnRpY2VzIGF0
IGV4YWN0bHkgdGhlIHNhbWUgbG9jYXRpb24uCi0gICAgICAgKiBUaGlzIGlzIG1vcmUgZWZmaWNp
ZW50IHRoYW4gcHJvY2Vzc2luZyB0aGVtIG9uZSBhdCBhIHRpbWUsCi0gICAgICAgKiBzaW1wbGlm
aWVzIHRoZSBjb2RlIChzZWUgQ29ubmVjdExlZnREZWdlbmVyYXRlKSwgYW5kIGlzIGFsc28KLSAg
ICAgICAqIGltcG9ydGFudCBmb3IgY29ycmVjdCBoYW5kbGluZyBvZiBjZXJ0YWluIGRlZ2VuZXJh
dGUgY2FzZXMuCi0gICAgICAgKiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGVyZSBhcmUgdHdvIGlk
ZW50aWNhbCBlZGdlcyBBIGFuZCBCCi0gICAgICAgKiB0aGF0IGJlbG9uZyB0byBkaWZmZXJlbnQg
Y29udG91cnMgKHNvIHdpdGhvdXQgdGhpcyBjb2RlIHRoZXkgd291bGQKLSAgICAgICAqIGJlIHBy
b2Nlc3NlZCBieSBzZXBhcmF0ZSBzd2VlcCBldmVudHMpLiAgU3VwcG9zZSBhbm90aGVyIGVkZ2Ug
QwotICAgICAgICogY3Jvc3NlcyBBIGFuZCBCIGZyb20gYWJvdmUuICBXaGVuIEEgaXMgcHJvY2Vz
c2VkLCB3ZSBzcGxpdCBpdAotICAgICAgICogYXQgaXRzIGludGVyc2VjdGlvbiBwb2ludCB3aXRo
IEMuICBIb3dldmVyIHRoaXMgYWxzbyBzcGxpdHMgQywKLSAgICAgICAqIHNvIHdoZW4gd2UgaW5z
ZXJ0IEIgd2UgbWF5IGNvbXB1dGUgYSBzbGlnaHRseSBkaWZmZXJlbnQKLSAgICAgICAqIGludGVy
c2VjdGlvbiBwb2ludC4gIFRoaXMgbWlnaHQgbGVhdmUgdHdvIGVkZ2VzIHdpdGggYSBzbWFsbAot
ICAgICAgICogZ2FwIGJldHdlZW4gdGhlbS4gIFRoaXMga2luZCBvZiBlcnJvciBpcyBlc3BlY2lh
bGx5IG9idmlvdXMKLSAgICAgICAqIHdoZW4gdXNpbmcgYm91bmRhcnkgZXh0cmFjdGlvbiAoR0xV
X1RFU1NfQk9VTkRBUllfT05MWSkuCi0gICAgICAgKi8KLSAgICAgIHZOZXh0ID0gKEdMVXZlcnRl
eCAqKXBxRXh0cmFjdE1pbiggdGVzcy0+cHEgKTsgLyogX19nbF9wcVNvcnRFeHRyYWN0TWluKi8K
LSAgICAgIFNwbGljZU1lcmdlVmVydGljZXMoIHRlc3MsIHYtPmFuRWRnZSwgdk5leHQtPmFuRWRn
ZSApOwotICAgIH0KLSAgICBTd2VlcEV2ZW50KCB0ZXNzLCB2ICk7Ci0gIH0KLQotICAvKiBTZXQg
dGVzcy0+ZXZlbnQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcyAqLwotICAvKiBfX0dMX0RJQ1RMSVNU
S0VZICovIC8qIF9fR0xfRElDVExJU1RNSU4gKi8gCi0gIHRlc3MtPmV2ZW50ID0gKChBY3RpdmVS
ZWdpb24gKikgZGljdEtleSggZGljdE1pbiggdGVzcy0+ZGljdCApKSktPmVVcC0+T3JnOwotICBE
ZWJ1Z0V2ZW50KCB0ZXNzICk7Ci0gIERvbmVFZGdlRGljdCggdGVzcyApOwotICBEb25lUHJpb3Jp
dHlRKCB0ZXNzICk7Ci0KLSAgaWYgKCAhUmVtb3ZlRGVnZW5lcmF0ZUZhY2VzKCB0ZXNzLT5tZXNo
ICkgKSByZXR1cm4gMDsKLSAgX19nbF9tZXNoQ2hlY2tNZXNoKCB0ZXNzLT5tZXNoICk7Ci0KLSAg
cmV0dXJuIDE7Ci19CmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3Mv
c3dlZXAuaCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9zd2VlcC5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDk5NDUwLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvdGhp
cmRwYXJ0eS9nbHUvbGlidGVzcy9zd2VlcC5oCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBA
QAotLyoKLSoqIExpY2Vuc2UgQXBwbGljYWJpbGl0eS4gRXhjZXB0IHRvIHRoZSBleHRlbnQgcG9y
dGlvbnMgb2YgdGhpcyBmaWxlIGFyZQotKiogbWFkZSBzdWJqZWN0IHRvIGFuIGFsdGVybmF0aXZl
IGxpY2Vuc2UgYXMgcGVybWl0dGVkIGluIHRoZSBTR0kgRnJlZQotKiogU29mdHdhcmUgTGljZW5z
ZSBCLCBWZXJzaW9uIDEuMSAodGhlICJMaWNlbnNlIiksIHRoZSBjb250ZW50cyBvZiB0aGlzCi0q
KiBmaWxlIGFyZSBzdWJqZWN0IG9ubHkgdG8gdGhlIHByb3Zpc2lvbnMgb2YgdGhlIExpY2Vuc2Uu
IFlvdSBtYXkgbm90IHVzZQotKiogdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGgg
dGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weQotKiogb2YgdGhlIExpY2Vuc2UgYXQg
U2lsaWNvbiBHcmFwaGljcywgSW5jLiwgYXR0bjogTGVnYWwgU2VydmljZXMsIDE2MDAKLSoqIEFt
cGhpdGhlYXRyZSBQYXJrd2F5LCBNb3VudGFpbiBWaWV3LCBDQSA5NDA0My0xMzUxLCBvciBhdDoK
LSoqIAotKiogaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3RzL0ZyZWVCCi0qKiAKLSoqIE5vdGUg
dGhhdCwgYXMgcHJvdmlkZWQgaW4gdGhlIExpY2Vuc2UsIHRoZSBTb2Z0d2FyZSBpcyBkaXN0cmli
dXRlZCBvbiBhbgotKiogIkFTIElTIiBiYXNpcywgd2l0aCBBTEwgRVhQUkVTUyBBTkQgSU1QTElF
RCBXQVJSQU5USUVTIEFORCBDT05ESVRJT05TCi0qKiBESVNDTEFJTUVELCBJTkNMVURJTkcsIFdJ
VEhPVVQgTElNSVRBVElPTiwgQU5ZIElNUExJRUQgV0FSUkFOVElFUyBBTkQKLSoqIENPTkRJVElP
TlMgT0YgTUVSQ0hBTlRBQklMSVRZLCBTQVRJU0ZBQ1RPUlkgUVVBTElUWSwgRklUTkVTUyBGT1Ig
QQotKiogUEFSVElDVUxBUiBQVVJQT1NFLCBBTkQgTk9OLUlORlJJTkdFTUVOVC4KLSoqIAotKiog
T3JpZ2luYWwgQ29kZS4gVGhlIE9yaWdpbmFsIENvZGUgaXM6IE9wZW5HTCBTYW1wbGUgSW1wbGVt
ZW50YXRpb24sCi0qKiBWZXJzaW9uIDEuMi4xLCByZWxlYXNlZCBKYW51YXJ5IDI2LCAyMDAwLCBk
ZXZlbG9wZWQgYnkgU2lsaWNvbiBHcmFwaGljcywKLSoqIEluYy4gVGhlIE9yaWdpbmFsIENvZGUg
aXMgQ29weXJpZ2h0IChjKSAxOTkxLTIwMDAgU2lsaWNvbiBHcmFwaGljcywgSW5jLgotKiogQ29w
eXJpZ2h0IGluIGFueSBwb3J0aW9ucyBjcmVhdGVkIGJ5IHRoaXJkIHBhcnRpZXMgaXMgYXMgaW5k
aWNhdGVkCi0qKiBlbHNld2hlcmUgaGVyZWluLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotKiogCi0q
KiBBZGRpdGlvbmFsIE5vdGljZSBQcm92aXNpb25zOiBUaGUgYXBwbGljYXRpb24gcHJvZ3JhbW1p
bmcgaW50ZXJmYWNlcwotKiogZXN0YWJsaXNoZWQgYnkgU0dJIGluIGNvbmp1bmN0aW9uIHdpdGgg
dGhlIE9yaWdpbmFsIENvZGUgYXJlIFRoZQotKiogT3BlbkdMKFIpIEdyYXBoaWNzIFN5c3RlbTog
QSBTcGVjaWZpY2F0aW9uIChWZXJzaW9uIDEuMi4xKSwgcmVsZWFzZWQKLSoqIEFwcmlsIDEsIDE5
OTk7IFRoZSBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtIFV0aWxpdHkgTGlicmFyeSAoVmVyc2lv
bgotKiogMS4zKSwgcmVsZWFzZWQgTm92ZW1iZXIgNCwgMTk5ODsgYW5kIE9wZW5HTChSKSBHcmFw
aGljcyB3aXRoIHRoZSBYCi0qKiBXaW5kb3cgU3lzdGVtKFIpIChWZXJzaW9uIDEuMyksIHJlbGVh
c2VkIE9jdG9iZXIgMTksIDE5OTguIFRoaXMgc29mdHdhcmUKLSoqIHdhcyBjcmVhdGVkIHVzaW5n
IHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTYW1wbGUgSW1wbGVtZW50YXRpb24KLSoqIHB1
Ymxpc2hlZCBieSBTR0ksIGJ1dCBoYXMgbm90IGJlZW4gaW5kZXBlbmRlbnRseSB2ZXJpZmllZCBh
cyBiZWluZwotKiogY29tcGxpYW50IHdpdGggdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNw
ZWNpZmljYXRpb24uCi0qKgotKi8KLS8qCi0qKiBBdXRob3I6IEVyaWMgVmVhY2gsIEp1bHkgMTk5
NC4KLSoqCi0qKiAkRGF0ZSQgJFJldmlzaW9uJAotKiogJEhlYWRlcjogLy9kZXBvdC9tYWluL2dm
eC9saWIvZ2x1L2xpYnRlc3Mvc3dlZXAuaCM1ICQKLSovCi0KLSNpZm5kZWYgX19zd2VlcF9oXwot
I2RlZmluZSBfX3N3ZWVwX2hfCi0KLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21l
c2guaCIKLQotLyogX19nbF9jb21wdXRlSW50ZXJpb3IoIHRlc3MgKSBjb21wdXRlcyB0aGUgcGxh
bmFyIGFycmFuZ2VtZW50IHNwZWNpZmllZAotICogYnkgdGhlIGdpdmVuIGNvbnRvdXJzLCBhbmQg
ZnVydGhlciBzdWJkaXZpZGVzIHRoaXMgYXJyYW5nZW1lbnQKLSAqIGludG8gcmVnaW9ucy4gIEVh
Y2ggcmVnaW9uIGlzIG1hcmtlZCAiaW5zaWRlIiBpZiBpdCBiZWxvbmdzCi0gKiB0byB0aGUgcG9s
eWdvbiwgYWNjb3JkaW5nIHRvIHRoZSBydWxlIGdpdmVuIGJ5IHRlc3MtPndpbmRpbmdSdWxlLgot
ICogRWFjaCBpbnRlcmlvciByZWdpb24gaXMgZ3VhcmFudGVlZCBiZSBtb25vdG9uZS4KLSAqLwot
aW50IF9fZ2xfY29tcHV0ZUludGVyaW9yKCBHTFV0ZXNzZWxhdG9yICp0ZXNzICk7Ci0KLQotLyog
VGhlIGZvbGxvd2luZyBpcyBoZXJlICpvbmx5KiBmb3IgYWNjZXNzIGJ5IGRlYnVnZ2luZyByb3V0
aW5lcyAqLwotCi0jaW5jbHVkZSAiZGljdC5oIgotCi0vKiBGb3IgZWFjaCBwYWlyIG9mIGFkamFj
ZW50IGVkZ2VzIGNyb3NzaW5nIHRoZSBzd2VlcCBsaW5lLCB0aGVyZSBpcwotICogYW4gQWN0aXZl
UmVnaW9uIHRvIHJlcHJlc2VudCB0aGUgcmVnaW9uIGJldHdlZW4gdGhlbS4gIFRoZSBhY3RpdmUK
LSAqIHJlZ2lvbnMgYXJlIGtlcHQgaW4gc29ydGVkIG9yZGVyIGluIGEgZHluYW1pYyBkaWN0aW9u
YXJ5LiAgQXMgdGhlCi0gKiBzd2VlcCBsaW5lIGNyb3NzZXMgZWFjaCB2ZXJ0ZXgsIHdlIHVwZGF0
ZSB0aGUgYWZmZWN0ZWQgcmVnaW9ucy4KLSAqLwotCi1zdHJ1Y3QgQWN0aXZlUmVnaW9uIHsKLSAg
R0xVaGFsZkVkZ2UJKmVVcDsJCS8qIHVwcGVyIGVkZ2UsIGRpcmVjdGVkIHJpZ2h0IHRvIGxlZnQg
Ki8KLSAgRGljdE5vZGUJKm5vZGVVcDsJLyogZGljdGlvbmFyeSBub2RlIGNvcnJlc3BvbmRpbmcg
dG8gZVVwICovCi0gIGludAkJd2luZGluZ051bWJlcjsJLyogdXNlZCB0byBkZXRlcm1pbmUgd2hp
Y2ggcmVnaW9ucyBhcmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW5zaWRl
IHRoZSBwb2x5Z29uICovCi0gIEdMYm9vbGVhbglpbnNpZGU7CQkvKiBpcyB0aGlzIHJlZ2lvbiBp
bnNpZGUgdGhlIHBvbHlnb24/ICovCi0gIEdMYm9vbGVhbglzZW50aW5lbDsJLyogbWFya3MgZmFr
ZSBlZGdlcyBhdCB0ID0gKy8taW5maW5pdHkgKi8KLSAgR0xib29sZWFuCWRpcnR5OwkJLyogbWFy
a3MgcmVnaW9ucyB3aGVyZSB0aGUgdXBwZXIgb3IgbG93ZXIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICogZWRnZSBoYXMgY2hhbmdlZCwgYnV0IHdlIGhhdmVuJ3QgY2hlY2tlZAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB3aGV0aGVyIHRoZXkgaW50ZXJzZWN0
IHlldCAqLwotICBHTGJvb2xlYW4JZml4VXBwZXJFZGdlOwkvKiBtYXJrcyB0ZW1wb3JhcnkgZWRn
ZXMgaW50cm9kdWNlZCB3aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdl
IHByb2Nlc3MgYSAicmlnaHQgdmVydGV4IiAob25lIHdpdGhvdXQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICogYW55IGVkZ2VzIGxlYXZpbmcgdG8gdGhlIHJpZ2h0KSAqLwotfTsK
LQotI2RlZmluZSBSZWdpb25CZWxvdyhyKQkoKEFjdGl2ZVJlZ2lvbiAqKSBkaWN0S2V5KGRpY3RQ
cmVkKChyKS0+bm9kZVVwKSkpCi0jZGVmaW5lIFJlZ2lvbkFib3ZlKHIpCSgoQWN0aXZlUmVnaW9u
ICopIGRpY3RLZXkoZGljdFN1Y2MoKHIpLT5ub2RlVXApKSkKLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzcy5jIGIvV2ViQ29yZS90aGlyZHBh
cnR5L2dsdS9saWJ0ZXNzL3Rlc3MuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNi
YTU4Ni4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzcy5j
CisrKyAvZGV2L251bGwKQEAgLTEsNjM5ICswLDAgQEAKLS8qCi0qKiBMaWNlbnNlIEFwcGxpY2Fi
aWxpdHkuIEV4Y2VwdCB0byB0aGUgZXh0ZW50IHBvcnRpb25zIG9mIHRoaXMgZmlsZSBhcmUKLSoq
IG1hZGUgc3ViamVjdCB0byBhbiBhbHRlcm5hdGl2ZSBsaWNlbnNlIGFzIHBlcm1pdHRlZCBpbiB0
aGUgU0dJIEZyZWUKLSoqIFNvZnR3YXJlIExpY2Vuc2UgQiwgVmVyc2lvbiAxLjEgKHRoZSAiTGlj
ZW5zZSIpLCB0aGUgY29udGVudHMgb2YgdGhpcwotKiogZmlsZSBhcmUgc3ViamVjdCBvbmx5IHRv
IHRoZSBwcm92aXNpb25zIG9mIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG5vdCB1c2UKLSoqIHRoaXMg
ZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFp
biBhIGNvcHkKLSoqIG9mIHRoZSBMaWNlbnNlIGF0IFNpbGljb24gR3JhcGhpY3MsIEluYy4sIGF0
dG46IExlZ2FsIFNlcnZpY2VzLCAxNjAwCi0qKiBBbXBoaXRoZWF0cmUgUGFya3dheSwgTW91bnRh
aW4gVmlldywgQ0EgOTQwNDMtMTM1MSwgb3IgYXQ6Ci0qKiAKLSoqIGh0dHA6Ly9vc3Muc2dpLmNv
bS9wcm9qZWN0cy9GcmVlQgotKiogCi0qKiBOb3RlIHRoYXQsIGFzIHByb3ZpZGVkIGluIHRoZSBM
aWNlbnNlLCB0aGUgU29mdHdhcmUgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSoqICJBUyBJUyIgYmFz
aXMsIHdpdGggQUxMIEVYUFJFU1MgQU5EIElNUExJRUQgV0FSUkFOVElFUyBBTkQgQ09ORElUSU9O
UwotKiogRElTQ0xBSU1FRCwgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBJTVBM
SUVEIFdBUlJBTlRJRVMgQU5ECi0qKiBDT05ESVRJT05TIE9GIE1FUkNIQU5UQUJJTElUWSwgU0FU
SVNGQUNUT1JZIFFVQUxJVFksIEZJVE5FU1MgRk9SIEEKLSoqIFBBUlRJQ1VMQVIgUFVSUE9TRSwg
QU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0qKiAKLSoqIE9yaWdpbmFsIENvZGUuIFRoZSBPcmlnaW5h
bCBDb2RlIGlzOiBPcGVuR0wgU2FtcGxlIEltcGxlbWVudGF0aW9uLAotKiogVmVyc2lvbiAxLjIu
MSwgcmVsZWFzZWQgSmFudWFyeSAyNiwgMjAwMCwgZGV2ZWxvcGVkIGJ5IFNpbGljb24gR3JhcGhp
Y3MsCi0qKiBJbmMuIFRoZSBPcmlnaW5hbCBDb2RlIGlzIENvcHlyaWdodCAoYykgMTk5MS0yMDAw
IFNpbGljb24gR3JhcGhpY3MsIEluYy4KLSoqIENvcHlyaWdodCBpbiBhbnkgcG9ydGlvbnMgY3Jl
YXRlZCBieSB0aGlyZCBwYXJ0aWVzIGlzIGFzIGluZGljYXRlZAotKiogZWxzZXdoZXJlIGhlcmVp
bi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSoqIAotKiogQWRkaXRpb25hbCBOb3RpY2UgUHJvdmlz
aW9uczogVGhlIGFwcGxpY2F0aW9uIHByb2dyYW1taW5nIGludGVyZmFjZXMKLSoqIGVzdGFibGlz
aGVkIGJ5IFNHSSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBPcmlnaW5hbCBDb2RlIGFyZSBUaGUK
LSoqIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0ZW06IEEgU3BlY2lmaWNhdGlvbiAoVmVyc2lvbiAx
LjIuMSksIHJlbGVhc2VkCi0qKiBBcHJpbCAxLCAxOTk5OyBUaGUgT3BlbkdMKFIpIEdyYXBoaWNz
IFN5c3RlbSBVdGlsaXR5IExpYnJhcnkgKFZlcnNpb24KLSoqIDEuMyksIHJlbGVhc2VkIE5vdmVt
YmVyIDQsIDE5OTg7IGFuZCBPcGVuR0woUikgR3JhcGhpY3Mgd2l0aCB0aGUgWAotKiogV2luZG93
IFN5c3RlbShSKSAoVmVyc2lvbiAxLjMpLCByZWxlYXNlZCBPY3RvYmVyIDE5LCAxOTk4LiBUaGlz
IHNvZnR3YXJlCi0qKiB3YXMgY3JlYXRlZCB1c2luZyB0aGUgT3BlbkdMKFIpIHZlcnNpb24gMS4y
LjEgU2FtcGxlIEltcGxlbWVudGF0aW9uCi0qKiBwdWJsaXNoZWQgYnkgU0dJLCBidXQgaGFzIG5v
dCBiZWVuIGluZGVwZW5kZW50bHkgdmVyaWZpZWQgYXMgYmVpbmcKLSoqIGNvbXBsaWFudCB3aXRo
IHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTcGVjaWZpY2F0aW9uLgotKioKLSovCi0vKgot
KiogQXV0aG9yOiBFcmljIFZlYWNoLCBKdWx5IDE5OTQuCi0qKgotKiogJERhdGUkICRSZXZpc2lv
biQKLSoqICRIZWFkZXI6IC8vZGVwb3QvbWFpbi9nZngvbGliL2dsdS9saWJ0ZXNzL3Rlc3MuYyM3
ICQKLSovCi0KLSNpbmNsdWRlIDxhc3NlcnQuaD4KLSNpbmNsdWRlIDxzZXRqbXAuaD4KLSNpbmNs
dWRlIDxzdGRkZWYuaD4KLQotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2dsdW9zLmgiCi0jaW5j
bHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9tZW1hbGxvYy5oIgotI2luY2x1ZGUgInRoaXJk
cGFydHkvZ2x1L2xpYnRlc3MvbWVzaC5oIgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRl
c3Mvbm9ybWFsLmgiCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGlidGVzcy9yZW5kZXIuaCIK
LSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3N3ZWVwLmgiCi0jaW5jbHVkZSAidGhp
cmRwYXJ0eS9nbHUvbGlidGVzcy90ZXNzLmgiCi0jaW5jbHVkZSAidGhpcmRwYXJ0eS9nbHUvbGli
dGVzcy90ZXNzbW9uby5oIgotCi0jZGVmaW5lIEdMVV9URVNTX0RFRkFVTFRfVE9MRVJBTkNFIDAu
MAotI2RlZmluZSBHTFVfVEVTU19NRVNICQkxMDAxMTIJLyogdm9pZCAoKikoR0xVbWVzaCAqbWVz
aCkJICAgICovCi0KLSNkZWZpbmUgVFJVRSAxCi0jZGVmaW5lIEZBTFNFIDAKLQotLypBUkdTVVNF
RCovIHN0YXRpYyB2b2lkIEdMQVBJRU5UUlkgbm9CZWdpbiggR0xlbnVtIHR5cGUgKSB7fQotLypB
UkdTVVNFRCovIHN0YXRpYyB2b2lkIEdMQVBJRU5UUlkgbm9FZGdlRmxhZyggR0xib29sZWFuIGJv
dW5kYXJ5RWRnZSApIHt9Ci0vKkFSR1NVU0VEKi8gc3RhdGljIHZvaWQgR0xBUElFTlRSWSBub1Zl
cnRleCggdm9pZCAqZGF0YSApIHt9Ci0vKkFSR1NVU0VEKi8gc3RhdGljIHZvaWQgR0xBUElFTlRS
WSBub0VuZCggdm9pZCApIHt9Ci0vKkFSR1NVU0VEKi8gc3RhdGljIHZvaWQgR0xBUElFTlRSWSBu
b0Vycm9yKCBHTGVudW0gZXJybnVtICkge30KLS8qQVJHU1VTRUQqLyBzdGF0aWMgdm9pZCBHTEFQ
SUVOVFJZIG5vQ29tYmluZSggR0xkb3VibGUgY29vcmRzWzNdLCB2b2lkICpkYXRhWzRdLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xmbG9hdCB3ZWlnaHRbNF0sIHZvaWQg
KipkYXRhT3V0ICkge30KLS8qQVJHU1VTRUQqLyBzdGF0aWMgdm9pZCBHTEFQSUVOVFJZIG5vTWVz
aCggR0xVbWVzaCAqbWVzaCApIHt9Ci0KLQotLypBUkdTVVNFRCovIHZvaWQgR0xBUElFTlRSWSBf
X2dsX25vQmVnaW5EYXRhKCBHTGVudW0gdHlwZSwKLQkJCQkJICAgICB2b2lkICpwb2x5Z29uRGF0
YSApIHt9Ci0vKkFSR1NVU0VEKi8gdm9pZCBHTEFQSUVOVFJZIF9fZ2xfbm9FZGdlRmxhZ0RhdGEo
IEdMYm9vbGVhbiBib3VuZGFyeUVkZ2UsIAotCQkJCSAgICAgICB2b2lkICpwb2x5Z29uRGF0YSAp
IHt9Ci0vKkFSR1NVU0VEKi8gdm9pZCBHTEFQSUVOVFJZIF9fZ2xfbm9WZXJ0ZXhEYXRhKCB2b2lk
ICpkYXRhLAotCQkJCQkgICAgICB2b2lkICpwb2x5Z29uRGF0YSApIHt9Ci0vKkFSR1NVU0VEKi8g
dm9pZCBHTEFQSUVOVFJZIF9fZ2xfbm9FbmREYXRhKCB2b2lkICpwb2x5Z29uRGF0YSApIHt9Ci0v
KkFSR1NVU0VEKi8gdm9pZCBHTEFQSUVOVFJZIF9fZ2xfbm9FcnJvckRhdGEoIEdMZW51bSBlcnJu
dW0sCi0JCQkJCSAgICAgdm9pZCAqcG9seWdvbkRhdGEgKSB7fQotLypBUkdTVVNFRCovIHZvaWQg
R0xBUElFTlRSWSBfX2dsX25vQ29tYmluZURhdGEoIEdMZG91YmxlIGNvb3Jkc1szXSwKLQkJCQkJ
ICAgICAgIHZvaWQgKmRhdGFbNF0sCi0JCQkJCSAgICAgICBHTGZsb2F0IHdlaWdodFs0XSwKLQkJ
CQkJICAgICAgIHZvaWQgKipvdXREYXRhLAotCQkJCQkgICAgICAgdm9pZCAqcG9seWdvbkRhdGEg
KSB7fQotCi0vKiBIYWxmLWVkZ2VzIGFyZSBhbGxvY2F0ZWQgaW4gcGFpcnMgKHNlZSBtZXNoLmMp
ICovCi10eXBlZGVmIHN0cnVjdCB7IEdMVWhhbGZFZGdlIGUsIGVTeW07IH0gRWRnZVBhaXI7Ci0K
LSNkZWZpbmUgTUFYKGEsYikJKChhKSA+IChiKSA/IChhKSA6IChiKSkKLSNkZWZpbmUgTUFYX0ZB
U1RfQUxMT0MJKE1BWChzaXplb2YoRWRnZVBhaXIpLCBcCi0JCQkgTUFYKHNpemVvZihHTFV2ZXJ0
ZXgpLHNpemVvZihHTFVmYWNlKSkpKQotCi0KLUdMVXRlc3NlbGF0b3IgKiBHTEFQSUVOVFJZCi1p
bnRlcm5hbF9nbHVOZXdUZXNzKCB2b2lkICkKLXsKLSAgR0xVdGVzc2VsYXRvciAqdGVzczsKLQot
ICAvKiBPbmx5IGluaXRpYWxpemUgZmllbGRzIHdoaWNoIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSBh
cGkuICBPdGhlciBmaWVsZHMKLSAgICogYXJlIGluaXRpYWxpemVkIHdoZXJlIHRoZXkgYXJlIHVz
ZWQuCi0gICAqLwotCi0gIGlmIChtZW1Jbml0KCBNQVhfRkFTVF9BTExPQyApID09IDApIHsKLSAg
ICAgcmV0dXJuIDA7CQkJLyogb3V0IG9mIG1lbW9yeSAqLwotICB9Ci0gIHRlc3MgPSAoR0xVdGVz
c2VsYXRvciAqKW1lbUFsbG9jKCBzaXplb2YoIEdMVXRlc3NlbGF0b3IgKSk7Ci0gIGlmICh0ZXNz
ID09IE5VTEwpIHsKLSAgICAgcmV0dXJuIDA7CQkJLyogb3V0IG9mIG1lbW9yeSAqLwotICB9Ci0K
LSAgdGVzcy0+c3RhdGUgPSBUX0RPUk1BTlQ7Ci0KLSAgdGVzcy0+bm9ybWFsWzBdID0gMDsKLSAg
dGVzcy0+bm9ybWFsWzFdID0gMDsKLSAgdGVzcy0+bm9ybWFsWzJdID0gMDsKLQotICB0ZXNzLT5y
ZWxUb2xlcmFuY2UgPSBHTFVfVEVTU19ERUZBVUxUX1RPTEVSQU5DRTsKLSAgdGVzcy0+d2luZGlu
Z1J1bGUgPSBHTFVfVEVTU19XSU5ESU5HX09ERDsKLSAgdGVzcy0+ZmxhZ0JvdW5kYXJ5ID0gRkFM
U0U7Ci0gIHRlc3MtPmJvdW5kYXJ5T25seSA9IEZBTFNFOwotCi0gIHRlc3MtPmNhbGxCZWdpbiA9
ICZub0JlZ2luOwotICB0ZXNzLT5jYWxsRWRnZUZsYWcgPSAmbm9FZGdlRmxhZzsKLSAgdGVzcy0+
Y2FsbFZlcnRleCA9ICZub1ZlcnRleDsKLSAgdGVzcy0+Y2FsbEVuZCA9ICZub0VuZDsKLQotICB0
ZXNzLT5jYWxsRXJyb3IgPSAmbm9FcnJvcjsKLSAgdGVzcy0+Y2FsbENvbWJpbmUgPSAmbm9Db21i
aW5lOwotICB0ZXNzLT5jYWxsTWVzaCA9ICZub01lc2g7Ci0KLSAgdGVzcy0+Y2FsbEJlZ2luRGF0
YT0gJl9fZ2xfbm9CZWdpbkRhdGE7Ci0gIHRlc3MtPmNhbGxFZGdlRmxhZ0RhdGE9ICZfX2dsX25v
RWRnZUZsYWdEYXRhOwotICB0ZXNzLT5jYWxsVmVydGV4RGF0YT0gJl9fZ2xfbm9WZXJ0ZXhEYXRh
OwotICB0ZXNzLT5jYWxsRW5kRGF0YT0gJl9fZ2xfbm9FbmREYXRhOwotICB0ZXNzLT5jYWxsRXJy
b3JEYXRhPSAmX19nbF9ub0Vycm9yRGF0YTsKLSAgdGVzcy0+Y2FsbENvbWJpbmVEYXRhPSAmX19n
bF9ub0NvbWJpbmVEYXRhOwotCi0gIHRlc3MtPnBvbHlnb25EYXRhPSBOVUxMOwotCi0gIHJldHVy
biB0ZXNzOwotfQotCi1zdGF0aWMgdm9pZCBNYWtlRG9ybWFudCggR0xVdGVzc2VsYXRvciAqdGVz
cyApCi17Ci0gIC8qIFJldHVybiB0aGUgdGVzc2VsbGF0b3IgdG8gaXRzIG9yaWdpbmFsIGRvcm1h
bnQgc3RhdGUuICovCi0KLSAgaWYoIHRlc3MtPm1lc2ggIT0gTlVMTCApIHsKLSAgICBfX2dsX21l
c2hEZWxldGVNZXNoKCB0ZXNzLT5tZXNoICk7Ci0gIH0KLSAgdGVzcy0+c3RhdGUgPSBUX0RPUk1B
TlQ7Ci0gIHRlc3MtPmxhc3RFZGdlID0gTlVMTDsKLSAgdGVzcy0+bWVzaCA9IE5VTEw7Ci19Ci0K
LSNkZWZpbmUgUmVxdWlyZVN0YXRlKCB0ZXNzLCBzICkgICBpZiggdGVzcy0+c3RhdGUgIT0gcyAp
IEdvdG9TdGF0ZSh0ZXNzLHMpCi0KLXN0YXRpYyB2b2lkIEdvdG9TdGF0ZSggR0xVdGVzc2VsYXRv
ciAqdGVzcywgZW51bSBUZXNzU3RhdGUgbmV3U3RhdGUgKQotewotICB3aGlsZSggdGVzcy0+c3Rh
dGUgIT0gbmV3U3RhdGUgKSB7Ci0gICAgLyogV2UgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9u
ZSBsZXZlbCBhdCBhIHRpbWUsIHRvIGdldCB0bwotICAgICAqIHRoZSBkZXNpcmVkIHN0YXRlLgot
ICAgICAqLwotICAgIGlmKCB0ZXNzLT5zdGF0ZSA8IG5ld1N0YXRlICkgewotICAgICAgc3dpdGNo
KCB0ZXNzLT5zdGF0ZSApIHsKLSAgICAgIGNhc2UgVF9ET1JNQU5UOgotCUNBTExfRVJST1JfT1Jf
RVJST1JfREFUQSggR0xVX1RFU1NfTUlTU0lOR19CRUdJTl9QT0xZR09OICk7Ci0JaW50ZXJuYWxf
Z2x1VGVzc0JlZ2luUG9seWdvbiggdGVzcywgTlVMTCApOwotCWJyZWFrOwotICAgICAgY2FzZSBU
X0lOX1BPTFlHT046Ci0JQ0FMTF9FUlJPUl9PUl9FUlJPUl9EQVRBKCBHTFVfVEVTU19NSVNTSU5H
X0JFR0lOX0NPTlRPVVIgKTsKLQlpbnRlcm5hbF9nbHVUZXNzQmVnaW5Db250b3VyKCB0ZXNzICk7
Ci0JYnJlYWs7Ci0gICAgICBkZWZhdWx0OgotICAgICAgICBhc3NlcnQoMCk7Ci0gICAgICAgIGJy
ZWFrOwotICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICBzd2l0Y2goIHRlc3MtPnN0YXRlICkg
ewotICAgICAgY2FzZSBUX0lOX0NPTlRPVVI6Ci0JQ0FMTF9FUlJPUl9PUl9FUlJPUl9EQVRBKCBH
TFVfVEVTU19NSVNTSU5HX0VORF9DT05UT1VSICk7Ci0JaW50ZXJuYWxfZ2x1VGVzc0VuZENvbnRv
dXIoIHRlc3MgKTsKLQlicmVhazsKLSAgICAgIGNhc2UgVF9JTl9QT0xZR09OOgotCUNBTExfRVJS
T1JfT1JfRVJST1JfREFUQSggR0xVX1RFU1NfTUlTU0lOR19FTkRfUE9MWUdPTiApOwotCS8qIGds
dVRlc3NFbmRQb2x5Z29uKCB0ZXNzICkgaXMgdG9vIG11Y2ggd29yayEgKi8KLQlNYWtlRG9ybWFu
dCggdGVzcyApOwotCWJyZWFrOwotICAgICAgZGVmYXVsdDoKLSAgICAgICAgYXNzZXJ0KDApOwot
ICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9Ci0gIH0KLX0KLQotCi12b2lkIEdMQVBJRU5U
UlkKLWludGVybmFsX2dsdURlbGV0ZVRlc3MoIEdMVXRlc3NlbGF0b3IgKnRlc3MgKQotewotICBS
ZXF1aXJlU3RhdGUoIHRlc3MsIFRfRE9STUFOVCApOwotICBtZW1GcmVlKCB0ZXNzICk7Ci19Ci0K
LQotdm9pZCBHTEFQSUVOVFJZCi1pbnRlcm5hbF9nbHVUZXNzUHJvcGVydHkoIEdMVXRlc3NlbGF0
b3IgKnRlc3MsIEdMZW51bSB3aGljaCwgR0xkb3VibGUgdmFsdWUgKQotewotICBHTGVudW0gd2lu
ZGluZ1J1bGU7Ci0KLSAgc3dpdGNoKCB3aGljaCApIHsKLSAgY2FzZSBHTFVfVEVTU19UT0xFUkFO
Q0U6Ci0gICAgaWYoIHZhbHVlIDwgMC4wIHx8IHZhbHVlID4gMS4wICkgYnJlYWs7Ci0gICAgdGVz
cy0+cmVsVG9sZXJhbmNlID0gdmFsdWU7Ci0gICAgcmV0dXJuOwotCi0gIGNhc2UgR0xVX1RFU1Nf
V0lORElOR19SVUxFOgotICAgIHdpbmRpbmdSdWxlID0gKEdMZW51bSkgdmFsdWU7Ci0gICAgaWYo
IHdpbmRpbmdSdWxlICE9IHZhbHVlICkgYnJlYWs7CS8qIG5vdCBhbiBpbnRlZ2VyICovCi0KLSAg
ICBzd2l0Y2goIHdpbmRpbmdSdWxlICkgewotICAgIGNhc2UgR0xVX1RFU1NfV0lORElOR19PREQ6
Ci0gICAgY2FzZSBHTFVfVEVTU19XSU5ESU5HX05PTlpFUk86Ci0gICAgY2FzZSBHTFVfVEVTU19X
SU5ESU5HX1BPU0lUSVZFOgotICAgIGNhc2UgR0xVX1RFU1NfV0lORElOR19ORUdBVElWRToKLSAg
ICBjYXNlIEdMVV9URVNTX1dJTkRJTkdfQUJTX0dFUV9UV086Ci0gICAgICB0ZXNzLT53aW5kaW5n
UnVsZSA9IHdpbmRpbmdSdWxlOwotICAgICAgcmV0dXJuOwotICAgIGRlZmF1bHQ6Ci0gICAgICBi
cmVhazsKLSAgICB9Ci0KLSAgY2FzZSBHTFVfVEVTU19CT1VOREFSWV9PTkxZOgotICAgIHRlc3Mt
PmJvdW5kYXJ5T25seSA9ICh2YWx1ZSAhPSAwKTsKLSAgICByZXR1cm47Ci0KLSAgZGVmYXVsdDoK
LSAgICBDQUxMX0VSUk9SX09SX0VSUk9SX0RBVEEoIEdMVV9JTlZBTElEX0VOVU0gKTsKLSAgICBy
ZXR1cm47Ci0gIH0KLSAgQ0FMTF9FUlJPUl9PUl9FUlJPUl9EQVRBKCBHTFVfSU5WQUxJRF9WQUxV
RSApOwotfQotCi0vKiBSZXR1cm5zIHRlc3NlbGxhdG9yIHByb3BlcnR5ICovCi12b2lkIEdMQVBJ
RU5UUlkKLWludGVybmFsX2dsdUdldFRlc3NQcm9wZXJ0eSggR0xVdGVzc2VsYXRvciAqdGVzcywg
R0xlbnVtIHdoaWNoLCBHTGRvdWJsZSAqdmFsdWUgKQotewotICAgc3dpdGNoICh3aGljaCkgewot
ICAgY2FzZSBHTFVfVEVTU19UT0xFUkFOQ0U6Ci0gICAgICAvKiB0b2xlcmFuY2Ugc2hvdWxkIGJl
IGluIHJhbmdlIFswLi4xXSAqLwotICAgICAgYXNzZXJ0KDAuMCA8PSB0ZXNzLT5yZWxUb2xlcmFu
Y2UgJiYgdGVzcy0+cmVsVG9sZXJhbmNlIDw9IDEuMCk7Ci0gICAgICAqdmFsdWU9IHRlc3MtPnJl
bFRvbGVyYW5jZTsKLSAgICAgIGJyZWFrOyAgICAKLSAgIGNhc2UgR0xVX1RFU1NfV0lORElOR19S
VUxFOgotICAgICAgYXNzZXJ0KHRlc3MtPndpbmRpbmdSdWxlID09IEdMVV9URVNTX1dJTkRJTkdf
T0REIHx8Ci0JICAgICB0ZXNzLT53aW5kaW5nUnVsZSA9PSBHTFVfVEVTU19XSU5ESU5HX05PTlpF
Uk8gfHwKLQkgICAgIHRlc3MtPndpbmRpbmdSdWxlID09IEdMVV9URVNTX1dJTkRJTkdfUE9TSVRJ
VkUgfHwKLQkgICAgIHRlc3MtPndpbmRpbmdSdWxlID09IEdMVV9URVNTX1dJTkRJTkdfTkVHQVRJ
VkUgfHwKLQkgICAgIHRlc3MtPndpbmRpbmdSdWxlID09IEdMVV9URVNTX1dJTkRJTkdfQUJTX0dF
UV9UV08pOwotICAgICAgKnZhbHVlPSB0ZXNzLT53aW5kaW5nUnVsZTsKLSAgICAgIGJyZWFrOwot
ICAgY2FzZSBHTFVfVEVTU19CT1VOREFSWV9PTkxZOgotICAgICAgYXNzZXJ0KHRlc3MtPmJvdW5k
YXJ5T25seSA9PSBUUlVFIHx8IHRlc3MtPmJvdW5kYXJ5T25seSA9PSBGQUxTRSk7Ci0gICAgICAq
dmFsdWU9IHRlc3MtPmJvdW5kYXJ5T25seTsKLSAgICAgIGJyZWFrOwotICAgZGVmYXVsdDoKLSAg
ICAgICp2YWx1ZT0gMC4wOwotICAgICAgQ0FMTF9FUlJPUl9PUl9FUlJPUl9EQVRBKCBHTFVfSU5W
QUxJRF9FTlVNICk7Ci0gICAgICBicmVhazsKLSAgIH0KLX0gLyogZ2x1R2V0VGVzc1Byb3BlcnR5
KCkgKi8KLQotdm9pZCBHTEFQSUVOVFJZCi1pbnRlcm5hbF9nbHVUZXNzTm9ybWFsKCBHTFV0ZXNz
ZWxhdG9yICp0ZXNzLCBHTGRvdWJsZSB4LCBHTGRvdWJsZSB5LCBHTGRvdWJsZSB6ICkKLXsKLSAg
dGVzcy0+bm9ybWFsWzBdID0geDsKLSAgdGVzcy0+bm9ybWFsWzFdID0geTsKLSAgdGVzcy0+bm9y
bWFsWzJdID0gejsKLX0KLQotdm9pZCBHTEFQSUVOVFJZCi1pbnRlcm5hbF9nbHVUZXNzQ2FsbGJh
Y2soIEdMVXRlc3NlbGF0b3IgKnRlc3MsIEdMZW51bSB3aGljaCwgdm9pZCAoR0xBUElFTlRSWSAq
Zm4pKCkpCi17Ci0gIHN3aXRjaCggd2hpY2ggKSB7Ci0gIGNhc2UgR0xVX1RFU1NfQkVHSU46Ci0g
ICAgdGVzcy0+Y2FsbEJlZ2luID0gKGZuID09IE5VTEwpID8gJm5vQmVnaW4gOiAodm9pZCAoR0xB
UElFTlRSWSAqKShHTGVudW0pKSBmbjsKLSAgICByZXR1cm47Ci0gIGNhc2UgR0xVX1RFU1NfQkVH
SU5fREFUQToKLSAgICB0ZXNzLT5jYWxsQmVnaW5EYXRhID0gKGZuID09IE5VTEwpID8KLQkmX19n
bF9ub0JlZ2luRGF0YSA6ICh2b2lkIChHTEFQSUVOVFJZICopKEdMZW51bSwgdm9pZCAqKSkgZm47
Ci0gICAgcmV0dXJuOwotICBjYXNlIEdMVV9URVNTX0VER0VfRkxBRzoKLSAgICB0ZXNzLT5jYWxs
RWRnZUZsYWcgPSAoZm4gPT0gTlVMTCkgPyAmbm9FZGdlRmxhZyA6Ci0JCQkJCSh2b2lkIChHTEFQ
SUVOVFJZICopKEdMYm9vbGVhbikpIGZuOwotICAgIC8qIElmIHRoZSBjbGllbnQgd2FudHMgYm91
bmRhcnkgZWRnZXMgdG8gYmUgZmxhZ2dlZCwKLSAgICAgKiB3ZSByZW5kZXIgZXZlcnl0aGluZyBh
cyBzZXBhcmF0ZSB0cmlhbmdsZXMgKG5vIHN0cmlwcyBvciBmYW5zKS4KLSAgICAgKi8KLSAgICB0
ZXNzLT5mbGFnQm91bmRhcnkgPSAoZm4gIT0gTlVMTCk7Ci0gICAgcmV0dXJuOwotICBjYXNlIEdM
VV9URVNTX0VER0VfRkxBR19EQVRBOgotICAgIHRlc3MtPmNhbGxFZGdlRmxhZ0RhdGE9IChmbiA9
PSBOVUxMKSA/Ci0JJl9fZ2xfbm9FZGdlRmxhZ0RhdGEgOiAodm9pZCAoR0xBUElFTlRSWSAqKShH
TGJvb2xlYW4sIHZvaWQgKikpIGZuOyAKLSAgICAvKiBJZiB0aGUgY2xpZW50IHdhbnRzIGJvdW5k
YXJ5IGVkZ2VzIHRvIGJlIGZsYWdnZWQsCi0gICAgICogd2UgcmVuZGVyIGV2ZXJ5dGhpbmcgYXMg
c2VwYXJhdGUgdHJpYW5nbGVzIChubyBzdHJpcHMgb3IgZmFucykuCi0gICAgICovCi0gICAgdGVz
cy0+ZmxhZ0JvdW5kYXJ5ID0gKGZuICE9IE5VTEwpOwotICAgIHJldHVybjsKLSAgY2FzZSBHTFVf
VEVTU19WRVJURVg6Ci0gICAgdGVzcy0+Y2FsbFZlcnRleCA9IChmbiA9PSBOVUxMKSA/ICZub1Zl
cnRleCA6Ci0JCQkJICAgICAgKHZvaWQgKEdMQVBJRU5UUlkgKikodm9pZCAqKSkgZm47Ci0gICAg
cmV0dXJuOwotICBjYXNlIEdMVV9URVNTX1ZFUlRFWF9EQVRBOgotICAgIHRlc3MtPmNhbGxWZXJ0
ZXhEYXRhID0gKGZuID09IE5VTEwpID8KLQkmX19nbF9ub1ZlcnRleERhdGEgOiAodm9pZCAoR0xB
UElFTlRSWSAqKSh2b2lkICosIHZvaWQgKikpIGZuOwotICAgIHJldHVybjsKLSAgY2FzZSBHTFVf
VEVTU19FTkQ6Ci0gICAgdGVzcy0+Y2FsbEVuZCA9IChmbiA9PSBOVUxMKSA/ICZub0VuZCA6ICh2
b2lkIChHTEFQSUVOVFJZICopKHZvaWQpKSBmbjsKLSAgICByZXR1cm47Ci0gIGNhc2UgR0xVX1RF
U1NfRU5EX0RBVEE6Ci0gICAgdGVzcy0+Y2FsbEVuZERhdGEgPSAoZm4gPT0gTlVMTCkgPyAmX19n
bF9ub0VuZERhdGEgOiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2
b2lkIChHTEFQSUVOVFJZICopKHZvaWQgKikpIGZuOwotICAgIHJldHVybjsKLSAgY2FzZSBHTFVf
VEVTU19FUlJPUjoKLSAgICB0ZXNzLT5jYWxsRXJyb3IgPSAoZm4gPT0gTlVMTCkgPyAmbm9FcnJv
ciA6ICh2b2lkIChHTEFQSUVOVFJZICopKEdMZW51bSkpIGZuOwotICAgIHJldHVybjsKLSAgY2Fz
ZSBHTFVfVEVTU19FUlJPUl9EQVRBOgotICAgIHRlc3MtPmNhbGxFcnJvckRhdGEgPSAoZm4gPT0g
TlVMTCkgPwotCSZfX2dsX25vRXJyb3JEYXRhIDogKHZvaWQgKEdMQVBJRU5UUlkgKikoR0xlbnVt
LCB2b2lkICopKSBmbjsKLSAgICByZXR1cm47Ci0gIGNhc2UgR0xVX1RFU1NfQ09NQklORToKLSAg
ICB0ZXNzLT5jYWxsQ29tYmluZSA9IChmbiA9PSBOVUxMKSA/ICZub0NvbWJpbmUgOgotCSh2b2lk
IChHTEFQSUVOVFJZICopKEdMZG91YmxlIFszXSx2b2lkICpbNF0sIEdMZmxvYXQgWzRdLCB2b2lk
ICoqICkpIGZuOwotICAgIHJldHVybjsKLSAgY2FzZSBHTFVfVEVTU19DT01CSU5FX0RBVEE6Ci0g
ICAgdGVzcy0+Y2FsbENvbWJpbmVEYXRhID0gKGZuID09IE5VTEwpID8gJl9fZ2xfbm9Db21iaW5l
RGF0YSA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQg
KEdMQVBJRU5UUlkgKikoR0xkb3VibGUgWzNdLAotCQkJCQkJICAgICB2b2lkICpbNF0sIAotCQkJ
CQkJICAgICBHTGZsb2F0IFs0XSwgCi0JCQkJCQkgICAgIHZvaWQgKiosCi0JCQkJCQkgICAgIHZv
aWQgKikpIGZuOwotICAgIHJldHVybjsKLSAgY2FzZSBHTFVfVEVTU19NRVNIOgotICAgIHRlc3Mt
PmNhbGxNZXNoID0gKGZuID09IE5VTEwpID8gJm5vTWVzaCA6ICh2b2lkIChHTEFQSUVOVFJZICop
KEdMVW1lc2ggKikpIGZuOwotICAgIHJldHVybjsKLSAgZGVmYXVsdDoKLSAgICBDQUxMX0VSUk9S
X09SX0VSUk9SX0RBVEEoIEdMVV9JTlZBTElEX0VOVU0gKTsKLSAgICByZXR1cm47Ci0gIH0KLX0K
LQotc3RhdGljIGludCBBZGRWZXJ0ZXgoIEdMVXRlc3NlbGF0b3IgKnRlc3MsIEdMZG91YmxlIGNv
b3Jkc1szXSwgdm9pZCAqZGF0YSApCi17Ci0gIEdMVWhhbGZFZGdlICplOwotCi0gIGUgPSB0ZXNz
LT5sYXN0RWRnZTsKLSAgaWYoIGUgPT0gTlVMTCApIHsKLSAgICAvKiBNYWtlIGEgc2VsZi1sb29w
IChvbmUgdmVydGV4LCBvbmUgZWRnZSkuICovCi0KLSAgICBlID0gX19nbF9tZXNoTWFrZUVkZ2Uo
IHRlc3MtPm1lc2ggKTsKLSAgICBpZiAoZSA9PSBOVUxMKSByZXR1cm4gMDsKLSAgICBpZiAoICFf
X2dsX21lc2hTcGxpY2UoIGUsIGUtPlN5bSApICkgcmV0dXJuIDA7Ci0gIH0gZWxzZSB7Ci0gICAg
LyogQ3JlYXRlIGEgbmV3IHZlcnRleCBhbmQgZWRnZSB3aGljaCBpbW1lZGlhdGVseSBmb2xsb3cg
ZQotICAgICAqIGluIHRoZSBvcmRlcmluZyBhcm91bmQgdGhlIGxlZnQgZmFjZS4KLSAgICAgKi8K
LSAgICBpZiAoX19nbF9tZXNoU3BsaXRFZGdlKCBlICkgPT0gTlVMTCkgcmV0dXJuIDA7Ci0gICAg
ZSA9IGUtPkxuZXh0OwotICB9Ci0KLSAgLyogVGhlIG5ldyB2ZXJ0ZXggaXMgbm93IGUtPk9yZy4g
Ki8KLSAgZS0+T3JnLT5kYXRhID0gZGF0YTsKLSAgZS0+T3JnLT5jb29yZHNbMF0gPSBjb29yZHNb
MF07Ci0gIGUtPk9yZy0+Y29vcmRzWzFdID0gY29vcmRzWzFdOwotICBlLT5PcmctPmNvb3Jkc1sy
XSA9IGNvb3Jkc1syXTsKLSAgCi0gIC8qIFRoZSB3aW5kaW5nIG9mIGFuIGVkZ2Ugc2F5cyBob3cg
dGhlIHdpbmRpbmcgbnVtYmVyIGNoYW5nZXMgYXMgd2UKLSAgICogY3Jvc3MgZnJvbSB0aGUgZWRn
ZScncyByaWdodCBmYWNlIHRvIGl0cyBsZWZ0IGZhY2UuICBXZSBhZGQgdGhlCi0gICAqIHZlcnRp
Y2VzIGluIHN1Y2ggYW4gb3JkZXIgdGhhdCBhIENDVyBjb250b3VyIHdpbGwgYWRkICsxIHRvCi0g
ICAqIHRoZSB3aW5kaW5nIG51bWJlciBvZiB0aGUgcmVnaW9uIGluc2lkZSB0aGUgY29udG91ci4K
LSAgICovCi0gIGUtPndpbmRpbmcgPSAxOwotICBlLT5TeW0tPndpbmRpbmcgPSAtMTsKLQotICB0
ZXNzLT5sYXN0RWRnZSA9IGU7Ci0KLSAgcmV0dXJuIDE7Ci19Ci0KLQotc3RhdGljIHZvaWQgQ2Fj
aGVWZXJ0ZXgoIEdMVXRlc3NlbGF0b3IgKnRlc3MsIEdMZG91YmxlIGNvb3Jkc1szXSwgdm9pZCAq
ZGF0YSApCi17Ci0gIENhY2hlZFZlcnRleCAqdiA9ICZ0ZXNzLT5jYWNoZVt0ZXNzLT5jYWNoZUNv
dW50XTsKLQotICB2LT5kYXRhID0gZGF0YTsKLSAgdi0+Y29vcmRzWzBdID0gY29vcmRzWzBdOwot
ICB2LT5jb29yZHNbMV0gPSBjb29yZHNbMV07Ci0gIHYtPmNvb3Jkc1syXSA9IGNvb3Jkc1syXTsK
LSAgKyt0ZXNzLT5jYWNoZUNvdW50OwotfQotCi0KLXN0YXRpYyBpbnQgRW1wdHlDYWNoZSggR0xV
dGVzc2VsYXRvciAqdGVzcyApCi17Ci0gIENhY2hlZFZlcnRleCAqdiA9IHRlc3MtPmNhY2hlOwot
ICBDYWNoZWRWZXJ0ZXggKnZMYXN0OwotCi0gIHRlc3MtPm1lc2ggPSBfX2dsX21lc2hOZXdNZXNo
KCk7Ci0gIGlmICh0ZXNzLT5tZXNoID09IE5VTEwpIHJldHVybiAwOwotCi0gIGZvciggdkxhc3Qg
PSB2ICsgdGVzcy0+Y2FjaGVDb3VudDsgdiA8IHZMYXN0OyArK3YgKSB7Ci0gICAgaWYgKCAhQWRk
VmVydGV4KCB0ZXNzLCB2LT5jb29yZHMsIHYtPmRhdGEgKSApIHJldHVybiAwOwotICB9Ci0gIHRl
c3MtPmNhY2hlQ291bnQgPSAwOwotICB0ZXNzLT5lbXB0eUNhY2hlID0gRkFMU0U7Ci0KLSAgcmV0
dXJuIDE7Ci19Ci0KLQotdm9pZCBHTEFQSUVOVFJZCi1pbnRlcm5hbF9nbHVUZXNzVmVydGV4KCBH
TFV0ZXNzZWxhdG9yICp0ZXNzLCBHTGRvdWJsZSBjb29yZHNbM10sIHZvaWQgKmRhdGEgKQotewot
ICBpbnQgaSwgdG9vTGFyZ2UgPSBGQUxTRTsKLSAgR0xkb3VibGUgeCwgY2xhbXBlZFszXTsKLQot
ICBSZXF1aXJlU3RhdGUoIHRlc3MsIFRfSU5fQ09OVE9VUiApOwotCi0gIGlmKCB0ZXNzLT5lbXB0
eUNhY2hlICkgewotICAgIGlmICggIUVtcHR5Q2FjaGUoIHRlc3MgKSApIHsKLSAgICAgICBDQUxM
X0VSUk9SX09SX0VSUk9SX0RBVEEoIEdMVV9PVVRfT0ZfTUVNT1JZICk7Ci0gICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICB0ZXNzLT5sYXN0RWRnZSA9IE5VTEw7Ci0gIH0KLSAgZm9yKCBpID0gMDsg
aSA8IDM7ICsraSApIHsKLSAgICB4ID0gY29vcmRzW2ldOwotICAgIGlmKCB4IDwgLSBHTFVfVEVT
U19NQVhfQ09PUkQgKSB7Ci0gICAgICB4ID0gLSBHTFVfVEVTU19NQVhfQ09PUkQ7Ci0gICAgICB0
b29MYXJnZSA9IFRSVUU7Ci0gICAgfQotICAgIGlmKCB4ID4gR0xVX1RFU1NfTUFYX0NPT1JEICkg
ewotICAgICAgeCA9IEdMVV9URVNTX01BWF9DT09SRDsKLSAgICAgIHRvb0xhcmdlID0gVFJVRTsK
LSAgICB9Ci0gICAgY2xhbXBlZFtpXSA9IHg7Ci0gIH0KLSAgaWYoIHRvb0xhcmdlICkgewotICAg
IENBTExfRVJST1JfT1JfRVJST1JfREFUQSggR0xVX1RFU1NfQ09PUkRfVE9PX0xBUkdFICk7Ci0g
IH0KLQotICBpZiggdGVzcy0+bWVzaCA9PSBOVUxMICkgewotICAgIGlmKCB0ZXNzLT5jYWNoZUNv
dW50IDwgVEVTU19NQVhfQ0FDSEUgKSB7Ci0gICAgICBDYWNoZVZlcnRleCggdGVzcywgY2xhbXBl
ZCwgZGF0YSApOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoICFFbXB0eUNhY2hlKCB0
ZXNzICkgKSB7Ci0gICAgICAgQ0FMTF9FUlJPUl9PUl9FUlJPUl9EQVRBKCBHTFVfT1VUX09GX01F
TU9SWSApOwotICAgICAgIHJldHVybjsKLSAgICB9Ci0gIH0KLSAgaWYgKCAhQWRkVmVydGV4KCB0
ZXNzLCBjbGFtcGVkLCBkYXRhICkgKSB7Ci0gICAgICAgQ0FMTF9FUlJPUl9PUl9FUlJPUl9EQVRB
KCBHTFVfT1VUX09GX01FTU9SWSApOwotICB9Ci19Ci0KLQotdm9pZCBHTEFQSUVOVFJZCi1pbnRl
cm5hbF9nbHVUZXNzQmVnaW5Qb2x5Z29uKCBHTFV0ZXNzZWxhdG9yICp0ZXNzLCB2b2lkICpkYXRh
ICkKLXsKLSAgUmVxdWlyZVN0YXRlKCB0ZXNzLCBUX0RPUk1BTlQgKTsKLQotICB0ZXNzLT5zdGF0
ZSA9IFRfSU5fUE9MWUdPTjsKLSAgdGVzcy0+Y2FjaGVDb3VudCA9IDA7Ci0gIHRlc3MtPmVtcHR5
Q2FjaGUgPSBGQUxTRTsKLSAgdGVzcy0+bWVzaCA9IE5VTEw7Ci0KLSAgdGVzcy0+cG9seWdvbkRh
dGE9IGRhdGE7Ci19Ci0KLQotdm9pZCBHTEFQSUVOVFJZCi1pbnRlcm5hbF9nbHVUZXNzQmVnaW5D
b250b3VyKCBHTFV0ZXNzZWxhdG9yICp0ZXNzICkKLXsKLSAgUmVxdWlyZVN0YXRlKCB0ZXNzLCBU
X0lOX1BPTFlHT04gKTsKLQotICB0ZXNzLT5zdGF0ZSA9IFRfSU5fQ09OVE9VUjsKLSAgdGVzcy0+
bGFzdEVkZ2UgPSBOVUxMOwotICBpZiggdGVzcy0+Y2FjaGVDb3VudCA+IDAgKSB7Ci0gICAgLyog
SnVzdCBzZXQgYSBmbGFnIHNvIHdlIGRvbid0IGdldCBjb25mdXNlZCBieSBlbXB0eSBjb250b3Vy
cwotICAgICAqIC0tIHRoZXNlIGNhbiBiZSBnZW5lcmF0ZWQgYWNjaWRlbnRhbGx5IHdpdGggdGhl
IG9ic29sZXRlCi0gICAgICogTmV4dENvbnRvdXIoKSBpbnRlcmZhY2UuCi0gICAgICovCi0gICAg
dGVzcy0+ZW1wdHlDYWNoZSA9IFRSVUU7Ci0gIH0KLX0KLQotCi12b2lkIEdMQVBJRU5UUlkKLWlu
dGVybmFsX2dsdVRlc3NFbmRDb250b3VyKCBHTFV0ZXNzZWxhdG9yICp0ZXNzICkKLXsKLSAgUmVx
dWlyZVN0YXRlKCB0ZXNzLCBUX0lOX0NPTlRPVVIgKTsKLSAgdGVzcy0+c3RhdGUgPSBUX0lOX1BP
TFlHT047Ci19Ci0KLXZvaWQgR0xBUElFTlRSWQotaW50ZXJuYWxfZ2x1VGVzc0VuZFBvbHlnb24o
IEdMVXRlc3NlbGF0b3IgKnRlc3MgKQotewotICBHTFVtZXNoICptZXNoOwotCi0gIGlmIChzZXRq
bXAodGVzcy0+ZW52KSAhPSAwKSB7CQotICAgICAvKiBjb21lIGJhY2sgaGVyZSBpZiBvdXQgb2Yg
bWVtb3J5ICovCi0gICAgIENBTExfRVJST1JfT1JfRVJST1JfREFUQSggR0xVX09VVF9PRl9NRU1P
UlkgKTsKLSAgICAgcmV0dXJuOwotICB9Ci0KLSAgUmVxdWlyZVN0YXRlKCB0ZXNzLCBUX0lOX1BP
TFlHT04gKTsKLSAgdGVzcy0+c3RhdGUgPSBUX0RPUk1BTlQ7Ci0KLSAgaWYoIHRlc3MtPm1lc2gg
PT0gTlVMTCApIHsKLSAgICBpZiggISB0ZXNzLT5mbGFnQm91bmRhcnkgJiYgdGVzcy0+Y2FsbE1l
c2ggPT0gJm5vTWVzaCApIHsKLQotICAgICAgLyogVHJ5IHNvbWUgc3BlY2lhbCBjb2RlIHRvIG1h
a2UgdGhlIGVhc3kgY2FzZXMgZ28gcXVpY2tseQotICAgICAgICogKGVnLiBjb252ZXggcG9seWdv
bnMpLiAgVGhpcyBjb2RlIGRvZXMgTk9UIGhhbmRsZSBtdWx0aXBsZSBjb250b3VycywKLSAgICAg
ICAqIGludGVyc2VjdGlvbnMsIGVkZ2UgZmxhZ3MsIGFuZCBvZiBjb3Vyc2UgaXQgZG9lcyBub3Qg
Z2VuZXJhdGUKLSAgICAgICAqIGFuIGV4cGxpY2l0IG1lc2ggZWl0aGVyLgotICAgICAgICovCi0g
ICAgICBpZiggX19nbF9yZW5kZXJDYWNoZSggdGVzcyApKSB7Ci0JdGVzcy0+cG9seWdvbkRhdGE9
IE5VTEw7IAotCXJldHVybjsKLSAgICAgIH0KLSAgICB9Ci0gICAgaWYgKCAhRW1wdHlDYWNoZSgg
dGVzcyApICkgbG9uZ2ptcCh0ZXNzLT5lbnYsMSk7IC8qIGNvdWxkJ3ZlIHVzZWQgYSBsYWJlbCov
Ci0gIH0KLQotICAvKiBEZXRlcm1pbmUgdGhlIHBvbHlnb24gbm9ybWFsIGFuZCBwcm9qZWN0IHZl
cnRpY2VzIG9udG8gdGhlIHBsYW5lCi0gICAqIG9mIHRoZSBwb2x5Z29uLgotICAgKi8KLSAgX19n
bF9wcm9qZWN0UG9seWdvbiggdGVzcyApOwotCi0gIC8qIF9fZ2xfY29tcHV0ZUludGVyaW9yKCB0
ZXNzICkgY29tcHV0ZXMgdGhlIHBsYW5hciBhcnJhbmdlbWVudCBzcGVjaWZpZWQKLSAgICogYnkg
dGhlIGdpdmVuIGNvbnRvdXJzLCBhbmQgZnVydGhlciBzdWJkaXZpZGVzIHRoaXMgYXJyYW5nZW1l
bnQKLSAgICogaW50byByZWdpb25zLiAgRWFjaCByZWdpb24gaXMgbWFya2VkICJpbnNpZGUiIGlm
IGl0IGJlbG9uZ3MKLSAgICogdG8gdGhlIHBvbHlnb24sIGFjY29yZGluZyB0byB0aGUgcnVsZSBn
aXZlbiBieSB0ZXNzLT53aW5kaW5nUnVsZS4KLSAgICogRWFjaCBpbnRlcmlvciByZWdpb24gaXMg
Z3VhcmFudGVlZCBiZSBtb25vdG9uZS4KLSAgICovCi0gIGlmICggIV9fZ2xfY29tcHV0ZUludGVy
aW9yKCB0ZXNzICkgKSB7Ci0gICAgIGxvbmdqbXAodGVzcy0+ZW52LDEpOwkvKiBjb3VsZCd2ZSB1
c2VkIGEgbGFiZWwgKi8KLSAgfQotCi0gIG1lc2ggPSB0ZXNzLT5tZXNoOwotICBpZiggISB0ZXNz
LT5mYXRhbEVycm9yICkgewotICAgIGludCByYyA9IDE7Ci0KLSAgICAvKiBJZiB0aGUgdXNlciB3
YW50cyBvbmx5IHRoZSBib3VuZGFyeSBjb250b3Vycywgd2UgdGhyb3cgYXdheSBhbGwgZWRnZXMK
LSAgICAgKiBleGNlcHQgdGhvc2Ugd2hpY2ggc2VwYXJhdGUgdGhlIGludGVyaW9yIGZyb20gdGhl
IGV4dGVyaW9yLgotICAgICAqIE90aGVyd2lzZSB3ZSB0ZXNzZWxsYXRlIGFsbCB0aGUgcmVnaW9u
cyBtYXJrZWQgImluc2lkZSIuCi0gICAgICovCi0gICAgaWYoIHRlc3MtPmJvdW5kYXJ5T25seSAp
IHsKLSAgICAgIHJjID0gX19nbF9tZXNoU2V0V2luZGluZ051bWJlciggbWVzaCwgMSwgVFJVRSAp
OwotICAgIH0gZWxzZSB7Ci0gICAgICByYyA9IF9fZ2xfbWVzaFRlc3NlbGxhdGVJbnRlcmlvcigg
bWVzaCApOyAKLSAgICB9Ci0gICAgaWYgKHJjID09IDApIGxvbmdqbXAodGVzcy0+ZW52LDEpOwkv
KiBjb3VsZCd2ZSB1c2VkIGEgbGFiZWwgKi8KLQotICAgIF9fZ2xfbWVzaENoZWNrTWVzaCggbWVz
aCApOwotCi0gICAgaWYoIHRlc3MtPmNhbGxCZWdpbiAhPSAmbm9CZWdpbiB8fCB0ZXNzLT5jYWxs
RW5kICE9ICZub0VuZAotICAgICAgIHx8IHRlc3MtPmNhbGxWZXJ0ZXggIT0gJm5vVmVydGV4IHx8
IHRlc3MtPmNhbGxFZGdlRmxhZyAhPSAmbm9FZGdlRmxhZyAKLSAgICAgICB8fCB0ZXNzLT5jYWxs
QmVnaW5EYXRhICE9ICZfX2dsX25vQmVnaW5EYXRhIAotICAgICAgIHx8IHRlc3MtPmNhbGxFbmRE
YXRhICE9ICZfX2dsX25vRW5kRGF0YQotICAgICAgIHx8IHRlc3MtPmNhbGxWZXJ0ZXhEYXRhICE9
ICZfX2dsX25vVmVydGV4RGF0YQotICAgICAgIHx8IHRlc3MtPmNhbGxFZGdlRmxhZ0RhdGEgIT0g
Jl9fZ2xfbm9FZGdlRmxhZ0RhdGEgKQotICAgIHsKLSAgICAgIGlmKCB0ZXNzLT5ib3VuZGFyeU9u
bHkgKSB7Ci0JX19nbF9yZW5kZXJCb3VuZGFyeSggdGVzcywgbWVzaCApOyAgLyogb3V0cHV0IGJv
dW5kYXJ5IGNvbnRvdXJzICovCi0gICAgICB9IGVsc2UgewotCV9fZ2xfcmVuZGVyTWVzaCggdGVz
cywgbWVzaCApOwkgICAvKiBvdXRwdXQgc3RyaXBzIGFuZCBmYW5zICovCi0gICAgICB9Ci0gICAg
fQotICAgIGlmKCB0ZXNzLT5jYWxsTWVzaCAhPSAmbm9NZXNoICkgewotCi0gICAgICAvKiBUaHJv
dyBhd2F5IHRoZSBleHRlcmlvciBmYWNlcywgc28gdGhhdCBhbGwgZmFjZXMgYXJlIGludGVyaW9y
LgotICAgICAgICogVGhpcyB3YXkgdGhlIHVzZXIgZG9lc24ndCBoYXZlIHRvIGNoZWNrIHRoZSAi
aW5zaWRlIiBmbGFnLAotICAgICAgICogYW5kIHdlIGRvbid0IG5lZWQgdG8gZXZlbiByZXZlYWwg
aXRzIGV4aXN0ZW5jZS4gIEl0IGFsc28gbGVhdmVzCi0gICAgICAgKiB0aGUgZnJlZWRvbSBmb3Ig
YW4gaW1wbGVtZW50YXRpb24gdG8gbm90IGdlbmVyYXRlIHRoZSBleHRlcmlvcgotICAgICAgICog
ZmFjZXMgaW4gdGhlIGZpcnN0IHBsYWNlLgotICAgICAgICovCi0gICAgICBfX2dsX21lc2hEaXNj
YXJkRXh0ZXJpb3IoIG1lc2ggKTsKLSAgICAgICgqdGVzcy0+Y2FsbE1lc2gpKCBtZXNoICk7CQkv
KiB1c2VyIHdhbnRzIHRoZSBtZXNoIGl0c2VsZiAqLwotICAgICAgdGVzcy0+bWVzaCA9IE5VTEw7
Ci0gICAgICB0ZXNzLT5wb2x5Z29uRGF0YT0gTlVMTDsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0g
IH0KLSAgX19nbF9tZXNoRGVsZXRlTWVzaCggbWVzaCApOwotICB0ZXNzLT5wb2x5Z29uRGF0YT0g
TlVMTDsKLSAgdGVzcy0+bWVzaCA9IE5VTEw7Ci19Ci0KLQotLypYWFhibHl0aGUgdW51c2VkIGZ1
bmN0aW9uKi8KLSNpZiAwCi12b2lkIEdMQVBJRU5UUlkKLWdsdURlbGV0ZU1lc2goIEdMVW1lc2gg
Km1lc2ggKQotewotICBfX2dsX21lc2hEZWxldGVNZXNoKCBtZXNoICk7Ci19Ci0jZW5kaWYKLQot
Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLwotCi0vKiBPYnNvbGV0ZSBjYWxscyAtLSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAq
LwotCi0jaWYgMAotdm9pZCBHTEFQSUVOVFJZCi1nbHVCZWdpblBvbHlnb24oIEdMVXRlc3NlbGF0
b3IgKnRlc3MgKQotewotICBnbHVUZXNzQmVnaW5Qb2x5Z29uKCB0ZXNzLCBOVUxMICk7Ci0gIGds
dVRlc3NCZWdpbkNvbnRvdXIoIHRlc3MgKTsKLX0KLQotCi0vKkFSR1NVU0VEKi8KLXZvaWQgR0xB
UElFTlRSWQotZ2x1TmV4dENvbnRvdXIoIEdMVXRlc3NlbGF0b3IgKnRlc3MsIEdMZW51bSB0eXBl
ICkKLXsKLSAgZ2x1VGVzc0VuZENvbnRvdXIoIHRlc3MgKTsKLSAgZ2x1VGVzc0JlZ2luQ29udG91
ciggdGVzcyApOwotfQotCi0KLXZvaWQgR0xBUElFTlRSWQotZ2x1RW5kUG9seWdvbiggR0xVdGVz
c2VsYXRvciAqdGVzcyApCi17Ci0gIGdsdVRlc3NFbmRDb250b3VyKCB0ZXNzICk7Ci0gIGdsdVRl
c3NFbmRQb2x5Z29uKCB0ZXNzICk7Ci19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvdGhp
cmRwYXJ0eS9nbHUvbGlidGVzcy90ZXNzLmggYi9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRl
c3MvdGVzcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjE1MjIzLi4wMDAwMDAw
Ci0tLSBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy90ZXNzLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwxNzMgKzAsMCBAQAotLyoKLSoqIExpY2Vuc2UgQXBwbGljYWJpbGl0eS4gRXhjZXB0
IHRvIHRoZSBleHRlbnQgcG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZQotKiogbWFkZSBzdWJqZWN0
IHRvIGFuIGFsdGVybmF0aXZlIGxpY2Vuc2UgYXMgcGVybWl0dGVkIGluIHRoZSBTR0kgRnJlZQot
KiogU29mdHdhcmUgTGljZW5zZSBCLCBWZXJzaW9uIDEuMSAodGhlICJMaWNlbnNlIiksIHRoZSBj
b250ZW50cyBvZiB0aGlzCi0qKiBmaWxlIGFyZSBzdWJqZWN0IG9ubHkgdG8gdGhlIHByb3Zpc2lv
bnMgb2YgdGhlIExpY2Vuc2UuIFlvdSBtYXkgbm90IHVzZQotKiogdGhpcyBmaWxlIGV4Y2VwdCBp
biBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weQotKiog
b2YgdGhlIExpY2Vuc2UgYXQgU2lsaWNvbiBHcmFwaGljcywgSW5jLiwgYXR0bjogTGVnYWwgU2Vy
dmljZXMsIDE2MDAKLSoqIEFtcGhpdGhlYXRyZSBQYXJrd2F5LCBNb3VudGFpbiBWaWV3LCBDQSA5
NDA0My0xMzUxLCBvciBhdDoKLSoqIAotKiogaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3RzL0Zy
ZWVCCi0qKiAKLSoqIE5vdGUgdGhhdCwgYXMgcHJvdmlkZWQgaW4gdGhlIExpY2Vuc2UsIHRoZSBT
b2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbgotKiogIkFTIElTIiBiYXNpcywgd2l0aCBBTEwg
RVhQUkVTUyBBTkQgSU1QTElFRCBXQVJSQU5USUVTIEFORCBDT05ESVRJT05TCi0qKiBESVNDTEFJ
TUVELCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIElNUExJRUQgV0FSUkFOVElF
UyBBTkQKLSoqIENPTkRJVElPTlMgT0YgTUVSQ0hBTlRBQklMSVRZLCBTQVRJU0ZBQ1RPUlkgUVVB
TElUWSwgRklUTkVTUyBGT1IgQQotKiogUEFSVElDVUxBUiBQVVJQT1NFLCBBTkQgTk9OLUlORlJJ
TkdFTUVOVC4KLSoqIAotKiogT3JpZ2luYWwgQ29kZS4gVGhlIE9yaWdpbmFsIENvZGUgaXM6IE9w
ZW5HTCBTYW1wbGUgSW1wbGVtZW50YXRpb24sCi0qKiBWZXJzaW9uIDEuMi4xLCByZWxlYXNlZCBK
YW51YXJ5IDI2LCAyMDAwLCBkZXZlbG9wZWQgYnkgU2lsaWNvbiBHcmFwaGljcywKLSoqIEluYy4g
VGhlIE9yaWdpbmFsIENvZGUgaXMgQ29weXJpZ2h0IChjKSAxOTkxLTIwMDAgU2lsaWNvbiBHcmFw
aGljcywgSW5jLgotKiogQ29weXJpZ2h0IGluIGFueSBwb3J0aW9ucyBjcmVhdGVkIGJ5IHRoaXJk
IHBhcnRpZXMgaXMgYXMgaW5kaWNhdGVkCi0qKiBlbHNld2hlcmUgaGVyZWluLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgotKiogCi0qKiBBZGRpdGlvbmFsIE5vdGljZSBQcm92aXNpb25zOiBUaGUgYXBw
bGljYXRpb24gcHJvZ3JhbW1pbmcgaW50ZXJmYWNlcwotKiogZXN0YWJsaXNoZWQgYnkgU0dJIGlu
IGNvbmp1bmN0aW9uIHdpdGggdGhlIE9yaWdpbmFsIENvZGUgYXJlIFRoZQotKiogT3BlbkdMKFIp
IEdyYXBoaWNzIFN5c3RlbTogQSBTcGVjaWZpY2F0aW9uIChWZXJzaW9uIDEuMi4xKSwgcmVsZWFz
ZWQKLSoqIEFwcmlsIDEsIDE5OTk7IFRoZSBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtIFV0aWxp
dHkgTGlicmFyeSAoVmVyc2lvbgotKiogMS4zKSwgcmVsZWFzZWQgTm92ZW1iZXIgNCwgMTk5ODsg
YW5kIE9wZW5HTChSKSBHcmFwaGljcyB3aXRoIHRoZSBYCi0qKiBXaW5kb3cgU3lzdGVtKFIpIChW
ZXJzaW9uIDEuMyksIHJlbGVhc2VkIE9jdG9iZXIgMTksIDE5OTguIFRoaXMgc29mdHdhcmUKLSoq
IHdhcyBjcmVhdGVkIHVzaW5nIHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTYW1wbGUgSW1w
bGVtZW50YXRpb24KLSoqIHB1Ymxpc2hlZCBieSBTR0ksIGJ1dCBoYXMgbm90IGJlZW4gaW5kZXBl
bmRlbnRseSB2ZXJpZmllZCBhcyBiZWluZwotKiogY29tcGxpYW50IHdpdGggdGhlIE9wZW5HTChS
KSB2ZXJzaW9uIDEuMi4xIFNwZWNpZmljYXRpb24uCi0qKgotKi8KLS8qCi0qKiBBdXRob3I6IEVy
aWMgVmVhY2gsIEp1bHkgMTk5NC4KLSoqCi0qKiAkRGF0ZSQgJFJldmlzaW9uJAotKiogJEhlYWRl
cjogLy9kZXBvdC9tYWluL2dmeC9saWIvZ2x1L2xpYnRlc3MvdGVzcy5oIzYgJAotKi8KLQotI2lm
bmRlZiBfX3Rlc3NfaF8KLSNkZWZpbmUgX190ZXNzX2hfCi0KLSNpbmNsdWRlIDxzZXRqbXAuaD4K
LQotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2ludGVybmFsX2dsdS5oIgotI2luY2x1ZGUgInRo
aXJkcGFydHkvZ2x1L2xpYnRlc3MvZGljdC5oIgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xp
YnRlc3MvbWVzaC5oIgotI2luY2x1ZGUgInRoaXJkcGFydHkvZ2x1L2xpYnRlc3MvcHJpb3JpdHlx
LmgiCi0KLS8qIFRoZSBiZWdpbi9lbmQgY2FsbHMgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQuICBX
ZSBrZWVwIHRyYWNrIG9mCi0gKiB0aGUgY3VycmVudCBzdGF0ZSB0byBlbmZvcmNlIHRoZSBvcmRl
cmluZy4KLSAqLwotZW51bSBUZXNzU3RhdGUgeyBUX0RPUk1BTlQsIFRfSU5fUE9MWUdPTiwgVF9J
Tl9DT05UT1VSIH07Ci0KLS8qIFdlIGNhY2hlIHZlcnRleCBkYXRhIGZvciBzaW5nbGUtY29udG91
ciBwb2x5Z29ucyBzbyB0aGF0IHdlIGNhbgotICogdHJ5IGEgcXVpY2stYW5kLWRpcnR5IGRlY29t
cG9zaXRpb24gZmlyc3QuCi0gKi8KLSNkZWZpbmUgVEVTU19NQVhfQ0FDSEUJMTAwCi0KLXR5cGVk
ZWYgc3RydWN0IENhY2hlZFZlcnRleCB7Ci0gIEdMZG91YmxlCWNvb3Jkc1szXTsKLSAgdm9pZAkJ
KmRhdGE7Ci19IENhY2hlZFZlcnRleDsKLQotc3RydWN0IEdMVXRlc3NlbGF0b3IgewotCi0gIC8q
Kiogc3RhdGUgbmVlZGVkIGZvciBjb2xsZWN0aW5nIHRoZSBpbnB1dCBkYXRhICoqKi8KLQotICBl
bnVtIFRlc3NTdGF0ZSBzdGF0ZTsJCS8qIHdoYXQgYmVnaW4vZW5kIGNhbGxzIGhhdmUgd2Ugc2Vl
bj8gKi8KLQotICBHTFVoYWxmRWRnZQkqbGFzdEVkZ2U7CS8qIGxhc3RFZGdlLT5PcmcgaXMgdGhl
IG1vc3QgcmVjZW50IHZlcnRleCAqLwotICBHTFVtZXNoCSptZXNoOwkJLyogc3RvcmVzIHRoZSBp
bnB1dCBjb250b3VycywgYW5kIGV2ZW50dWFsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGhlIHRlc3NlbGxhdGlvbiBpdHNlbGYgKi8KLQotICB2b2lkCQkoR0xBUElFTlRS
WSAqY2FsbEVycm9yKSggR0xlbnVtIGVycm51bSApOwotCi0gIC8qKiogc3RhdGUgbmVlZGVkIGZv
ciBwcm9qZWN0aW5nIG9udG8gdGhlIHN3ZWVwIHBsYW5lICoqKi8KLQotICBHTGRvdWJsZQlub3Jt
YWxbM107CS8qIHVzZXItc3BlY2lmaWVkIG5vcm1hbCAoaWYgcHJvdmlkZWQpICovCi0gIEdMZG91
YmxlCXNVbml0WzNdOwkvKiB1bml0IHZlY3RvciBpbiBzLWRpcmVjdGlvbiAoZGVidWdnaW5nKSAq
LwotICBHTGRvdWJsZQl0VW5pdFszXTsJLyogdW5pdCB2ZWN0b3IgaW4gdC1kaXJlY3Rpb24gKGRl
YnVnZ2luZykgKi8KLQotICAvKioqIHN0YXRlIG5lZWRlZCBmb3IgdGhlIGxpbmUgc3dlZXAgKioq
LwotCi0gIEdMZG91YmxlCXJlbFRvbGVyYW5jZTsJLyogdG9sZXJhbmNlIGZvciBtZXJnaW5nIGZl
YXR1cmVzICovCi0gIEdMZW51bQl3aW5kaW5nUnVsZTsJLyogcnVsZSBmb3IgZGV0ZXJtaW5pbmcg
cG9seWdvbiBpbnRlcmlvciAqLwotICBHTGJvb2xlYW4JZmF0YWxFcnJvcjsJLyogZmF0YWwgZXJy
b3I6IG5lZWRlZCBjb21iaW5lIGNhbGxiYWNrICovCi0KLSAgRGljdAkJKmRpY3Q7CQkvKiBlZGdl
IGRpY3Rpb25hcnkgZm9yIHN3ZWVwIGxpbmUgKi8KLSAgUHJpb3JpdHlRCSpwcTsJCS8qIHByaW9y
aXR5IHF1ZXVlIG9mIHZlcnRleCBldmVudHMgKi8KLSAgR0xVdmVydGV4CSpldmVudDsJCS8qIGN1
cnJlbnQgc3dlZXAgZXZlbnQgYmVpbmcgcHJvY2Vzc2VkICovCi0KLSAgdm9pZAkJKEdMQVBJRU5U
UlkgKmNhbGxDb21iaW5lKSggR0xkb3VibGUgY29vcmRzWzNdLCB2b2lkICpkYXRhWzRdLAotCQkJ
ICAgICAgICBHTGZsb2F0IHdlaWdodFs0XSwgdm9pZCAqKm91dERhdGEgKTsKLQotICAvKioqIHN0
YXRlIG5lZWRlZCBmb3IgcmVuZGVyaW5nIGNhbGxiYWNrcyAoc2VlIHJlbmRlci5jKSAqKiovCi0K
LSAgR0xib29sZWFuCWZsYWdCb3VuZGFyeTsJLyogbWFyayBib3VuZGFyeSBlZGdlcyAodXNlIEVk
Z2VGbGFnKSAqLwotICBHTGJvb2xlYW4JYm91bmRhcnlPbmx5OwkvKiBFeHRyYWN0IGNvbnRvdXJz
LCBub3QgdHJpYW5nbGVzICovCi0gIEdMVWZhY2UJKmxvbmVseVRyaUxpc3Q7Ci0gICAgLyogbGlz
dCBvZiB0cmlhbmdsZXMgd2hpY2ggY291bGQgbm90IGJlIHJlbmRlcmVkIGFzIHN0cmlwcyBvciBm
YW5zICovCi0KLSAgdm9pZAkJKEdMQVBJRU5UUlkgKmNhbGxCZWdpbikoIEdMZW51bSB0eXBlICk7
Ci0gIHZvaWQJCShHTEFQSUVOVFJZICpjYWxsRWRnZUZsYWcpKCBHTGJvb2xlYW4gYm91bmRhcnlF
ZGdlICk7Ci0gIHZvaWQJCShHTEFQSUVOVFJZICpjYWxsVmVydGV4KSggdm9pZCAqZGF0YSApOwot
ICB2b2lkCQkoR0xBUElFTlRSWSAqY2FsbEVuZCkoIHZvaWQgKTsKLSAgdm9pZAkJKEdMQVBJRU5U
UlkgKmNhbGxNZXNoKSggR0xVbWVzaCAqbWVzaCApOwotCi0KLSAgLyoqKiBzdGF0ZSBuZWVkZWQg
dG8gY2FjaGUgc2luZ2xlLWNvbnRvdXIgcG9seWdvbnMgZm9yIHJlbmRlckNhY2hlKCkgKi8KLQot
ICBHTGJvb2xlYW4JZW1wdHlDYWNoZTsJCS8qIGVtcHR5IGNhY2hlIG9uIG5leHQgdmVydGV4KCkg
Y2FsbCAqLwotICBpbnQJCWNhY2hlQ291bnQ7CQkvKiBudW1iZXIgb2YgY2FjaGVkIHZlcnRpY2Vz
ICovCi0gIENhY2hlZFZlcnRleAljYWNoZVtURVNTX01BWF9DQUNIRV07CS8qIHRoZSB2ZXJ0ZXgg
ZGF0YSAqLwotCi0gIC8qKiogcmVuZGVyaW5nIGNhbGxiYWNrcyB0aGF0IGFsc28gcGFzcyBwb2x5
Z29uIGRhdGEgICoqKi8gCi0gIHZvaWQJCShHTEFQSUVOVFJZICpjYWxsQmVnaW5EYXRhKSggR0xl
bnVtIHR5cGUsIHZvaWQgKnBvbHlnb25EYXRhICk7Ci0gIHZvaWQJCShHTEFQSUVOVFJZICpjYWxs
RWRnZUZsYWdEYXRhKSggR0xib29sZWFuIGJvdW5kYXJ5RWRnZSwgCi0JCQkJICAgICB2b2lkICpw
b2x5Z29uRGF0YSApOwotICB2b2lkCQkoR0xBUElFTlRSWSAqY2FsbFZlcnRleERhdGEpKCB2b2lk
ICpkYXRhLCB2b2lkICpwb2x5Z29uRGF0YSApOwotICB2b2lkCQkoR0xBUElFTlRSWSAqY2FsbEVu
ZERhdGEpKCB2b2lkICpwb2x5Z29uRGF0YSApOwotICB2b2lkCQkoR0xBUElFTlRSWSAqY2FsbEVy
cm9yRGF0YSkoIEdMZW51bSBlcnJudW0sIHZvaWQgKnBvbHlnb25EYXRhICk7Ci0gIHZvaWQJCShH
TEFQSUVOVFJZICpjYWxsQ29tYmluZURhdGEpKCBHTGRvdWJsZSBjb29yZHNbM10sIHZvaWQgKmRh
dGFbNF0sCi0JCQkJICAgIEdMZmxvYXQgd2VpZ2h0WzRdLCB2b2lkICoqb3V0RGF0YSwKLQkJCQkg
ICAgdm9pZCAqcG9seWdvbkRhdGEgKTsKLQotICBqbXBfYnVmIGVudjsJCQkvKiBwbGFjZSB0byBq
dW1wIHRvIHdoZW4gbWVtQWxsb2NzIGZhaWwgKi8KLQotICB2b2lkICpwb2x5Z29uRGF0YTsJCS8q
IGNsaWVudCBkYXRhIGZvciBjdXJyZW50IHBvbHlnb24gKi8KLX07Ci0KLXZvaWQgR0xBUElFTlRS
WSBfX2dsX25vQmVnaW5EYXRhKCBHTGVudW0gdHlwZSwgdm9pZCAqcG9seWdvbkRhdGEgKTsKLXZv
aWQgR0xBUElFTlRSWSBfX2dsX25vRWRnZUZsYWdEYXRhKCBHTGJvb2xlYW4gYm91bmRhcnlFZGdl
LCB2b2lkICpwb2x5Z29uRGF0YSApOwotdm9pZCBHTEFQSUVOVFJZIF9fZ2xfbm9WZXJ0ZXhEYXRh
KCB2b2lkICpkYXRhLCB2b2lkICpwb2x5Z29uRGF0YSApOwotdm9pZCBHTEFQSUVOVFJZIF9fZ2xf
bm9FbmREYXRhKCB2b2lkICpwb2x5Z29uRGF0YSApOwotdm9pZCBHTEFQSUVOVFJZIF9fZ2xfbm9F
cnJvckRhdGEoIEdMZW51bSBlcnJudW0sIHZvaWQgKnBvbHlnb25EYXRhICk7Ci12b2lkIEdMQVBJ
RU5UUlkgX19nbF9ub0NvbWJpbmVEYXRhKCBHTGRvdWJsZSBjb29yZHNbM10sIHZvaWQgKmRhdGFb
NF0sCi0JCQkgR0xmbG9hdCB3ZWlnaHRbNF0sIHZvaWQgKipvdXREYXRhLAotCQkJIHZvaWQgKnBv
bHlnb25EYXRhICk7Ci0KLSNkZWZpbmUgQ0FMTF9CRUdJTl9PUl9CRUdJTl9EQVRBKGEpIFwKLSAg
IGlmICh0ZXNzLT5jYWxsQmVnaW5EYXRhICE9ICZfX2dsX25vQmVnaW5EYXRhKSBcCi0gICAgICAo
KnRlc3MtPmNhbGxCZWdpbkRhdGEpKChhKSx0ZXNzLT5wb2x5Z29uRGF0YSk7IFwKLSAgIGVsc2Ug
KCp0ZXNzLT5jYWxsQmVnaW4pKChhKSk7Ci0KLSNkZWZpbmUgQ0FMTF9WRVJURVhfT1JfVkVSVEVY
X0RBVEEoYSkgXAotICAgaWYgKHRlc3MtPmNhbGxWZXJ0ZXhEYXRhICE9ICZfX2dsX25vVmVydGV4
RGF0YSkgXAotICAgICAgKCp0ZXNzLT5jYWxsVmVydGV4RGF0YSkoKGEpLHRlc3MtPnBvbHlnb25E
YXRhKTsgXAotICAgZWxzZSAoKnRlc3MtPmNhbGxWZXJ0ZXgpKChhKSk7Ci0KLSNkZWZpbmUgQ0FM
TF9FREdFX0ZMQUdfT1JfRURHRV9GTEFHX0RBVEEoYSkgXAotICAgaWYgKHRlc3MtPmNhbGxFZGdl
RmxhZ0RhdGEgIT0gJl9fZ2xfbm9FZGdlRmxhZ0RhdGEpIFwKLSAgICAgICgqdGVzcy0+Y2FsbEVk
Z2VGbGFnRGF0YSkoKGEpLHRlc3MtPnBvbHlnb25EYXRhKTsgXAotICAgZWxzZSAoKnRlc3MtPmNh
bGxFZGdlRmxhZykoKGEpKTsKLQotI2RlZmluZSBDQUxMX0VORF9PUl9FTkRfREFUQSgpIFwKLSAg
IGlmICh0ZXNzLT5jYWxsRW5kRGF0YSAhPSAmX19nbF9ub0VuZERhdGEpIFwKLSAgICAgICgqdGVz
cy0+Y2FsbEVuZERhdGEpKHRlc3MtPnBvbHlnb25EYXRhKTsgXAotICAgZWxzZSAoKnRlc3MtPmNh
bGxFbmQpKCk7Ci0KLSNkZWZpbmUgQ0FMTF9DT01CSU5FX09SX0NPTUJJTkVfREFUQShhLGIsYyxk
KSBcCi0gICBpZiAodGVzcy0+Y2FsbENvbWJpbmVEYXRhICE9ICZfX2dsX25vQ29tYmluZURhdGEp
IFwKLSAgICAgICgqdGVzcy0+Y2FsbENvbWJpbmVEYXRhKSgoYSksKGIpLChjKSwoZCksdGVzcy0+
cG9seWdvbkRhdGEpOyBcCi0gICBlbHNlICgqdGVzcy0+Y2FsbENvbWJpbmUpKChhKSwoYiksKGMp
LChkKSk7Ci0KLSNkZWZpbmUgQ0FMTF9FUlJPUl9PUl9FUlJPUl9EQVRBKGEpIFwKLSAgIGlmICh0
ZXNzLT5jYWxsRXJyb3JEYXRhICE9ICZfX2dsX25vRXJyb3JEYXRhKSBcCi0gICAgICAoKnRlc3Mt
PmNhbGxFcnJvckRhdGEpKChhKSx0ZXNzLT5wb2x5Z29uRGF0YSk7IFwKLSAgIGVsc2UgKCp0ZXNz
LT5jYWxsRXJyb3IpKChhKSk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS90aGlyZHBh
cnR5L2dsdS9saWJ0ZXNzL3Rlc3Ntb25vLmMgYi9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRl
c3MvdGVzc21vbm8uYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2FhYWFhMS4uMDAw
MDAwMAotLS0gYS9XZWJDb3JlL3RoaXJkcGFydHkvZ2x1L2xpYnRlc3MvdGVzc21vbm8uYworKysg
L2Rldi9udWxsCkBAIC0xLDIwOSArMCwwIEBACi0vKgotKiogTGljZW5zZSBBcHBsaWNhYmlsaXR5
LiBFeGNlcHQgdG8gdGhlIGV4dGVudCBwb3J0aW9ucyBvZiB0aGlzIGZpbGUgYXJlCi0qKiBtYWRl
IHN1YmplY3QgdG8gYW4gYWx0ZXJuYXRpdmUgbGljZW5zZSBhcyBwZXJtaXR0ZWQgaW4gdGhlIFNH
SSBGcmVlCi0qKiBTb2Z0d2FyZSBMaWNlbnNlIEIsIFZlcnNpb24gMS4xICh0aGUgIkxpY2Vuc2Ui
KSwgdGhlIGNvbnRlbnRzIG9mIHRoaXMKLSoqIGZpbGUgYXJlIHN1YmplY3Qgb25seSB0byB0aGUg
cHJvdmlzaW9ucyBvZiB0aGUgTGljZW5zZS4gWW91IG1heSBub3QgdXNlCi0qKiB0aGlzIGZpbGUg
ZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBj
b3B5Ci0qKiBvZiB0aGUgTGljZW5zZSBhdCBTaWxpY29uIEdyYXBoaWNzLCBJbmMuLCBhdHRuOiBM
ZWdhbCBTZXJ2aWNlcywgMTYwMAotKiogQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZp
ZXcsIENBIDk0MDQzLTEzNTEsIG9yIGF0OgotKiogCi0qKiBodHRwOi8vb3NzLnNnaS5jb20vcHJv
amVjdHMvRnJlZUIKLSoqIAotKiogTm90ZSB0aGF0LCBhcyBwcm92aWRlZCBpbiB0aGUgTGljZW5z
ZSwgdGhlIFNvZnR3YXJlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCi0qKiAiQVMgSVMiIGJhc2lzLCB3
aXRoIEFMTCBFWFBSRVNTIEFORCBJTVBMSUVEIFdBUlJBTlRJRVMgQU5EIENPTkRJVElPTlMKLSoq
IERJU0NMQUlNRUQsIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgSU1QTElFRCBX
QVJSQU5USUVTIEFORAotKiogQ09ORElUSU9OUyBPRiBNRVJDSEFOVEFCSUxJVFksIFNBVElTRkFD
VE9SWSBRVUFMSVRZLCBGSVRORVNTIEZPUiBBCi0qKiBQQVJUSUNVTEFSIFBVUlBPU0UsIEFORCBO
T04tSU5GUklOR0VNRU5ULgotKiogCi0qKiBPcmlnaW5hbCBDb2RlLiBUaGUgT3JpZ2luYWwgQ29k
ZSBpczogT3BlbkdMIFNhbXBsZSBJbXBsZW1lbnRhdGlvbiwKLSoqIFZlcnNpb24gMS4yLjEsIHJl
bGVhc2VkIEphbnVhcnkgMjYsIDIwMDAsIGRldmVsb3BlZCBieSBTaWxpY29uIEdyYXBoaWNzLAot
KiogSW5jLiBUaGUgT3JpZ2luYWwgQ29kZSBpcyBDb3B5cmlnaHQgKGMpIDE5OTEtMjAwMCBTaWxp
Y29uIEdyYXBoaWNzLCBJbmMuCi0qKiBDb3B5cmlnaHQgaW4gYW55IHBvcnRpb25zIGNyZWF0ZWQg
YnkgdGhpcmQgcGFydGllcyBpcyBhcyBpbmRpY2F0ZWQKLSoqIGVsc2V3aGVyZSBoZXJlaW4uIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCi0qKiAKLSoqIEFkZGl0aW9uYWwgTm90aWNlIFByb3Zpc2lvbnM6
IFRoZSBhcHBsaWNhdGlvbiBwcm9ncmFtbWluZyBpbnRlcmZhY2VzCi0qKiBlc3RhYmxpc2hlZCBi
eSBTR0kgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgT3JpZ2luYWwgQ29kZSBhcmUgVGhlCi0qKiBP
cGVuR0woUikgR3JhcGhpY3MgU3lzdGVtOiBBIFNwZWNpZmljYXRpb24gKFZlcnNpb24gMS4yLjEp
LCByZWxlYXNlZAotKiogQXByaWwgMSwgMTk5OTsgVGhlIE9wZW5HTChSKSBHcmFwaGljcyBTeXN0
ZW0gVXRpbGl0eSBMaWJyYXJ5IChWZXJzaW9uCi0qKiAxLjMpLCByZWxlYXNlZCBOb3ZlbWJlciA0
LCAxOTk4OyBhbmQgT3BlbkdMKFIpIEdyYXBoaWNzIHdpdGggdGhlIFgKLSoqIFdpbmRvdyBTeXN0
ZW0oUikgKFZlcnNpb24gMS4zKSwgcmVsZWFzZWQgT2N0b2JlciAxOSwgMTk5OC4gVGhpcyBzb2Z0
d2FyZQotKiogd2FzIGNyZWF0ZWQgdXNpbmcgdGhlIE9wZW5HTChSKSB2ZXJzaW9uIDEuMi4xIFNh
bXBsZSBJbXBsZW1lbnRhdGlvbgotKiogcHVibGlzaGVkIGJ5IFNHSSwgYnV0IGhhcyBub3QgYmVl
biBpbmRlcGVuZGVudGx5IHZlcmlmaWVkIGFzIGJlaW5nCi0qKiBjb21wbGlhbnQgd2l0aCB0aGUg
T3BlbkdMKFIpIHZlcnNpb24gMS4yLjEgU3BlY2lmaWNhdGlvbi4KLSoqCi0qLwotLyoKLSoqIEF1
dGhvcjogRXJpYyBWZWFjaCwgSnVseSAxOTk0LgotKioKLSoqICREYXRlJCAkUmV2aXNpb24kCi0q
KiAkSGVhZGVyOiAvL2RlcG90L21haW4vZ2Z4L2xpYi9nbHUvbGlidGVzcy90ZXNzbW9uby5jIzUg
JAotKi8KLQotI2luY2x1ZGUgPGFzc2VydC5oPgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi0jaW5j
bHVkZSAidGhpcmRwYXJ0eS9nbHUvZ2x1b3MuaCIKLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9s
aWJ0ZXNzL2dlb20uaCIKLSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL21lc2guaCIK
LSNpbmNsdWRlICJ0aGlyZHBhcnR5L2dsdS9saWJ0ZXNzL3Rlc3Ntb25vLmgiCi0KLSNkZWZpbmUg
QWRkV2luZGluZyhlRHN0LGVTcmMpCShlRHN0LT53aW5kaW5nICs9IGVTcmMtPndpbmRpbmcsIFwK
LQkJCQkgZURzdC0+U3ltLT53aW5kaW5nICs9IGVTcmMtPlN5bS0+d2luZGluZykKLQotLyogX19n
bF9tZXNoVGVzc2VsbGF0ZU1vbm9SZWdpb24oIGZhY2UgKSB0ZXNzZWxsYXRlcyBhIG1vbm90b25l
IHJlZ2lvbgotICogKHdoYXQgZWxzZSB3b3VsZCBpdCBkbz8/KSAgVGhlIHJlZ2lvbiBtdXN0IGNv
bnNpc3Qgb2YgYSBzaW5nbGUKLSAqIGxvb3Agb2YgaGFsZi1lZGdlcyAoc2VlIG1lc2guaCkgb3Jp
ZW50ZWQgQ0NXLiAgIk1vbm90b25lIiBpbiB0aGlzCi0gKiBjYXNlIG1lYW5zIHRoYXQgYW55IHZl
cnRpY2FsIGxpbmUgaW50ZXJzZWN0cyB0aGUgaW50ZXJpb3Igb2YgdGhlCi0gKiByZWdpb24gaW4g
YSBzaW5nbGUgaW50ZXJ2YWwuICAKLSAqCi0gKiBUZXNzZWxsYXRpb24gY29uc2lzdHMgb2YgYWRk
aW5nIGludGVyaW9yIGVkZ2VzIChhY3R1YWxseSBwYWlycyBvZgotICogaGFsZi1lZGdlcyksIHRv
IHNwbGl0IHRoZSByZWdpb24gaW50byBub24tb3ZlcmxhcHBpbmcgdHJpYW5nbGVzLgotICoKLSAq
IFRoZSBiYXNpYyBpZGVhIGlzIGV4cGxhaW5lZCBpbiBQcmVwYXJhdGEgYW5kIFNoYW1vcyAod2hp
Y2ggSSBkb24nJ3QKLSAqIGhhdmUgaGFuZHkgcmlnaHQgbm93KSwgYWx0aG91Z2ggdGhlaXIgaW1w
bGVtZW50YXRpb24gaXMgbW9yZQotICogY29tcGxpY2F0ZWQgdGhhbiB0aGlzIG9uZS4gIFRoZSBh
cmUgdHdvIGVkZ2UgY2hhaW5zLCBhbiB1cHBlciBjaGFpbgotICogYW5kIGEgbG93ZXIgY2hhaW4u
ICBXZSBwcm9jZXNzIGFsbCB2ZXJ0aWNlcyBmcm9tIGJvdGggY2hhaW5zIGluIG9yZGVyLAotICog
ZnJvbSByaWdodCB0byBsZWZ0LgotICoKLSAqIFRoZSBhbGdvcml0aG0gZW5zdXJlcyB0aGF0IHRo
ZSBmb2xsb3dpbmcgaW52YXJpYW50IGhvbGRzIGFmdGVyIGVhY2gKLSAqIHZlcnRleCBpcyBwcm9j
ZXNzZWQ6IHRoZSB1bnRlc3NlbGxhdGVkIHJlZ2lvbiBjb25zaXN0cyBvZiB0d28KLSAqIGNoYWlu
cywgd2hlcmUgb25lIGNoYWluIChzYXkgdGhlIHVwcGVyKSBpcyBhIHNpbmdsZSBlZGdlLCBhbmQK
LSAqIHRoZSBvdGhlciBjaGFpbiBpcyBjb25jYXZlLiAgVGhlIGxlZnQgdmVydGV4IG9mIHRoZSBz
aW5nbGUgZWRnZQotICogaXMgYWx3YXlzIHRvIHRoZSBsZWZ0IG9mIGFsbCB2ZXJ0aWNlcyBpbiB0
aGUgY29uY2F2ZSBjaGFpbi4KLSAqCi0gKiBFYWNoIHN0ZXAgY29uc2lzdHMgb2YgYWRkaW5nIHRo
ZSByaWdodG1vc3QgdW5wcm9jZXNzZWQgdmVydGV4IHRvIG9uZQotICogb2YgdGhlIHR3byBjaGFp
bnMsIGFuZCBmb3JtaW5nIGEgZmFuIG9mIHRyaWFuZ2xlcyBmcm9tIHRoZSByaWdodG1vc3QKLSAq
IG9mIHR3byBjaGFpbiBlbmRwb2ludHMuICBEZXRlcm1pbmluZyB3aGV0aGVyIHdlIGNhbiBhZGQg
ZWFjaCB0cmlhbmdsZQotICogdG8gdGhlIGZhbiBpcyBhIHNpbXBsZSBvcmllbnRhdGlvbiB0ZXN0
LiAgQnkgbWFraW5nIHRoZSBmYW4gYXMgbGFyZ2UKLSAqIGFzIHBvc3NpYmxlLCB3ZSByZXN0b3Jl
IHRoZSBpbnZhcmlhbnQgKGNoZWNrIGl0IHlvdXJzZWxmKS4KLSAqLwotaW50IF9fZ2xfbWVzaFRl
c3NlbGxhdGVNb25vUmVnaW9uKCBHTFVmYWNlICpmYWNlICkKLXsKLSAgR0xVaGFsZkVkZ2UgKnVw
LCAqbG87Ci0KLSAgLyogQWxsIGVkZ2VzIGFyZSBvcmllbnRlZCBDQ1cgYXJvdW5kIHRoZSBib3Vu
ZGFyeSBvZiB0aGUgcmVnaW9uLgotICAgKiBGaXJzdCwgZmluZCB0aGUgaGFsZi1lZGdlIHdob3Nl
IG9yaWdpbiB2ZXJ0ZXggaXMgcmlnaHRtb3N0LgotICAgKiBTaW5jZSB0aGUgc3dlZXAgZ29lcyBm
cm9tIGxlZnQgdG8gcmlnaHQsIGZhY2UtPmFuRWRnZSBzaG91bGQKLSAgICogYmUgY2xvc2UgdG8g
dGhlIGVkZ2Ugd2Ugd2FudC4KLSAgICovCi0gIHVwID0gZmFjZS0+YW5FZGdlOwotICBhc3NlcnQo
IHVwLT5MbmV4dCAhPSB1cCAmJiB1cC0+TG5leHQtPkxuZXh0ICE9IHVwICk7Ci0KLSAgZm9yKCA7
IFZlcnRMZXEoIHVwLT5Ec3QsIHVwLT5PcmcgKTsgdXAgPSB1cC0+THByZXYgKQotICAgIDsKLSAg
Zm9yKCA7IFZlcnRMZXEoIHVwLT5PcmcsIHVwLT5Ec3QgKTsgdXAgPSB1cC0+TG5leHQgKQotICAg
IDsKLSAgbG8gPSB1cC0+THByZXY7Ci0KLSAgd2hpbGUoIHVwLT5MbmV4dCAhPSBsbyApIHsKLSAg
ICBpZiggVmVydExlcSggdXAtPkRzdCwgbG8tPk9yZyApKSB7Ci0gICAgICAvKiB1cC0+RHN0IGlz
IG9uIHRoZSBsZWZ0LiAgSXQgaXMgc2FmZSB0byBmb3JtIHRyaWFuZ2xlcyBmcm9tIGxvLT5Pcmcu
Ci0gICAgICAgKiBUaGUgRWRnZUdvZXNMZWZ0IHRlc3QgZ3VhcmFudGVlcyBwcm9ncmVzcyBldmVu
IHdoZW4gc29tZSB0cmlhbmdsZXMKLSAgICAgICAqIGFyZSBDVywgZ2l2ZW4gdGhhdCB0aGUgdXBw
ZXIgYW5kIGxvd2VyIGNoYWlucyBhcmUgdHJ1bHkgbW9ub3RvbmUuCi0gICAgICAgKi8KLSAgICAg
IHdoaWxlKCBsby0+TG5leHQgIT0gdXAgJiYgKEVkZ2VHb2VzTGVmdCggbG8tPkxuZXh0ICkKLQkg
ICAgIHx8IEVkZ2VTaWduKCBsby0+T3JnLCBsby0+RHN0LCBsby0+TG5leHQtPkRzdCApIDw9IDAg
KSkgewotCUdMVWhhbGZFZGdlICp0ZW1wSGFsZkVkZ2U9IF9fZ2xfbWVzaENvbm5lY3QoIGxvLT5M
bmV4dCwgbG8gKTsKLQlpZiAodGVtcEhhbGZFZGdlID09IE5VTEwpIHJldHVybiAwOwotCWxvID0g
dGVtcEhhbGZFZGdlLT5TeW07Ci0gICAgICB9Ci0gICAgICBsbyA9IGxvLT5McHJldjsKLSAgICB9
IGVsc2UgewotICAgICAgLyogbG8tPk9yZyBpcyBvbiB0aGUgbGVmdC4gIFdlIGNhbiBtYWtlIEND
VyB0cmlhbmdsZXMgZnJvbSB1cC0+RHN0LiAqLwotICAgICAgd2hpbGUoIGxvLT5MbmV4dCAhPSB1
cCAmJiAoRWRnZUdvZXNSaWdodCggdXAtPkxwcmV2ICkKLQkgICAgIHx8IEVkZ2VTaWduKCB1cC0+
RHN0LCB1cC0+T3JnLCB1cC0+THByZXYtPk9yZyApID49IDAgKSkgewotCUdMVWhhbGZFZGdlICp0
ZW1wSGFsZkVkZ2U9IF9fZ2xfbWVzaENvbm5lY3QoIHVwLCB1cC0+THByZXYgKTsKLQlpZiAodGVt
cEhhbGZFZGdlID09IE5VTEwpIHJldHVybiAwOwotCXVwID0gdGVtcEhhbGZFZGdlLT5TeW07Ci0g
ICAgICB9Ci0gICAgICB1cCA9IHVwLT5MbmV4dDsKLSAgICB9Ci0gIH0KLQotICAvKiBOb3cgbG8t
Pk9yZyA9PSB1cC0+RHN0ID09IHRoZSBsZWZ0bW9zdCB2ZXJ0ZXguICBUaGUgcmVtYWluaW5nIHJl
Z2lvbgotICAgKiBjYW4gYmUgdGVzc2VsbGF0ZWQgaW4gYSBmYW4gZnJvbSB0aGlzIGxlZnRtb3N0
IHZlcnRleC4KLSAgICovCi0gIGFzc2VydCggbG8tPkxuZXh0ICE9IHVwICk7Ci0gIHdoaWxlKCBs
by0+TG5leHQtPkxuZXh0ICE9IHVwICkgewotICAgIEdMVWhhbGZFZGdlICp0ZW1wSGFsZkVkZ2U9
IF9fZ2xfbWVzaENvbm5lY3QoIGxvLT5MbmV4dCwgbG8gKTsKLSAgICBpZiAodGVtcEhhbGZFZGdl
ID09IE5VTEwpIHJldHVybiAwOwotICAgIGxvID0gdGVtcEhhbGZFZGdlLT5TeW07Ci0gIH0KLQot
ICByZXR1cm4gMTsKLX0KLQotCi0vKiBfX2dsX21lc2hUZXNzZWxsYXRlSW50ZXJpb3IoIG1lc2gg
KSB0ZXNzZWxsYXRlcyBlYWNoIHJlZ2lvbiBvZgotICogdGhlIG1lc2ggd2hpY2ggaXMgbWFya2Vk
ICJpbnNpZGUiIHRoZSBwb2x5Z29uLiAgRWFjaCBzdWNoIHJlZ2lvbgotICogbXVzdCBiZSBtb25v
dG9uZS4KLSAqLwotaW50IF9fZ2xfbWVzaFRlc3NlbGxhdGVJbnRlcmlvciggR0xVbWVzaCAqbWVz
aCApCi17Ci0gIEdMVWZhY2UgKmYsICpuZXh0OwotCi0gIC8qTElOVEVEKi8KLSAgZm9yKCBmID0g
bWVzaC0+ZkhlYWQubmV4dDsgZiAhPSAmbWVzaC0+ZkhlYWQ7IGYgPSBuZXh0ICkgewotICAgIC8q
IE1ha2Ugc3VyZSB3ZSBkb24nJ3QgdHJ5IHRvIHRlc3NlbGxhdGUgdGhlIG5ldyB0cmlhbmdsZXMu
ICovCi0gICAgbmV4dCA9IGYtPm5leHQ7Ci0gICAgaWYoIGYtPmluc2lkZSApIHsKLSAgICAgIGlm
ICggIV9fZ2xfbWVzaFRlc3NlbGxhdGVNb25vUmVnaW9uKCBmICkgKSByZXR1cm4gMDsKLSAgICB9
Ci0gIH0KLQotICByZXR1cm4gMTsKLX0KLQotCi0vKiBfX2dsX21lc2hEaXNjYXJkRXh0ZXJpb3Io
IG1lc2ggKSB6YXBzIChpZS4gc2V0cyB0byBOVUxMKSBhbGwgZmFjZXMKLSAqIHdoaWNoIGFyZSBu
b3QgbWFya2VkICJpbnNpZGUiIHRoZSBwb2x5Z29uLiAgU2luY2UgZnVydGhlciBtZXNoIG9wZXJh
dGlvbnMKLSAqIG9uIE5VTEwgZmFjZXMgYXJlIG5vdCBhbGxvd2VkLCB0aGUgbWFpbiBwdXJwb3Nl
IGlzIHRvIGNsZWFuIHVwIHRoZQotICogbWVzaCBzbyB0aGF0IGV4dGVyaW9yIGxvb3BzIGFyZSBu
b3QgcmVwcmVzZW50ZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLgotICovCi12b2lkIF9fZ2xfbWVz
aERpc2NhcmRFeHRlcmlvciggR0xVbWVzaCAqbWVzaCApCi17Ci0gIEdMVWZhY2UgKmYsICpuZXh0
OwotCi0gIC8qTElOVEVEKi8KLSAgZm9yKCBmID0gbWVzaC0+ZkhlYWQubmV4dDsgZiAhPSAmbWVz
aC0+ZkhlYWQ7IGYgPSBuZXh0ICkgewotICAgIC8qIFNpbmNlIGYgd2lsbCBiZSBkZXN0cm95ZWQs
IHNhdmUgaXRzIG5leHQgcG9pbnRlci4gKi8KLSAgICBuZXh0ID0gZi0+bmV4dDsKLSAgICBpZigg
ISBmLT5pbnNpZGUgKSB7Ci0gICAgICBfX2dsX21lc2haYXBGYWNlKCBmICk7Ci0gICAgfQotICB9
Ci19Ci0KLSNkZWZpbmUgTUFSS0VEX0ZPUl9ERUxFVElPTgkweDdmZmZmZmZmCi0KLS8qIF9fZ2xf
bWVzaFNldFdpbmRpbmdOdW1iZXIoIG1lc2gsIHZhbHVlLCBrZWVwT25seUJvdW5kYXJ5ICkgcmVz
ZXRzIHRoZQotICogd2luZGluZyBudW1iZXJzIG9uIGFsbCBlZGdlcyBzbyB0aGF0IHJlZ2lvbnMg
bWFya2VkICJpbnNpZGUiIHRoZQotICogcG9seWdvbiBoYXZlIGEgd2luZGluZyBudW1iZXIgb2Yg
InZhbHVlIiwgYW5kIHJlZ2lvbnMgb3V0c2lkZQotICogaGF2ZSBhIHdpbmRpbmcgbnVtYmVyIG9m
IDAuCi0gKgotICogSWYga2VlcE9ubHlCb3VuZGFyeSBpcyBUUlVFLCBpdCBhbHNvIGRlbGV0ZXMg
YWxsIGVkZ2VzIHdoaWNoIGRvIG5vdAotICogc2VwYXJhdGUgYW4gaW50ZXJpb3IgcmVnaW9uIGZy
b20gYW4gZXh0ZXJpb3Igb25lLgotICovCi1pbnQgX19nbF9tZXNoU2V0V2luZGluZ051bWJlcigg
R0xVbWVzaCAqbWVzaCwgaW50IHZhbHVlLAotCQkJICAgICAgICBHTGJvb2xlYW4ga2VlcE9ubHlC
b3VuZGFyeSApCi17Ci0gIEdMVWhhbGZFZGdlICplLCAqZU5leHQ7Ci0KLSAgZm9yKCBlID0gbWVz
aC0+ZUhlYWQubmV4dDsgZSAhPSAmbWVzaC0+ZUhlYWQ7IGUgPSBlTmV4dCApIHsKLSAgICBlTmV4
dCA9IGUtPm5leHQ7Ci0gICAgaWYoIGUtPlJmYWNlLT5pbnNpZGUgIT0gZS0+TGZhY2UtPmluc2lk
ZSApIHsKLQotICAgICAgLyogVGhpcyBpcyBhIGJvdW5kYXJ5IGVkZ2UgKG9uZSBzaWRlIGlzIGlu
dGVyaW9yLCBvbmUgaXMgZXh0ZXJpb3IpLiAqLwotICAgICAgZS0+d2luZGluZyA9IChlLT5MZmFj
ZS0+aW5zaWRlKSA/IHZhbHVlIDogLXZhbHVlOwotICAgIH0gZWxzZSB7Ci0KLSAgICAgIC8qIEJv
dGggcmVnaW9ucyBhcmUgaW50ZXJpb3IsIG9yIGJvdGggYXJlIGV4dGVyaW9yLiAqLwotICAgICAg
aWYoICEga2VlcE9ubHlCb3VuZGFyeSApIHsKLQllLT53aW5kaW5nID0gMDsKLSAgICAgIH0gZWxz
ZSB7Ci0JaWYgKCAhX19nbF9tZXNoRGVsZXRlKCBlICkgKSByZXR1cm4gMDsKLSAgICAgIH0KLSAg
ICB9Ci0gIH0KLSAgcmV0dXJuIDE7Ci19CmRpZmYgLS1naXQgYS9XZWJDb3JlL3RoaXJkcGFydHkv
Z2x1L2xpYnRlc3MvdGVzc21vbm8uaCBiL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy90
ZXNzbW9uby5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YTcxZWU4Li4wMDAwMDAw
Ci0tLSBhL1dlYkNvcmUvdGhpcmRwYXJ0eS9nbHUvbGlidGVzcy90ZXNzbW9uby5oCisrKyAvZGV2
L251bGwKQEAgLTEsNzggKzAsMCBAQAotLyoKLSoqIExpY2Vuc2UgQXBwbGljYWJpbGl0eS4gRXhj
ZXB0IHRvIHRoZSBleHRlbnQgcG9ydGlvbnMgb2YgdGhpcyBmaWxlIGFyZQotKiogbWFkZSBzdWJq
ZWN0IHRvIGFuIGFsdGVybmF0aXZlIGxpY2Vuc2UgYXMgcGVybWl0dGVkIGluIHRoZSBTR0kgRnJl
ZQotKiogU29mdHdhcmUgTGljZW5zZSBCLCBWZXJzaW9uIDEuMSAodGhlICJMaWNlbnNlIiksIHRo
ZSBjb250ZW50cyBvZiB0aGlzCi0qKiBmaWxlIGFyZSBzdWJqZWN0IG9ubHkgdG8gdGhlIHByb3Zp
c2lvbnMgb2YgdGhlIExpY2Vuc2UuIFlvdSBtYXkgbm90IHVzZQotKiogdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weQot
Kiogb2YgdGhlIExpY2Vuc2UgYXQgU2lsaWNvbiBHcmFwaGljcywgSW5jLiwgYXR0bjogTGVnYWwg
U2VydmljZXMsIDE2MDAKLSoqIEFtcGhpdGhlYXRyZSBQYXJrd2F5LCBNb3VudGFpbiBWaWV3LCBD
QSA5NDA0My0xMzUxLCBvciBhdDoKLSoqIAotKiogaHR0cDovL29zcy5zZ2kuY29tL3Byb2plY3Rz
L0ZyZWVCCi0qKiAKLSoqIE5vdGUgdGhhdCwgYXMgcHJvdmlkZWQgaW4gdGhlIExpY2Vuc2UsIHRo
ZSBTb2Z0d2FyZSBpcyBkaXN0cmlidXRlZCBvbiBhbgotKiogIkFTIElTIiBiYXNpcywgd2l0aCBB
TEwgRVhQUkVTUyBBTkQgSU1QTElFRCBXQVJSQU5USUVTIEFORCBDT05ESVRJT05TCi0qKiBESVND
TEFJTUVELCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIElNUExJRUQgV0FSUkFO
VElFUyBBTkQKLSoqIENPTkRJVElPTlMgT0YgTUVSQ0hBTlRBQklMSVRZLCBTQVRJU0ZBQ1RPUlkg
UVVBTElUWSwgRklUTkVTUyBGT1IgQQotKiogUEFSVElDVUxBUiBQVVJQT1NFLCBBTkQgTk9OLUlO
RlJJTkdFTUVOVC4KLSoqIAotKiogT3JpZ2luYWwgQ29kZS4gVGhlIE9yaWdpbmFsIENvZGUgaXM6
IE9wZW5HTCBTYW1wbGUgSW1wbGVtZW50YXRpb24sCi0qKiBWZXJzaW9uIDEuMi4xLCByZWxlYXNl
ZCBKYW51YXJ5IDI2LCAyMDAwLCBkZXZlbG9wZWQgYnkgU2lsaWNvbiBHcmFwaGljcywKLSoqIElu
Yy4gVGhlIE9yaWdpbmFsIENvZGUgaXMgQ29weXJpZ2h0IChjKSAxOTkxLTIwMDAgU2lsaWNvbiBH
cmFwaGljcywgSW5jLgotKiogQ29weXJpZ2h0IGluIGFueSBwb3J0aW9ucyBjcmVhdGVkIGJ5IHRo
aXJkIHBhcnRpZXMgaXMgYXMgaW5kaWNhdGVkCi0qKiBlbHNld2hlcmUgaGVyZWluLiBBbGwgUmln
aHRzIFJlc2VydmVkLgotKiogCi0qKiBBZGRpdGlvbmFsIE5vdGljZSBQcm92aXNpb25zOiBUaGUg
YXBwbGljYXRpb24gcHJvZ3JhbW1pbmcgaW50ZXJmYWNlcwotKiogZXN0YWJsaXNoZWQgYnkgU0dJ
IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIE9yaWdpbmFsIENvZGUgYXJlIFRoZQotKiogT3BlbkdM
KFIpIEdyYXBoaWNzIFN5c3RlbTogQSBTcGVjaWZpY2F0aW9uIChWZXJzaW9uIDEuMi4xKSwgcmVs
ZWFzZWQKLSoqIEFwcmlsIDEsIDE5OTk7IFRoZSBPcGVuR0woUikgR3JhcGhpY3MgU3lzdGVtIFV0
aWxpdHkgTGlicmFyeSAoVmVyc2lvbgotKiogMS4zKSwgcmVsZWFzZWQgTm92ZW1iZXIgNCwgMTk5
ODsgYW5kIE9wZW5HTChSKSBHcmFwaGljcyB3aXRoIHRoZSBYCi0qKiBXaW5kb3cgU3lzdGVtKFIp
IChWZXJzaW9uIDEuMyksIHJlbGVhc2VkIE9jdG9iZXIgMTksIDE5OTguIFRoaXMgc29mdHdhcmUK
LSoqIHdhcyBjcmVhdGVkIHVzaW5nIHRoZSBPcGVuR0woUikgdmVyc2lvbiAxLjIuMSBTYW1wbGUg
SW1wbGVtZW50YXRpb24KLSoqIHB1Ymxpc2hlZCBieSBTR0ksIGJ1dCBoYXMgbm90IGJlZW4gaW5k
ZXBlbmRlbnRseSB2ZXJpZmllZCBhcyBiZWluZwotKiogY29tcGxpYW50IHdpdGggdGhlIE9wZW5H
TChSKSB2ZXJzaW9uIDEuMi4xIFNwZWNpZmljYXRpb24uCi0qKgotKi8KLS8qCi0qKiBBdXRob3I6
IEVyaWMgVmVhY2gsIEp1bHkgMTk5NC4KLSoqCi0qKiAkRGF0ZSQgJFJldmlzaW9uJAotKiogJEhl
YWRlcjogLy9kZXBvdC9tYWluL2dmeC9saWIvZ2x1L2xpYnRlc3MvdGVzc21vbm8uaCM1ICQKLSov
Ci0KLSNpZm5kZWYgX190ZXNzbW9ub19oXwotI2RlZmluZSBfX3Rlc3Ntb25vX2hfCi0KLS8qIF9f
Z2xfbWVzaFRlc3NlbGxhdGVNb25vUmVnaW9uKCBmYWNlICkgdGVzc2VsbGF0ZXMgYSBtb25vdG9u
ZSByZWdpb24KLSAqICh3aGF0IGVsc2Ugd291bGQgaXQgZG8/PykgIFRoZSByZWdpb24gbXVzdCBj
b25zaXN0IG9mIGEgc2luZ2xlCi0gKiBsb29wIG9mIGhhbGYtZWRnZXMgKHNlZSBtZXNoLmgpIG9y
aWVudGVkIENDVy4gICJNb25vdG9uZSIgaW4gdGhpcwotICogY2FzZSBtZWFucyB0aGF0IGFueSB2
ZXJ0aWNhbCBsaW5lIGludGVyc2VjdHMgdGhlIGludGVyaW9yIG9mIHRoZQotICogcmVnaW9uIGlu
IGEgc2luZ2xlIGludGVydmFsLiAgCi0gKgotICogVGVzc2VsbGF0aW9uIGNvbnNpc3RzIG9mIGFk
ZGluZyBpbnRlcmlvciBlZGdlcyAoYWN0dWFsbHkgcGFpcnMgb2YKLSAqIGhhbGYtZWRnZXMpLCB0
byBzcGxpdCB0aGUgcmVnaW9uIGludG8gbm9uLW92ZXJsYXBwaW5nIHRyaWFuZ2xlcy4KLSAqCi0g
KiBfX2dsX21lc2hUZXNzZWxsYXRlSW50ZXJpb3IoIG1lc2ggKSB0ZXNzZWxsYXRlcyBlYWNoIHJl
Z2lvbiBvZgotICogdGhlIG1lc2ggd2hpY2ggaXMgbWFya2VkICJpbnNpZGUiIHRoZSBwb2x5Z29u
LiAgRWFjaCBzdWNoIHJlZ2lvbgotICogbXVzdCBiZSBtb25vdG9uZS4KLSAqCi0gKiBfX2dsX21l
c2hEaXNjYXJkRXh0ZXJpb3IoIG1lc2ggKSB6YXBzIChpZS4gc2V0cyB0byBOVUxMKSBhbGwgZmFj
ZXMKLSAqIHdoaWNoIGFyZSBub3QgbWFya2VkICJpbnNpZGUiIHRoZSBwb2x5Z29uLiAgU2luY2Ug
ZnVydGhlciBtZXNoIG9wZXJhdGlvbnMKLSAqIG9uIE5VTEwgZmFjZXMgYXJlIG5vdCBhbGxvd2Vk
LCB0aGUgbWFpbiBwdXJwb3NlIGlzIHRvIGNsZWFuIHVwIHRoZQotICogbWVzaCBzbyB0aGF0IGV4
dGVyaW9yIGxvb3BzIGFyZSBub3QgcmVwcmVzZW50ZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLgot
ICoKLSAqIF9fZ2xfbWVzaFNldFdpbmRpbmdOdW1iZXIoIG1lc2gsIHZhbHVlLCBrZWVwT25seUJv
dW5kYXJ5ICkgcmVzZXRzIHRoZQotICogd2luZGluZyBudW1iZXJzIG9uIGFsbCBlZGdlcyBzbyB0
aGF0IHJlZ2lvbnMgbWFya2VkICJpbnNpZGUiIHRoZQotICogcG9seWdvbiBoYXZlIGEgd2luZGlu
ZyBudW1iZXIgb2YgInZhbHVlIiwgYW5kIHJlZ2lvbnMgb3V0c2lkZQotICogaGF2ZSBhIHdpbmRp
bmcgbnVtYmVyIG9mIDAuCi0gKgotICogSWYga2VlcE9ubHlCb3VuZGFyeSBpcyBUUlVFLCBpdCBh
bHNvIGRlbGV0ZXMgYWxsIGVkZ2VzIHdoaWNoIGRvIG5vdAotICogc2VwYXJhdGUgYW4gaW50ZXJp
b3IgcmVnaW9uIGZyb20gYW4gZXh0ZXJpb3Igb25lLgotICovCi0KLWludCBfX2dsX21lc2hUZXNz
ZWxsYXRlTW9ub1JlZ2lvbiggR0xVZmFjZSAqZmFjZSApOwotaW50IF9fZ2xfbWVzaFRlc3NlbGxh
dGVJbnRlcmlvciggR0xVbWVzaCAqbWVzaCApOwotdm9pZCBfX2dsX21lc2hEaXNjYXJkRXh0ZXJp
b3IoIEdMVW1lc2ggKm1lc2ggKTsKLWludCBfX2dsX21lc2hTZXRXaW5kaW5nTnVtYmVyKCBHTFVt
ZXNoICptZXNoLCBpbnQgdmFsdWUsCi0JCQkgICAgICAgIEdMYm9vbGVhbiBrZWVwT25seUJvdW5k
YXJ5ICk7Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmNwcCBiL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ0ZmIwMmMuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS93ZWJhdWRp
by9BdWRpb0xpc3RlbmVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoV0VCX0FVRElPKQotCi0jaW5jbHVkZSAiQXVk
aW9MaXN0ZW5lci5oIgotCi0jaW5jbHVkZSAiQXVkaW9CdXMuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1BdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKCkKLSAgICA6IG1fcG9zaXRpb24o
MCwgMCwgMCkKLSAgICAsIG1fb3JpZW50YXRpb24oMC4wLCAwLjAsIC0xLjApCi0gICAgLCBtX3Vw
VmVjdG9yKDAuMCwgMS4wLCAwLjApCi0gICAgLCBtX3ZlbG9jaXR5KDAsIDAsIDApCi0gICAgLCBt
X2RvcHBsZXJGYWN0b3IoMS4wKQotICAgICwgbV9zcGVlZE9mU291bmQoMzQzLjMpCi17Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuaCBiL1dlYkNvcmUvd2Vi
YXVkaW8vQXVkaW9MaXN0ZW5lci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWMx
NTIwLi4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5oCisrKyAv
ZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQXVkaW9MaXN0ZW5lcl9oCi0jZGVm
aW5lIEF1ZGlvTGlzdGVuZXJfaAotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IzLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotLy8gQXVkaW9MaXN0ZW5lciBtYWludGFpbnMgdGhlIHN0YXRlIG9m
IHRoZSBsaXN0ZW5lciBpbiB0aGUgYXVkaW8gc2NlbmUgYXMgZGVmaW5lZCBpbiB0aGUgT3BlbkFM
IHNwZWNpZmljYXRpb24uCi0KLWNsYXNzIEF1ZGlvTGlzdGVuZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxBdWRpb0xpc3RlbmVyPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8QXVkaW9M
aXN0ZW5lcj4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQXVk
aW9MaXN0ZW5lcigpKTsKLSAgICB9Ci0KLSAgICAvLyBQb3NpdGlvbgotICAgIHZvaWQgc2V0UG9z
aXRpb24oZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikgeyBzZXRQb3NpdGlvbihWZWN0b3Iz
KHgsIHksIHopKTsgfQotICAgIHZvaWQgc2V0UG9zaXRpb24oY29uc3QgVmVjdG9yMyAmcG9zaXRp
b24pIHsgbV9wb3NpdGlvbiA9IHBvc2l0aW9uOyB9Ci0gICAgY29uc3QgVmVjdG9yMyYgcG9zaXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uOyB9Ci0KLSAgICAvLyBPcmllbnRhdGlvbgot
ICAgIHZvaWQgc2V0T3JpZW50YXRpb24oZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeiwgZG91
YmxlIHVwWCwgZG91YmxlIHVwWSwgZG91YmxlIHVwWikKLSAgICB7Ci0gICAgICAgIHNldE9yaWVu
dGF0aW9uKFZlY3RvcjMoeCwgeSwgeikpOwotICAgICAgICBzZXRVcFZlY3RvcihWZWN0b3IzKHVw
WCwgdXBZLCB1cFopKTsKLSAgICB9Ci0gICAgdm9pZCBzZXRPcmllbnRhdGlvbihjb25zdCBWZWN0
b3IzICZvcmllbnRhdGlvbikgeyBtX29yaWVudGF0aW9uID0gb3JpZW50YXRpb247IH0KLSAgICBj
b25zdCBWZWN0b3IzJiBvcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247
IH0KLQotICAgIC8vIFVwLXZlY3RvcgotICAgIHZvaWQgc2V0VXBWZWN0b3IoY29uc3QgVmVjdG9y
MyAmdXBWZWN0b3IpIHsgbV91cFZlY3RvciA9IHVwVmVjdG9yOyB9Ci0gICAgY29uc3QgVmVjdG9y
MyYgdXBWZWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3VwVmVjdG9yOyB9Ci0KLSAgICAvLyBWZWxv
Y2l0eQotICAgIHZvaWQgc2V0VmVsb2NpdHkoZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgeikg
eyBzZXRWZWxvY2l0eShWZWN0b3IzKHgsIHksIHopKTsgfQotICAgIHZvaWQgc2V0VmVsb2NpdHko
Y29uc3QgVmVjdG9yMyAmdmVsb2NpdHkpIHsgbV92ZWxvY2l0eSA9IHZlbG9jaXR5OyB9Ci0gICAg
Y29uc3QgVmVjdG9yMyYgdmVsb2NpdHkoKSBjb25zdCB7IHJldHVybiBtX3ZlbG9jaXR5OyB9Ci0K
LSAgICAvLyBEb3BwbGVyIGZhY3RvcgotICAgIHZvaWQgc2V0RG9wcGxlckZhY3Rvcihkb3VibGUg
ZG9wcGxlckZhY3RvcikgeyBtX2RvcHBsZXJGYWN0b3IgPSBkb3BwbGVyRmFjdG9yOyB9Ci0gICAg
ZG91YmxlIGRvcHBsZXJGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2RvcHBsZXJGYWN0b3I7IH0K
LQotICAgIC8vIFNwZWVkIG9mIHNvdW5kCi0gICAgdm9pZCBzZXRTcGVlZE9mU291bmQoZG91Ymxl
IHNwZWVkT2ZTb3VuZCkgeyBtX3NwZWVkT2ZTb3VuZCA9IHNwZWVkT2ZTb3VuZDsgfQotICAgIGRv
dWJsZSBzcGVlZE9mU291bmQoKSBjb25zdCB7IHJldHVybiBtX3NwZWVkT2ZTb3VuZDsgfQotCi1w
cml2YXRlOgotICAgIEF1ZGlvTGlzdGVuZXIoKTsKLQotICAgIC8vIFBvc2l0aW9uIC8gT3JpZW50
YXRpb24KLSAgICBWZWN0b3IzIG1fcG9zaXRpb247Ci0gICAgVmVjdG9yMyBtX29yaWVudGF0aW9u
OwotICAgIFZlY3RvcjMgbV91cFZlY3RvcjsKLQotICAgIFZlY3RvcjMgbV92ZWxvY2l0eTsKLQot
ICAgIGRvdWJsZSBtX2RvcHBsZXJGYWN0b3I7Ci0gICAgZG91YmxlIG1fc3BlZWRPZlNvdW5kOwot
fTsKLQotfSAvLyBXZWJDb3JlCi0KLSNlbmRpZiAvLyBBdWRpb0xpc3RlbmVyX2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5pZGwgYi9XZWJDb3JlL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjZkOGNm
Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5pZGwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotbW9kdWxlIGF1ZGlvIHsKLSAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8KLSAgICBdIEF1ZGlvTGlzdGVuZXIgewot
ICAgICAgICBhdHRyaWJ1dGUgZmxvYXQgZG9wcGxlckZhY3RvcjsgIC8vIHNhbWUgYXMgT3BlbkFM
IChkZWZhdWx0IDEuMCkKLSAgICAgICAgYXR0cmlidXRlIGZsb2F0IHNwZWVkT2ZTb3VuZDsgICAv
LyBpbiBtZXRlcnMgLyBzZWNvbmQgKGRlZmF1bHQgMzQzLjMpCi0KLSAgICAgICAgdm9pZCBzZXRQ
b3NpdGlvbihpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6KTsKLSAgICAgICAgdm9p
ZCBzZXRPcmllbnRhdGlvbihpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6LCBpbiBm
bG9hdCB4VXAsIGluIGZsb2F0IHlVcCwgaW4gZmxvYXQgelVwKTsKLSAgICAgICAgdm9pZCBzZXRW
ZWxvY2l0eShpbiBmbG9hdCB4LCBpbiBmbG9hdCB5LCBpbiBmbG9hdCB6KTsKLSAgICB9OwotfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS93ZWJhdWRpby9BdWRpb1BhcmFtLmggYi9XZWJDb3JlL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmZiZDgwNS4u
MDAwMDAwMAotLS0gYS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaAorKysgL2Rldi9udWxs
CkBAIC0xLDExNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0
aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBBdWRpb1BhcmFtX2gKLSNkZWZpbmUgQXVkaW9Q
YXJhbV9oCi0KLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgotI2luY2x1ZGUgPG1hdGguaD4K
LSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
QXVkaW9QYXJhbSA6IHB1YmxpYyBSZWZDb3VudGVkPEF1ZGlvUGFyYW0+IHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgZG91YmxlIERlZmF1bHRTbW9vdGhpbmdDb25zdGFudCA9IDAuMDU7Ci0g
ICAgc3RhdGljIGNvbnN0IGRvdWJsZSBTbmFwVGhyZXNob2xkID0gMC4wMDE7Ci0KLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxBdWRpb1BhcmFtPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBkb3Vi
bGUgZGVmYXVsdFZhbHVlLCBkb3VibGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1ZSwgdW5zaWdu
ZWQgdW5pdHMgPSAwKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBdWRpb1Bh
cmFtKG5hbWUsIGRlZmF1bHRWYWx1ZSwgbWluVmFsdWUsIG1heFZhbHVlLCB1bml0cykpOwotICAg
IH0KLQotICAgIEF1ZGlvUGFyYW0oY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZGVmYXVsdFZh
bHVlLCBkb3VibGUgbWluVmFsdWUsIGRvdWJsZSBtYXhWYWx1ZSwgdW5zaWduZWQgdW5pdHMgPSAw
KQotICAgICAgICA6IG1fbmFtZShuYW1lKQotICAgICAgICAsIG1fdmFsdWUoZGVmYXVsdFZhbHVl
KQotICAgICAgICAsIG1fZGVmYXVsdFZhbHVlKGRlZmF1bHRWYWx1ZSkKLSAgICAgICAgLCBtX21p
blZhbHVlKG1pblZhbHVlKQotICAgICAgICAsIG1fbWF4VmFsdWUobWF4VmFsdWUpCi0gICAgICAg
ICwgbV91bml0cyh1bml0cykKLSAgICAgICAgLCBtX3Ntb290aGVkVmFsdWUoZGVmYXVsdFZhbHVl
KQotICAgICAgICAsIG1fc21vb3RoaW5nQ29uc3RhbnQoRGVmYXVsdFNtb290aGluZ0NvbnN0YW50
KQotICAgIHsKLSAgICB9Ci0KLSAgICBmbG9hdCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PGZsb2F0PihtX3ZhbHVlKTsgfQotICAgIHZvaWQgc2V0VmFsdWUoZmxvYXQgdmFsdWUp
IHsgbV92YWx1ZSA9IHZhbHVlOyB9Ci0KLSAgICBTdHJpbmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbmFtZTsgfQotCi0gICAgZmxvYXQgbWluVmFsdWUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxmbG9hdD4obV9taW5WYWx1ZSk7IH0KLSAgICBmbG9hdCBtYXhWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtX21heFZhbHVlKTsgfQotICAgIGZsb2F0IGRlZmF1
bHRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtX2RlZmF1bHRWYWx1
ZSk7IH0KLSAgICB1bnNpZ25lZCB1bml0cygpIGNvbnN0IHsgcmV0dXJuIG1fdW5pdHM7IH0KLQot
ICAgIC8vIFZhbHVlIHNtb290aGluZzoKLQotICAgIC8vIFdoZW4gYSBuZXcgdmFsdWUgaXMgc2V0
IHdpdGggc2V0VmFsdWUoKSwgaW4gb3VyIGludGVybmFsIHVzZSBvZiB0aGUgcGFyYW1ldGVyIHdl
IGRvbid0IGltbWVkaWF0ZWx5IGp1bXAgdG8gaXQuCi0gICAgLy8gSW5zdGVhZCB3ZSBzbW9vdGhs
eSBhcHByb2FjaCB0aGlzIHZhbHVlIHRvIGF2b2lkIGdsaXRjaGluZy4KLSAgICBmbG9hdCBzbW9v
dGhlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fc21vb3RoZWRW
YWx1ZSk7IH0KLQotICAgIC8vIFNtb290aGx5IGV4cG9uZW50aWFsbHkgYXBwcm9hY2hlcyB0byAo
ZGUtemlwcGVycykgdGhlIGRlc2lyZWQgdmFsdWUuCi0gICAgLy8gUmV0dXJucyB0cnVlIGlmIHNt
b290aGVkIHZhbHVlIGhhcyBhbHJlYWR5IHNuYXBwZWQgZXhhY3RseSB0byB2YWx1ZS4KLSAgICBi
b29sIHNtb290aCgpCi0gICAgewotICAgICAgICBpZiAobV9zbW9vdGhlZFZhbHVlID09IG1fdmFs
dWUpIHsKLSAgICAgICAgICAgIC8vIFNtb290aGVkIHZhbHVlIGhhcyBhbHJlYWR5IGFwcHJvYWNo
ZWQgYW5kIHNuYXBwZWQgdG8gdmFsdWUuCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIC8vIEV4cG9uZW50aWFsIGFwcHJvYWNoCi0gICAgICAgIG1fc21vb3Ro
ZWRWYWx1ZSArPSAobV92YWx1ZSAtIG1fc21vb3RoZWRWYWx1ZSkgKiBtX3Ntb290aGluZ0NvbnN0
YW50OwotCi0gICAgICAgIC8vIElmIHdlIGdldCBjbG9zZSBlbm91Z2ggdGhlbiBzbmFwIHRvIGFj
dHVhbCB2YWx1ZS4KLSAgICAgICAgaWYgKGZhYnMobV9zbW9vdGhlZFZhbHVlIC0gbV92YWx1ZSkg
PCBTbmFwVGhyZXNob2xkKSAvLyBGSVhNRTogdGhlIHRocmVzaG9sZCBuZWVkcyB0byBiZSBhZGp1
c3RhYmxlIGRlcGVuZGluZyBvbiByYW5nZSAtIGJ1dCB0aGlzIGlzIE9LIGdlbmVyYWwgcHVycG9z
ZSB2YWx1ZS4KLSAgICAgICAgICAgIG1fc21vb3RoZWRWYWx1ZSA9IG1fdmFsdWU7Ci0KLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHZvaWQgcmVzZXRTbW9vdGhlZFZhbHVlKCkg
eyBtX3Ntb290aGVkVmFsdWUgPSBtX3ZhbHVlOyB9Ci0gICAgdm9pZCBzZXRTbW9vdGhpbmdDb25z
dGFudChkb3VibGUgaykgeyBtX3Ntb290aGluZ0NvbnN0YW50ID0gazsgfQotCi1wcml2YXRlOgot
ICAgIFN0cmluZyBtX25hbWU7Ci0gICAgZG91YmxlIG1fdmFsdWU7Ci0gICAgZG91YmxlIG1fZGVm
YXVsdFZhbHVlOwotICAgIGRvdWJsZSBtX21pblZhbHVlOwotICAgIGRvdWJsZSBtX21heFZhbHVl
OwotICAgIHVuc2lnbmVkIG1fdW5pdHM7Ci0KLSAgICAvLyBTbW9vdGhpbmcgKGRlLXppcHBlcmlu
ZykKLSAgICBkb3VibGUgbV9zbW9vdGhlZFZhbHVlOwotICAgIGRvdWJsZSBtX3Ntb290aGluZ0Nv
bnN0YW50OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gQXVkaW9Q
YXJhbV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRsIGIvV2Vi
Q29yZS93ZWJhdWRpby9BdWRpb1BhcmFtLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmYyNTk4ZS4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uaWRs
CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLW1vZHVsZSB3ZWJhdWRpbyB7Ci0gICAg
aW50ZXJmYWNlIFsKLSAgICAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPCi0gICAgXSBBdWRpb1Bh
cmFtIHsKLSAgICAgICAgYXR0cmlidXRlIGZsb2F0IHZhbHVlOwotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgZmxvYXQgbWluVmFsdWU7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9h
dCBtYXhWYWx1ZTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IGRlZmF1bHRWYWx1
ZTsKLSAgICAgICAgCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsK
LQotICAgICAgICAvLyBGSVhNRTogQ291bGQgZGVmaW5lIHVuaXRzIGNvbnN0YW50cyBoZXJlIChz
ZWNvbmRzLCBkZWNpYmVscywgY2VudHMsIGV0Yy4pLi4uCi0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBzaG9ydCB1bml0czsKLSAgICB9OwotfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNjM3
OGU2My4uNjU5YTAxMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDE3OSArMSwzIEBACi0yMDEwLTA5LTA2
ICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KLQotICAgICAgICBbdjhdIGJ5cGFzcyBjYWNoZXMgd2hlbiBxdWVyeSBt
ZW1vcnkgdXNhZ2UgZnJvbSBwb3N0IEdDIGFuZCBpbiBjcmFzaCBoYW5kbGVyLgotICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwMzYKLQotICAgICAgICBB
ZGQgQ2hyb21pdW0tc3BlY2lmaWMgQVBJIHRvIHF1ZXJ5IGFjdHVhbCBtZW1vcnkgdXNhZ2Ugd2hp
Y2ggYnlwYXNzZXMgYW55IGNhY2hlcy4KLQotICAgICAgICAqIHB1YmxpYy9XZWJLaXRDbGllbnQu
aDoKLSAgICAgICAgKFdlYktpdDo6V2ViS2l0Q2xpZW50OjphY3R1YWxNZW1vcnlVc2FnZU1CKToK
LSAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgotICAgICAgICAoV2ViQ29yZTo6Q2hy
b21pdW1CcmlkZ2U6OmFjdHVhbE1lbW9yeVVzYWdlTUIpOgotCi0yMDEwLTA5LTA1ICBQZXRlciBL
YXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgotCi0gICAgICAgIE1ha2UgQ2hyb21pdW0vTWFjIGdlbmVyYXRlIGNvbnRpbnVvdXMg
bW91c2V3aGVlbCBldmVudHMgd2l0aCB0aGUgc2FtZSB3aGVlbERlbHRhIHZhbHVlcyBhcyBTYWZh
cmkvTWFjLgotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDUxNTUKLQotICAgICAgICAqIHNyYy9tYWMvV2ViSW5wdXRFdmVudEZhY3RvcnkubW06Ci0gICAg
ICAgIChXZWJLaXQ6OldlYklucHV0RXZlbnRGYWN0b3J5Ojptb3VzZVdoZWVsRXZlbnQpOgotCi0y
MDEwLTA5LTA1ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KLQotICAgICAgICBXZWIgSW5zcGVjdG9y
OiByZW1vdmUgV2ViRGV2VG9vbHNBZ2VudENsaWVudDo6Zm9yY2VSZXBhaW50IHdoaWNoIGlzIG5v
dCB1c2VkCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTE3OQotCi0gICAgICAgICogcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaDoKLSAgICAg
ICAgKiBzcmMvRGVidWdnZXJBZ2VudEltcGwuY3BwOgotICAgICAgICAoV2ViS2l0OjpEZWJ1Z2dl
ckFnZW50SW1wbDo6ZGVidWdnZXJPdXRwdXQpOgotICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHA6Ci0gICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmg6Ci0KLTIw
MTAtMDktMDUgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEZpc2hlci4KLQotICAgICAgICBBZGQgdW5pdCB0ZXN0cyBmb3IgaW50
ZXJ2YWwgdHJlZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDUxNjEKLQotICAgICAgICAqIFdlYktpdC5neXA6Ci0gICAgICAgICogdGVzdHMvUE9ESW50
ZXJ2YWxUcmVlVGVzdC5jcHA6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6dmFsdWVUb1N0cmlu
Zyk6Ci0gICAgICAgIChXZWJDb3JlOjpURVNUKToKLSAgICAgICAgKFdlYkNvcmU6OlVzZXJEYXRh
MTo6dmFsdWVUb1N0cmluZyk6Ci0gICAgICAgIChXZWJDb3JlOjpFbmRwb2ludFR5cGUxOjp2YWx1
ZVRvU3RyaW5nKToKLQotMjAxMC0wOS0wNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5j
b20+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgotCi0gICAgICAgIEFkZCB1
bml0IHRlc3RzIGZvciByZWQtYmxhY2sgdHJlZSBhbmQgKFBPRCkgYXJlbmEKLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MDYwCi0KLSAgICAgICAgKiBX
ZWJLaXQuZ3lwOgotICAgICAgICAqIHRlc3RzL1BPREFyZW5hVGVzdC5jcHA6IEFkZGVkLgotICAg
ICAgICAoV2ViQ29yZTo6VGVzdENsYXNzMTo6VGVzdENsYXNzMjo6VGVzdENsYXNzMik6Ci0gICAg
ICAgIChXZWJDb3JlOjpURVNUX0YpOgotICAgICAgICAqIHRlc3RzL1BPRFJlZEJsYWNrVHJlZVRl
c3QuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgotICAgICAgICAqIHRlc3Rz
L1RyZWVUZXN0SGVscGVycy5jcHA6IEFkZGVkLgotICAgICAgICAoV2ViQ29yZTo6VHJlZVRlc3RI
ZWxwZXJzOjpnZW5lcmF0ZVNlZWQpOgotICAgICAgICAoV2ViQ29yZTo6VHJlZVRlc3RIZWxwZXJz
Ojppbml0UmFuZG9tKToKLSAgICAgICAgKFdlYkNvcmU6OlRyZWVUZXN0SGVscGVyczo6bmV4dFJh
bmRvbSk6Ci0gICAgICAgICogdGVzdHMvVHJlZVRlc3RIZWxwZXJzLmg6IEFkZGVkLgotCi0yMDEw
LTA5LTAzICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3Nh
Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAgICBBZGQg
TmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKLQotICAgICAgICBBZGQg
Q2hyb21pdW0ncyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4KLQotICAgICAg
ICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgotICAgICAgICAoV2ViS2l0OjpGcmFt
ZUxvYWRlckNsaWVudEltcGw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKLSAgICAgICAgKiBz
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6Ci0KLTIwMTAtMDktMDIgIFZhbmdlbGlzIEtva2tl
dmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEZpc2hlci4KLQotICAgICAgICBbY2hyb21pdW1dIFJldmVydCB0byBzb2Z0d2FyZSBjb21wb3Np
dGluZyBpZiB0aGUgYWNjZWxlcmF0ZWQKLSAgICAgICAgY29tcG9zaXRvciBmYWlscyB0byBpbml0
aWFsaXplLiBJZiB3ZSB0cmllZCB0byBpbml0aWFsaXplIHRoZSBjb21wb3NpdG9yCi0gICAgICAg
IGZvciB0aGlzIFdlYlZpZXcgYW5kIGZhaWxlZCwgbmV4dCB0aW1lIHRoZSBhc3NvY2lhdGVkIGNo
cm9tZSBjbGllbnQgaXMKLSAgICAgICAgYXNrZWQgd2hldGhlciBpdCBjYW4gZG8gYWNjZWxlcmF0
ZWQgY29tcG9zaXRpbmcgaXQgd2lsbCByZXR1cm4gZmFsc2UuCi0gICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTEyNAotICAgICAgICAKLSAgICAgICAgKiBz
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6Ci0gICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudElt
cGw6OmFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpOgotICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmg6Ci0gICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKLSAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKLSAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnBhaW50KToKLSAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFsbG93c0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmcpOgotICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKLSAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmdldE9uc2NyZWVuR0xFUzJDb250ZXh0KToKLSAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
aDoKLQotMjAxMC0wOS0wMyAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgot
Ci0gICAgICAgIFtjaHJvbWl1bV0gQWRkIG9uZSBtb3JlIGluY2x1ZGUgdG8gZml4IHRoZSBtYWMg
Y29tcGlsZS4KLQotICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRC5jcHA6Ci0KLTIwMTAt
MDktMDMgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KLQotICAgICAgICBb
Y2hyb21pdW1dIENvbXBpbGUgZml4ZXMgZm9yIDY2NzQ2LgotCi0gICAgICAgICogc3JjL0dyYXBo
aWNzQ29udGV4dDNELmNwcDoKLSAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNESW50
ZXJuYWw6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKLQotMjAxMC0wOS0wMyAgVG9u
eSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJlbW92
ZSBzdm46ZXhlY3V0YWJsZSBmbGFnIGZyb20gaW1hZ2VzIGFuZCBjc3MgZmlsZXMuCi0KLSAgICAg
ICAgKiBzcmMvanMvSW1hZ2VzL3NlZ21lbnRDaHJvbWl1bS5wbmc6IFJlbW92ZWQgcHJvcGVydHkg
c3ZuOmV4ZWN1dGFibGUuCi0gICAgICAgICogc3JjL2pzL0ltYWdlcy9zZWdtZW50SG92ZXJDaHJv
bWl1bS5wbmc6IFJlbW92ZWQgcHJvcGVydHkgc3ZuOmV4ZWN1dGFibGUuCi0gICAgICAgICogc3Jj
L2pzL0ltYWdlcy9zZWdtZW50SG92ZXJFbmRDaHJvbWl1bS5wbmc6IFJlbW92ZWQgcHJvcGVydHkg
c3ZuOmV4ZWN1dGFibGUuCi0gICAgICAgICogc3JjL2pzL0ltYWdlcy9zZWdtZW50U2VsZWN0ZWRD
aHJvbWl1bS5wbmc6IFJlbW92ZWQgcHJvcGVydHkgc3ZuOmV4ZWN1dGFibGUuCi0gICAgICAgICog
c3JjL2pzL0ltYWdlcy9zZWdtZW50U2VsZWN0ZWRFbmRDaHJvbWl1bS5wbmc6IFJlbW92ZWQgcHJv
cGVydHkgc3ZuOmV4ZWN1dGFibGUuCi0gICAgICAgICogc3JjL2pzL0ltYWdlcy9zdGF0dXNiYXJC
YWNrZ3JvdW5kQ2hyb21pdW0ucG5nOiBSZW1vdmVkIHByb3BlcnR5IHN2bjpleGVjdXRhYmxlLgot
ICAgICAgICAqIHNyYy9qcy9JbWFnZXMvc3RhdHVzYmFyQm90dG9tQmFja2dyb3VuZENocm9taXVt
LnBuZzogUmVtb3ZlZCBwcm9wZXJ0eSBzdm46ZXhlY3V0YWJsZS4KLSAgICAgICAgKiBzcmMvanMv
SW1hZ2VzL3N0YXR1c2JhckJ1dHRvbnNDaHJvbWl1bS5wbmc6IFJlbW92ZWQgcHJvcGVydHkgc3Zu
OmV4ZWN1dGFibGUuCi0gICAgICAgICogc3JjL2pzL0ltYWdlcy9zdGF0dXNiYXJNZW51QnV0dG9u
Q2hyb21pdW0ucG5nOiBSZW1vdmVkIHByb3BlcnR5IHN2bjpleGVjdXRhYmxlLgotICAgICAgICAq
IHNyYy9qcy9JbWFnZXMvc3RhdHVzYmFyTWVudUJ1dHRvblNlbGVjdGVkQ2hyb21pdW0ucG5nOiBS
ZW1vdmVkIHByb3BlcnR5IHN2bjpleGVjdXRhYmxlLgotICAgICAgICAqIHNyYy9qcy9kZXZUb29s
cy5jc3M6IFJlbW92ZWQgcHJvcGVydHkgc3ZuOmV4ZWN1dGFibGUuCi0KLTIwMTAtMDktMDMgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBDaHJpcyBNYXJyaW4uCi0KLSAgICAgICAgTXVsdGlwbGUgYWNjZWxlcmF0ZWQgMkQgY2FudmFz
ZXMgc2hvdWxkIGJlIGFibGUgdG8gdXNlIHRoZSBzYW1lIEdyYXBoaWNzQ29udGV4dDNECi0gICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDkyNgotCi0gICAg
ICAgIEFkZHMgYSBTaGFyZWRDb250ZXh0M0QgdG8gV2ViVmlld0ltcGwuIFRoZSBTaGFyZWRDb250
ZXh0M0QgaGFzIHRvIGxpdmUgb24gV2ViVmlld0ltcGwgdG8gYmUKLSAgICAgICAgdGllZCB0byB0
aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvc2l0b3IgY29udGV4dC4KLQotICAgICAgICAqIHNyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcDoKLSAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6
Z2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgotICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJ
bXBsLmg6Ci0gICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNELmNwcDoKLSAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OmluaXRpYWxpemUpOgotICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6cGxhdGZvcm1MYXllcik6Ci0gICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1MYXllcik6Ci0gICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKLSAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdl
dFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKToKLSAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoK
LQotMjAxMC0wOC0zMSAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KLQotICAg
ICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KLQotICAgICAgICBJREJDdXJzb3IuY29udGlu
dWUoKSBzaG91bGQgcmV1c2UgdGhlIC5vcGVuQ3Vyc29yJ3MgSURCUmVxdWVzdCBvYmplY3QKLSAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTUzCi0KLSAg
ICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHA6Ci0gICAgICAgIChXZWJDb3JlOjpX
ZWJJREJDYWxsYmFja3NJbXBsOjpvbkVycm9yKToKLSAgICAgICAgKFdlYkNvcmU6OldlYklEQkNh
bGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6Ci0KLTIwMTAtMDktMDIgIFl1cnkgU2VtaWtoYXRza3kg
IDx5dXJ5c0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1h
bi4KLQotICAgICAgICBSRUdSRVNTSU9OOiBDcmFzaCBvY2N1cnMgYXQgb2JqY19tc2dTZW5kIHdo
ZW4gY2xvc2luZyBhIHdpbmRvdyB0aGF0IGlzIGRpc3BsYXlpbmcgdGhlIHdlYiBpbnNwZWN0b3IK
LSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjMwCi0K
LSAgICAgICAgKiBzcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcDoKLSAgICAgICAg
KFdlYktpdDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsOjpkaXNjb25uZWN0RnJvbUJhY2tl
bmQpOgotICAgICAgICAqIHNyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuaDoKLQogMjAx
MC0wOS0wMiAgU2F0aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggZTRiM2RmZS4uYzc1
Y2FjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTczOCwxMyArNzM4LDggQEAKICAgICAgICAgICAgICAg
ICAgICAgICAgICd0ZXN0cy9JREJLZXlQYXRoVGVzdC5jcHAnLAogICAgICAgICAgICAgICAgICAg
ICAgICAgJ3Rlc3RzL0tleWJvYXJkVGVzdC5jcHAnLAogICAgICAgICAgICAgICAgICAgICAgICAg
J3Rlc3RzL0tVUkxUZXN0LmNwcCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAndGVzdHMvUE9E
QXJlbmFUZXN0LmNwcCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAndGVzdHMvUE9ESW50ZXJ2
YWxUcmVlVGVzdC5jcHAnLAotICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RzL1BPRFJlZEJs
YWNrVHJlZVRlc3QuY3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0cy9SdW5BbGxU
ZXN0cy5jcHAnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3RzL1RpbGluZ0RhdGFUZXN0
LmNwcCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAndGVzdHMvVHJlZVRlc3RIZWxwZXJzLmNw
cCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAndGVzdHMvVHJlZVRlc3RIZWxwZXJzLmgnLAog
ICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICAgICAnY29uZGl0aW9ucyc6
IFsKICAgICAgICAgICAgICAgICAgICAgICAgIFsnT1M9PSJ3aW4iJywgewpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEZXZUb29sc0FnZW50Q2xpZW50LmggYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRDbGllbnQuaAppbmRleCBiMzczYjYwLi4w
ODdhYzBiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdl
bnRDbGllbnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRldlRvb2xzQWdlbnRD
bGllbnQuaApAQCAtNDQsNiArNDQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNlbmRE
ZWJ1Z2dlck91dHB1dChjb25zdCBXZWJTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2Vu
ZERpc3BhdGNoVG9BUFUoY29uc3QgV2ViU3RyaW5nJikgeyB9CiAKKyAgICAvLyBJbnZhbGlkYXRl
cyB3aWRnZXQgd2hpY2ggbGVhZHMgdG8gdGhlIHJlcGFpbnQuCisgICAgdmlydHVhbCB2b2lkIGZv
cmNlUmVwYWludCgpIHsgfQorCiAgICAgLy8gUmV0dXJucyB0aGUgaWRlbnRpZmllciBvZiB0aGUg
ZW50aXR5IGhvc3RpbmcgdGhpcyBhZ2VudC4KICAgICB2aXJ0dWFsIGludCBob3N0SWRlbnRpZmll
cigpIHsgcmV0dXJuIC0xOyB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViS2l0Q2xpZW50LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCmlu
ZGV4IDBmMjgyZTAuLjljMGI0YzIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViS2l0Q2xpZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQu
aApAQCAtMTYzLDkgKzE2Myw2IEBAIHB1YmxpYzoKICAgICAvLyBUaGF0IGlzIGNvbW1pdHRlZCBz
aXplIGZvciBXaW5kb3dzIGFuZCB2aXJ0dWFsIG1lbW9yeSBzaXplIGZvciBQT1NJWAogICAgIHZp
cnR1YWwgc2l6ZV90IG1lbW9yeVVzYWdlTUIoKSB7IHJldHVybiAwOyB9CiAKLSAgICAvLyBTYW1l
IGFzIGFib3ZlLCBidXQgYWx3YXlzIHJldHVybnMgYWN0dWFsIHZhbHVlLCB3aXRob3V0IGFueSBj
YWNoZXMuCi0gICAgdmlydHVhbCBzaXplX3QgYWN0dWFsTWVtb3J5VXNhZ2VNQigpIHsgcmV0dXJu
IDA7IH0KLQogCiAgICAgLy8gTWVzc2FnZSBQb3J0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCmluZGV4IDhhM2VkYTYuLmU2ZjE0MDAgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTksNyArNTksNiBAQAogI2luY2x1ZGUgIlNl
YXJjaFBvcHVwTWVudUNocm9taXVtLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250
ZXh0M0QuaCIKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblNlcnZpY2UuaCIKICNpZiBVU0UoVjgp
CiAjaW5jbHVkZSAiVjhQcm94eS5oIgpAQCAtNzUwLDE4ICs3NDksOCBAQCB2b2lkIENocm9tZUNs
aWVudEltcGw6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKQogewogICAgIG1fd2ViVmll
dy0+c2V0Um9vdExheWVyTmVlZHNEaXNwbGF5KCk7CiB9Ci0KLWJvb2wgQ2hyb21lQ2xpZW50SW1w
bDo6YWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
d2ViVmlldy0+YWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOwotfQogI2VuZGlmCiAKLVdl
YkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKiBDaHJvbWVDbGllbnRJbXBsOjpnZXRTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRCgpCi17Ci0gICAgcmV0dXJuIG1fd2ViVmlldy0+Z2V0U2hhcmVk
R3JhcGhpY3NDb250ZXh0M0QoKTsKLX0KLQogYm9vbCBDaHJvbWVDbGllbnRJbXBsOjpzdXBwb3J0
c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCiB7CiAgICAgaWYg
KG1fd2ViVmlldy0+Y2xpZW50KCkgJiYgbm9kZS0+aGFzVGFnTmFtZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OnZpZGVvVGFnKSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKaW5kZXgg
ZDE2ZDhmNi4uYmZmOWY5MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgK
QEAgLTE1MCwxMyArMTUwLDggQEAgcHVibGljOgogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNp
ZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCiAgICAgLy8g
dG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUgZHJhd2luZy4KICAgICB2aXJ0dWFsIHZv
aWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYygpOwotCi0gICAgLy8gUmV0dXJucyB0cnVl
IGlmIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzIHN1cHBvcnRlZC4KLSAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwogI2VuZGlmCiAKLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OlNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKiBnZXRTaGFyZWRHcmFwaGlj
c0NvbnRleHQzRCgpOwotCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZvck5v
ZGUoY29uc3QgV2ViQ29yZTo6Tm9kZSopOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3Jl
ZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21pdW1CcmlkZ2UuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRn
ZS5jcHAKaW5kZXggM2NlZDdiOC4uOTExZGNmMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1
bUJyaWRnZS5jcHAKQEAgLTgyMywxMSArODIzLDYgQEAgaW50IENocm9taXVtQnJpZGdlOjptZW1v
cnlVc2FnZU1CKCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih3ZWJLaXRDbGllbnQoKS0+
bWVtb3J5VXNhZ2VNQigpKTsKIH0KIAotaW50IENocm9taXVtQnJpZGdlOjphY3R1YWxNZW1vcnlV
c2FnZU1CKCkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih3ZWJLaXRDbGllbnQoKS0+
YWN0dWFsTWVtb3J5VXNhZ2VNQigpKTsKLX0KLQogaW50IENocm9taXVtQnJpZGdlOjpzY3JlZW5E
ZXB0aChXaWRnZXQqIHdpZGdldCkKIHsKICAgICBXZWJXaWRnZXRDbGllbnQqIGNsaWVudCA9IHRv
V2ViV2lkZ2V0Q2xpZW50KHdpZGdldCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0RlYnVnZ2VyQWdlbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRGVidWdnZXJBZ2Vu
dEltcGwuY3BwCmluZGV4IDVkZDVjNTguLjQ2YzZlN2MgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvRGVidWdnZXJBZ2VudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
RGVidWdnZXJBZ2VudEltcGwuY3BwCkBAIC02MCw2ICs2MCw3IEBAIERlYnVnZ2VyQWdlbnRJbXBs
Ojp+RGVidWdnZXJBZ2VudEltcGwoKQogdm9pZCBEZWJ1Z2dlckFnZW50SW1wbDo6ZGVidWdnZXJP
dXRwdXQoY29uc3QgU3RyaW5nJiBjb21tYW5kKQogewogICAgIG1fd2ViZGV2dG9vbHNBZ2VudENs
aWVudC0+c2VuZERlYnVnZ2VyT3V0cHV0KGNvbW1hbmQpOworICAgIG1fd2ViZGV2dG9vbHNBZ2Vu
dC0+Zm9yY2VSZXBhaW50KCk7CiB9CiAKIFdlYkNvcmU6OlBhZ2UqIERlYnVnZ2VyQWdlbnRJbXBs
OjpwYWdlKCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNw
cAppbmRleCBlYTY2OGM3Li43NDE4NmJmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiRm9ybVN0
YXRlLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1
ZXN0LmgiCi0jaW5jbHVkZSAiRnJhbWVOZXR3b3JraW5nQ29udGV4dEltcGwuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkhpc3Rv
cnlJdGVtLmgiCkBAIC0xNTEzLDkgKzE1MTIsNCBAQCBQYXNzT3duUHRyPFdlYlBsdWdpbkxvYWRP
YnNlcnZlcj4gRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpwbHVnaW5Mb2FkT2JzZXJ2ZXIoKQogICAg
IHJldHVybiBkcy0+cmVsZWFzZVBsdWdpbkxvYWRPYnNlcnZlcigpOwogfQogCi1QYXNzUmVmUHRy
PEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6Y3JlYXRlTmV0
d29ya2luZ0NvbnRleHQoKQotewotICAgIHJldHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0SW1w
bDo6Y3JlYXRlKG1fd2ViRnJhbWUtPmZyYW1lKCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCmluZGV4IDM2
MWJhZTQuLjNhOGE3MTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuaApAQCAtMTk4LDggKzE5OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Tm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7
CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4
dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKLQogcHJpdmF0ZToKICAgICB2b2lkIG1ha2VE
b2N1bWVudFZpZXcoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGlj
c0NvbnRleHQzRC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNELmNw
cAppbmRleCAzMDUxYjliLi42YmM1ZmZlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0dyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNz
Q29udGV4dDNELmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNELmgiCiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIldlYkdMTGF5ZXJD
aHJvbWl1bS5oIgorI2luY2x1ZGUgIkNhbnZhc0xheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlICJD
YW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50SW1wbC5oIgpAQCAtNTUsNyArNTUsNiBAQAogCiAjaWYgUExBVEZPUk0oQ0cp
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dC5oPgogI2luY2x1ZGUg
PENvcmVHcmFwaGljcy9DR0ltYWdlLmg+CiAjZW5kaWYKQEAgLTEwNCw3ICsxMDMsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwcmVwYXJlVGV4dHVyZSgpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQotICAgIFdlYkdMTGF5ZXJDaHJvbWl1bSogcGxhdGZvcm1MYXllcigpIGNvbnN0
OworICAgIENhbnZhc0xheWVyQ2hyb21pdW0qIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKICNlbmRp
ZgogICAgIGJvb2wgaXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0OwogICAgIGJvb2wgaXNHTEVTMk5Q
T1RTdHJpY3QoKSBjb25zdDsKQEAgLTI5OSw3ICsyOTgsNyBAQCBwcml2YXRlOgogICAgIE93blB0
cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiBtX2ltcGw7CiAgICAgV2ViS2l0OjpXZWJW
aWV3SW1wbCogbV93ZWJWaWV3SW1wbDsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
Ci0gICAgUmVmUHRyPFdlYkdMTGF5ZXJDaHJvbWl1bT4gbV9jb21wb3NpdGluZ0xheWVyOworICAg
IFJlZlB0cjxDYW52YXNMYXllckNocm9taXVtPiBtX2NvbXBvc2l0aW5nTGF5ZXI7CiAjZW5kaWYK
ICNpZiBQTEFURk9STShTS0lBKQogICAgIC8vIElmIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRo
ZSBDYW52YXMncyBiYWNraW5nIHN0b3JlIGRvbid0CkBAIC0zNjEsNyArMzYwLDcgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHQzREludGVybmFsOjppbml0aWFsaXplKEdyYXBoaWNzQ29udGV4dDNEOjpB
dHRyaWJ1dGVzIGF0dHJzLAogICAgIG1faW1wbC5zZXQod2ViQ29udGV4dCk7CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgbV9jb21wb3NpdGluZ0xheWVyID0gV2ViR0xM
YXllckNocm9taXVtOjpjcmVhdGUoMCk7CisgICAgbV9jb21wb3NpdGluZ0xheWVyID0gQ2FudmFz
TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKDApOwogI2VuZGlmCiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC0zODIsNyArMzgxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzREludGVybmFsOjpwcmVwYXJl
VGV4dHVyZSgpCiB9CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1XZWJHTExh
eWVyQ2hyb21pdW0qIEdyYXBoaWNzQ29udGV4dDNESW50ZXJuYWw6OnBsYXRmb3JtTGF5ZXIoKSBj
b25zdAorQ2FudmFzTGF5ZXJDaHJvbWl1bSogR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5hbDo6cGxh
dGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29tcG9zaXRpbmdMYXllci5nZXQo
KTsKIH0KQEAgLTQzNywxMCArNDM2LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RJbnRlcm5h
bDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoQ2FudmFzUmVuZGVyaW5nQ29uCiAgICAg
ICAgIGNhbnZhcy5kcmF3Qml0bWFwUmVjdChtX3Jlc2l6aW5nQml0bWFwLCAwLCBkc3QpOwogICAg
IH0KICNlbGlmIFBMQVRGT1JNKENHKQotICAgIGlmIChtX3JlbmRlck91dHB1dCAmJiBjb250ZXh0
LT5pczNkKCkpIHsKLSAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiB3ZWJHTENvbnRleHQg
PSBzdGF0aWNfY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQqPihjb250ZXh0KTsKLSAgICAgICAg
d2ViR0xDb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5wYWludFRvQ2FudmFzKG1fcmVuZGVy
T3V0cHV0LCBtX2ltcGwtPndpZHRoKCksIG1faW1wbC0+aGVpZ2h0KCksIGNhbnZhcy0+d2lkdGgo
KSwgY2FudmFzLT5oZWlnaHQoKSwgaW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+cGxhdGZvcm1Db250
ZXh0KCkpOwotICAgIH0KKyAgICBpZiAobV9yZW5kZXJPdXRwdXQpCisgICAgICAgIGNvbnRleHQt
PmdyYXBoaWNzQ29udGV4dDNEKCktPnBhaW50VG9DYW52YXMobV9yZW5kZXJPdXRwdXQsIG1faW1w
bC0+d2lkdGgoKSwgbV9pbXBsLT5oZWlnaHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYW52YXMtPndpZHRoKCksIGNhbnZhcy0+aGVpZ2h0
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW1hZ2VCdWZmZXItPmNvbnRleHQoKS0+cGxhdGZvcm1Db250ZXh0KCkpOwogI2Vsc2UKICNlcnJv
ciBNdXN0IHBvcnQgdG8geW91ciBwbGF0Zm9ybQogI2VuZGlmCkBAIC0xMDQwLDcgKzEwMzksNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgpCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogUGxhdGZvcm1MYXllciogR3JhcGhpY3NDb250ZXh0M0Q6OnBs
YXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIFdlYkdMTGF5ZXJDaHJvbWl1bSogY2FudmFzTGF5
ZXIgPSBtX2ludGVybmFsLT5wbGF0Zm9ybUxheWVyKCk7CisgICAgQ2FudmFzTGF5ZXJDaHJvbWl1
bSogY2FudmFzTGF5ZXIgPSBtX2ludGVybmFsLT5wbGF0Zm9ybUxheWVyKCk7CiAgICAgY2FudmFz
TGF5ZXItPnNldENvbnRleHQodGhpcyk7CiAgICAgcmV0dXJuIGNhbnZhc0xheWVyOwogfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwu
Y3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuY3Bw
CmluZGV4IDUxODY0ZjEuLjQ2ZjJjYjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAKQEAgLTEwNSwxMSArMTA1LDYgQEAgdm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGw6OmNsb3NlV2luZG93KCkKICAgICBtX2NsaWVu
dC0+Y2xvc2VXaW5kb3coKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGw6
OmRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpCi17Ci0gICAgbV9jbGllbnQtPmNsb3NlV2luZG93KCk7
Ci19Ci0KIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsOjpyZXF1ZXN0QXR0YWNoV2lu
ZG93KCkKIHsKICAgICBtX2NsaWVudC0+cmVxdWVzdERvY2tXaW5kb3coKTsKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmggYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oCmluZGV4IGZjMjFm
M2UuLjE1MDdiZjIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudEltcGwuaApAQCAtNjEsNyArNjEsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgYnJpbmdUb0Zyb250KCk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93KCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpOwogCiAgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RBdHRhY2hXaW5kb3coKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldGFj
aFdpbmRvdygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cAppbmRleCA5NzFjMjkwLi5mYmIwNmY4IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtMjM5LDYgKzIzOSwxMSBAQCB2b2lkIFdlYkRldlRvb2xz
QWdlbnRJbXBsOjpkaWRDbGVhcldpbmRvd09iamVjdChXZWJGcmFtZUltcGwqIHdlYmZyYW1lKQog
ICAgIERlYnVnZ2VyQWdlbnRNYW5hZ2VyOjpzZXRIb3N0SWQod2ViZnJhbWUsIG1faG9zdElkKTsK
IH0KIAordm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBt
X2NsaWVudC0+Zm9yY2VSZXBhaW50KCk7Cit9CisKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6
OmRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kKGNvbnN0IFdlYlN0cmluZyYgbWVzc2FnZSkKIHsK
ICAgICBpbnNwZWN0b3JDb250cm9sbGVyKCktPmluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKCkt
PmRpc3BhdGNoKG1lc3NhZ2UpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJE
ZXZUb29sc0FnZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50
SW1wbC5oCmluZGV4IDM2Y2FmY2YuLmRhNTg0ZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmgKQEAgLTk5LDYgKzk5LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCB0aW1lbGluZVByb2ZpbGVyV2FzU3RvcHBlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBz
ZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKIAorICAgIHZvaWQgZm9y
Y2VSZXBhaW50KCk7CisKICAgICBpbnQgaG9zdElkKCkgeyByZXR1cm4gbV9ob3N0SWQ7IH0KIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tz
SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmlu
ZGV4IGZlNjc3ODkuLmU1NDMxMjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxs
YmFja3NJbXBsLmNwcApAQCAtNTcsNDEgKzU3LDQ5IEBAIFdlYklEQkNhbGxiYWNrc0ltcGw6On5X
ZWJJREJDYWxsYmFja3NJbXBsKCkKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25FcnJvcihj
b25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKQogewogICAgIG1fY2FsbGJh
Y2tzLT5vbkVycm9yKGVycm9yKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCiB2b2lk
IFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcygpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9u
U3VjY2VzcygpOworICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKIHZvaWQgV2ViSURCQ2Fs
bGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktpdDo6V2ViSURCQ3Vyc29yKiBjdXJzb3IpCiB7CiAg
ICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJDdXJzb3JCYWNrZW5kUHJveHk6OmNyZWF0ZShj
dXJzb3IpKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCiB2b2lkIFdlYklEQkNhbGxi
YWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5j
ZSkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRhdGFiYXNlUHJveHk6OmNyZWF0
ZSh3ZWJLaXRJbnN0YW5jZSkpOworICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKIHZvaWQg
V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViSURCS2V5JiBr
ZXkpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhrZXkpOworICAgIG1fY2FsbGJhY2tz
LmNsZWFyKCk7CiB9CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktp
dDo6V2ViSURCSW5kZXgqIHdlYktpdEluc3RhbmNlKQogewogICAgIG1fY2FsbGJhY2tzLT5vblN1
Y2Nlc3MoSURCSW5kZXhCYWNrZW5kUHJveHk6OmNyZWF0ZSh3ZWJLaXRJbnN0YW5jZSkpOworICAg
IG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25T
dWNjZXNzKFdlYktpdDo6V2ViSURCT2JqZWN0U3RvcmUqIHdlYktpdEluc3RhbmNlKQogewogICAg
IG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCT2JqZWN0U3RvcmVQcm94eTo6Y3JlYXRlKHdlYktp
dEluc3RhbmNlKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKIH0KIAogdm9pZCBXZWJJREJD
YWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2ViS2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUmIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNj
ZXNzKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApp
bmRleCBmNjNjOTA4Li40YjEyOWQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApA
QCAtNTgsNyArNTgsNiBAQAogI2luY2x1ZGUgIkdMRVMyQ29udGV4dC5oIgogI2luY2x1ZGUgIkdM
RVMyQ29udGV4dEludGVybmFsLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQu
aCIKQEAgLTg3LDcgKzg2LDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1
ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1
ZGUgIlNoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlICJUeXBpbmdDb21tYW5kLmgiCiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIK
QEAgLTI2NSw3ICsyNjMsNiBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVu
dCogY2xpZW50LCBXZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29scwogI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKICAgICAsIG1fbGF5ZXJSZW5kZXJlcigwKQogICAgICwgbV9p
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoZmFsc2UpCi0gICAgLCBtX2NvbXBvc2l0b3JD
cmVhdGlvbkZhaWxlZChmYWxzZSkKICNlbmRpZgogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCiAg
ICAgLCBtX3NwZWVjaElucHV0Q2xpZW50KGNsaWVudCkKQEAgLTk3MCw3ICs5NjcsNiBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpwYWludChXZWJDYW52YXMqIGNhbnZhcywgY29uc3QgV2ViUmVjdCYgcmVj
dCkKICAgICAgICAgSW50UmVjdCBjb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVj
dChmYWxzZSk7CiAKICAgICAgICAgLy8gQXNrIHRoZSBsYXllciBjb21wb3NpdG9yIHRvIHJlZHJh
dyBhbGwgdGhlIGxheWVycy4KLSAgICAgICAgQVNTRVJUKG1fbGF5ZXJSZW5kZXJlci0+aGFyZHdh
cmVDb21wb3NpdGluZygpKTsKICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5kcmF3TGF5ZXJzKHJl
Y3QsIHZpc2libGVSZWN0LCBjb250ZW50UmVjdCwgSW50UG9pbnQodmlldy0+c2Nyb2xsWCgpLCB2
aWV3LT5zY3JvbGxZKCkpKTsKICAgICB9CiAjZW5kaWYKQEAgLTIxMDcsMTEgKzIxMDMsNiBAQCBi
b29sIFdlYlZpZXdJbXBsOjp0YWJzVG9MaW5rcygpIGNvbnN0CiB9CiAKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCi1ib29sIFdlYlZpZXdJbXBsOjphbGxvd3NBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkKLXsKLSAgICByZXR1cm4gIW1fY29tcG9zaXRvckNyZWF0aW9uRmFpbGVkOwot
fQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpQbGF0
Zm9ybUxheWVyKiBsYXllcikKIHsKICAgICBzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3Rp
dmUobGF5ZXIgPyB0cnVlIDogZmFsc2UpOwpAQCAtMjEyNiwxNSArMjExNywxNSBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUoYm9vbCBhY3RpdmUp
CiAKICAgICBpZiAoYWN0aXZlKSB7CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlciA9IExheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6Y3JlYXRlKGdldE9uc2NyZWVuR0xFUzJDb250ZXh0KCkpOwotICAgICAg
ICBpZiAobV9sYXllclJlbmRlcmVyKSB7CisgICAgICAgIGlmIChtX2xheWVyUmVuZGVyZXItPmhh
cmR3YXJlQ29tcG9zaXRpbmcoKSkgewogICAgICAgICAgICAgbV9pc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdBY3RpdmUgPSB0cnVlOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBGb3JjZSBh
IHJlZHJhdyB0aGUgZW50aXJlIHZpZXcgc28gdGhhdCB0aGUgY29tcG9zaXRvciBnZXRzIHRoZSBl
bnRpcmUgdmlldywKICAgICAgICAgICAgIC8vIHJhdGhlciB0aGFuIGp1c3QgdGhlIGN1cnJlbnRs
eS1kaXJ0eSBzdWJzZXQuCiAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkSW52YWxpZGF0ZVJlY3Qo
SW50UmVjdCgwLCAwLCBtX3NpemUud2lkdGgsIG1fc2l6ZS5oZWlnaHQpKTsKICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci5jbGVhcigpOwogICAgICAgICAgICAg
bV9pc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdBY3RpdmUgPSBmYWxzZTsKLSAgICAgICAgICAgIG1f
Y29tcG9zaXRvckNyZWF0aW9uRmFpbGVkID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7
CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlciA9IDA7CkBAIC0yMjIxLDIxICsyMjEyLDE3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNldFJvb3RMYXllck5lZWRzRGlzcGxheSgpCiAKIFBhc3NPd25QdHI8
R0xFUzJDb250ZXh0PiBXZWJWaWV3SW1wbDo6Z2V0T25zY3JlZW5HTEVTMkNvbnRleHQoKQogewot
ICAgIFdlYkdMRVMyQ29udGV4dCogY29udGV4dCA9IGdsZXMyQ29udGV4dCgpOwotICAgIGlmICgh
Y29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIEdMRVMyQ29udGV4dDo6Y3Jl
YXRlKEdMRVMyQ29udGV4dEludGVybmFsOjpjcmVhdGUoY29udGV4dCwgZmFsc2UpKTsKKyAgICBy
ZXR1cm4gR0xFUzJDb250ZXh0OjpjcmVhdGUoR0xFUzJDb250ZXh0SW50ZXJuYWw6OmNyZWF0ZShn
bGVzMkNvbnRleHQoKSwgZmFsc2UpKTsKIH0KIAotU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QqIFdl
YlZpZXdJbXBsOjpnZXRTaGFyZWRHcmFwaGljc0NvbnRleHQzRCgpCitQYXNzT3duUHRyPEdMRVMy
Q29udGV4dD4gV2ViVmlld0ltcGw6OmdldE9mZnNjcmVlbkdMRVMyQ29udGV4dCgpCiB7Ci0gICAg
aWYgKCFtX3NoYXJlZENvbnRleHQzRCkgewotICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6QXR0
cmlidXRlcyBhdHRyOwotICAgICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQg
PSBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKGF0dHIsIG1fcGFnZS0+Y2hyb21lKCkpOwotICAg
ICAgICBtX3NoYXJlZENvbnRleHQzRCA9IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUo
Y29udGV4dC5yZWxlYXNlKCkpOwotICAgIH0KLQotICAgIHJldHVybiBtX3NoYXJlZENvbnRleHQz
RC5nZXQoKTsKKyAgICBXZWJHTEVTMkNvbnRleHQqIGNvbnRleHQgPSB3ZWJLaXRDbGllbnQoKS0+
Y3JlYXRlR0xFUzJDb250ZXh0KCk7CisgICAgaWYgKCFjb250ZXh0KQorICAgICAgICByZXR1cm4g
MDsKKyAgICBpZiAoIWNvbnRleHQtPmluaXRpYWxpemUoMCwgZ2xlczJDb250ZXh0KCkpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gR0xFUzJDb250ZXh0OjpjcmVhdGUoR0xFUzJDb250
ZXh0SW50ZXJuYWw6OmNyZWF0ZShjb250ZXh0LCB0cnVlKSk7CiB9CiAKIC8vIFJldHVybnMgdGhl
IEdMRVMyIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgVmlldy4gSWYgb25lIGRvZXNuJ3Qg
ZXhpc3QKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBhNDIwOTljLi5jMjk2MTIxIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0zMjQsMTYgKzMyNCwxNSBAQCBwdWJsaWM6
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgc2V0Um9vdExheWVy
TmVlZHNEaXNwbGF5KCk7CiAgICAgdm9pZCBzZXRSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpQ
bGF0Zm9ybUxheWVyKik7Ci0gICAgYm9vbCBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7
CiAjZW5kaWYKICAgICAvLyBPbnNjcmVlbiBjb250ZXh0cyBkaXNwbGF5IHRvIHRoZSBzY3JlZW4g
YXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlldy4KICAgICAvLyBPZmZzY3JlZW4gY29udGV4dHMgcmVu
ZGVyIG9mZnNjcmVlbiBidXQgY2FuIHNoYXJlIHJlc291cmNlcyB3aXRoIHRoZQogICAgIC8vIG9u
c2NyZWVuIGNvbnRleHQgYW5kIHRodXMgY2FuIGJlIGNvbXBvc2l0ZWQuCiAgICAgUGFzc093blB0
cjxXZWJDb3JlOjpHTEVTMkNvbnRleHQ+IGdldE9uc2NyZWVuR0xFUzJDb250ZXh0KCk7CisgICAg
UGFzc093blB0cjxXZWJDb3JlOjpHTEVTMkNvbnRleHQ+IGdldE9mZnNjcmVlbkdMRVMyQ29udGV4
dCgpOwogCiAgICAgLy8gUmV0dXJucyBhbiBvbnNjcmVlbiBjb250ZXh0CiAgICAgdmlydHVhbCBX
ZWJHTEVTMkNvbnRleHQqIGdsZXMyQ29udGV4dCgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6U2hh
cmVkR3JhcGhpY3NDb250ZXh0M0QqIGdldFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEKCk7CiAKICAg
ICBXZWJDb3JlOjpQb3B1cENvbnRhaW5lciogc2VsZWN0UG9wdXAoKSBjb25zdCB7IHJldHVybiBt
X3NlbGVjdFBvcHVwLmdldCgpOyB9CiAKQEAgLTUxMyw3ICs1MTIsNiBAQCBwcml2YXRlOgogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBPd25QdHI8V2ViQ29yZTo6TGF5ZXJS
ZW5kZXJlckNocm9taXVtPiBtX2xheWVyUmVuZGVyZXI7CiAgICAgYm9vbCBtX2lzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZTsKLSAgICBib29sIG1fY29tcG9zaXRvckNyZWF0aW9uRmFpbGVk
OwogI2VuZGlmCiAgICAgc3RhdGljIGNvbnN0IFdlYklucHV0RXZlbnQqIG1fY3VycmVudElucHV0
RXZlbnQ7CiAKQEAgLTUyMyw4ICs1MjEsNiBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPFdlYkdM
RVMyQ29udGV4dD4gbV9nbGVzMkNvbnRleHQ7CiAKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
R3JhcGhpY3NDb250ZXh0M0Q+IG1fc2hhcmVkQ29udGV4dDNEOwotCiAgICAgT3duUHRyPERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UHJveHk+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTsK
IH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvZGV2VG9vbHMuY3NzIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9qcy9kZXZUb29scy5jc3MKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBt
b2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9tYWMvV2ViSW5wdXRF
dmVudEZhY3RvcnkubW0gYi9XZWJLaXQvY2hyb21pdW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFj
dG9yeS5tbQppbmRleCBiNGUwOWMwLi42OTQxNTVmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL21hYy9XZWJJbnB1dEV2ZW50RmFjdG9yeS5tbQpAQCAtMTE3OCwxOSArMTE3OCwyMiBAQCBX
ZWJNb3VzZVdoZWVsRXZlbnQgV2ViSW5wdXRFdmVudEZhY3Rvcnk6Om1vdXNlV2hlZWxFdmVudChO
U0V2ZW50KiBldmVudCwgTlNWaWV3KgogICAgIC8vIHRoZSBwb2ludCBkZWx0YSBkYXRhIGluc3Rl
YWQsIHNpbmNlIHdlIGNhbm5vdCBkaXN0aW5ndWlzaCB0cmFja3BhZCBkYXRhCiAgICAgLy8gZnJv
bSBkYXRhIGZyb20gYW55IG90aGVyIGNvbnRpbnVvdXMgZGV2aWNlLgogCi0gICAgLy8gQ29udmVy
c2lvbiBiZXR3ZWVuIHdoZWVsIGRlbHRhIGFtb3VudHMgYW5kIG51bWJlciBvZiBwaXhlbHMgdG8g
c2Nyb2xsLgotICAgIHN0YXRpYyBjb25zdCBkb3VibGUgc2Nyb2xsYmFyUGl4ZWxzUGVyQ29jb2FU
aWNrID0gNDAuMDsKLQogICAgIGlmIChDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVu
dCwga0NHU2Nyb2xsV2hlZWxFdmVudElzQ29udGludW91cykpIHsKLSAgICAgICAgcmVzdWx0LmRl
bHRhWCA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ0V2ZW50LCBrQ0dTY3JvbGxXaGVl
bEV2ZW50UG9pbnREZWx0YUF4aXMyKTsKLSAgICAgICAgcmVzdWx0LmRlbHRhWSA9IENHRXZlbnRH
ZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ0V2ZW50LCBrQ0dTY3JvbGxXaGVlbEV2ZW50UG9pbnREZWx0
YUF4aXMxKTsKLSAgICAgICAgcmVzdWx0LndoZWVsVGlja3NYID0gcmVzdWx0LmRlbHRhWCAvIHNj
cm9sbGJhclBpeGVsc1BlckNvY29hVGljazsKLSAgICAgICAgcmVzdWx0LndoZWVsVGlja3NZID0g
cmVzdWx0LmRlbHRhWSAvIHNjcm9sbGJhclBpeGVsc1BlckNvY29hVGljazsKKyAgICAgICAgcmVz
dWx0LndoZWVsVGlja3NZID0gcmVzdWx0LmRlbHRhWSA9CisgICAgICAgICAgICBDR0V2ZW50R2V0
SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudCwga0NHU2Nyb2xsV2hlZWxFdmVudFBvaW50RGVsdGFB
eGlzMSk7CisgICAgICAgIHJlc3VsdC53aGVlbFRpY2tzWCA9IHJlc3VsdC5kZWx0YVggPQorICAg
ICAgICAgICAgQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKGNnRXZlbnQsIGtDR1Njcm9sbFdo
ZWVsRXZlbnRQb2ludERlbHRhQXhpczIpOwogICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdC53
aGVlbFRpY2tzWSA9CisgICAgICAgICAgICBDR0V2ZW50R2V0SW50ZWdlclZhbHVlRmllbGQoY2dF
dmVudCwga0NHU2Nyb2xsV2hlZWxFdmVudERlbHRhQXhpczEpOworICAgICAgICByZXN1bHQud2hl
ZWxUaWNrc1ggPQorICAgICAgICAgICAgQ0dFdmVudEdldEludGVnZXJWYWx1ZUZpZWxkKGNnRXZl
bnQsIGtDR1Njcm9sbFdoZWVsRXZlbnREZWx0YUF4aXMyKTsKKworICAgICAgICAvLyBDb252ZXJ0
IHdoZWVsIGRlbHRhIGFtb3VudCB0byBhIG51bWJlciBvZiBwaXhlbHMgdG8gc2Nyb2xsLgorICAg
ICAgICBzdGF0aWMgY29uc3QgZG91YmxlIHNjcm9sbGJhclBpeGVsc1BlckNvY29hVGljayA9IDQw
LjA7CisKICAgICAgICAgcmVzdWx0LmRlbHRhWCA9IFtldmVudCBkZWx0YVhdICogc2Nyb2xsYmFy
UGl4ZWxzUGVyQ29jb2FUaWNrOwogICAgICAgICByZXN1bHQuZGVsdGFZID0gW2V2ZW50IGRlbHRh
WV0gKiBzY3JvbGxiYXJQaXhlbHNQZXJDb2NvYVRpY2s7Ci0gICAgICAgIHJlc3VsdC53aGVlbFRp
Y2tzWSA9IENHRXZlbnRHZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ0V2ZW50LCBrQ0dTY3JvbGxXaGVl
bEV2ZW50RGVsdGFBeGlzMSk7Ci0gICAgICAgIHJlc3VsdC53aGVlbFRpY2tzWCA9IENHRXZlbnRH
ZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ0V2ZW50LCBrQ0dTY3JvbGxXaGVlbEV2ZW50RGVsdGFBeGlz
Mik7CiAgICAgfQogCiAgICAgcmVzdWx0LnRpbWVTdGFtcFNlY29uZHMgPSBbZXZlbnQgdGltZXN0
YW1wXTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QT0RBcmVuYVRlc3QuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BPREFyZW5hVGVzdC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDI2YWNlNWYuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1BPREFyZW5hVGVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0g
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIlBPREFyZW5hLmgiCi0KLSNpbmNs
dWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDx3dGYv
RmFzdE1hbGxvYy5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIHsKLQotLy8gQW4gYWxs
b2NhdG9yIGZvciB0aGUgUE9EQXJlbmEgd2hpY2ggdHJhY2tzIHRoZSByZWdpb25zIHdoaWNoIGhh
dmUKLS8vIGJlZW4gYWxsb2NhdGVkLgotY2xhc3MgVHJhY2tlZEFsbG9jYXRvciA6IHB1YmxpYyBQ
T0RBcmVuYTo6RmFzdE1hbGxvY0FsbG9jYXRvciB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8VHJhY2tlZEFsbG9jYXRvcj4gY3JlYXRlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgVHJhY2tlZEFsbG9jYXRvcik7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lk
KiBhbGxvY2F0ZShzaXplX3Qgc2l6ZSkKLSAgICB7Ci0gICAgICAgIHZvaWQqIHJlc3VsdCA9IFBP
REFyZW5hOjpGYXN0TWFsbG9jQWxsb2NhdG9yOjphbGxvY2F0ZShzaXplKTsKLSAgICAgICAgbV9h
bGxvY2F0ZWRSZWdpb25zLmFwcGVuZChyZXN1bHQpOwotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBmcmVlKHZvaWQqIHB0cikKLSAgICB7Ci0gICAgICAg
IHNpemVfdCBzbG90ID0gbV9hbGxvY2F0ZWRSZWdpb25zLmZpbmQocHRyKTsKLSAgICAgICAgQVNT
RVJUX0dFKHNsb3QsIDApOwotICAgICAgICBtX2FsbG9jYXRlZFJlZ2lvbnMucmVtb3ZlKHNsb3Qp
OwotICAgICAgICBQT0RBcmVuYTo6RmFzdE1hbGxvY0FsbG9jYXRvcjo6ZnJlZShwdHIpOwotICAg
IH0KLQotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gIW51
bVJlZ2lvbnMoKTsKLSAgICB9Ci0KLSAgICBpbnQgbnVtUmVnaW9ucygpIGNvbnN0Ci0gICAgewot
ICAgICAgICByZXR1cm4gbV9hbGxvY2F0ZWRSZWdpb25zLnNpemUoKTsKLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgVHJhY2tlZEFsbG9jYXRvcigpIHsgfQotICAgIFZlY3Rvcjx2b2lkKj4gbV9hbGxv
Y2F0ZWRSZWdpb25zOwotfTsKLQotLy8gQSBjb3VwbGUgb2Ygc2ltcGxlIHN0cnVjdHMgdG8gYWxs
b2NhdGUuCi1zdHJ1Y3QgVGVzdENsYXNzMSB7Ci0gICAgVGVzdENsYXNzMSgpCi0gICAgICAgIDog
eCgwKSwgeSgwKSwgeigwKSwgdygxKSB7IH0KLQotICAgIGZsb2F0IHgsIHksIHosIHc7Ci19Owot
Ci1zdHJ1Y3QgVGVzdENsYXNzMiB7Ci0gICAgVGVzdENsYXNzMigpCi0gICAgICAgIDogYSgxKSwg
YigyKSwgYygzKSwgZCg0KSB7IH0KLQotICAgIGZsb2F0IGEsIGIsIGMsIGQ7Ci19OwotCi19IC8v
IGFub255bW91cyBuYW1lc3BhY2UKLQotY2xhc3MgUE9EQXJlbmFUZXN0IDogcHVibGljIHRlc3Rp
bmc6OlRlc3QgewotfTsKLQotLy8gTWFrZSBzdXJlIHRoZSBhcmVuYSBjYW4gc3VjY2Vzc2Z1bGx5
IGFsbG9jYXRlIGZyb20gbW9yZSB0aGFuIG9uZQotLy8gcmVnaW9uLgotVEVTVF9GKFBPREFyZW5h
VGVzdCwgQ2FuQWxsb2NhdGVGcm9tTW9yZVRoYW5PbmVSZWdpb24pCi17Ci0gICAgUmVmUHRyPFRy
YWNrZWRBbGxvY2F0b3I+IGFsbG9jYXRvciA9IFRyYWNrZWRBbGxvY2F0b3I6OmNyZWF0ZSgpOwot
ICAgIFJlZlB0cjxQT0RBcmVuYT4gYXJlbmEgPSBQT0RBcmVuYTo6Y3JlYXRlKGFsbG9jYXRvcik7
Ci0gICAgaW50IG51bUl0ZXJhdGlvbnMgPSAxMCAqIFBPREFyZW5hOjpEZWZhdWx0Q2h1bmtTaXpl
IC8gc2l6ZW9mKFRlc3RDbGFzczEpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtSXRlcmF0
aW9uczsgKytpKQotICAgICAgICBhcmVuYS0+YWxsb2NhdGVPYmplY3Q8VGVzdENsYXNzMT4oKTsK
LSAgICBFWFBFQ1RfR1QoYWxsb2NhdG9yLT5udW1SZWdpb25zKCksIDEpOwotfQotCi0vLyBNYWtl
IHN1cmUgdGhlIGFyZW5hIGZyZWVzIGFsbCBhbGxvY2F0ZWQgcmVnaW9ucyBkdXJpbmcgZGVzdHJ1
Y3Rpb24uCi1URVNUX0YoUE9EQXJlbmFUZXN0LCBGcmVlc0FsbEFsbG9jYXRlZFJlZ2lvbnMpCi17
Ci0gICAgUmVmUHRyPFRyYWNrZWRBbGxvY2F0b3I+IGFsbG9jYXRvciA9IFRyYWNrZWRBbGxvY2F0
b3I6OmNyZWF0ZSgpOwotICAgIHsKLSAgICAgICAgUmVmUHRyPFBPREFyZW5hPiBhcmVuYSA9IFBP
REFyZW5hOjpjcmVhdGUoYWxsb2NhdG9yKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAz
OyBpKyspCi0gICAgICAgICAgICBhcmVuYS0+YWxsb2NhdGVPYmplY3Q8VGVzdENsYXNzMT4oKTsK
LSAgICAgICAgRVhQRUNUX0dUKGFsbG9jYXRvci0+bnVtUmVnaW9ucygpLCAwKTsKLSAgICB9Ci0g
ICAgRVhQRUNUX1RSVUUoYWxsb2NhdG9yLT5pc0VtcHR5KCkpOwotfQotCi0vLyBNYWtlIHN1cmUg
dGhlIGFyZW5hIHJ1bnMgY29uc3RydWN0b3JzIG9mIHRoZSBvYmplY3RzIGFsbG9jYXRlZCB3aXRo
aW4uCi1URVNUX0YoUE9EQXJlbmFUZXN0LCBSdW5zQ29uc3RydWN0b3JzKQotewotICAgIFJlZlB0
cjxQT0RBcmVuYT4gYXJlbmEgPSBQT0RBcmVuYTo6Y3JlYXRlKCk7Ci0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCAxMDAwMDsgaSsrKSB7Ci0gICAgICAgIFRlc3RDbGFzczEqIHRjMSA9IGFyZW5hLT5h
bGxvY2F0ZU9iamVjdDxUZXN0Q2xhc3MxPigpOwotICAgICAgICBFWFBFQ1RfRVEoMCwgdGMxLT54
KTsKLSAgICAgICAgRVhQRUNUX0VRKDAsIHRjMS0+eSk7Ci0gICAgICAgIEVYUEVDVF9FUSgwLCB0
YzEtPnopOwotICAgICAgICBFWFBFQ1RfRVEoMSwgdGMxLT53KTsKLSAgICAgICAgVGVzdENsYXNz
MiogdGMyID0gYXJlbmEtPmFsbG9jYXRlT2JqZWN0PFRlc3RDbGFzczI+KCk7Ci0gICAgICAgIEVY
UEVDVF9FUSgxLCB0YzItPmEpOwotICAgICAgICBFWFBFQ1RfRVEoMiwgdGMyLT5iKTsKLSAgICAg
ICAgRVhQRUNUX0VRKDMsIHRjMi0+Yyk7Ci0gICAgICAgIEVYUEVDVF9FUSg0LCB0YzItPmQpOwot
ICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1BPREludGVydmFsVHJlZVRlc3QuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1BPREludGVydmFsVHJlZVRlc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzYThhMjQ1Li4wMDAwMDAwCi0tLSBhL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QT0RJbnRlcnZh
bFRyZWVUZXN0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDMyMyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotLy8g
VGVzdHMgZm9yIHRoZSBpbnRlcnZhbCB0cmVlIGNsYXNzLgotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpbmNsdWRlICJQT0RJbnRlcnZhbFRyZWUuaCIKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
LSNpbmNsdWRlICJUcmVlVGVzdEhlbHBlcnMuaCIKLSNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBUcmVlVGVzdEhlbHBlcnM6OmdlbmVyYXRl
U2VlZDsKLXVzaW5nIFRyZWVUZXN0SGVscGVyczo6aW5pdFJhbmRvbTsKLXVzaW5nIFRyZWVUZXN0
SGVscGVyczo6bmV4dFJhbmRvbTsKLQotaW5saW5lIFN0cmluZyB2YWx1ZVRvU3RyaW5nKGNvbnN0
IGZsb2F0JiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nOjpudW1iZXIodmFsdWUpOwotfQot
Ci1pbmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmcodm9pZCogY29uc3QmIHZhbHVlKQotewotICAg
IHJldHVybiBTdHJpbmc6OmZvcm1hdCgiMHglcCIsIHZhbHVlKTsKLX0KLQotVEVTVChQT0RJbnRl
cnZhbFRyZWVUZXN0LCBUZXN0SW5zZXJ0aW9uKQotewotICAgIFBPREludGVydmFsVHJlZTxmbG9h
dD4gdHJlZTsKLSAgICB0cmVlLmFkZChQT0RJbnRlcnZhbDxmbG9hdD4oMiwgNCkpOwotICAgIEFT
U0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotfQotCi1URVNUKFBPREludGVydmFs
VHJlZVRlc3QsIFRlc3RJbnNlcnRpb25BbmRRdWVyeSkKLXsKLSAgICBQT0RJbnRlcnZhbFRyZWU8
ZmxvYXQ+IHRyZWU7Ci0gICAgdHJlZS5hZGQoUE9ESW50ZXJ2YWw8ZmxvYXQ+KDIsIDQpKTsKLSAg
ICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAgICBWZWN0b3I8UE9ESW50
ZXJ2YWw8ZmxvYXQ+ID4gcmVzdWx0ID0gdHJlZS5hbGxPdmVybGFwcyhQT0RJbnRlcnZhbDxmbG9h
dD4oMSwgMykpOwotICAgIEVYUEVDVF9FUSgxVSwgcmVzdWx0LnNpemUoKSk7Ci0gICAgRVhQRUNU
X0VRKDIsIHJlc3VsdFswXS5sb3coKSk7Ci0gICAgRVhQRUNUX0VRKDQsIHJlc3VsdFswXS5oaWdo
KCkpOwotfQotCi1URVNUKFBPREludGVydmFsVHJlZVRlc3QsIFRlc3RRdWVyeUFnYWluc3RaZXJv
U2l6ZUludGVydmFsKQotewotICAgIFBPREludGVydmFsVHJlZTxmbG9hdD4gdHJlZTsKLSAgICB0
cmVlLmFkZChQT0RJbnRlcnZhbDxmbG9hdD4oMSwgMi41KSk7Ci0gICAgdHJlZS5hZGQoUE9ESW50
ZXJ2YWw8ZmxvYXQ+KDMuNSwgNSkpOwotICAgIHRyZWUuYWRkKFBPREludGVydmFsPGZsb2F0Pigy
LCA0KSk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgVmVj
dG9yPFBPREludGVydmFsPGZsb2F0PiA+IHJlc3VsdCA9IHRyZWUuYWxsT3ZlcmxhcHMoUE9ESW50
ZXJ2YWw8ZmxvYXQ+KDMsIDMpKTsKLSAgICBFWFBFQ1RfRVEoMVUsIHJlc3VsdC5zaXplKCkpOwot
ICAgIEVYUEVDVF9FUSgyLCByZXN1bHRbMF0ubG93KCkpOwotICAgIEVYUEVDVF9FUSg0LCByZXN1
bHRbMF0uaGlnaCgpKTsKLX0KLQotVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0RHVwbGlj
YXRlRWxlbWVudEluc2VydGlvbikKLXsKLSAgICBQT0RJbnRlcnZhbFRyZWU8ZmxvYXQsIGludCo+
IHRyZWU7Ci0gICAgaW50IHRtcDEgPSAxOwotICAgIGludCB0bXAyID0gMjsKLSAgICB0eXBlZGVm
IFBPREludGVydmFsVHJlZTxmbG9hdCwgaW50Kj46OkludGVydmFsVHlwZSBJbnRlcnZhbFR5cGU7
Ci0gICAgSW50ZXJ2YWxUeXBlIGludGVydmFsMSgxLCAzLCAmdG1wMSk7Ci0gICAgSW50ZXJ2YWxU
eXBlIGludGVydmFsMigxLCAzLCAmdG1wMik7Ci0gICAgdHJlZS5hZGQoaW50ZXJ2YWwxKTsKLSAg
ICB0cmVlLmFkZChpbnRlcnZhbDIpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlh
bnRzKCkpOwotICAgIEVYUEVDVF9UUlVFKHRyZWUuY29udGFpbnMoaW50ZXJ2YWwxKSk7Ci0gICAg
RVhQRUNUX1RSVUUodHJlZS5jb250YWlucyhpbnRlcnZhbDIpKTsKLSAgICBFWFBFQ1RfVFJVRSh0
cmVlLnJlbW92ZShpbnRlcnZhbDEpKTsKLSAgICBFWFBFQ1RfVFJVRSh0cmVlLmNvbnRhaW5zKGlu
dGVydmFsMikpOwotICAgIEVYUEVDVF9GQUxTRSh0cmVlLmNvbnRhaW5zKGludGVydmFsMSkpOwot
ICAgIEVYUEVDVF9UUlVFKHRyZWUucmVtb3ZlKGludGVydmFsMikpOwotICAgIEVYUEVDVF9FUSgw
LCB0cmVlLnNpemUoKSk7Ci19Ci0KLW5hbWVzcGFjZSB7Ci0KLXN0cnVjdCBVc2VyRGF0YTEgewot
cHVibGljOgotICAgIFVzZXJEYXRhMSgpCi0gICAgICAgIDogYSgwKSwgYigxKSB7IH0KLQotICAg
IGZsb2F0IGE7Ci0gICAgaW50IGI7Ci19OwotCi1pbmxpbmUgU3RyaW5nIHZhbHVlVG9TdHJpbmco
Y29uc3QgVXNlckRhdGExJiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCJbVXNlckRhdGEx
IGE9IikgKyBTdHJpbmc6Om51bWJlcih2YWx1ZS5hKSArICIgYj0iICsgU3RyaW5nOjpudW1iZXIo
dmFsdWUuYikgKyAiXSI7Ci19Ci0KLX0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQotCi1URVNUKFBP
REludGVydmFsVHJlZVRlc3QsIFRlc3RJbnNlcnRpb25PZkNvbXBsZXhVc2VyRGF0YSkKLXsKLSAg
ICBQT0RJbnRlcnZhbFRyZWU8ZmxvYXQsIFVzZXJEYXRhMT4gdHJlZTsKLSAgICBVc2VyRGF0YTEg
ZGF0YTE7Ci0gICAgZGF0YTEuYSA9IDU7Ci0gICAgZGF0YTEuYiA9IDY7Ci0gICAgdHJlZS5hZGQo
dHJlZS5jcmVhdGVJbnRlcnZhbCgyLCA0LCBkYXRhMSkpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUu
Y2hlY2tJbnZhcmlhbnRzKCkpOwotfQotCi1URVNUKFBPREludGVydmFsVHJlZVRlc3QsIFRlc3RR
dWVyeWluZ09mQ29tcGxleFVzZXJEYXRhKQotewotICAgIFBPREludGVydmFsVHJlZTxmbG9hdCwg
VXNlckRhdGExPiB0cmVlOwotICAgIFVzZXJEYXRhMSBkYXRhMTsKLSAgICBkYXRhMS5hID0gNTsK
LSAgICBkYXRhMS5iID0gNjsKLSAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKDIsIDQs
IGRhdGExKSk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAg
VmVjdG9yPFBPREludGVydmFsPGZsb2F0LCBVc2VyRGF0YTE+ID4gb3ZlcmxhcHMgPSB0cmVlLmFs
bE92ZXJsYXBzKHRyZWUuY3JlYXRlSW50ZXJ2YWwoMywgNSwgZGF0YTEpKTsKLSAgICBFWFBFQ1Rf
RVEoMVUsIG92ZXJsYXBzLnNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKDUsIG92ZXJsYXBzWzBdLmRh
dGEoKS5hKTsKLSAgICBFWFBFQ1RfRVEoNiwgb3ZlcmxhcHNbMF0uZGF0YSgpLmIpOwotfQotCi1u
YW1lc3BhY2UgewotCi1jbGFzcyBFbmRwb2ludFR5cGUxIHsKLXB1YmxpYzoKLSAgICBleHBsaWNp
dCBFbmRwb2ludFR5cGUxKGludCB2YWx1ZSkKLSAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKSB7IH0K
LQotICAgIGludCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KLQotICAgIGJvb2wg
b3BlcmF0b3I8KGNvbnN0IEVuZHBvaW50VHlwZTEmIG90aGVyKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlIDwgb3RoZXIubV92YWx1ZTsgfQotICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFbmRwb2lu
dFR5cGUxJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV92YWx1ZSA9PSBvdGhlci5tX3ZhbHVlOyB9
Ci0KLXByaXZhdGU6Ci0gICAgaW50IG1fdmFsdWU7Ci0gICAgLy8gVGhlc2Ugb3BlcmF0b3JzIHNo
b3VsZCBub3QgYmUgY2FsbGVkIGJ5IHRoZSBpbnRlcnZhbCB0cmVlLgotICAgIGJvb2wgb3BlcmF0
b3I+KGNvbnN0IEVuZHBvaW50VHlwZTEmIG90aGVyKTsKLSAgICBib29sIG9wZXJhdG9yPD0oY29u
c3QgRW5kcG9pbnRUeXBlMSYgb3RoZXIpOwotICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBFbmRw
b2ludFR5cGUxJiBvdGhlcik7Ci0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEVuZHBvaW50VHlw
ZTEmIG90aGVyKTsKLX07Ci0KLWlubGluZSBTdHJpbmcgdmFsdWVUb1N0cmluZyhjb25zdCBFbmRw
b2ludFR5cGUxJiB2YWx1ZSkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCJbRW5kcG9pbnRUeXBlMSB2
YWx1ZT0iKSArIFN0cmluZzo6bnVtYmVyKHZhbHVlLnZhbHVlKCkpICsgIl0iOwotfQotCi19IC8v
IGFub255bW91cyBuYW1lc3BhY2UKLQotVEVTVChQT0RJbnRlcnZhbFRyZWVUZXN0LCBUZXN0VHJl
ZURvZXNOb3RSZXF1aXJlTW9zdE9wZXJhdG9ycykKLXsKLSAgICBQT0RJbnRlcnZhbFRyZWU8RW5k
cG9pbnRUeXBlMT4gdHJlZTsKLSAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKEVuZHBv
aW50VHlwZTEoMSksIEVuZHBvaW50VHlwZTEoMikpKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNo
ZWNrSW52YXJpYW50cygpKTsKLX0KLQotLy8gVW5jb21tZW50IHRvIGRlYnVnIGEgZmFpbHVyZSBv
ZiB0aGUgaW5zZXJ0aW9uIGFuZCBkZWxldGlvbiB0ZXN0LgotLy8gI2RlZmluZSBERUJVR19JTlNF
UlRJT05fQU5EX0RFTEVUSU9OX1RFU1QKLQotbmFtZXNwYWNlIHsKLQotdm9pZCBJbnNlcnRpb25B
bmREZWxldGlvblRlc3QoaW50MzJfdCBzZWVkLCBpbnQgdHJlZVNpemUpCi17Ci0gICAgaW5pdFJh
bmRvbShzZWVkKTsKLSAgICBpbnQgbWF4aW11bVZhbHVlID0gdHJlZVNpemU7Ci0gICAgLy8gQnVp
bGQgdGhlIHRyZWUKLSAgICBQT0RJbnRlcnZhbFRyZWU8aW50PiB0cmVlOwotICAgIFZlY3RvcjxQ
T0RJbnRlcnZhbDxpbnQ+ID4gYWRkZWRFbGVtZW50czsKLSAgICBWZWN0b3I8UE9ESW50ZXJ2YWw8
aW50PiA+IHJlbW92ZWRFbGVtZW50czsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHRyZWVTaXpl
OyBpKyspIHsKLSAgICAgICAgaW50IGxlZnQgPSBuZXh0UmFuZG9tKG1heGltdW1WYWx1ZSk7Ci0g
ICAgICAgIGludCBsZW5ndGggPSBuZXh0UmFuZG9tKG1heGltdW1WYWx1ZSk7Ci0gICAgICAgIFBP
REludGVydmFsPGludD4gaW50ZXJ2YWwobGVmdCwgbGVmdCArIGxlbmd0aCk7Ci0gICAgICAgIHRy
ZWUuYWRkKGludGVydmFsKTsKLSNpZmRlZiBERUJVR19JTlNFUlRJT05fQU5EX0RFTEVUSU9OX1RF
U1QKLSAgICAgICAgTE9HX0VSUk9SKCIqKiogQWRkaW5nIGVsZW1lbnQgJXMiLCB2YWx1ZVRvU3Ry
aW5nKGludGVydmFsKS5hc2NpaSgpLmRhdGEoKSk7Ci0jZW5kaWYKLSAgICAgICAgYWRkZWRFbGVt
ZW50cy5hcHBlbmQoaW50ZXJ2YWwpOwotICAgIH0KLSAgICAvLyBDaHVybiB0aGUgdHJlZSdzIGNv
bnRlbnRzLgotICAgIC8vIEZpcnN0IHJlbW92ZSBoYWxmIG9mIHRoZSBlbGVtZW50cyBpbiByYW5k
b20gb3JkZXIuCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0cmVlU2l6ZSAvIDI7IGkrKykgewot
ICAgICAgICBpbnQgaW5kZXggPSBuZXh0UmFuZG9tKGFkZGVkRWxlbWVudHMuc2l6ZSgpKTsKLSNp
ZmRlZiBERUJVR19JTlNFUlRJT05fQU5EX0RFTEVUSU9OX1RFU1QKLSAgICAgICAgTE9HX0VSUk9S
KCIqKiogUmVtb3ZpbmcgZWxlbWVudCAlcyIsIHZhbHVlVG9TdHJpbmcoYWRkZWRFbGVtZW50c1tp
bmRleF0pLmFzY2lpKCkuZGF0YSgpKTsKLSNlbmRpZgotICAgICAgICBBU1NFUlRfVFJVRSh0cmVl
LmNvbnRhaW5zKGFkZGVkRWxlbWVudHNbaW5kZXhdKSkgPDwgIlRlc3QgZmFpbGVkIGZvciBzZWVk
ICIgPDwgc2VlZDsKLSAgICAgICAgdHJlZS5yZW1vdmUoYWRkZWRFbGVtZW50c1tpbmRleF0pOwot
ICAgICAgICByZW1vdmVkRWxlbWVudHMuYXBwZW5kKGFkZGVkRWxlbWVudHNbaW5kZXhdKTsKLSAg
ICAgICAgYWRkZWRFbGVtZW50cy5yZW1vdmUoaW5kZXgpOwotICAgICAgICBBU1NFUlRfVFJVRSh0
cmVlLmNoZWNrSW52YXJpYW50cygpKSA8PCAiVGVzdCBmYWlsZWQgZm9yIHNlZWQgIiA8PCBzZWVk
OwotICAgIH0KLSAgICAvLyBOb3cgcmFuZG9tbHkgYWRkIG9yIHJlbW92ZSBlbGVtZW50cy4KLSAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDIgKiB0cmVlU2l6ZTsgaSsrKSB7Ci0gICAgICAgIGJvb2wg
YWRkID0gZmFsc2U7Ci0gICAgICAgIGlmICghYWRkZWRFbGVtZW50cy5zaXplKCkpCi0gICAgICAg
ICAgICBhZGQgPSB0cnVlOwotICAgICAgICBlbHNlIGlmICghcmVtb3ZlZEVsZW1lbnRzLnNpemUo
KSkKLSAgICAgICAgICAgIGFkZCA9IGZhbHNlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBh
ZGQgPSAobmV4dFJhbmRvbSgyKSA9PSAxKTsKLSAgICAgICAgaWYgKGFkZCkgewotICAgICAgICAg
ICAgaW50IGluZGV4ID0gbmV4dFJhbmRvbShyZW1vdmVkRWxlbWVudHMuc2l6ZSgpKTsKLSNpZmRl
ZiBERUJVR19JTlNFUlRJT05fQU5EX0RFTEVUSU9OX1RFU1QKLSAgICAgICAgICAgIExPR19FUlJP
UigiKioqIEFkZGluZyBlbGVtZW50ICVzIiwgdmFsdWVUb1N0cmluZyhyZW1vdmVkRWxlbWVudHNb
aW5kZXhdKS5hc2NpaSgpLmRhdGEoKSk7Ci0jZW5kaWYKLSAgICAgICAgICAgIHRyZWUuYWRkKHJl
bW92ZWRFbGVtZW50c1tpbmRleF0pOwotICAgICAgICAgICAgYWRkZWRFbGVtZW50cy5hcHBlbmQo
cmVtb3ZlZEVsZW1lbnRzW2luZGV4XSk7Ci0gICAgICAgICAgICByZW1vdmVkRWxlbWVudHMucmVt
b3ZlKGluZGV4KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGludCBpbmRleCA9IG5l
eHRSYW5kb20oYWRkZWRFbGVtZW50cy5zaXplKCkpOwotI2lmZGVmIERFQlVHX0lOU0VSVElPTl9B
TkRfREVMRVRJT05fVEVTVAotICAgICAgICAgICAgTE9HX0VSUk9SKCIqKiogUmVtb3ZpbmcgZWxl
bWVudCAlcyIsIHZhbHVlVG9TdHJpbmcoYWRkZWRFbGVtZW50c1tpbmRleF0pLmFzY2lpKCkuZGF0
YSgpKTsKLSNlbmRpZgotICAgICAgICAgICAgQVNTRVJUX1RSVUUodHJlZS5jb250YWlucyhhZGRl
ZEVsZW1lbnRzW2luZGV4XSkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7Ci0g
ICAgICAgICAgICBBU1NFUlRfVFJVRSh0cmVlLnJlbW92ZShhZGRlZEVsZW1lbnRzW2luZGV4XSkp
IDw8ICJUZXN0IGZhaWxlZCBmb3Igc2VlZCAiIDw8IHNlZWQ7Ci0gICAgICAgICAgICByZW1vdmVk
RWxlbWVudHMuYXBwZW5kKGFkZGVkRWxlbWVudHNbaW5kZXhdKTsKLSAgICAgICAgICAgIGFkZGVk
RWxlbWVudHMucmVtb3ZlKGluZGV4KTsKLSAgICAgICAgfQotICAgICAgICBBU1NFUlRfVFJVRSh0
cmVlLmNoZWNrSW52YXJpYW50cygpKSA8PCAiVGVzdCBmYWlsZWQgZm9yIHNlZWQgIiA8PCBzZWVk
OwotICAgIH0KLX0KLQotfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0KLVRFU1QoUE9ESW50ZXJ2
YWxUcmVlVGVzdCwgUmFuZG9tRGVsZXRpb25BbmRJbnNlcnRpb25SZWdyZXNzaW9uVGVzdDEpCi17
Ci0gICAgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KDEzOTcyLCAxMDApOwotfQotCi1URVNUKFBP
REludGVydmFsVHJlZVRlc3QsIFJhbmRvbURlbGV0aW9uQW5kSW5zZXJ0aW9uUmVncmVzc2lvblRl
c3QyKQotewotICAgIEluc2VydGlvbkFuZERlbGV0aW9uVGVzdCgxMjgzMzgyMTEzLCAxMCk7Ci19
Ci0KLVRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgUmFuZG9tRGVsZXRpb25BbmRJbnNlcnRpb25S
ZWdyZXNzaW9uVGVzdDMpCi17Ci0gICAgLy8gVGhpcyBpcyB0aGUgc2VxdWVuY2Ugb2YgaW5zZXJ0
aW9ucyBhbmQgZGVsZXRpb25zIHRoYXQgdHJpZ2dlcmVkCi0gICAgLy8gdGhlIGZhaWx1cmUgaW4g
UmFuZG9tRGVsZXRpb25BbmRJbnNlcnRpb25SZWdyZXNzaW9uVGVzdDIuCi0gICAgUE9ESW50ZXJ2
YWxUcmVlPGludD4gdHJlZTsKLSAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKDAsIDUp
KTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAgICB0cmVlLmFk
ZCh0cmVlLmNyZWF0ZUludGVydmFsKDQsIDUpKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNr
SW52YXJpYW50cygpKTsKLSAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKDgsIDkpKTsK
LSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAgICB0cmVlLmFkZCh0
cmVlLmNyZWF0ZUludGVydmFsKDEsIDQpKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52
YXJpYW50cygpKTsKLSAgICB0cmVlLmFkZCh0cmVlLmNyZWF0ZUludGVydmFsKDMsIDUpKTsKLSAg
ICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAgICB0cmVlLmFkZCh0cmVl
LmNyZWF0ZUludGVydmFsKDQsIDEyKSk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFy
aWFudHMoKSk7Ci0gICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJbnRlcnZhbCgwLCAyKSk7Ci0gICAg
QVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgdHJlZS5hZGQodHJlZS5j
cmVhdGVJbnRlcnZhbCgwLCAyKSk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFu
dHMoKSk7Ci0gICAgdHJlZS5hZGQodHJlZS5jcmVhdGVJbnRlcnZhbCg5LCAxMykpOwotICAgIEFT
U0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotICAgIHRyZWUuYWRkKHRyZWUuY3Jl
YXRlSW50ZXJ2YWwoMCwgMSkpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRz
KCkpOwotICAgIHRyZWUucmVtb3ZlKHRyZWUuY3JlYXRlSW50ZXJ2YWwoMCwgMikpOwotICAgIEFT
U0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotICAgIHRyZWUucmVtb3ZlKHRyZWUu
Y3JlYXRlSW50ZXJ2YWwoOSwgMTMpKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJp
YW50cygpKTsKLSAgICB0cmVlLnJlbW92ZSh0cmVlLmNyZWF0ZUludGVydmFsKDAsIDIpKTsKLSAg
ICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAgICB0cmVlLnJlbW92ZSh0
cmVlLmNyZWF0ZUludGVydmFsKDAsIDEpKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52
YXJpYW50cygpKTsKLSAgICB0cmVlLnJlbW92ZSh0cmVlLmNyZWF0ZUludGVydmFsKDQsIDUpKTsK
LSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAgICB0cmVlLnJlbW92
ZSh0cmVlLmNyZWF0ZUludGVydmFsKDQsIDEyKSk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVj
a0ludmFyaWFudHMoKSk7Ci19Ci0KLVRFU1QoUE9ESW50ZXJ2YWxUcmVlVGVzdCwgUmFuZG9tRGVs
ZXRpb25BbmRJbnNlcnRpb25SZWdyZXNzaW9uVGVzdDQpCi17Ci0gICAgLy8gRXZlbiBmdXJ0aGVy
IHJlZHVjZWQgdGVzdCBjYXNlIGZvciBSYW5kb21EZWxldGlvbkFuZEluc2VydGlvblJlZ3Jlc3Np
b25UZXN0My4KLSAgICBQT0RJbnRlcnZhbFRyZWU8aW50PiB0cmVlOwotICAgIHRyZWUuYWRkKHRy
ZWUuY3JlYXRlSW50ZXJ2YWwoMCwgNSkpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZh
cmlhbnRzKCkpOwotICAgIHRyZWUuYWRkKHRyZWUuY3JlYXRlSW50ZXJ2YWwoOCwgOSkpOwotICAg
IEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotICAgIHRyZWUuYWRkKHRyZWUu
Y3JlYXRlSW50ZXJ2YWwoMSwgNCkpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlh
bnRzKCkpOwotICAgIHRyZWUuYWRkKHRyZWUuY3JlYXRlSW50ZXJ2YWwoMywgNSkpOwotICAgIEFT
U0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotICAgIHRyZWUuYWRkKHRyZWUuY3Jl
YXRlSW50ZXJ2YWwoNCwgMTIpKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50
cygpKTsKLSAgICB0cmVlLnJlbW92ZSh0cmVlLmNyZWF0ZUludGVydmFsKDQsIDEyKSk7Ci0gICAg
QVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci19Ci0KLVRFU1QoUE9ESW50ZXJ2
YWxUcmVlVGVzdCwgVGVzdFJhbmRvbURlbGV0aW9uQW5kSW5zZXJ0aW9uKQotewotICAgIEluc2Vy
dGlvbkFuZERlbGV0aW9uVGVzdChnZW5lcmF0ZVNlZWQoKSwgMTAwMCk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QT0RSZWRC
bGFja1RyZWVUZXN0LmNwcCBiL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QT0RSZWRCbGFja1RyZWVU
ZXN0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE5OTVhOS4uMDAwMDAwMAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUE9EUmVkQmxhY2tUcmVlVGVzdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIFRlc3RzIGZvciB0aGUgcmVkLWJs
YWNrIHRyZWUgY2xhc3MuCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIlBPRFJl
ZEJsYWNrVHJlZS5oIgotCi0jaW5jbHVkZSAiVHJlZVRlc3RIZWxwZXJzLmgiCi0jaW5jbHVkZSA8
Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdXNpbmcgVHJlZVRlc3RIZWxwZXJzOjpnZW5lcmF0ZVNlZWQ7Ci11c2luZyBUcmVl
VGVzdEhlbHBlcnM6OmluaXRSYW5kb207Ci11c2luZyBUcmVlVGVzdEhlbHBlcnM6Om5leHRSYW5k
b207Ci0KLVRFU1QoUE9EUmVkQmxhY2tUcmVlVGVzdCwgVGVzdFNpbmdsZUVsZW1lbnRJbnNlcnRp
b24pCi17Ci0gICAgUE9EUmVkQmxhY2tUcmVlPGludD4gdHJlZTsKLSAgICB0cmVlLmFkZCg1KTsK
LSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAgICBFWFBFQ1RfVFJV
RSh0cmVlLmNvbnRhaW5zKDUpKTsKLX0KLQotVEVTVChQT0RSZWRCbGFja1RyZWVUZXN0LCBUZXN0
TXVsdGlwbGVFbGVtZW50SW5zZXJ0aW9uKQotewotICAgIFBPRFJlZEJsYWNrVHJlZTxpbnQ+IHRy
ZWU7Ci0gICAgdHJlZS5hZGQoNCk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFu
dHMoKSk7Ci0gICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlucyg0KSk7Ci0gICAgdHJlZS5hZGQo
Myk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgRVhQRUNU
X1RSVUUodHJlZS5jb250YWlucygzKSk7Ci0gICAgdHJlZS5hZGQoNSk7Ci0gICAgQVNTRVJUX1RS
VUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlu
cyg1KSk7Ci0gICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlucyg0KSk7Ci0gICAgRVhQRUNUX1RS
VUUodHJlZS5jb250YWlucygzKSk7Ci19Ci0KLVRFU1QoUE9EUmVkQmxhY2tUcmVlVGVzdCwgVGVz
dER1cGxpY2F0ZUVsZW1lbnRJbnNlcnRpb24pCi17Ci0gICAgUE9EUmVkQmxhY2tUcmVlPGludD4g
dHJlZTsKLSAgICB0cmVlLmFkZCgzKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJp
YW50cygpKTsKLSAgICB0cmVlLmFkZCgzKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52
YXJpYW50cygpKTsKLSAgICB0cmVlLmFkZCgzKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNr
SW52YXJpYW50cygpKTsKLSAgICBFWFBFQ1RfRVEoMywgdHJlZS5zaXplKCkpOwotICAgIEVYUEVD
VF9UUlVFKHRyZWUuY29udGFpbnMoMykpOwotfQotCi1URVNUKFBPRFJlZEJsYWNrVHJlZVRlc3Qs
IFRlc3RTaW5nbGVFbGVtZW50SW5zZXJ0aW9uQW5kRGVsZXRpb24pCi17Ci0gICAgUE9EUmVkQmxh
Y2tUcmVlPGludD4gdHJlZTsKLSAgICB0cmVlLmFkZCg1KTsKLSAgICBBU1NFUlRfVFJVRSh0cmVl
LmNoZWNrSW52YXJpYW50cygpKTsKLSAgICBFWFBFQ1RfVFJVRSh0cmVlLmNvbnRhaW5zKDUpKTsK
LSAgICB0cmVlLnJlbW92ZSg1KTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50
cygpKTsKLSAgICBFWFBFQ1RfRkFMU0UodHJlZS5jb250YWlucyg1KSk7Ci19Ci0KLVRFU1QoUE9E
UmVkQmxhY2tUcmVlVGVzdCwgVGVzdE11bHRpcGxlRWxlbWVudEluc2VydGlvbkFuZERlbGV0aW9u
KQotewotICAgIFBPRFJlZEJsYWNrVHJlZTxpbnQ+IHRyZWU7Ci0gICAgdHJlZS5hZGQoNCk7Ci0g
ICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgRVhQRUNUX1RSVUUo
dHJlZS5jb250YWlucyg0KSk7Ci0gICAgdHJlZS5hZGQoMyk7Ci0gICAgQVNTRVJUX1RSVUUodHJl
ZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlucygzKSk7
Ci0gICAgdHJlZS5hZGQoNSk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMo
KSk7Ci0gICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlucyg1KSk7Ci0gICAgRVhQRUNUX1RSVUUo
dHJlZS5jb250YWlucyg0KSk7Ci0gICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlucygzKSk7Ci0g
ICAgdHJlZS5yZW1vdmUoNCk7Ci0gICAgQVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMo
KSk7Ci0gICAgRVhQRUNUX1RSVUUodHJlZS5jb250YWlucygzKSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KHRyZWUuY29udGFpbnMoNCkpOwotICAgIEVYUEVDVF9UUlVFKHRyZWUuY29udGFpbnMoNSkpOwot
ICAgIHRyZWUucmVtb3ZlKDUpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRz
KCkpOwotICAgIEVYUEVDVF9UUlVFKHRyZWUuY29udGFpbnMoMykpOwotICAgIEVYUEVDVF9GQUxT
RSh0cmVlLmNvbnRhaW5zKDQpKTsKLSAgICBFWFBFQ1RfRkFMU0UodHJlZS5jb250YWlucyg1KSk7
Ci0gICAgRVhQRUNUX0VRKDEsIHRyZWUuc2l6ZSgpKTsKLX0KLQotVEVTVChQT0RSZWRCbGFja1Ry
ZWVUZXN0LCBUZXN0RHVwbGljYXRlRWxlbWVudEluc2VydGlvbkFuZERlbGV0aW9uKQotewotICAg
IFBPRFJlZEJsYWNrVHJlZTxpbnQ+IHRyZWU7Ci0gICAgdHJlZS5hZGQoMyk7Ci0gICAgQVNTRVJU
X1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgdHJlZS5hZGQoMyk7Ci0gICAgQVNT
RVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgdHJlZS5hZGQoMyk7Ci0gICAg
QVNTRVJUX1RSVUUodHJlZS5jaGVja0ludmFyaWFudHMoKSk7Ci0gICAgRVhQRUNUX0VRKDMsIHRy
ZWUuc2l6ZSgpKTsKLSAgICBFWFBFQ1RfVFJVRSh0cmVlLmNvbnRhaW5zKDMpKTsKLSAgICB0cmVl
LnJlbW92ZSgzKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKTsKLSAg
ICB0cmVlLnJlbW92ZSgzKTsKLSAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygp
KTsKLSAgICBFWFBFQ1RfRVEoMSwgdHJlZS5zaXplKCkpOwotICAgIEVYUEVDVF9UUlVFKHRyZWUu
Y29udGFpbnMoMykpOwotICAgIHRyZWUucmVtb3ZlKDMpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUu
Y2hlY2tJbnZhcmlhbnRzKCkpOwotICAgIEVYUEVDVF9FUSgwLCB0cmVlLnNpemUoKSk7Ci0gICAg
RVhQRUNUX0ZBTFNFKHRyZWUuY29udGFpbnMoMykpOwotfQotCi1URVNUKFBPRFJlZEJsYWNrVHJl
ZVRlc3QsIEZhaWxpbmdJbnNlcnRpb25SZWdyZXNzaW9uVGVzdDEpCi17Ci0gICAgLy8gVGhlc2Ug
bnVtYmVycyBjYW1lIGZyb20gYSBwcmV2aW91c2x5LWZhaWxpbmcgcmFuZG9taXplZCB0ZXN0IHJ1
bi4KLSAgICBQT0RSZWRCbGFja1RyZWU8aW50PiB0cmVlOwotICAgIHRyZWUuYWRkKDUxMTMpOwot
ICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotICAgIHRyZWUuYWRkKDQ1
MTcpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotICAgIHRyZWUu
YWRkKDMzNzMpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpOwotICAg
IHRyZWUuYWRkKDkzMDcpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkp
OwotICAgIHRyZWUuYWRkKDcwNzcpOwotICAgIEFTU0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlh
bnRzKCkpOwotfQotCi1uYW1lc3BhY2Ugewotdm9pZCBJbnNlcnRpb25BbmREZWxldGlvblRlc3Qo
Y29uc3QgaW50MzJfdCBzZWVkLCBjb25zdCBpbnQgdHJlZVNpemUpCi17Ci0gICAgaW5pdFJhbmRv
bShzZWVkKTsKLSAgICBjb25zdCBpbnQgbWF4aW11bVZhbHVlID0gdHJlZVNpemU7Ci0gICAgLy8g
QnVpbGQgdGhlIHRyZWUuCi0gICAgUE9EUmVkQmxhY2tUcmVlPGludD4gdHJlZTsKLSAgICBWZWN0
b3I8aW50PiB2YWx1ZXM7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0cmVlU2l6ZTsgaSsrKSB7
Ci0gICAgICAgIGludCB2YWx1ZSA9IG5leHRSYW5kb20obWF4aW11bVZhbHVlKTsKLSAgICAgICAg
dHJlZS5hZGQodmFsdWUpOwotICAgICAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50
cygpKSA8PCAiVGVzdCBmYWlsZWQgZm9yIHNlZWQgIiA8PCBzZWVkOwotICAgICAgICB2YWx1ZXMu
YXBwZW5kKHZhbHVlKTsKLSAgICB9Ci0gICAgLy8gQ2h1cm4gdGhlIHRyZWUncyBjb250ZW50cy4K
LSAgICBmb3IgKGludCBpID0gMDsgaSA8IHRyZWVTaXplOyBpKyspIHsKLSAgICAgICAgLy8gUGlj
ayBhIHJhbmRvbSB2YWx1ZSB0byByZW1vdmUuCi0gICAgICAgIGludCBpbmRleCA9IG5leHRSYW5k
b20odHJlZVNpemUpOwotICAgICAgICBpbnQgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdOwotICAgICAg
ICAvLyBSZW1vdmUgdGhpcyB2YWx1ZS4KLSAgICAgICAgdHJlZS5yZW1vdmUodmFsdWUpOwotICAg
ICAgICBBU1NFUlRfVFJVRSh0cmVlLmNoZWNrSW52YXJpYW50cygpKSA8PCAiVGVzdCBmYWlsZWQg
Zm9yIHNlZWQgIiA8PCBzZWVkOwotICAgICAgICAvLyBSZXBsYWNlIGl0IHdpdGggYSBuZXcgb25l
LgotICAgICAgICB2YWx1ZSA9IG5leHRSYW5kb20obWF4aW11bVZhbHVlKTsKLSAgICAgICAgdmFs
dWVzW2luZGV4XSA9IHZhbHVlOwotICAgICAgICB0cmVlLmFkZCh2YWx1ZSk7Ci0gICAgICAgIEFT
U0VSVF9UUlVFKHRyZWUuY2hlY2tJbnZhcmlhbnRzKCkpIDw8ICJUZXN0IGZhaWxlZCBmb3Igc2Vl
ZCAiIDw8IHNlZWQ7Ci0gICAgfQotfQotfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0KLVRFU1Qo
UE9EUmVkQmxhY2tUcmVlVGVzdCwgUmFuZG9tRGVsZXRpb25BbmRJbnNlcnRpb25SZWdyZXNzaW9u
VGVzdDEpCi17Ci0gICAgSW5zZXJ0aW9uQW5kRGVsZXRpb25UZXN0KDEyMzExLCAxMDApOwotfQot
Ci1URVNUKFBPRFJlZEJsYWNrVHJlZVRlc3QsIFRlc3RSYW5kb21EZWxldGlvbkFuZEluc2VydGlv
bikKLXsKLSAgICBJbnNlcnRpb25BbmREZWxldGlvblRlc3QoZ2VuZXJhdGVTZWVkKCksIDEwMCk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9UcmVlVGVzdEhlbHBlcnMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVU
ZXN0SGVscGVycy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwM2I4NzEuLjAw
MDAwMDAKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVUZXN0SGVscGVycy5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaW5jbHVkZSAiVHJlZVRlc3RIZWxwZXJzLmgiCi0KLSNpbmNsdWRlIDxjc3RkbGliPgotI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3Bh
Y2UgVHJlZVRlc3RIZWxwZXJzIHsKLQotaW50MzJfdCBnZW5lcmF0ZVNlZWQoKQotewotICAgIC8v
IEEgc2VlZCBvZiAxIGhhcyB0aGUgc3BlY2lhbCBiZWhhdmlvciBvZiByZXNldHRpbmcgdGhlIHJh
bmRvbQotICAgIC8vIG51bWJlciBnZW5lcmF0b3IuIEFzc3VtZSB0aGF0IGlmIHdlIGNhbGwgdGhp
cyByb3V0aW5lIHRoYXQgd2UKLSAgICAvLyBkb24ndCB3YW50IHRoaXMgYmVoYXZpb3IuCi0gICAg
aW50MzJfdCBzZWVkOwotICAgIGRvIHsKLSAgICAgICAgc2VlZCA9IHN0YXRpY19jYXN0PGludDMy
X3Q+KGN1cnJlbnRUaW1lKCkpOwotICAgIH0gd2hpbGUgKHNlZWQgPD0gMSk7Ci0gICAgcmV0dXJu
IHNlZWQ7Ci19Ci0KLXZvaWQgaW5pdFJhbmRvbShjb25zdCBpbnQzMl90IHNlZWQpCi17Ci0gICAg
c3JhbmQoc2VlZCk7Ci19Ci0KLWludDMyX3QgbmV4dFJhbmRvbShjb25zdCBpbnQzMl90IG1heGlt
dW1WYWx1ZSkKLXsKLSAgICAvLyByYW5kX3IgaXMgbm90IGF2YWlsYWJsZSBvbiBXaW5kb3dzCi0g
ICAgcmV0dXJuIHJhbmQoKSAlIG1heGltdW1WYWx1ZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgVHJl
ZVRlc3RIZWxwZXJzCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvVHJlZVRlc3RIZWxwZXJzLmggYi9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
VHJlZVRlc3RIZWxwZXJzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmMDdiMmEu
LjAwMDAwMDAKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RyZWVUZXN0SGVscGVycy5oCisr
KyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIFNpbXBsZSBwc2V1ZG9yYW5k
b20gbnVtYmVyIGdlbmVyYXRvciBoZWxwZXIgZnVuY3Rpb25zLCB1c2VkIGJ5IHRoZQotLy8gcmVk
LWJsYWNrIGFuZCBpbnRlcnZhbCB0cmVlIHRlc3RzLgotLy8KLS8vIFRoZXNlIGFyZSAqKm5vdCoq
IHRocmVhZCBzYWZlIQotCi0jaWZuZGVmIFRyZWVUZXN0SGVscGVyc19oCi0jZGVmaW5lIFRyZWVU
ZXN0SGVscGVyc19oCi0KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotbmFtZXNwYWNlIFRyZWVUZXN0SGVscGVycyB7Ci0KLS8vIEdlbmVyYXRlcyBhIHNlZWQgdmFs
dWUgdG8gYmUgcGFzc2VkIHRvIGluaXRSYW5kb20oKS4KLWludDMyX3QgZ2VuZXJhdGVTZWVkKCk7
Ci0KLS8vIEluaXRpYWxpemVzIHRoZSBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3Igd2l0
aCBhIHNwZWNpZmljIHNlZWQuCi12b2lkIGluaXRSYW5kb20oY29uc3QgaW50MzJfdCBzZWVkKTsK
LQotLy8gUHJvZHVjZXMgdGhlIG5leHQgcHNldWRvLXJhbmRvbSBudW1iZXIgaW4gdGhlIHNlcXVl
bmNlLCBpbiB0aGUKLS8vIHJhbmdlIGZyb20gWzAuLm1heGltdW1WYWx1ZSkuIE5lZ2F0aXZlIG51
bWJlcnMgYXJlIG5vdCBhbGxvd2VkIGFuZCB3aWxsCi0vLyBwcm9kdWNlIHVuZGVmaW5lZCByZXN1
bHRzLgotaW50MzJfdCBuZXh0UmFuZG9tKGNvbnN0IGludDMyX3QgbWF4aW11bVZhbHVlKTsKLQot
fSAvLyBuYW1lc3BhY2UgVHJlZVRlc3RIZWxwZXJzCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBUcmVlVGVzdEhlbHBlcnNfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DTWFr
ZUxpc3RzRWZsLnR4dCBiL1dlYktpdC9lZmwvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggY2ZmMTgy
Mi4uOTczNGI4OCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DTWFrZUxpc3RzRWZsLnR4dAorKysg
Yi9XZWJLaXQvZWZsL0NNYWtlTGlzdHNFZmwudHh0CkBAIC03MCw3ICs3MCw2IEBAIElGIChFTkFC
TEVfR0xJQl9TVVBQT1JUKQogICBMSVNUKEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICR7R2RrX0lOQ0xVREVfRElSU30KICAgICAke0dsaWJfSU5DTFVERV9ESVJTfQotICAg
ICR7SkFWQVNDUklQVENPUkVfRElSfS93dGYvZ29iamVjdAogICApCiAgIExJU1QoQVBQRU5EIFdl
YktpdF9MSUJSQVJJRVMKICAgICAke0dsaWJfTElCUkFSSUVTfQpAQCAtMTU5LDYgKzE1OCw1NCBA
QCBBRERfQ1VTVE9NX0NPTU1BTkQoCiAgIFZFUkJBVElNCiApCiAKK1NFVChFV2ViTGF1bmNoZXJf
U09VUkNFUworICAgIGVmbC9EZWZhdWx0VGhlbWUvZGVmYXVsdC5lZGoKKyAgICBlZmwvRVdlYkxh
dW5jaGVyL21haW4uYworKQorCitTRVQoRVdlYkxhdW5jaGVyX0xJQlJBUklFUworICAgICR7SmF2
YVNjcmlwdENvcmVfTElCUkFSWV9OQU1FfQorICAgICR7V2ViQ29yZV9MSUJSQVJZX05BTUV9Cisg
ICAgJHtXZWJLaXRfTElCUkFSWV9OQU1FfQorICAgICR7Q2Fpcm9fTElCUkFSSUVTfQorICAgICR7
RUNPUkVfWF9MSUJSQVJJRVN9CisgICAgJHtFREpFX0xJQlJBUklFU30KKyAgICAke0VGTERFUFNf
TElCUkFSSUVTfQorICAgICR7RVZBU19MSUJSQVJJRVN9CisgICAgJHtMSUJYTUwyX0xJQlJBUklF
U30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJQlJBUklFU30KKykK
KworU0VUKEVXZWJMYXVuY2hlcl9MSU5LX0ZMQUdTCisgICAgJHtFQ09SRV9YX0xERkxBR1N9Cisg
ICAgJHtFREpFX0xERkxBR1N9CisgICAgJHtFRkxERVBTX0xERkxBR1N9CisgICAgJHtFVkFTX0xE
RkxBR1N9CispCisKK0lGIChFTkFCTEVfR0xJQl9TVVBQT1JUKQorICBMSVNUKEFQUEVORCBFV2Vi
TGF1bmNoZXJfTElCUkFSSUVTCisgICAgJHtHZGtfTElCUkFSSUVTfQorICAgICR7R2xpYl9MSUJS
QVJJRVN9CisgICAgJHtHdGhyZWFkX0xJQlJBUklFU30KKyAgKQorRU5ESUYgKCkKKworSUYgKFdU
Rl9VU0VfU09VUCkKKyAgTElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJQlJBUklFUyAke0xJQlNP
VVAyNF9MSUJSQVJJRVN9KQorICBMSVNUKEFQUEVORCBFV2ViTGF1bmNoZXJfTElOS19GTEFHUyAk
e0xJQlNPVVAyNF9MREZMQUdTfSkKK0VORElGICgpCisKK0lGIChXVEZfVVNFX0NVUkwpCisgIExJ
U1QoQVBQRU5EIEVXZWJMYXVuY2hlcl9MSUJSQVJJRVMgJHtDVVJMX0xJQlJBUklFU30pCisgIExJ
U1QoQVBQRU5EIEVXZWJMYXVuY2hlcl9MSU5LX0ZMQUdTICR7Q1VSTF9MREZMQUdTfSkKK0VORElG
ICgpCisKK0FERF9FWEVDVVRBQkxFKC4uL1Byb2dyYW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVu
Y2hlcl9TT1VSQ0VTfSkKK1RBUkdFVF9MSU5LX0xJQlJBUklFUyguLi9Qcm9ncmFtcy9FV2ViTGF1
bmNoZXIgJHtFV2ViTGF1bmNoZXJfTElCUkFSSUVTfSkKK0FERF9UQVJHRVRfUFJPUEVSVElFUygu
Li9Qcm9ncmFtcy9FV2ViTGF1bmNoZXIgTElOS19GTEFHUyAiJHtFV2ViTGF1bmNoZXJfTElOS19G
TEFHU30iKQorCiBJRiAoU0hBUkVEX0NPUkUpCiAgICAgU0VUKExJQlNfUFJJVkFURSAiLWwke1dU
Rl9MSUJSQVJZX05BTUV9IC1sJHtKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX05BTUV9IC1sJHtXZWJD
b3JlX0xJQlJBUllfTkFNRX0iKQogRUxTRSAoKQpAQCAtMTc5LDYgKzIyNiwzIEBAIExJU1QoUkVN
T1ZFX0lURU0gRVdlYktpdF9IRUFERVJTICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vZWZs
L2V3ay9ld2tfcHJpdmF0CiAKIElOU1RBTEwoRklMRVMgJHtFV2ViS2l0X0hFQURFUlN9CiAgICAg
ICAgIERFU1RJTkFUSU9OIGluY2x1ZGUvJHtXZWJLaXRfTElCUkFSWV9OQU1FfS0ke1BST0pFQ1Rf
VkVSU0lPTl9NQUpPUn0pCi0KLUlOU1RBTEwoRklMRVMgJHtXZWJLaXRfVEhFTUV9Ci0gICAgICAg
IERFU1RJTkFUSU9OIHNoYXJlLyR7V2ViS2l0X0xJQlJBUllfTkFNRX0tJHtQUk9KRUNUX1ZFUlNJ
T05fTUFKT1J9L3RoZW1lcykKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYzc5NDUxMy4uN2U5M2I5MyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsNTQgKzEs
MyBAQAotMjAxMC0wOS0wNCAgTHVjYXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVz
aW9uLm1vYmk+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4uCi0KLSAgICAgICAgW0VGTF0gTW92ZSB0ZXN0IGJyb3dzZXIgdG8gV2ViS2l0VG9vbHMgZGly
ZWN0b3J5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTIxMgotCi0gICAgICAgIEZvbGxvdyBvdGhlciBwb3J0cyBsaWtlIFFUIGFuZCBHVEsgd2hpY2gg
bW92ZWQgdGhlIHRlc3QgYnJvd3NlciB0bwotICAgICAgICBXZWJLaXRUb29scyBkaXJlY3Rvcnku
Ci0KLSAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogUmVtb3ZlIGJ1aWxkIGZvciB0ZXN0IGJy
b3dzZXIuCi0gICAgICAgICogRVdlYkxhdW5jaGVyL21haW4uYzogUmVtb3ZlZC4KLQotMjAxMC0w
OS0wMyAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5v
cmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgQWRkIE5l
dHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxheWVyIHZpb2xhdGlvbnMKLSAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMjkyCi0KLSAgICAgICAgQWRkIGNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0IHRvIEVGTCdzIEZyYW1lTG9hZGVyQ2xpZW50LgotCi0gICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgotICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToK
LSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgotCi0yMDEw
LTA5LTAzICBMdWNhcyBEZSBNYXJjaGkgIDxsdWNhcy5kZW1hcmNoaUBwcm9mdXNpb24ubW9iaT4K
LQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgW0VGTF0g
UmVncmVzc2lvbiAoNjY1MzEpIEJ1aWxkIGJyZWFrIHdpdGggR2xpYiBTdXBwb3J0Ci0gICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTAxMQotCi0gICAgICAg
IE1vdmUgR3RrVHlwZWRlZnMuaCB0byBHVHlwZWRlZnMuaCBhbmQgbGV0IGl0IGluc2lkZSBnb2Jq
ZWN0IGRpcmVjdG9yeQotICAgICAgICBzaW5jZSB3aGVuIGdsaWIgaXMgZW5hYmxlZCwgRUZMIHBv
cnQgbmVlZHMgaXQsIHRvby4KLQotICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OiBJbmNsdWRl
IGdvYmplY3QgZGlyZWN0b3J5IHRvIGZpbmQgbmV3IGhlYWRlcgotICAgICAgICBmaWxlLgotCi0y
MDEwLTA5LTAzICBMdWNhcyBEZSBNYXJjaGkgIDxsdWNhcy5kZW1hcmNoaUBwcm9mdXNpb24ubW9i
aT4KLQotICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgotCi0gICAgICAgIFtFRkxd
IEluc3RhbGwgZGVmYXVsdCB0aGVtZQotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDUxNTQKLQotICAgICAgICBTaW5jZSBhIHRoZW1lIGlzIG5lZWRlZCBp
biBvcmRlciB0byBjcmVhdGUgYSBuZXcgYnJvd3NlciwgaW5zdGFsbCB0aGUKLSAgICAgICAgZGVm
YXVsdCBvbmUgdG8gc2VydmUgYXMgZXhhbXBsZSBhbmQgZmFsbC1iYWNrLgotCi0gICAgICAgICog
Q01ha2VMaXN0c0VmbC50eHQ6Ci0KIDIwMTAtMDktMDIgIEx1Y2FzIERlIE1hcmNoaSAgPGx1Y2Fz
LmRlbWFyY2hpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8g
R29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0VXZWJMYXVuY2hlci9tYWluLmMgYi9XZWJL
aXQvZWZsL0VXZWJMYXVuY2hlci9tYWluLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYzE5NTZhMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9lZmwvRVdlYkxhdW5jaGVy
L21haW4uYwpAQCAtMCwwICsxLDg1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRU
IC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvcHlyaWdodCAoQykgMjAwOSwg
MjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcworICogQ29weXJpZ2h0IChDKSAyMDA5LCAy
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJFV2ViS2l0LmgiCisKKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUg
PEVjb3JlLmg+CisjaW5jbHVkZSA8RWNvcmVfRXZhcy5oPgorI2luY2x1ZGUgPEVjb3JlX0ZpbGUu
aD4KKyNpbmNsdWRlIDxFY29yZV9HZXRvcHQuaD4KKyNpbmNsdWRlIDxFY29yZV9YLmg+CisjaW5j
bHVkZSA8RWRqZS5oPgorI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNp
bmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5o
PgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVk
ZSA8dW5pc3RkLmg+CisKKyNkZWZpbmUgREVGQVVMVF9XSURUSCAgICAgIDgwMAorI2RlZmluZSBE
RUZBVUxUX0hFSUdIVCAgICAgNjAwCisjZGVmaW5lIERFRkFVTFRfWk9PTV9JTklUICAxLjAKKwor
I2RlZmluZSBpbmZvKGZvcm1hdCwgYXJncy4uLikgICAgICAgXAorICAgIGRvIHsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAodmVyYm9zZSkgICAgICAgICAgICAgICAg
XAorICAgICAgICAgICAgcHJpbnRmKGZvcm1hdCwgIyNhcmdzKTsgXAorICAgIH0gd2hpbGUgKDAp
CisKKyNkZWZpbmUgTUlOX1pPT01fTEVWRUwgMAorI2RlZmluZSBERUZBVUxUX1pPT01fTEVWRUwg
NQorI2RlZmluZSBNQVhfWk9PTV9MRVZFTCAxMworCitzdGF0aWMgaW50IGN1cnJlbnRab29tTGV2
ZWwgPSBERUZBVUxUX1pPT01fTEVWRUw7CisKKy8vIHRoZSB6b29tIHZhbHVlcyBhcmUgY2hvc2Vu
IHRvIGJlIGxpa2UgaW4gTW96aWxsYSBGaXJlZm94IDMKK3N0YXRpYyBpbnQgem9vbUxldmVsc1td
ID0gezMwLCA1MCwgNjcsIDgwLCA5MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEwLCAxMjAsIDEzMywgMTUwLCAxNzAsIDIw
MCwgMjQwLCAzMDB9OworCitzdGF0aWMgaW50IHZlcmJvc2UgPSAwOworCitzdGF0aWMgRWluYV9M
aXN0ICp3aW5kb3dzID0gTlVMTDsKKworc3RhdGljIGNoYXIgKnRoZW1lUGF0aCA9IE5VTEw7CisK
K3R5cGVkZWYgc3RydWN0IF9XaW5kb3dfUHJvcGVydGllcyB7CisgICAgRWluYV9Cb29sIHRvb2xi
YXJzVmlzaWJsZToxOworICAgIEVpbmFfQm9vbCBzdGF0dXNiYXJWaXNpYmxlOjE7CisgICAgRWlu
YV9Cb29sIHNjcm9sbGJhcnNWaXNpYmxlOjE7CisgICAgRWluYV9Cb29sIG1lbnViYXJWaXNpYmxl
OjE7Cit9IFdpbmRvd19Qcm9wZXJ0aWVzOworCitXaW5kb3dfUHJvcGVydGllcyB3aW5kb3dQcm9w
ZXJ0aWVzID0geyAvKiBQcmV0ZW5kIHdlIGhhdmUgdGhlbSBhbmQgdGhleSBhcmUgaW5pdGlhbGx5
IHZpc2libGUgKi8KKyAgICBFSU5BX1RSVUUsCisgICAgRUlOQV9UUlVFLAorICAgIEVJTkFfVFJV
RSwKKyAgICBFSU5BX1RSVUUKK307CisKK3N0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9u
cyA9IHsKKyAgICAiRVdlYkxhdW5jaGVyIiwKKyAgICAiJXByb2cgW29wdGlvbnNdIFt1cmxdIiwK
KyAgICAiMC4wLjEiLAorICAgICIoQykyMDA4IElOZFQgKFRoZSBOb2tpYSBUZWNobm9sb2d5IElu
c3RpdHV0ZSlcbiIKKyAgICAiKEMpMjAwOSwgMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVt
c1xuIgorICAgICIoQykyMDA5LCAyMDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MiLAorICAgICJHUEwi
LAorICAgICJUZXN0IFdlYiBCcm93c2VyIHVzaW5nIHRoZSBFbmxpZ2h0ZW5tZW50IEZvdW5kYXRp
b24gTGlicmFyaWVzIG9mIFdlYktpdCIsCisgICAgRUlOQV9UUlVFLCB7CisgICAgICAgIEVDT1JF
X0dFVE9QVF9TVE9SRV9TVFIKKyAgICAgICAgICAgICgnZScsICJlbmdpbmUiLCAiZWNvcmUtZXZh
cyBlbmdpbmUgdG8gdXNlLiIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfQ0FMTEJBQ0tfTk9BUkdT
CisgICAgICAgICAgICAoJ0UnLCAibGlzdC1lbmdpbmVzIiwgImxpc3QgZWNvcmUtZXZhcyBlbmdp
bmVzLiIsCisgICAgICAgICAgICAgZWNvcmVfZ2V0b3B0X2NhbGxiYWNrX2Vjb3JlX2V2YXNfbGlz
dF9lbmdpbmVzLCBOVUxMKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX0RFRl9CT09MCisg
ICAgICAgICAgICAoJ0YnLCAiZnVsbHNjcmVlbiIsICJmdWxsc2NyZWVuIG1vZGUuIiwgMCksCisg
ICAgICAgIEVDT1JFX0dFVE9QVF9DQUxMQkFDS19BUkdTCisgICAgICAgICAgICAoJ2cnLCAiZ2Vv
bWV0cnkiLCAiZ2VvbWV0cnkgdG8gdXNlIGluIHg6eTp3OmggZm9ybS4iLCAiWDpZOlc6SCIsCisg
ICAgICAgICAgICAgZWNvcmVfZ2V0b3B0X2NhbGxiYWNrX2dlb21ldHJ5X3BhcnNlLCBOVUxMKSwK
KyAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX1NUUgorICAgICAgICAgICAgKCd0JywgInRoZW1l
IiwgInBhdGggdG8gcmVhZCB0aGUgdGhlbWUgZmlsZSBmcm9tLiIpLAorICAgICAgICBFQ09SRV9H
RVRPUFRfU1RPUkVfU1RSCisgICAgICAgICAgICAoJ1UnLCAidXNlci1hZ2VudCIsICJjdXN0b20g
dXNlciBhZ2VudCBzdHJpbmcgdG8gdXNlLiIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfU1RPUkVf
REVGX0JPT0wKKyAgICAgICAgICAgICgnUycsICJzdWRvLXdvcmthcm91bmQiLCAiV29ya2Fyb3Vu
ZCBtb2RlIGZvciBtYWtpbmcgRmxhc2ggd29yayB3aXRoIHN1ZG8uIiwgMCksCisgICAgICAgIEVD
T1JFX0dFVE9QVF9DT1VOVAorICAgICAgICAgICAgKCd2JywgInZlcmJvc2UiLCAiYmUgbW9yZSB2
ZXJib3NlLiIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkVSU0lPTgorICAgICAgICAgICAgKCdW
JywgInZlcnNpb24iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0NPUFlSSUdIVAorICAgICAgICAg
ICAgKCdSJywgImNvcHlyaWdodCIpLAorICAgICAgICBFQ09SRV9HRVRPUFRfTElDRU5TRQorICAg
ICAgICAgICAgKCdMJywgImxpY2Vuc2UiKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX0hFTFAKKyAg
ICAgICAgICAgICgnaCcsICJoZWxwIiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9TRU5USU5FTAor
ICAgIH0KK307CisKK3R5cGVkZWYgc3RydWN0IF9WaWV3cG9ydCB7CisgICAgaW50IHc7CisgICAg
aW50IGg7CisgICAgZmxvYXQgaW5pdFNjYWxlOworICAgIGZsb2F0IG1pblNjYWxlOworICAgIGZs
b2F0IG1heFNjYWxlOworICAgIEVpbmFfQm9vbCB1c2VyU2NhbGFibGU7Cit9IFZpZXdwb3J0Owor
Cit0eXBlZGVmIHN0cnVjdCBfRUxhdW5jaGVyIHsKKyAgICBFY29yZV9FdmFzICplZTsKKyAgICBF
dmFzICpldmFzOworICAgIEV2YXNfT2JqZWN0ICpiZzsKKyAgICBFdmFzX09iamVjdCAqYnJvd3Nl
cjsKKyAgICBjb25zdCBjaGFyICp0aGVtZTsKKyAgICBjb25zdCBjaGFyICp1c2VyQWdlbnQ7Cisg
ICAgVmlld3BvcnQgdmlld3BvcnQ7Cit9IEVMYXVuY2hlcjsKKworc3RhdGljIHZvaWQgYnJvd3Nl
ckRlc3Ryb3koRWNvcmVfRXZhcyAqZWUpOworc3RhdGljIHZvaWQgY2xvc2VXaW5kb3coRWNvcmVf
RXZhcyAqZWUpOworc3RhdGljIGludCBicm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29u
c3QgY2hhciAqdGhlbWUsIGNvbnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZWN0YW5nbGUgZ2Vv
bWV0cnksIGNvbnN0IGNoYXIgKmVuZ2luZSwgdW5zaWduZWQgY2hhciBpc0Z1bGxzY3JlZW4pOwor
CitzdGF0aWMgdm9pZAorcHJpbnRfaGlzdG9yeShFaW5hX0xpc3QgKmxpc3QpCit7CisgICAgRWlu
YV9MaXN0ICpsOworICAgIHZvaWQgKmQ7CisKKyAgICBpZiAoIXZlcmJvc2UpCisgICAgICAgcmV0
dXJuOworCisgICAgcHJpbnRmKCJTZXNzaW9uIGhpc3RvcnkgY29udGFpbnM6XG4iKTsKKworICAg
IEVJTkFfTElTVF9GT1JFQUNIKGxpc3QsIGwsIGQpIHsKKyAgICAgICBFd2tfSGlzdG9yeV9JdGVt
ICppdGVtID0gKEV3a19IaXN0b3J5X0l0ZW0qKWQ7CisgICAgICAgY2Fpcm9fc3VyZmFjZV90ICpj
cyA9IGV3a19oaXN0b3J5X2l0ZW1faWNvbl9zdXJmYWNlX2dldChpdGVtKTsKKyAgICAgICBjaGFy
IGJ1ZltQQVRIX01BWF07CisgICAgICAgaW50IHMgPSBzbnByaW50ZihidWYsIHNpemVvZihidWYp
LCAiL3RtcC9mYXZpY29uLSVzLnBuZyIsIGV3a19oaXN0b3J5X2l0ZW1fdXJpX29yaWdpbmFsX2dl
dChpdGVtKSk7CisgICAgICAgZm9yIChzLS07IHMgPj0gKGludClzaXplb2YoIi90bXAvZmF2aWNv
bi0iKTsgcy0tKSB7CisgICAgICAgICAgIGlmICghaXNhbG51bShidWZbc10pICYmIGJ1ZltzXSAh
PSAnLicpCisgICAgICAgICAgICAgICBidWZbc10gPSAnXyc7CisgICAgICAgfQorICAgICAgIGNz
ID0gZXdrX2hpc3RvcnlfaXRlbV9pY29uX3N1cmZhY2VfZ2V0KGl0ZW0pOworCisgICAgICAgaWYg
KGNzICYmIGNhaXJvX3N1cmZhY2Vfc3RhdHVzKGNzKSA9PSBDQUlST19TVEFUVVNfU1VDQ0VTUykK
KyAgICAgICAgICAgY2Fpcm9fc3VyZmFjZV93cml0ZV90b19wbmcoY3MsIGJ1Zik7CisgICAgICAg
ZWxzZQorICAgICAgICAgICBidWZbMF0gPSAnXDAnOworCisgICAgICAgcHJpbnRmKCIqICclcycg
dGl0bGU9JyVzJyBpY29uPSclcydcbiIsCisgICAgICAgICAgICAgIGV3a19oaXN0b3J5X2l0ZW1f
dXJpX29yaWdpbmFsX2dldChpdGVtKSwKKyAgICAgICAgICAgICAgZXdrX2hpc3RvcnlfaXRlbV90
aXRsZV9nZXQoaXRlbSksIGJ1Zik7CisgICAgfQorfQorCitzdGF0aWMgdm9pZAorem9vbV9sZXZl
bF9zZXQoRXZhc19PYmplY3QgKndlYnZpZXcsIGludCBsZXZlbCkKK3sKKyAgICBmbG9hdCBmYWN0
b3IgPSAoKGZsb2F0KSB6b29tTGV2ZWxzW2xldmVsXSkgLyAxMDAuMDsKKyAgICBFdmFzX0Nvb3Jk
IG94LCBveSwgbXgsIG15LCBjeCwgY3k7CisgICAgZXZhc19wb2ludGVyX2NhbnZhc194eV9nZXQo
ZXZhc19vYmplY3RfZXZhc19nZXQod2VidmlldyksICZteCwgJm15KTsKKyAgICBldmFzX29iamVj
dF9nZW9tZXRyeV9nZXQod2VidmlldywgJm94LCAmb3ksIE5VTEwsIE5VTEwpOworICAgIGN4ID0g
bXggLSBveDsKKyAgICBjeSA9IG15IC0gb3k7CisgICAgZXdrX3ZpZXdfem9vbV9hbmltYXRlZF9z
ZXQod2VidmlldywgZmFjdG9yLCAwLjUsIGN4LCBjeSk7Cit9CisKK3N0YXRpYyB2b2lkCitvbl9l
Y29yZV9ldmFzX3Jlc2l6ZShFY29yZV9FdmFzICplZSkKK3sKKyAgICBFdmFzX09iamVjdCAqd2Vi
dmlldzsKKyAgICBFdmFzX09iamVjdCAqYmc7CisgICAgaW50IHcsIGg7CisKKyAgICBlY29yZV9l
dmFzX2dlb21ldHJ5X2dldChlZSwgTlVMTCwgTlVMTCwgJncsICZoKTsKKworICAgIGJnID0gZXZh
c19vYmplY3RfbmFtZV9maW5kKGVjb3JlX2V2YXNfZ2V0KGVlKSwgImJnIik7CisgICAgZXZhc19v
YmplY3RfbW92ZShiZywgMCwgMCk7CisgICAgZXZhc19vYmplY3RfcmVzaXplKGJnLCB3LCBoKTsK
KworICAgIHdlYnZpZXcgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNvcmVfZXZhc19nZXQoZWUp
LCAiYnJvd3NlciIpOworICAgIGV2YXNfb2JqZWN0X21vdmUod2VidmlldywgMTAsIDEwKTsKKyAg
ICBldmFzX29iamVjdF9yZXNpemUod2VidmlldywgdyAtIDIwLCBoIC0gMjApOworfQorCitzdGF0
aWMgdm9pZAordGl0bGVfc2V0KEVjb3JlX0V2YXMgKmVlLCBjb25zdCBjaGFyICp0aXRsZSwgaW50
IHByb2dyZXNzKQoreworICAgIGNvbnN0IGNoYXIgKmFwcG5hbWUgPSAiRUZMIFRlc3QgTGF1bmNo
ZXIiOworICAgIGNvbnN0IGNoYXIgKnNlcGFyYXRvciA9ICIgLSAiOworICAgIGNoYXIgbGFiZWxb
NDA5Nl07CisgICAgaW50IHNpemU7CisKKyAgICBpZiAoIXRpdGxlIHx8ICFzdHJjbXAodGl0bGUs
ICIiKSkgeworICAgICAgICBlY29yZV9ldmFzX3RpdGxlX3NldChlZSwgYXBwbmFtZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAocHJvZ3Jlc3MgPCAxMDApCisgICAgICAgIHNp
emUgPSBzbnByaW50ZihsYWJlbCwgc2l6ZW9mKGxhYmVsKSwgIiVzICglZCUlKSVzJXMiLCB0aXRs
ZSwgcHJvZ3Jlc3MsIHNlcGFyYXRvciwgYXBwbmFtZSk7CisgICAgZWxzZQorICAgICAgICBzaXpl
ID0gc25wcmludGYobGFiZWwsIHNpemVvZihsYWJlbCksICIlcyAlcyVzIiwgdGl0bGUsIHNlcGFy
YXRvciwgYXBwbmFtZSk7CisKKyAgICBpZiAoc2l6ZSA+PSAoaW50KXNpemVvZihsYWJlbCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGVjb3JlX2V2YXNfdGl0bGVfc2V0KGVlLCBsYWJlbCk7Cit9
CisKKy8qKgorICogVGhpcyBpcyBlbiBleGFtcGxlIGZ1bmN0aW9uIHRvIGFkanVzdCB2aWV3cG9y
dCB2aWEgdmlld3BvcnQgdGFnJ3MgYXJndW1lbnRzLgorICogQXBwbGljYXRpb24gY2FuIGludm9r
ZSB0aGlzIGZ1bmN0aW9uIGluIG9yZGVyIHRvIGFkanVzdCB2aWV3cG9ydCB0YWcgd2hlbiBpdCBp
cyByZXF1aXJlZC4KKyAqLworc3RhdGljIHZvaWQKK3ZpZXdwb3J0X3NldCgpCit7CisgICAgRUxh
dW5jaGVyICphcHA7CisgICAgYXBwID0gKEVMYXVuY2hlciopIGVpbmFfbGlzdF9kYXRhX2dldCh3
aW5kb3dzKTsKKworICAgIGV3a192aWV3X2ZpeGVkX2xheW91dF9zaXplX3NldChhcHAtPmJyb3dz
ZXIsIGFwcC0+dmlld3BvcnQudywgYXBwLT52aWV3cG9ydC5oKTsKKyAgICBld2tfdmlld196b29t
X3NldChhcHAtPmJyb3dzZXIsIGFwcC0+dmlld3BvcnQuaW5pdFNjYWxlLCAwLCAwKTsKKyAgICBp
ZiAoIWV3a192aWV3X3pvb21fcmFuZ2Vfc2V0KGFwcC0+YnJvd3NlciwgYXBwLT52aWV3cG9ydC5t
aW5TY2FsZSwgYXBwLT52aWV3cG9ydC5tYXhTY2FsZSkpCisgICAgICAgIGluZm8oIiBGYWlsIHRv
IHNldCB6b29tIHJhbmdlLiBtaW5TY2FsZSA9ICVmLCBtYXhTY2FsZSA9ICVmXG4iLCBhcHAtPnZp
ZXdwb3J0Lm1pblNjYWxlLCBhcHAtPnZpZXdwb3J0Lm1heFNjYWxlKTsKKyAgICBld2tfdmlld191
c2VyX3NjYWxhYmxlX3NldChhcHAtPmJyb3dzZXIsIGFwcC0+dmlld3BvcnQudXNlclNjYWxhYmxl
KTsKK30KKworc3RhdGljIHZvaWQKK29uX3RpdGxlX2NoYW5nZWQodm9pZCAqdXNlcl9kYXRhLCBF
dmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFTGF1bmNoZXIg
KmFwcCA9IChFTGF1bmNoZXIgKil1c2VyX2RhdGE7CisgICAgY29uc3QgY2hhciAqdGl0bGUgPSAo
Y29uc3QgY2hhciAqKWV2ZW50X2luZm87CisKKyAgICB0aXRsZV9zZXQoYXBwLT5lZSwgdGl0bGUs
IDEwMCk7Cit9CisKK3N0YXRpYyB2b2lkCitvbl9wcm9ncmVzcyh2b2lkICp1c2VyX2RhdGEsIEV2
YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEVMYXVuY2hlciAq
YXBwID0gKEVMYXVuY2hlciAqKXVzZXJfZGF0YTsKKyAgICBkb3VibGUgKnByb2dyZXNzID0gKGRv
dWJsZSAqKWV2ZW50X2luZm87CisKKyAgICB0aXRsZV9zZXQoYXBwLT5lZSwgZXdrX3ZpZXdfdGl0
bGVfZ2V0KGFwcC0+YnJvd3NlciksICpwcm9ncmVzcyAqIDEwMCk7Cit9CisKK3N0YXRpYyB2b2lk
Citvbl9sb2FkX2ZpbmlzaGVkKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcs
IHZvaWQgKmV2ZW50X2luZm8pCit7CisgICAgY29uc3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3IgKmVy
ciA9IChjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvciAqKWV2ZW50X2luZm87CisKKyAgICBpZiAo
IWVycikKKyAgICAgICAgaW5mbygiU3VjY2VlZGVkIGxvYWRpbmcgcGFnZS5cbiIpOworICAgIGVs
c2UgaWYgKGVyci0+aXNfY2FuY2VsbGF0aW9uKQorICAgICAgICBpbmZvKCJMb2FkIHdhcyBjYW5j
ZWxsZWQuXG4iKTsKKyAgICBlbHNlCisgICAgICAgIGluZm8oIkZhaWxlZCBsb2FkaW5nIHBhZ2U6
ICVkICVzIFwiJXNcIiwgdXJsPSVzXG4iLAorICAgICAgICAgICAgIGVyci0+Y29kZSwgZXJyLT5k
b21haW4sIGVyci0+ZGVzY3JpcHRpb24sIGVyci0+ZmFpbGluZ191cmwpOworfQorCitzdGF0aWMg
dm9pZAorb25fdG9vbGJhcnNfdmlzaWJsZV9zZXQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVj
dCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKK3sKKyAgICBFaW5hX0Jvb2wgKnZpc2libGUg
PSAoRWluYV9Cb29sICopZXZlbnRfaW5mbzsKKyAgICBpZiAoKnZpc2libGUpIHsKKyAgICAgICAg
aW5mbygiVG9vbGJhcnMgdmlzaWJsZSBjaGFuZ2VkOiBzaG93Iik7CisgICAgICAgIHdpbmRvd1By
b3BlcnRpZXMudG9vbGJhcnNWaXNpYmxlID0gRUlOQV9UUlVFOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGluZm8oIlRvb2xiYXJzIHZpc2libGUgY2hhbmdlZDogaGlkZSIpOworICAgICAgICB3aW5k
b3dQcm9wZXJ0aWVzLnRvb2xiYXJzVmlzaWJsZSA9IEVJTkFfRkFMU0U7CisgICAgfQorfQorCitz
dGF0aWMgdm9pZAorb25fdG9vbGJhcnNfdmlzaWJsZV9nZXQodm9pZCogdXNlcl9kYXRhLCBFdmFz
X09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKK3sKKyAgICBFaW5hX0Jvb2wgKnZp
c2libGUgPSAoRWluYV9Cb29sICopZXZlbnRfaW5mbzsKKyAgICAqdmlzaWJsZSA9IHdpbmRvd1By
b3BlcnRpZXMudG9vbGJhcnNWaXNpYmxlOworfQorCitzdGF0aWMgdm9pZAorb25fc3RhdHVzYmFy
X3Zpc2libGVfc2V0KHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQq
IGV2ZW50X2luZm8pCit7CisgICAgRWluYV9Cb29sICp2aXNpYmxlID0gKEVpbmFfQm9vbCAqKWV2
ZW50X2luZm87CisgICAgaWYgKCp2aXNpYmxlKSB7CisgICAgICAgIGluZm8oIlN0YXR1c2JhciB2
aXNpYmxlIGNoYW5nZWQ6IHNob3ciKTsKKyAgICAgICAgd2luZG93UHJvcGVydGllcy5zdGF0dXNi
YXJWaXNpYmxlID0gRUlOQV9UUlVFOworICAgIH0gZWxzZSB7CisgICAgICAgIGluZm8oIlN0YXR1
c2JhciB2aXNpYmxlIGNoYW5nZWQ6IGhpZGUiKTsKKyAgICAgICAgd2luZG93UHJvcGVydGllcy5z
dGF0dXNiYXJWaXNpYmxlID0gRUlOQV9GQUxTRTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitv
bl9zdGF0dXNiYXJfdmlzaWJsZV9nZXQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vi
dmlldywgdm9pZCogZXZlbnRfaW5mbykKK3sKKyAgICBFaW5hX0Jvb2wgKnZpc2libGUgPSAoRWlu
YV9Cb29sICopZXZlbnRfaW5mbzsKKyAgICAqdmlzaWJsZSA9IHdpbmRvd1Byb3BlcnRpZXMuc3Rh
dHVzYmFyVmlzaWJsZTsKK30KKworc3RhdGljIHZvaWQKK29uX3Njcm9sbGJhcnNfdmlzaWJsZV9z
ZXQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5m
bykKK3sKKyAgICBFaW5hX0Jvb2wgKnZpc2libGUgPSAoRWluYV9Cb29sICopZXZlbnRfaW5mbzsK
KyAgICBpZiAoKnZpc2libGUpIHsKKyAgICAgICAgaW5mbygiU2Nyb2xsYmFycyB2aXNpYmxlIGNo
YW5nZWQ6IHNob3ciKTsKKyAgICAgICAgd2luZG93UHJvcGVydGllcy5zY3JvbGxiYXJzVmlzaWJs
ZSA9IEVJTkFfVFJVRTsKKyAgICB9IGVsc2UgeworICAgICAgICBpbmZvKCJTY3JvbGxiYXJzIHZp
c2libGUgY2hhbmdlZDogaGlkZSIpOworICAgICAgICB3aW5kb3dQcm9wZXJ0aWVzLnNjcm9sbGJh
cnNWaXNpYmxlID0gRUlOQV9GQUxTRTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCitvbl9zY3Jv
bGxiYXJzX3Zpc2libGVfZ2V0KHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcs
IHZvaWQqIGV2ZW50X2luZm8pCit7CisgICAgRWluYV9Cb29sICp2aXNpYmxlID0gKEVpbmFfQm9v
bCAqKWV2ZW50X2luZm87CisgICAgKnZpc2libGUgPSB3aW5kb3dQcm9wZXJ0aWVzLnNjcm9sbGJh
cnNWaXNpYmxlOworfQorCitzdGF0aWMgdm9pZAorb25fbWVudWJhcl92aXNpYmxlX3NldCh2b2lk
KiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZvKQorewor
ICAgIEVpbmFfQm9vbCAqdmlzaWJsZSA9IChFaW5hX0Jvb2wgKilldmVudF9pbmZvOworICAgIGlm
ICgqdmlzaWJsZSkgeworICAgICAgICBpbmZvKCJNZW51YmFyIHZpc2libGUgY2hhbmdlZDogc2hv
dyIpOworICAgICAgICB3aW5kb3dQcm9wZXJ0aWVzLm1lbnViYXJWaXNpYmxlID0gRUlOQV9UUlVF
OworICAgIH0gZWxzZSB7CisgICAgICAgIGluZm8oIk1lbnViYXIgdmlzaWJsZSBjaGFuZ2VkOiBo
aWRlIik7CisgICAgICAgIHdpbmRvd1Byb3BlcnRpZXMubWVudWJhclZpc2libGUgPSBFSU5BX0ZB
TFNFOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK29uX21lbnViYXJfdmlzaWJsZV9nZXQodm9p
ZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKK3sK
KyAgICBFaW5hX0Jvb2wgKnZpc2libGUgPSAoRWluYV9Cb29sICopZXZlbnRfaW5mbzsKKyAgICAq
dmlzaWJsZSA9IHdpbmRvd1Byb3BlcnRpZXMubWVudWJhclZpc2libGU7Cit9CisKK3N0YXRpYyB2
b2lkCitvbl90b29sdGlwX3RleHRfc2V0KHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdl
YnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCit7CisgICAgY29uc3QgY2hhciAqdGV4dCA9IChjb25z
dCBjaGFyICopZXZlbnRfaW5mbzsKKyAgICBpZiAodGV4dCAmJiAqdGV4dCAhPSAnXDAnKQorICAg
ICAgICBpbmZvKCIlc1xuIiwgdGV4dCk7Cit9CisKK3N0YXRpYyB2b2lkCitvbl9pbnB1dG1ldGhv
ZF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2
ZW50X2luZm8pCit7CisgICAgRWluYV9Cb29sIGFjdGl2ZSA9IChFaW5hX0Jvb2wpKGxvbmcpZXZl
bnRfaW5mbzsKKyAgICB1bnNpZ25lZCBpbnQgaW1oOworICAgIGluZm8oIktleWJvYXJkIGNoYW5n
ZWQ6ICVkXG4iLCBhY3RpdmUpOworCisgICAgaWYgKCFhY3RpdmUpCisgICAgICAgIHJldHVybjsK
KworICAgIGltaCA9IGV3a192aWV3X2ltaF9nZXQod2Vidmlldyk7CisgICAgaW5mbygiICAgIEtl
eWJvYXJkIGZsYWdzOiAlIy4yeFxuIiwgaW1oKTsKKworfQorCisvKioKKyAqICJ2aWV3cG9ydCxj
aGFuZ2VkIiBzaWduYWwgd2lsbCBiZSBhbHdheXMgZW1pdHRlZCByZWdhcmRsZXNzIG9mIHRoZSB2
aWV3cG9ydCBleGlzdGVuY2UuCisgKgorICogSWYgeW91IGRvbid0IHdhbnQgdG8gcHJvY2VzcyB0
aGUgdmlld3BvcnQgdGFnLCB5b3UgY2FuIGVpdGhlciBkbyBub3RoaW5nIGluIHRoaXMgY2FsbGJh
Y2sKKyAqIG9yIHNpbXBseSBpZ25vcmUgdGhlIHNpZ25hbCBpbiB5b3VyIGFwcGxpY2F0aW9uLgor
ICogCisgKiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgY2FuIGJlIGZvdW5kIGF0IGh0dHA6
Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3NhZmFyaS9saWJyYXJ5L2RvY3VtCisgKiBlbnRhdGlvbi9h
cHBsZWFwcGxpY2F0aW9ucy9yZWZlcmVuY2Uvc2FmYXJpd2ViY29udGVudC91c2luZ3RoZXZpZXdw
b3J0L3VzaW5ndGhldmlld3BvcnQuaHRtbAorICovCitzdGF0aWMgdm9pZAorb25fdmlld3BvcnRf
Y2hhbmdlZCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVu
dF9pbmZvKQoreworICAgIEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hlciAqKXVzZXJfZGF0YTsK
KworICAgIGZsb2F0IHcsIGgsIGluaXRTY2FsZSwgbWluU2NhbGUsIG1heFNjYWxlLCB1c2VyU2Nh
bGFibGU7CisKKyAgICBld2tfdmlld192aWV3cG9ydF9nZXQod2VidmlldywgJncsICZoLCAmaW5p
dFNjYWxlLCAmbWF4U2NhbGUsICZtaW5TY2FsZSwgJnVzZXJTY2FsYWJsZSk7CisKKyAgICAvKioK
KyAgICAgKiBJZiB0aGVyZSBpcyBubyBhcmd1bWVudCBpbiB2aWV3cG9ydCB0YWcsIGFyZ3VtZW50
J3MgdmFsdWUgaXMgLTEuCisgICAgICovCisgICAgaWYgKChpbnQpdyA9PSAtMSkKKyAgICAgICAg
dyA9IERFRkFVTFRfV0lEVEg7CisgICAgaWYgKChpbnQpaCA9PSAtMSkKKyAgICAgICAgaCA9IERF
RkFVTFRfSEVJR0hUOworICAgIGlmICgoaW50KWluaXRTY2FsZSA9PSAtMSkKKyAgICAgICAgaW5p
dFNjYWxlID0gREVGQVVMVF9aT09NX0lOSVQ7IC8vIFRoZXJlJ3Mgbm8gc2NhbGUgc2VwYXJhdGVk
IGZyb20gem9vbWluZyBpbiB3ZWJraXQtZWZsLgorICAgIGlmICgoaW50KW1pblNjYWxlID09IC0x
KQorICAgICAgICBtaW5TY2FsZSA9IGV3a192aWV3X3pvb21fcmFuZ2VfbWluX2dldCh3ZWJ2aWV3
KTsKKyAgICBpZiAoKGludCltYXhTY2FsZSA9PSAtMSkKKyAgICAgICAgbWF4U2NhbGUgPSBld2tf
dmlld196b29tX3JhbmdlX21heF9nZXQod2Vidmlldyk7CisgICAgaWYgKChpbnQpdXNlclNjYWxh
YmxlID09IC0xKQorICAgICAgICB1c2VyU2NhbGFibGUgPSBFSU5BX1RSVUU7CisKKyAgICBhcHAt
PnZpZXdwb3J0LncgPSAoaW50KXc7CisgICAgYXBwLT52aWV3cG9ydC5oID0gKGludCloOworICAg
IGFwcC0+dmlld3BvcnQuaW5pdFNjYWxlID0gaW5pdFNjYWxlOworICAgIGFwcC0+dmlld3BvcnQu
bWluU2NhbGUgPSBtaW5TY2FsZTsKKyAgICBhcHAtPnZpZXdwb3J0Lm1heFNjYWxlID0gbWF4U2Nh
bGU7CisgICAgYXBwLT52aWV3cG9ydC51c2VyU2NhbGFibGUgPSAoRWluYV9Cb29sKXVzZXJTY2Fs
YWJsZTsKKyAgICB2aWV3cG9ydF9zZXQoKTsKK30KKworc3RhdGljIHZvaWQKK29uX21vdXNlX2Rv
d24odm9pZCogZGF0YSwgRXZhcyogZSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50
X2luZm8pCit7CisgICAgRXZhc19FdmVudF9Nb3VzZV9Eb3duICpldiA9IChFdmFzX0V2ZW50X01v
dXNlX0Rvd24qKSBldmVudF9pbmZvOworICAgIGlmIChldi0+YnV0dG9uID09IDIpCisgICAgICAg
IGV2YXNfb2JqZWN0X2ZvY3VzX3NldCh3ZWJ2aWV3LCAhZXZhc19vYmplY3RfZm9jdXNfZ2V0KHdl
YnZpZXcpKTsKK30KKworc3RhdGljIHZvaWQKK29uX2ZvY3VzX291dCh2b2lkICpkYXRhLCBFdmFz
ICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIGluZm8oInRo
ZSB3ZWJ2aWV3IGxvc3Qga2V5Ym9hcmQgZm9jdXNcbiIpOworfQorCitzdGF0aWMgdm9pZAorb25f
Zm9jdXNfaW4odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3QgKm9iaiwgdm9pZCAqZXZl
bnRfaW5mbykKK3sKKyAgICBpbmZvKCJ0aGUgd2VidmlldyBnYWluZWQga2V5Ym9hcmQgZm9jdXNc
biIpOworfQorCitzdGF0aWMgdm9pZAorb25fcmVzaXplZCh2b2lkICpkYXRhLCBFdmFzICplLCBF
dmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQoreworICAgIEV2YXNfQ29vcmQgdywg
aDsKKyAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQob2JqLCBOVUxMLCBOVUxMLCAmdywgJmgp
OworICAgIGV3a192aWV3X2ZpeGVkX2xheW91dF9zaXplX3NldChvYmosIHcsIGgpOworfQorCitz
dGF0aWMgdm9pZAorb25fa2V5X2Rvd24odm9pZCAqZGF0YSwgRXZhcyAqZSwgRXZhc19PYmplY3Qg
Km9iaiwgdm9pZCAqZXZlbnRfaW5mbykKK3sKKyAgICBFdmFzX0V2ZW50X0tleV9Eb3duICpldiA9
IChFdmFzX0V2ZW50X0tleV9Eb3duKikgZXZlbnRfaW5mbzsKKyAgICBFTGF1bmNoZXIgKmFwcCA9
IGRhdGE7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmVuY29kaW5nc1tdID0geworICAgICAgICAi
SVNPLTg4NTktMSIsCisgICAgICAgICJVVEYtOCIsCisgICAgICAgIE5VTEwKKyAgICB9OworICAg
IHN0YXRpYyBpbnQgY3VycmVudEVuY29kaW5nID0gLTE7CisKKyAgICBpZiAoIXN0cmNtcChldi0+
a2V5LCAiRXNjYXBlIikpIHsKKyAgICAgICAgY2xvc2VXaW5kb3coYXBwLT5lZSk7CisgICAgfSBl
bHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGMSIpKSB7CisgICAgICAgIGluZm8oIkJhY2sgKEYx
KSB3YXMgcHJlc3NlZFxuIik7CisgICAgICAgIGlmIChld2tfdmlld19iYWNrX3Bvc3NpYmxlKG9i
aikpIHsKKyAgICAgICAgICAgIEV3a19IaXN0b3J5ICpoaXN0b3J5ID0gZXdrX3ZpZXdfaGlzdG9y
eV9nZXQob2JqKTsKKyAgICAgICAgICAgIEVpbmFfTGlzdCAqbGlzdCA9IGV3a19oaXN0b3J5X2Jh
Y2tfbGlzdF9nZXQoaGlzdG9yeSk7CisgICAgICAgICAgICBwcmludF9oaXN0b3J5KGxpc3QpOwor
ICAgICAgICAgICAgZXdrX2hpc3RvcnlfaXRlbV9saXN0X2ZyZWUobGlzdCk7CisgICAgICAgICAg
ICBld2tfdmlld19iYWNrKG9iaik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgaW5mbygi
QmFjayBpZ25vcmVkOiBObyBiYWNrIGhpc3RvcnlcbiIpOworICAgIH0gZWxzZSBpZiAoIXN0cmNt
cChldi0+a2V5LCAiRjIiKSkgeworICAgICAgICBpbmZvKCJGb3J3YXJkIChGMikgd2FzIHByZXNz
ZWRcbiIpOworICAgICAgICBpZiAoZXdrX3ZpZXdfZm9yd2FyZF9wb3NzaWJsZShvYmopKSB7Cisg
ICAgICAgICAgICBFd2tfSGlzdG9yeSAqaGlzdG9yeSA9IGV3a192aWV3X2hpc3RvcnlfZ2V0KG9i
aik7CisgICAgICAgICAgICBFaW5hX0xpc3QgKmxpc3QgPSBld2tfaGlzdG9yeV9mb3J3YXJkX2xp
c3RfZ2V0KGhpc3RvcnkpOworICAgICAgICAgICAgcHJpbnRfaGlzdG9yeShsaXN0KTsKKyAgICAg
ICAgICAgIGV3a19oaXN0b3J5X2l0ZW1fbGlzdF9mcmVlKGxpc3QpOworICAgICAgICAgICAgZXdr
X3ZpZXdfZm9yd2FyZChvYmopOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGluZm8oIkZv
cndhcmQgaWdub3JlZDogTm8gZm9yd2FyZCBoaXN0b3J5XG4iKTsKKyAgICB9IGVsc2UgaWYgKCFz
dHJjbXAoZXYtPmtleSwgIkYzIikpIHsKKyAgICAgICAgY3VycmVudEVuY29kaW5nKys7CisgICAg
ICAgIGN1cnJlbnRFbmNvZGluZyAlPSAoc2l6ZW9mKGVuY29kaW5ncykgLyBzaXplb2YoZW5jb2Rp
bmdzWzBdKSk7CisgICAgICAgIGluZm8oIlNldCBlbmNvZGluZyAoRjMpIHByZXNzZWQuIE5ldyBl
bmNvZGluZyB0byAlcyIsIGVuY29kaW5nc1tjdXJyZW50RW5jb2RpbmddKTsKKyAgICAgICAgZXdr
X3ZpZXdfc2V0dGluZ19lbmNvZGluZ19jdXN0b21fc2V0KG9iaiwgZW5jb2RpbmdzW2N1cnJlbnRF
bmNvZGluZ10pOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjQiKSkgeworICAg
ICAgICBFdmFzX09iamVjdCAqZnJhbWUgPSBld2tfdmlld19mcmFtZV9tYWluX2dldChvYmopOwor
ICAgICAgICBFdmFzX0Nvb3JkIHgsIHk7CisgICAgICAgIEV3a19IaXRfVGVzdCAqaHQ7CisKKyAg
ICAgICAgZXZhc19wb2ludGVyX2NhbnZhc194eV9nZXQoZXZhc19vYmplY3RfZXZhc19nZXQob2Jq
KSwgJngsICZ5KTsKKyAgICAgICAgaHQgPSBld2tfZnJhbWVfaGl0X3Rlc3RfbmV3KGZyYW1lLCB4
LCB5KTsKKyAgICAgICAgaWYgKCFodCkKKyAgICAgICAgICAgIHByaW50ZigiTm8gaGl0IHRlc3Qg
cmV0dXJuZWQgZm9yIHBvaW50ICVkLCVkXG4iLCB4LCB5KTsKKyAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICBwcmludGYoIkhpdCB0ZXN0IGZvciBwb2ludCAlZCwlZFxuIgorICAgICAgICAgICAg
ICAgICAgICIgIHBvcz0lM2QsJTNkXG4iCisgICAgICAgICAgICAgICAgICAgIiAgYm91bmRpbmdf
Ym94PSVkLCVkICsgJWR4JWRcbiIKKyAgICAgICAgICAgICAgICAgICAiICB0aXRsZT0nJXMnXG4i
CisgICAgICAgICAgICAgICAgICAgIiAgYWx0ZXJuYXRlX3RleHQ9JyVzJ1xuIgorICAgICAgICAg
ICAgICAgICAgICIgIGZyYW1lPSVwICglcylcbiIKKyAgICAgICAgICAgICAgICAgICAiICBsaW5r
IHtcbiIKKyAgICAgICAgICAgICAgICAgICAiICAgIHRleHQ9JyVzJ1xuIgorICAgICAgICAgICAg
ICAgICAgICIgICAgdXJsPSclcydcbiIKKyAgICAgICAgICAgICAgICAgICAiICAgIHRpdGxlPScl
cydcbiIKKyAgICAgICAgICAgICAgICAgICAiICAgIHRhcmdldCBmcmFtZT0lcCAoJXMpXG4iCisg
ICAgICAgICAgICAgICAgICAgIiAgfVxuIgorICAgICAgICAgICAgICAgICAgICIgIGZsYWdzIHtc
biIKKyAgICAgICAgICAgICAgICAgICAiICAgIGVkaXRhYmxlPSVoaHVcbiIKKyAgICAgICAgICAg
ICAgICAgICAiICAgIHNlbGVjdGVkPSVoaHVcbiIKKyAgICAgICAgICAgICAgICAgICAiICB9XG4i
LAorICAgICAgICAgICAgICAgICAgIHgsIHksCisgICAgICAgICAgICAgICAgICAgaHQtPngsIGh0
LT55LAorICAgICAgICAgICAgICAgICAgIGh0LT5ib3VuZGluZ19ib3gueCwgaHQtPmJvdW5kaW5n
X2JveC55LCBodC0+Ym91bmRpbmdfYm94LncsIGh0LT5ib3VuZGluZ19ib3guaCwKKyAgICAgICAg
ICAgICAgICAgICBodC0+dGl0bGUsCisgICAgICAgICAgICAgICAgICAgaHQtPmFsdGVybmF0ZV90
ZXh0LAorICAgICAgICAgICAgICAgICAgIGh0LT5mcmFtZSwgZXZhc19vYmplY3RfbmFtZV9nZXQo
aHQtPmZyYW1lKSwKKyAgICAgICAgICAgICAgICAgICBodC0+bGluay50ZXh0LAorICAgICAgICAg
ICAgICAgICAgIGh0LT5saW5rLnVybCwKKyAgICAgICAgICAgICAgICAgICBodC0+bGluay50aXRs
ZSwKKyAgICAgICAgICAgICAgICAgICBodC0+bGluay50YXJnZXRfZnJhbWUsIGV2YXNfb2JqZWN0
X25hbWVfZ2V0KGh0LT5saW5rLnRhcmdldF9mcmFtZSksCisgICAgICAgICAgICAgICAgICAgaHQt
PmZsYWdzLmVkaXRhYmxlLAorICAgICAgICAgICAgICAgICAgIGh0LT5mbGFncy5zZWxlY3RlZCk7
CisgICAgICAgICAgICBld2tfZnJhbWVfaGl0X3Rlc3RfZnJlZShodCk7CisgICAgICAgIH0KKwor
ICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjUiKSkgeworICAgICAgICBpbmZvKCJS
ZWxvYWQgKEY1KSB3YXMgcHJlc3NlZCwgcmVsb2FkaW5nLlxuIik7CisgICAgICAgIGV3a192aWV3
X3JlbG9hZChvYmopOworICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjYiKSkgewor
ICAgICAgICBpbmZvKCJTdG9wIChGNikgd2FzIHByZXNzZWQsIHN0b3AgbG9hZGluZy5cbiIpOwor
ICAgICAgICBld2tfdmlld19zdG9wKG9iaik7CisgICAgLyogfSBGSVhNRTogdW5jb21tZW50IGNv
ZGUgYmVsb3cgYWZ0ZXIgQnVnIDE4NjYyIGxhbmRzIHVwc3RyZWFtLgorICAgIGVsc2UgaWYgKCFz
dHJjbXAoZXYtPmtleSwgIkYxMiIpKSB7CisgICAgICAgIGJvb2wgc3RhdHVzID0gZXdrX3dlYmZy
YW1lX29iamVjdF9rZXlib2FyZF9uYXZpZ2F0aW9uX2dldChwYWdlKTsKKyAgICAgICAgZXdrX3dl
YmZyYW1lX29iamVjdF9rZXlib2FyZF9uYXZpZ2F0aW9uX3NldChwYWdlLCAhc3RhdHVzKTsKKyAg
ICAgICAgaW5mbygiQ29tbWFuZDo6a2V5Ym9hcmQgbmF2aWdhdGlvbiB0b2dnbGVcbiIpOyovCisg
ICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGNyIpKSB7CisgICAgICAgIGluZm8oIlpv
b20gb3V0IChGNykgd2FzIHByZXNzZWQuXG4iKTsKKyAgICAgICAgaWYgKGN1cnJlbnRab29tTGV2
ZWwgPiBNSU5fWk9PTV9MRVZFTCkKKyAgICAgICAgICAgIHpvb21fbGV2ZWxfc2V0KG9iaiwgLS1j
dXJyZW50Wm9vbUxldmVsKTsKKyAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkY4Iikp
IHsKKyAgICAgICAgaW5mbygiWm9vbSBpbiAoRjgpIHdhcyBwcmVzc2VkLlxuIik7CisgICAgICAg
IGlmIChjdXJyZW50Wm9vbUxldmVsIDwgTUFYX1pPT01fTEVWRUwpCisgICAgICAgICAgICB6b29t
X2xldmVsX3NldChvYmosICsrY3VycmVudFpvb21MZXZlbCk7CisgICAgfSBlbHNlIGlmICghc3Ry
Y21wKGV2LT5rZXksICJGOSIpKSB7CisgICAgICAgIGluZm8oIkNyZWF0ZSBuZXcgd2luZG93IChG
OSkgd2FzIHByZXNzZWQuXG4iKTsKKyAgICAgICAgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnkgPSB7
MCwgMCwgMCwgMH07CisgICAgICAgIGJyb3dzZXJDcmVhdGUoImh0dHA6Ly93d3cuZ29vZ2xlLmNv
bSIsCisgICAgICAgICAgICAgICAgICAgICAgIGFwcC0+dGhlbWUsIGFwcC0+dXNlckFnZW50LCBn
ZW9tZXRyeSwgTlVMTCwgMCk7CisgICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGMTAi
KSkgeworICAgICAgICBFdmFzX0Nvb3JkIHgsIHksIHcsIGg7CisgICAgICAgIEV2YXNfT2JqZWN0
ICpmcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KG9iaik7CisgICAgICAgIGZsb2F0IHpv
b20gPSB6b29tTGV2ZWxzW2N1cnJlbnRab29tTGV2ZWxdIC8gMTAwLjA7CisKKyAgICAgICAgZXdr
X2ZyYW1lX3Zpc2libGVfY29udGVudF9nZW9tZXRyeV9nZXQoZnJhbWUsIEVJTkFfRkFMU0UsICZ4
LCAmeSwgJncsICZoKTsKKyAgICAgICAgeCAtPSB3OworICAgICAgICB5IC09IGg7CisgICAgICAg
IHcgKj0gNDsKKyAgICAgICAgaCAqPSA0OworICAgICAgICBpbmZvKCJQcmUtcmVuZGVyICVkLCVk
ICsgJWR4JWRcbiIsIHgsIHksIHcsIGgpOworICAgICAgICBld2tfdmlld19wcmVfcmVuZGVyX3Jl
Z2lvbihvYmosIHgsIHksIHcsIGgsIHpvb20pOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK29u
X2Jyb3dzZXJfZGVsKHZvaWQgKmRhdGEsIEV2YXMgKmV2YXMsIEV2YXNfT2JqZWN0ICpicm93c2Vy
LCB2b2lkICpldmVudCkKK3sKKyAgICBFTGF1bmNoZXIgKmFwcCA9IChFTGF1bmNoZXIqKSBkYXRh
OworCisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+YnJvd3NlciwgRVZB
U19DQUxMQkFDS19LRVlfRE9XTiwgb25fa2V5X2Rvd24pOworICAgIGV2YXNfb2JqZWN0X2V2ZW50
X2NhbGxiYWNrX2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9XTiwgb25f
bW91c2VfZG93bik7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+YnJv
d3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19JTiwgb25fZm9jdXNfaW4pOworICAgIGV2YXNfb2Jq
ZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfRk9DVVNf
T1VULCBvbl9mb2N1c19vdXQpOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2RlbChh
cHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfREVMLCBvbl9icm93c2VyX2RlbCk7Cit9CisKK3N0
YXRpYyB2b2lkCitvbl9jbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSkKK3sKKyAgICBicm93c2Vy
RGVzdHJveShlZSk7Cit9CisKK3N0YXRpYyBpbnQKK3F1aXQoRWluYV9Cb29sIHN1Y2Nlc3MsIGNv
bnN0IGNoYXIgKm1zZykKK3sKKyAgICBlZGplX3NodXRkb3duKCk7CisgICAgZWNvcmVfZXZhc19z
aHV0ZG93bigpOworCisgICAgaWYgKG1zZykKKyAgICAgICAgZnB1dHMobXNnLCAoc3VjY2Vzcykg
PyBzdGRvdXQgOiBzdGRlcnIpOworCisgICAgZnJlZSh0aGVtZVBhdGgpOworCisgICAgaWYgKCFz
dWNjZXNzKQorICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgcmV0dXJuIEVYSVRf
U1VDQ0VTUzsKK30KKworc3RhdGljIGludAorYnJvd3NlckNyZWF0ZShjb25zdCBjaGFyICp1cmws
IGNvbnN0IGNoYXIgKnRoZW1lLCBjb25zdCBjaGFyICp1c2VyQWdlbnQsIEVpbmFfUmVjdGFuZ2xl
IGdlb21ldHJ5LCBjb25zdCBjaGFyICplbmdpbmUsIHVuc2lnbmVkIGNoYXIgaXNGdWxsc2NyZWVu
KQoreworICAgIGlmICgoZ2VvbWV0cnkudyA8PSAwKSAmJiAoZ2VvbWV0cnkuaCA8PSAwKSkgewor
ICAgICAgICBnZW9tZXRyeS53ID0gREVGQVVMVF9XSURUSDsKKyAgICAgICAgZ2VvbWV0cnkuaCA9
IERFRkFVTFRfSEVJR0hUOworICAgIH0KKworICAgIEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hl
ciopIG1hbGxvYyhzaXplb2YoRUxhdW5jaGVyKSk7CisgICAgaWYgKCFhcHApCisgICAgICAgIHJl
dHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNyZWF0ZSBFV2ViTGF1bmNo
ZXIgd2luZG93XG4iKTsKKworICAgIGFwcC0+ZWUgPSBlY29yZV9ldmFzX25ldyhlbmdpbmUsIDAs
IDAsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmgsIE5VTEwpOworCisgICAgaWYgKCFhcHAtPmVlKQor
ICAgICAgICByZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBjb25zdHJ1
Y3QgZXZhcy1lY29yZVxuIik7CisKKyAgICBpZiAoaXNGdWxsc2NyZWVuKQorICAgICAgICBlY29y
ZV9ldmFzX2Z1bGxzY3JlZW5fc2V0KGFwcC0+ZWUsIEVJTkFfVFJVRSk7CisKKyAgICBlY29yZV9l
dmFzX3RpdGxlX3NldChhcHAtPmVlLCAiRUZMIFRlc3QgTGF1bmNoZXIiKTsKKyAgICBlY29yZV9l
dmFzX2NhbGxiYWNrX3Jlc2l6ZV9zZXQoYXBwLT5lZSwgb25fZWNvcmVfZXZhc19yZXNpemUpOwor
ICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfZGVsZXRlX3JlcXVlc3Rfc2V0KGFwcC0+ZWUsIGNsb3Nl
V2luZG93KTsKKworICAgIGFwcC0+ZXZhcyA9IGVjb3JlX2V2YXNfZ2V0KGFwcC0+ZWUpOworCisg
ICAgaWYgKCFhcHAtPmV2YXMpCisgICAgICAgIHJldHVybiBxdWl0KEVJTkFfRkFMU0UsICJFUlJP
UjogY291bGQgbm90IGdldCBldmFzIGZyb20gZXZhcy1lY29yZVxuIik7CisKKyAgICBpZiAoIXRo
ZW1lKQorICAgICAgICB0aGVtZSA9IHRoZW1lUGF0aDsKKworICAgIGFwcC0+dGhlbWUgPSB0aGVt
ZTsKKyAgICBhcHAtPnVzZXJBZ2VudCA9IHVzZXJBZ2VudDsKKworICAgIGFwcC0+YmcgPSBldmFz
X29iamVjdF9yZWN0YW5nbGVfYWRkKGFwcC0+ZXZhcyk7CisgICAgZXZhc19vYmplY3RfbmFtZV9z
ZXQoYXBwLT5iZywgImJnIik7CisgICAgZXZhc19vYmplY3RfY29sb3Jfc2V0KGFwcC0+YmcsIDI1
NSwgMCwgMjU1LCAyNTUpOworICAgIGV2YXNfb2JqZWN0X21vdmUoYXBwLT5iZywgMCwgMCk7Cisg
ICAgZXZhc19vYmplY3RfcmVzaXplKGFwcC0+YmcsIGdlb21ldHJ5LncsIGdlb21ldHJ5LmgpOwor
ICAgIGV2YXNfb2JqZWN0X2xheWVyX3NldChhcHAtPmJnLCBFVkFTX0xBWUVSX01JTik7CisgICAg
ZXZhc19vYmplY3Rfc2hvdyhhcHAtPmJnKTsKKyAgICBhcHAtPmJyb3dzZXIgPSBld2tfdmlld19z
aW5nbGVfYWRkKGFwcC0+ZXZhcyk7CisKKyAgICBld2tfdmlld190aGVtZV9zZXQoYXBwLT5icm93
c2VyLCB0aGVtZSk7CisgICAgaWYgKHVzZXJBZ2VudCkKKyAgICAgICAgZXdrX3ZpZXdfc2V0dGlu
Z191c2VyX2FnZW50X3NldChhcHAtPmJyb3dzZXIsIHVzZXJBZ2VudCk7CisgICAgZXZhc19vYmpl
Y3RfbmFtZV9zZXQoYXBwLT5icm93c2VyLCAiYnJvd3NlciIpOworCisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInRpdGxlLGNoYW5nZWQiLCBvbl90aXRs
ZV9jaGFuZ2VkLCBhcHApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAt
PmJyb3dzZXIsICJsb2FkLHByb2dyZXNzIiwgb25fcHJvZ3Jlc3MsIGFwcCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQsZmluaXNoZWQiLCBv
bl9sb2FkX2ZpbmlzaGVkLCBhcHApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZChhcHAtPmJyb3dzZXIsICJ2aWV3cG9ydCxjaGFuZ2VkIiwgb25fdmlld3BvcnRfY2hhbmdlZCwg
YXBwKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIs
ICJ0b29sYmFycyx2aXNpYmxlLHNldCIsIG9uX3Rvb2xiYXJzX3Zpc2libGVfc2V0LCBhcHApOwor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJ0b29sYmFy
cyx2aXNpYmxlLGdldCIsIG9uX3Rvb2xiYXJzX3Zpc2libGVfZ2V0LCBhcHApOworICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJzdGF0dXNiYXIsdmlzaWJs
ZSxzZXQiLCBvbl9zdGF0dXNiYXJfdmlzaWJsZV9zZXQsIGFwcCk7CisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInN0YXR1c2Jhcix2aXNpYmxlLGdldCIs
IG9uX3N0YXR1c2Jhcl92aXNpYmxlX2dldCwgYXBwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAic2Nyb2xsYmFycyx2aXNpYmxlLHNldCIsIG9uX3Nj
cm9sbGJhcnNfdmlzaWJsZV9zZXQsIGFwcCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfYWRkKGFwcC0+YnJvd3NlciwgInNjcm9sbGJhcnMsdmlzaWJsZSxnZXQiLCBvbl9zY3JvbGxi
YXJzX3Zpc2libGVfZ2V0LCBhcHApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZChhcHAtPmJyb3dzZXIsICJtZW51YmFyLHZpc2libGUsc2V0Iiwgb25fbWVudWJhcl92aXNpYmxl
X3NldCwgYXBwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93
c2VyLCAibWVudWJhcix2aXNpYmxlLGdldCIsIG9uX21lbnViYXJfdmlzaWJsZV9nZXQsIGFwcCk7
CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInRvb2x0
aXAsdGV4dCxzZXQiLCBvbl90b29sdGlwX3RleHRfc2V0LCBhcHApOworICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJpbnB1dG1ldGhvZCxjaGFuZ2VkIiwg
b25faW5wdXRtZXRob2RfY2hhbmdlZCwgYXBwKTsKKworLyogICAgIGV3a19jYWxsYmFja19yZXNp
emVfcmVxdWVzdGVkX2FkZChhcHAtPmJyb3dzZXIsIG9uX3Jlc2l6ZV9yZXF1ZXN0ZWQsIGFwcC0+
ZWUpOyAqLworCisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3Nl
ciwgRVZBU19DQUxMQkFDS19SRVNJWkUsIG9uX3Jlc2l6ZWQsIGFwcCk7CisgICAgZXZhc19vYmpl
Y3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19LRVlfRE9X
Tiwgb25fa2V5X2Rvd24sIGFwcCk7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRk
KGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dOLCBvbl9tb3VzZV9kb3duLCBh
cHApOworICAgIGV2YXNfb2JqZWN0X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVW
QVNfQ0FMTEJBQ0tfRk9DVVNfSU4sIG9uX2ZvY3VzX2luLCBhcHApOworICAgIGV2YXNfb2JqZWN0
X2V2ZW50X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsIEVWQVNfQ0FMTEJBQ0tfRk9DVVNfT1VU
LCBvbl9mb2N1c19vdXQsIGFwcCk7CisgICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRk
KGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19ERUwsIG9uX2Jyb3dzZXJfZGVsLCBhcHApOwor
CisgICAgZXZhc19vYmplY3RfbW92ZShhcHAtPmJyb3dzZXIsIDEwLCAxMCk7CisgICAgZXZhc19v
YmplY3RfcmVzaXplKGFwcC0+YnJvd3NlciwgZ2VvbWV0cnkudyAtIDIwLCBnZW9tZXRyeS5oIC0g
MjApOworCisgICAgaWYgKHVybCAmJiAodXJsWzBdICE9ICdcMCcpKQorICAgICAgICBld2tfdmll
d191cmlfc2V0KGFwcC0+YnJvd3NlciwgdXJsKTsKKworICAgIGV2YXNfb2JqZWN0X3Nob3coYXBw
LT5icm93c2VyKTsKKyAgICBlY29yZV9ldmFzX3Nob3coYXBwLT5lZSk7CisKKyAgICBldmFzX29i
amVjdF9mb2N1c19zZXQoYXBwLT5icm93c2VyLCBFSU5BX1RSVUUpOworCisgICAgd2luZG93cyA9
IGVpbmFfbGlzdF9hcHBlbmQod2luZG93cywgYXBwKTsKKworICAgIHJldHVybiAxOworfQorCitz
dGF0aWMgdm9pZAorYnJvd3NlckRlc3Ryb3koRWNvcmVfRXZhcyAqZWUpCit7CisgICAgZWNvcmVf
ZXZhc19mcmVlKGVlKTsKKyAgICBpZiAoIWVpbmFfbGlzdF9jb3VudCh3aW5kb3dzKSkKKyAgICAg
ICAgZWNvcmVfbWFpbl9sb29wX3F1aXQoKTsKK30KKworc3RhdGljIHZvaWQKK2Nsb3NlV2luZG93
KEVjb3JlX0V2YXMgKmVlKQoreworICAgIEVpbmFfTGlzdCAqbDsKKyAgICB2b2lkICphcHA7Cisg
ICAgRUlOQV9MSVNUX0ZPUkVBQ0god2luZG93cywgbCwgYXBwKQorICAgIHsKKyAgICAgICAgaWYg
KCgoRUxhdW5jaGVyKikgYXBwKS0+ZWUgPT0gZWUpCisgICAgICAgICAgICBicmVhazsKKyAgICB9
CisgICAgd2luZG93cyA9IGVpbmFfbGlzdF9yZW1vdmUod2luZG93cywgYXBwKTsKKyAgICBicm93
c2VyRGVzdHJveShlZSk7CisgICAgZnJlZShhcHApOworfQorCitzdGF0aWMgRWluYV9Cb29sCitt
YWluX3NpZ25hbF9leGl0KHZvaWQgKmRhdGEsIGludCBldl90eXBlLCB2b2lkICpldikKK3sKKyAg
ICBFTGF1bmNoZXIgKmFwcDsKKyAgICB3aGlsZSAod2luZG93cykgeworICAgICAgICBhcHAgPSAo
RUxhdW5jaGVyKikgZWluYV9saXN0X2RhdGFfZ2V0KHdpbmRvd3MpOworICAgICAgICBlY29yZV9l
dmFzX2ZyZWUoYXBwLT5lZSk7CisgICAgICAgIHdpbmRvd3MgPSBlaW5hX2xpc3RfcmVtb3ZlKHdp
bmRvd3MsIGFwcCk7CisgICAgfQorICAgIGlmICghZWluYV9saXN0X2NvdW50KHdpbmRvd3MpKQor
ICAgICAgICBlY29yZV9tYWluX2xvb3BfcXVpdCgpOworICAgIHJldHVybiBFSU5BX1RSVUU7Cit9
CisKK3N0YXRpYyBjaGFyICoKK2ZpbmRUaGVtZVBhdGgodm9pZCkKK3sKKyAgICBjb25zdCBjaGFy
ICoqaXRyLCAqbG9jYXRpb25zW10gPSB7CisgICAgICAgICIuL2RlZmF1bHQuZWRqIiwKKyAgICAg
ICAgIi4vV2ViS2l0L2VmbC9EZWZhdWx0VGhlbWUvZGVmYXVsdC5lZGoiLAorICAgICAgICAiLi4v
V2ViS2l0L2VmbC9EZWZhdWx0VGhlbWUvZGVmYXVsdC5lZGoiLAorICAgICAgICBEQVRBX0RJUiIv
dGhlbWVzL2RlZmF1bHQuZWRqIiwKKyAgICAgICAgTlVMTAorICAgIH07CisKKyAgICBmb3IgKGl0
ciA9IGxvY2F0aW9uczsgKml0cjsgaXRyKyspIHsKKyAgICAgICAgc3RydWN0IHN0YXQgc3Q7Cisg
ICAgICAgIGlmICghc3RhdCgqaXRyLCAmc3QpKSB7CisgICAgICAgICAgICBjaGFyIHBhdGhbUEFU
SF9NQVhdOworICAgICAgICAgICAgaWYgKHJlYWxwYXRoKCppdHIsIHBhdGgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBzdHJkdXAocGF0aCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1
cm4gTlVMTDsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAg
Y29uc3QgY2hhciAqZGVmYXVsdF91cmwgPSAiaHR0cDovL3d3dy5nb29nbGUuY29tLyI7CisKKyAg
ICBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSA9IHswLCAwLCAwLCAwfTsKKyAgICBjaGFyICp1cmwg
PSBOVUxMOworICAgIGNoYXIgKnVzZXJBZ2VudCA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqdG1w
OworICAgIGNvbnN0IGNoYXIgKnByb3h5VXJpOworICAgIGNoYXIgcGF0aFtQQVRIX01BWF07CisK
KyAgICBjaGFyICplbmdpbmUgPSBOVUxMOworICAgIGNoYXIgKnRoZW1lID0gTlVMTDsKKworICAg
IHVuc2lnbmVkIGNoYXIgcXVpdE9wdGlvbiA9IDA7CisgICAgdW5zaWduZWQgY2hhciBpc0Z1bGxz
Y3JlZW4gPSAwOworICAgIHVuc2lnbmVkIGNoYXIgc3Vkb1dvcmthcm91bmQgPSAwOworICAgIGlu
dCBhcmdzOworCisgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0geworICAgICAgICBF
Q09SRV9HRVRPUFRfVkFMVUVfU1RSKGVuZ2luZSksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxV
RV9CT09MKHF1aXRPcHRpb24pLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfQk9PTChpc0Z1
bGxzY3JlZW4pLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfUFRSX0NBU1QoZ2VvbWV0cnkp
LAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKHRoZW1lKSwKKyAgICAgICAgRUNPUkVf
R0VUT1BUX1ZBTFVFX1NUUih1c2VyQWdlbnQpLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVf
Qk9PTChzdWRvV29ya2Fyb3VuZCksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9JTlQodmVy
Ym9zZSksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAorICAg
ICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfQk9PTChxdWl0T3B0aW9uKSwKKyAgICAgICAgRUNPUkVf
R0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCisgICAgICAgIEVDT1JFX0dFVE9QVF9WQUxV
RV9CT09MKHF1aXRPcHRpb24pLAorICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfTk9ORQorICAg
IH07CisKKyAgICBpZiAoIWVjb3JlX2V2YXNfaW5pdCgpKQorICAgICAgICByZXR1cm4gRVhJVF9G
QUlMVVJFOworCisgICAgaWYgKCFlZGplX2luaXQoKSkgeworICAgICAgICBlY29yZV9ldmFzX3No
dXRkb3duKCk7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorCisgICAgZWNv
cmVfYXBwX2FyZ3Nfc2V0KGFyZ2MsIChjb25zdCBjaGFyKiopIGFyZ3YpOworICAgIGFyZ3MgPSBl
Y29yZV9nZXRvcHRfcGFyc2UoJm9wdGlvbnMsIHZhbHVlcywgYXJnYywgYXJndik7CisKKyAgICBp
ZiAoYXJncyA8IDApCisgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3Vs
ZCBub3QgcGFyc2Ugb3B0aW9ucy5cbiIpOworCisgICAgaWYgKHF1aXRPcHRpb24pCisgICAgICAg
IHJldHVybiBxdWl0KEVJTkFfVFJVRSwgTlVMTCk7CisKKyAgICBpZiAoYXJncyA8IGFyZ2MpCisg
ICAgICAgIHVybCA9IGFyZ3ZbYXJnc107CisgICAgZWxzZQorICAgICAgICB1cmwgPSAoY2hhciop
IGRlZmF1bHRfdXJsOworCisgICAgaWYgKHN1ZG9Xb3JrYXJvdW5kKQorICAgICAgICBzdHJjYXQo
Z2V0ZW52KCJIT01FIiksICJibGFoIik7CisKKyAgICB0aGVtZVBhdGggPSBmaW5kVGhlbWVQYXRo
KCk7CisKKyAgICBld2tfaW5pdCgpOworICAgIHRtcCA9IGdldGVudigiVE1QRElSIik7CisgICAg
aWYgKCF0bXApCisgICAgICAgIHRtcCA9ICIvdG1wIjsKKyAgICBzbnByaW50ZihwYXRoLCBzaXpl
b2YocGF0aCksICIlcy8uZXdlYmtpdC0ldSIsIHRtcCwgZ2V0dWlkKCkpOworICAgIGVjb3JlX2Zp
bGVfbWtwYXRoKHBhdGgpOworICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX3BhdGhfc2V0
KHBhdGgpOworICAgIGV3a19zZXR0aW5nc193ZWJfZGF0YWJhc2VfcGF0aF9zZXQocGF0aCk7CisK
KyAgICBwcm94eVVyaSA9IGdldGVudigiaHR0cF9wcm94eSIpOworICAgIGlmIChwcm94eVVyaSkK
KyAgICAgICAgZXdrX3NldHRpbmdzX3Byb3h5X3VyaV9zZXQocHJveHlVcmkpOworCisgICAgYnJv
d3NlckNyZWF0ZSh1cmwsIHRoZW1lLCB1c2VyQWdlbnQsIGdlb21ldHJ5LCBlbmdpbmUsIGlzRnVs
bHNjcmVlbik7CisgICAgZWNvcmVfZXZlbnRfaGFuZGxlcl9hZGQoRUNPUkVfRVZFTlRfU0lHTkFM
X0VYSVQsIG1haW5fc2lnbmFsX2V4aXQsICZ3aW5kb3dzKTsKKworICAgIGVjb3JlX21haW5fbG9v
cF9iZWdpbigpOworCisgICAgZXdrX3NodXRkb3duKCk7CisKKyAgICByZXR1cm4gcXVpdChFSU5B
X1RSVUUsIE5VTEwpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA0YWQzZTFkLi40OTlkNmMyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMzks
NyArMzksNiBAQAogI2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTk0Niw5ICs5NDUsNCBAQCB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAg
ICAgZXdrX3ZpZXdfZnJhbWVfbWFpbl9jbGVhcmVkKG1fdmlldyk7CiB9CiAKLVBhc3NSZWZQdHI8
RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRnJhbWVMb2FkZXJDbGllbnRFZmw6OmNyZWF0ZU5ldHdv
cmtpbmdDb250ZXh0KCkKLXsKLSAgICByZXR1cm4gRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3Jl
YXRlKGNvcmUobV93ZWJGcmFtZS5nZXQoKSkpOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKaW5kZXggYmQxMDVjZC4uNTYxNzYw
YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRF
ZmwuaApAQCAtMjAyLDggKzIwMiw2IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVi
bGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNoZVBhZ2Uo
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7Ci0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICBwcml2YXRlOgogICAg
IEV2YXNfT2JqZWN0ICptX3ZpZXc7CiAgICAgRXZhc19PYmplY3QgKm1fZnJhbWU7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDUy
NjY1YjEuLjgwOThiN2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDM5ICsxLDMgQEAKLTIwMTAtMDktMDMgIEplc3VzIFNh
bmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIEFkZCBOZXR3b3JraW5nQ29udGV4
dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgotCi0gICAgICAgIEFkZCBHVEsncyBzcGVjaWZpYyBp
bXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgotCi0gICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmg6Ci0KLTIwMTAtMDktMDMgIFhhbiBM
b3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8g
Tm9yb25oYS4KLQotICAgICAgICBEaWFsb2cgc2VwYXJhdG9ycyBhcmUgZ29uZSBpbiBHVEsrIDMu
eC4KLQotICAgICAgICAqIHdlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5jOgotICAgICAgICAo
c2hvd19hdXRoX2RpYWxvZyk6Ci0KLTIwMTAtMDktMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5
c0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KLQot
ICAgICAgICBSRUdSRVNTSU9OOiBDcmFzaCBvY2N1cnMgYXQgb2JqY19tc2dTZW5kIHdoZW4gY2xv
c2luZyBhIHdpbmRvdyB0aGF0IGlzIGRpc3BsYXlpbmcgdGhlIHdlYiBpbnNwZWN0b3IKLSAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MjMwCi0KLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuY3BwOgotICAgICAgICAoV2Vi
S2l0Ojpub3RpZnlXZWJWaWV3RGVzdHJveWVkKToKLSAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQ6OmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3cpOgotICAgICAgICAoV2ViS2l0
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xvc2VXaW5kb3cpOgotICAgICAgICAoV2ViS2l0
OjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGlzY29ubmVjdEZyb21CYWNrZW5kKToKLSAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsuaDoKLQogMjAxMC0wOC0zMSAg
RGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0g
V2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50R3RrLmNwcAppbmRleCA0YjBkYTNkLi4yY2Y0ZjM2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcApAQCAtMzIsNyArMzIsNiBA
QAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyR3RrLmgiCiAjaW5jbHVkZSAiRm9ybVN0YXRlLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0R3RrLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgi
CiAjaW5jbHVkZSAiR093blB0ci5oIgpAQCAtMTE5NCw5ICsxMTkzLDQgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgcG9zdENv
bW1pdEZyYW1lVmlld1NldHVwKG1fZnJhbWUsIGZyYW1lLT52aWV3KCksIHRydWUpOwogfQogCi1Q
YXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IEZyYW1lTG9hZGVyQ2xpZW50OjpjcmVh
dGVOZXR3b3JraW5nQ29udGV4dCgpCi17Ci0gICAgcmV0dXJuIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHRHdGs6OmNyZWF0ZShjb3JlKG1fZnJhbWUpKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCmluZGV4IDc1MzU3NmIuLjMzZTll
ZTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
R3RrLmgKQEAgLTE4MSw5ICsxODEsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
b3dubG9hZChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmKTsKLQotICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKLQog
ICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgICAgICBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIG1fcmVzcG9uc2U7CmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEd0ay5jcHAKaW5kZXggYzhiNDJkNy4uYWVkZjIx
ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRH
dGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3Rr
LmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHZvaWQg
bm90aWZ5V2ViVmlld0Rlc3Ryb3llZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBJbnNwZWN0b3JG
cm9udGVuZENsaWVudCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpCiB7Ci0gICAgaW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3codHJ1ZSk7CisgICAgaW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQtPmRlc3Ryb3lJbnNwZWN0b3JXaW5kb3coKTsKIH0KIAogSW5zcGVj
dG9yQ2xpZW50OjpJbnNwZWN0b3JDbGllbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKQEAgLTI3
NCw3ICsyNzQsNyBAQCBJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6fkluc3BlY3RvckZyb250ZW5k
Q2xpZW50KCkKICAgICBBU1NFUlQoIW1fd2ViSW5zcGVjdG9yKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvcldpbmRvdyhib29sIG5vdGlmeUluc3Bl
Y3RvckNvbnRyb2xsZXIpCit2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpkZXN0cm95SW5z
cGVjdG9yV2luZG93KCkKIHsKICAgICBpZiAoIW1fd2ViSW5zcGVjdG9yKQogICAgICAgICByZXR1
cm47CkBAIC0yODQsOCArMjg0LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVz
dHJveUluc3BlY3RvcldpbmRvdyhib29sIG5vdGlmeUluc3BlY3RvckNvbnRyb2wKICAgICBnX3Np
Z25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMobV9pbnNwZWN0b3JXZWJWaWV3LCAoZ3Bv
aW50ZXIpbm90aWZ5V2ViVmlld0Rlc3Ryb3llZCwgKGdwb2ludGVyKXRoaXMpOwogICAgIG1faW5z
cGVjdG9yV2ViVmlldyA9IDA7CiAKLSAgICBpZiAobm90aWZ5SW5zcGVjdG9yQ29udHJvbGxlcikK
LSAgICAgICAgY29yZShtX2luc3BlY3RlZFdlYlZpZXcpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkt
PmRpc2Nvbm5lY3RGcm9udGVuZCgpOworICAgIGNvcmUobV9pbnNwZWN0ZWRXZWJWaWV3KS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsKIAogICAgIGlmIChtX2lu
c3BlY3RvckNsaWVudCkKICAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVu
ZFBhZ2UoKTsKQEAgLTMyNywxMiArMzI2LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6YnJpbmdUb0Zyb250KCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xvc2VX
aW5kb3coKQogewotICAgIGRlc3Ryb3lJbnNwZWN0b3JXaW5kb3codHJ1ZSk7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpCi17Ci0gICAg
ZGVzdHJveUluc3BlY3RvcldpbmRvdyhmYWxzZSk7CisgICAgZGVzdHJveUluc3BlY3RvcldpbmRv
dygpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphdHRhY2hXaW5kb3coKQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRHdGsu
aCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50R3RrLmgKaW5kZXgg
MDgwMzhmNi4uOGI2ODQwNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEd0ay5oCkBAIC04MCw3ICs4MCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAg
ICAgICAgIHZvaWQgZGlzY29ubmVjdEluc3BlY3RvckNsaWVudCgpIHsgbV9pbnNwZWN0b3JDbGll
bnQgPSAwOyB9CiAKLSAgICAgICAgdm9pZCBkZXN0cm95SW5zcGVjdG9yV2luZG93KGJvb2wgbm90
aWZ5SW5zcGVjdG9yQ29udHJvbGxlcik7CisgICAgICAgIHZvaWQgZGVzdHJveUluc3BlY3Rvcldp
bmRvdygpOwogCiAgICAgICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVkU3RyaW5nc1VS
TCgpOwogCkBAIC04OCw3ICs4OCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBicmluZ1RvRnJvbnQoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2lu
ZG93KCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbUJhY2tlbmQoKTsKIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KCk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2hXaW5kb3coKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNv
dXBhdXRoZGlhbG9nLmMgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzb3VwYXV0aGRpYWxvZy5j
CmluZGV4IDBjZjFjMjMuLmRhZWNjNzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHNvdXBhdXRoZGlhbG9nLmMKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c291cGF1
dGhkaWFsb2cuYwpAQCAtMjEzLDkgKzIxMyw3IEBAIHN0YXRpYyB2b2lkIHNob3dfYXV0aF9kaWFs
b2coV2ViS2l0QXV0aERhdGEqIGF1dGhEYXRhLCBjb25zdCBjaGFyKiBsb2dpbiwgY29uc3QKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwogCiAgICAgLyogU2V0IHRoZSBkaWFsb2cg
dXAgd2l0aCBISUcgcHJvcGVydGllcyAqLwotI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiAgICAg
Z3RrX2RpYWxvZ19zZXRfaGFzX3NlcGFyYXRvcihkaWFsb2csIEZBTFNFKTsKLSNlbmRpZgogICAg
IGd0a19jb250YWluZXJfc2V0X2JvcmRlcl93aWR0aChHVEtfQ09OVEFJTkVSKGRpYWxvZyksIDUp
OwogICAgIGd0a19ib3hfc2V0X3NwYWNpbmcoR1RLX0JPWChndGtfZGlhbG9nX2dldF9jb250ZW50
X2FyZWEoZGlhbG9nKSksIDIpOyAvKiAyICogNSArIDIgPSAxMiAqLwogICAgIGd0a19jb250YWlu
ZXJfc2V0X2JvcmRlcl93aWR0aChHVEtfQ09OVEFJTkVSKGd0a19kaWFsb2dfZ2V0X2FjdGlvbl9h
cmVhKGRpYWxvZykpLCA1KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMGY1OGZkMy4uZGM3ZTk4MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsODYgKzEs
MyBAQAotMjAxMC0wOS0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgotCi0gICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIFJlbmFtZSBTZWN1cml0eU9y
aWdpbjo6Y2FuTG9hZCB0byBjYW5EaXNwbGF5Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTIxNAotCi0gICAgICAgIFByb3BhZ2F0ZSBuYW1lIGNoYW5n
ZS4KLQotICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94
eS5tbToKLSAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Ojpsb2Fk
UmVxdWVzdCk6Ci0gICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbToK
LSAgICAgICAgKFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpXZWJOZXRzY2FwZVBsdWdpblN0cmVh
bSk6Ci0gICAgICAgICogUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW06Ci0gICAgICAg
ICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBsb2FkUmVxdWVzdDppblRhcmdldDp3aXRoTm90aWZ5
RGF0YTpzZW5kTm90aWZpY2F0aW9uOl0pOgotICAgICAgICAqIFBsdWdpbnMvV2ViUGx1Z2luQ29u
dGFpbmVyQ2hlY2subW06Ci0gICAgICAgICgtW1dlYlBsdWdpbkNvbnRhaW5lckNoZWNrIF9pc0Zv
cmJpZGRlbkZpbGVMb2FkXSk6Ci0gICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKLSAgICAg
ICAgKC1bV2ViRnJhbWUgX2FsbG93c0ZvbGxvd2luZ0xpbms6XSk6Ci0KLTIwMTAtMDktMDMgIEpl
c3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgotCi0g
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgotCi0gICAgICAgIEFkZCBOZXR3b3JraW5n
Q29udGV4dCB0byBhdm9pZCBsYXllciB2aW9sYXRpb25zCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjI5MgotCi0gICAgICAgIEFkZCBNYWMncyBzcGVj
aWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0LgotCi0gICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKLSAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgotICAgICAgICAoV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgotICAgICAgICAoV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6Ci0g
ICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzY2hlZHVsZWRSdW5Mb29wUGFpcnMp
OgotICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKToKLQot
MjAxMC0wOS0wMyAgSm9obiBTdWxsaXZhbiAgPHN1bGxpdmFuQGFwcGxlLmNvbT4KLQotICAgICAg
ICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgotICAgICAgICAKLSAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTc1Ci0gICAgICAgIFtXZWJWaWV3IHVu
bWFya0FsbFRleHRNYXRjaGVzXSB3aWxsIGNyYXNoIGlmIHRoZSB3ZWJ2aWV3IGlzIGFscmVhZHkg
Y2xvc2VkCi0KLSAgICAgICAgTWFkZSB0aGlzIGFuZCByZWxhdGVkIG1ldGhvZHMgcm9idXN0IGFn
YWluc3QgYmVpbmcgY2FsbGVkIHdoZW4gdGhlIFdlYlZpZXcgaXMgY2xvc2VkLgotCi0gICAgICAg
ICogV2ViVmlldy9XZWJWaWV3Lm1tOgotICAgICAgICAoLVtXZWJWaWV3IG1hcmtBbGxNYXRjaGVz
Rm9yVGV4dDpjYXNlU2Vuc2l0aXZlOmhpZ2hsaWdodDpsaW1pdDpdKToKLSAgICAgICAgQmFpbCBv
dXQgaWYgdGhlIFdlYlZpZXcgaXMgY2xvc2VkLgotICAgICAgICAoLVtXZWJWaWV3IGNvdW50TWF0
Y2hlc0ZvclRleHQ6Y2FzZVNlbnNpdGl2ZTpoaWdobGlnaHQ6bGltaXQ6bWFya01hdGNoZXM6XSk6
Ci0gICAgICAgIERpdHRvLgotICAgICAgICAoLVtXZWJWaWV3IHVubWFya0FsbFRleHRNYXRjaGVz
XSk6Ci0gICAgICAgIERpdHRvLgotICAgICAgICAoLVtXZWJWaWV3IHJlY3RzRm9yVGV4dE1hdGNo
ZXNdKToKLSAgICAgICAgRGl0dG8uCi0KLTIwMTAtMDktMDMgIEhpcm9ub3JpIEJvbm8gIDxoYm9u
b0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCi0KLSAg
ICAgICAgQWRkcyB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKCkgdG8gYXZv
aWQgdXNpbmcgcGl4ZWwgdGVzdHMgZm9yIHNwZWxsY2hlY2tpbmcgdGVzdHMKLSAgICAgICAgYW5k
IGltcGxlbWVudHMgaXQgZm9yIE1hYy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQxODMyCi0KLSAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOiBJ
bXBsZW1lbnRlZCBbV2ViRnJhbWUgaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOl0uCi0gICAgICAg
IChzcGVsbGluZ05vZGUpOgotICAgICAgICAoLVtXZWJGcmFtZSBoYXNTcGVsbGluZ01hcmtlcjps
ZW5ndGg6XSk6Ci0gICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDogQWRkZWQgW1dl
YkZyYW1lIGhhc1NwZWxsaW5nTWFya2VyOmxlbmd0aDpdIHNvIFRleHRJbnB1dENvbnRyb2xsZXIg
Y2FuIHVzZSBpdC4KLQotMjAxMC0wOS0wMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9t
aXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgotCi0gICAgICAg
IFJFR1JFU1NJT046IENyYXNoIG9jY3VycyBhdCBvYmpjX21zZ1NlbmQgd2hlbiBjbG9zaW5nIGEg
d2luZG93IHRoYXQgaXMgZGlzcGxheWluZyB0aGUgd2ViIGluc3BlY3RvcgotICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMzAKLQotICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oOgotICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5tbToKLSAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5k
Q2xpZW50OjpjbG9zZVdpbmRvdyk6Ci0gICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6ZGlzY29ubmVjdEZyb21CYWNrZW5kKToKLSAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93
Q29udHJvbGxlciB3aW5kb3dTaG91bGRDbG9zZTpdKToKLSAgICAgICAgKC1bV2ViSW5zcGVjdG9y
V2luZG93Q29udHJvbGxlciBkZXN0cm95SW5zcGVjdG9yVmlldzpdKToKLQogMjAxMC0wOS0wMiAg
U3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tIGIvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggODhkZjRjZi4uYThkZDA5YiAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkubW0KKysrIGIvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbklu
c3RhbmNlUHJveHkubW0KQEAgLTc2Miw3ICs3NjIsNyBAQCBOUEVycm9yIE5ldHNjYXBlUGx1Z2lu
SW5zdGFuY2VQcm94eTo6bG9hZFJlcXVlc3QoTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0LCBjb25zdCBj
aAogICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgewotICAgICAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5KFVSTCwg
U3RyaW5nKCksIGNvcmUoW21fcGx1Z2luVmlldyB3ZWJGcmFtZV0pLT5kb2N1bWVudCgpKSkKKyAg
ICAgICAgaWYgKCFTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZChVUkwsIFN0cmluZygpLCBjb3JlKFtt
X3BsdWdpblZpZXcgd2ViRnJhbWVdKS0+ZG9jdW1lbnQoKSkpCiAgICAgICAgICAgICByZXR1cm4g
TlBFUlJfR0VORVJJQ19FUlJPUjsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0gYi9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViTmV0c2NhcGVQbHVnaW5TdHJlYW0ubW0KaW5kZXggMzVhZjQzOS4uNWMxZThlZSAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luU3RyZWFtLm1tCisrKyBi
L1dlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblN0cmVhbS5tbQpAQCAtMTYxLDcg
KzE2MSw3IEBAIFdlYk5ldHNjYXBlUGx1Z2luU3RyZWFtOjpXZWJOZXRzY2FwZVBsdWdpblN0cmVh
bShOU1VSTFJlcXVlc3QgKnJlcXVlc3QsIE5QUCBwbHVnCiAgICAgV2ViTmV0c2NhcGVQbHVnaW5W
aWV3ICp2aWV3ID0gKFdlYk5ldHNjYXBlUGx1Z2luVmlldyAqKXBsdWdpbi0+bmRhdGE7CiAgICAg
CiAgICAgLy8gVGhpcyBjaGVjayBoYXMgYWxyZWFkeSBiZWVuIGRvbmUgYnkgdGhlIHBsdWctaW4g
dmlldy4KLSAgICBBU1NFUlQoU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkoW3JlcXVlc3QgVVJM
XSwgU3RyaW5nKCksIGNvcmUoW3ZpZXcgd2ViRnJhbWVdKS0+ZG9jdW1lbnQoKSkpOworICAgIEFT
U0VSVChTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZChbcmVxdWVzdCBVUkxdLCBTdHJpbmcoKSwgY29y
ZShbdmlldyB3ZWJGcmFtZV0pLT5kb2N1bWVudCgpKSk7CiAgICAgCiAgICAgQVNTRVJUKFtyZXF1
ZXN0IFVSTF0pOwogICAgIEFTU0VSVChwbHVnaW4pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9Q
bHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJO
ZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggZTk4YzZiNy4uYTQ0ODFiYyAxMDA2NDQKLS0tIGEv
V2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQorKysgYi9XZWJLaXQv
bWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC0xNzI4LDcgKzE3MjgsNyBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0TlBSZWN0KGNvbnN0IE5TUmVjdCYgbnIsIE5QUmVjdCYg
bnByKQogICAgICAgICAgICAgcmV0dXJuIE5QRVJSX0lOVkFMSURfUEFSQU07CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewotICAgICAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5KFVS
TCwgU3RyaW5nKCksIGNvcmUoW3NlbGYgd2ViRnJhbWVdKS0+ZG9jdW1lbnQoKSkpCisgICAgICAg
IGlmICghU2VjdXJpdHlPcmlnaW46OmNhbkxvYWQoVVJMLCBTdHJpbmcoKSwgY29yZShbc2VsZiB3
ZWJGcmFtZV0pLT5kb2N1bWVudCgpKSkKICAgICAgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklD
X0VSUk9SOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1BsdWdpbnMv
V2ViUGx1Z2luQ29udGFpbmVyQ2hlY2subW0gYi9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2lu
Q29udGFpbmVyQ2hlY2subW0KaW5kZXggZTI3M2JmYy4uNTYwOWQ4MCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRhaW5lckNoZWNrLm1tCisrKyBiL1dlYktpdC9t
YWMvUGx1Z2lucy9XZWJQbHVnaW5Db250YWluZXJDaGVjay5tbQpAQCAtOTksNyArOTksNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHsKICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKFtf
Y29udHJvbGxlciB3ZWJGcmFtZV0pOwogICAgQVNTRVJUKGNvcmVGcmFtZSk7Ci0gICBpZiAoIVNl
Y3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5KFtfcmVxdWVzdCBVUkxdLCBTdHJpbmcoKSwgY29yZUZy
YW1lLT5kb2N1bWVudCgpKSkgeworICAgaWYgKCFTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZChbX3Jl
cXVlc3QgVVJMXSwgU3RyaW5nKCksIGNvcmVGcmFtZS0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICBb
c2VsZiBfY29udGludWVXaXRoUG9saWN5OlBvbGljeUlnbm9yZV07CiAgICAgICAgcmV0dXJuIFlF
UzsKICAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCBjYmI4OWVjLi5kOTMyZTY2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMjgsOCArMjI4LDYgQEAgcHJp
dmF0ZToKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2FjaGVQYWdlKCkgY29uc3Q7CiAgICAg
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+
IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7Ci0KICAgICBSZXRhaW5QdHI8V2ViRnJhbWU+IG1f
d2ViRnJhbWU7CiAKICAgICBSZXRhaW5QdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lcj4gbV9wb2xp
Y3lMaXN0ZW5lcjsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCmluZGV4IGRjYmNhMjguLjNmN2M0NzEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNDcsNyArNDcsNiBA
QAogI2ltcG9ydCAiV2ViRm9ybURlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFs
LmgiCiAjaW1wb3J0ICJXZWJGcmFtZUxvYWREZWxlZ2F0ZS5oIgotI2ltcG9ydCAiV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViRnJhbWVWaWV3SW50ZXJuYWwuaCIKICNp
bXBvcnQgIldlYkhUTUxSZXByZXNlbnRhdGlvblByaXZhdGUuaCIKICNpbXBvcnQgIldlYkhUTUxW
aWV3SW50ZXJuYWwuaCIKQEAgLTE5MDUsMTEgKzE5MDQsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29uc3QKICAgICAgICAgW3ByZWZl
cmVuY2VzIHNldENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50QnJvd3Nlcl07CiB9CiAK
LVBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKLXsKLSAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUobV93ZWJGcmFtZS5nZXQoKSkpOwotfQotCiAjaWYgRU5B
QkxFKEpBVkFfQlJJREdFKQogam9iamVjdCBXZWJGcmFtZUxvYWRlckNsaWVudDo6amF2YUFwcGxl
dChOU1ZpZXcqIHZpZXcpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggOThiOGNlMS4uOTQxY2ZhYSAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQpAQCAtMTcsMzAgKzE3LDUgQEAKICAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KICovCiAKLSNpbXBvcnQgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKLQotI2lt
cG9ydCA8V2ViQ29yZS9QYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLWJvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MoKSBjb25zdAotewotICAgIHJldHVybiBmcmFtZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkg
JiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKLX0KLQot
Ym9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5n
cygpICYmIGZyYW1lKCktPnNldHRpbmdzKCktPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQoKTsKLX0KLQotU2NoZWR1bGVQYWlySGFzaFNldCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZnJhbWUoKSAm
JiBmcmFtZSgpLT5wYWdlKCkgPyBmcmFtZSgpLT5wYWdlKCktPnNjaGVkdWxlZFJ1bkxvb3BQYWly
cygpIDogMDsKLX0KLQotUmVzb3VyY2VFcnJvciBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojpi
bG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAotewotICAg
IHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+YmxvY2tlZEVycm9yKHJlcXVlc3QpOwotfQorLy8g
Q2hlY2tpbmcgdGhpcyBmaWxlIGluIGVtcHR5IHRvIGdldCB0aGUgYnVpbGQgc3lzdGVtIHdvcmsg
b3V0IG9mIHRoZSB3YXkuCisvLyBXaWxsIHB1dCB0aGUgY29kZSBpbiBoZXJlIGxhdGVyLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaCBi
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggNzVh
M2NjNi4uZDMzZTNiOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5oCkBAIC04NCw3ICs4NCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBicmluZ1RvRnJvbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3coKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzY29ubmVjdEZyb21CYWNrZW5kKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaFdpbmRvdygpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQppbmRleCBkNGQw
MjEzLi43Y2FlOGZjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5tbQpAQCAtNjYsNyArNjYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IC0gKHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Kilm
cm9udGVuZENsaWVudDsKIC0gKHZvaWQpc2V0SW5zcGVjdG9yQ2xpZW50OihXZWJJbnNwZWN0b3JD
bGllbnQqKWluc3BlY3RvckNsaWVudDsKIC0gKHZvaWQpc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQ6
KHVuc2lnbmVkKWhlaWdodDsKLS0gKHZvaWQpZGVzdHJveUluc3BlY3RvclZpZXc6KGJvb2wpbm90
aWZ5SW5zcGVjdG9yQ29udHJvbGxlcjsKKy0gKHZvaWQpZGVzdHJveUluc3BlY3RvclZpZXc7CiBA
ZW5kCiAKICNwcmFnbWEgbWFyayAtCkBAIC0xNjksMTIgKzE2OSw3IEBAIHZvaWQgV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OmJyaW5nVG9Gcm9udCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQ6OmNsb3NlV2luZG93KCkKIHsKLSAgICBbbV93aW5kb3dDb250cm9sbGVyLmdl
dCgpIGRlc3Ryb3lJbnNwZWN0b3JWaWV3OnRydWVdOwotfQotCi12b2lkIFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpkaXNjb25uZWN0RnJvbUJhY2tlbmQoKQotewotICAgIFttX3dpbmRvd0Nv
bnRyb2xsZXIuZ2V0KCkgZGVzdHJveUluc3BlY3RvclZpZXc6ZmFsc2VdOworICAgIFttX3dpbmRv
d0NvbnRyb2xsZXIuZ2V0KCkgZGVzdHJveUluc3BlY3RvclZpZXddOwogfQogCiB2b2lkIFdlYklu
c3BlY3RvckZyb250ZW5kQ2xpZW50OjphdHRhY2hXaW5kb3coKQpAQCAtMzEzLDcgKzMwOCw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnVwZGF0ZVdpbmRvd1RpdGxlKCkgY29u
c3QKIAogLSAoQk9PTCl3aW5kb3dTaG91bGRDbG9zZTooaWQpc2VuZGVyCiB7Ci0gICAgW3NlbGYg
ZGVzdHJveUluc3BlY3RvclZpZXc6dHJ1ZV07CisgICAgW3NlbGYgZGVzdHJveUluc3BlY3RvclZp
ZXddOwogCiAgICAgcmV0dXJuIFlFUzsKIH0KQEAgLTQ0NCw3ICs0MzksNyBAQCB2b2lkIFdlYklu
c3BlY3RvckZyb250ZW5kQ2xpZW50Ojp1cGRhdGVXaW5kb3dUaXRsZSgpIGNvbnN0CiAgICAgW2Zy
YW1lVmlldyBzZXRGcmFtZTpmcmFtZVZpZXdSZWN0XTsKIH0KIAotLSAodm9pZClkZXN0cm95SW5z
cGVjdG9yVmlldzooYm9vbClub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyCistICh2b2lkKWRlc3Ry
b3lJbnNwZWN0b3JWaWV3CiB7CiAgICAgaWYgKF9kZXN0cm95aW5nSW5zcGVjdG9yVmlldykKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDU1LDEyICs0NTAsMTAgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudDo6dXBkYXRlV2luZG93VGl0bGUoKSBjb25zdAogCiAgICAgX3Zpc2libGUgPSBO
TzsKIAotICAgIGlmIChub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKSB7Ci0gICAgICAgIGlmIChQ
YWdlKiBpbnNwZWN0ZWRQYWdlID0gW19pbnNwZWN0ZWRXZWJWaWV3IHBhZ2VdKQotICAgICAgICAg
ICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRl
bmQoKTsKKyAgICBpZiAoUGFnZSogaW5zcGVjdGVkUGFnZSA9IFtfaW5zcGVjdGVkV2ViVmlldyBw
YWdlXSkKKyAgICAgICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNj
b25uZWN0RnJvbnRlbmQoKTsKIAotICAgICAgICBfaW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJv
bnRlbmRQYWdlKCk7Ci0gICAgfQorICAgIF9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9udGVu
ZFBhZ2UoKTsKIAogICAgIFtfd2ViVmlldyBjbG9zZV07CiB9CmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0K
aW5kZXggNjMxNWQ0My4uMWZlYjk3ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTI4Miw3
ICsxMjgyLDcgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3Vt
ZW50TG9hZGVyKiBsb2FkZXIpCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAg
ICAgICByZXR1cm4gWUVTOwotICAgIHJldHVybiBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheShV
UkwsIFN0cmluZygpLCBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICByZXR1
cm4gU2VjdXJpdHlPcmlnaW46OmNhbkxvYWQoVVJMLCBTdHJpbmcoKSwgX3ByaXZhdGUtPmNvcmVG
cmFtZS0+ZG9jdW1lbnQoKSk7CiB9CiAKIC0gKE5TU3RyaW5nICopX3N0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHRGcm9tU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB3aXRoR2xvYmFsT2JqZWN0
OihKU09iamVjdFJlZilnbG9iYWxPYmplY3RSZWYgaW5TY3JpcHRXb3JsZDooV2ViU2NyaXB0V29y
bGQgKil3b3JsZApAQCAtMTM2Niw0MCArMTM2Niw2IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNv
dXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIHJldHVybiBjb3Jl
RnJhbWUtPmxheWVyVHJlZUFzVGV4dCgpOwogfQogCi1zdGF0aWMgTm9kZSogc3BlbGxpbmdOb2Rl
KEZyYW1lKiBjb3JlRnJhbWUpCi17Ci0gICAgTm9kZSogZm9jdXNlZE5vZGUgPSBjb3JlRnJhbWUt
PmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCk7Ci0gICAgaWYgKCFmb2N1c2VkTm9kZSB8fCAhZm9j
dXNlZE5vZGUtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZm9yIChjb25z
dCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCk7IHJlbmRl
cmVyOyByZW5kZXJlciA9IHJlbmRlcmVyLT5jaGlsZEF0KDApKSB7Ci0gICAgICAgIGlmIChyZW5k
ZXJlci0+aXNUZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPm5vZGUoKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClm
cm9tIGxlbmd0aDooaW50KWxlbmd0aAotewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0
ZS0+Y29yZUZyYW1lOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm4gTk87Ci0K
LSAgICBOb2RlKiBub2RlID0gc3BlbGxpbmdOb2RlKGNvcmVGcmFtZSk7Ci0gICAgaWYgKCFub2Rl
KQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20pOwotICAgIHVuc2lnbmVkIGludCBlbmRPZmZz
ZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20gKyBsZW5ndGgpOwotICAgIFZlY3Rv
cjxEb2N1bWVudE1hcmtlcj4gbWFya2VycyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2Vy
cygpLT5tYXJrZXJzRm9yTm9kZShub2RlKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1h
cmtlcnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgRG9jdW1lbnRNYXJrZXIgbWFya2VyID0gbWFy
a2Vyc1tpXTsKLSAgICAgICAgaWYgKG1hcmtlci5zdGFydE9mZnNldCA8PSBzdGFydE9mZnNldCAm
JiBlbmRPZmZzZXQgPD0gbWFya2VyLmVuZE9mZnNldCAmJiBtYXJrZXIudHlwZSA9PSBEb2N1bWVu
dE1hcmtlcjo6U3BlbGxpbmcpCi0gICAgICAgICAgICByZXR1cm4gWUVTOwotICAgIH0KLSAgICBy
ZXR1cm4gTk87Ci19Ci0KIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkZyYW1lCmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKaW5kZXggOWNiNjIzMi4uYTEwMzFmMyAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaApAQCAtMTQzLDcgKzE0Myw0IEBAIHR5cGVkZWYgZW51
bSB7CiAKIC0gKE5TU3RyaW5nKilfbGF5ZXJUcmVlQXNUZXh0OwogCi0vLyBSZXR1cm5zIHdoZXRo
ZXIgdGhlcmUgaXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0
aGUgZm9jdXNlZCBub2RlLgotLSAoQk9PTCloYXNTcGVsbGluZ01hcmtlcjooaW50KWxvY2F0aW9u
IGxlbmd0aDooaW50KWxlbmd0aDsKLQogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA0NzA4
NTViLi44YjJmMGVkIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNDM4MCwxNyArNDM4MCwxMSBA
QCBzdGF0aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHVlIGpzVmFsdQogCiAtIChOU1VJbnRlZ2VyKW1hcmtBbGxNYXRjaGVz
Rm9yVGV4dDooTlNTdHJpbmcgKilzdHJpbmcgY2FzZVNlbnNpdGl2ZTooQk9PTCljYXNlRmxhZyBo
aWdobGlnaHQ6KEJPT0wpaGlnaGxpZ2h0IGxpbWl0OihOU1VJbnRlZ2VyKWxpbWl0CiB7Ci0gICAg
aWYgKF9wcml2YXRlLT5jbG9zZWQpCi0gICAgICAgIHJldHVybiAwOwotCiAgICAgcmV0dXJuIFtz
ZWxmIGNvdW50TWF0Y2hlc0ZvclRleHQ6c3RyaW5nIGNhc2VTZW5zaXRpdmU6Y2FzZUZsYWcgaGln
aGxpZ2h0OmhpZ2hsaWdodCBsaW1pdDpsaW1pdCBtYXJrTWF0Y2hlczpZRVNdOwogfQogCiAtIChO
U1VJbnRlZ2VyKWNvdW50TWF0Y2hlc0ZvclRleHQ6KE5TU3RyaW5nICopc3RyaW5nIGNhc2VTZW5z
aXRpdmU6KEJPT0wpY2FzZUZsYWcgaGlnaGxpZ2h0OihCT09MKWhpZ2hsaWdodCBsaW1pdDooTlNV
SW50ZWdlcilsaW1pdCBtYXJrTWF0Y2hlczooQk9PTCltYXJrTWF0Y2hlcwogewotICAgIGlmIChf
cHJpdmF0ZS0+Y2xvc2VkKQotICAgICAgICByZXR1cm4gMDsKLQogICAgIFdlYkZyYW1lICpmcmFt
ZSA9IFtzZWxmIG1haW5GcmFtZV07CiAgICAgdW5zaWduZWQgbWF0Y2hDb3VudCA9IDA7CiAgICAg
ZG8gewpAQCAtNDQxNSw5ICs0NDA5LDYgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3Iq
IGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBqc1ZhbHUKIAogLSAo
dm9pZCl1bm1hcmtBbGxUZXh0TWF0Y2hlcwogewotICAgIGlmIChfcHJpdmF0ZS0+Y2xvc2VkKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBXZWJGcmFtZSAqZnJhbWUgPSBbc2VsZiBtYWluRnJhbWVd
OwogICAgIGRvIHsKICAgICAgICAgaWQgPFdlYkRvY3VtZW50Vmlldz4gdmlldyA9IFtbZnJhbWUg
ZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOwpAQCAtNDQzMCw5ICs0NDIxLDYgQEAgc3RhdGljIE5T
QXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBqc1ZhbHUKIAogLSAoTlNBcnJheSAqKXJlY3RzRm9yVGV4dE1hdGNoZXMKIHsKLSAg
ICBpZiAoX3ByaXZhdGUtPmNsb3NlZCkKLSAgICAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5XTsK
LQogICAgIE5TTXV0YWJsZUFycmF5ICpyZXN1bHQgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOwog
ICAgIFdlYkZyYW1lICpmcmFtZSA9IFtzZWxmIG1haW5GcmFtZV07CiAgICAgZG8gewpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZjRk
ZDJkYi4uYTIzNTRkNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDY4ICsxLDMgQEAKLTIwMTAtMDktMDUgIFNoZXJpZmYgQm90
ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgotCi0gICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHI2NjgwMS4KLSAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvNjY4MDEKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ1MjQyCi0KLSAgICAgICAgJ2JyZWFrcyBlZGl0aW5nL3Bhc3RlYm9hcmQvb25wYXN0ZS10ZXh0
LWh0bWwuaHRtbCcgKFJlcXVlc3RlZAotICAgICAgICBieSBtd2VuZ2U0IG9uICN3ZWJraXQpLgot
Ci0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgotICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgotCi0yMDEwLTA5
LTA1ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdl
ZCBieSBBbnRvbmlvIEdvbWVzLgotCi0gICAgICAgIFtRdF0gdXRmOCBlbmNvZGluZyBvZiBjb25z
b2xlKCkgbWVzc2FnZXMKLQotICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZW1iZWQtdGFnLW51bGwtY2hhci5odG1sCi0gICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9vYmplY3QtZW1iZWQtdGFnLW51bGwtY2hhci5odG1sCi0KLSAgICAgICAgYm90aCBm
YWlsIGJlY2F1c2UgQ2hyb21lQ2xpZW50UXQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoKSBpcwotICAg
ICAgICBjYXN0aW5nIFN0cmluZyB0byBRU3RyaW5nIHJhdGhlciB0aGFuIFN0cmluZzo6dXRmOCgp
LmRhdGEoKQotCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTI0MAotCi0gICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgot
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOgot
Ci0yMDEwLTA5LTAzICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3Bl
bmJvc3NhLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KLQotICAgICAg
ICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9ucwotICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIKLQotICAgICAg
ICBBZGQgUXQncyBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBvZiBOZXR3b3JraW5nQ29udGV4dC4K
LQotICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgotICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6c2V0RnJhbWUpOgotICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQpOgot
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKLSAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3BwOgotICAgICAgICAo
V2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0
UXQpOgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpjcmVhdGUp
OgotICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpvcmlnaW5hdGlu
Z09iamVjdCk6Ci0gICAgICAgIChXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6Om5l
dHdvcmtBY2Nlc3NNYW5hZ2VyKToKLQotMjAxMC0wOS0wMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1
cnlzQGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgot
Ci0gICAgICAgIFJFR1JFU1NJT046IENyYXNoIG9jY3VycyBhdCBvYmpjX21zZ1NlbmQgd2hlbiBj
bG9zaW5nIGEgd2luZG93IHRoYXQgaXMgZGlzcGxheWluZyB0aGUgd2ViIGluc3BlY3RvcgotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQyMzAKLQotICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmNwcDoKLSAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNsaWVudFF0OjppbnNwZWN0b3JEZXN0cm95ZWQpOgotICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ2xpZW50UXQ6Om9wZW5JbnNwZWN0b3JGcm9udGVuZCk6Ci0gICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDbGllbnRRdDo6cmVsZWFzZUZyb250ZW5kUGFnZSk6Ci0g
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudFF0OjpjbG9zZVdpbmRvdyk6
Ci0gICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudFF0OjpkaXNjb25uZWN0
RnJvbUJhY2tlbmQpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRR
dDo6ZGVzdHJveUluc3BlY3RvclZpZXcpOgotICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRRdDo6aW5zcGVjdG9yQ2xpZW50RGVzdHJveWVkKToKLSAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5oOgotCiAyMDEwLTA5LTAyICBBbmRyZWFzIEts
aW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQg
YnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAKaW5kZXggMmQ3M2Y3Zi4uNTlmNmFjNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMzUsNyArMzUs
NiBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJGb3JtU3RhdGUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudFF0LmgiCi0jaW5jbHVkZSAiRnJhbWVOZXR3
b3JraW5nQ29udGV4dFF0LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTIwNSw3ICsyMDQsNiBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lKFFXZWJGcmFtZSogd2ViRnJhbWUs
IEZyYW1lKiBmcmFtZSkKIHsKICAgICBtX3dlYkZyYW1lID0gd2ViRnJhbWU7CiAgICAgbV9mcmFt
ZSA9IGZyYW1lOwotCiAgICAgaWYgKCFtX3dlYkZyYW1lIHx8ICFtX3dlYkZyYW1lLT5wYWdlKCkp
IHsKICAgICAgICAgcVdhcm5pbmcoIkZyYW1lTG9hZGVyQ2xpZW50UXQ6OnNldEZyYW1lIGZyYW1l
IHdpdGhvdXQgUGFnZSEiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTUyMSwxMSArMTUxOSw2IEBA
IFFTdHJpbmcgRnJhbWVMb2FkZXJDbGllbnRRdDo6Y2hvb3NlRmlsZShjb25zdCBRU3RyaW5nJiBv
bGRGaWxlKQogICAgIHJldHVybiB3ZWJGcmFtZSgpLT5wYWdlKCktPmNob29zZUZpbGUod2ViRnJh
bWUoKSwgb2xkRmlsZSk7CiB9CiAKLVBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4g
RnJhbWVMb2FkZXJDbGllbnRRdDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKQotewotICAgIHJl
dHVybiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQ6OmNyZWF0ZShtX2ZyYW1lLCBtX3dlYkZyYW1l
LCBtX3dlYkZyYW1lLT5wYWdlKCktPm5ldHdvcmtBY2Nlc3NNYW5hZ2VyKCkpOwotfQotCiB9CiAK
ICNpbmNsdWRlICJtb2NfRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAppbmRleCBlNTA2OTAwLi5jNzJiODJm
IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgK
QEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgotI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiUmVmQ291bnRlZC5oIgog
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKQEAgLTUyLDcgKzUxLDYgQEAgY2xhc3MgRG9jdW1l
bnRMb2FkZXI7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRm9ybVN0YXRlOwogY2xhc3MgTmF2aWdh
dGlvbkFjdGlvbjsKLWNsYXNzIEZyYW1lTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJj
ZUxvYWRlcjsKIAogc3RydWN0IExvYWRFcnJvclJlc2V0VG9rZW47CkBAIC0yMTUsOCArMjEzLDYg
QEAgcHVibGljOgogCiAgICAgUVN0cmluZyBjaG9vc2VGaWxlKGNvbnN0IFFTdHJpbmcmIG9sZEZp
bGUpOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7Ci0KICAgICBzdGF0aWMgYm9vbCBkdW1wRnJhbWVMb2Fk
ZXJDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsK
ICAgICBzdGF0aWMgYm9vbCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsKZGlmZiAtLWdp
dCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuY3Bw
IGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAK
aW5kZXggZTUwMmUyYS4uOTQxY2ZhYSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRRdC5jcHAKQEAgLTE3LDM1ICsxNyw1IEBACiAg
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpbmNsdWRlICJGcmFtZU5ldHdvcmtpbmdDb250ZXh0UXQuaCIKLQotI2luY2x1ZGUgPFFO
ZXR3b3JrQWNjZXNzTWFuYWdlcj4KLSNpbmNsdWRlIDxRT2JqZWN0PgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLUZyYW1lTmV0d29ya2luZ0NvbnRleHRRdDo6RnJhbWVOZXR3b3JraW5nQ29udGV4
dFF0KEZyYW1lKiBmcmFtZSwgUU9iamVjdCogb3JpZ2luYXRpbmdPYmplY3QsIFFOZXR3b3JrQWNj
ZXNzTWFuYWdlciogbmV0d29ya0FjY2Vzc01hbmFnZXIpCi0gICAgOiBGcmFtZU5ldHdvcmtpbmdD
b250ZXh0KGZyYW1lKQotICAgICwgbV9vcmlnaW5hdGluZ09iamVjdChvcmlnaW5hdGluZ09iamVj
dCkKLSAgICAsIG1fbmV0d29ya0FjY2Vzc01hbmFnZXIobmV0d29ya0FjY2Vzc01hbmFnZXIpCi17
Ci19Ci0KLVBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0PiBGcmFtZU5ldHdvcmtp
bmdDb250ZXh0UXQ6OmNyZWF0ZShGcmFtZSogZnJhbWUsIFFPYmplY3QqIG9yaWdpbmF0aW5nT2Jq
ZWN0LCBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG5ldHdvcmtBY2Nlc3NNYW5hZ2VyKQotewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRnJhbWVOZXR3b3JraW5nQ29udGV4dFF0KGZyYW1lLCBvcmln
aW5hdGluZ09iamVjdCwgbmV0d29ya0FjY2Vzc01hbmFnZXIpKTsKLX0KLQotUU9iamVjdCogRnJh
bWVOZXR3b3JraW5nQ29udGV4dFF0OjpvcmlnaW5hdGluZ09iamVjdCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fb3JpZ2luYXRpbmdPYmplY3Q7Ci19Ci0KLVFOZXR3b3JrQWNjZXNzTWFuYWdlciog
RnJhbWVOZXR3b3JraW5nQ29udGV4dFF0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG1fbmV0d29ya0FjY2Vzc01hbmFnZXI7Ci19Ci0KLX0KKy8vIENoZWNraW5n
IHRoaXMgZmlsZSBpbiBlbXB0eSB0byBnZXQgdGhlIGJ1aWxkIHN5c3RlbSB3b3JrIG91dCBvZiB0
aGUgd2F5LgorLy8gV2lsbCBwdXQgdGhlIGNvZGUgaW4gaGVyZSBsYXRlci4KZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuY3BwCmluZGV4IDFhOTA0ODAuLmUx
M2Y2YzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGll
bnRRdC5jcHAKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0
LmNwcApAQCAtMTAwLDggKzEwMCw2IEBAIEluc3BlY3RvckNsaWVudFF0OjpJbnNwZWN0b3JDbGll
bnRRdChRV2ViUGFnZSogcGFnZSkKIAogdm9pZCBJbnNwZWN0b3JDbGllbnRRdDo6aW5zcGVjdG9y
RGVzdHJveWVkKCkKIHsKLSAgICBpZiAobV9mcm9udGVuZENsaWVudCkKLSAgICAgICAgbV9mcm9u
dGVuZENsaWVudC0+aW5zcGVjdG9yQ2xpZW50RGVzdHJveWVkKCk7CiAgICAgZGVsZXRlIHRoaXM7
CiB9CiAKQEAgLTEzMywxNSArMTMxLDEzIEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50UXQ6Om9wZW5J
bnNwZWN0b3JGcm9udGVuZChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKikKICAgICBtX2lu
c3BlY3RlZFdlYlBhZ2UtPmQtPmluc3BlY3RvckZyb250ZW5kID0gaW5zcGVjdG9yVmlldzsKICAg
ICBpbnNwZWN0b3ItPmQtPnNldEZyb250ZW5kKGluc3BlY3RvclZpZXcpOwogCi0gICAgbV9mcm9u
dGVuZENsaWVudCA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZENsaWVudFF0KG1faW5zcGVjdGVkV2Vi
UGFnZSwgaW5zcGVjdG9yVmlldywgdGhpcyk7Ci0gICAgaW5zcGVjdG9yVmlldy0+cGFnZSgpLT5k
LT5wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnNldEluc3BlY3RvckZyb250ZW5kQ2xpZW50
KG1fZnJvbnRlbmRDbGllbnQpOworICAgIGluc3BlY3RvclZpZXctPnBhZ2UoKS0+ZC0+cGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChuZXcgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRRdChtX2luc3BlY3RlZFdlYlBhZ2UsIGluc3BlY3RvclZpZXcs
IHRoaXMpKTsKICAgICBtX2Zyb250ZW5kV2ViUGFnZSA9IGluc3BlY3RvclBhZ2U7CiB9CiAKIHZv
aWQgSW5zcGVjdG9yQ2xpZW50UXQ6OnJlbGVhc2VGcm9udGVuZFBhZ2UoKQogewogICAgIG1fZnJv
bnRlbmRXZWJQYWdlID0gMDsKLSAgICBtX2Zyb250ZW5kQ2xpZW50ID0gMDsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JDbGllbnRRdDo6aGlnaGxpZ2h0KE5vZGUqKQpAQCAtMjc5LDEyICsyNzUsMTkgQEAg
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudFF0OjpicmluZ1RvRnJvbnQoKQogCiB2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50UXQ6OmNsb3NlV2luZG93KCkKIHsKLSAgICBkZXN0cm95SW5z
cGVjdG9yVmlldyh0cnVlKTsKLX0KKyAgICBpZiAobV9kZXN0cm95aW5nSW5zcGVjdG9yVmlldykK
KyAgICAgICAgcmV0dXJuOworICAgIG1fZGVzdHJveWluZ0luc3BlY3RvclZpZXcgPSB0cnVlOwog
Ci12b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50UXQ6OmRpc2Nvbm5lY3RGcm9tQmFja2VuZCgp
Ci17Ci0gICAgZGVzdHJveUluc3BlY3RvclZpZXcoZmFsc2UpOworICAgIC8vIENsZWFyIHJlZmVy
ZW5jZSBmcm9tIFFXZWJJbnNwZWN0b3IgdG8gdGhlIGZyb250ZW5kIHZpZXcuCisgICAgbV9pbnNw
ZWN0ZWRXZWJQYWdlLT5kLT5nZXRPckNyZWF0ZUluc3BlY3RvcigpLT5kLT5zZXRGcm9udGVuZCgw
KTsKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIG1faW5zcGVjdGVkV2ViUGFnZS0+ZC0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsKKyNlbmRpZgorICAgIG1f
aW5zcGVjdG9yQ2xpZW50LT5yZWxlYXNlRnJvbnRlbmRQYWdlKCk7CisKKyAgICAvLyBDbGVhciBw
b2ludGVyIGJlZm9yZSBkZWxldGluZyBXZWJWaWV3IHRvIGF2b2lkIHJlY3Vyc2l2ZSBjYWxscyB0
byBpdHMgZGVzdHJ1Y3Rvci4KKyAgICBPd25QdHI8UVdlYlZpZXc+IGluc3BlY3RvclZpZXcgPSBt
X2luc3BlY3RvclZpZXcucmVsZWFzZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50UXQ6OmF0dGFjaFdpbmRvdygpCkBAIC0zMTYsMzUgKzMxOSw2IEBAIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRRdDo6dXBkYXRlV2luZG93VGl0bGUoKQogICAgIH0KIH0KIAotdm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudFF0OjpkZXN0cm95SW5zcGVjdG9yVmlldyhib29sIG5vdGlm
eUluc3BlY3RvckNvbnRyb2xsZXIpCi17Ci0gICAgaWYgKG1fZGVzdHJveWluZ0luc3BlY3RvclZp
ZXcpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Rlc3Ryb3lpbmdJbnNwZWN0b3JWaWV3ID0gdHJ1
ZTsKLQotICAgIC8vIEluc3BlY3RlZCBwYWdlIG1heSBoYXZlIGFscmVhZHkgYmVlbiBkZXN0cm95
ZWQuCi0gICAgaWYgKG1faW5zcGVjdGVkV2ViUGFnZSkgewotICAgICAgICAvLyBDbGVhciByZWZl
cmVuY2UgZnJvbSBRV2ViSW5zcGVjdG9yIHRvIHRoZSBmcm9udGVuZCB2aWV3LgotICAgICAgICBt
X2luc3BlY3RlZFdlYlBhZ2UtPmQtPmdldE9yQ3JlYXRlSW5zcGVjdG9yKCktPmQtPnNldEZyb250
ZW5kKDApOwotICAgIH0KLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKG5vdGlmeUlu
c3BlY3RvckNvbnRyb2xsZXIpCi0gICAgICAgIG1faW5zcGVjdGVkV2ViUGFnZS0+ZC0+aW5zcGVj
dG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsKLSNlbmRpZgotICAgIGlmICht
X2luc3BlY3RvckNsaWVudCkKLSAgICAgICAgbV9pbnNwZWN0b3JDbGllbnQtPnJlbGVhc2VGcm9u
dGVuZFBhZ2UoKTsKLQotICAgIC8vIENsZWFyIHBvaW50ZXIgYmVmb3JlIGRlbGV0aW5nIFdlYlZp
ZXcgdG8gYXZvaWQgcmVjdXJzaXZlIGNhbGxzIHRvIGl0cyBkZXN0cnVjdG9yLgotICAgIE93blB0
cjxRV2ViVmlldz4gaW5zcGVjdG9yVmlldyA9IG1faW5zcGVjdG9yVmlldy5yZWxlYXNlKCk7Ci19
Ci0KLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRRdDo6aW5zcGVjdG9yQ2xpZW50RGVzdHJv
eWVkKCkKLXsKLSAgICBtX2luc3BlY3RvckNsaWVudCA9IDA7Ci0gICAgbV9pbnNwZWN0ZWRXZWJQ
YWdlID0gMDsKLX0KLQogfQogCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ2xpZW50UXQubW9jIgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFF0LmggYi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50UXQuaAppbmRleCBlMGVlODEw
Li45NTI2Yzg4IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9y
Q2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50
UXQuaApAQCAtNDEsNyArNDEsNiBAQCBjbGFzcyBRV2ViUGFnZTsKIGNsYXNzIFFXZWJWaWV3Owog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudFF0Owog
Y2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CiAKQEAgLTY2LDcgKzY1LDYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBRV2ViUGFnZSogbV9pbnNwZWN0ZWRXZWJQYWdlOwogICAgIFFXZWJQYWdlKiBt
X2Zyb250ZW5kV2ViUGFnZTsKLSAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudFF0KiBtX2Zyb250
ZW5kQ2xpZW50OwogfTsKIAogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRRdCA6IHB1Ymxp
YyBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsIHsKQEAgLTgxLDcgKzc5LDYgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGJyaW5nVG9Gcm9udCgpOwogICAgIHZpcnR1YWwgdm9pZCBj
bG9zZVdpbmRvdygpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbUJhY2tlbmQoKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hXaW5kb3coKTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0
YWNoV2luZG93KCk7CkBAIC05MCwxMSArODcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIG5ld1VSTCk7CiAKLSAgICB2b2lk
IGluc3BlY3RvckNsaWVudERlc3Ryb3llZCgpOwotCiBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRl
V2luZG93VGl0bGUoKTsKLSAgICB2b2lkIGRlc3Ryb3lJbnNwZWN0b3JWaWV3KGJvb2wgbm90aWZ5
SW5zcGVjdG9yQ29udHJvbGxlcik7CiAgICAgUVdlYlBhZ2UqIG1faW5zcGVjdGVkV2ViUGFnZTsK
ICAgICBPd25QdHI8UVdlYlZpZXc+IG1faW5zcGVjdG9yVmlldzsKICAgICBRU3RyaW5nIG1faW5z
cGVjdGVkVVJMOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCBkZWNhMDc0Li5iMzg3N2RjIDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSw1NiArMSwzIEBACi0y
MDEwLTA5LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgUmVuYW1lIFNlY3VyaXR5T3JpZ2luOjpj
YW5Mb2FkIHRvIGNhbkRpc3BsYXkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ1MjE0Ci0KLSAgICAgICAgUHJvcGFnYXRlIG5hbWUgY2hhbmdlLgotCi0g
ICAgICAgICogV2ViRnJhbWUuY3BwOgotICAgICAgICAoV2ViRnJhbWU6OmFsbG93c0ZvbGxvd2lu
Z0xpbmspOgotCi0yMDEwLTA5LTAzICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFs
ZW5jaWFAb3BlbmJvc3NhLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
LQotICAgICAgICBBZGQgTmV0d29ya2luZ0NvbnRleHQgdG8gYXZvaWQgbGF5ZXIgdmlvbGF0aW9u
cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIyOTIK
LQotICAgICAgICBBZGQgV2luJ3Mgc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gb2YgTmV0d29ya2lu
Z0NvbnRleHQuCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmNwcDoKLSAgICAgICAgKFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6
Ci0gICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQpOgotICAgICAg
ICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6cmVmZXJyZXIpOgotICAgICAgICAqIFdlYkZy
YW1lLmNwcDoKLSAgICAgICAgKFdlYkZyYW1lOjpjcmVhdGVOZXR3b3JraW5nQ29udGV4dCk6Ci0g
ICAgICAgICogV2ViRnJhbWUuaDoKLQotMjAxMC0wOS0wMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBh
cHBsZS5jb20+Ci0KLSAgICAgICAgQXR0ZW1wdCB0byBmaXhpbmcgV2luZG93cyBuaWdodGxpZXMg
YWdhaW4KLQotICAgICAgICBUaGUgZml4IGluIHI2NjQzOCBzaG91bGQgYmUgc3VmZmljaWVudCwg
YnV0IHdlIGhhdmUgdG8gdG91Y2gKLSAgICAgICAgV2ViS2l0LmlkbCB0byBmb3JjZSB0aGF0IGNo
YW5nZSB0byBiZSBwaWNrZWQgdXAgYnkgdGhlIGJ1aWxkLgotCi0gICAgICAgICogSW50ZXJmYWNl
cy9XZWJLaXQuaWRsOiBUb3VjaGVkIHRoaXMgZmlsZSB0byBmb3JjZSBhIGJ1aWxkLgotCi0yMDEw
LTA5LTAyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgotCi0gICAgICAg
IFJldmlld2VkIGJ5IFBhdmVsRmVsZG1hbi4KLQotICAgICAgICBSRUdSRVNTSU9OOiBDcmFzaCBv
Y2N1cnMgYXQgb2JqY19tc2dTZW5kIHdoZW4gY2xvc2luZyBhIHdpbmRvdyB0aGF0IGlzIGRpc3Bs
YXlpbmcgdGhlIHdlYiBpbnNwZWN0b3IKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ0MjMwCi0KLSAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQuY3BwOgotICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6On5X
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCk6Ci0gICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6Y2xvc2VXaW5kb3cpOgotICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OmRpc2Nvbm5lY3RGcm9tQmFja2VuZCk6Ci0gICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6Y2xvc2VXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9ucyk6Ci0gICAgICAgIChXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvclZpZXcpOgotICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oOgotCiAyMDEwLTA5LTAxICBKZXNz
aWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9XZWJLaXQuaWRsIGIv
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKaW5kZXggOThmNWRhOC4uZDI1Y2RmZSAx
MDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKKysrIGIvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKQEAgLTMwMCw0ICszMDAsMyBAQCBsaWJyYXJ5IFdl
YktpdAogICAgICAgICBbZGVmYXVsdF0gaW50ZXJmYWNlIElXZWJVc2VyQ29udGVudFVSTFBhdHRl
cm47CiAgICAgfQogfQotCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAppbmRleCA5ZmNkNGIxLi45NDFjZmFhIDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5jcHAKQEAgLTE3LDIzICsxNyw1IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCiAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1QYXNzUmVm
UHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OmNyZWF0ZShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQotewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChmcmFtZSwgdXNlckFn
ZW50KSk7Ci19Ci0KLVN0cmluZyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Ojp1c2VyQWdlbnQo
KSBjb25zdAotewotICAgIHJldHVybiBtX3VzZXJBZ2VudDsKLX0KLQotU3RyaW5nIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OnJlZmVycmVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZnJhbWUo
KS0+bG9hZGVyKCktPnJlZmVycmVyKCk7Ci19CisvLyBDaGVja2luZyB0aGlzIGZpbGUgaW4gZW1w
dHkgdG8gZ2V0IHRoZSBidWlsZCBzeXN0ZW0gd29yayBvdXQgb2YgdGhlIHdheS4KKy8vIFdpbGwg
cHV0IHRoZSBjb2RlIGluIGhlcmUgbGF0ZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggMWI3OWRkZS4uMzRmYjgyNyAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisr
KyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAt
MjI4LDcgKzIyOCw3IEBAIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudChXZWJWaWV3KiBpbnNwZWN0ZWRXZWJWaWV3CiAKIFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50Ojp+V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoKQogewotICAgIGRlc3Ry
b3lJbnNwZWN0b3JWaWV3KHRydWUpOworICAgIGRlc3Ryb3lJbnNwZWN0b3JWaWV3KCk7CiB9CiAK
IHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmZyb250ZW5kTG9hZGVkKCkKQEAgLTI2
MCwxMiArMjYwLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YnJpbmdUb0Zy
b250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6Y2xvc2VXaW5kb3coKQog
ewotICAgIGRlc3Ryb3lJbnNwZWN0b3JWaWV3KHRydWUpOwotfQotCi12b2lkIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50OjpkaXNjb25uZWN0RnJvbUJhY2tlbmQoKQotewotICAgIGRlc3Ryb3lJ
bnNwZWN0b3JWaWV3KGZhbHNlKTsKKyAgICBkZXN0cm95SW5zcGVjdG9yVmlldygpOwogfQogCiB2
b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphdHRhY2hXaW5kb3coKQpAQCAtMzQ5LDYg
KzM0NCw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmNsb3NlV2luZG93V2l0
aG91dE5vdGlmaWNhdGlvbnMoKQogICAgIEhXTkQgaG9zdFdpbmRvdzsKICAgICBpZiAoU1VDQ0VF
REVEKG1faW5zcGVjdGVkV2ViVmlldy0+aG9zdFdpbmRvdygoT0xFX0hBTkRMRSopJmhvc3RXaW5k
b3cpKSkKICAgICAgICAgU2VuZE1lc3NhZ2UoaG9zdFdpbmRvdywgV01fU0laRSwgMCwgMCk7CisK
KyAgICBtX2luc3BlY3RvckNsaWVudC0+dXBkYXRlSGlnaGxpZ2h0KCk7CiB9CiAKIHZvaWQgV2Vi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNob3dXaW5kb3dXaXRob3V0Tm90aWZpY2F0aW9ucygp
CkBAIC00MDAsMjAgKzM5NywxNiBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpz
aG93V2luZG93V2l0aG91dE5vdGlmaWNhdGlvbnMoKQogICAgIG1faW5zcGVjdG9yQ2xpZW50LT51
cGRhdGVIaWdobGlnaHQoKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
ZGVzdHJveUluc3BlY3RvclZpZXcoYm9vbCBub3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKQordm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGVzdHJveUluc3BlY3RvclZpZXcoKQogewog
ICAgIGlmIChtX2Rlc3Ryb3lpbmdJbnNwZWN0b3JWaWV3KQogICAgICAgICByZXR1cm47CiAgICAg
bV9kZXN0cm95aW5nSW5zcGVjdG9yVmlldyA9IHRydWU7CiAKKyAgICBtX2luc3BlY3RlZFdlYlZp
ZXctPnBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaXNjb25uZWN0RnJvbnRlbmQoKTsK
IAogICAgIGNsb3NlV2luZG93V2l0aG91dE5vdGlmaWNhdGlvbnMoKTsKLQotICAgIGlmIChub3Rp
ZnlJbnNwZWN0b3JDb250cm9sbGVyKSB7Ci0gICAgICAgIG1faW5zcGVjdGVkV2ViVmlldy0+cGFn
ZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpc2Nvbm5lY3RGcm9udGVuZCgpOwotICAgICAg
ICBtX2luc3BlY3RvckNsaWVudC0+dXBkYXRlSGlnaGxpZ2h0KCk7Ci0gICAgICAgIG1faW5zcGVj
dG9yQ2xpZW50LT5mcm9udGVuZENsb3NpbmcoKTsKLSAgICB9CisgICAgbV9pbnNwZWN0b3JDbGll
bnQtPmZyb250ZW5kQ2xvc2luZygpOwogICAgIDo6RGVzdHJveVdpbmRvdyhtX2Zyb250ZW5kSHdu
ZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dC5oCmluZGV4IDBjMzgyNDcuLjRkYTM5ODQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaApAQCAtOTMsNyArOTMsNiBAQCBwdWJsaWM6CiAgICAg
CiAgICAgdmlydHVhbCB2b2lkIGJyaW5nVG9Gcm9udCgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9z
ZVdpbmRvdygpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNjb25uZWN0RnJvbUJhY2tlbmQoKTsKICAg
ICAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIGRl
dGFjaFdpbmRvdygpOwpAQCAtMTA3LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbG9z
ZVdpbmRvd1dpdGhvdXROb3RpZmljYXRpb25zKCk7CiAgICAgdm9pZCBzaG93V2luZG93V2l0aG91
dE5vdGlmaWNhdGlvbnMoKTsKIAotICAgIHZvaWQgZGVzdHJveUluc3BlY3RvclZpZXcoYm9vbCBu
b3RpZnlJbnNwZWN0b3JDb250cm9sbGVyKTsKKyAgICB2b2lkIGRlc3Ryb3lJbnNwZWN0b3JWaWV3
KCk7CiAKICAgICB2b2lkIHVwZGF0ZVdpbmRvd1RpdGxlKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vV2ViRnJhbWUuY3BwIGIvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKaW5kZXggNjcwM2Nj
Ny4uZDEyOTg5YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvV2Vi
S2l0L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJXZWJEb3du
bG9hZC5oIgogI2luY2x1ZGUgIldlYkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIldlYkVycm9y
LmgiCi0jaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldl
YkZyYW1lUG9saWN5TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJIaXN0b3J5LmgiCiAjaW5jbHVk
ZSAiV2ViSGlzdG9yeUl0ZW0uaCIKQEAgLTEzNTMsNyArMTM1Miw3IEBAIEhSRVNVTFQgV2ViRnJh
bWU6OmFsbG93c0ZvbGxvd2luZ0xpbmsoQlNUUiB1cmwsIEJPT0wqIHJlc3VsdCkKICAgICBpZiAo
IWZyYW1lKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgKnJlc3VsdCA9IFNlY3VyaXR5
T3JpZ2luOjpjYW5EaXNwbGF5KE1hcnNoYWxsaW5nSGVscGVyczo6QlNUUlRvS1VSTCh1cmwpLCBT
dHJpbmcoKSwgZnJhbWUtPmRvY3VtZW50KCkpOworICAgICpyZXN1bHQgPSBTZWN1cml0eU9yaWdp
bjo6Y2FuTG9hZChNYXJzaGFsbGluZ0hlbHBlcnM6OkJTVFJUb0tVUkwodXJsKSwgU3RyaW5nKCks
IGZyYW1lLT5kb2N1bWVudCgpKTsKICAgICByZXR1cm4gU19PSzsKIH0KIApAQCAtMjYxNSw3ICsy
NjE0LDMgQEAgdm9pZCBXZWJGcmFtZTo6dXBkYXRlQmFja2dyb3VuZCgpCiAgICAgY29yZUZyYW1l
LT52aWV3KCktPnVwZGF0ZUJhY2tncm91bmRSZWN1cnNpdmVseShiYWNrZ3JvdW5kQ29sb3IsIHdl
YlZpZXcoKS0+dHJhbnNwYXJlbnQoKSk7CiB9CiAKLVBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5n
Q29udGV4dD4gV2ViRnJhbWU6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKLXsKLSAgICByZXR1
cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGNvcmUodGhpcyksIHVzZXJBZ2Vu
dCh1cmwoKSkpOwotfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJGcmFtZS5oIGIvV2ViS2l0
L3dpbi9XZWJGcmFtZS5oCmluZGV4IGY0Nzk1YzguLjI0YTdlMmIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC93aW4vV2ViRnJhbWUuaAorKysgYi9XZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTM0Myw4ICsz
NDMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZp
Y2F0aW9uKGJvb2wgbGlzdGVuKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpG
cmFtZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwotCiAgICAg
Ly8gV2ViRnJhbWUKICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBpbml0KElXZWJWaWV3
KiwgV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwogICAg
IFdlYkNvcmU6OkZyYW1lKiBpbXBsKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI4OTU3YjAuLmQ5MjJiNGUgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDEzNSArMSwzIEBA
Ci0yMDEwLTA5LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+Ci0KLSAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCi0KLSAgICAgICAgUmVuYW1lIFNlY3VyaXR5T3JpZ2lu
OjpjYW5Mb2FkIHRvIGNhbkRpc3BsYXkKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1MjE0Ci0KLSAgICAgICAgUHJvcGFnYXRlIG5hbWUgY2hhbmdlLgot
Ci0gICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgotICAgICAgICAo
V2ViS2l0OjpQbHVnaW5WaWV3OjpwZXJmb3JtRnJhbWVMb2FkVVJMUmVxdWVzdCk6Ci0KLTIwMTAt
MDktMDQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBi
eSBBbmRlcnMgQ2FybHNzb24uCi0KLSAgICAgICAgQWxsb3cgcGFzc2luZyBudWxsIHRvIHBvc3RN
ZXNzYWdlIEFQSSBmdW5jdGlvbnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ1MjM0Ci0KLSAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZCBU
eXBlTnVsbCB0byBlbnVtLiBUaGlzIGlzIG9ubHkgdXNlZAotICAgICAgICBmb3Igc2VyaWFsaXph
dGlvbiBwdXJwb3NlcywgYW5kIGRvZXMgbm90IHJlcHJlc2VudCBhIGNvbmNyZXRlIHN1YmNsYXNz
Ci0gICAgICAgIG9mIEFQSU9iamVjdC4KLQotICAgICAgICAqIFNoYXJlZC9Db3JlSVBDU3VwcG9y
dC9XZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaDogUmVtb3ZlIFdpbGxTdWJtaXRGb3JtV2l0aFVz
ZXJEYXRhCi0gICAgICAgIG5vdyB0aGF0IGl0IGlzIG5vdCBuZWVkZWQuCi0KLSAgICAgICAgKiBT
aGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoKLSAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VF
bmNvZGVyOjpiYXNlRW5jb2RlKToKLSAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VEZWNvZGVy
OjpiYXNlRGVjb2RlKToKLSAgICAgICAgQWRkIGV4cGxpY2l0IGVuY29kaW5nL2RlY29kaW5nIG9m
IG51bGwgZm9yIHVzZXIgbWVzc2FnZXMuCi0KLSAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dFVzZXJNZXNzYWdlQ29kZXJzLmg6Ci0gICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRVc2VyTWVz
c2FnZUVuY29kZXI6OmVuY29kZSk6Ci0gICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHRVc2VyTWVz
c2FnZURlY29kZXI6OmRlY29kZSk6Ci0gICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmg6Ci0gICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyOjplbmNvZGUpOgotICAgICAgICAoV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRGVjb2Rlcjo6ZGVjb2RlKToKLSAgICAgICAgVXBk
YXRlIFVzZXJNZXNzYWdlQ29kZXJzIHN1YmNsYXNzZXMgdG8gY2FsbCB0aGUgYmFzZSBjbGFzcyBp
biB0aGUgY29ycmVjdAotICAgICAgICB3YXkgdG8gd29yayB3aXRoIG51bGwgbWVzc2FnZXMuIFRo
aXMgbWVhbnMgbW92aW5nIHRoZSBlbmNvZGluZy9kZWNvZGluZwotICAgICAgICBvZiB0aGUgdHlw
ZSBkb3duIHRvIHRoZSBiYXNlIGNsYXNzLCB3aGljaCBpcyBhIG5pY2UgY2xlYW51cC4KLQotICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgotICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKLSAgICAgICAgUmVtb3ZlIG5vdyByZWR1bmRh
bnQgV2lsbFN1Ym1pdEZvcm1XaXRoVXNlckRhdGEgaW1wbGVtZW50YXRpb24uCi0KLSAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFN1Ym1pdEZv
cm0pOgotICAgICAgICBEaXR0by4KLQotMjAxMC0wOS0wMyAgSmVzdXMgU2FuY2hlei1QYWxlbmNp
YSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCi0KLSAgICAgICAgQWRkIE5ldHdvcmtpbmdDb250ZXh0IHRvIGF2b2lkIGxh
eWVyIHZpb2xhdGlvbnMKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyMjkyCi0KLSAgICAgICAgQWRkIEZyYW1lTmV0d29ya2luZ0NvbnRleHQgaW1wbGVt
ZW50YXRpb24uCi0KLSAgICAgICAgKiBXZWJLaXQyLnBybzoKLSAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKLSAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KToKLSAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6Ci0g
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbToKLSAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgotICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKLSAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJz
KToKLSAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVy
cm9yKToKLSAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuY3BwOiBBZGRlZC4KLSAgICAgICAgKFdlYkNvcmU6OldlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQ6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgotICAgICAgICAoV2Vi
Q29yZTo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKLSAgICAgICAgKFdlYkNv
cmU6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om9yaWdpbmF0aW5nT2JqZWN0KToKLSAgICAg
ICAgKFdlYkNvcmU6OldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om5ldHdvcmtBY2Nlc3NNYW5h
Z2VyKToKLSAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaDogQWRkZWQuCi0gICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHA6IEFkZGVkLgotICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aDogQWRkZWQuCi0gICAgICAgIChXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgot
ICAgICAgICAoV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dCk6Ci0gICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOgotICAgICAgICAqIHdpbi9XZWJL
aXQyQ29tbW9uLnZzcHJvcHM6Ci0KLTIwMTAtMDktMDMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgotCi0gICAgICAgIEFk
ZCBhYmlsaXR5IHRvIHNlbmQgVXNlckRhdGEgdG8gd2lsbFN1Ym1pdEZvcm0KLSAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MjIyCi0KLSAgICAgICAgLSBB
ZGRzIGEgd2lsbFN1Ym1pdEZvcm0gY2FsbGJhY2sgdG8gdGhlIEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
IHdpdGggYW4gb3V0Ci0gICAgICAgICAgcGFyYW1ldGVyIFdLVHlwZVJlZiogcGFyYW1ldGVyLgot
ICAgICAgICAtIFRoYXQgb3V0IHBhcmFtZXRlciBnZXRzIHNlcmlhbGl6ZWQgYW5kIHRoZW4gcGFz
c2VkIHRvIHRoZSBQYWdlRm9ybUNsaWVudCdzCi0gICAgICAgICAgd2lsbFN1Ym1pdEZvcm0sIHdo
aWNoIG5vdyBoYXMgV0tUeXBlUmVmIHBhcmFtZXRlci4KLQotICAgICAgICAtIFRlbXBvcmFyaWx5
IGFkZHMgYSBuZXcgV2lsbFN1Ym1pdEZvcm1XaXRoVXNlckRhdGEgbWVzc2FnZSBraW5kLiBUaGlz
IHdpbGwKLSAgICAgICAgICBiZSByZXBsYWNlZCBieSB0aGUgYWJpbGl0eSB0byBleHBsaWNpdGx5
IHNlcmlhbGl6ZSBudWxsIGFzIGEgVXNlck1lc3NhZ2UuCi0KLSAgICAgICAgKiBQbGF0Zm9ybS9D
b3JlSVBDL0FyZ3VtZW50cy5oOgotICAgICAgICAoQ29yZUlQQzo6QXJndW1lbnRzNjo6QXJndW1l
bnRzNik6Ci0gICAgICAgIChDb3JlSVBDOjpBcmd1bWVudHM2OjplbmNvZGUpOgotICAgICAgICAo
Q29yZUlQQzo6QXJndW1lbnRzNjo6ZGVjb2RlKToKLSAgICAgICAgKENvcmVJUEM6OkluKToKLSAg
ICAgICAgKENvcmVJUEM6Ok91dCk6Ci0gICAgICAgICogU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dl
YlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oOgotICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaDoKLSAgICAgICAgKiBVSVByb2Nlc3MvV2ViRm9ybUNsaWVudC5jcHA6Ci0gICAgICAgIChX
ZWJLaXQ6OldlYkZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKToKLSAgICAgICAgKiBVSVByb2Nl
c3MvV2ViRm9ybUNsaWVudC5oOgotICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgotICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKToKLSAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSk6Ci0gICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgotICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6Ci0gICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcDoKLSAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5n
KToKLSAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dEZp
ZWxkRGlkRW5kRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZv
cm1DbGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZCk6Ci0gICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRBcmVhKToKLSAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFN1Ym1pdEZv
cm0pOgotICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oOgotICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwOgotICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybSk6Ci0KLTIwMTAtMDktMDMgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3Vn
aC4KLQotICAgICAgICBDaGFuZ2UgV0tEaWN0aW9uYXJ5SXNNdXRhYmxlIHRvIHRha2UgYSBXS0Rp
Y3Rpb25hcnlSZWYgaW5zdGVhZCBvZiBhIFdLTXV0YWJsZURpY3Rpb25hcnlSZWYuCi0gICAgICAg
IElmIHRoZSB0eXBlIGlzIGFscmVhZHkgc3RhdGVzIGl0IGlzIG11dGFibGUsIHRoZXJlIHdvdWxk
IGJlIG5vIHJlYXNvbiBmb3IgdGhlIGNoZWNrLgotCi0gICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLTXV0YWJsZURpY3Rpb25hcnkuY3BwOgotICAgICAgICAoV0tEaWN0aW9uYXJ5SXNNdXRhYmxl
KToKLSAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlRGljdGlvbmFyeS5oOgotCiAy
MDEwLTA5LTAyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL0FyZ3VtZW50cy5oIGIvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0FyZ3VtZW50cy5oCmlu
ZGV4IDA1MzNkYzUuLjExMDYxZjEgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9Bcmd1bWVudHMuaAorKysgYi9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQXJndW1lbnRzLmgK
QEAgLTIyOCw0MiArMjI4LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0
eXBlbmFtZSBUMywgdHlwZW5hbWUgVDQsIHR5cGVuYW1lIFQ1PiBBcmd1bWUKICAgICByZXR1cm4g
QXJndW1lbnRzNTxUMSYsIFQyJiwgVDMmLCBUNCYsIFQ1Jj4odDEsIHQyLCB0MywgdDQsIHQ1KTsK
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLCB0eXBlbmFtZSBUMywgdHlw
ZW5hbWUgVDQsIHR5cGVuYW1lIFQ1LCB0eXBlbmFtZSBUNj4gY2xhc3MgQXJndW1lbnRzNiA6IEFy
Z3VtZW50czU8VDEsIFQyLCBUMywgVDQsIFQ1PiB7Ci1wdWJsaWM6Ci0gICAgQXJndW1lbnRzNihU
MSB0MSwgVDIgdDIsIFQzIHQzLCBUNCB0NCwgVDUgdDUsIFQ2IHQ2KQotICAgICAgICA6IEFyZ3Vt
ZW50czU8VDEsIFQyLCBUMywgVDQsIFQ1Pih0MSwgdDIsIHQzLCB0NCwgdDUpCi0gICAgICAgICwg
bV92YWx1ZSh0NikKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAotICAgIHsKLSAgICAgICAgQXJndW1lbnRzNTxUMSwgVDIsIFQz
LCBUNCwgVDU+OjplbmNvZGUoZW5jb2Rlcik7Ci0gICAgICAgIGVuY29kZXItPmVuY29kZShtX3Zh
bHVlKTsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgQXJndW1lbnRzNjxUMSwgVDIsIFQzLCBUNCwgVDUsIFQ2PiYgcmVzdWx0KQot
ICAgIHsKLSAgICAgICAgaWYgKCFBcmd1bWVudHM1PFQxLCBUMiwgVDMsIFQ0LCBUNT46OmRlY29k
ZShkZWNvZGVyLCByZXN1bHQpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAK
LSAgICAgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShyZXN1bHQubV92YWx1ZSk7Ci0gICAgfQot
Ci1wcml2YXRlOgotICAgIFQ2IG1fdmFsdWU7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUMSwg
dHlwZW5hbWUgVDIsIHR5cGVuYW1lIFQzLCB0eXBlbmFtZSBUNCwgdHlwZW5hbWUgVDUsIHR5cGVu
YW1lIFQ2PiBBcmd1bWVudHM2PGNvbnN0IFQxJiwgY29uc3QgVDImLCBjb25zdCBUMyYsIGNvbnN0
IFQ0JiwgY29uc3QgVDUmLCBjb25zdCBUNiY+IEluKGNvbnN0IFQxJiB0MSwgY29uc3QgVDImIHQy
LCBjb25zdCBUMyAmdDMsIGNvbnN0IFQ0JiB0NCwgY29uc3QgVDUmIHQ1LCBjb25zdCBUNiYgdDYp
Ci17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czY8Y29uc3QgVDEmLCBjb25zdCBUMiYsIGNvbnN0IFQz
JiwgY29uc3QgVDQmLCBjb25zdCBUNSYsIGNvbnN0IFQ2Jj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0
Nik7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMiwgdHlwZW5hbWUgVDMs
IHR5cGVuYW1lIFQ0LCB0eXBlbmFtZSBUNSwgdHlwZW5hbWUgVDY+IEFyZ3VtZW50czY8VDEmLCBU
MiYsIFQzJiwgVDQmLCBUNSYsIFQ2Jj4gT3V0KFQxJiB0MSwgVDImIHQyLCBUMyYgdDMsIFQ0JiB0
NCwgVDUmIHQ1LCBUNiYgdDYpCi17Ci0gICAgcmV0dXJuIEFyZ3VtZW50czY8VDEmLCBUMiYsIFQz
JiwgVDQmLCBUNSYsIFQ2Jj4odDEsIHQyLCB0MywgdDQsIHQ1LCB0Nik7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIENvcmVJUEMKIAogI2VuZGlmIC8vIEFyZ3VtZW50c19oCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4
IDhhY2IxZWYuLjY2YjY3OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5o
CisrKyBiL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0zNCw3ICszNCw2IEBAIGNsYXNz
IEFQSU9iamVjdCA6IHB1YmxpYyBSZWZDb3VudGVkPEFQSU9iamVjdD4gewogcHVibGljOgogICAg
IGVudW0gVHlwZSB7CiAgICAgICAgIC8vIEJhc2UgdHlwZXMKLSAgICAgICAgVHlwZU51bGwsCiAg
ICAgICAgIFR5cGVBcnJheSwKICAgICAgICAgVHlwZURhdGEsCiAgICAgICAgIFR5cGVEaWN0aW9u
YXJ5LApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBiL1dl
YktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggNTFhMWRjZC4uNmM5Nzg3MiAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9XZWJL
aXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCkBAIC0zMiw3ICszMiw2IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi0vLyAgIC0gTnVsbCAtPiBOdWxsCiAvLyAgIC0gQXJyYXkgLT4gQXJy
YXkKIC8vICAgLSBEaWN0aW9uYXJ5IC0+IERpY3Rpb25hcnkKIC8vICAgLSBTdHJpbmcgLT4gU3Ry
aW5nCkBAIC00MCwxNiArMzksOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHRlbXBsYXRlPHR5cGVu
YW1lIE93bmVyPgogY2xhc3MgVXNlck1lc3NhZ2VFbmNvZGVyIHsKIHB1YmxpYzoKLSAgICBib29s
IGJhc2VFbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBBUElPYmplY3Q6
OlR5cGUmIHR5cGUpIGNvbnN0IAorICAgIGJvb2wgYmFzZUVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXIqIGVuY29kZXIsIEFQSU9iamVjdDo6VHlwZSB0eXBlKSBjb25zdCAKICAgICB7Ci0g
ICAgICAgIGlmICghbV9yb290KSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVVSW50MzIo
QVBJT2JqZWN0OjpUeXBlTnVsbCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
fQotCi0gICAgICAgIHR5cGUgPSBtX3Jvb3QtPnR5cGUoKTsKLSAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlVUludDMyKHR5cGUpOwotCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewogICAgICAgICBjYXNl
IEFQSU9iamVjdDo6VHlwZUFycmF5OiB7CiAgICAgICAgICAgICBJbW11dGFibGVBcnJheSogYXJy
YXkgPSBzdGF0aWNfY2FzdDxJbW11dGFibGVBcnJheSo+KG1fcm9vdCk7CkBAIC05NCw3ICs4NSw2
IEBAIHByb3RlY3RlZDoKIAogCiAvLyBIYW5kbGVzCi0vLyAgIC0gTnVsbCAtPiBOdWxsCiAvLyAg
IC0gQXJyYXkgLT4gQXJyYXkKIC8vICAgLSBEaWN0aW9uYXJ5IC0+IERpY3Rpb25hcnkKIC8vICAg
LSBTdHJpbmcgLT4gU3RyaW5nCkBAIC0xMDIsMTQgKzkyLDggQEAgcHJvdGVjdGVkOgogdGVtcGxh
dGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBVc2VyTWVzc2FnZURlY29kZXIgewogcHVibGljOgot
ICAgIHN0YXRpYyBib29sIGJhc2VEZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBPd25lciYgY29kZXIsIEFQSU9iamVjdDo6VHlwZSYgdHlwZSkKKyAgICBzdGF0aWMgYm9v
bCBiYXNlRGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgT3duZXImIGNv
ZGVyLCBBUElPYmplY3Q6OlR5cGUgdHlwZSkKICAgICB7Ci0gICAgICAgIHVpbnQzMl90IHR5cGVB
c1VJbnQzMjsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUodHlwZUFzVUludDMyKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICB0eXBlID0gc3RhdGljX2Nhc3Q8QVBJ
T2JqZWN0OjpUeXBlPih0eXBlQXNVSW50MzIpOwotCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewog
ICAgICAgICBjYXNlIEFQSU9iamVjdDo6VHlwZUFycmF5OiB7CiAgICAgICAgICAgICB1aW50NjRf
dCBzaXplOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlRGlj
dGlvbmFyeS5jcHAgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVEaWN0aW9uYXJ5
LmNwcAppbmRleCAyMjIyNjBjLi5iYWNhZWUzIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcApAQCAtMzYsNyArMzYsNyBAQCBXS011dGFibGVE
aWN0aW9uYXJ5UmVmIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKQogICAgIHJldHVybiB0b1Jl
ZihkaWN0aW9uYXJ5LnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOwogfQogCi1ib29sIFdLRGljdGlv
bmFyeUlzTXV0YWJsZShXS0RpY3Rpb25hcnlSZWYgZGljdGlvbmFyeVJlZikKK2Jvb2wgV0tEaWN0
aW9uYXJ5SXNNdXRhYmxlKFdLTXV0YWJsZURpY3Rpb25hcnlSZWYgZGljdGlvbmFyeVJlZikKIHsK
ICAgICByZXR1cm4gdG9XSyhkaWN0aW9uYXJ5UmVmKS0+aXNNdXRhYmxlKCk7CiB9CmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVEaWN0aW9uYXJ5LmggYi9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVEaWN0aW9uYXJ5LmgKaW5kZXggNDY3YzFkNC4u
NDFlZGVlOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlRGlj
dGlvbmFyeS5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTXV0YWJsZURpY3Rpb25h
cnkuaApAQCAtMzgsNyArMzgsNyBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JUIFdLTXV0YWJs
ZURpY3Rpb25hcnlSZWYgV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpOwogCi1XS19FWFBPUlQg
Ym9vbCBXS0RpY3Rpb25hcnlJc011dGFibGUoV0tEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnkpOwor
V0tfRVhQT1JUIGJvb2wgV0tEaWN0aW9uYXJ5SXNNdXRhYmxlKFdLTXV0YWJsZURpY3Rpb25hcnlS
ZWYgZGljdGlvbmFyeSk7CiAKIFdLX0VYUE9SVCBib29sIFdLRGljdGlvbmFyeUFkZEl0ZW0oV0tN
dXRhYmxlRGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5LCBXS1N0cmluZ1JlZiBrZXksIFdLVHlwZVJl
ZiBpdGVtKTsKIFdLX0VYUE9SVCBib29sIFdLRGljdGlvbmFyeVNldEl0ZW0oV0tNdXRhYmxlRGlj
dGlvbmFyeVJlZiBkaWN0aW9uYXJ5LCBXS1N0cmluZ1JlZiBrZXksIFdLVHlwZVJlZiBpdGVtKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKaW5kZXggZjU4YzlmMy4uMjlmOTY4NiAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdHJ1Y3QgV0tQYWdlUG9saWN5
Q2xpZW50IHsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVBvbGljeUNsaWVudCBXS1BhZ2VQb2xpY3lD
bGllbnQ7CiAKIC8vIEZvcm0gQ2xpZW50LgotdHlwZWRlZiB2b2lkICgqV0tQYWdlV2lsbFN1Ym1p
dEZvcm1DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVS
ZWYgc291cmNlRnJhbWUsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZVdpbGxTdWJtaXRGb3JtQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS0ZyYW1lUmVmIHNvdXJjZUZyYW1lLCBX
S0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVu
ZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tQYWdlRm9ybUNsaWVudCB7
CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCAyYzI2YjA3Li4xNzhlYTBlIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtNDMsNyAr
NDMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXIqIGVuY29kZXIpIGNvbnN0IAogICAgIHsKLSAgICAgICAgQVBJT2JqZWN0OjpUeXBlIHR5cGUg
PSBBUElPYmplY3Q6OlR5cGVOdWxsOworICAgICAgICBBUElPYmplY3Q6OlR5cGUgdHlwZSA9IG1f
cm9vdC0+dHlwZSgpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KHR5cGUpKTsKKwogICAgICAgICBpZiAoYmFzZUVuY29kZShlbmNvZGVyLCB0eXBlKSkKICAg
ICAgICAgICAgIHJldHVybjsKIApAQCAtODEsMTEgKzgzLDE1IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXImIGNvZGVyKQogICAgIHsKLSAgICAgICAgQVBJT2JqZWN0
OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxsOwotICAgICAgICBpZiAoIUJhc2U6OmJh
c2VEZWNvZGUoZGVjb2RlciwgY29kZXIsIHR5cGUpKQorICAgICAgICB1aW50MzJfdCB0eXBlOwor
ICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0eXBlKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICBpZiAoIUJhc2U6OmJhc2VEZWNvZGUoZGVjb2RlciwgY29kZXIsIHN0
YXRpY19jYXN0PEFQSU9iamVjdDo6VHlwZT4odHlwZSkpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgICAgIGlmIChjb2Rlci5tX3Jvb3QgfHwgdHlwZSA9PSBBUElPYmplY3Q6OlR5
cGVOdWxsKQorICAgICAgICAvLyBJZiB0aGUgYmFzZSBkZWNvZGVkIHNvbWV0aGluZyBpbnRvIHJv
b3QsIHdlIGFyZSBkb25lLgorICAgICAgICBpZiAoY29kZXIubV9yb290KQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CmRpZmYgLS1naXQgYS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZv
cm1DbGllbnQuY3BwCmluZGV4IDUyMzg4N2MuLjdjNjVmZDIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkZvcm1DbGllbnQuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZv
cm1DbGllbnQuY3BwCkBAIC00NSw3ICs0NSw3IEBAIHZvaWQgV2ViRm9ybUNsaWVudDo6aW5pdGlh
bGl6ZShjb25zdCBXS1BhZ2VGb3JtQ2xpZW50KiBjbGllbnQpCiAgICAgICAgIG1lbXNldCgmbV9w
YWdlRm9ybUNsaWVudCwgMCwgc2l6ZW9mKG1fcGFnZUZvcm1DbGllbnQpKTsKIH0KIAotYm9vbCBX
ZWJGb3JtQ2xpZW50Ojp3aWxsU3VibWl0Rm9ybShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1l
UHJveHkqIGZyYW1lLCBXZWJGcmFtZVByb3h5KiBzb3VyY2VGcmFtZSwgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4gPiYgdGV4dEZpZWxkVmFsdWVzLCBBUElPYmplY3QqIHVzZXJEYXRh
LCBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkqIGxpc3RlbmVyKQorYm9vbCBXZWJGb3Jt
Q2xpZW50Ojp3aWxsU3VibWl0Rm9ybShXZWJQYWdlUHJveHkqIHBhZ2UsIFdlYkZyYW1lUHJveHkq
IGZyYW1lLCBXZWJGcmFtZVByb3h5KiBzb3VyY2VGcmFtZSwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJp
bmcsIFN0cmluZz4gPiYgdGV4dEZpZWxkVmFsdWVzLCBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVy
UHJveHkqIGxpc3RlbmVyKQogewogICAgIGlmICghbV9wYWdlRm9ybUNsaWVudC53aWxsU3VibWl0
Rm9ybSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTMsOSArNTMsOSBAQCBib29sIFdlYkZv
cm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94
eSogZnJhbWUsIFdlYgogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGV4dEZpZWxkVmFsdWVzLnNpemUoKTsgKytpKQogICAg
ICAgICBtYXAuc2V0KHRleHRGaWVsZFZhbHVlc1tpXS5maXJzdCwgV2ViU3RyaW5nOjpjcmVhdGUo
dGV4dEZpZWxkVmFsdWVzW2ldLnNlY29uZCkpOwotICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9u
YXJ5PiB0ZXh0RmllbGRzTWFwID0gSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWFwKTsKIAot
ICAgIG1fcGFnZUZvcm1DbGllbnQud2lsbFN1Ym1pdEZvcm0odG9SZWYocGFnZSksIHRvUmVmKGZy
YW1lKSwgdG9SZWYoc291cmNlRnJhbWUpLCB0b1JlZih0ZXh0RmllbGRzTWFwLmdldCgpKSwgdG9S
ZWYodXNlckRhdGEpLCB0b1JlZihsaXN0ZW5lciksIG1fcGFnZUZvcm1DbGllbnQuY2xpZW50SW5m
byk7CisgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IHRleHRGaWVsZHNNYXAgPSBJbW11
dGFibGVEaWN0aW9uYXJ5OjphZG9wdChtYXApOworICAgIG1fcGFnZUZvcm1DbGllbnQud2lsbFN1
Ym1pdEZvcm0odG9SZWYocGFnZSksIHRvUmVmKGZyYW1lKSwgdG9SZWYoc291cmNlRnJhbWUpLCB0
b1JlZih0ZXh0RmllbGRzTWFwLmdldCgpKSwgdG9SZWYobGlzdGVuZXIpLCBtX3BhZ2VGb3JtQ2xp
ZW50LmNsaWVudEluZm8pOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3Jt
Q2xpZW50LmgKaW5kZXggMWYwNzRhNi4uYTQyZjlmYyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRm9ybUNsaWVudC5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZvcm1DbGll
bnQuaApAQCAtMzMsNyArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgQVBJ
T2JqZWN0OwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNz
IFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eTsKQEAgLTQzLDcgKzQyLDggQEAgcHVibGlj
OgogICAgIFdlYkZvcm1DbGllbnQoKTsKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV0tQYWdl
Rm9ybUNsaWVudCopOwogCi0gICAgYm9vbCB3aWxsU3VibWl0Rm9ybShXZWJQYWdlUHJveHkqLCBX
ZWJGcmFtZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBT
dHJpbmc+ID4mIHRleHRGaWVsZFZhbHVlcywgQVBJT2JqZWN0KiB1c2VyRGF0YSwgV2ViRm9ybVN1
Ym1pc3Npb25MaXN0ZW5lclByb3h5Kik7IAorICAgIC8vIEZJWE1FOiBBZGQgc29tZSB0eXBlIG9m
IGZvcm0gZWxlbWVudCByZWZlcmVuY2Ugb3IgYW5vdGF0ZWQgdXNlciBkYXRhLgorICAgIGJvb2wg
d2lsbFN1Ym1pdEZvcm0oV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIFdlYkZyYW1lUHJv
eHkqLCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiB0ZXh0RmllbGRWYWx1ZXMs
IFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSopOyAKIAogcHJpdmF0ZToKICAgICBXS1Bh
Z2VGb3JtQ2xpZW50IG1fcGFnZUZvcm1DbGllbnQ7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCA1OTk1ZjA1Li4xMjlhYTNlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKICNpbmNs
dWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgot
I2luY2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGEuaCIKICNpbmNsdWRlICJXZWJF
dmVudC5oIgpAQCAtNTc2LDE2ICs1NzUsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok0KICAg
ICAgICAgICAgIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQ7CiAgICAgICAgICAgICBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPiA+IHRleHRGaWVsZFZhbHVlczsKICAgICAgICAgICAgIHVp
bnQ2NF90IGxpc3RlbmVySUQ7Ci0KLSAgICAgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJE
YXRhOwotICAgICAgICAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVj
b2Rlcih1c2VyRGF0YSwgcGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0KCkpOwotCi0gICAgICAgICAg
ICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCBzb3VyY2VGcmFt
ZUlELCB0ZXh0RmllbGRWYWx1ZXMsIGxpc3RlbmVySUQsIG1lc3NhZ2VEZWNvZGVyKSkpCisgICAg
ICAgICAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKENvcmVJUEM6Ok91dChmcmFtZUlELCBzb3Vy
Y2VGcmFtZUlELCB0ZXh0RmllbGRWYWx1ZXMsIGxpc3RlbmVySUQpKSkKICAgICAgICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgICAgIHdpbGxTdWJtaXRGb3JtKHByb2Nlc3MoKS0+d2ViRnJh
bWUoZnJhbWVJRCksIHByb2Nlc3MoKS0+d2ViRnJhbWUoc291cmNlRnJhbWVJRCksIHRleHRGaWVs
ZFZhbHVlcywgdXNlckRhdGEuZ2V0KCksIGxpc3RlbmVySUQpOworICAgICAgICAgICAgd2lsbFN1
Ym1pdEZvcm0ocHJvY2VzcygpLT53ZWJGcmFtZShmcmFtZUlEKSwgcHJvY2VzcygpLT53ZWJGcmFt
ZShzb3VyY2VGcmFtZUlEKSwgdGV4dEZpZWxkVmFsdWVzLCBsaXN0ZW5lcklEKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIAogICAgICAgICBjYXNlIFdlYlBhZ2VQcm94
eU1lc3NhZ2U6OkRpZFJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZTogewogICAgICAgICAgICAgU3Ry
aW5nIHJlc3VsdFN0cmluZzsKICAgICAgICAgICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQ7CkBAIC04
ODEsMTAgKzg3NiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTUlNRVR5
cGUoV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFN0cmluZyYgTQogCiAvLyBGb3JtQ2xpZW50
CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybShXZWJGcmFtZVByb3h5KiBmcmFt
ZSwgV2ViRnJhbWVQcm94eSogc291cmNlRnJhbWUsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBT
dHJpbmc+ID4mIHRleHRGaWVsZFZhbHVlcywgQVBJT2JqZWN0KiB1c2VyRGF0YSwgdWludDY0X3Qg
bGlzdGVuZXJJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybShXZWJGcmFtZVBy
b3h5KiBmcmFtZSwgV2ViRnJhbWVQcm94eSogc291cmNlRnJhbWUsIFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBTdHJpbmc+ID4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCkK
IHsKICAgICBSZWZQdHI8V2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5PiBsaXN0ZW5lciA9
IGZyYW1lLT5zZXRVcEZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eShsaXN0ZW5lcklEKTsKLSAg
ICBpZiAoIW1fZm9ybUNsaWVudC53aWxsU3VibWl0Rm9ybSh0aGlzLCBmcmFtZSwgc291cmNlRnJh
bWUsIHRleHRGaWVsZFZhbHVlcywgdXNlckRhdGEsIGxpc3RlbmVyLmdldCgpKSkKKyAgICBpZiAo
IW1fZm9ybUNsaWVudC53aWxsU3VibWl0Rm9ybSh0aGlzLCBmcmFtZSwgc291cmNlRnJhbWUsIHRl
eHRGaWVsZFZhbHVlcywgbGlzdGVuZXIuZ2V0KCkpKQogICAgICAgICBsaXN0ZW5lci0+Y29udGlu
dWVTdWJtaXNzaW9uKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmFmMmQ3
NS4uMDgyYzY5YyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIwMCw3ICsyMDAsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkZy
YW1lUHJveHkqLCBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV2ViRXZl
bnQ6Ok1vZGlmaWVycyBtb2RpZmllcnMsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwsIHVpbnQ2NF90
IGxpc3RlbmVySUQpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoV2ViRnJhbWVQ
cm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgV1RGOjpTdHJpbmcmIHVy
bCwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAKLSAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYkZy
YW1lUHJveHkqIGZyYW1lLCBXZWJGcmFtZVByb3h5KiBmcmFtZVNvdXJjZSwgVmVjdG9yPHN0ZDo6
cGFpcjxXVEY6OlN0cmluZywgV1RGOjpTdHJpbmc+ID4mIHRleHRGaWVsZFZhbHVlcywgQVBJT2Jq
ZWN0KiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCk7CisgICAgdm9pZCB3aWxsU3VibWl0
Rm9ybShXZWJGcmFtZVByb3h5KiBmcmFtZSwgV2ViRnJhbWVQcm94eSogZnJhbWVTb3VyY2UsIFZl
Y3RvcjxzdGQ6OnBhaXI8V1RGOjpTdHJpbmcsIFdURjo6U3RyaW5nPiA+JiB0ZXh0RmllbGRWYWx1
ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogCiAgICAgUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+
IGNyZWF0ZU5ld1BhZ2UoKTsKICAgICB2b2lkIHNob3dQYWdlKCk7CmRpZmYgLS1naXQgYS9XZWJL
aXQyL1dlYktpdDIucHJvIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwppbmRleCAwZjM1OTc5Li40M2Jl
YWZkIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIucHJvCisrKyBiL1dlYktpdDIvV2ViS2l0
Mi5wcm8KQEAgLTEyMyw3ICsxMjMsNiBAQCBJTkNMVURFUEFUSCA9IFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydCBcCi0gICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdCBc
CiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlIFwKICAgICAkJElOQ0xVREVQQVRICiAKQEAgLTI1MSw3
ICsyNTAsNiBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBv
cHVwTWVudS5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVw
TWVudS5oIFwKLSAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3
aW5nQXJlYS5oIFwKICAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaCBcCiAgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggXApAQCAtMzYwLDcgKzM1OCw2IEBAIFNPVVJD
RVMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwIFwK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcCBcCi0gICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNw
cCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0NodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5jcHAg
XAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgXAogICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCmluZGV4IGVhNDMwNDkuLmEyM2Y4
Y2QgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmgKQEAgLTEzOCw3ICsxMzgsNiBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1
bmRsZVBhZ2VUZXh0RmllbGREaWRCZWdpbkVkaXRpbmdDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlVGV4dEZpZWxkRGlkRW5kRWRpdGluZ0Nh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxJ
bnB1dEVsZW1lbnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlVGV4dERpZENoYW5nZUluVGV4
dEZpZWxkQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZU5vZGVIYW5kbGVS
ZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VUZXh0RGlkQ2hh
bmdlSW5UZXh0QXJlYUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVOb2Rl
SGFuZGxlUmVmIGh0bWxUZXh0QXJlYUVsZW1lbnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJh
bWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
V2lsbFN1Ym1pdEZvcm1DYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlTm9k
ZUhhbmRsZVJlZiBodG1sRm9ybUVsZW1lbnRIYW5kbGUsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IFdLQnVuZGxlRnJhbWVSZWYgc291cmNlRnJhbWUsIFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdL
VHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tC
dW5kbGVQYWdlRm9ybUNsaWVudCB7CiAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtMTQ3LDcg
KzE0Niw2IEBAIHN0cnVjdCBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50IHsKICAgICBXS0J1bmRsZVBh
Z2VUZXh0RmllbGREaWRFbmRFZGl0aW5nQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
IHRleHRGaWVsZERpZEVuZEVkaXRpbmc7CiAgICAgV0tCdW5kbGVQYWdlVGV4dERpZENoYW5nZUlu
VGV4dEZpZWxkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RGlkQ2hhbmdlSW5U
ZXh0RmllbGQ7CiAgICAgV0tCdW5kbGVQYWdlVGV4dERpZENoYW5nZUluVGV4dEFyZWFDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYTsKLSAgICBX
S0J1bmRsZVBhZ2VXaWxsU3VibWl0Rm9ybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbGxTdWJtaXRGb3JtOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFn
ZUZvcm1DbGllbnQgV0tCdW5kbGVQYWdlRm9ybUNsaWVudDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
Y3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuY3BwCmluZGV4IDU2M2VkYzYuLjcxYTk1YzkgMTAwNjQ0Ci0tLSBhL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRm9ybUNsaWVudC5jcHAKQEAgLTI1LDExICsyNSw5IEBACiAKICNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgiCiAKLSNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9u
YXJ5LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCi0jaW5jbHVkZSA8V2Vi
Q29yZS9IVE1MRm9ybUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxJbnB1dEVsZW1l
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQuaD4KIApAQCAtNTAs
NyArNDgsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OmluaXRpYWxpemUo
V0tCdW5kbGVQYWdlRm9ybUNsaWVudCogY2xpZW50KQogICAgICAgICBtZW1zZXQoJm1fY2xpZW50
LCAwLCBzaXplb2YobV9jbGllbnQpKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50Ojp0ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoV2ViUGFnZSogcGFnZSwgSFRNTElucHV0
RWxlbWVudCogaW5wdXRFbGVtZW50LCBXZWJGcmFtZSogZnJhbWUpCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZUZvcm1DbGllbnQ6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhXZWJQYWdlKiBwYWdl
LCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQsIFdlYkZyYW1lKiBmcmFt
ZSkKIHsKICAgICBpZiAoIW1fY2xpZW50LnRleHRGaWVsZERpZEJlZ2luRWRpdGluZykKICAgICAg
ICAgcmV0dXJuOwpAQCAtNTksNyArNTcsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyhXZWJQYWdlKiBwYWdlLCBIVE1MSQogICAg
IG1fY2xpZW50LnRleHRGaWVsZERpZEJlZ2luRWRpdGluZyh0b1JlZihwYWdlKSwgdG9SZWYobm9k
ZUhhbmRsZS5nZXQoKSksIHRvUmVmKGZyYW1lKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAK
LXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dEZpZWxkRGlkRW5kRWRpdGlu
ZyhXZWJQYWdlKiBwYWdlLCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQsIFdlYkZyYW1l
KiBmcmFtZSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dEZpZWxkRGlk
RW5kRWRpdGluZyhXZWJQYWdlKiBwYWdlLCBXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dEVsZW1lbnQsIFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBpZiAoIW1fY2xpZW50LnRleHRGaWVs
ZERpZEVuZEVkaXRpbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTY4LDcgKzY2LDcgQEAgdm9pZCBJ
bmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp0ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdlYlBh
Z2UqIHBhZ2UsIEhUTUxJbnAKICAgICBtX2NsaWVudC50ZXh0RmllbGREaWRFbmRFZGl0aW5nKHRv
UmVmKHBhZ2UpLCB0b1JlZihub2RlSGFuZGxlLmdldCgpKSwgdG9SZWYoZnJhbWUpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp0
ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoV2ViUGFnZSogcGFnZSwgSFRNTElucHV0RWxlbWVudCog
aW5wdXRFbGVtZW50LCBXZWJGcmFtZSogZnJhbWUpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZv
cm1DbGllbnQ6OnRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJQYWdlKiBwYWdlLCBXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQsIFdlYkZyYW1lKiBmcmFtZSkKIHsKICAg
ICBpZiAoIW1fY2xpZW50LnRleHREaWRDaGFuZ2VJblRleHRGaWVsZCkKICAgICAgICAgcmV0dXJu
OwpAQCAtNzcsNyArNzUsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnRl
eHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJQYWdlKiBwYWdlLCBIVE1MSQogICAgIG1fY2xpZW50
LnRleHREaWRDaGFuZ2VJblRleHRGaWVsZCh0b1JlZihwYWdlKSwgdG9SZWYobm9kZUhhbmRsZS5n
ZXQoKSksIHRvUmVmKGZyYW1lKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEFyZWEoV2ViUGFn
ZSogcGFnZSwgSFRNTFRleHRBcmVhRWxlbWVudCogdGV4dEFyZWFFbGVtZW50LCBXZWJGcmFtZSog
ZnJhbWUpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OnRleHREaWRDaGFuZ2VJ
blRleHRBcmVhKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQqIHRl
eHRBcmVhRWxlbWVudCwgV2ViRnJhbWUqIGZyYW1lKQogewogICAgIGlmICghbV9jbGllbnQudGV4
dERpZENoYW5nZUluVGV4dEFyZWEpCiAgICAgICAgIHJldHVybjsKQEAgLTg2LDIxICs4NCw0IEBA
IHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6dGV4dERpZENoYW5nZUluVGV4dEFy
ZWEoV2ViUGFnZSogcGFnZSwgSFRNTFRlCiAgICAgbV9jbGllbnQudGV4dERpZENoYW5nZUluVGV4
dEFyZWEodG9SZWYocGFnZSksIHRvUmVmKG5vZGVIYW5kbGUuZ2V0KCkpLCB0b1JlZihmcmFtZSks
IG1fY2xpZW50LmNsaWVudEluZm8pOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OndpbGxTdWJtaXRGb3JtKFdlYlBhZ2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVudCogZm9y
bUVsZW1lbnQsIFdlYkZyYW1lKiBmcmFtZSwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBW
ZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiB2YWx1ZXMsIFJlZlB0cjxBUElPYmpl
Y3Q+JiB1c2VyRGF0YSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LndpbGxTdWJtaXRGb3JtKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlPiBub2Rl
SGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOjpnZXRPckNyZWF0ZShmb3JtRWxlbWVu
dCk7Ci0KLSAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHZhbHVlcy5zaXplKCk7ICsraSkKLSAgICAgICAgbWFwLnNldCh2YWx1
ZXNbaV0uZmlyc3QsIFdlYlN0cmluZzo6Y3JlYXRlKHZhbHVlc1tpXS5zZWNvbmQpKTsKLSAgICBS
ZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gdGV4dEZpZWxkc01hcCA9IEltbXV0YWJsZURpY3Rp
b25hcnk6OmFkb3B0KG1hcCk7Ci0KLSAgICBXS1R5cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOwot
ICAgIG1fY2xpZW50LndpbGxTdWJtaXRGb3JtKHRvUmVmKHBhZ2UpLCB0b1JlZihub2RlSGFuZGxl
LmdldCgpKSwgdG9SZWYoZnJhbWUpLCB0b1JlZihzb3VyY2VGcmFtZSksIHRvUmVmKHRleHRGaWVs
ZHNNYXAuZ2V0KCkpLCAmdXNlckRhdGFUb1Bhc3MsIG1fY2xpZW50LmNsaWVudEluZm8pOwotICAg
IHVzZXJEYXRhID0gYWRvcHRSZWYodG9XSyh1c2VyRGF0YVRvUGFzcykpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oCmluZGV4IDkwOWE0
NWUuLjljNDA2OTggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaApAQCAtMjcsMjAg
KzI3LDE0IEBACiAjZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnRfaAogCiAjaW5j
bHVkZSAiV0tCdW5kbGVQYWdlLmgiCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0gICAgY2xhc3MgSFRNTEZvcm1FbGVtZW50OwogICAgIGNsYXNzIEhUTUxJbnB1dEVsZW1l
bnQ7CiAgICAgY2xhc3MgSFRNTFRleHRBcmVhRWxlbWVudDsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLWNsYXNzIEFQSU9iamVjdDsKLWNsYXNzIEltbXV0YWJsZURpY3Rpb25hcnk7CiBjbGFz
cyBXZWJGcmFtZTsKIGNsYXNzIFdlYlBhZ2U7CiAKQEAgLTU0LDggKzQ4LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEZpZWxkKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50KiwgV2ViRnJhbWUqKTsKICAgICB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRB
cmVhKFdlYlBhZ2UqLCBXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50KiwgV2ViRnJhbWUqKTsK
IAotICAgIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV2ViUGFnZSosIFdlYkNvcmU6OkhUTUxGb3JtRWxl
bWVudCosIFdlYkZyYW1lKiwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiwgUmVmUHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsK
LQogcHJpdmF0ZToKICAgICBXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50IG1fY2xpZW50OwogfTsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlQ29kZXJzLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oCmluZGV4IGNlZTJlMmUuLjBlYzRjM2Eg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaApAQCAtNDMsNyArNDMsOSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVu
Y29kZXIpIGNvbnN0IAogICAgIHsKLSAgICAgICAgQVBJT2JqZWN0OjpUeXBlIHR5cGUgPSBBUElP
YmplY3Q6OlR5cGVOdWxsOworICAgICAgICBBUElPYmplY3Q6OlR5cGUgdHlwZSA9IG1fcm9vdC0+
dHlwZSgpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHR5
cGUpKTsKKyAgICAgICAgCiAgICAgICAgIGlmIChiYXNlRW5jb2RlKGVuY29kZXIsIHR5cGUpKQog
ICAgICAgICAgICAgcmV0dXJuOwogCkBAIC03OSwxMSArODEsMTUgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgSW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZURlY29kZXImIGNvZGVyKQogICAgIHsKLSAgICAgICAgQVBJ
T2JqZWN0OjpUeXBlIHR5cGUgPSBBUElPYmplY3Q6OlR5cGVOdWxsOwotICAgICAgICBpZiAoIUJh
c2U6OmJhc2VEZWNvZGUoZGVjb2RlciwgY29kZXIsIHR5cGUpKQorICAgICAgICB1aW50MzJfdCB0
eXBlOworICAgICAgICBpZiAoIWRlY29kZXItPmRlY29kZSh0eXBlKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoY29kZXIubV9yb290IHx8IHR5cGUgPT0gQVBJT2Jq
ZWN0OjpUeXBlTnVsbCkKKyAgICAgICAgaWYgKCFCYXNlOjpiYXNlRGVjb2RlKGRlY29kZXIsIGNv
ZGVyLCBzdGF0aWNfY2FzdDxBUElPYmplY3Q6OlR5cGU+KHR5cGUpKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICAvLyBJZiB0aGUgYmFzZSBjcmVhdGVkIHNvbWV0aGluZyBp
biByb290LCB3ZSBhcmUgZG9uZS4KKyAgICAgICAgaWYgKGNvZGVyLm1fcm9vdCkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIHN3aXRjaCAodHlwZSkgewpkaWZmIC0tZ2l0IGEv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAzZTgzMDc5Li5mYzA3ZTNlIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNTE1LDcgKzUxNSw3
IEBAIHZvaWQgUGx1Z2luVmlldzo6cGVyZm9ybUZyYW1lTG9hZFVSTFJlcXVlc3QoVVJMUmVxdWVz
dCogcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyBV
UkwgY2FuIGJlIGxvYWRlZC4KLSAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5KHJl
cXVlc3QtPnJlcXVlc3QoKS51cmwoKSwgU3RyaW5nKCksIG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1l
bnQoKSkpIHsKKyAgICBpZiAoIVNlY3VyaXR5T3JpZ2luOjpjYW5Mb2FkKHJlcXVlc3QtPnJlcXVl
c3QoKS51cmwoKSwgU3RyaW5nKCksIG1fcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKSkpIHsKICAg
ICAgICAgLy8gV2UgY2FuJ3QgbG9hZCB0aGUgcmVxdWVzdCwgc2VuZCBiYWNrIGEgcmVwbHkgdG8g
dGhlIHBsdWctaW4uCiAgICAgICAgIG1fcGx1Z2luLT5mcmFtZURpZEZhaWwocmVxdWVzdC0+cmVx
dWVzdElEKCksIGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5k
ZXggNTU3OTNhYS4uOGI2ZjM1NyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0yOCwxNCArMjgs
MTIgQEAKICNkZWZpbmUgRElTQUJMRV9OT1RfSU1QTEVNRU5URURfV0FSTklOR1MgMQogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKLSNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlQ29kZXJzLmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4uaCIKICNpbmNsdWRlICJQbHVn
aW5WaWV3LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5o
IgotI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldl
YlBhZ2VQcm94eU1lc3NhZ2VLaW5kcy5oIgpAQCAtNTA0LDI3ICs1MDIsMjAgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBS
ZXNvdXJjZUVycm9yJikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rpb24g
ZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBwcnBGb3JtU3RhdGUpCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKEZyYW1lUG9saWN5RnVuY3Rp
b24gZnVuY3Rpb24sIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUpCiB7CiAgICAgV2Vi
UGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBQYXNzIG1vcmUgb2YgdGhlIGZvcm0gc3RhdGUu
Ci0gICAgUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlID0gcHJwRm9ybVN0YXRlOwotICAgIAot
ICAgIEhUTUxGb3JtRWxlbWVudCogZm9ybSA9IGZvcm1TdGF0ZS0+Zm9ybSgpOwotICAgIFdlYkZy
YW1lKiBzb3VyY2VGcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oZm9y
bVN0YXRlLT5zb3VyY2VGcmFtZSgpLT5sb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOyAg
ICAKLSAgICBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiA+JiB2YWx1ZXMg
PSBmb3JtU3RhdGUtPnRleHRGaWVsZFZhbHVlcygpOwotCi0gICAgUmVmUHRyPEFQSU9iamVjdD4g
dXNlckRhdGE7Ci0gICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVGb3JtQ2xpZW50KCkud2lsbFN1
Ym1pdEZvcm0od2ViUGFnZSwgZm9ybSwgbV9mcmFtZSwgc291cmNlRnJhbWUsIHZhbHVlcywgdXNl
ckRhdGEpOwotCiAKICAgICB1aW50NjRfdCBsaXN0ZW5lcklEID0gbV9mcmFtZS0+c2V0VXBQb2xp
Y3lMaXN0ZW5lcihmdW5jdGlvbik7CiAKKyAgICBXZWJGcmFtZSogc291cmNlRnJhbWUgPSBzdGF0
aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KGZvcm1TdGF0ZS0+c291cmNlRnJhbWUoKS0+
bG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsgICAgCisKICAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoV2ViUGFnZVByb3h5TWVzc2FnZTo6V2lsbFN1Ym1p
dEZvcm0sIHdlYlBhZ2UtPnBhZ2VJRCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDb3JlSVBDOjpJbihtX2ZyYW1lLT5mcmFtZUlEKCksIHNvdXJjZUZyYW1l
LT5mcmFtZUlEKCksIHZhbHVlcywgbGlzdGVuZXJJRCwgSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2Fn
ZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENvcmVJUEM6OkluKG1fZnJhbWUtPmZyYW1lSUQoKSwgc291cmNlRnJh
bWUtPmZyYW1lSUQoKSwgZm9ybVN0YXRlLT50ZXh0RmllbGRWYWx1ZXMoKSwgbGlzdGVuZXJJRCkp
OwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExvYWRNYWluUmVz
b3VyY2UoRG9jdW1lbnRMb2FkZXIqKQpAQCAtMTA0Niw5ICsxMDM3LDQgQEAgYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nJiAvKm1p
bWVUeXBlKi8pIGMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBhc3NSZWZQdHI8RnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250
ZXh0KCkKLXsKLSAgICByZXR1cm4gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKG1f
ZnJhbWUtPmNvcmVGcmFtZSgpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IDk4YTY1MTIuLjRiZDYzOGUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMDQs
OCArMjA0LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlUGx1Z2luRG9j
dW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmIC8qbWltZVR5cGUqLykgY29uc3Q7CiAgICAgCiAgICAg
dm9pZCByZWNlaXZlZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgY29uc3QgV1RG
OjpTdHJpbmcmIHRleHRFbmNvZGluZyk7Ci0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKICAg
ICAKICAgICBXZWJGcmFtZSogbV9mcmFtZTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBi
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQppbmRleCA1NzBkMzUxLi45NDFjZmFhIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0K
KysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCkBAIC0xNywzNCArMTcsNSBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogKi8KIAotI2ltcG9ydCAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgot
Ci0jaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgotI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWJvb2wgV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdAotewotICAgIHJldHVybiBmcmFt
ZSgpICYmIGZyYW1lKCktPnNldHRpbmdzKCkgJiYgZnJhbWUoKS0+c2V0dGluZ3MoKS0+bmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoKTsKLX0KLQotYm9vbCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
Ojpsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ZnJhbWUoKSAmJiBmcmFtZSgpLT5zZXR0aW5ncygpICYmIGZyYW1lKCktPnNldHRpbmdzKCktPmxv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKTsKLX0KLQotU2NoZWR1bGVQYWlySGFzaFNl
dCogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgPyBmcmFtZSgpLT5w
YWdlKCktPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpIDogMDsKLX0KLQotUmVzb3VyY2VFcnJvciBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KSBjb25zdAotewotICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+Ymxv
Y2tlZEVycm9yKHJlcXVlc3QpOwotfQotCi19CisvLyBDaGVja2luZyB0aGlzIGZpbGUgaW4gZW1w
dHkgdG8gZ2V0IHRoZSBidWlsZCBzeXN0ZW0gd29yayBvdXQgb2YgdGhlIHdheS4KKy8vIFdpbGwg
cHV0IHRoZSBjb2RlIGluIGhlcmUgbGF0ZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAgYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmZDhiYmMuLjAwMDAwMDAKLS0t
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotLyoKLSAgICBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2ViRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dC5oIgotCi0jaW5jbHVkZSA8UU5ldHdvcmtBY2Nlc3NNYW5hZ2VyPgotI2luY2x1
ZGUgPFFPYmplY3Q+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dDo6V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUpCi0gICAgOiBG
cmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQotICAgICwgbV9vcmlnaW5hdGluZ09iamVjdCgw
KQotICAgICwgbV9uZXR3b3JrQWNjZXNzTWFuYWdlcihuZXcgUU5ldHdvcmtBY2Nlc3NNYW5hZ2Vy
KQotewotfQotCi1QYXNzUmVmUHRyPFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShGcmFtZSogZnJhbWUpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKSk7Ci19Ci0KLVFPYmpl
Y3QqIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6Om9yaWdpbmF0aW5nT2JqZWN0KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9vcmlnaW5hdGluZ09iamVjdDsKLX0KLQotUU5ldHdvcmtBY2Nlc3NN
YW5hZ2VyKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpuZXR3b3JrQWNjZXNzTWFuYWdlcigp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbmV0d29ya0FjY2Vzc01hbmFnZXI7Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzZTk0MzE5Li4wMDAwMDAwCi0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyAr
MCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaWZuZGVmIFdlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHRfaAotI2RlZmluZSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKLQotI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgRnJhbWVOZXR3b3Jr
aW5nQ29udGV4dCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dD4gY3JlYXRlKEZyYW1lKik7Ci0KLXByaXZhdGU6Ci0gICAgV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dChGcmFtZSopOwotCi0gICAgdmlydHVhbCBRT2JqZWN0KiBvcmlnaW5h
dGluZ09iamVjdCgpIGNvbnN0OwotICAgIHZpcnR1YWwgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyKiBu
ZXR3b3JrQWNjZXNzTWFuYWdlcigpIGNvbnN0OwotCi0gICAgUU9iamVjdCogbV9vcmlnaW5hdGlu
Z09iamVjdDsKLSAgICBRTmV0d29ya0FjY2Vzc01hbmFnZXIqIG1fbmV0d29ya0FjY2Vzc01hbmFn
ZXI7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d2luL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2YjIwYzFmLi4wMDAwMDAwCi0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93aW4vV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwyMCArMCwwIEBACi0vKgotICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLQotICAgIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAg
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQot
ICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0g
ICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotLy8gQ2hlY2tpbmcgdGhpcyBmaWxl
IGluIGVtcHR5IHRvIGdldCB0aGUgYnVpbGQgc3lzdGVtIHdvcmsgb3V0IG9mIHRoZSB3YXkuCi0v
LyBXaWxsIHB1dCB0aGUgY29kZSBpbiBoZXJlIGxhdGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
Yi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Q4NzI5Mi4uMDAwMDAw
MAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd2luL1dlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gICAg
Q29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSovCi0KLSNpZm5kZWYgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCi0jZGVmaW5l
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAotCi0jaW5jbHVkZSA8V2ViQ29yZS9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0Lmg+Ci0KLWNsYXNzIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQgOiBw
dWJsaWMgV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dCB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKFdlYkNvcmU6
OkZyYW1lKikKLSAgICB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotcHJpdmF0ZToKLSAg
ICBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0KFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKLSAgICAg
ICAgOiBXZWJDb3JlOjpGcmFtZU5ldHdvcmtpbmdDb250ZXh0KGZyYW1lKQotICAgIHsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwotICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgcmVmZXJyZXIoKSBjb25zdDsKLQotICAgIFdURjo6U3RyaW5nIG1fdXNl
ckFnZW50OwotfTsKLQotI2VuZGlmIC8vIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHRfaApkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQy
LnZjcHJvagppbmRleCA3ZDI4MTA0Li4wYTZjNTViIDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLnZjcHJvagorKysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNjgxLDMy
ICs2ODEsMjQgQEAKIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViU2VhcmNoUG9wdXBNZW51LmgiDQotCQkJ
CQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWx0ZXIKLQkJCQkJTmFtZT0id2luIgotCQkJCQk+Ci0J
CQkJCTxGaWxlCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnRcd2luXFdlYkVycm9yc1dpbi5jcHAiCi0JCQkJCQk+Ci0JCQkJCTwvRmlsZT4KLQkJCQkJPEZp
bGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW5c
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5jcHAiCi0JCQkJCQk+Ci0JCQkJCTwvRmlsZT4KLQkJ
CQkJPEZpbGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9y
dFx3aW5cV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgotCQkJCQkJPgotCQkJCQk8L0ZpbGU+
Ci0JCQkJPC9GaWx0ZXI+Ci0JCQk8L0ZpbHRlcj4KLQkJCTxGaWx0ZXIKLQkJCQlOYW1lPSJXZWJQ
YWdlIgotCQkJCT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
V2ViUGFnZVxDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWEuY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxl
PgorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbHRlcg0KKwkJCQkJTmFtZT0id2luIg0K
KwkJCQkJPg0KKwkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
V2ViQ29yZVN1cHBvcnRcd2luXFdlYkVycm9yc1dpbi5jcHAiDQorCQkJCQkJPg0KKwkJCQkJPC9G
aWxlPg0KKwkJCQk8L0ZpbHRlcj4NCisJCQk8L0ZpbHRlcj4NCisJCQk8RmlsdGVyDQorCQkJCU5h
bWU9IldlYlBhZ2UiDQorCQkJCT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
V2ViUHJvY2Vzc1xXZWJQYWdlXENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5jcHAiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJv
Y2Vzc1xXZWJQYWdlXENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYS5oIg0KIAkJCQkJPg0KZGlmZiAt
LWdpdCBhL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcyBiL1dlYktpdDIvd2luL1dl
YktpdDJDb21tb24udnNwcm9wcwpvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAwNjQ0CmluZGV4
IDg4OWMyZjQuLjFjNDJhZmEKLS0tIGEvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3Bz
CisrKyBiL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwpAQCAtMSwyMSArMSwyMSBA
QAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+Ci08VmlzdWFs
U3R1ZGlvUHJvcGVydHlTaGVldAotCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIgotCVZlcnNpb249
IjguMDAiCi0JTmFtZT0iV2ViS2l0MkNvbW1vbiIKLQk+Ci0JPFRvb2wKLQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
XENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1x3aW4mcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0
aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJbmNsdWRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNj
cmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZVxX
ZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCi0JCVByZXByb2Nlc3Nv
ckRlZmluaXRpb25zPSJfVVNSRExMO1dFQktJVF9FWFBPUlRTO0ZSQU1FV09SS19OQU1FPVdlYktp
dDtCVUlMRElOR19XRUJLSVQiCi0JCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgotCQlQcmVjb21w
aWxlZEhlYWRlclRocm91Z2g9IldlYktpdDJQcmVmaXguaCIKLQkJRGlzYWJsZVNwZWNpZmljV2Fy
bmluZ3M9IjQ4MTkiCi0JCUZvcmNlZEluY2x1ZGVGaWxlcz0iV2ViS2l0MlByZWZpeC5oO0lDVVZl
cnNpb24uaCIKLQkvPgotCTxUb29sCi0JCU5hbWU9IlZDTGlua2VyVG9vbCIKLQkJQWRkaXRpb25h
bERlcGVuZGVuY2llcz0iZGVsYXlpbXAubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMy
LmxpYiBhZHZhcGkzMi5saWIgc2hlbGwzMi5saWIgb2xlMzIubGliIG9sZWF1dDMyLmxpYiB1dWlk
LmxpYiBvZGJjMzIubGliIG9kYmNjcDMyLmxpYiB1c3AxMC5saWIgY29tY3RsMzIubGliIHZlcnNp
b24ubGliIHNobHdhcGkubGliIGxpYnhtbDIkKExpYnJhcnlDb25maWdTdWZmaXgpLmxpYiBsaWJ4
c2x0JChMaWJyYXJ5Q29uZmlnU3VmZml4KS5saWIgbGliaWN1aW4kKExpYnJhcnlDb25maWdTdWZm
aXgpLmxpYiBsaWJpY3V1YyQoTGlicmFyeUNvbmZpZ1N1ZmZpeCkubGliIFNRTGl0ZTMkKExpYnJh
cnlDb25maWdTdWZmaXgpLmxpYiBwdGhyZWFkVkMyJChMaWJyYXJ5Q29uZmlnU3VmZml4KS5saWIg
SmF2YVNjcmlwdENvcmUkKFdlYktpdERMTENvbmZpZ1N1ZmZpeCkubGliIFdlYkNvcmUkKFdlYktp
dENvbmZpZ1N1ZmZpeCkubGliIFdlYktpdExpYiQoV2ViS2l0Q29uZmlnU3VmZml4KS5saWIgV2Vi
S2l0R1VJRCQoV2ViS2l0Q29uZmlnU3VmZml4KS5saWIgbXNpbWczMi5saWIgY3J5cHQzMi5saWIg
aXBobHBhcGkubGliIHdpbm1tLmxpYiBjb21zdXBwdy5saWIgcnBjcnQ0LmxpYiIKKzw/eG1sIHZl
cnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KKzxWaXN1YWxTdHVkaW9Qcm9w
ZXJ0eVNoZWV0DQorCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KKwlWZXJzaW9uPSI4LjAwIg0K
KwlOYW1lPSJXZWJLaXQyQ29tbW9uIg0KKwk+DQorCTxUb29sDQorCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENv
cmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hh
cmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQ
bHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
SW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXElu
amVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1
Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2lu
JnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0T3V0cHV0RGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVc
cHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFk
cyZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZx
dW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2
YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXEluY2x1ZGVcV2ViQ29y
ZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7Ig0KKwkJUHJlcHJvY2Vzc29yRGVm
aW5pdGlvbnM9Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JV
SUxESU5HX1dFQktJVCINCisJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIg0KKwkJUHJlY29tcGls
ZWRIZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiDQorCQlEaXNhYmxlU3BlY2lmaWNXYXJu
aW5ncz0iNDgxOSINCisJCUZvcmNlZEluY2x1ZGVGaWxlcz0iV2ViS2l0MlByZWZpeC5oO0lDVVZl
cnNpb24uaCINCisJLz4NCisJPFRvb2wNCisJCU5hbWU9IlZDTGlua2VyVG9vbCINCisJCUFkZGl0
aW9uYWxEZXBlbmRlbmNpZXM9ImRlbGF5aW1wLmxpYiBrZXJuZWwzMi5saWIgdXNlcjMyLmxpYiBn
ZGkzMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIg
dXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgdXNwMTAubGliIGNvbWN0bDMyLmxpYiB2
ZXJzaW9uLmxpYiBzaGx3YXBpLmxpYiBsaWJ4bWwyJChMaWJyYXJ5Q29uZmlnU3VmZml4KS5saWIg
bGlieHNsdCQoTGlicmFyeUNvbmZpZ1N1ZmZpeCkubGliIGxpYmljdWluJChMaWJyYXJ5Q29uZmln
U3VmZml4KS5saWIgbGliaWN1dWMkKExpYnJhcnlDb25maWdTdWZmaXgpLmxpYiBTUUxpdGUzJChM
aWJyYXJ5Q29uZmlnU3VmZml4KS5saWIgcHRocmVhZFZDMiQoTGlicmFyeUNvbmZpZ1N1ZmZpeCku
bGliIEphdmFTY3JpcHRDb3JlJChXZWJLaXRETExDb25maWdTdWZmaXgpLmxpYiBXZWJDb3JlJChX
ZWJLaXRDb25maWdTdWZmaXgpLmxpYiBXZWJLaXRMaWIkKFdlYktpdENvbmZpZ1N1ZmZpeCkubGli
IFdlYktpdEdVSUQkKFdlYktpdENvbmZpZ1N1ZmZpeCkubGliIG1zaW1nMzIubGliIGNyeXB0MzIu
bGliIGlwaGxwYXBpLmxpYiB3aW5tbS5saWIgY29tc3VwcHcubGliIHJwY3J0NC5saWIiDQogCQlP
dXRwdXRGaWxlPSIkKE91dERpcilcJChQcm9qZWN0TmFtZSkkKFdlYktpdERMTENvbmZpZ1N1ZmZp
eCkuZGxsIg0KIAkJQWRkaXRpb25hbExpYnJhcnlEaXJlY3Rvcmllcz0iJnF1b3Q7JChJbnREaXIp
XGxpYiZxdW90OyINCiAJCURlbGF5TG9hZERMTHM9InVzcDEwLmRsbDtjb21jdGwzMi5kbGw7dmVy
c2lvbi5kbGw7bGlieHNsdCQoTGlicmFyeUNvbmZpZ1N1ZmZpeCkuZGxsO1NRTGl0ZTMkKExpYnJh
cnlDb25maWdTdWZmaXgpLmRsbDttc2ltZzMyLmRsbDtpcGhscGFwaS5kbGwiDQpkaWZmIC0tZ2l0
IGEvV2ViS2l0U2l0ZS9DaGFuZ2VMb2cgYi9XZWJLaXRTaXRlL0NoYW5nZUxvZwppbmRleCAzM2Ez
ZDIxLi4zNGM0YzAyIDEwMDY0NAotLS0gYS9XZWJLaXRTaXRlL0NoYW5nZUxvZworKysgYi9XZWJL
aXRTaXRlL0NoYW5nZUxvZwpAQCAtMSwxOCArMSwzIEBACi0yMDEwLTA5LTA2ICBSb2JpbiBRaXUg
IDxyb2Jpbi5xaXVAdG9yY2htb2JpbGUuY29tLmNuPgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCi0KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQzOTgyCi0gICAgICAgIFRoaXMganMgZmlsZSBzZWVtcyB0byBiZSBhIHBvcHVsYXIgc2Ny
aXB0IGZvciBkZXRlY3RpbmcgbW9iaWxlIFdlYktpdCBidXQKLSAgICAgICAgaXQgaGFzIGEgZmxh
dyB0aGF0IG1ha2VzIGl0IGZhaWwgb24gQW5kcm9pZCBhbmQgQmxhY2tCZXJyeS4gIAotCi0gICAg
ICAgIFRoZSBpc3N1ZSBpcyB0aGF0IGl0IGxvb2tzIGZvciAiTW9iaWxlLyIgYnV0IEFuZHJvaWQg
YW5kIEJsYWNrQmVycnkKLSAgICAgICAgdXNlICJNb2JpbGUiIHdpdGggbm8gbnVtYmVyaW5nIGFm
dGVyIGl0LgotICAgICAgICBDaGFuZ2VkIFJlZ0V4cCBwYXR0ZXJuICIgTW9iaWxlLyIgdG8gIiBN
b2JpbGVcXGIiLgotCi0gICAgICAgICogbWlzYy9XZWJLaXREZXRlY3QuanM6Ci0gICAgICAgIChX
ZWJLaXREZXRlY3QuaXNNb2JpbGUpOgotCiAyMDEwLTA4LTI3ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICAqIGNvZGluZy9SZWZQdHIuaHRtbDogTWlub3IgcmV2aXNp
b24sIGltcHJvdmUgY2xhcml0eSBhbmQgbWVudGlvbiBzb21lCmRpZmYgLS1naXQgYS9XZWJLaXRT
aXRlL21pc2MvV2ViS2l0RGV0ZWN0LmpzIGIvV2ViS2l0U2l0ZS9taXNjL1dlYktpdERldGVjdC5q
cwppbmRleCBmMDM4ZDY4Li4xYzVjNjkyIDEwMDY0NAotLS0gYS9XZWJLaXRTaXRlL21pc2MvV2Vi
S2l0RGV0ZWN0LmpzCisrKyBiL1dlYktpdFNpdGUvbWlzYy9XZWJLaXREZXRlY3QuanMKQEAgLTEw
MSw3ICsxMDEsNyBAQCBXZWJLaXREZXRlY3QudmVyc2lvbklzQXRMZWFzdCA9IGZ1bmN0aW9uIHZl
cnNpb25Jc0F0TGVhc3QobWluaW11bVN0cmluZykKIAogV2ViS2l0RGV0ZWN0LmlzTW9iaWxlID0g
ZnVuY3Rpb24gaXNNb2JpbGUoKQogewotICAgIHJldHVybiBXZWJLaXREZXRlY3QuaXNXZWJLaXQo
KSAmJiBSZWdFeHAoIiBNb2JpbGVcXGIiKS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpOworICAg
IHJldHVybiBXZWJLaXREZXRlY3QuaXNXZWJLaXQoKSAmJiBSZWdFeHAoIiBNb2JpbGUvIikudGVz
dChuYXZpZ2F0b3IudXNlckFnZW50KTsKIH0KIAogV2ViS2l0RGV0ZWN0Lm1vYmlsZURldmljZSA9
IGZ1bmN0aW9uIG1vYmlsZURldmljZSgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DTWFrZUxp
c3RzRWZsLnR4dCBiL1dlYktpdFRvb2xzL0NNYWtlTGlzdHNFZmwudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiOTA4NmFjLi4wMDAwMDAwCi0tLSBhL1dlYktpdFRvb2xzL0NNYWtl
TGlzdHNFZmwudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotU0VUKEVXZWJMYXVu
Y2hlcl9TT1VSQ0VTCi0gICAgJHtXZWJLaXRfVEhFTUV9Ci0gICAgJHtXRUJLSVRUT09MU19ESVJ9
L0VXZWJMYXVuY2hlci9tYWluLmMKLSkKLQotU0VUKEVXZWJMYXVuY2hlcl9MSUJSQVJJRVMKLSAg
ICAke0phdmFTY3JpcHRDb3JlX0xJQlJBUllfTkFNRX0KLSAgICAke1dlYkNvcmVfTElCUkFSWV9O
QU1FfQotICAgICR7V2ViS2l0X0xJQlJBUllfTkFNRX0KLSAgICAke0NhaXJvX0xJQlJBUklFU30K
LSAgICAke0VDT1JFX1hfTElCUkFSSUVTfQotICAgICR7RURKRV9MSUJSQVJJRVN9Ci0gICAgJHtF
RkxERVBTX0xJQlJBUklFU30KLSAgICAke0VWQVNfTElCUkFSSUVTfQotICAgICR7TElCWE1MMl9M
SUJSQVJJRVN9Ci0gICAgJHtMSUJYU0xUX0xJQlJBUklFU30KLSAgICAke1NRTElURV9MSUJSQVJJ
RVN9Ci0pCi0KLVNFVChFV2ViTGF1bmNoZXJfSU5DTFVERV9ESVJFQ1RPUklFUwotICAgICIke1dF
QktJVF9ESVJ9L2VmbC9ld2siCi0gICAgJHtDYWlyb19JTkNMVURFX0RJUlN9Ci0gICAgJHtFREpF
X0lOQ0xVREVfRElSU30KLSAgICAke0VGTERFUFNfSU5DTFVERV9ESVJTfQotICAgICR7RVZBU19J
TkNMVURFX0RJUlN9Ci0pCi0KLVNFVChFV2ViTGF1bmNoZXJfTElOS19GTEFHUwotICAgICR7RUNP
UkVfWF9MREZMQUdTfQotICAgICR7RURKRV9MREZMQUdTfQotICAgICR7RUZMREVQU19MREZMQUdT
fQotICAgICR7RVZBU19MREZMQUdTfQotKQotCi1JRiAoRU5BQkxFX0dMSUJfU1VQUE9SVCkKLSAg
TElTVChBUFBFTkQgRVdlYkxhdW5jaGVyX0xJQlJBUklFUwotICAgICR7R2RrX0xJQlJBUklFU30K
LSAgICAke0dsaWJfTElCUkFSSUVTfQotICAgICR7R3RocmVhZF9MSUJSQVJJRVN9Ci0gICkKLUVO
RElGICgpCi0KLUlGIChXVEZfVVNFX1NPVVApCi0gIExJU1QoQVBQRU5EIEVXZWJMYXVuY2hlcl9M
SUJSQVJJRVMgJHtMSUJTT1VQMjRfTElCUkFSSUVTfSkKLSAgTElTVChBUFBFTkQgRVdlYkxhdW5j
aGVyX0xJTktfRkxBR1MgJHtMSUJTT1VQMjRfTERGTEFHU30pCi1FTkRJRiAoKQotCi1JRiAoV1RG
X1VTRV9DVVJMKQotICBMSVNUKEFQUEVORCBFV2ViTGF1bmNoZXJfTElCUkFSSUVTICR7Q1VSTF9M
SUJSQVJJRVN9KQotICBMSVNUKEFQUEVORCBFV2ViTGF1bmNoZXJfTElOS19GTEFHUyAke0NVUkxf
TERGTEFHU30pCi1FTkRJRiAoKQotCi1JTkNMVURFX0RJUkVDVE9SSUVTKCR7RVdlYkxhdW5jaGVy
X0lOQ0xVREVfRElSRUNUT1JJRVN9KQotQUREX0VYRUNVVEFCTEUoUHJvZ3JhbXMvRVdlYkxhdW5j
aGVyICR7RVdlYkxhdW5jaGVyX1NPVVJDRVN9KQotVEFSR0VUX0xJTktfTElCUkFSSUVTKFByb2dy
YW1zL0VXZWJMYXVuY2hlciAke0VXZWJMYXVuY2hlcl9MSUJSQVJJRVN9KQotQUREX1RBUkdFVF9Q
Uk9QRVJUSUVTKFByb2dyYW1zL0VXZWJMYXVuY2hlciBMSU5LX0ZMQUdTICIke0VXZWJMYXVuY2hl
cl9MSU5LX0ZMQUdTfSIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKaW5kZXggNTA2NDhiMC4uMmQzZTY2MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwxODMg
KzEsMyBAQAotMjAxMC0wOS0wNSAgUGV0ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KLQotICAgICAgICBNYWtlIENocm9t
aXVtL01hYyBnZW5lcmF0ZSBjb250aW51b3VzIG1vdXNld2hlZWwgZXZlbnRzIHdpdGggdGhlIHNh
bWUgd2hlZWxEZWx0YSB2YWx1ZXMgYXMgU2FmYXJpL01hYy4KLSAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTU1Ci0KLSAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHA6IE1vZGlmeSBDaHJvbWl1bSBEUlQgbW91c2V3
aGVlbCBldmVudCBnZW5lcmF0aW9uIHRvIG1hdGNoIG5ldyBiZWhhdmlvciBvbiBNYWMuCi0gICAg
ICAgIChFdmVudFNlbmRlcjo6aGFuZGxlTW91c2VXaGVlbCk6Ci0KLTIwMTAtMDktMDUgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
Sm9zZXBoIFBlY29yYXJvLgotCi0gICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBXZWJEZXZU
b29sc0FnZW50Q2xpZW50Ojpmb3JjZVJlcGFpbnQgd2hpY2ggaXMgbm90IHVzZWQKLSAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTc5Ci0KLSAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmNwcDoKLSAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50Lmg6Ci0KLTIwMTAtMDkt
MDUgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KLQotICAgICAgICBS
dWJiZXItc3RhbXBlZCBieSBEYW5pZWwgQmF0ZXMuCi0KLSAgICAgICAgQWRkaW5nIG15c2VsZiBh
cyByZXZpZXdlci4KLQotICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9j
b21taXR0ZXJzLnB5OgotCi0yMDEwLTA5LTA0ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNv
bT4KLQotICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCi0KLSAgICAgICAgVGVh
Y2ggc3ZuLWFwcGx5L3VuYXBwbHkgYWJvdXQgc3ZuOm1lcmdlaW5mbwotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMzYKLQotICAgICAgICBSZWNvZ25p
emUgdGhlIHN2bjptZXJnZWluZm8gcHJvcGVydHkgYW5kIGlnbm9yZSBpdCBmb3Igbm93LgotCi0g
ICAgICAgIEN1cnJlbnRseSwgc3ZuLWFwcGx5L3VuYXBwbHkgcmVjb2duaXplIG9ubHkgJysnIGFu
ZCAnLScKLSAgICAgICAgcHJvcGVydHkgY2hhbmdlcyB3aXRoaW4gYSBkaWZmLiBXZSBzaG91bGQg
YWRkIHN1cHBvcnQKLSAgICAgICAgdG8gcmVjb2duaXplICJNZXJnZWQiIGFuZCAiUmV2ZXJzZS1t
ZXJnZWQiIGNoYW5nZXMgYXMgd2VsbC4KLSAgICAgICAgQmVjYXVzZSBzdm46bWVyZ2VpbmZvIGlz
IG1ldGFkYXRhIHRoYXQgaXMgdXNlZCBvbmx5IGJ5IFNWTgotICAgICAgICBhbmQgdGVuZHMgdG8g
YmUgZXJyb3ItcHJvbmUgYW5kL29yIG51aXNhbmNlICgqKSwgd2Ugd2lsbCBpZ25vcmUKLSAgICAg
ICAgaXQgZm9yIG5vdy4KLSAgICAgICAgKCopIFNlZSAiUGFydGluZyBUaG91Z2h0cyIgb2YgPGh0
dHA6Ly93d3cuY29sbGFiLm5ldC9jb21tdW5pdHkvc3VidmVyc2lvbi9hcnRpY2xlcy9tZXJnZS1p
bmZvLmh0bWw+LgotCi0gICAgICAgICogU2NyaXB0cy9WQ1NVdGlscy5wbToKLSAgICAgICAgICAt
IE1vZGlmaWVkIHBhcnNlU3ZuUHJvcGVydHkoKSB0byByZWNvZ25pemUgIk1lcmdlZCIgYW5kCi0g
ICAgICAgICAgICAiUmV2ZXJzZS1tZXJnZWQiIGFzIHRoZSBzdGFydCBvZiBhIHByb3BlcnR5IHZh
bHVlLgotICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJz
ZVN2bkRpZmZGb290ZXIucGw6Ci0gICAgICAgICAgLSBBZGRlZCB0aGUgZm9sbG93aW5nIHVuaXQg
dGVzdHM6Ci0gICAgICAgICAgICAic2ltcGxlOiBhZGQgc3ZuOm1lcmdlaW5mbyIKLSAgICAgICAg
ICAgICJzaW1wbGU6IGRlbGV0ZSBzdm46bWVyZ2VpbmZvIgotICAgICAgICAgICAgInNpbXBsZTog
bW9kaWZpZWQgc3ZuOm1lcmdlaW5mbyIKLSAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvVkNT
VXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5Qcm9wZXJ0eS5wbDoKLSAgICAgICAgICAtIEFkZGVkIHRo
ZSBmb2xsb3dpbmcgdW5pdCB0ZXN0czoKLSAgICAgICAgICAgICJzaW1wbGU6IGFkZCBzdm46bWVy
Z2VpbmZvIgotICAgICAgICAgICAgInNpbXBsZTogZGVsZXRlIHN2bjptZXJnZWluZm8iCi0gICAg
ICAgICAgICAic2ltcGxlOiBtb2RpZmllZCBzdm46bWVyZ2VpbmZvIgotICAgICAgICAgICAgInNp
bXBsZTogbW9kaWZpZWQgc3ZuOm1lcmdlaW5mbyB1c2luZyBTVk4gMS40IHN5bnRheCIKLSAgICAg
ICAgICAgICInTWVyZ2VkJyBjaGFuZ2UgZm9sbG93ZWQgYnkgJ01lcmdlZCcgY2hhbmdlIgotICAg
ICAgICAgICAgIidSZXZlcnNlLW1lcmdlZCcgY2hhbmdlIGZvbGxvd2VkIGJ5ICdSZXZlcnNlLW1l
cmdlZCcgY2hhbmdlIgotICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0
dGVzdC9wYXJzZVN2blByb3BlcnR5VmFsdWUucGw6Ci0gICAgICAgICAgLSBBZGRlZCB0aGUgZm9s
bG93aW5nIHVuaXQgdGVzdHM6Ci0gICAgICAgICAgICAiJ01lcmdlZCcgY2hhbmdlIgotICAgICAg
ICAgICAgIidSZXZlcnNlLW1lcmdlZCcgY2hhbmdlIgotICAgICAgICAgICAgIidSZXZlcnNlLW1l
cmdlZCcgY2hhbmdlIGZvbGxvd2VkIGJ5ICdNZXJnZScgY2hhbmdlIgotICAgICAgICAgICAgIidN
ZXJnZWQnIGNoYW5nZSBmb2xsb3dlZCBieSAnTWVyZ2UnIGNoYW5nZSIKLSAgICAgICAgICAgICIn
UmV2ZXJzZS1tZXJnZWQnIGNoYW5nZSBmb2xsb3dlZCBieSAnUmV2ZXJzZS1tZXJnZWQnIGNoYW5n
ZSIKLSAgICAgICAgICAgICInUmV2ZXJzZS1tZXJnZWQnIGNoYW5nZSBmb2xsb3dlZCBieSAnUmV2
ZXJzZS1tZXJnZWQnIGNoYW5nZSBmb2xsb3dlZCBieSAnTWVyZ2VkJyBjaGFuZ2UiCi0KLTIwMTAt
MDktMDQgIEx1Y2FzIERlIE1hcmNoaSAgPGx1Y2FzLmRlbWFyY2hpQHByb2Z1c2lvbi5tb2JpPgot
Ci0gICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgotCi0gICAg
ICAgIFtFRkxdIE1vdmUgdGVzdCBicm93c2VyIHRvIFdlYktpdFRvb2xzIGRpcmVjdG9yeQotICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUyMTIKLQotICAg
ICAgICBGb2xsb3cgb3RoZXIgcG9ydHMgbGlrZSBRVCBhbmQgR1RLIHdoaWNoIG1vdmVkIHRoZSB0
ZXN0IGJyb3dzZXIgdG8KLSAgICAgICAgV2ViS2l0VG9vbHMgZGlyZWN0b3J5LgotCi0gICAgICAg
ICogQ01ha2VMaXN0c0VmbC50eHQ6IEFkZGVkLgotICAgICAgICAqIEVXZWJMYXVuY2hlci9tYWlu
LmM6IEFkZGVkLgotICAgICAgICAocHJpbnRfaGlzdG9yeSk6Ci0gICAgICAgICh6b29tX2xldmVs
X3NldCk6Ci0gICAgICAgIChvbl9lY29yZV9ldmFzX3Jlc2l6ZSk6Ci0gICAgICAgICh0aXRsZV9z
ZXQpOgotICAgICAgICAodmlld3BvcnRfc2V0KToKLSAgICAgICAgKG9uX3RpdGxlX2NoYW5nZWQp
OgotICAgICAgICAob25fcHJvZ3Jlc3MpOgotICAgICAgICAob25fbG9hZF9maW5pc2hlZCk6Ci0g
ICAgICAgIChvbl90b29sYmFyc192aXNpYmxlX3NldCk6Ci0gICAgICAgIChvbl90b29sYmFyc192
aXNpYmxlX2dldCk6Ci0gICAgICAgIChvbl9zdGF0dXNiYXJfdmlzaWJsZV9zZXQpOgotICAgICAg
ICAob25fc3RhdHVzYmFyX3Zpc2libGVfZ2V0KToKLSAgICAgICAgKG9uX3Njcm9sbGJhcnNfdmlz
aWJsZV9zZXQpOgotICAgICAgICAob25fc2Nyb2xsYmFyc192aXNpYmxlX2dldCk6Ci0gICAgICAg
IChvbl9tZW51YmFyX3Zpc2libGVfc2V0KToKLSAgICAgICAgKG9uX21lbnViYXJfdmlzaWJsZV9n
ZXQpOgotICAgICAgICAob25fdG9vbHRpcF90ZXh0X3NldCk6Ci0gICAgICAgIChvbl9pbnB1dG1l
dGhvZF9jaGFuZ2VkKToKLSAgICAgICAgKG9uX3ZpZXdwb3J0X2NoYW5nZWQpOgotICAgICAgICAo
b25fbW91c2VfZG93bik6Ci0gICAgICAgIChvbl9mb2N1c19vdXQpOgotICAgICAgICAob25fZm9j
dXNfaW4pOgotICAgICAgICAob25fcmVzaXplZCk6Ci0gICAgICAgIChvbl9rZXlfZG93bik6Ci0g
ICAgICAgIChvbl9icm93c2VyX2RlbCk6Ci0gICAgICAgIChvbl9jbG9zZVdpbmRvdyk6Ci0gICAg
ICAgIChxdWl0KToKLSAgICAgICAgKGJyb3dzZXJDcmVhdGUpOgotICAgICAgICAoYnJvd3NlckRl
c3Ryb3kpOgotICAgICAgICAoY2xvc2VXaW5kb3cpOgotICAgICAgICAobWFpbl9zaWduYWxfZXhp
dCk6Ci0gICAgICAgIChmaW5kVGhlbWVQYXRoKToKLSAgICAgICAgKG1haW4pOgotCi0yMDEwLTA5
LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgotCi0gICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gUm9iZW4uCi0KLSAgICAgICAgU2V0IHByb2plY3QgZGVwZW5kZW5jaWVz
IHNvIHRoYXQgdGhleSBidWlsZCBzZXJpYWxseS4gVGhpcyBmaXhlcwotICAgICAgICBpc3N1ZXMg
d2hlbiBydW5uaW5nIHJ1bi13ZWJraXQtdGVzdHMgaWYgRFJUIGlzIG5vdCBidWlsdCB5ZXQuCi0K
LSAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5zbG46Ci0KLTIwMTAtMDkt
MDMgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KLQotICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgotCi0gICAgICAgIEZpeCByZWFkaW5nIGNvbmZpZ3VyYWl0
b24gaW4gTldSVCB0byB3b3JrIG9uIFdpbmRvd3MuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTE4MAotCi0gICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5OiBBZGRlZCAncGVybCcgYXJndW1lbnQsIGJlY2F1
c2UgV2luZG93cyBkb2Vzbid0IGtub3cgd2hhdCB0byBkbwotICAgICAgICAgICAgd2l0aCB0aGUg
ZmlsZSBvdGhlcndpc2UuCi0KLTIwMTAtMDktMDMgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29v
Z2xlLmNvbT4KLQotICAgICAgICBVbnJldmlld2VkCi0KLSAgICAgICAgQWRkIG15c2VsZiB0byB0
aGUgY29tbWl0dGVycyBsaXN0Ci0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTE4OQotCi0gICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29u
ZmlnL2NvbW1pdHRlcnMucHk6Ci0KLTIwMTAtMDktMDMgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2Vx
QGNocm9taXVtLm9yZz4KLQotICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5Lgot
Ci0gICAgICAgIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbCBh
bmQgaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2UtaGFyLWNvbnZlcnNpb24uaHRtbCBhcmUg
ZmFpbGluZyBvbiBjaHJvbWl1bSB3aW4gYm90Ci0gICAgICAgIENoYW5nZWQgTUlNRSB0eXBlIGZv
ciAuanMgdG8gYXBwbGljYXRpb24veC1qYXZhc2NyaXB0IGZvciBjb25zaXN0ZW5jeSB3aXRoIGFw
YWNoZSB1c2VkIG9uIG90aGVyIHBsYXRmb3Jtcy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTM3Ci0KLSAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2xpZ2h0dHBkLmNvbmY6Ci0KLTIwMTAtMDktMDMgIEdhYm9yIFJh
cGNzYW55aSAgPHJnYWJvckBpbmYudS1zemVnZWQuaHU+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCi0KLSAgICAgICAgQWRkIGZlYXR1cmUgZGV0ZWN0aW9uIHN1cHBvcnQgdG8g
TlJXVC4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
ODQyCi0KLSAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2Uu
cHk6Ci0gICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weToK
LSAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weToK
LSAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0
dGVzdC5weTogQWRkZWQuCi0KLTIwMTAtMDktMDMgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJv
bWl1bS5vcmc+Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCi0KLSAgICAgICAg
QWRkcyB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKCkgdG8gYXZvaWQgdXNp
bmcgcGl4ZWwgdGVzdHMgZm9yIHNwZWxsY2hlY2tpbmcgdGVzdHMKLSAgICAgICAgYW5kIGltcGxl
bWVudHMgaXQgZm9yIE1hYy4KLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxODMyCi0KLSAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0
Q29udHJvbGxlci5tOiBBZGRlZCBbVGV4dElucHV0Q29udHJvbGxlciBoYXNTcGVsbGluZ01hcmtl
cjpsZW5ndGg6XQotICAgICAgICBhbmQgYmluZCBpdCBzbyB3ZSBjYW4gY2FsbCBpdCBmcm9tIEph
dmFTY3JpcHQuCi0gICAgICAgICgrW1RleHRJbnB1dENvbnRyb2xsZXIgaXNTZWxlY3RvckV4Y2x1
ZGVkRnJvbVdlYlNjcmlwdDpdKToKLSAgICAgICAgKCtbVGV4dElucHV0Q29udHJvbGxlciB3ZWJT
Y3JpcHROYW1lRm9yU2VsZWN0b3I6XSk6Ci0gICAgICAgICgtW1RleHRJbnB1dENvbnRyb2xsZXIg
aGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOl0pOgotCiAyMDEwLTA5LTAyICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuc2xuIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUuc2xuCmluZGV4IDE5NmY4
NzIuLjM2NDdhMmEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBS
ZW5kZXJUcmVlLnNsbgorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS5zbG4KQEAgLTIsMjEgKzIsMTIgQEAKIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIFNvbHV0
aW9uIEZpbGUsIEZvcm1hdCBWZXJzaW9uIDkuMDANCiAjIFZpc3VhbCBTdHVkaW8gMjAwNQ0KIFBy
b2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiRHVtcFJl
bmRlclRyZWUiLCAid2luXER1bXBSZW5kZXJUcmVlLnZjcHJvaiIsICJ7NjU2N0RGRDQtRDZERS00
Q0Q1LTgyNUQtMTdFMzUzRDE2MEUxfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVu
Y2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0MwNzM3Mzk4LTM1NjUtNDM5RS1BMkI4LUFCMkJFNEQ1
NDMwQ30gPSB7QzA3MzczOTgtMzU2NS00MzlFLUEyQjgtQUIyQkU0RDU0MzBDfQ0KLQlFbmRQcm9q
ZWN0U2VjdGlvbg0KIEVuZFByb2plY3QNCiBQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThE
MTEtMDBBMEM5MUJDOTQyfSIpID0gIlRlc3ROZXRzY2FwZVBsdWdpbiIsICJUZXN0TmV0c2NhcGVQ
bHVnaW5cd2luXFRlc3ROZXRzY2FwZVBsdWdpbi52Y3Byb2oiLCAie0MwNzM3Mzk4LTM1NjUtNDM5
RS1BMkI4LUFCMkJFNEQ1NDMwQ30iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNp
ZXMpID0gcG9zdFByb2plY3QNCi0JCXs1OUNDMDU0Ny03MEFDLTQ5OUMtOUIxOS1FQzAxQzZGNjEx
Mzd9ID0gezU5Q0MwNTQ3LTcwQUMtNDk5Qy05QjE5LUVDMDFDNkY2MTEzN30NCi0JRW5kUHJvamVj
dFNlY3Rpb24NCiBFbmRQcm9qZWN0DQogUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDEx
LTAwQTBDOTFCQzk0Mn0iKSA9ICJGaW5kU2FmYXJpIiwgIi4uXEZpbmRTYWZhcmlcRmluZFNhZmFy
aS52Y3Byb2oiLCAie0RBMzFEQTUyLTY2NzUtNDhENC04OUUwLTMzM0E3MTQ0Mzk3Q30iDQogRW5k
UHJvamVjdA0KIFByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9
IikgPSAiSW1hZ2VEaWZmIiwgIndpblxJbWFnZURpZmYudmNwcm9qIiwgIns1OUNDMDU0Ny03MEFD
LTQ5OUMtOUIxOS1FQzAxQzZGNjExMzd9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5k
ZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7REEzMURBNTItNjY3NS00OEQ0LTg5RTAtMzMzQTcx
NDQzOTdDfSA9IHtEQTMxREE1Mi02Njc1LTQ4RDQtODlFMC0zMzNBNzE0NDM5N0N9DQotCUVuZFBy
b2plY3RTZWN0aW9uDQogRW5kUHJvamVjdA0KIEdsb2JhbA0KIAlHbG9iYWxTZWN0aW9uKFNvbHV0
aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbg0KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERldlRvb2xzQWdlbnQuY3BwIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAK
aW5kZXggYTlhODkxYi4uNjZkODk0YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5jcHAKQEAgLTY5LDYgKzY5LDEw
IEBAIHZvaWQgRFJURGV2VG9vbHNBZ2VudDo6c2VuZE1lc3NhZ2VUb0luc3BlY3RvckZyb250ZW5k
KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBkCiAgICAgICAgICBtX2RydERldlRvb2xzQ2xpZW50
LT5hc3luY0NhbGwoRFJURGV2VG9vbHNDYWxsQXJncyhkYXRhKSk7CiB9CiAKK3ZvaWQgRFJURGV2
VG9vbHNBZ2VudDo6Zm9yY2VSZXBhaW50KCkKK3sKK30KKwogdm9pZCBEUlREZXZUb29sc0FnZW50
OjpydW50aW1lUHJvcGVydHlDaGFuZ2VkKGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBuYW1lLCBj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERl
dlRvb2xzQWdlbnQuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVERl
dlRvb2xzQWdlbnQuaAppbmRleCBjOTg4ZmExLi5mOWVjMjBmIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlREZXZUb29sc0FnZW50LmgKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJURGV2VG9vbHNBZ2VudC5oCkBAIC02
MSw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJEZXZUb29sc0FnZW50Q2xpZW50IGltcGxl
bWVudGF0aW9uLgogICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZVRvSW5zcGVjdG9yRnJvbnRl
bmQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGludCBob3N0SWRlbnRp
ZmllcigpIHsgcmV0dXJuIG1fcm91dGluZ0lEOyB9CisgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVw
YWludCgpOwogICAgIHZpcnR1YWwgdm9pZCBydW50aW1lUHJvcGVydHlDaGFuZ2VkKGNvbnN0IFdl
YktpdDo6V2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgdmFsdWUpOwog
ICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJDU3RyaW5nIGRlYnVnZ2VyU2NyaXB0U291cmNlKCk7CiAg
ICAgdmlydHVhbCBXZWJLaXRDbGllbnRNZXNzYWdlTG9vcCogY3JlYXRlQ2xpZW50TWVzc2FnZUxv
b3AoKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2
ZW50U2VuZGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0V2ZW50
U2VuZGVyLmNwcAppbmRleCBjMmJhMzgwLi4yNDNlYzc4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9FdmVudFNlbmRlci5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRXZlbnRTZW5kZXIuY3BwCkBAIC05MDksMTAgKzkw
OSw3IEBAIHZvaWQgRXZlbnRTZW5kZXI6OmhhbmRsZU1vdXNlV2hlZWwoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqCiAgICAgZXZlbnQud2hlZWxUaWNrc1kgPSBz
dGF0aWNfY2FzdDxmbG9hdD4odmVydGljYWwpOwogICAgIGV2ZW50LmRlbHRhWCA9IGV2ZW50Lndo
ZWVsVGlja3NYOwogICAgIGV2ZW50LmRlbHRhWSA9IGV2ZW50LndoZWVsVGlja3NZOwotICAgIGlm
IChjb250aW51b3VzKSB7Ci0gICAgICAgIGV2ZW50LndoZWVsVGlja3NYIC89IHNjcm9sbGJhclBp
eGVsc1BlclRpY2s7Ci0gICAgICAgIGV2ZW50LndoZWVsVGlja3NZIC89IHNjcm9sbGJhclBpeGVs
c1BlclRpY2s7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAoIWNvbnRpbnVvdXMpIHsKICAgICAgICAg
ZXZlbnQuZGVsdGFYICo9IHNjcm9sbGJhclBpeGVsc1BlclRpY2s7CiAgICAgICAgIGV2ZW50LmRl
bHRhWSAqPSBzY3JvbGxiYXJQaXhlbHNQZXJUaWNrOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0gYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCmluZGV4IGEwNDlh
YzUuLjNlYTljMjIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9U
ZXh0SW5wdXRDb250cm9sbGVyLm0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1RleHRJbnB1dENvbnRyb2xsZXIubQpAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCA8QXBwS2l0
L05TSW5wdXRNYW5hZ2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRG9jdW1lbnQuaD4KICNpbXBv
cnQgPFdlYktpdC9XZWJGcmFtZS5oPgotI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lUHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkhU
TUxWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlNjcmlwdE9iamVjdC5oPgpAQCAt
MTcwLDggKzE2OSw3IEBAICsgKEJPT0wpaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDoo
U0VMKWFTZWxlY3RvcgogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihjaGFy
YWN0ZXJJbmRleEZvclBvaW50WDpZOikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3IodmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dCkKICAgICAgICAgICAgIHx8IGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IoYXR0cmlidXRlZFN0cmluZ1dpdGhTdHJpbmc6KQotICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzZXRJbnB1dE1ldGhvZEhhbmRsZXI6KQotICAg
ICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihoYXNTcGVsbGluZ01hcmtlcjpsZW5n
dGg6KSkKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0SW5wdXRNZXRo
b2RIYW5kbGVyOikpCiAgICAgICAgIHJldHVybiBOTzsKICAgICByZXR1cm4gWUVTOwogfQpAQCAt
MTk2LDggKzE5NCw2IEBAICsgKE5TU3RyaW5nICopd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOihT
RUwpYVNlbGVjdG9yCiAgICAgICAgIHJldHVybiBAIm1ha2VBdHRyaWJ1dGVkU3RyaW5nIjsgLy8g
anVzdCBhIGZhY3RvcnkgbWV0aG9kLCBkb2Vzbid0IGNhbGwgaW50byBOU1RleHRJbnB1dAogICAg
IGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0SW5wdXRNZXRob2RIYW5kbGVyOikp
CiAgICAgICAgIHJldHVybiBAInNldElucHV0TWV0aG9kSGFuZGxlciI7IAotICAgIGVsc2UgaWYg
KGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOikpCi0gICAg
ICAgIHJldHVybiBAImhhc1NwZWxsaW5nTWFya2VyIjsKIAogICAgIHJldHVybiBuaWw7CiB9CkBA
IC00MzEsOSArNDI3LDQgQEAgLSAoQk9PTClpbnRlcnByZXRLZXlFdmVudHM6KE5TQXJyYXkgKill
dmVudEFycmF5IHdpdGhTZW5kZXI6KFdlYkhUTUxWaWV3ICopc2VuZGUKICAgICByZXR1cm4gWUVT
OwogfQogCi0tIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpZnJvbSBsZW5ndGg6KGludCls
ZW5ndGgKLXsKLSAgICByZXR1cm4gW1t3ZWJWaWV3IG1haW5GcmFtZV0gaGFzU3BlbGxpbmdNYXJr
ZXI6ZnJvbSBsZW5ndGg6bGVuZ3RoXTsKLX0KLQogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRVdlYkxhdW5jaGVyL21haW4uYyBiL1dlYktpdFRvb2xzL0VXZWJMYXVuY2hlci9tYWluLmMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxOTU2YTIuLjAwMDAwMDAKLS0tIGEvV2Vi
S2l0VG9vbHMvRVdlYkxhdW5jaGVyL21haW4uYworKysgL2Rldi9udWxsCkBAIC0xLDg1MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IElOZFQgLSBJbnN0aXR1dG8gTm9raWEgZGUg
VGVjbm9sb2dpYQotICogQ29weXJpZ2h0IChDKSAyMDA5LCAyMDEwIFByb0ZVU0lPTiBlbWJlZGRl
ZCBzeXN0ZW1zCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTAgU2Ftc3VuZyBFbGVjdHJvbmlj
cwotICoKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIkVXZWJLaXQu
aCIKLQotI2luY2x1ZGUgPGN0eXBlLmg+Ci0jaW5jbHVkZSA8RWNvcmUuaD4KLSNpbmNsdWRlIDxF
Y29yZV9FdmFzLmg+Ci0jaW5jbHVkZSA8RWNvcmVfRmlsZS5oPgotI2luY2x1ZGUgPEVjb3JlX0dl
dG9wdC5oPgotI2luY2x1ZGUgPEVjb3JlX1guaD4KLSNpbmNsdWRlIDxFZGplLmg+Ci0jaW5jbHVk
ZSA8RXZhcy5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5j
bHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3lzL3N0YXQu
aD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLQotI2RlZmlu
ZSBERUZBVUxUX1dJRFRIICAgICAgODAwCi0jZGVmaW5lIERFRkFVTFRfSEVJR0hUICAgICA2MDAK
LSNkZWZpbmUgREVGQVVMVF9aT09NX0lOSVQgIDEuMAotCi0jZGVmaW5lIGluZm8oZm9ybWF0LCBh
cmdzLi4uKSAgICAgICBcCi0gICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgIGlmICh2ZXJib3NlKSAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBwcmludGYo
Zm9ybWF0LCAjI2FyZ3MpOyBcCi0gICAgfSB3aGlsZSAoMCkKLQotI2RlZmluZSBNSU5fWk9PTV9M
RVZFTCAwCi0jZGVmaW5lIERFRkFVTFRfWk9PTV9MRVZFTCA1Ci0jZGVmaW5lIE1BWF9aT09NX0xF
VkVMIDEzCi0KLXN0YXRpYyBpbnQgY3VycmVudFpvb21MZXZlbCA9IERFRkFVTFRfWk9PTV9MRVZF
TDsKLQotLy8gdGhlIHpvb20gdmFsdWVzIGFyZSBjaG9zZW4gdG8gYmUgbGlrZSBpbiBNb3ppbGxh
IEZpcmVmb3ggMwotc3RhdGljIGludCB6b29tTGV2ZWxzW10gPSB7MzAsIDUwLCA2NywgODAsIDkw
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMTAsIDEyMCwgMTMzLCAxNTAsIDE3MCwgMjAwLCAyNDAsIDMwMH07Ci0KLXN0YXRp
YyBpbnQgdmVyYm9zZSA9IDA7Ci0KLXN0YXRpYyBFaW5hX0xpc3QgKndpbmRvd3MgPSBOVUxMOwot
Ci1zdGF0aWMgY2hhciAqdGhlbWVQYXRoID0gTlVMTDsKLQotdHlwZWRlZiBzdHJ1Y3QgX1dpbmRv
d19Qcm9wZXJ0aWVzIHsKLSAgICBFaW5hX0Jvb2wgdG9vbGJhcnNWaXNpYmxlOjE7Ci0gICAgRWlu
YV9Cb29sIHN0YXR1c2JhclZpc2libGU6MTsKLSAgICBFaW5hX0Jvb2wgc2Nyb2xsYmFyc1Zpc2li
bGU6MTsKLSAgICBFaW5hX0Jvb2wgbWVudWJhclZpc2libGU6MTsKLX0gV2luZG93X1Byb3BlcnRp
ZXM7Ci0KLVdpbmRvd19Qcm9wZXJ0aWVzIHdpbmRvd1Byb3BlcnRpZXMgPSB7IC8qIFByZXRlbmQg
d2UgaGF2ZSB0aGVtIGFuZCB0aGV5IGFyZSBpbml0aWFsbHkgdmlzaWJsZSAqLwotICAgIEVJTkFf
VFJVRSwKLSAgICBFSU5BX1RSVUUsCi0gICAgRUlOQV9UUlVFLAotICAgIEVJTkFfVFJVRQotfTsK
LQotc3RhdGljIGNvbnN0IEVjb3JlX0dldG9wdCBvcHRpb25zID0gewotICAgICJFV2ViTGF1bmNo
ZXIiLAotICAgICIlcHJvZyBbb3B0aW9uc10gW3VybF0iLAotICAgICIwLjAuMSIsCi0gICAgIihD
KTIwMDggSU5kVCAoVGhlIE5va2lhIFRlY2hub2xvZ3kgSW5zdGl0dXRlKVxuIgotICAgICIoQyky
MDA5LCAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zXG4iCi0gICAgIihDKTIwMDksIDIw
MTAgU2Ftc3VuZyBFbGVjdHJvbmljcyIsCi0gICAgIkdQTCIsCi0gICAgIlRlc3QgV2ViIEJyb3dz
ZXIgdXNpbmcgdGhlIEVubGlnaHRlbm1lbnQgRm91bmRhdGlvbiBMaWJyYXJpZXMgb2YgV2ViS2l0
IiwKLSAgICBFSU5BX1RSVUUsIHsKLSAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX1NUUgotICAg
ICAgICAgICAgKCdlJywgImVuZ2luZSIsICJlY29yZS1ldmFzIGVuZ2luZSB0byB1c2UuIiksCi0g
ICAgICAgIEVDT1JFX0dFVE9QVF9DQUxMQkFDS19OT0FSR1MKLSAgICAgICAgICAgICgnRScsICJs
aXN0LWVuZ2luZXMiLCAibGlzdCBlY29yZS1ldmFzIGVuZ2luZXMuIiwKLSAgICAgICAgICAgICBl
Y29yZV9nZXRvcHRfY2FsbGJhY2tfZWNvcmVfZXZhc19saXN0X2VuZ2luZXMsIE5VTEwpLAotICAg
ICAgICBFQ09SRV9HRVRPUFRfU1RPUkVfREVGX0JPT0wKLSAgICAgICAgICAgICgnRicsICJmdWxs
c2NyZWVuIiwgImZ1bGxzY3JlZW4gbW9kZS4iLCAwKSwKLSAgICAgICAgRUNPUkVfR0VUT1BUX0NB
TExCQUNLX0FSR1MKLSAgICAgICAgICAgICgnZycsICJnZW9tZXRyeSIsICJnZW9tZXRyeSB0byB1
c2UgaW4geDp5Onc6aCBmb3JtLiIsICJYOlk6VzpIIiwKLSAgICAgICAgICAgICBlY29yZV9nZXRv
cHRfY2FsbGJhY2tfZ2VvbWV0cnlfcGFyc2UsIE5VTEwpLAotICAgICAgICBFQ09SRV9HRVRPUFRf
U1RPUkVfU1RSCi0gICAgICAgICAgICAoJ3QnLCAidGhlbWUiLCAicGF0aCB0byByZWFkIHRoZSB0
aGVtZSBmaWxlIGZyb20uIiksCi0gICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9TVFIKLSAgICAg
ICAgICAgICgnVScsICJ1c2VyLWFnZW50IiwgImN1c3RvbSB1c2VyIGFnZW50IHN0cmluZyB0byB1
c2UuIiksCi0gICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9ERUZfQk9PTAotICAgICAgICAgICAg
KCdTJywgInN1ZG8td29ya2Fyb3VuZCIsICJXb3JrYXJvdW5kIG1vZGUgZm9yIG1ha2luZyBGbGFz
aCB3b3JrIHdpdGggc3Vkby4iLCAwKSwKLSAgICAgICAgRUNPUkVfR0VUT1BUX0NPVU5UCi0gICAg
ICAgICAgICAoJ3YnLCAidmVyYm9zZSIsICJiZSBtb3JlIHZlcmJvc2UuIiksCi0gICAgICAgIEVD
T1JFX0dFVE9QVF9WRVJTSU9OCi0gICAgICAgICAgICAoJ1YnLCAidmVyc2lvbiIpLAotICAgICAg
ICBFQ09SRV9HRVRPUFRfQ09QWVJJR0hUCi0gICAgICAgICAgICAoJ1InLCAiY29weXJpZ2h0Iiks
Ci0gICAgICAgIEVDT1JFX0dFVE9QVF9MSUNFTlNFCi0gICAgICAgICAgICAoJ0wnLCAibGljZW5z
ZSIpLAotICAgICAgICBFQ09SRV9HRVRPUFRfSEVMUAotICAgICAgICAgICAgKCdoJywgImhlbHAi
KSwKLSAgICAgICAgRUNPUkVfR0VUT1BUX1NFTlRJTkVMCi0gICAgfQotfTsKLQotdHlwZWRlZiBz
dHJ1Y3QgX1ZpZXdwb3J0IHsKLSAgICBpbnQgdzsKLSAgICBpbnQgaDsKLSAgICBmbG9hdCBpbml0
U2NhbGU7Ci0gICAgZmxvYXQgbWluU2NhbGU7Ci0gICAgZmxvYXQgbWF4U2NhbGU7Ci0gICAgRWlu
YV9Cb29sIHVzZXJTY2FsYWJsZTsKLX0gVmlld3BvcnQ7Ci0KLXR5cGVkZWYgc3RydWN0IF9FTGF1
bmNoZXIgewotICAgIEVjb3JlX0V2YXMgKmVlOwotICAgIEV2YXMgKmV2YXM7Ci0gICAgRXZhc19P
YmplY3QgKmJnOwotICAgIEV2YXNfT2JqZWN0ICpicm93c2VyOwotICAgIGNvbnN0IGNoYXIgKnRo
ZW1lOwotICAgIGNvbnN0IGNoYXIgKnVzZXJBZ2VudDsKLSAgICBWaWV3cG9ydCB2aWV3cG9ydDsK
LX0gRUxhdW5jaGVyOwotCi1zdGF0aWMgdm9pZCBicm93c2VyRGVzdHJveShFY29yZV9FdmFzICpl
ZSk7Ci1zdGF0aWMgdm9pZCBjbG9zZVdpbmRvdyhFY29yZV9FdmFzICplZSk7Ci1zdGF0aWMgaW50
IGJyb3dzZXJDcmVhdGUoY29uc3QgY2hhciAqdXJsLCBjb25zdCBjaGFyICp0aGVtZSwgY29uc3Qg
Y2hhciAqdXNlckFnZW50LCBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSwgY29uc3QgY2hhciAqZW5n
aW5lLCB1bnNpZ25lZCBjaGFyIGlzRnVsbHNjcmVlbik7Ci0KLXN0YXRpYyB2b2lkCi1wcmludF9o
aXN0b3J5KEVpbmFfTGlzdCAqbGlzdCkKLXsKLSAgICBFaW5hX0xpc3QgKmw7Ci0gICAgdm9pZCAq
ZDsKLQotICAgIGlmICghdmVyYm9zZSkKLSAgICAgICByZXR1cm47Ci0KLSAgICBwcmludGYoIlNl
c3Npb24gaGlzdG9yeSBjb250YWluczpcbiIpOwotCi0gICAgRUlOQV9MSVNUX0ZPUkVBQ0gobGlz
dCwgbCwgZCkgewotICAgICAgIEV3a19IaXN0b3J5X0l0ZW0gKml0ZW0gPSAoRXdrX0hpc3Rvcnlf
SXRlbSopZDsKLSAgICAgICBjYWlyb19zdXJmYWNlX3QgKmNzID0gZXdrX2hpc3RvcnlfaXRlbV9p
Y29uX3N1cmZhY2VfZ2V0KGl0ZW0pOwotICAgICAgIGNoYXIgYnVmW1BBVEhfTUFYXTsKLSAgICAg
ICBpbnQgcyA9IHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIvdG1wL2Zhdmljb24tJXMucG5n
IiwgZXdrX2hpc3RvcnlfaXRlbV91cmlfb3JpZ2luYWxfZ2V0KGl0ZW0pKTsKLSAgICAgICBmb3Ig
KHMtLTsgcyA+PSAoaW50KXNpemVvZigiL3RtcC9mYXZpY29uLSIpOyBzLS0pIHsKLSAgICAgICAg
ICAgaWYgKCFpc2FsbnVtKGJ1ZltzXSkgJiYgYnVmW3NdICE9ICcuJykKLSAgICAgICAgICAgICAg
IGJ1ZltzXSA9ICdfJzsKLSAgICAgICB9Ci0gICAgICAgY3MgPSBld2tfaGlzdG9yeV9pdGVtX2lj
b25fc3VyZmFjZV9nZXQoaXRlbSk7Ci0KLSAgICAgICBpZiAoY3MgJiYgY2Fpcm9fc3VyZmFjZV9z
dGF0dXMoY3MpID09IENBSVJPX1NUQVRVU19TVUNDRVNTKQotICAgICAgICAgICBjYWlyb19zdXJm
YWNlX3dyaXRlX3RvX3BuZyhjcywgYnVmKTsKLSAgICAgICBlbHNlCi0gICAgICAgICAgIGJ1Zlsw
XSA9ICdcMCc7Ci0KLSAgICAgICBwcmludGYoIiogJyVzJyB0aXRsZT0nJXMnIGljb249JyVzJ1xu
IiwKLSAgICAgICAgICAgICAgZXdrX2hpc3RvcnlfaXRlbV91cmlfb3JpZ2luYWxfZ2V0KGl0ZW0p
LAotICAgICAgICAgICAgICBld2tfaGlzdG9yeV9pdGVtX3RpdGxlX2dldChpdGVtKSwgYnVmKTsK
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkCi16b29tX2xldmVsX3NldChFdmFzX09iamVjdCAqd2Vi
dmlldywgaW50IGxldmVsKQotewotICAgIGZsb2F0IGZhY3RvciA9ICgoZmxvYXQpIHpvb21MZXZl
bHNbbGV2ZWxdKSAvIDEwMC4wOwotICAgIEV2YXNfQ29vcmQgb3gsIG95LCBteCwgbXksIGN4LCBj
eTsKLSAgICBldmFzX3BvaW50ZXJfY2FudmFzX3h5X2dldChldmFzX29iamVjdF9ldmFzX2dldCh3
ZWJ2aWV3KSwgJm14LCAmbXkpOwotICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldCh3ZWJ2aWV3
LCAmb3gsICZveSwgTlVMTCwgTlVMTCk7Ci0gICAgY3ggPSBteCAtIG94OwotICAgIGN5ID0gbXkg
LSBveTsKLSAgICBld2tfdmlld196b29tX2FuaW1hdGVkX3NldCh3ZWJ2aWV3LCBmYWN0b3IsIDAu
NSwgY3gsIGN5KTsKLX0KLQotc3RhdGljIHZvaWQKLW9uX2Vjb3JlX2V2YXNfcmVzaXplKEVjb3Jl
X0V2YXMgKmVlKQotewotICAgIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3OwotICAgIEV2YXNfT2JqZWN0
ICpiZzsKLSAgICBpbnQgdywgaDsKLQotICAgIGVjb3JlX2V2YXNfZ2VvbWV0cnlfZ2V0KGVlLCBO
VUxMLCBOVUxMLCAmdywgJmgpOwotCi0gICAgYmcgPSBldmFzX29iamVjdF9uYW1lX2ZpbmQoZWNv
cmVfZXZhc19nZXQoZWUpLCAiYmciKTsKLSAgICBldmFzX29iamVjdF9tb3ZlKGJnLCAwLCAwKTsK
LSAgICBldmFzX29iamVjdF9yZXNpemUoYmcsIHcsIGgpOwotCi0gICAgd2VidmlldyA9IGV2YXNf
b2JqZWN0X25hbWVfZmluZChlY29yZV9ldmFzX2dldChlZSksICJicm93c2VyIik7Ci0gICAgZXZh
c19vYmplY3RfbW92ZSh3ZWJ2aWV3LCAxMCwgMTApOwotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZSh3
ZWJ2aWV3LCB3IC0gMjAsIGggLSAyMCk7Ci19Ci0KLXN0YXRpYyB2b2lkCi10aXRsZV9zZXQoRWNv
cmVfRXZhcyAqZWUsIGNvbnN0IGNoYXIgKnRpdGxlLCBpbnQgcHJvZ3Jlc3MpCi17Ci0gICAgY29u
c3QgY2hhciAqYXBwbmFtZSA9ICJFRkwgVGVzdCBMYXVuY2hlciI7Ci0gICAgY29uc3QgY2hhciAq
c2VwYXJhdG9yID0gIiAtICI7Ci0gICAgY2hhciBsYWJlbFs0MDk2XTsKLSAgICBpbnQgc2l6ZTsK
LQotICAgIGlmICghdGl0bGUgfHwgIXN0cmNtcCh0aXRsZSwgIiIpKSB7Ci0gICAgICAgIGVjb3Jl
X2V2YXNfdGl0bGVfc2V0KGVlLCBhcHBuYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGlmIChwcm9ncmVzcyA8IDEwMCkKLSAgICAgICAgc2l6ZSA9IHNucHJpbnRmKGxhYmVsLCBz
aXplb2YobGFiZWwpLCAiJXMgKCVkJSUpJXMlcyIsIHRpdGxlLCBwcm9ncmVzcywgc2VwYXJhdG9y
LCBhcHBuYW1lKTsKLSAgICBlbHNlCi0gICAgICAgIHNpemUgPSBzbnByaW50ZihsYWJlbCwgc2l6
ZW9mKGxhYmVsKSwgIiVzICVzJXMiLCB0aXRsZSwgc2VwYXJhdG9yLCBhcHBuYW1lKTsKLQotICAg
IGlmIChzaXplID49IChpbnQpc2l6ZW9mKGxhYmVsKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
ZWNvcmVfZXZhc190aXRsZV9zZXQoZWUsIGxhYmVsKTsKLX0KLQotLyoqCi0gKiBUaGlzIGlzIGVu
IGV4YW1wbGUgZnVuY3Rpb24gdG8gYWRqdXN0IHZpZXdwb3J0IHZpYSB2aWV3cG9ydCB0YWcncyBh
cmd1bWVudHMuCi0gKiBBcHBsaWNhdGlvbiBjYW4gaW52b2tlIHRoaXMgZnVuY3Rpb24gaW4gb3Jk
ZXIgdG8gYWRqdXN0IHZpZXdwb3J0IHRhZyB3aGVuIGl0IGlzIHJlcXVpcmVkLgotICovCi1zdGF0
aWMgdm9pZAotdmlld3BvcnRfc2V0KCkKLXsKLSAgICBFTGF1bmNoZXIgKmFwcDsKLSAgICBhcHAg
PSAoRUxhdW5jaGVyKikgZWluYV9saXN0X2RhdGFfZ2V0KHdpbmRvd3MpOwotCi0gICAgZXdrX3Zp
ZXdfZml4ZWRfbGF5b3V0X3NpemVfc2V0KGFwcC0+YnJvd3NlciwgYXBwLT52aWV3cG9ydC53LCBh
cHAtPnZpZXdwb3J0LmgpOwotICAgIGV3a192aWV3X3pvb21fc2V0KGFwcC0+YnJvd3NlciwgYXBw
LT52aWV3cG9ydC5pbml0U2NhbGUsIDAsIDApOwotICAgIGlmICghZXdrX3ZpZXdfem9vbV9yYW5n
ZV9zZXQoYXBwLT5icm93c2VyLCBhcHAtPnZpZXdwb3J0Lm1pblNjYWxlLCBhcHAtPnZpZXdwb3J0
Lm1heFNjYWxlKSkKLSAgICAgICAgaW5mbygiIEZhaWwgdG8gc2V0IHpvb20gcmFuZ2UuIG1pblNj
YWxlID0gJWYsIG1heFNjYWxlID0gJWZcbiIsIGFwcC0+dmlld3BvcnQubWluU2NhbGUsIGFwcC0+
dmlld3BvcnQubWF4U2NhbGUpOwotICAgIGV3a192aWV3X3VzZXJfc2NhbGFibGVfc2V0KGFwcC0+
YnJvd3NlciwgYXBwLT52aWV3cG9ydC51c2VyU2NhbGFibGUpOwotfQotCi1zdGF0aWMgdm9pZAot
b25fdGl0bGVfY2hhbmdlZCh2b2lkICp1c2VyX2RhdGEsIEV2YXNfT2JqZWN0ICp3ZWJ2aWV3LCB2
b2lkICpldmVudF9pbmZvKQotewotICAgIEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hlciAqKXVz
ZXJfZGF0YTsKLSAgICBjb25zdCBjaGFyICp0aXRsZSA9IChjb25zdCBjaGFyICopZXZlbnRfaW5m
bzsKLQotICAgIHRpdGxlX3NldChhcHAtPmVlLCB0aXRsZSwgMTAwKTsKLX0KLQotc3RhdGljIHZv
aWQKLW9uX3Byb2dyZXNzKHZvaWQgKnVzZXJfZGF0YSwgRXZhc19PYmplY3QgKndlYnZpZXcsIHZv
aWQgKmV2ZW50X2luZm8pCi17Ci0gICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyICopdXNl
cl9kYXRhOwotICAgIGRvdWJsZSAqcHJvZ3Jlc3MgPSAoZG91YmxlICopZXZlbnRfaW5mbzsKLQot
ICAgIHRpdGxlX3NldChhcHAtPmVlLCBld2tfdmlld190aXRsZV9nZXQoYXBwLT5icm93c2VyKSwg
KnByb2dyZXNzICogMTAwKTsKLX0KLQotc3RhdGljIHZvaWQKLW9uX2xvYWRfZmluaXNoZWQodm9p
ZCAqdXNlcl9kYXRhLCBFdmFzX09iamVjdCAqd2Vidmlldywgdm9pZCAqZXZlbnRfaW5mbykKLXsK
LSAgICBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvciAqZXJyID0gKGNvbnN0IEV3a19GcmFtZV9M
b2FkX0Vycm9yICopZXZlbnRfaW5mbzsKLQotICAgIGlmICghZXJyKQotICAgICAgICBpbmZvKCJT
dWNjZWVkZWQgbG9hZGluZyBwYWdlLlxuIik7Ci0gICAgZWxzZSBpZiAoZXJyLT5pc19jYW5jZWxs
YXRpb24pCi0gICAgICAgIGluZm8oIkxvYWQgd2FzIGNhbmNlbGxlZC5cbiIpOwotICAgIGVsc2UK
LSAgICAgICAgaW5mbygiRmFpbGVkIGxvYWRpbmcgcGFnZTogJWQgJXMgXCIlc1wiLCB1cmw9JXNc
biIsCi0gICAgICAgICAgICAgZXJyLT5jb2RlLCBlcnItPmRvbWFpbiwgZXJyLT5kZXNjcmlwdGlv
biwgZXJyLT5mYWlsaW5nX3VybCk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1vbl90b29sYmFyc192aXNp
YmxlX3NldCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVu
dF9pbmZvKQotewotICAgIEVpbmFfQm9vbCAqdmlzaWJsZSA9IChFaW5hX0Jvb2wgKilldmVudF9p
bmZvOwotICAgIGlmICgqdmlzaWJsZSkgewotICAgICAgICBpbmZvKCJUb29sYmFycyB2aXNpYmxl
IGNoYW5nZWQ6IHNob3ciKTsKLSAgICAgICAgd2luZG93UHJvcGVydGllcy50b29sYmFyc1Zpc2li
bGUgPSBFSU5BX1RSVUU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW5mbygiVG9vbGJhcnMgdmlz
aWJsZSBjaGFuZ2VkOiBoaWRlIik7Ci0gICAgICAgIHdpbmRvd1Byb3BlcnRpZXMudG9vbGJhcnNW
aXNpYmxlID0gRUlOQV9GQUxTRTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkCi1vbl90b29sYmFy
c192aXNpYmxlX2dldCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lk
KiBldmVudF9pbmZvKQotewotICAgIEVpbmFfQm9vbCAqdmlzaWJsZSA9IChFaW5hX0Jvb2wgKill
dmVudF9pbmZvOwotICAgICp2aXNpYmxlID0gd2luZG93UHJvcGVydGllcy50b29sYmFyc1Zpc2li
bGU7Ci19Ci0KLXN0YXRpYyB2b2lkCi1vbl9zdGF0dXNiYXJfdmlzaWJsZV9zZXQodm9pZCogdXNl
cl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKLXsKLSAgICBF
aW5hX0Jvb2wgKnZpc2libGUgPSAoRWluYV9Cb29sICopZXZlbnRfaW5mbzsKLSAgICBpZiAoKnZp
c2libGUpIHsKLSAgICAgICAgaW5mbygiU3RhdHVzYmFyIHZpc2libGUgY2hhbmdlZDogc2hvdyIp
OwotICAgICAgICB3aW5kb3dQcm9wZXJ0aWVzLnN0YXR1c2JhclZpc2libGUgPSBFSU5BX1RSVUU7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW5mbygiU3RhdHVzYmFyIHZpc2libGUgY2hhbmdlZDog
aGlkZSIpOwotICAgICAgICB3aW5kb3dQcm9wZXJ0aWVzLnN0YXR1c2JhclZpc2libGUgPSBFSU5B
X0ZBTFNFOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQKLW9uX3N0YXR1c2Jhcl92aXNpYmxlX2dl
dCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZv
KQotewotICAgIEVpbmFfQm9vbCAqdmlzaWJsZSA9IChFaW5hX0Jvb2wgKilldmVudF9pbmZvOwot
ICAgICp2aXNpYmxlID0gd2luZG93UHJvcGVydGllcy5zdGF0dXNiYXJWaXNpYmxlOwotfQotCi1z
dGF0aWMgdm9pZAotb25fc2Nyb2xsYmFyc192aXNpYmxlX3NldCh2b2lkKiB1c2VyX2RhdGEsIEV2
YXNfT2JqZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZvKQotewotICAgIEVpbmFfQm9vbCAq
dmlzaWJsZSA9IChFaW5hX0Jvb2wgKilldmVudF9pbmZvOwotICAgIGlmICgqdmlzaWJsZSkgewot
ICAgICAgICBpbmZvKCJTY3JvbGxiYXJzIHZpc2libGUgY2hhbmdlZDogc2hvdyIpOwotICAgICAg
ICB3aW5kb3dQcm9wZXJ0aWVzLnNjcm9sbGJhcnNWaXNpYmxlID0gRUlOQV9UUlVFOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIGluZm8oIlNjcm9sbGJhcnMgdmlzaWJsZSBjaGFuZ2VkOiBoaWRlIik7
Ci0gICAgICAgIHdpbmRvd1Byb3BlcnRpZXMuc2Nyb2xsYmFyc1Zpc2libGUgPSBFSU5BX0ZBTFNF
OwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQKLW9uX3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQodm9p
ZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKLXsK
LSAgICBFaW5hX0Jvb2wgKnZpc2libGUgPSAoRWluYV9Cb29sICopZXZlbnRfaW5mbzsKLSAgICAq
dmlzaWJsZSA9IHdpbmRvd1Byb3BlcnRpZXMuc2Nyb2xsYmFyc1Zpc2libGU7Ci19Ci0KLXN0YXRp
YyB2b2lkCi1vbl9tZW51YmFyX3Zpc2libGVfc2V0KHZvaWQqIHVzZXJfZGF0YSwgRXZhc19PYmpl
Y3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCi17Ci0gICAgRWluYV9Cb29sICp2aXNpYmxl
ID0gKEVpbmFfQm9vbCAqKWV2ZW50X2luZm87Ci0gICAgaWYgKCp2aXNpYmxlKSB7Ci0gICAgICAg
IGluZm8oIk1lbnViYXIgdmlzaWJsZSBjaGFuZ2VkOiBzaG93Iik7Ci0gICAgICAgIHdpbmRvd1By
b3BlcnRpZXMubWVudWJhclZpc2libGUgPSBFSU5BX1RSVUU7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgaW5mbygiTWVudWJhciB2aXNpYmxlIGNoYW5nZWQ6IGhpZGUiKTsKLSAgICAgICAgd2luZG93
UHJvcGVydGllcy5tZW51YmFyVmlzaWJsZSA9IEVJTkFfRkFMU0U7Ci0gICAgfQotfQotCi1zdGF0
aWMgdm9pZAotb25fbWVudWJhcl92aXNpYmxlX2dldCh2b2lkKiB1c2VyX2RhdGEsIEV2YXNfT2Jq
ZWN0KiB3ZWJ2aWV3LCB2b2lkKiBldmVudF9pbmZvKQotewotICAgIEVpbmFfQm9vbCAqdmlzaWJs
ZSA9IChFaW5hX0Jvb2wgKilldmVudF9pbmZvOwotICAgICp2aXNpYmxlID0gd2luZG93UHJvcGVy
dGllcy5tZW51YmFyVmlzaWJsZTsKLX0KLQotc3RhdGljIHZvaWQKLW9uX3Rvb2x0aXBfdGV4dF9z
ZXQodm9pZCogdXNlcl9kYXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5m
bykKLXsKLSAgICBjb25zdCBjaGFyICp0ZXh0ID0gKGNvbnN0IGNoYXIgKilldmVudF9pbmZvOwot
ICAgIGlmICh0ZXh0ICYmICp0ZXh0ICE9ICdcMCcpCi0gICAgICAgIGluZm8oIiVzXG4iLCB0ZXh0
KTsKLX0KLQotc3RhdGljIHZvaWQKLW9uX2lucHV0bWV0aG9kX2NoYW5nZWQodm9pZCogdXNlcl9k
YXRhLCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKLXsKLSAgICBFaW5h
X0Jvb2wgYWN0aXZlID0gKEVpbmFfQm9vbCkobG9uZylldmVudF9pbmZvOwotICAgIHVuc2lnbmVk
IGludCBpbWg7Ci0gICAgaW5mbygiS2V5Ym9hcmQgY2hhbmdlZDogJWRcbiIsIGFjdGl2ZSk7Ci0K
LSAgICBpZiAoIWFjdGl2ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaW1oID0gZXdrX3ZpZXdf
aW1oX2dldCh3ZWJ2aWV3KTsKLSAgICBpbmZvKCIgICAgS2V5Ym9hcmQgZmxhZ3M6ICUjLjJ4XG4i
LCBpbWgpOwotCi19Ci0KLS8qKgotICogInZpZXdwb3J0LGNoYW5nZWQiIHNpZ25hbCB3aWxsIGJl
IGFsd2F5cyBlbWl0dGVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHZpZXdwb3J0IGV4aXN0ZW5jZS4KLSAq
Ci0gKiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBwcm9jZXNzIHRoZSB2aWV3cG9ydCB0YWcsIHlvdSBj
YW4gZWl0aGVyIGRvIG5vdGhpbmcgaW4gdGhpcyBjYWxsYmFjawotICogb3Igc2ltcGx5IGlnbm9y
ZSB0aGUgc2lnbmFsIGluIHlvdXIgYXBwbGljYXRpb24uCi0gKiAKLSAqIE1vcmUgaW5mb3JtYXRp
b24gYWJvdXQgdGhpcyBjYW4gYmUgZm91bmQgYXQgaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20v
c2FmYXJpL2xpYnJhcnkvZG9jdW0KLSAqIGVudGF0aW9uL2FwcGxlYXBwbGljYXRpb25zL3JlZmVy
ZW5jZS9zYWZhcml3ZWJjb250ZW50L3VzaW5ndGhldmlld3BvcnQvdXNpbmd0aGV2aWV3cG9ydC5o
dG1sCi0gKi8KLXN0YXRpYyB2b2lkCi1vbl92aWV3cG9ydF9jaGFuZ2VkKHZvaWQqIHVzZXJfZGF0
YSwgRXZhc19PYmplY3QqIHdlYnZpZXcsIHZvaWQqIGV2ZW50X2luZm8pCi17Ci0gICAgRUxhdW5j
aGVyICphcHAgPSAoRUxhdW5jaGVyICopdXNlcl9kYXRhOwotCi0gICAgZmxvYXQgdywgaCwgaW5p
dFNjYWxlLCBtaW5TY2FsZSwgbWF4U2NhbGUsIHVzZXJTY2FsYWJsZTsKLQotICAgIGV3a192aWV3
X3ZpZXdwb3J0X2dldCh3ZWJ2aWV3LCAmdywgJmgsICZpbml0U2NhbGUsICZtYXhTY2FsZSwgJm1p
blNjYWxlLCAmdXNlclNjYWxhYmxlKTsKLQotICAgIC8qKgotICAgICAqIElmIHRoZXJlIGlzIG5v
IGFyZ3VtZW50IGluIHZpZXdwb3J0IHRhZywgYXJndW1lbnQncyB2YWx1ZSBpcyAtMS4KLSAgICAg
Ki8KLSAgICBpZiAoKGludCl3ID09IC0xKQotICAgICAgICB3ID0gREVGQVVMVF9XSURUSDsKLSAg
ICBpZiAoKGludCloID09IC0xKQotICAgICAgICBoID0gREVGQVVMVF9IRUlHSFQ7Ci0gICAgaWYg
KChpbnQpaW5pdFNjYWxlID09IC0xKQotICAgICAgICBpbml0U2NhbGUgPSBERUZBVUxUX1pPT01f
SU5JVDsgLy8gVGhlcmUncyBubyBzY2FsZSBzZXBhcmF0ZWQgZnJvbSB6b29taW5nIGluIHdlYmtp
dC1lZmwuCi0gICAgaWYgKChpbnQpbWluU2NhbGUgPT0gLTEpCi0gICAgICAgIG1pblNjYWxlID0g
ZXdrX3ZpZXdfem9vbV9yYW5nZV9taW5fZ2V0KHdlYnZpZXcpOwotICAgIGlmICgoaW50KW1heFNj
YWxlID09IC0xKQotICAgICAgICBtYXhTY2FsZSA9IGV3a192aWV3X3pvb21fcmFuZ2VfbWF4X2dl
dCh3ZWJ2aWV3KTsKLSAgICBpZiAoKGludCl1c2VyU2NhbGFibGUgPT0gLTEpCi0gICAgICAgIHVz
ZXJTY2FsYWJsZSA9IEVJTkFfVFJVRTsKLQotICAgIGFwcC0+dmlld3BvcnQudyA9IChpbnQpdzsK
LSAgICBhcHAtPnZpZXdwb3J0LmggPSAoaW50KWg7Ci0gICAgYXBwLT52aWV3cG9ydC5pbml0U2Nh
bGUgPSBpbml0U2NhbGU7Ci0gICAgYXBwLT52aWV3cG9ydC5taW5TY2FsZSA9IG1pblNjYWxlOwot
ICAgIGFwcC0+dmlld3BvcnQubWF4U2NhbGUgPSBtYXhTY2FsZTsKLSAgICBhcHAtPnZpZXdwb3J0
LnVzZXJTY2FsYWJsZSA9IChFaW5hX0Jvb2wpdXNlclNjYWxhYmxlOwotICAgIHZpZXdwb3J0X3Nl
dCgpOwotfQotCi1zdGF0aWMgdm9pZAotb25fbW91c2VfZG93bih2b2lkKiBkYXRhLCBFdmFzKiBl
LCBFdmFzX09iamVjdCogd2Vidmlldywgdm9pZCogZXZlbnRfaW5mbykKLXsKLSAgICBFdmFzX0V2
ZW50X01vdXNlX0Rvd24gKmV2ID0gKEV2YXNfRXZlbnRfTW91c2VfRG93biopIGV2ZW50X2luZm87
Ci0gICAgaWYgKGV2LT5idXR0b24gPT0gMikKLSAgICAgICAgZXZhc19vYmplY3RfZm9jdXNfc2V0
KHdlYnZpZXcsICFldmFzX29iamVjdF9mb2N1c19nZXQod2VidmlldykpOwotfQotCi1zdGF0aWMg
dm9pZAotb25fZm9jdXNfb3V0KHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmos
IHZvaWQgKmV2ZW50X2luZm8pCi17Ci0gICAgaW5mbygidGhlIHdlYnZpZXcgbG9zdCBrZXlib2Fy
ZCBmb2N1c1xuIik7Ci19Ci0KLXN0YXRpYyB2b2lkCi1vbl9mb2N1c19pbih2b2lkICpkYXRhLCBF
dmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZvKQotewotICAgIGluZm8o
InRoZSB3ZWJ2aWV3IGdhaW5lZCBrZXlib2FyZCBmb2N1c1xuIik7Ci19Ci0KLXN0YXRpYyB2b2lk
Ci1vbl9yZXNpemVkKHZvaWQgKmRhdGEsIEV2YXMgKmUsIEV2YXNfT2JqZWN0ICpvYmosIHZvaWQg
KmV2ZW50X2luZm8pCi17Ci0gICAgRXZhc19Db29yZCB3LCBoOwotICAgIGV2YXNfb2JqZWN0X2dl
b21ldHJ5X2dldChvYmosIE5VTEwsIE5VTEwsICZ3LCAmaCk7Ci0gICAgZXdrX3ZpZXdfZml4ZWRf
bGF5b3V0X3NpemVfc2V0KG9iaiwgdywgaCk7Ci19Ci0KLXN0YXRpYyB2b2lkCi1vbl9rZXlfZG93
bih2b2lkICpkYXRhLCBFdmFzICplLCBFdmFzX09iamVjdCAqb2JqLCB2b2lkICpldmVudF9pbmZv
KQotewotICAgIEV2YXNfRXZlbnRfS2V5X0Rvd24gKmV2ID0gKEV2YXNfRXZlbnRfS2V5X0Rvd24q
KSBldmVudF9pbmZvOwotICAgIEVMYXVuY2hlciAqYXBwID0gZGF0YTsKLSAgICBzdGF0aWMgY29u
c3QgY2hhciAqZW5jb2RpbmdzW10gPSB7Ci0gICAgICAgICJJU08tODg1OS0xIiwKLSAgICAgICAg
IlVURi04IiwKLSAgICAgICAgTlVMTAotICAgIH07Ci0gICAgc3RhdGljIGludCBjdXJyZW50RW5j
b2RpbmcgPSAtMTsKLQotICAgIGlmICghc3RyY21wKGV2LT5rZXksICJFc2NhcGUiKSkgewotICAg
ICAgICBjbG9zZVdpbmRvdyhhcHAtPmVlKTsKLSAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtl
eSwgIkYxIikpIHsKLSAgICAgICAgaW5mbygiQmFjayAoRjEpIHdhcyBwcmVzc2VkXG4iKTsKLSAg
ICAgICAgaWYgKGV3a192aWV3X2JhY2tfcG9zc2libGUob2JqKSkgewotICAgICAgICAgICAgRXdr
X0hpc3RvcnkgKmhpc3RvcnkgPSBld2tfdmlld19oaXN0b3J5X2dldChvYmopOwotICAgICAgICAg
ICAgRWluYV9MaXN0ICpsaXN0ID0gZXdrX2hpc3RvcnlfYmFja19saXN0X2dldChoaXN0b3J5KTsK
LSAgICAgICAgICAgIHByaW50X2hpc3RvcnkobGlzdCk7Ci0gICAgICAgICAgICBld2tfaGlzdG9y
eV9pdGVtX2xpc3RfZnJlZShsaXN0KTsKLSAgICAgICAgICAgIGV3a192aWV3X2JhY2sob2JqKTsK
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBpbmZvKCJCYWNrIGlnbm9yZWQ6IE5vIGJhY2sg
aGlzdG9yeVxuIik7Ci0gICAgfSBlbHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGMiIpKSB7Ci0g
ICAgICAgIGluZm8oIkZvcndhcmQgKEYyKSB3YXMgcHJlc3NlZFxuIik7Ci0gICAgICAgIGlmIChl
d2tfdmlld19mb3J3YXJkX3Bvc3NpYmxlKG9iaikpIHsKLSAgICAgICAgICAgIEV3a19IaXN0b3J5
ICpoaXN0b3J5ID0gZXdrX3ZpZXdfaGlzdG9yeV9nZXQob2JqKTsKLSAgICAgICAgICAgIEVpbmFf
TGlzdCAqbGlzdCA9IGV3a19oaXN0b3J5X2ZvcndhcmRfbGlzdF9nZXQoaGlzdG9yeSk7Ci0gICAg
ICAgICAgICBwcmludF9oaXN0b3J5KGxpc3QpOwotICAgICAgICAgICAgZXdrX2hpc3RvcnlfaXRl
bV9saXN0X2ZyZWUobGlzdCk7Ci0gICAgICAgICAgICBld2tfdmlld19mb3J3YXJkKG9iaik7Ci0g
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgaW5mbygiRm9yd2FyZCBpZ25vcmVkOiBObyBmb3J3
YXJkIGhpc3RvcnlcbiIpOwotICAgIH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjMiKSkg
ewotICAgICAgICBjdXJyZW50RW5jb2RpbmcrKzsKLSAgICAgICAgY3VycmVudEVuY29kaW5nICU9
IChzaXplb2YoZW5jb2RpbmdzKSAvIHNpemVvZihlbmNvZGluZ3NbMF0pKTsKLSAgICAgICAgaW5m
bygiU2V0IGVuY29kaW5nIChGMykgcHJlc3NlZC4gTmV3IGVuY29kaW5nIHRvICVzIiwgZW5jb2Rp
bmdzW2N1cnJlbnRFbmNvZGluZ10pOwotICAgICAgICBld2tfdmlld19zZXR0aW5nX2VuY29kaW5n
X2N1c3RvbV9zZXQob2JqLCBlbmNvZGluZ3NbY3VycmVudEVuY29kaW5nXSk7Ci0gICAgfSBlbHNl
IGlmICghc3RyY21wKGV2LT5rZXksICJGNCIpKSB7Ci0gICAgICAgIEV2YXNfT2JqZWN0ICpmcmFt
ZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KG9iaik7Ci0gICAgICAgIEV2YXNfQ29vcmQgeCwg
eTsKLSAgICAgICAgRXdrX0hpdF9UZXN0ICpodDsKLQotICAgICAgICBldmFzX3BvaW50ZXJfY2Fu
dmFzX3h5X2dldChldmFzX29iamVjdF9ldmFzX2dldChvYmopLCAmeCwgJnkpOwotICAgICAgICBo
dCA9IGV3a19mcmFtZV9oaXRfdGVzdF9uZXcoZnJhbWUsIHgsIHkpOwotICAgICAgICBpZiAoIWh0
KQotICAgICAgICAgICAgcHJpbnRmKCJObyBoaXQgdGVzdCByZXR1cm5lZCBmb3IgcG9pbnQgJWQs
JWRcbiIsIHgsIHkpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHByaW50ZigiSGl0IHRl
c3QgZm9yIHBvaW50ICVkLCVkXG4iCi0gICAgICAgICAgICAgICAgICAgIiAgcG9zPSUzZCwlM2Rc
biIKLSAgICAgICAgICAgICAgICAgICAiICBib3VuZGluZ19ib3g9JWQsJWQgKyAlZHglZFxuIgot
ICAgICAgICAgICAgICAgICAgICIgIHRpdGxlPSclcydcbiIKLSAgICAgICAgICAgICAgICAgICAi
ICBhbHRlcm5hdGVfdGV4dD0nJXMnXG4iCi0gICAgICAgICAgICAgICAgICAgIiAgZnJhbWU9JXAg
KCVzKVxuIgotICAgICAgICAgICAgICAgICAgICIgIGxpbmsge1xuIgotICAgICAgICAgICAgICAg
ICAgICIgICAgdGV4dD0nJXMnXG4iCi0gICAgICAgICAgICAgICAgICAgIiAgICB1cmw9JyVzJ1xu
IgotICAgICAgICAgICAgICAgICAgICIgICAgdGl0bGU9JyVzJ1xuIgotICAgICAgICAgICAgICAg
ICAgICIgICAgdGFyZ2V0IGZyYW1lPSVwICglcylcbiIKLSAgICAgICAgICAgICAgICAgICAiICB9
XG4iCi0gICAgICAgICAgICAgICAgICAgIiAgZmxhZ3Mge1xuIgotICAgICAgICAgICAgICAgICAg
ICIgICAgZWRpdGFibGU9JWhodVxuIgotICAgICAgICAgICAgICAgICAgICIgICAgc2VsZWN0ZWQ9
JWhodVxuIgotICAgICAgICAgICAgICAgICAgICIgIH1cbiIsCi0gICAgICAgICAgICAgICAgICAg
eCwgeSwKLSAgICAgICAgICAgICAgICAgICBodC0+eCwgaHQtPnksCi0gICAgICAgICAgICAgICAg
ICAgaHQtPmJvdW5kaW5nX2JveC54LCBodC0+Ym91bmRpbmdfYm94LnksIGh0LT5ib3VuZGluZ19i
b3gudywgaHQtPmJvdW5kaW5nX2JveC5oLAotICAgICAgICAgICAgICAgICAgIGh0LT50aXRsZSwK
LSAgICAgICAgICAgICAgICAgICBodC0+YWx0ZXJuYXRlX3RleHQsCi0gICAgICAgICAgICAgICAg
ICAgaHQtPmZyYW1lLCBldmFzX29iamVjdF9uYW1lX2dldChodC0+ZnJhbWUpLAotICAgICAgICAg
ICAgICAgICAgIGh0LT5saW5rLnRleHQsCi0gICAgICAgICAgICAgICAgICAgaHQtPmxpbmsudXJs
LAotICAgICAgICAgICAgICAgICAgIGh0LT5saW5rLnRpdGxlLAotICAgICAgICAgICAgICAgICAg
IGh0LT5saW5rLnRhcmdldF9mcmFtZSwgZXZhc19vYmplY3RfbmFtZV9nZXQoaHQtPmxpbmsudGFy
Z2V0X2ZyYW1lKSwKLSAgICAgICAgICAgICAgICAgICBodC0+ZmxhZ3MuZWRpdGFibGUsCi0gICAg
ICAgICAgICAgICAgICAgaHQtPmZsYWdzLnNlbGVjdGVkKTsKLSAgICAgICAgICAgIGV3a19mcmFt
ZV9oaXRfdGVzdF9mcmVlKGh0KTsKLSAgICAgICAgfQotCi0gICAgfSBlbHNlIGlmICghc3RyY21w
KGV2LT5rZXksICJGNSIpKSB7Ci0gICAgICAgIGluZm8oIlJlbG9hZCAoRjUpIHdhcyBwcmVzc2Vk
LCByZWxvYWRpbmcuXG4iKTsKLSAgICAgICAgZXdrX3ZpZXdfcmVsb2FkKG9iaik7Ci0gICAgfSBl
bHNlIGlmICghc3RyY21wKGV2LT5rZXksICJGNiIpKSB7Ci0gICAgICAgIGluZm8oIlN0b3AgKEY2
KSB3YXMgcHJlc3NlZCwgc3RvcCBsb2FkaW5nLlxuIik7Ci0gICAgICAgIGV3a192aWV3X3N0b3Ao
b2JqKTsKLSAgICAvKiB9IEZJWE1FOiB1bmNvbW1lbnQgY29kZSBiZWxvdyBhZnRlciBCdWcgMTg2
NjIgbGFuZHMgdXBzdHJlYW0uCi0gICAgZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjEyIikp
IHsKLSAgICAgICAgYm9vbCBzdGF0dXMgPSBld2tfd2ViZnJhbWVfb2JqZWN0X2tleWJvYXJkX25h
dmlnYXRpb25fZ2V0KHBhZ2UpOwotICAgICAgICBld2tfd2ViZnJhbWVfb2JqZWN0X2tleWJvYXJk
X25hdmlnYXRpb25fc2V0KHBhZ2UsICFzdGF0dXMpOwotICAgICAgICBpbmZvKCJDb21tYW5kOjpr
ZXlib2FyZCBuYXZpZ2F0aW9uIHRvZ2dsZVxuIik7Ki8KLSAgICB9IGVsc2UgaWYgKCFzdHJjbXAo
ZXYtPmtleSwgIkY3IikpIHsKLSAgICAgICAgaW5mbygiWm9vbSBvdXQgKEY3KSB3YXMgcHJlc3Nl
ZC5cbiIpOwotICAgICAgICBpZiAoY3VycmVudFpvb21MZXZlbCA+IE1JTl9aT09NX0xFVkVMKQot
ICAgICAgICAgICAgem9vbV9sZXZlbF9zZXQob2JqLCAtLWN1cnJlbnRab29tTGV2ZWwpOwotICAg
IH0gZWxzZSBpZiAoIXN0cmNtcChldi0+a2V5LCAiRjgiKSkgewotICAgICAgICBpbmZvKCJab29t
IGluIChGOCkgd2FzIHByZXNzZWQuXG4iKTsKLSAgICAgICAgaWYgKGN1cnJlbnRab29tTGV2ZWwg
PCBNQVhfWk9PTV9MRVZFTCkKLSAgICAgICAgICAgIHpvb21fbGV2ZWxfc2V0KG9iaiwgKytjdXJy
ZW50Wm9vbUxldmVsKTsKLSAgICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkY5IikpIHsK
LSAgICAgICAgaW5mbygiQ3JlYXRlIG5ldyB3aW5kb3cgKEY5KSB3YXMgcHJlc3NlZC5cbiIpOwot
ICAgICAgICBFaW5hX1JlY3RhbmdsZSBnZW9tZXRyeSA9IHswLCAwLCAwLCAwfTsKLSAgICAgICAg
YnJvd3NlckNyZWF0ZSgiaHR0cDovL3d3dy5nb29nbGUuY29tIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgYXBwLT50aGVtZSwgYXBwLT51c2VyQWdlbnQsIGdlb21ldHJ5LCBOVUxMLCAwKTsKLSAg
ICB9IGVsc2UgaWYgKCFzdHJjbXAoZXYtPmtleSwgIkYxMCIpKSB7Ci0gICAgICAgIEV2YXNfQ29v
cmQgeCwgeSwgdywgaDsKLSAgICAgICAgRXZhc19PYmplY3QgKmZyYW1lID0gZXdrX3ZpZXdfZnJh
bWVfbWFpbl9nZXQob2JqKTsKLSAgICAgICAgZmxvYXQgem9vbSA9IHpvb21MZXZlbHNbY3VycmVu
dFpvb21MZXZlbF0gLyAxMDAuMDsKLQotICAgICAgICBld2tfZnJhbWVfdmlzaWJsZV9jb250ZW50
X2dlb21ldHJ5X2dldChmcmFtZSwgRUlOQV9GQUxTRSwgJngsICZ5LCAmdywgJmgpOwotICAgICAg
ICB4IC09IHc7Ci0gICAgICAgIHkgLT0gaDsKLSAgICAgICAgdyAqPSA0OwotICAgICAgICBoICo9
IDQ7Ci0gICAgICAgIGluZm8oIlByZS1yZW5kZXIgJWQsJWQgKyAlZHglZFxuIiwgeCwgeSwgdywg
aCk7Ci0gICAgICAgIGV3a192aWV3X3ByZV9yZW5kZXJfcmVnaW9uKG9iaiwgeCwgeSwgdywgaCwg
em9vbSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZAotb25fYnJvd3Nlcl9kZWwodm9pZCAqZGF0
YSwgRXZhcyAqZXZhcywgRXZhc19PYmplY3QgKmJyb3dzZXIsIHZvaWQgKmV2ZW50KQotewotICAg
IEVMYXVuY2hlciAqYXBwID0gKEVMYXVuY2hlciopIGRhdGE7Ci0KLSAgICBldmFzX29iamVjdF9l
dmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBv
bl9rZXlfZG93bik7Ci0gICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+YnJv
d3NlciwgRVZBU19DQUxMQkFDS19NT1VTRV9ET1dOLCBvbl9tb3VzZV9kb3duKTsKLSAgICBldmFz
X29iamVjdF9ldmVudF9jYWxsYmFja19kZWwoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0ZP
Q1VTX0lOLCBvbl9mb2N1c19pbik7Ci0gICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVs
KGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX2ZvY3VzX291dCk7Ci0g
ICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfZGVsKGFwcC0+YnJvd3NlciwgRVZBU19DQUxM
QkFDS19ERUwsIG9uX2Jyb3dzZXJfZGVsKTsKLX0KLQotc3RhdGljIHZvaWQKLW9uX2Nsb3NlV2lu
ZG93KEVjb3JlX0V2YXMgKmVlKQotewotICAgIGJyb3dzZXJEZXN0cm95KGVlKTsKLX0KLQotc3Rh
dGljIGludAotcXVpdChFaW5hX0Jvb2wgc3VjY2VzcywgY29uc3QgY2hhciAqbXNnKQotewotICAg
IGVkamVfc2h1dGRvd24oKTsKLSAgICBlY29yZV9ldmFzX3NodXRkb3duKCk7Ci0KLSAgICBpZiAo
bXNnKQotICAgICAgICBmcHV0cyhtc2csIChzdWNjZXNzKSA/IHN0ZG91dCA6IHN0ZGVycik7Ci0K
LSAgICBmcmVlKHRoZW1lUGF0aCk7Ci0KLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7Ci0KLSAgICByZXR1cm4gRVhJVF9TVUNDRVNTOwotfQotCi1zdGF0aWMg
aW50Ci1icm93c2VyQ3JlYXRlKGNvbnN0IGNoYXIgKnVybCwgY29uc3QgY2hhciAqdGhlbWUsIGNv
bnN0IGNoYXIgKnVzZXJBZ2VudCwgRWluYV9SZWN0YW5nbGUgZ2VvbWV0cnksIGNvbnN0IGNoYXIg
KmVuZ2luZSwgdW5zaWduZWQgY2hhciBpc0Z1bGxzY3JlZW4pCi17Ci0gICAgaWYgKChnZW9tZXRy
eS53IDw9IDApICYmIChnZW9tZXRyeS5oIDw9IDApKSB7Ci0gICAgICAgIGdlb21ldHJ5LncgPSBE
RUZBVUxUX1dJRFRIOwotICAgICAgICBnZW9tZXRyeS5oID0gREVGQVVMVF9IRUlHSFQ7Ci0gICAg
fQotCi0gICAgRUxhdW5jaGVyICphcHAgPSAoRUxhdW5jaGVyKikgbWFsbG9jKHNpemVvZihFTGF1
bmNoZXIpKTsKLSAgICBpZiAoIWFwcCkKLSAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwg
IkVSUk9SOiBjb3VsZCBub3QgY3JlYXRlIEVXZWJMYXVuY2hlciB3aW5kb3dcbiIpOwotCi0gICAg
YXBwLT5lZSA9IGVjb3JlX2V2YXNfbmV3KGVuZ2luZSwgMCwgMCwgZ2VvbWV0cnkudywgZ2VvbWV0
cnkuaCwgTlVMTCk7Ci0KLSAgICBpZiAoIWFwcC0+ZWUpCi0gICAgICAgIHJldHVybiBxdWl0KEVJ
TkFfRkFMU0UsICJFUlJPUjogY291bGQgbm90IGNvbnN0cnVjdCBldmFzLWVjb3JlXG4iKTsKLQot
ICAgIGlmIChpc0Z1bGxzY3JlZW4pCi0gICAgICAgIGVjb3JlX2V2YXNfZnVsbHNjcmVlbl9zZXQo
YXBwLT5lZSwgRUlOQV9UUlVFKTsKLQotICAgIGVjb3JlX2V2YXNfdGl0bGVfc2V0KGFwcC0+ZWUs
ICJFRkwgVGVzdCBMYXVuY2hlciIpOwotICAgIGVjb3JlX2V2YXNfY2FsbGJhY2tfcmVzaXplX3Nl
dChhcHAtPmVlLCBvbl9lY29yZV9ldmFzX3Jlc2l6ZSk7Ci0gICAgZWNvcmVfZXZhc19jYWxsYmFj
a19kZWxldGVfcmVxdWVzdF9zZXQoYXBwLT5lZSwgY2xvc2VXaW5kb3cpOwotCi0gICAgYXBwLT5l
dmFzID0gZWNvcmVfZXZhc19nZXQoYXBwLT5lZSk7Ci0KLSAgICBpZiAoIWFwcC0+ZXZhcykKLSAg
ICAgICAgcmV0dXJuIHF1aXQoRUlOQV9GQUxTRSwgIkVSUk9SOiBjb3VsZCBub3QgZ2V0IGV2YXMg
ZnJvbSBldmFzLWVjb3JlXG4iKTsKLQotICAgIGlmICghdGhlbWUpCi0gICAgICAgIHRoZW1lID0g
dGhlbWVQYXRoOwotCi0gICAgYXBwLT50aGVtZSA9IHRoZW1lOwotICAgIGFwcC0+dXNlckFnZW50
ID0gdXNlckFnZW50OwotCi0gICAgYXBwLT5iZyA9IGV2YXNfb2JqZWN0X3JlY3RhbmdsZV9hZGQo
YXBwLT5ldmFzKTsKLSAgICBldmFzX29iamVjdF9uYW1lX3NldChhcHAtPmJnLCAiYmciKTsKLSAg
ICBldmFzX29iamVjdF9jb2xvcl9zZXQoYXBwLT5iZywgMjU1LCAwLCAyNTUsIDI1NSk7Ci0gICAg
ZXZhc19vYmplY3RfbW92ZShhcHAtPmJnLCAwLCAwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUo
YXBwLT5iZywgZ2VvbWV0cnkudywgZ2VvbWV0cnkuaCk7Ci0gICAgZXZhc19vYmplY3RfbGF5ZXJf
c2V0KGFwcC0+YmcsIEVWQVNfTEFZRVJfTUlOKTsKLSAgICBldmFzX29iamVjdF9zaG93KGFwcC0+
YmcpOwotICAgIGFwcC0+YnJvd3NlciA9IGV3a192aWV3X3NpbmdsZV9hZGQoYXBwLT5ldmFzKTsK
LQotICAgIGV3a192aWV3X3RoZW1lX3NldChhcHAtPmJyb3dzZXIsIHRoZW1lKTsKLSAgICBpZiAo
dXNlckFnZW50KQotICAgICAgICBld2tfdmlld19zZXR0aW5nX3VzZXJfYWdlbnRfc2V0KGFwcC0+
YnJvd3NlciwgdXNlckFnZW50KTsKLSAgICBldmFzX29iamVjdF9uYW1lX3NldChhcHAtPmJyb3dz
ZXIsICJicm93c2VyIik7Ci0KLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBw
LT5icm93c2VyLCAidGl0bGUsY2hhbmdlZCIsIG9uX3RpdGxlX2NoYW5nZWQsIGFwcCk7Ci0gICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgImxvYWQscHJvZ3Jl
c3MiLCBvbl9wcm9ncmVzcywgYXBwKTsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19h
ZGQoYXBwLT5icm93c2VyLCAibG9hZCxmaW5pc2hlZCIsIG9uX2xvYWRfZmluaXNoZWQsIGFwcCk7
Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInZpZXdw
b3J0LGNoYW5nZWQiLCBvbl92aWV3cG9ydF9jaGFuZ2VkLCBhcHApOwotCi0gICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInRvb2xiYXJzLHZpc2libGUsc2V0
Iiwgb25fdG9vbGJhcnNfdmlzaWJsZV9zZXQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRf
Y2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgInRvb2xiYXJzLHZpc2libGUsZ2V0Iiwgb25fdG9v
bGJhcnNfdmlzaWJsZV9nZXQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKGFwcC0+YnJvd3NlciwgInN0YXR1c2Jhcix2aXNpYmxlLHNldCIsIG9uX3N0YXR1c2Jhcl92
aXNpYmxlX3NldCwgYXBwKTsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBw
LT5icm93c2VyLCAic3RhdHVzYmFyLHZpc2libGUsZ2V0Iiwgb25fc3RhdHVzYmFyX3Zpc2libGVf
Z2V0LCBhcHApOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dz
ZXIsICJzY3JvbGxiYXJzLHZpc2libGUsc2V0Iiwgb25fc2Nyb2xsYmFyc192aXNpYmxlX3NldCwg
YXBwKTsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAi
c2Nyb2xsYmFycyx2aXNpYmxlLGdldCIsIG9uX3Njcm9sbGJhcnNfdmlzaWJsZV9nZXQsIGFwcCk7
Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgIm1lbnVi
YXIsdmlzaWJsZSxzZXQiLCBvbl9tZW51YmFyX3Zpc2libGVfc2V0LCBhcHApOwotICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChhcHAtPmJyb3dzZXIsICJtZW51YmFyLHZpc2libGUs
Z2V0Iiwgb25fbWVudWJhcl92aXNpYmxlX2dldCwgYXBwKTsKLSAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCAidG9vbHRpcCx0ZXh0LHNldCIsIG9uX3Rvb2x0
aXBfdGV4dF9zZXQsIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGFw
cC0+YnJvd3NlciwgImlucHV0bWV0aG9kLGNoYW5nZWQiLCBvbl9pbnB1dG1ldGhvZF9jaGFuZ2Vk
LCBhcHApOwotCi0vKiAgICAgZXdrX2NhbGxiYWNrX3Jlc2l6ZV9yZXF1ZXN0ZWRfYWRkKGFwcC0+
YnJvd3Nlciwgb25fcmVzaXplX3JlcXVlc3RlZCwgYXBwLT5lZSk7ICovCi0KLSAgICBldmFzX29i
amVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX1JFU0la
RSwgb25fcmVzaXplZCwgYXBwKTsKLSAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQo
YXBwLT5icm93c2VyLCBFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBvbl9rZXlfZG93biwgYXBwKTsK
LSAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NB
TExCQUNLX01PVVNFX0RPV04sIG9uX21vdXNlX2Rvd24sIGFwcCk7Ci0gICAgZXZhc19vYmplY3Rf
ZXZlbnRfY2FsbGJhY2tfYWRkKGFwcC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19JTiwg
b25fZm9jdXNfaW4sIGFwcCk7Ci0gICAgZXZhc19vYmplY3RfZXZlbnRfY2FsbGJhY2tfYWRkKGFw
cC0+YnJvd3NlciwgRVZBU19DQUxMQkFDS19GT0NVU19PVVQsIG9uX2ZvY3VzX291dCwgYXBwKTsK
LSAgICBldmFzX29iamVjdF9ldmVudF9jYWxsYmFja19hZGQoYXBwLT5icm93c2VyLCBFVkFTX0NB
TExCQUNLX0RFTCwgb25fYnJvd3Nlcl9kZWwsIGFwcCk7Ci0KLSAgICBldmFzX29iamVjdF9tb3Zl
KGFwcC0+YnJvd3NlciwgMTAsIDEwKTsKLSAgICBldmFzX29iamVjdF9yZXNpemUoYXBwLT5icm93
c2VyLCBnZW9tZXRyeS53IC0gMjAsIGdlb21ldHJ5LmggLSAyMCk7Ci0KLSAgICBpZiAodXJsICYm
ICh1cmxbMF0gIT0gJ1wwJykpCi0gICAgICAgIGV3a192aWV3X3VyaV9zZXQoYXBwLT5icm93c2Vy
LCB1cmwpOwotCi0gICAgZXZhc19vYmplY3Rfc2hvdyhhcHAtPmJyb3dzZXIpOwotICAgIGVjb3Jl
X2V2YXNfc2hvdyhhcHAtPmVlKTsKLQotICAgIGV2YXNfb2JqZWN0X2ZvY3VzX3NldChhcHAtPmJy
b3dzZXIsIEVJTkFfVFJVRSk7Ci0KLSAgICB3aW5kb3dzID0gZWluYV9saXN0X2FwcGVuZCh3aW5k
b3dzLCBhcHApOwotCi0gICAgcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyB2b2lkCi1icm93c2VyRGVz
dHJveShFY29yZV9FdmFzICplZSkKLXsKLSAgICBlY29yZV9ldmFzX2ZyZWUoZWUpOwotICAgIGlm
ICghZWluYV9saXN0X2NvdW50KHdpbmRvd3MpKQotICAgICAgICBlY29yZV9tYWluX2xvb3BfcXVp
dCgpOwotfQotCi1zdGF0aWMgdm9pZAotY2xvc2VXaW5kb3coRWNvcmVfRXZhcyAqZWUpCi17Ci0g
ICAgRWluYV9MaXN0ICpsOwotICAgIHZvaWQgKmFwcDsKLSAgICBFSU5BX0xJU1RfRk9SRUFDSCh3
aW5kb3dzLCBsLCBhcHApCi0gICAgewotICAgICAgICBpZiAoKChFTGF1bmNoZXIqKSBhcHApLT5l
ZSA9PSBlZSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICB3aW5kb3dzID0gZWluYV9s
aXN0X3JlbW92ZSh3aW5kb3dzLCBhcHApOwotICAgIGJyb3dzZXJEZXN0cm95KGVlKTsKLSAgICBm
cmVlKGFwcCk7Ci19Ci0KLXN0YXRpYyBFaW5hX0Jvb2wKLW1haW5fc2lnbmFsX2V4aXQodm9pZCAq
ZGF0YSwgaW50IGV2X3R5cGUsIHZvaWQgKmV2KQotewotICAgIEVMYXVuY2hlciAqYXBwOwotICAg
IHdoaWxlICh3aW5kb3dzKSB7Ci0gICAgICAgIGFwcCA9IChFTGF1bmNoZXIqKSBlaW5hX2xpc3Rf
ZGF0YV9nZXQod2luZG93cyk7Ci0gICAgICAgIGVjb3JlX2V2YXNfZnJlZShhcHAtPmVlKTsKLSAg
ICAgICAgd2luZG93cyA9IGVpbmFfbGlzdF9yZW1vdmUod2luZG93cywgYXBwKTsKLSAgICB9Ci0g
ICAgaWYgKCFlaW5hX2xpc3RfY291bnQod2luZG93cykpCi0gICAgICAgIGVjb3JlX21haW5fbG9v
cF9xdWl0KCk7Ci0gICAgcmV0dXJuIEVJTkFfVFJVRTsKLX0KLQotc3RhdGljIGNoYXIgKgotZmlu
ZFRoZW1lUGF0aCh2b2lkKQotewotICAgIGNvbnN0IGNoYXIgKippdHIsICpsb2NhdGlvbnNbXSA9
IHsKLSAgICAgICAgIi4vZGVmYXVsdC5lZGoiLAotICAgICAgICAiLi9XZWJLaXQvZWZsL0RlZmF1
bHRUaGVtZS9kZWZhdWx0LmVkaiIsCi0gICAgICAgICIuLi9XZWJLaXQvZWZsL0RlZmF1bHRUaGVt
ZS9kZWZhdWx0LmVkaiIsCi0gICAgICAgIERBVEFfRElSIi90aGVtZXMvZGVmYXVsdC5lZGoiLAot
ICAgICAgICBOVUxMCi0gICAgfTsKLQotICAgIGZvciAoaXRyID0gbG9jYXRpb25zOyAqaXRyOyBp
dHIrKykgewotICAgICAgICBzdHJ1Y3Qgc3RhdCBzdDsKLSAgICAgICAgaWYgKCFzdGF0KCppdHIs
ICZzdCkpIHsKLSAgICAgICAgICAgIGNoYXIgcGF0aFtQQVRIX01BWF07Ci0gICAgICAgICAgICBp
ZiAocmVhbHBhdGgoKml0ciwgcGF0aCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN0cmR1cChw
YXRoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCi1pbnQKLW1h
aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLXsKLSAgICBjb25zdCBjaGFyICpkZWZhdWx0X3Vy
bCA9ICJodHRwOi8vd3d3Lmdvb2dsZS5jb20vIjsKLQotICAgIEVpbmFfUmVjdGFuZ2xlIGdlb21l
dHJ5ID0gezAsIDAsIDAsIDB9OwotICAgIGNoYXIgKnVybCA9IE5VTEw7Ci0gICAgY2hhciAqdXNl
ckFnZW50ID0gTlVMTDsKLSAgICBjb25zdCBjaGFyICp0bXA7Ci0gICAgY29uc3QgY2hhciAqcHJv
eHlVcmk7Ci0gICAgY2hhciBwYXRoW1BBVEhfTUFYXTsKLQotICAgIGNoYXIgKmVuZ2luZSA9IE5V
TEw7Ci0gICAgY2hhciAqdGhlbWUgPSBOVUxMOwotCi0gICAgdW5zaWduZWQgY2hhciBxdWl0T3B0
aW9uID0gMDsKLSAgICB1bnNpZ25lZCBjaGFyIGlzRnVsbHNjcmVlbiA9IDA7Ci0gICAgdW5zaWdu
ZWQgY2hhciBzdWRvV29ya2Fyb3VuZCA9IDA7Ci0gICAgaW50IGFyZ3M7Ci0KLSAgICBFY29yZV9H
ZXRvcHRfVmFsdWUgdmFsdWVzW10gPSB7Ci0gICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9TVFIo
ZW5naW5lKSwKLSAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCi0g
ICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKGlzRnVsbHNjcmVlbiksCi0gICAgICAgIEVD
T1JFX0dFVE9QVF9WQUxVRV9QVFJfQ0FTVChnZW9tZXRyeSksCi0gICAgICAgIEVDT1JFX0dFVE9Q
VF9WQUxVRV9TVFIodGhlbWUpLAotICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKHVzZXJB
Z2VudCksCi0gICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9CT09MKHN1ZG9Xb3JrYXJvdW5kKSwK
LSAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0lOVCh2ZXJib3NlKSwKLSAgICAgICAgRUNPUkVf
R0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCi0gICAgICAgIEVDT1JFX0dFVE9QVF9WQUxV
RV9CT09MKHF1aXRPcHRpb24pLAotICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfQk9PTChxdWl0
T3B0aW9uKSwKLSAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCi0g
ICAgICAgIEVDT1JFX0dFVE9QVF9WQUxVRV9OT05FCi0gICAgfTsKLQotICAgIGlmICghZWNvcmVf
ZXZhc19pbml0KCkpCi0gICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0KLSAgICBpZiAoIWVk
amVfaW5pdCgpKSB7Ci0gICAgICAgIGVjb3JlX2V2YXNfc2h1dGRvd24oKTsKLSAgICAgICAgcmV0
dXJuIEVYSVRfRkFJTFVSRTsKLSAgICB9Ci0KLSAgICBlY29yZV9hcHBfYXJnc19zZXQoYXJnYywg
KGNvbnN0IGNoYXIqKikgYXJndik7Ci0gICAgYXJncyA9IGVjb3JlX2dldG9wdF9wYXJzZSgmb3B0
aW9ucywgdmFsdWVzLCBhcmdjLCBhcmd2KTsKLQotICAgIGlmIChhcmdzIDwgMCkKLSAgICAgICBy
ZXR1cm4gcXVpdChFSU5BX0ZBTFNFLCAiRVJST1I6IGNvdWxkIG5vdCBwYXJzZSBvcHRpb25zLlxu
Iik7Ci0KLSAgICBpZiAocXVpdE9wdGlvbikKLSAgICAgICAgcmV0dXJuIHF1aXQoRUlOQV9UUlVF
LCBOVUxMKTsKLQotICAgIGlmIChhcmdzIDwgYXJnYykKLSAgICAgICAgdXJsID0gYXJndlthcmdz
XTsKLSAgICBlbHNlCi0gICAgICAgIHVybCA9IChjaGFyKikgZGVmYXVsdF91cmw7Ci0KLSAgICBp
ZiAoc3Vkb1dvcmthcm91bmQpCi0gICAgICAgIHN0cmNhdChnZXRlbnYoIkhPTUUiKSwgImJsYWgi
KTsKLQotICAgIHRoZW1lUGF0aCA9IGZpbmRUaGVtZVBhdGgoKTsKLQotICAgIGV3a19pbml0KCk7
Ci0gICAgdG1wID0gZ2V0ZW52KCJUTVBESVIiKTsKLSAgICBpZiAoIXRtcCkKLSAgICAgICAgdG1w
ID0gIi90bXAiOwotICAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgIiVzLy5ld2Via2l0
LSV1IiwgdG1wLCBnZXR1aWQoKSk7Ci0gICAgZWNvcmVfZmlsZV9ta3BhdGgocGF0aCk7Ci0gICAg
ZXdrX3NldHRpbmdzX2ljb25fZGF0YWJhc2VfcGF0aF9zZXQocGF0aCk7Ci0gICAgZXdrX3NldHRp
bmdzX3dlYl9kYXRhYmFzZV9wYXRoX3NldChwYXRoKTsKLQotICAgIHByb3h5VXJpID0gZ2V0ZW52
KCJodHRwX3Byb3h5Iik7Ci0gICAgaWYgKHByb3h5VXJpKQotICAgICAgICBld2tfc2V0dGluZ3Nf
cHJveHlfdXJpX3NldChwcm94eVVyaSk7Ci0KLSAgICBicm93c2VyQ3JlYXRlKHVybCwgdGhlbWUs
IHVzZXJBZ2VudCwgZ2VvbWV0cnksIGVuZ2luZSwgaXNGdWxsc2NyZWVuKTsKLSAgICBlY29yZV9l
dmVudF9oYW5kbGVyX2FkZChFQ09SRV9FVkVOVF9TSUdOQUxfRVhJVCwgbWFpbl9zaWduYWxfZXhp
dCwgJndpbmRvd3MpOwotCi0gICAgZWNvcmVfbWFpbl9sb29wX2JlZ2luKCk7Ci0KLSAgICBld2tf
c2h1dGRvd24oKTsKLQotICAgIHJldHVybiBxdWl0KEVJTkFfVFJVRSwgTlVMTCk7Ci19CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9WQ1NVdGlscy5wbQppbmRleCBkZDA4YmFhLi4wNWQ3YmQ4IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNT
VXRpbHMucG0KQEAgLTk0LDcgKzk0LDcgQEAgbXkgJGdpdERpZmZTdGFydFJlZ0V4ID0gcXIjXmRp
ZmYgLS1naXQgKFx3Lyk/KC4rKSAoXHcvKT8oW15cclxuXSspIzsKIG15ICRzdm5EaWZmU3RhcnRS
ZWdFeCA9IHFyI15JbmRleDogKFteXHJcbl0rKSM7CiBteSAkc3ZuUHJvcGVydGllc1N0YXJ0UmVn
RXggPSBxciNeUHJvcGVydHkgY2hhbmdlcyBvbjogKFteXHJcbl0rKSM7ICMgJDEgaXMgbm9ybWFs
bHkgdGhlIHNhbWUgYXMgdGhlIGluZGV4IHBhdGguCiBteSAkc3ZuUHJvcGVydHlTdGFydFJlZ0V4
ID0gcXIjXihNb2RpZmllZHxOYW1lfEFkZGVkfERlbGV0ZWQpOiAoW15cclxuXSspIzsgIyAkMiBp
cyB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuCi1teSAkc3ZuUHJvcGVydHlWYWx1ZVN0YXJ0UmVn
RXggPSBxciNeICAgKFwrfC18TWVyZ2VkfFJldmVyc2UtbWVyZ2VkKSAoW15cclxuXSspIzsgIyAk
MiBpcyB0aGUgc3RhcnQgb2YgdGhlIHByb3BlcnR5J3MgdmFsdWUgKHdoaWNoIG1heSBzcGFuIG11
bHRpcGxlIGxpbmVzKS4KK215ICRzdm5Qcm9wZXJ0eVZhbHVlU3RhcnRSZWdFeCA9IHFyI14gICAo
XCt8LSkgKFteXHJcbl0rKSM7ICMgJDIgaXMgdGhlIHN0YXJ0IG9mIHRoZSBwcm9wZXJ0eSdzIHZh
bHVlICh3aGljaCBtYXkgc3BhbiBtdWx0aXBsZSBsaW5lcykuCiAKICMgVGhpcyBtZXRob2QgaXMg
Zm9yIHBvcnRhYmlsaXR5LiBSZXR1cm4gdGhlIHN5c3RlbS1hcHByb3ByaWF0ZSBleGl0CiAjIHN0
YXR1cyBvZiBhIGNoaWxkIHByb2Nlc3MuCkBAIC0xMDM3LDkgKzEwMzcsOSBAQCBzdWIgcGFyc2VT
dm5Qcm9wZXJ0eSgkJCkKICAgICB9CiAKICAgICBteSAkcHJvcGVydHlDaGFuZ2VEZWx0YTsKLSAg
ICBpZiAoJHByb3BlcnR5VmFsdWVUeXBlIGVxICIrIiB8fCAkcHJvcGVydHlWYWx1ZVR5cGUgZXEg
Ik1lcmdlZCIpIHsKKyAgICBpZiAoJHByb3BlcnR5VmFsdWVUeXBlIGVxICcrJykgewogICAgICAg
ICAkcHJvcGVydHlDaGFuZ2VEZWx0YSA9IDE7Ci0gICAgfSBlbHNpZiAoJHByb3BlcnR5VmFsdWVU
eXBlIGVxICItIiB8fCAkcHJvcGVydHlWYWx1ZVR5cGUgZXEgIlJldmVyc2UtbWVyZ2VkIikgewor
ICAgIH0gZWxzaWYgKCRwcm9wZXJ0eVZhbHVlVHlwZSBlcSAnLScpIHsKICAgICAgICAgJHByb3Bl
cnR5Q2hhbmdlRGVsdGEgPSAtMTsKICAgICB9IGVsc2UgewogICAgICAgICBkaWUoIk5vdCByZWFj
aGVkLiIpOwpAQCAtMTA5Myw3ICsxMDkzLDcgQEAgc3ViIHBhcnNlU3ZuUHJvcGVydHlWYWx1ZSgk
JCkKICAgICAgICAgJHByb3BlcnR5VmFsdWUgPSAkMjsgIyBEb2VzIG5vdCBpbmNsdWRlIHRoZSBl
bmQtb2YtbGluZSBjaGFyYWN0ZXIocykuCiAgICAgICAgICRlb2wgPSAkUE9TVE1BVENIOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGRpZSgiRmFpbGVkIHRvIGZpbmQgcHJvcGVydHkgdmFsdWUgYmVn
aW5uaW5nIHdpdGggJysnLCAnLScsICdNZXJnZWQnLCBvciAnUmV2ZXJzZS1tZXJnZWQnOiBcIiRf
XCIuIik7CisgICAgICAgIGRpZSgiRmFpbGVkIHRvIGZpbmQgcHJvcGVydHkgdmFsdWUgYmVnaW5u
aW5nIHdpdGggJysnIG9yICctJzogXCIkX1wiLiIpOwogICAgIH0KIAogICAgIHdoaWxlICg8JGZp
bGVIYW5kbGU+KSB7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
VkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5EaWZmRm9vdGVyLnBsIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlU3ZuRGlmZkZvb3Rlci5wbApp
bmRleCA0ZjA1NDMxLi5lMzA1NDg0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5EaWZmRm9vdGVyLnBsCisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZVN2bkRp
ZmZGb290ZXIucGwKQEAgLTYwLDU1ICs2MCw2IEBAIHVuZGVmXSwKIH0sCiB7CiAgICAgIyBOZXcg
dGVzdAotICAgIGRpZmZOYW1lID0+ICJzaW1wbGU6IGFkZCBzdm46bWVyZ2VpbmZvIiwKLSAgICBp
bnB1dFRleHQgPT4gPDwnRU5EJywKLVByb3BlcnR5IGNoYW5nZXMgb246IE1ha2VmaWxlCi1fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCi1BZGRlZDogc3ZuOm1lcmdlaW5mbwotICAgTWVyZ2VkIC90cnVuay9NYWtlZmlsZTpy
MzMwMjAKLUVORAotICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKLXsKLSAgICBwcm9wZXJ0eVBhdGgg
PT4gIk1ha2VmaWxlIiwKLX0sCi11bmRlZl0sCi0gICAgZXhwZWN0ZWROZXh0TGluZSA9PiB1bmRl
ZiwKLX0sCi17Ci0gICAgIyBOZXcgdGVzdAotICAgIGRpZmZOYW1lID0+ICJzaW1wbGU6IGRlbGV0
ZSBzdm46bWVyZ2VpbmZvIiwKLSAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKLVByb3BlcnR5IGNo
YW5nZXMgb246IE1ha2VmaWxlCi1fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCi1EZWxldGVkOiBzdm46bWVyZ2VpbmZvCi0g
ICBSZXZlcnNlLW1lcmdlZCAvdHJ1bmsvTWFrZWZpbGU6cjMzMDIwCi1FTkQKLSAgICBleHBlY3Rl
ZFJldHVybiA9PiBbCi17Ci0gICAgcHJvcGVydHlQYXRoID0+ICJNYWtlZmlsZSIsCi19LAotdW5k
ZWZdLAotICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gdW5kZWYsCi19LAotewotICAgICMgTmV3IHRl
c3QKLSAgICBkaWZmTmFtZSA9PiAic2ltcGxlOiBtb2RpZmllZCBzdm46bWVyZ2VpbmZvIiwKLSAg
ICBpbnB1dFRleHQgPT4gPDwnRU5EJywKLVByb3BlcnR5IGNoYW5nZXMgb246IE1ha2VmaWxlCi1f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCi1Nb2RpZmllZDogc3ZuOm1lcmdlaW5mbwotICAgUmV2ZXJzZS1tZXJnZWQgL3Ry
dW5rL01ha2VmaWxlOnIzMzAyMAotICAgTWVyZ2VkIC90cnVuay9NYWtlZmlsZTpyNDE2OTcKLUVO
RAotICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKLXsKLSAgICBwcm9wZXJ0eVBhdGggPT4gIk1ha2Vm
aWxlIiwKLX0sCi11bmRlZl0sCi0gICAgZXhwZWN0ZWROZXh0TGluZSA9PiB1bmRlZiwKLX0sCi17
Ci0gICAgIyBOZXcgdGVzdAogICAgIGRpZmZOYW1lID0+ICJzaW1wbGU6IGRlbGV0ZSBzdm46ZXhl
Y3V0YWJsZSIsCiAgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCiBQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBGaWxlQQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0
aWxzX3VuaXR0ZXN0L3BhcnNlU3ZuUHJvcGVydHkucGwgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5Qcm9wZXJ0eS5wbAppbmRleCA2OTE0
MDUxLi5iZGNhMWFiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
VkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5Qcm9wZXJ0eS5wbAorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5Qcm9wZXJ0eS5wbApA
QCAtNzMsNzcgKzczLDExIEBAIEVORAogdW5kZWZdLAogICAgIGV4cGVjdGVkTmV4dExpbmUgPT4g
dW5kZWYsCiB9LAotewotICAgICMgTmV3IHRlc3QKLSAgICBkaWZmTmFtZSA9PiAic2ltcGxlOiBh
ZGQgc3ZuOm1lcmdlaW5mbyIsCi0gICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCi1BZGRlZDogc3Zu
Om1lcmdlaW5mbwotICAgTWVyZ2VkIC90cnVuay9NYWtlZmlsZTpyMzMwMjAKLUVORAotICAgIGV4
cGVjdGVkUmV0dXJuID0+IFsKLXsKLSAgICBuYW1lID0+ICJzdm46bWVyZ2VpbmZvIiwKLSAgICBw
cm9wZXJ0eUNoYW5nZURlbHRhID0+IDEsCi0gICAgdmFsdWUgPT4gIi90cnVuay9NYWtlZmlsZTpy
MzMwMjAiLAotfSwKLXVuZGVmXSwKLSAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVmLAotfSwK
LXsKLSAgICAjIE5ldyB0ZXN0Ci0gICAgZGlmZk5hbWUgPT4gInNpbXBsZTogZGVsZXRlIHN2bjpt
ZXJnZWluZm8iLAotICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAotRGVsZXRlZDogc3ZuOm1lcmdl
aW5mbwotICAgUmV2ZXJzZS1tZXJnZWQgL3RydW5rL01ha2VmaWxlOnIzMzAyMAotRU5ECi0gICAg
ZXhwZWN0ZWRSZXR1cm4gPT4gWwotewotICAgIG5hbWUgPT4gInN2bjptZXJnZWluZm8iLAotICAg
IHByb3BlcnR5Q2hhbmdlRGVsdGEgPT4gLTEsCi0gICAgdmFsdWUgPT4gIi90cnVuay9NYWtlZmls
ZTpyMzMwMjAiLAotfSwKLXVuZGVmXSwKLSAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVmLAot
fSwKLXsKLSAgICAjIE5ldyB0ZXN0Ci0gICAgZGlmZk5hbWUgPT4gInNpbXBsZTogbW9kaWZpZWQg
c3ZuOm1lcmdlaW5mbyIsCi0gICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCi1Nb2RpZmllZDogc3Zu
Om1lcmdlaW5mbwotICAgUmV2ZXJzZS1tZXJnZWQgL3RydW5rL01ha2VmaWxlOnIzMzAyMAotICAg
TWVyZ2VkIC90cnVuay9NYWtlZmlsZTpyNDE2OTcKLUVORAotICAgIGV4cGVjdGVkUmV0dXJuID0+
IFsKLXsKLSAgICBuYW1lID0+ICJzdm46bWVyZ2VpbmZvIiwKLSAgICBwcm9wZXJ0eUNoYW5nZURl
bHRhID0+IDEsCi0gICAgdmFsdWUgPT4gIi90cnVuay9NYWtlZmlsZTpyNDE2OTciLAotfSwKLXVu
ZGVmXSwKLSAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVmLAotfSwKICMjIyMKICMgVXNpbmcg
U1ZOIDEuNCBzeW50YXgKICMjCiB7CiAgICAgIyBOZXcgdGVzdAotICAgIGRpZmZOYW1lID0+ICJz
aW1wbGU6IG1vZGlmaWVkIHN2bjptZXJnZWluZm8gdXNpbmcgU1ZOIDEuNCBzeW50YXgiLAotICAg
IGlucHV0VGV4dCA9PiA8PCdFTkQnLAotTmFtZTogc3ZuOm1lcmdlaW5mbwotICAgUmV2ZXJzZS1t
ZXJnZWQgL3RydW5rL01ha2VmaWxlOnIzMzAyMAotICAgTWVyZ2VkIC90cnVuay9NYWtlZmlsZTpy
NDE2OTcKLUVORAotICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKLXsKLSAgICBuYW1lID0+ICJzdm46
bWVyZ2VpbmZvIiwKLSAgICBwcm9wZXJ0eUNoYW5nZURlbHRhID0+IDEsCi0gICAgdmFsdWUgPT4g
Ii90cnVuay9NYWtlZmlsZTpyNDE2OTciLAotfSwKLXVuZGVmXSwKLSAgICBleHBlY3RlZE5leHRM
aW5lID0+IHVuZGVmLAotfSwKLXsKLSAgICAjIE5ldyB0ZXN0CiAgICAgZGlmZk5hbWUgPT4gInNp
bXBsZTogZGVsZXRlIHN2bjpleGVjdXRhYmxlIHVzaW5nIFNWTiAxLjQgc3ludGF4IiwKICAgICBp
bnB1dFRleHQgPT4gPDwnRU5EJywKIE5hbWU6IHN2bjpleGVjdXRhYmxlCkBAIC01MjUsNDAgKzQ1
OSw2IEBAIEVORAogIkFkZGVkOiBzdm46ZXhlY3V0YWJsZVxuIl0sCiAgICAgZXhwZWN0ZWROZXh0
TGluZSA9PiAiICAgKyAqXG4iLAogfSwKLXsKLSAgICAjIE5ldyB0ZXN0Ci0gICAgZGlmZk5hbWUg
PT4gIidNZXJnZWQnIGNoYW5nZSBmb2xsb3dlZCBieSAnTWVyZ2VkJyBjaGFuZ2UiLAotICAgIGlu
cHV0VGV4dCA9PiA8PCdFTkQnLAotQWRkZWQ6IHN2bjptZXJnZWluZm8KLSAgIE1lcmdlZCAvdHJ1
bmsvTWFrZWZpbGU6cjMzMDIwCi0gICBNZXJnZWQgL3RydW5rL01ha2VmaWxlLnNoYXJlZDpyNTgz
NTAKLUVORAotICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKLXsKLSAgICBuYW1lID0+ICJzdm46bWVy
Z2VpbmZvIiwKLSAgICBwcm9wZXJ0eUNoYW5nZURlbHRhID0+IDEsCi0gICAgdmFsdWUgPT4gIi90
cnVuay9NYWtlZmlsZS5zaGFyZWQ6cjU4MzUwIiwKLX0sCi11bmRlZl0sCi0gICAgZXhwZWN0ZWRO
ZXh0TGluZSA9PiB1bmRlZiwKLX0sCi17Ci0gICAgIyBOZXcgdGVzdAotICAgIGRpZmZOYW1lID0+
ICInUmV2ZXJzZS1tZXJnZWQnIGNoYW5nZSBmb2xsb3dlZCBieSAnUmV2ZXJzZS1tZXJnZWQnIGNo
YW5nZSIsCi0gICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCi1EZWxldGVkOiBzdm46bWVyZ2VpbmZv
Ci0gICBSZXZlcnNlLW1lcmdlZCAvdHJ1bmsvTWFrZWZpbGU6cjMzMDIwCi0gICBSZXZlcnNlLW1l
cmdlZCAvdHJ1bmsvTWFrZWZpbGUuc2hhcmVkOnI1ODM1MAotRU5ECi0gICAgZXhwZWN0ZWRSZXR1
cm4gPT4gWwotewotICAgIG5hbWUgPT4gInN2bjptZXJnZWluZm8iLAotICAgIHByb3BlcnR5Q2hh
bmdlRGVsdGEgPT4gLTEsCi0gICAgdmFsdWUgPT4gIi90cnVuay9NYWtlZmlsZS5zaGFyZWQ6cjU4
MzUwIiwKLX0sCi11bmRlZl0sCi0gICAgZXhwZWN0ZWROZXh0TGluZSA9PiB1bmRlZiwKLX0sCiAj
IyMjCiAjIFByb3BlcnR5IHZhbHVlcyB3aXRoIHRyYWlsaW5nIG5ldyBsaW5lcy4KICMjCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3Qv
cGFyc2VTdm5Qcm9wZXJ0eVZhbHVlLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlU3ZuUHJvcGVydHlWYWx1ZS5wbAppbmRleCAyZGU4YWUz
Li41ZmMyZmYxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNT
VXRpbHNfdW5pdHRlc3QvcGFyc2VTdm5Qcm9wZXJ0eVZhbHVlLnBsCisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZVN2blByb3BlcnR5VmFs
dWUucGwKQEAgLTU4LDI0ICs1OCw2IEBAIEVORAogfSwKIHsKICAgICAjIE5ldyB0ZXN0Ci0gICAg
ZGlmZk5hbWUgPT4gIidNZXJnZWQnIGNoYW5nZSIsCi0gICAgaW5wdXRUZXh0ID0+IDw8J0VORCcs
Ci0gICBNZXJnZWQgL3RydW5rL01ha2VmaWxlOnIzMzAyMAotRU5ECi0gICAgZXhwZWN0ZWRSZXR1
cm4gPT4gWyIvdHJ1bmsvTWFrZWZpbGU6cjMzMDIwIiwgdW5kZWZdLAotICAgIGV4cGVjdGVkTmV4
dExpbmUgPT4gdW5kZWYsCi19LAotewotICAgICMgTmV3IHRlc3QKLSAgICBkaWZmTmFtZSA9PiAi
J1JldmVyc2UtbWVyZ2VkJyBjaGFuZ2UiLAotICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAotICAg
UmV2ZXJzZS1tZXJnZWQgL3RydW5rL01ha2VmaWxlOnIzMzAyMAotRU5ECi0gICAgZXhwZWN0ZWRS
ZXR1cm4gPT4gWyIvdHJ1bmsvTWFrZWZpbGU6cjMzMDIwIiwgdW5kZWZdLAotICAgIGV4cGVjdGVk
TmV4dExpbmUgPT4gdW5kZWYsCi19LAotewotICAgICMgTmV3IHRlc3QKICAgICBkaWZmTmFtZSA9
PiAic2luZ2xlLWxpbmUgJy0nIGNoYW5nZSBmb2xsb3dlZCBieSBlbXB0eSBsaW5lIHdpdGggVW5p
eCBsaW5lIGVuZGluZ3MiLAogICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAogICAgLSAqCkBAIC0x
NzAsNDcgKzE1Miw2IEBAIEVORAogICAgIGV4cGVjdGVkUmV0dXJuID0+IFsiQVxubG9uZyBzZW50
ZW5jZSB0aGF0IHNwYW5zXG5tdWx0aXBsZSBsaW5lcy4iLCAiICAgKyBBbm90aGVyXG4iXSwKICAg
ICBleHBlY3RlZE5leHRMaW5lID0+ICJsb25nIHNlbnRlbmNlIHRoYXQgc3BhbnNcbiIsCiB9LAot
ewotICAgICMgTmV3IHRlc3QKLSAgICBkaWZmTmFtZSA9PiAiJ1JldmVyc2UtbWVyZ2VkJyBjaGFu
Z2UgZm9sbG93ZWQgYnkgJ01lcmdlJyBjaGFuZ2UiLAotICAgIGlucHV0VGV4dCA9PiA8PCdFTkQn
LAotICAgUmV2ZXJzZS1tZXJnZWQgL3RydW5rL01ha2VmaWxlOnIzMzAyMAotICAgTWVyZ2VkIC90
cnVuay9NYWtlZmlsZTpyNDE2OTcKLUVORAotICAgIGV4cGVjdGVkUmV0dXJuID0+IFsiL3RydW5r
L01ha2VmaWxlOnIzMzAyMCIsICIgICBNZXJnZWQgL3RydW5rL01ha2VmaWxlOnI0MTY5N1xuIl0s
Ci0gICAgZXhwZWN0ZWROZXh0TGluZSA9PiB1bmRlZiwKLX0sCi17Ci0gICAgIyBOZXcgdGVzdAot
ICAgIGRpZmZOYW1lID0+ICInTWVyZ2VkJyBjaGFuZ2UgZm9sbG93ZWQgYnkgJ01lcmdlJyBjaGFu
Z2UiLAotICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAotICAgTWVyZ2VkIC90cnVuay9NYWtlZmls
ZTpyMzMwMjAKLSAgIE1lcmdlZCAvdHJ1bmsvTWFrZWZpbGUuc2hhcmVkOnI1ODM1MAotRU5ECi0g
ICAgZXhwZWN0ZWRSZXR1cm4gPT4gWyIvdHJ1bmsvTWFrZWZpbGU6cjMzMDIwIiwgIiAgIE1lcmdl
ZCAvdHJ1bmsvTWFrZWZpbGUuc2hhcmVkOnI1ODM1MFxuIl0sCi0gICAgZXhwZWN0ZWROZXh0TGlu
ZSA9PiB1bmRlZiwKLX0sCi17Ci0gICAgIyBOZXcgdGVzdAotICAgIGRpZmZOYW1lID0+ICInUmV2
ZXJzZS1tZXJnZWQnIGNoYW5nZSBmb2xsb3dlZCBieSAnUmV2ZXJzZS1tZXJnZWQnIGNoYW5nZSIs
Ci0gICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCi0gICBSZXZlcnNlLW1lcmdlZCAvdHJ1bmsvTWFr
ZWZpbGU6cjMzMDIwCi0gICBSZXZlcnNlLW1lcmdlZCAvdHJ1bmsvTWFrZWZpbGUuc2hhcmVkOnI1
ODM1MAotRU5ECi0gICAgZXhwZWN0ZWRSZXR1cm4gPT4gWyIvdHJ1bmsvTWFrZWZpbGU6cjMzMDIw
IiwgIiAgIFJldmVyc2UtbWVyZ2VkIC90cnVuay9NYWtlZmlsZS5zaGFyZWQ6cjU4MzUwXG4iXSwK
LSAgICBleHBlY3RlZE5leHRMaW5lID0+IHVuZGVmLAotfSwKLXsKLSAgICAjIE5ldyB0ZXN0Ci0g
ICAgZGlmZk5hbWUgPT4gIidSZXZlcnNlLW1lcmdlZCcgY2hhbmdlIGZvbGxvd2VkIGJ5ICdSZXZl
cnNlLW1lcmdlZCcgY2hhbmdlIGZvbGxvd2VkIGJ5ICdNZXJnZWQnIGNoYW5nZSIsCi0gICAgaW5w
dXRUZXh0ID0+IDw8J0VORCcsCi0gICBSZXZlcnNlLW1lcmdlZCAvdHJ1bmsvTWFrZWZpbGU6cjMz
MDIwCi0gICBSZXZlcnNlLW1lcmdlZCAvdHJ1bmsvTWFrZWZpbGUuc2hhcmVkOnI1ODM1MAotICAg
TWVyZ2VkIC90cnVuay9DaGFuZ2VMb2c6cjY0MTkwCi1FTkQKLSAgICBleHBlY3RlZFJldHVybiA9
PiBbIi90cnVuay9NYWtlZmlsZTpyMzMwMjAiLCAiICAgUmV2ZXJzZS1tZXJnZWQgL3RydW5rL01h
a2VmaWxlLnNoYXJlZDpyNTgzNTBcbiJdLAotICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIiAgIE1l
cmdlZCAvdHJ1bmsvQ2hhbmdlTG9nOnI2NDE5MFxuIiwKLX0sCiApOwogCiBteSAkdGVzdENhc2Vz
Q291bnQgPSBAdGVzdENhc2VIYXNoUmVmczsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJzLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkKaW5kZXggNjI3YTkwMi4u
MTllYmM1ZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL2NvbW1pdHRlcnMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL2NvbW1pdHRlcnMucHkKQEAgLTc0LDYgKzc0LDcgQEAgY29tbWl0dGVyc191
bmFibGVfdG9fcmV2aWV3ID0gWwogICAgIENvbW1pdHRlcigiQW5kcmVpIFBvcGVzY3UiLCAiYW5k
cmVpcEBnb29nbGUuY29tIiwgImFuZHJlaXAiKSwKICAgICBDb21taXR0ZXIoIkFuZHJldyBXZWxs
aW5ndG9uIiwgWyJhbmRyZXdAd2Via2l0Lm9yZyIsICJwcm90b25Ad2lyZXRhcHBlZC5uZXQiXSwg
InByb3RvbiIpLAogICAgIENvbW1pdHRlcigiQW5kcmFzIEJlY3NpIiwgImFiZWNzaUB3ZWJraXQu
b3JnIiwgImJiYW5kaXgiKSwKKyAgICBDb21taXR0ZXIoIkFuZHJlYXMgS2xpbmciLCAiYW5kcmVh
cy5rbGluZ0Bub2tpYS5jb20iLCAia2xpbmciKSwKICAgICBDb21taXR0ZXIoIkFuZHkgRXN0ZXMi
LCAiYWVzdGVzQGFwcGxlLmNvbSIsICJlc3RlcyIpLAogICAgIENvbW1pdHRlcigiQW50aG9ueSBS
aWNhdWQiLCAicmlrQHdlYmtpdC5vcmciLCAicmlrIiksCiAgICAgQ29tbWl0dGVyKCJBbnRvbiBN
dWhpbiIsICJhbnRvbm1AY2hyb21pdW0ub3JnIiwgImFudG9ubSIpLApAQCAtODksNyArOTAsNiBA
QCBjb21taXR0ZXJzX3VuYWJsZV90b19yZXZpZXcgPSBbCiAgICAgQ29tbWl0dGVyKCJDaGFuZyBT
aHUiLCAiQ2hhbmcuU2h1QG5va2lhLmNvbSIpLAogICAgIENvbW1pdHRlcigiQ2hyaXMgRXZhbnMi
LCAiY2V2YW5zQGdvb2dsZS5jb20iKSwKICAgICBDb21taXR0ZXIoIkNocmlzIFBldGVyc2VuIiwg
ImNwZXRlcnNlbkBhcHBsZS5jb20iLCAiY3BldGVyc2VuIiksCi0gICAgQ29tbWl0dGVyKCJDaHJp
cyBSb2dlcnMiLCAiY3JvZ2Vyc0Bnb29nbGUuY29tIiwgImNyb2dlcnMiKSwKICAgICBDb21taXR0
ZXIoIkNocmlzdGlhbiBEeXdhbiIsIFsiY2hyaXN0aWFuQHR3b3RvYXN0cy5kZSIsICJjaHJpc3Rp
YW5Ad2Via2l0Lm9yZyJdKSwKICAgICBDb21taXR0ZXIoIkNvbGxpbiBKYWNrc29uIiwgImNvbGxp
bmpAd2Via2l0Lm9yZyIpLAogICAgIENvbW1pdHRlcigiQ3NhYmEgT3N6dHJvZ29uYWMiLCAib3Nz
eUB3ZWJraXQub3JnIiwgIm9zc3kiKSwKQEAgLTE5OCw3ICsxOTgsNiBAQCByZXZpZXdlcnNfbGlz
dCA9IFsKICAgICBSZXZpZXdlcigiQWxpY2UgTGl1IiwgImFsaWNlLmxpdUBhcHBsZS5jb20iLCAi
YWxpdSIpLAogICAgIFJldmlld2VyKCJBbHAgVG9rZXIiLCBbImFscEBudWFudGkuY29tIiwgImFs
cEBhdG9rZXIuY29tIiwgImFscEB3ZWJraXQub3JnIl0sICJhbHAiKSwKICAgICBSZXZpZXdlcigi
QW5kZXJzIENhcmxzc29uIiwgWyJhbmRlcnNjYUBhcHBsZS5jb20iLCAiYWNhcmxzc29uQGFwcGxl
LmNvbSJdLCAiYW5kZXJzY2EiKSwKLSAgICBSZXZpZXdlcigiQW5kcmVhcyBLbGluZyIsICJhbmRy
ZWFzLmtsaW5nQG5va2lhLmNvbSIsICJrbGluZyIpLAogICAgIFJldmlld2VyKCJBbnRvbmlvIEdv
bWVzIiwgInRvbmlraXRvb0B3ZWJraXQub3JnIiwgInRvbmlraXRvbyIpLAogICAgIFJldmlld2Vy
KCJBbnR0aSBLb2l2aXN0byIsIFsia29pdmlzdG9AaWtpLmZpIiwgImFudHRpQGFwcGxlLmNvbSJd
LCAiYW50dGlrIiksCiAgICAgUmV2aWV3ZXIoIkFyaXlhIEhpZGF5YXQiLCBbImFyaXlhQHNlbmNo
YS5jb20iLCAiYXJpeWEuaGlkYXlhdEBnbWFpbC5jb20iLCAiYXJpeWFAd2Via2l0Lm9yZyJdLCAi
YXJpeWEiKSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYmFzZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYmFzZS5weQppbmRleCA2YjczNDJkLi4wZGRhNzc0IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNlLnB5
CkBAIC02MzYsNyArNjM2LDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX3ByZXR0eV9wYXRjaF9lcnJvcl9odG1sCiAKICAgICBkZWYgX3dlYmtpdF9idWls
ZF9kaXJlY3Rvcnkoc2VsZiwgYXJncyk6Ci0gICAgICAgIGFyZ3MgPSBbInBlcmwiLCBzZWxmLnNj
cmlwdF9wYXRoKCJ3ZWJraXQtYnVpbGQtZGlyZWN0b3J5IildICsgYXJncworICAgICAgICBhcmdz
ID0gW3NlbGYuc2NyaXB0X3BhdGgoIndlYmtpdC1idWlsZC1kaXJlY3RvcnkiKV0gKyBhcmdzCiAg
ICAgICAgIHJldHVybiBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQoYXJncykucnN0cmlwKCkK
IAogICAgIGRlZiBfY29uZmlndXJhdGlvbl9maWxlX3BhdGgoc2VsZik6CkBAIC02OTEsMTAgKzY5
MSw2IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIiIiUmV0dXJucyB0aGUgZnVsbCBw
YXRoIHRvIHRoZSB0ZXN0IGRyaXZlciAoRHVtcFJlbmRlclRyZWUpLiIiIgogICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yKCdQb3J0LnBhdGhfdG9fZHJpdmVyJykKIAotICAgIGRlZiBf
cGF0aF90b193ZWJjb3JlX2xpYnJhcnkoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIGZ1
bGwgcGF0aCB0byBhIGJ1aWx0IGNvcHkgb2YgV2ViQ29yZS4iIiIKLSAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcignUG9ydC5wYXRoX3RvX3dlYmNvcmVfbGlicmFyeScpCi0KICAgICBk
ZWYgX3BhdGhfdG9faGVscGVyKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIHRoZSBmdWxsIHBh
dGggdG8gdGhlIGxheW91dF90ZXN0X2hlbHBlciBiaW5hcnksIHdoaWNoCiAgICAgICAgIGlzIHVz
ZWQgdG8gaGVscCBjb25maWd1cmUgdGhlIHN5c3RlbSBmb3IgdGhlIHRlc3QgcnVuLCBvciBOb25l
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L2xpZ2h0dHBkLmNvbmYgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L2xpZ2h0dHBkLmNvbmYKaW5kZXggMjZjYTIyZi4uMmU5YzgyZSAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9saWdodHRw
ZC5jb25mCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQvbGlnaHR0cGQuY29uZgpAQCAtMjIsNyArMjIsNyBAQCBtaW1ldHlwZS5hc3NpZ24gICAgICAg
ICAgICAgPSAoCiAgICIuaHRtIiAgICAgICAgICA9PiAgICAgICJ0ZXh0L2h0bWwiLAogICAiLnho
dG1sIiAgICAgICAgPT4gICAgICAiYXBwbGljYXRpb24veGh0bWwreG1sIiwKICAgIi54aHRtbG1w
IiAgICAgID0+ICAgICAgImFwcGxpY2F0aW9uL3ZuZC53YXAueGh0bWwreG1sIiwKLSAgIi5qcyIg
ICAgICAgICAgID0+ICAgICAgImFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCIsCisgICIuanMiICAg
ICAgICAgICA9PiAgICAgICJ0ZXh0L2phdmFzY3JpcHQiLAogICAiLmxvZyIgICAgICAgICAgPT4g
ICAgICAidGV4dC9wbGFpbiIsCiAgICIuY29uZiIgICAgICAgICA9PiAgICAgICJ0ZXh0L3BsYWlu
IiwKICAgIi50ZXh0IiAgICAgICAgID0+ICAgICAgInRleHQvcGxhaW4iLApkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvcXQucHkKaW5kZXgg
MTU4YzYzMy4uNDFiMmJhMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9xdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L3F0LnB5CkBAIC05MywxMiArOTMsNiBAQCBjbGFzcyBRdFBv
cnQoV2ViS2l0UG9ydCk6CiAgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKICAgICAgICAg
cmV0dXJuIHNlbGYuX2J1aWxkX3BhdGgoJ2Jpbi9EdW1wUmVuZGVyVHJlZScpCiAKLSAgICBkZWYg
X3BhdGhfdG9fd2ViY29yZV9saWJyYXJ5KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fYnVp
bGRfcGF0aCgnbGliL2xpYlF0V2ViS2l0LnNvJykKLQotICAgIGRlZiBfcnVudGltZV9mZWF0dXJl
X2xpc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBOb25lCi0KICAgICBkZWYgc2V0dXBfZW52aXJv
bl9mb3Jfc2VydmVyKHNlbGYpOgogICAgICAgICBlbnYgPSB3ZWJraXQuV2ViS2l0UG9ydC5zZXR1
cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZikKICAgICAgICAgZW52WydRVFdFQktJVF9QTFVHSU5f
UEFUSCddID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliL3BsdWdpbnMnKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXQucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpp
bmRleCA2MWY4YWVkLi5jZWRjMDI4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdC5weQpAQCAtMSw2ICsxLDUgQEAK
ICMhL3Vzci9iaW4vZW52IHB5dGhvbgogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChDKSAyMDEwIEdhYm9yIFJhcGNzYW55
aSA8cmdhYm9yQGluZi51LXN6ZWdlZC5odT4sIFVuaXZlcnNpdHkgb2YgU3plZ2VkCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC00Miw3ICs0MSw2IEBAIGltcG9ydCBzaWduYWwK
IGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiBpbXBvcnQgd2ViYnJvd3NlcgotaW1wb3J0IG9wZXJh
dG9yCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1
dGl2ZQogCkBAIC0yMTksNjYgKzIxNyw2IEBAIGNsYXNzIFdlYktpdFBvcnQoYmFzZS5Qb3J0KToK
ICAgICAgICAgICAgICJwbGF0Zm9ybS93aW4iLAogICAgICAgICBdCiAKLSAgICBkZWYgX3J1bnRp
bWVfZmVhdHVyZV9saXN0KHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIHN1cHBvcnRlZCBm
ZWF0dXJlcyBvZiBEUlQuIElmIGEgcG9ydCBkb2Vzbid0IHN1cHBvcnQKLSAgICAgICAgdGhpcyBE
UlQgc3dpdGNoLCBpdCBoYXMgdG8gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gcmV0dXJuIE5vbmUi
IiIKLSAgICAgICAgZHJpdmVyX3BhdGggPSBzZWxmLl9wYXRoX3RvX2RyaXZlcigpCi0gICAgICAg
IGZlYXR1cmVfbGlzdCA9ICcgJy5qb2luKG9zLnBvcGVuKGRyaXZlcl9wYXRoICsgIiAtLXByaW50
LXN1cHBvcnRlZC1mZWF0dXJlcyAyPiYxIikucmVhZGxpbmVzKCkpCi0gICAgICAgIGlmICJTdXBw
b3J0ZWRGZWF0dXJlczoiIGluIGZlYXR1cmVfbGlzdDoKLSAgICAgICAgICAgIHJldHVybiBmZWF0
dXJlX2xpc3QKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBfc3VwcG9ydGVkX3N5bWJv
bF9saXN0KHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIHN1cHBvcnRlZCBzeW1ib2xzIG9m
IFdlYkNvcmUuIiIiCi0gICAgICAgIHdlYmNvcmVfbGlicmFyeV9wYXRoID0gc2VsZi5fcGF0aF90
b193ZWJjb3JlX2xpYnJhcnkoKQotICAgICAgICBpZiBub3Qgd2ViY29yZV9saWJyYXJ5X3BhdGg6
Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBzeW1ib2xfbGlzdCA9ICcgJy5qb2lu
KG9zLnBvcGVuKCJubSAiICsgd2ViY29yZV9saWJyYXJ5X3BhdGgpLnJlYWRsaW5lcygpKQotICAg
ICAgICByZXR1cm4gc3ltYm9sX2xpc3QKLQotICAgIGRlZiBfZGlyZWN0b3JpZXNfZm9yX2ZlYXR1
cmVzKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIHN1cHBvcnRlZCBmZWF0dXJlIGRpY3Rp
b25hcnkuIFRoZSBrZXlzIGFyZSB0aGUKLSAgICAgICAgZmVhdHVyZXMgYW5kIHRoZSB2YWx1ZXMg
YXJlIHRoZSBkaXJlY3RvcmllcyBpbiBsaXN0cy4iIiIKLSAgICAgICAgZGlyZWN0b3JpZXNfZm9y
X2ZlYXR1cmVzID0gewotICAgICAgICAgICAgIkFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIjogWyJj
b21wb3NpdGluZyJdLAotICAgICAgICAgICAgIjNEIFJlbmRlcmluZyI6IFsiYW5pbWF0aW9ucy8z
ZCIsICJ0cmFuc2Zvcm1zLzNkIl0sCi0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRpcmVjdG9y
aWVzX2Zvcl9mZWF0dXJlcwotCi0gICAgZGVmIF9kaXJlY3Rvcmllc19mb3Jfc3ltYm9scyhzZWxm
KToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBzdXBwb3J0ZWQgZmVhdHVyZSBkaWN0aW9uYXJ5LiBU
aGUga2V5cyBhcmUgdGhlCi0gICAgICAgIHN5bWJvbHMgYW5kIHRoZSB2YWx1ZXMgYXJlIHRoZSBk
aXJlY3RvcmllcyBpbiBsaXN0cy4iIiIKLSAgICAgICAgZGlyZWN0b3JpZXNfZm9yX3N5bWJvbCA9
IHsKLSAgICAgICAgICAgICJNYXRoTUxFbGVtZW50IjogWyJtYXRobWwiXSwKLSAgICAgICAgICAg
ICJHcmFwaGljc0xheWVyIjogWyJjb21wb3NpdGluZyJdLAotICAgICAgICAgICAgIldlYkNvcmVI
YXMzRFJlbmRlcmluZyI6IFsiYW5pbWF0aW9ucy8zZCIsICJ0cmFuc2Zvcm1zLzNkIl0sCi0gICAg
ICAgICAgICAiV2ViR0xTaGFkZXIiOiBbImZhc3QvY2FudmFzL3dlYmdsIl0sCi0gICAgICAgICAg
ICAiV01MRWxlbWVudCI6IFsiaHR0cC90ZXN0cy93bWwiLCAiZmFzdC93bWwiLCAid21sIl0sCi0g
ICAgICAgICAgICAicGFyc2VXQ1NTSW5wdXRQcm9wZXJ0eSI6IFsiZmFzdC93Y3NzIl0sCi0gICAg
ICAgICAgICAiaXNYSFRNTE1QRG9jdW1lbnQiOiBbImZhc3QveGh0bWxtcCJdLAotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBkaXJlY3Rvcmllc19mb3Jfc3ltYm9sCi0KLSAgICBkZWYgX3NraXBw
ZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKHNlbGYpOgotICAgICAgICAiIiJSZXR1
cm4gdGhlIGRpcmVjdG9yaWVzIG9mIHVuc3VwcG9ydGVkIHRlc3RzLiBTZWFyY2ggZm9yIHRoZQot
ICAgICAgICBzeW1ib2xzIGluIHRoZSBzeW1ib2xfbGlzdCwgaWYgZm91bmQgYWRkIHRoZSBjb3Jy
ZXNwb25kaW5nCi0gICAgICAgIGRpcmVjdG9yaWVzIHRvIHRoZSBza2lwcGVkIGRpcmVjdG9yeSBs
aXN0LiIiIgotICAgICAgICBmZWF0dXJlX2xpc3QgPSBzZWxmLl9ydW50aW1lX2ZlYXR1cmVfbGlz
dCgpCi0gICAgICAgIGRpcmVjdG9yaWVzID0gc2VsZi5fZGlyZWN0b3JpZXNfZm9yX2ZlYXR1cmVz
KCkKLQotICAgICAgICAjIGlmIERSVCBmZWF0dXJlIGRldGVjdGlvbiBub3Qgc3VwcG9ydGVkCi0g
ICAgICAgIGlmIG5vdCBmZWF0dXJlX2xpc3Q6Ci0gICAgICAgICAgICBmZWF0dXJlX2xpc3QgPSBz
ZWxmLl9zdXBwb3J0ZWRfc3ltYm9sX2xpc3QoKQotICAgICAgICAgICAgZGlyZWN0b3JpZXMgPSBz
ZWxmLl9kaXJlY3Rvcmllc19mb3Jfc3ltYm9scygpCi0KLSAgICAgICAgaWYgbm90IGZlYXR1cmVf
bGlzdDoKLSAgICAgICAgICAgIHJldHVybiBbXQotCi0gICAgICAgIHNraXBwZWRfZGlyZWN0b3Jp
ZXMgPSBbZGlyZWN0b3JpZXNbZmVhdHVyZV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciBmZWF0dXJlIGluIGRpcmVjdG9yaWVzLmtleXMoKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgZmVhdHVyZSBub3QgaW4gZmVhdHVyZV9saXN0XQotICAgICAgICByZXR1cm4g
cmVkdWNlKG9wZXJhdG9yLmFkZCwgc2tpcHBlZF9kaXJlY3RvcmllcykKLQogICAgIGRlZiBfdGVz
dHNfZm9yX2Rpc2FibGVkX2ZlYXR1cmVzKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNo
b3VsZCB1c2UgdGhlIGZlYXR1cmUgZGV0ZWN0aW9uIGZyb20KICAgICAgICAgIyB3ZWJraXRwZXJs
L2ZlYXR1cmVzLnBtIHRvIG1hdGNoIHJ1bi13ZWJraXQtdGVzdHMuCkBAIC0zMDAsOCArMjM4LDcg
QEAgY2xhc3MgV2ViS2l0UG9ydChiYXNlLlBvcnQpOgogICAgICAgICAgICAgImh0dHAvdGVzdHMv
d2ViYXJjaGl2ZSIsCiAgICAgICAgICAgICAic3ZnL2N1c3RvbS9pbWFnZS13aXRoLXByZWZpeC1p
bi13ZWJhcmNoaXZlLnN2ZyIsCiAgICAgICAgIF0KLSAgICAgICAgdW5zdXBwb3J0ZWRfZmVhdHVy
ZV90ZXN0cyA9IHNlbGYuX3NraXBwZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKCkK
LSAgICAgICAgcmV0dXJuIGRpc2FibGVkX2ZlYXR1cmVfdGVzdHMgKyB3ZWJhcmNoaXZlX3Rlc3Rz
ICsgdW5zdXBwb3J0ZWRfZmVhdHVyZV90ZXN0cworICAgICAgICByZXR1cm4gZGlzYWJsZWRfZmVh
dHVyZV90ZXN0cyArIHdlYmFyY2hpdmVfdGVzdHMKIAogICAgIGRlZiBfdGVzdHNfZnJvbV9za2lw
cGVkX2ZpbGUoc2VsZiwgc2tpcHBlZF9maWxlKToKICAgICAgICAgdGVzdHNfdG9fc2tpcCA9IFtd
CkBAIC0zNjksOSArMzA2LDYgQEAgY2xhc3MgV2ViS2l0UG9ydChiYXNlLlBvcnQpOgogICAgIGRl
ZiBfcGF0aF90b19kcml2ZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRo
KCdEdW1wUmVuZGVyVHJlZScpCiAKLSAgICBkZWYgX3BhdGhfdG9fd2ViY29yZV9saWJyYXJ5KHNl
bGYpOgotICAgICAgICByZXR1cm4gTm9uZQotCiAgICAgZGVmIF9wYXRoX3RvX2hlbHBlcihzZWxm
KToKICAgICAgICAgcmV0dXJuIE5vbmUKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC93ZWJraXRfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0dGVzdC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY5YTkzMC4uMDAwMDAwMAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3dlYmtpdF91bml0
dGVzdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5
dGhvbgotIyBDb3B5cmlnaHQgKEMpIDIwMTAgR2Fib3IgUmFwY3NhbnlpIDxyZ2Fib3JAaW5mLnUt
c3plZ2VkLmh1PiwgVW5pdmVyc2l0eSBvZiBTemVnZWQKLSMKLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdF
RCBgYEFTIElTJycgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSMgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VEIE9S
Ci0jIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0jIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotIyBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0jIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IHVuaXR0ZXN0
Ci0KLWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQud2Via2l0IGltcG9ydCBXZWJLaXRQ
b3J0Ci0KLQotY2xhc3MgVGVzdFdlYktpdFBvcnQoV2ViS2l0UG9ydCk6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHN5bWJvbF9saXN0PU5vbmUsIGZlYXR1cmVfbGlzdD1Ob25lKToKLSAgICAgICAg
c2VsZi5zeW1ib2xfbGlzdCA9IHN5bWJvbF9saXN0Ci0gICAgICAgIHNlbGYuZmVhdHVyZV9saXN0
ID0gZmVhdHVyZV9saXN0Ci0KLSAgICBkZWYgX3J1bnRpbWVfZmVhdHVyZV9saXN0KHNlbGYpOgot
ICAgICAgICByZXR1cm4gc2VsZi5mZWF0dXJlX2xpc3QKLQotICAgIGRlZiBfc3VwcG9ydGVkX3N5
bWJvbF9saXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zeW1ib2xfbGlzdAotCi0KLWNs
YXNzIFdlYktpdFBvcnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0ZXN0X3Nr
aXBwZWRfZGlyZWN0b3JpZXNfZm9yX3N5bWJvbHMoc2VsZik6Ci0gICAgICAgIHN1cHBvcnRlZF9z
eW1ib2xzID0gWyJHcmFwaGljc0xheWVyIiwgIldlYkNvcmVIYXMzRFJlbmRlcmluZyIsICJpc1hI
VE1MTVBEb2N1bWVudCIsICJmb29TeW1ib2wiXQotICAgICAgICBleHBlY3RlZF9kaXJlY3Rvcmll
cyA9IHNldChbIm1hdGhtbCIsICJmYXN0L2NhbnZhcy93ZWJnbCIsICJodHRwL3Rlc3RzL3dtbCIs
ICJmYXN0L3dtbCIsICJ3bWwiLCAiZmFzdC93Y3NzIl0pCi0gICAgICAgIHJlc3VsdF9kaXJlY3Rv
cmllcyA9IHNldChUZXN0V2ViS2l0UG9ydChzdXBwb3J0ZWRfc3ltYm9scywgTm9uZSkuX3NraXBw
ZWRfdGVzdHNfZm9yX3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVzdWx0X2RpcmVjdG9yaWVzLCBleHBlY3RlZF9kaXJlY3RvcmllcykKLQotICAgIGRl
ZiB0ZXN0X3NraXBwZWRfZGlyZWN0b3JpZXNfZm9yX2ZlYXR1cmVzKHNlbGYpOgotICAgICAgICBz
dXBwb3J0ZWRfZmVhdHVyZXMgPSBbIkFjY2VsZXJhdGVkIENvbXBvc2l0aW5nIiwgIkZvbyBGZWF0
dXJlIl0KLSAgICAgICAgZXhwZWN0ZWRfZGlyZWN0b3JpZXMgPSBzZXQoWyJhbmltYXRpb25zLzNk
IiwgInRyYW5zZm9ybXMvM2QiXSkKLSAgICAgICAgcmVzdWx0X2RpcmVjdG9yaWVzID0gc2V0KFRl
c3RXZWJLaXRQb3J0KE5vbmUsIHN1cHBvcnRlZF9mZWF0dXJlcykuX3NraXBwZWRfdGVzdHNfZm9y
X3Vuc3VwcG9ydGVkX2ZlYXR1cmVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0
X2RpcmVjdG9yaWVzLCBleHBlY3RlZF9kaXJlY3RvcmllcykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66628</attachid>
            <date>2010-09-06 04:51:48 -0700</date>
            <delta_ts>2010-09-06 04:55:12 -0700</delta_ts>
            <desc>[PATCH] Rebase + fixed &quot;important&quot; detection</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>60922</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZDBiNzFiLi5hZmM3NGZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTA2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBza2lwcGluZyBhIGNyYXNoaW5nIG1lZGlhIHRlc3QuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zm
c2V0cy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Ut
b2Zmc2V0cy5jc3MKaW5kZXggZWY2OWVlNi4uNDUyMTBlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwpA
QCAtMSw3ICsxLDE0IEBACiBib2R5IHsKICAgICBmb250LXNpemU6IDEycHg7CisgICAgZm9vOiBi
YXIgIQorCisgICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6
ZWQgYnkgV2ViQ29yZSAqLzsKKyAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKKyAgICBjb2xv
cno6ICIhaW1wb3J0YW50IjsKKyAgICBpbXBvcnRhbnQ6IWltcG9ydGFudDsKKyAgICBjb2xvcjog
ImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1
ZSAqLzsKIH0KIAotLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29t
bWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1l
bnQgKi8KKy8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQg
YWZ0ZXIgc2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyog
bm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8K
IAotYm9keS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9Citib2R5Lm1haW4ye2JhY2tncm91bmQ6
IGdyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNl
bWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICovfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAppbmRleCBkZGE2N2Fk
Li4yZDI3OWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
LXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDIxIEBACi1UZXN0cyB0aGF0
IHByb3BlciBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBy
dWxlIGJvZGllcy4KK1Rlc3RzIHRoYXQgcHJvcGVyIGRhdGEgYW5kIHN0YXJ0L2VuZCBvZmZzZXQg
cG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJv
cGVydGllcy4KIAotYm9keTogWzUtMjhdCi1ib2R5Lm1haW4xOiBbOTgtMTI0XQotYm9keS5tYWlu
MjogWzE1MC0xNjldCi1ib2R5IHsmICAgIGZvbnQtc2l6ZTogMTJweDsmfSYmLyogY29tbWVudCBi
ZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3sv
KiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8mJmJvZHkubWFpbjJ7YmFja2dy
b3VuZDogZ3JlZW47fSYKK2JvZHk6IFs2LTI2Nl0KK1snZm9udC1zaXplJzonMTJweCddIEBbNS0y
MV0KK1snZm9vJzonYmFyJyAhaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjYtMTA0XQorWydoZWln
aHQnOicxMDAlJyAhaW1wb3J0YW50XSBAWzEwOS0xMzNdCitbJ2NvbG9yeic6JyIhaW1wb3J0YW50
Iicgbm9uLXBhcnNlZF0gQFsxMzgtMTU5XQorWydpbXBvcnRhbnQnOicnIG5vbi1wYXJzZWRdIEBb
MTY0LTE3NF0KK1snY29sb3InOiciYmFkY29sb3IiJyAhaW1wb3J0YW50XSBAWzE5MC0yNTldCiti
b2R5Lm1haW4xOiBbMzM3LTQxOF0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0KK1snem9v
JzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9u
LXBhcnNlZF0gQFsyOC04MV0KK2JvZHkubWFpbjI6IFs0NDUtNTQwXQorWydiYWNrZ3JvdW5kJzon
Z3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovJyAhaW1wb3J0YW50XSBAWzAtOTVd
Citib2R5Lm1haW5wYWdlOiBbMTctMTQ5XQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1
LTI3XQorWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEnIG5vbi1wYXJzZWRdIEBbMTA3LTEzMV0K
K2VsZW1lbnQuc3R5bGU6IFswLTMxXQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMC0yMF0K
K1snd2lkdGgnOic4MCUnXSBAWzIxLTMxXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXggMDUzMzYxMS4uNDJlYjYwMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbApAQCAt
MzUsNTUgKzM1LDQzIEBAIGZ1bmN0aW9uIGZyb250ZW5kX3J1blRlc3QodGVzdENvbnRyb2xsZXIp
CiAgICAgICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxiYWNrKHRlc3RDb250cm9sbGVyLCBzdHlsZXMp
CiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBtYXRjaGVkQ1NTUnVsZXMgPSBzdHlsZXMubWF0
Y2hlZENTU1J1bGVzOwotICAgICAgICAgICAgdmFyIHBhcmVudFN0eWxlU2hlZXRJZCA9IG1hdGNo
ZWRDU1NSdWxlc1swXS5zdHlsZS5wYXJlbnRTdHlsZVNoZWV0SWQ7Ci0gICAgICAgICAgICBpZiAo
IXBhcmVudFN0eWxlU2hlZXRJZCkgewotICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJl
c3VsdHMucHVzaCgiQkFEIFNUWUxFU0hFRVQgSUQ6ICIgKyBwYXJlbnRTdHlsZVNoZWV0SWQpOwot
ICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIu
cmVzdWx0cyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBtYXRjaGVkQ1NTUnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAg
ICB2YXIgcnVsZSA9IG1hdGNoZWRDU1NSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmdldFN0eWxlU291cmNlRGF0YShydWxlLnN0eWxlLmlkLCBmcm9udGVuZF9zdHls
ZURhdGFSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyLCBydWxlLCBmYWxzZSkpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFuZ2Vz
KHBhcmVudFN0eWxlU2hlZXRJZCwgZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkLmJpbmQobnVs
bCwgdGVzdENvbnRyb2xsZXIsIHBhcmVudFN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzKSk7
CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU291cmNlRGF0YShzdHlsZXMu
aW5saW5lU3R5bGUuaWQsIGZyb250ZW5kX3N0eWxlRGF0YVJlY2VpdmVkLmJpbmQobnVsbCwgdGVz
dENvbnRyb2xsZXIsIHN0eWxlcy5pbmxpbmVTdHlsZSwgdHJ1ZSkpOwogICAgICAgICB9CiAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1
bWVudC5ib2R5LmlkLCB0cnVlLCBzdHlsZXNDYWxsYmFjay5iaW5kKG51bGwsIHRlc3RDb250cm9s
bGVyKSk7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZl
ZCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsZXMsIHJ1bGVSYW5n
ZXMpCitmdW5jdGlvbiBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwg
cnVsZU9yU3R5bGUsIHNob3VsZEJhaWwsIGRhdGEpCiB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBtYXRjaGVkQ1NTUnVsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHJ1bGUgPSBtYXRj
aGVkQ1NTUnVsZXNbaV07Ci0gICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaChydWxl
LnNlbGVjdG9yVGV4dCArICI6IFsiICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFu
Z2Uuc3RhcnQgKyAiLSIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5nZS5lbmQg
KyAiXSIpOworICAgIHZhciBpc1J1bGUgPSAhIShydWxlT3JTdHlsZS5zdHlsZSk7CisgICAgdGVz
dENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKChpc1J1bGUgPyBydWxlT3JTdHlsZS5zZWxlY3RvclRl
eHQgOiAiZWxlbWVudC5zdHlsZSIpICsgIjogWyIgKyBkYXRhLmJvZHlSYW5nZS5zdGFydCArICIt
IiArIGRhdGEuYm9keVJhbmdlLmVuZCArICJdIik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBk
YXRhLnByb3BlcnR5RGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgcHJvcGVydHlEYXR1
bSA9IGRhdGEucHJvcGVydHlEYXRhW2ldOworICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRz
LnB1c2goIlsnIiArIHByb3BlcnR5RGF0dW0ubmFtZSArICInOiciICsgcHJvcGVydHlEYXR1bS52
YWx1ZSArICInIiArIChwcm9wZXJ0eURhdHVtLmltcG9ydGFudCA/ICIgIWltcG9ydGFudCIgOiAi
IikgKyAocHJvcGVydHlEYXR1bS5wYXJzZWQgPyAiIiA6ICIgbm9uLXBhcnNlZCIpICsiXSBAWyIg
KyBwcm9wZXJ0eURhdHVtLnN0YXJ0ICsgIi0iICsgcHJvcGVydHlEYXR1bS5lbmQgKyAiXSIpOwog
ICAgIH0KLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBm
cm9udGVuZF9oYW5kbGVTdHlsZVNoZWV0LmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLX0K
LQotZnVuY3Rpb24gZnJvbnRlbmRfaGFuZGxlU3R5bGVTaGVldCh0ZXN0Q29udHJvbGxlciwgc3R5
bGVTaGVldCkKLXsKLSAgICB2YXIgdXJsID0gc3R5bGVTaGVldC5ocmVmOwotICAgIGlmICh1cmwg
IT09ICIiKSB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVS
TE1hcFt1cmxdOwotICAgICAgICBpZiAoIXJlc291cmNlKSB7Ci0gICAgICAgICAgICB0ZXN0Q29u
dHJvbGxlci5yZXN1bHRzLnB1c2goIk5PIFJFU09VUkNFIEZPUiBVUkw6ICIgKyB1cmwpOwotICAg
ICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRz
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3Iu
Z2V0UmVzb3VyY2VDb250ZW50KHJlc291cmNlLmlkZW50aWZpZXIsIGZyb250ZW5kX3N0eWxlU2hl
ZXRUZXh0UmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiRU1QVFkgU1RZTEVTSEVFVCBI
UkVGIik7CisgICAgaWYgKHNob3VsZEJhaWwpCiAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7Ci0gICAgfQogfQogCi1mdW5jdGlvbiBmcm9u
dGVuZF9zdHlsZVNoZWV0VGV4dFJlY2VpdmVkKHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0VGV4
dCkKLXsKLSAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goc3R5bGVTaGVldFRleHQucmVw
bGFjZSgvXG4vZywgIiYiKSk7Ci0gICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29u
dHJvbGxlci5yZXN1bHRzKTsKLX0KIDwvc2NyaXB0PgorCis8c3R5bGU+CisKK2JvZHkubWFpbnBh
Z2UgeworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogYXQgbGVhc3Qgb25lIHZhbGlkIHBy
b3BlcnR5IGlzIG5lY2Vzc2FyeSBmb3IgV2ViQ29yZSB0byBtYXRjaCBhIHJ1bGUgKi8KKyAgICBi
YWRwcm9wZXJ0eTogMWJhZHZhbHVlMTsKK30KKworPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkg
Y2xhc3M9Im1haW4xIG1haW4yIiBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxib2R5IGNsYXNzPSJtYWlu
MSBtYWluMiBtYWlucGFnZSIgb25sb2FkPSJvbmxvYWQoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBu
b3JtYWw7IHdpZHRoOiA4MCUiPgogPHA+Ci1UZXN0cyB0aGF0IHByb3BlciBzdGFydC9lbmQgb2Zm
c2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBydWxlIGJvZGllcy4KK1Rlc3RzIHRo
YXQgcHJvcGVyIGRhdGEgYW5kIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRl
ZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIDwvcD4KIAogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxMWFiZmZmLi4yNGIzMDg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEwLTA5LTAzICBBbGV4YW5k
ZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBzb3VyY2UtYmFzZWQgcHJvcGVydGll
cyBmb3Igc3R5bGUgZGVjbGFyYXRpb25zIHRvIENTU1BhcnNlciBjbGllbnRzCisKKyAgICAgICAg
VGhpcyBjaGFuZ2U6CisgICAgICAgIC0gRW5hYmxlcyBJbnNwZWN0b3JDU1NTdG9yZSB0byBleHRy
YWN0IENTUyBzdHlsZXNoZWV0IHRleHQgZm9yIGFsbCBzb3VyY2UtYmFzZWQgc3R5bGVzaGVldHMs
CisgICAgICAgICAgZXZlbiB3aXRoIHRoZSByZXNvdXJjZSB0cmFja2luZyB0dXJuZWQgb2ZmLgor
ICAgICAgICAtIEFkZHMgdG8gQ1NTUGFyc2VyIGEgY2FwYWJpbGl0eSBvZiBzb3VyY2UtcmVsYXRl
ZCBzdHlsZSBkZWNsYXJhdGlvbiBkYXRhIGV4dHJhY3Rpb246CisgICAgICAgICAgKiBTdGFydC9l
bmQgc291cmNlIG9mZnNldHMgZm9yIGEgZGVjbGFyYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBwYXJl
bnQgc3R5bGVzaGVldCBzdGFydCBvciB0aGUgInN0eWxlIiBhdHRyaWJ1dGUgdmFsdWUuCisgICAg
ICAgICAgKiBTdGFydC9lbmQgc291cmNlIG9mZnNldHMgZm9yIENTUyBwcm9wZXJ0aWVzLCByZWxh
dGl2ZSB0byB0aGUgZGVjbGFyYXRpb24gc3RhcnQuCisgICAgICAgICAgKiBDU1MgcHJvcGVydHkg
ZGF0YTogbmFtZSwgdmFsdWUsIHByaW9yaXR5LCBXZWJDb3JlIHBhcnNhYmlsaXR5IChpLmUuIGlm
IHRoZSBwcm9wZXJ0eSBpcyB1bmRlcnN0b29kIGJ5IFdlYkNvcmUpLgorICAgICAgICAtIFByb3Zp
ZGVzIHRoZSBleHRyYWN0ZWQgZGF0YSB0byB0aGUgV2ViSW5zcGVjdG9yIGZyb250ZW5kIHZpYSBJ
bnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5bGVTb3VyY2VEYXRhKCkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDk0OQorCisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246Om5vZGUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VE
ZWNsYXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUnVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bWFya1Byb3BlcnR5U3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpmaW5kSW1wb3J0YW50SW5WYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eUVuZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyZXNldFByb3BlcnR5TWFya3MpOgor
ICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eURhdHVtOjp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURh
dHVtOjppbml0KToKKyAgICAgICAgKFdURjo6OjplbXB0eVZhbHVlKToKKyAgICAgICAgKiBjc3Mv
Q1NTUHJvcGVydHlEYXR1bS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW06On5DU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW06Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6
b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaDo6aGFzaCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaDo6ZXF1YWwpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6cmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OnN0eWxlU2hlZXRUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3Vy
Y2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFu
Z2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJp
YnV0ZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFy
ZW50U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5s
aW5lU3R5bGVFbGVtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisKIDIwMTAtMDktMDYgIEFudG9u
IE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCAzMzIxY2JiLi5lZDQ0ZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtOTk3LDYgKzk5Nyw4IEBACiAg
ICAgICAgICAgICAnY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCcsCiAgICAgICAgICAg
ICAnY3NzL0NTU1Byb3BlcnR5LmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5Lmgn
LAorICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcCcsCisgICAgICAgICAgICAn
Y3NzL0NTU1Byb3BlcnR5RGF0dW0uaCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5TG9u
Z2hhbmQuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5oJywKICAg
ICAgICAgICAgICdjc3MvQ1NTUXVpcmtQcmltaXRpdmVWYWx1ZS5oJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDNmMjNjZGQuLmM1
YmJlMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtNDMyLDYgKzQzMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NQYXJz
ZXJWYWx1ZXMuY3BwIFwKICAgICBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwKICAgICBjc3Mv
Q1NTUHJvcGVydHkuY3BwIFwKKyAgICBjc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAgXAogICAgIGNz
cy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCBcCiAgICAgY3NzL0NTU1JlZmxlY3RWYWx1ZS5jcHAg
XAogICAgIGNzcy9DU1NSdWxlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCBmM2U0OWY1Li41ZDY4M2YwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTI5MzU3LDYgKzI5MzU3LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9wZXJ0eURhdHVtLmNwcCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xD
U1NQcm9wZXJ0eURhdHVtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlMb25naGFuZC5jcHAiDQogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBjOGI4OGVjLi44ODM5MDQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTQ1Niw2ICsxNDU2LDggQEAKIAkJODFCRTIwRDMxMUY0QkMzMjAwOTE1REZB
IC8qIEpTSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLzsgfTsK
IAkJODJCNjU4OTgxMTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkI2NTg5NzExODlFMzky
MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyogSW5z
cGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNw
cCAqLzsgfTsKKwkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4
REMxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwICovOyB9OworCQk4MkUz
RDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJD
IC8qIENTU1Byb3BlcnR5RGF0dW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OwogCQk4
NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE1MTIw
RDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovOyB9OwogCQk4
NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CkBAIC03Mzg0
LDYgKzczODYsOCBAQAogCQk4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJDdXJzb3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJCNjU4OTcxMTg5RTM5MjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckNTU1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQjY1ODk5MTE4OUU0
NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVt
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5RGF0
dW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MkUzRDhERDEyMkVBMEQxMDAz
QUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDU1NQcm9wZXJ0eURhdHVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0
MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjk1OCw2ICsxNjk2Miw4IEBACiAJ
CQkJRTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aCAqLywKIAkJCQlBODBFNkNDRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuY3BwICov
LAogCQkJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5oICovLAorCQkJ
CTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLywKKwkJ
CQk4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovLAogCQkJ
CTBGNkVDRDQ0MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCAqLywK
IAkJCQkwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5oICov
LAogCQkJCUJDRUE0Nzg5MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluICov
LApAQCAtMjA0MzIsNiArMjA0MzgsNyBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNBQUJEQSAv
KiBKU01ldGFkYXRhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUYxMTIyRTFF
ODcwMDNBQUJEQSAvKiBKU0ZpbGVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4
NUY1MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yMjg5NSw2ICsyMjkwMiw3IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJBNzAw
M0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3
ODVGMDEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg5ODc4NUY0MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0
eURhdHVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3Jh
bW1hci55IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IGVjNTA3YmUuLjRjNGRlYzUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkKQEAgLTMxNCw3ICszMTQsNyBAQCB3ZWJraXRfa2V5ZnJhbWVfcnVsZToKIDsK
IAogd2Via2l0X2RlY2xzOgotICAgIFdFQktJVF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlIGRl
Y2xhcmF0aW9uX2xpc3QgJ30nIHsKKyAgICBXRUJLSVRfREVDTFNfU1lNICd7JyBtYXliZV9zcGFj
ZV9iZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCAnfScgewogICAgICAgICAvKiBj
YW4gYmUgZW1wdHkgKi8KICAgICB9CiA7CkBAIC05MDMsOCArOTAzLDE1IEBAIHVuYXJ5X29wZXJh
dG9yOgogICB8ICcrJyB7ICQkID0gMTsgfQogICA7CiAKK21heWJlX3NwYWNlX2JlZm9yZV9kZWNs
YXJhdGlvbjoKKyAgICBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRp
Y19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0
KCk7CisgICAgfQorICA7CisKIHJ1bGVzZXQ6Ci0gICAgc2VsZWN0b3JfbGlzdCAneycgbWF5YmVf
c3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICBzZWxlY3Rvcl9saXN0
ICd7JyBtYXliZV9zcGFjZV9iZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCBjbG9z
aW5nX2JyYWNlIHsKICAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2Vy
Kj4ocGFyc2VyKTsKICAgICAgICAgJCQgPSBwLT5jcmVhdGVTdHlsZVJ1bGUoJDEpOwogICAgIH0K
QEAgLTEzNTUsNiArMTM2Miw4IEBAIGRlY2xhcmF0aW9uX2xpc3Q6CiAKIGRlY2xfbGlzdDoKICAg
ICBkZWNsYXJhdGlvbiAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBz
dGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlT
dGFydCgpOwogICAgICAgICAkJCA9ICQxOwogICAgIH0KICAgICB8IGRlY2xhcmF0aW9uIGludmFs
aWRfYmxvY2tfbGlzdCBtYXliZV9zcGFjZSB7CkBAIC0xMzY0LDEyICsxMzczLDE2IEBAIGRlY2xf
bGlzdDoKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfCBlcnJvciAnOycgbWF5YmVf
c3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihw
YXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgpOwogICAgICAgICAkJCA9IGZh
bHNlOwogICAgIH0KICAgICB8IGVycm9yIGludmFsaWRfYmxvY2tfbGlzdCBlcnJvciAnOycgbWF5
YmVfc3BhY2UgewogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8IGRlY2xfbGlzdCBk
ZWNsYXJhdGlvbiAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0
aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFy
dCgpOwogICAgICAgICAkJCA9ICQxOwogICAgICAgICBpZiAoJDIpCiAgICAgICAgICAgICAkJCA9
ICQyOwpAQCAtMTM4NiwxNSArMTM5OSwyMSBAQCBkZWNsYXJhdGlvbjoKICAgICBwcm9wZXJ0eSAn
OicgbWF5YmVfc3BhY2UgZXhwciBwcmlvIHsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICAgICAg
Q1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAg
Ym9vbCBpc1Byb3BlcnR5UGFyc2VkID0gZmFsc2U7CiAgICAgICAgIGlmICgkMSAmJiAkNCkgewog
ICAgICAgICAgICAgcC0+bV92YWx1ZUxpc3QgPSBwLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDQp
OwogICAgICAgICAgICAgaW50IG9sZFBhcnNlZFByb3BlcnRpZXMgPSBwLT5tX251bVBhcnNlZFBy
b3BlcnRpZXM7CiAgICAgICAgICAgICAkJCA9IHAtPnBhcnNlVmFsdWUoJDEsICQ1KTsKLSAgICAg
ICAgICAgIGlmICghJCQpCisgICAgICAgICAgICBpZiAoISQkKSB7CisgICAgICAgICAgICAgICAg
aWYgKHN0YXRpY19jYXN0PGludD4ocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzKSA9PSBvbGRQYXJz
ZWRQcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICBpc1Byb3BlcnR5UGFyc2VkID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBwLT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHAtPm1fbnVtUGFy
c2VkUHJvcGVydGllcyAtIG9sZFBhcnNlZFByb3BlcnRpZXMpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgaXNQcm9wZXJ0eVBhcnNlZCA9IHRydWU7CiAgICAgICAgICAgICBk
ZWxldGUgcC0+bV92YWx1ZUxpc3Q7CiAgICAgICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IDA7CiAg
ICAgICAgIH0KKyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKCQ1LCBpc1Byb3BlcnR5UGFyc2Vk
KTsKICAgICB9CiAgICAgfAogICAgIHZhcmlhYmxlX3JlZmVyZW5jZSBtYXliZV9zcGFjZSB7CkBA
IC0xNDE3LDExICsxNDM2LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgICAgICAvKiBUaGUgZGVmYXVs
dCBtb3ZhYmxlIHR5cGUgdGVtcGxhdGUgaGFzIGxldHRlci1zcGFjaW5nOiAubm9uZTsgIEhhbmRs
ZSB0aGlzIGJ5IGxvb2tpbmcgZm9yCiAgICAgICAgIGVycm9yIHRva2VucyBhdCB0aGUgc3RhcnQg
b2YgYW4gZXhwciwgcmVjb3ZlciB0aGUgZXhwciBhbmQgdGhlbiB0cmVhdCBhcyBhbiBlcnJvciwg
Y2xlYW5pbmcKICAgICAgICAgdXAgYW5kIGRlbGV0aW5nIHRoZSBzaGlmdGVkIGV4cHIuICAqLwor
ICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwor
ICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgJCQgPSBm
YWxzZTsKICAgICB9CiAgICAgfAogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHBy
aW8gZXJyb3IgewogICAgICAgICAvKiBXaGVuIHdlIGVuY291bnRlciBzb21ldGhpbmcgbGlrZSBw
IHtjb2xvcjogcmVkICFpbXBvcnRhbnQgZmFpbDt9IHdlIHNob3VsZCBkcm9wIHRoZSBkZWNsYXJh
dGlvbiAqLworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihw
YXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAg
ICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfApAQCAtMTQzMiwxMSArMTQ1NSwxNSBAQCBkZWNs
YXJhdGlvbjoKICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIHsKICAgICAgICAg
LyogZGl2IHsgZm9udC1mYW1pbHk6IH0gSnVzdCByZWR1Y2UgYXdheSB0aGlzIHByb3BlcnR5IHdp
dGggbm8gdmFsdWUuICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1Bh
cnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2Up
OwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1h
eWJlX3NwYWNlIGVycm9yIHsKICAgICAgICAgLyogaWYgd2UgY29tZSBhY3Jvc3MgcnVsZXMgd2l0
aCBpbnZhbGlkIHZhbHVlcyBsaWtlIHRoaXMgY2FzZTogcCB7IHdlaWdodDogKjsgfSwganVzdCBk
aXNjYXJkIHRoZSBydWxlICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFs
c2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIGIvV2ViQ29yZS9jc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uaAppbmRleCBmNzc1OWY0Li40MDZmZDkxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTgzLDYgKzgzLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXROb2RlKE5vZGUqIG5vZGUpIHsgbV9ub2RlID0gbm9kZTsgfQogCisg
ICAgTm9kZSogbm9kZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQorCiAgICAgdmlydHVhbCBib29sIGlz
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2ODcyMzVmLi43
NWFhMzBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE0Nyw3ICsxNDcsMTAgQEAgQ1NTUGFyc2VyOjpDU1NQ
YXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nKQogICAgICwgbV9kZWZhdWx0TmFtZXNwYWNlKHN0YXJB
dG9tKQogICAgICwgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KDApCiAgICAgLCBtX3J1bGVCb2R5RW5k
T2Zmc2V0KDApCi0gICAgLCBtX3J1bGVSYW5nZXMoMCkKKyAgICAsIG1fcHJvcGVydHlTdGFydE9m
ZnNldChVSU5UX01BWCkKKyAgICAsIG1fcHJvcGVydHlFbmRPZmZzZXQoVUlOVF9NQVgpCisgICAg
LCBtX3J1bGVSYW5nZU1hcCgwKQorICAgICwgbV9jdXJyZW50U3R5bGVEYXRhKDApCiAgICAgLCBt
X2RhdGEoMCkKICAgICAsIHl5X3N0YXJ0KDEpCiAgICAgLCBtX2xpbmVOdW1iZXIoMCkKQEAgLTE1
OSw2ICsxNjIsNyBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAj
aWYgWVlERUJVRyA+IDAKICAgICBjc3N5eWRlYnVnID0gMTsKICNlbmRpZgorICAgIENTU1Byb3Bl
cnR5RGF0dW06OmluaXQoKTsKIH0KIAogQ1NTUGFyc2VyOjp+Q1NTUGFyc2VyKCkKQEAgLTIyMywx
NiArMjI3LDE5IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBjaGFyKiBwcmVm
aXgsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBjaGFyCiAgICAgcmVzZXRSdWxlQm9keU1h
cmtzKCk7CiB9CiAKLXZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNo
ZWV0LCBjb25zdCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxl
UmFuZ2VzKiBydWxlUmFuZ2VNYXApCit2b2lkIENTU1BhcnNlcjo6cGFyc2VTaGVldChDU1NTdHls
ZVNoZWV0KiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIs
IFN0eWxlUnVsZVJhbmdlTWFwKiBydWxlUmFuZ2VNYXApCiB7CiAgICAgbV9zdHlsZVNoZWV0ID0g
c2hlZXQ7CiAgICAgbV9kZWZhdWx0TmFtZXNwYWNlID0gc3RhckF0b207IC8vIFJlc2V0IHRoZSBk
ZWZhdWx0IG5hbWVzcGFjZS4KLSAgICBtX3J1bGVSYW5nZXMgPSBydWxlUmFuZ2VNYXA7CisgICAg
bV9ydWxlUmFuZ2VNYXAgPSBydWxlUmFuZ2VNYXA7CisgICAgaWYgKHJ1bGVSYW5nZU1hcCkKKyAg
ICAgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVhdGUoKTsK
IAogICAgIG1fbGluZU51bWJlciA9IHN0YXJ0TGluZU51bWJlcjsKICAgICBzZXR1cFBhcnNlcigi
Iiwgc3RyaW5nLCAiIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKLSAgICBtX3J1bGVSYW5nZXMg
PSAwOworICAgIG1fcnVsZVJhbmdlTWFwID0gMDsKKyAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAw
OwogICAgIG1fcnVsZSA9IDA7CiB9CiAKQEAgLTMyOSwxMCArMzM2LDE0IEBAIHZvaWQgQ1NTUGFy
c2VyOjpwYXJzZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBEb2N1bWVudCogZG9jLCBD
U1NTZWxlY3RvckxpCiAgICAgbV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNlbGVjdG9yID0gMDsKIH0K
IAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK2Jvb2wgQ1NTUGFyc2Vy
OjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlv
biwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIENTU1N0eWxlU291cmNlRGF0YSogc3R5bGVTb3VyY2VE
YXRhKQogeworICAgIC8vIExlbmd0aCBvZiB0aGUgIkAtd2Via2l0LWRlY2xzeyIgcHJlZml4Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHByZWZpeExlbmd0aCA9IDE1OworCiAgICAgQVNTRVJU
KCFkZWNsYXJhdGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkt
PmlzQ1NTU3R5bGVTaGVldCgpKTsKICAgICBtX3N0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NT
dHlsZVNoZWV0Kj4oZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKSk7CisgICAgbV9jdXJyZW50U3R5
bGVEYXRhID0gc3R5bGVTb3VyY2VEYXRhOwogCiAgICAgc2V0dXBQYXJzZXIoIkAtd2Via2l0LWRl
Y2xzeyIsIHN0cmluZywgIn0gIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKQEAgLTM0Nyw2ICsz
NTgsMTcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdAogICAgICAgICBjbGVhclByb3BlcnRpZXMo
KTsKICAgICB9CiAKKyAgICBpZiAobV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIG1fY3Vy
cmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2UuZmlyc3QgPSAwOworICAgICAgICBtX2N1cnJl
bnRTdHlsZURhdGEtPnN0eWxlQm9keVJhbmdlLnNlY29uZCA9IHN0cmluZy5sZW5ndGgoKTsKKyAg
ICAgICAgZm9yIChWZWN0b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdl
PiA+OjppdGVyYXRvciBpdCA9IG1fY3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmJlZ2lu
KCk7IGl0ICE9IG1fY3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmVuZCgpOyArK2l0KSB7
CisgICAgICAgICAgICAoKml0KS5zZWNvbmQuZmlyc3QgLT0gcHJlZml4TGVuZ3RoOworICAgICAg
ICAgICAgKCppdCkuc2Vjb25kLnNlY29uZCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoIW1fcnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURh
dGEgPSAwOwogICAgIHJldHVybiBvazsKIH0KIApAQCAtNTM4NCw4ICs1NDA2LDEyIEBAIENTU1J1
bGUqIENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxl
Y3RvcnMpCiAgICAgICAgIHJ1bGUtPnNldERlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uOjpjcmVhdGUocnVsZS5nZXQoKSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCBtX251bVBhcnNl
ZFByb3BlcnRpZXMpKTsKICAgICAgICAgcmVzdWx0ID0gcnVsZS5nZXQoKTsKICAgICAgICAgbV9w
YXJzZWRTdHlsZU9iamVjdHMuYXBwZW5kKHJ1bGUucmVsZWFzZSgpKTsKLSAgICAgICAgaWYgKG1f
cnVsZVJhbmdlcykKLSAgICAgICAgICAgIG1fcnVsZVJhbmdlcy0+c2V0KHJlc3VsdCwgc3RkOjpw
YWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4obV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5
RW5kT2Zmc2V0KSk7CisgICAgICAgIGlmIChtX3J1bGVSYW5nZU1hcCkgeworICAgICAgICAgICAg
QVNTRVJUKG1fY3VycmVudFN0eWxlRGF0YSk7CisgICAgICAgICAgICBtX2N1cnJlbnRTdHlsZURh
dGEtPnN0eWxlQm9keVJhbmdlID0gU291cmNlUmFuZ2UobV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBt
X3J1bGVCb2R5RW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIG1fcnVsZVJhbmdlTWFwLT5zZXQocmVz
dWx0LCBtX2N1cnJlbnRTdHlsZURhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIG1fY3VycmVu
dFN0eWxlRGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIH0KICAg
ICB9CiAgICAgcmVzZXRSdWxlQm9keU1hcmtzKCk7CiAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CkBA
IC01NjM4LDcgKzU2NjQsOSBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlTGFzdFNlbGVjdG9yTGlu
ZUFuZFBvc2l0aW9uKCkKIHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAg
ICAgdW5zaWduZWQgb2Zmc2V0ID0geXl0ZXh0IC0gbV9kYXRhOwotICAgIGlmICghbV9ydWxlQm9k
eVN0YXJ0T2Zmc2V0IHx8IG9mZnNldCA8IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKKyAgICBpZiAo
Knl5dGV4dCA9PSAneycpCisgICAgICAgICsrb2Zmc2V0OyAvLyBza2lwIHRoZSBydWxlIGJvZHkg
b3BlbmluZyBicmFjZQorICAgIGlmIChvZmZzZXQgPiBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpCiAg
ICAgICAgIG1fcnVsZUJvZHlTdGFydE9mZnNldCA9IG9mZnNldDsKIH0KIApAQCAtNTY0OSw2ICs1
Njc3LDE0MyBAQCB2b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5RW5kKCkKICAgICAgICAgbV9y
dWxlQm9keUVuZE9mZnNldCA9IG9mZnNldDsKIH0KIAordm9pZCBDU1NQYXJzZXI6Om1hcmtQcm9w
ZXJ0eVN0YXJ0KCkKK3sKKyAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBtX2RhdGE7Cisg
ICAgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0ID0gb2Zmc2V0OworfQorCisvLyBzdGF0aWMKK3Vuc2ln
bmVkIENTU1BhcnNlcjo6ZmluZEltcG9ydGFudEluVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW1wb3J0YW50U3RyaW5nID0gImltcG9ydGFudCI7
CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGltcG9ydGFudExlbmd0aCA9IDk7CisgICAgZW51
bSBTdGF0ZSB7CisgICAgICAgIElOSVRJQUxfU1RBVEUsCisgICAgICAgIFNUUklOR19TVEFURSwK
KyAgICAgICAgQ09NTUVOVF9TVEFURSwKKyAgICAgICAgQkFOR19TVEFURQorICAgIH07CisKKyAg
ICB1bnNpZ25lZCB2YWx1ZUxlbmd0aCA9IHZhbHVlLmxlbmd0aCgpOworICAgIGlmICh2YWx1ZUxl
bmd0aCA8IGltcG9ydGFudExlbmd0aCArIDEpCisgICAgICAgIHJldHVybiBVSU5UX01BWDsKKyAg
ICB1bnNpZ25lZCBtYXhUb2tlblN0YXJ0SW5kZXggPSB2YWx1ZUxlbmd0aCAtIGltcG9ydGFudExl
bmd0aDsKKyAgICB1bnNpZ25lZCBjdXJyZW50SW5kZXggPSAwOworICAgIHVuc2lnbmVkIGJhbmdJ
bmRleCA9IFVJTlRfTUFYOworICAgIFN0YXRlIHN0YXRlID0gSU5JVElBTF9TVEFURTsKKyAgICBV
Q2hhciBzdHJpbmdUZXJtaW5hdG9yID0gc3RhdGljX2Nhc3Q8VUNoYXI+KDApOworICAgIGNvbnN0
IFVDaGFyKiBjaGFyYWN0ZXJzID0gdmFsdWUuY2hhcmFjdGVycygpOworICAgIHdoaWxlIChjdXJy
ZW50SW5kZXggPD0gbWF4VG9rZW5TdGFydEluZGV4KSB7CisgICAgICAgIFVDaGFyIGNoID0gY2hh
cmFjdGVyc1tjdXJyZW50SW5kZXhdOworICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAg
IGNhc2UgSU5JVElBTF9TVEFURToKKyAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAg
ICAgIGNhc2UgJy8nOgorICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCB2YWx1ZUxl
bmd0aCAtIDEgJiYgY2hhcmFjdGVyc1tjdXJyZW50SW5kZXggKyAxXSA9PSAnKicpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgICAgICAgICAgICAgICAg
ICArK2N1cnJlbnRJbmRleDsgLy8gc2tpcCB0aGUgZm9sbG93aW5nICcqJworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyEnOgorICAg
ICAgICAgICAgICAgIHN0YXRlID0gQkFOR19TVEFURTsKKyAgICAgICAgICAgICAgICBiYW5nSW5k
ZXggPSBjdXJyZW50SW5kZXg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICciJzoKKyAgICAgICAgICAgIGNhc2UgJ1wnJzoKKyAgICAgICAgICAgICAgICBzdGF0ZSA9
IFNUUklOR19TVEFURTsKKyAgICAgICAgICAgICAgICBzdHJpbmdUZXJtaW5hdG9yID0gY2g7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgU1RSSU5HX1NUQVRFOgorICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAg
Y2FzZSAnXFwnOgorICAgICAgICAgICAgICAgICsrY3VycmVudEluZGV4OyAvLyBza2lwIHRoZSBl
c2NhcGVkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAnIic6CisgICAgICAgICAgICBjYXNlICdcJyc6CisgICAgICAgICAgICAgICAgaWYgKGNoID09
IHN0cmluZ1Rlcm1pbmF0b3IpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElBTF9T
VEFURTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENPTU1FTlRfU1RBVEU6CisgICAgICAgICAgICBpZiAoY2gg
PT0gJyonICYmIGN1cnJlbnRJbmRleCA8IHZhbHVlTGVuZ3RoIC0gMSAmJiBjaGFyYWN0ZXJzW2N1
cnJlbnRJbmRleCArIDFdID09ICcvJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElB
TF9TVEFURTsKKyAgICAgICAgICAgICAgICArK2N1cnJlbnRJbmRleDsgLy8gc2tpcCB0aGUgZm9s
bG93aW5nICcvJworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQkFOR19TVEFURToKKyAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAgIGNh
c2UgJyAnOgorICAgICAgICAgICAgY2FzZSAnXHQnOgorICAgICAgICAgICAgY2FzZSAnXHInOgor
ICAgICAgICAgICAgY2FzZSAnXG4nOgorICAgICAgICAgICAgY2FzZSAnXGYnOgorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGltcG9ydGFudEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGVj
a0luZGV4ID0gY3VycmVudEluZGV4OworICAgICAgICAgICAgICAgIHdoaWxlIChpbXBvcnRhbnRJ
bmRleCA8IGltcG9ydGFudExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcmFj
dGVyc1tjaGVja0luZGV4KytdICE9IGltcG9ydGFudFN0cmluZ1tpbXBvcnRhbnRJbmRleCsrXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBJTklUSUFMX1NUQVRFOworICAgICAg
ICAgICAgICAgICAgICAgICAgLS1jdXJyZW50SW5kZXg7IC8vIHJlLWNoZWNrIHRoZSBzYW1lIHBv
c2l0aW9uIGluIHRoZSBJTklUSUFMIHN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFu
Z0luZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICArK2N1
cnJlbnRJbmRleDsKKyAgICB9CisgICAgcmV0dXJuIFVJTlRfTUFYOworfQorCit2b2lkIENTU1Bh
cnNlcjo6bWFya1Byb3BlcnR5RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3Bl
cnR5UGFyc2VkKQoreworICAgIHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAg
ICBpZiAoKnl5dGV4dCA9PSAnOycpIC8vIGluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3Bl
cnR5IHRleHQKKyAgICAgICAgKytvZmZzZXQ7CisgICAgbV9wcm9wZXJ0eUVuZE9mZnNldCA9IG9m
ZnNldDsKKyAgICBpZiAobV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0ICE9IFVJTlRfTUFYICYmIG1fY3Vy
cmVudFN0eWxlRGF0YSkgeworICAgICAgICAvLyBUaGlzIHN0dWZmIGlzIG9ubHkgZXhlY3V0ZWQg
d2hlbiB0aGUgc3R5bGUgZGF0YSByZXRyaWV2YWwgaXMgcmVxdWVzdGVkIGJ5IGNsaWVudC4KKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc3RhcnQgPSBtX3Byb3BlcnR5U3RhcnRPZmZzZXQ7CisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGVuZCA9IG1fcHJvcGVydHlFbmRPZmZzZXQ7CisgICAgICAgIEFT
U0VSVChzdGFydCA8IGVuZCk7CisgICAgICAgIFN0cmluZyBwcm9wZXJ0eVN0cmluZyA9IFN0cmlu
ZyhtX2RhdGEgKyBzdGFydCwgZW5kIC0gc3RhcnQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAg
ICBpZiAocHJvcGVydHlTdHJpbmcuZW5kc1dpdGgoIjsiLCB0cnVlKSkKKyAgICAgICAgICAgIHBy
b3BlcnR5U3RyaW5nID0gcHJvcGVydHlTdHJpbmcubGVmdChwcm9wZXJ0eVN0cmluZy5sZW5ndGgo
KSAtIDEpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBwcm9wZXJ0eUNvbXBvbmVudHM7CisgICAg
ICAgIHNpemVfdCBjb2xvbkluZGV4ID0gcHJvcGVydHlTdHJpbmcuZmluZCgiOiIpOworICAgICAg
ICBBU1NFUlQoY29sb25JbmRleCAhPSBub3RGb3VuZCk7CisKKyAgICAgICAgU3RyaW5nIG5hbWUg
PSBwcm9wZXJ0eVN0cmluZy5sZWZ0KGNvbG9uSW5kZXgpLnN0cmlwV2hpdGVTcGFjZSgpOworICAg
ICAgICBTdHJpbmcgdmFsdWUgPSBwcm9wZXJ0eVN0cmluZy5zdWJzdHJpbmcoY29sb25JbmRleCAr
IDEsIHByb3BlcnR5U3RyaW5nLmxlbmd0aCgpKS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAg
Ym9vbCBpc0ltcG9ydGFudCA9IGlzSW1wb3J0YW50Rm91bmQ7CisgICAgICAgIGlmIChpc0ltcG9y
dGFudCB8fCAhaXNQcm9wZXJ0eVBhcnNlZCkgeworICAgICAgICAgICAgLy8gTmVlZCB0byBzdHJp
cCAiIXt3fWltcG9ydGFudCIgKHdpdGggdGhlIGZvbGxvd2luZyB0ZXh0KSBpZiB0aGVyZSdzIGEg
Y2hhbmNlIHRoYXQgaXQgaXMgcHJlc2VudCBpbiB0aGUgdmFsdWUuCisgICAgICAgICAgICB1bnNp
Z25lZCBpbXBvcnRhbnRPZmZzZXQgPSBmaW5kSW1wb3J0YW50SW5WYWx1ZSh2YWx1ZSk7CisgICAg
ICAgICAgICBBU1NFUlQgKCFpc0ltcG9ydGFudEZvdW5kIHx8IGltcG9ydGFudE9mZnNldCAhPSBV
SU5UX01BWCk7CisgICAgICAgICAgICBpZiAoaW1wb3J0YW50T2Zmc2V0ICE9IFVJTlRfTUFYKSB7
CisgICAgICAgICAgICAgICAgaXNJbXBvcnRhbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIHZh
bHVlID0gdmFsdWUubGVmdChpbXBvcnRhbnRPZmZzZXQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSByYW5nZSBpcyBy
ZWxhdGl2ZSB0byB0aGUgZGVjbGFyYXRpb24gc3RhcnQgb2Zmc2V0LgorICAgICAgICBtX2N1cnJl
bnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5hcHBlbmQoCisgICAgICAgICAgICBzdGQ6OnBhaXI8
Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+KENTU1Byb3BlcnR5RGF0dW0obmFtZSwgdmFs
dWUsIGlzSW1wb3J0YW50LCBpc1Byb3BlcnR5UGFyc2VkKSwgU291cmNlUmFuZ2UobV9wcm9wZXJ0
eVN0YXJ0T2Zmc2V0IC0gbV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3Byb3BlcnR5RW5kT2Zmc2V0
IC0gbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KSkpOworICAgIH0KKyAgICByZXNldFByb3BlcnR5TWFy
a3MoKTsKK30KKwogc3RhdGljIGludCBjc3NQcm9wZXJ0eUlEKGNvbnN0IFVDaGFyKiBwcm9wZXJ0
eU5hbWUsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXgg
NjIxMWU2Mi4uMzU3YTljZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysr
IGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUg
IkNvbG9yLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyVmFsdWVzLmgiCisjaW5jbHVkZSAiQ1NTUHJv
cGVydHlEYXR1bS5oIgogI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIk1l
ZGlhUXVlcnkuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTUsMTggKzU2LDE2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENTU1BhcnNlciB7CiAgICAgcHVibGlj
OgotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2ln
bmVkLCB1bnNpZ25lZD4gPiBTdHlsZVJ1bGVSYW5nZXM7Ci0KICAgICAgICAgQ1NTUGFyc2VyKGJv
b2wgc3RyaWN0UGFyc2luZyA9IHRydWUpOwogICAgICAgICB+Q1NTUGFyc2VyKCk7CiAKLSAgICAg
ICAgdm9pZCBwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3Rh
cnRMaW5lTnVtYmVyID0gMCwgU3R5bGVSdWxlUmFuZ2VzKiBydWxlUmFuZ2VNYXAgPSAwKTsKKyAg
ICAgICAgdm9pZCBwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQg
c3RhcnRMaW5lTnVtYmVyID0gMCwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCA9IDAp
OwogICAgICAgICBQYXNzUmVmUHRyPENTU1J1bGU+IHBhcnNlUnVsZShDU1NTdHlsZVNoZWV0Kiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VLZXlmcmFt
ZVJ1bGUoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBib29sIHBhcnNl
VmFsdWUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBpbnQgcHJvcElkLCBjb25zdCBTdHJp
bmcmLCBib29sIGltcG9ydGFudCk7CiAgICAgICAgIHN0YXRpYyBib29sIHBhcnNlQ29sb3IoUkdC
QTMyJiBjb2xvciwgY29uc3QgU3RyaW5nJiwgYm9vbCBzdHJpY3QgPSBmYWxzZSk7CiAgICAgICAg
IGJvb2wgcGFyc2VDb2xvcihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmlu
ZyYpOwotICAgICAgICBib29sIHBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24qLCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgYm9vbCBwYXJzZURlY2xhcmF0aW9uKENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgU3RyaW5nJiwgQ1NTU3R5bGVTb3VyY2VE
YXRhKiBzdHlsZVNvdXJjZURhdGEgPSAwKTsKICAgICAgICAgYm9vbCBwYXJzZU1lZGlhUXVlcnko
TWVkaWFMaXN0KiwgY29uc3QgU3RyaW5nJik7CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50
KCkgY29uc3Q7CkBAIC0yNDQsMTAgKzI0MywxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIC8vIHRva2VuaXplciBtZXRob2RzIGFuZCBkYXRhCiAgICAgICAgIHVuc2lnbmVkIG1fcnVs
ZUJvZHlTdGFydE9mZnNldDsKICAgICAgICAgdW5zaWduZWQgbV9ydWxlQm9keUVuZE9mZnNldDsK
LSAgICAgICAgU3R5bGVSdWxlUmFuZ2VzKiBtX3J1bGVSYW5nZXM7CisgICAgICAgIHVuc2lnbmVk
IG1fcHJvcGVydHlTdGFydE9mZnNldDsKKyAgICAgICAgdW5zaWduZWQgbV9wcm9wZXJ0eUVuZE9m
ZnNldDsKKyAgICAgICAgU3R5bGVSdWxlUmFuZ2VNYXAqIG1fcnVsZVJhbmdlTWFwOworICAgICAg
ICBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBtX2N1cnJlbnRTdHlsZURhdGE7CiAgICAgICAg
IHZvaWQgbWFya1J1bGVCb2R5U3RhcnQoKTsKICAgICAgICAgdm9pZCBtYXJrUnVsZUJvZHlFbmQo
KTsKKyAgICAgICAgdm9pZCBtYXJrUHJvcGVydHlTdGFydCgpOworICAgICAgICB2b2lkIG1hcmtQ
cm9wZXJ0eUVuZChib29sIGlzSW1wb3J0YW50Rm91bmQsIGJvb2wgaXNQcm9wZXJ0eVBhcnNlZCk7
CiAgICAgICAgIHZvaWQgcmVzZXRSdWxlQm9keU1hcmtzKCkgeyBtX3J1bGVCb2R5U3RhcnRPZmZz
ZXQgPSBtX3J1bGVCb2R5RW5kT2Zmc2V0ID0gMDsgfQorICAgICAgICB2b2lkIHJlc2V0UHJvcGVy
dHlNYXJrcygpIHsgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0ID0gbV9wcm9wZXJ0eUVuZE9mZnNldCA9
IFVJTlRfTUFYOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBmaW5kSW1wb3J0YW50SW5WYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICAgICAgaW50IGxleCh2b2lkKiB5eWx2YWwpOwog
ICAgICAgICBpbnQgdG9rZW4oKSB7IHJldHVybiB5eVRvazsgfQogICAgICAgICBVQ2hhciogdGV4
dChpbnQqIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVt
LmNwcCBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjdkYjU0NzcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eURhdHVtLmNwcApAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmZGVmIFNLSVBfU1RBVElDX0NPTlNUUlVDVE9SU19PTl9HQ0MKKyNkZWZpbmUgQ1NT
UFJPUEVSVFlEQVRVTV9ISURFX0dMT0JBTFMgMQorI2VuZGlmCisKKyNpbmNsdWRlICJDU1NQcm9w
ZXJ0eURhdHVtLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0
Zi9TdGF0aWNDb25zdHJ1Y3RvcnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NQcm9w
ZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKQorICAgIDogbmFtZShuYW1l
KQorICAgICwgdmFsdWUodmFsdWUpCisgICAgLCBpbXBvcnRhbnQoaW1wb3J0YW50KQorICAgICwg
cGFyc2VkKHBhcnNlZCkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1
bShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhlcikKKyAgICA6IG5hbWUob3RoZXIubmFtZSkK
KyAgICAsIHZhbHVlKG90aGVyLnZhbHVlKQorICAgICwgaW1wb3J0YW50KG90aGVyLmltcG9ydGFu
dCkKKyAgICAsIHBhcnNlZChvdGhlci5wYXJzZWQpCit7Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06
OkNTU1Byb3BlcnR5RGF0dW0oKQorICAgIDogbmFtZSgiIikKKyAgICAsIHZhbHVlKCIiKQorICAg
ICwgaW1wb3J0YW50KGZhbHNlKQorICAgICwgcGFyc2VkKGZhbHNlKQoreworfQorCitDU1NQcm9w
ZXJ0eURhdHVtJiBDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlE
YXR1bSYgb3RoZXIpCit7CisgICAgbmFtZSA9IG90aGVyLm5hbWU7CisgICAgdmFsdWUgPSBvdGhl
ci52YWx1ZTsKKyAgICBpbXBvcnRhbnQgPSBvdGhlci5pbXBvcnRhbnQ7CisgICAgcGFyc2VkID0g
b3RoZXIucGFyc2VkOworICAgIHJldHVybiAqdGhpczsKK30KKworU3RyaW5nIENTU1Byb3BlcnR5
RGF0dW06OnRvU3RyaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoIW5hbWUgJiYgdmFsdWUgPT0gImUi
KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTdHJpbmcgcmVzdWx0ID0gbmFtZTsK
KyAgICByZXN1bHQgKz0gIjogIjsKKyAgICByZXN1bHQgKz0gdmFsdWU7CisgICAgaWYgKGltcG9y
dGFudCkKKyAgICAgICAgcmVzdWx0ICs9ICIgIWltcG9ydGFudCI7CisgICAgcmVzdWx0ICs9ICI7
IjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvLyBHbG9iYWwgaW5pdCByb3V0aW5lcworREVG
SU5FX0dMT0JBTChDU1NQcm9wZXJ0eURhdHVtLCBlbXB0eUNTU1Byb3BlcnR5RGF0dW0sICIiLCAi
ZSIsIGZhbHNlLCBmYWxzZSkKKworLy8gc3RhdGljCit2b2lkIENTU1Byb3BlcnR5RGF0dW06Omlu
aXQoKQoreworICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkOworICAgIGlmICghaW5pdGlhbGl6
ZWQpIHsKKyAgICAgICAgbmV3ICgodm9pZCAqKSAmZW1wdHlDU1NQcm9wZXJ0eURhdHVtKSBDU1NQ
cm9wZXJ0eURhdHVtKCIiLCAiZSIsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgIGluaXRpYWxpemVk
ID0gdHJ1ZTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCituYW1lc3Bh
Y2UgV1RGIHsKKworV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSBIYXNoVHJhaXRzPFdlYkNvcmU6
OkNTU1Byb3BlcnR5RGF0dW0+OjplbXB0eVZhbHVlKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0sIGVtcHR5SGFzaFZhbHVlLCAoIiIsICJoIiwg
ZmFsc2UsIGZhbHNlKSk7CisgICAgcmV0dXJuIGVtcHR5SGFzaFZhbHVlOworfQorCit9IC8vIG5h
bWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaCBi
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mMDdiNzlhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlEYXR1bS5oCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDU1NQcm9wZXJ0eURhdHVtX2gK
KyNkZWZpbmUgQ1NTUHJvcGVydHlEYXR1bV9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoVHJhaXRzLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1N0eWxlUnVsZTsKKwordHlwZWRlZiBzdGQ6OnBh
aXI8dW5zaWduZWQsIHVuc2lnbmVkPiBTb3VyY2VSYW5nZTsKKworc3RydWN0IENTU1Byb3BlcnR5
RGF0dW0geworICAgIHN0YXRpYyB2b2lkIGluaXQoKTsKKworICAgIENTU1Byb3BlcnR5RGF0dW0o
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwg
Ym9vbCBwYXJzZWQpOworICAgIENTU1Byb3BlcnR5RGF0dW0oY29uc3QgQ1NTUHJvcGVydHlEYXR1
bSYgb3RoZXIpOworICAgIENTU1Byb3BlcnR5RGF0dW0oKTsKKyAgICBBTFdBWVNfSU5MSU5FIH5D
U1NQcm9wZXJ0eURhdHVtKCkgeyB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NTUHJv
cGVydHlEYXR1bSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG5hbWUgPT0gb3RoZXIubmFtZSAmJiB2
YWx1ZSA9PSBvdGhlci52YWx1ZSAmJiBpbXBvcnRhbnQgPT0gb3RoZXIuaW1wb3J0YW50ICYmIHBh
cnNlZCA9PSBvdGhlci5wYXJzZWQ7IH0KKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQ1NTUHJv
cGVydHlEYXR1bSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CisK
KyAgICBDU1NQcm9wZXJ0eURhdHVtJiBvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlEYXR1bSYg
b3RoZXIpOworICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworCisgICAgU3RyaW5nIG5hbWU7
CisgICAgU3RyaW5nIHZhbHVlOworICAgIGJvb2wgaW1wb3J0YW50OworICAgIGJvb2wgcGFyc2Vk
OworfTsKK3R5cGVkZWYgc3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIGJvb2w+IFNvdXJjZUF3
YXJlUHJvcGVydHlEYXR1bTsKKworI2lmbmRlZiBDU1NQUk9QRVJUWURBVFVNX0hJREVfR0xPQkFM
UworZXh0ZXJuIGNvbnN0IENTU1Byb3BlcnR5RGF0dW0gZW1wdHlDU1NQcm9wZXJ0eURhdHVtOwor
I2VuZGlmCisKK3N0cnVjdCBDU1NTdHlsZVNvdXJjZURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxD
U1NTdHlsZVNvdXJjZURhdGE+IHsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NTdHlsZVNvdXJj
ZURhdGE+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU1N0
eWxlU291cmNlRGF0YSgpKTsKKyAgICB9CisKKyAgICAvLyBSYW5nZSBvZiB0aGUgc3R5bGUgdGV4
dCBpbiB0aGUgZW5jbG9zaW5nIHNvdXJjZSAoc3RhcnQgYW5kIGVuZCBvZmZzZXRzIGluY2x1c2l2
ZSkuCisgICAgU291cmNlUmFuZ2Ugc3R5bGVCb2R5UmFuZ2U7CisgICAgVmVjdG9yPHN0ZDo6cGFp
cjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPiBwcm9wZXJ0eURhdGE7Cit9OwordHlw
ZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4g
U3R5bGVSdWxlUmFuZ2VNYXA7CisKK3N0cnVjdCBDU1NQcm9wZXJ0eURhdHVtSGFzaCB7CisgICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goQ1NTUHJvcGVydHlEYXR1bSBrZXkpCisgICAgeworICAgICAg
ICByZXR1cm4gU3RyaW5nSGFzaDo6aGFzaChrZXkubmFtZSkgKyBTdHJpbmdIYXNoOjpoYXNoKGtl
eS52YWx1ZSkgKyA3ICoga2V5LmltcG9ydGFudCArIDMgKiBrZXkucGFyc2VkICsgMzE7CisgICAg
fQorCisgICAgc3RhdGljIGJvb2wgZXF1YWwoQ1NTUHJvcGVydHlEYXR1bSBhLCBDU1NQcm9wZXJ0
eURhdHVtIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5uYW1lID09IGIubmFtZSAmJiBhLnZh
bHVlID09IGIudmFsdWUgJiYgYS5pbXBvcnRhbnQgPT0gYi5pbXBvcnRhbnQgJiYgYS5wYXJzZWQg
PT0gYi5wYXJzZWQ7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFy
ZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBEZWZhdWx0
SGFzaDsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW0+IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW1IYXNoIEhhc2g7
Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW0+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bT4gewor
ICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTsKKyAgICBzdGF0
aWMgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSBlbXB0eVZhbHVlKCk7CisKKyAgICBzdGF0aWMg
dm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSYgc2xv
dCkgeyBuZXcgKCZzbG90KSBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtKCIiLCAiRCIsIGZhbHNl
LCBmYWxzZSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3Jl
OjpDU1NQcm9wZXJ0eURhdHVtJiBzbG90KSB7IHJldHVybiAhc2xvdC5uYW1lLmxlbmd0aCgpICYm
IHNsb3QudmFsdWUgPT0gIkQiOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlm
IC8vIENTU1Byb3BlcnR5RGF0dW1faApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggMTY5YjE4
OC4uOTliMDJmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBAIC0xODgsNyArMTg4LDcgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0SW5saW5lU3R5bGUo
aW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0g
dm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwog
ICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTaGVldChpbiBsb25nIHN0eWxlU2hl
ZXRJZCwgb3V0IE9iamVjdCBzdHlsZVNoZWV0KTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lk
IGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBWYWx1ZSByYW5nZXMpOwor
ICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTb3VyY2VEYXRhKGluIGxvbmcgc3R5
bGVTaGVldElkLCBvdXQgT2JqZWN0IHN0eWxlU291cmNlRGF0YSk7CiAgICAgICAgIFtoYW5kbGVy
PURPTV0gdm9pZCBhcHBseVN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHls
ZVRleHQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIG91dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBW
YWx1ZSBzdHlsZSwgb3V0IEFycmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsKICAgICAgICAgW2hhbmRs
ZXI9RE9NXSB2b2lkIHNldFN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHls
ZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQg
c2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJp
bmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTU3RvcmUuY3BwCmluZGV4IGMyZGM0ZjEuLmVlOWY0YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTM3LDExICszNywyMCBAQAogI2luY2x1ZGUgIkNTU1N0
eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJD
U1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ2FjaGUuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZS5oIgorI2luY2x1ZGUgIkRvY0xvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVy
LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
SFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvclJlc291cmNlLmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAi
U3R5bGVTaGVldExpc3QuaCIKKyNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC02Nyw2ICs3Niw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTU3RvcmU6OnJl
c2V0KCkKICAgICBtX3N0eWxlU2hlZXRUb09mZnNldHMuY2xlYXIoKTsKICAgICBtX3N0eWxlU2hl
ZXRUb0lkLmNsZWFyKCk7CiAgICAgbV9pZFRvU3R5bGVTaGVldC5jbGVhcigpOworICAgIG1faWRU
b1N0eWxlU2hlZXRUZXh0LmNsZWFyKCk7CiAgICAgbV9pZFRvRGlzYWJsZWRTdHlsZS5jbGVhcigp
OwogICAgIG1fZG9jdW1lbnROb2RlVG9JbnNwZWN0b3JTdHlsZVNoZWV0TWFwLmNsZWFyKCk7CiAK
QEAgLTEwNCw0OCArMTE0LDE4MCBAQCBDU1NTdHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6
aW5zcGVjdG9yU3R5bGVTaGVldChEb2N1bWVudCogb3duZXJEb2N1bWVudCwgYgogICAgIHJldHVy
biBpbnNwZWN0b3JTdHlsZVNoZWV0OwogfQogCi1IYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBJ
bnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0
KQorU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjpzdHlsZVNoZWV0VGV4dChsb25nIHN0eWxlU2hl
ZXRJZCkKIHsKKyAgICBJZFRvU3R5bGVTaGVldFRleHRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRv
U3R5bGVTaGVldFRleHQuZmluZChzdHlsZVNoZWV0SWQpOworICAgIGlmIChpdCAhPSBtX2lkVG9T
dHlsZVNoZWV0VGV4dC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT5zZWNvbmQ7CisKKyAgICBD
U1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gc3R5bGVTaGVldEZvcklkKHN0eWxlU2hlZXRJZCk7
CiAgICAgaWYgKCFzdHlsZVNoZWV0KQotICAgICAgICByZXR1cm4gSGFzaE1hcDxsb25nLCBTb3Vy
Y2VSYW5nZT4oKTsKLSAgICBSZWZQdHI8Q1NTUnVsZUxpc3Q+IG9yaWdpbmFsUnVsZUxpc3QgPSBD
U1NSdWxlTGlzdDo6Y3JlYXRlKHN0eWxlU2hlZXQsIGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIFN0
cmluZygpOworICAgIFN0cmluZyB0ZXh0OworCisgICAgTm9kZSogb3duZXJOb2RlID0gc3R5bGVT
aGVldC0+b3duZXJOb2RlKCk7CisgICAgaWYgKG93bmVyTm9kZSAmJiBvd25lck5vZGUtPm5vZGVU
eXBlKCkgPT0gTm9kZTo6RUxFTUVOVF9OT0RFKSB7CisgICAgICAgIEVsZW1lbnQqIG93bmVyRWxl
bWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihvd25lck5vZGUpOworICAgICAgICBpZiAob3du
ZXJFbGVtZW50LT50YWdOYW1lKCkubG93ZXIoKSA9PSAic3R5bGUiKQorICAgICAgICAgICAgdGV4
dCA9IGlubGluZVN0eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXQpOworICAgIH0KKyAgICBpZiAodGV4
dC5pc0VtcHR5KCkpCisgICAgICAgIHRleHQgPSByZXNvdXJjZVN0eWxlU2hlZXRUZXh0KHN0eWxl
U2hlZXQpOworCisgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgbV9pZFRvU3R5bGVT
aGVldFRleHQuc2V0KHN0eWxlU2hlZXRJZCwgdGV4dCk7CisgICAgcmV0dXJuIHRleHQ7Cit9CisK
K1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6cmVzb3VyY2VTdHlsZVNoZWV0VGV4dChDU1NTdHls
ZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIEtVUkwgc3R5bGVTaGVldFVSTCA9IHN0eWxlU2hl
ZXQtPmZpbmFsVVJMKCk7CisgICAgRG9jdW1lbnQqIGRvYyA9IHN0eWxlU2hlZXQtPmRvY3VtZW50
KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBTdHJpbmcg
dGV4dEVuY29kaW5nTmFtZTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIoc3R5bGVTaGVldFVSTCwgZG9jLT5m
cmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+cmVxdWVzdFVSTCgpKSkgeworICAg
ICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gZG9jLT5pbnB1dEVuY29kaW5nKCk7CisgICAgICAgIGJ1
ZmZlciA9IGRvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIo
KS0+bWFpblJlc291cmNlRGF0YSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFN0cmlu
ZyYgdXJsID0gc3R5bGVTaGVldFVSTC5zdHJpbmcoKTsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2Uq
IGNhY2hlZFJlc291cmNlID0gZG9jLT5kb2NMb2FkZXIoKS0+Y2FjaGVkUmVzb3VyY2UodXJsKTsK
KyAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZSkKKyAgICAgICAgICAgIGNhY2hlZFJlc291cmNl
ID0gY2FjaGUoKS0+cmVzb3VyY2VGb3JVUkwodXJsKTsKKworICAgICAgICBBU1NFUlQoY2FjaGVk
UmVzb3VyY2UpOyAvLyBGSVhNRShhcGF2bG92KTogVGhpcyBtaWdodCBiZSB0b28gYWdncmVzc2l2
ZQorCisgICAgICAgIGJvb2wgaXNVbnB1cmdlYWJsZSA9IHRydWU7CisgICAgICAgIGlmIChjYWNo
ZWRSZXNvdXJjZS0+aXNQdXJnZWFibGUoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIHJlc291
cmNlIGlzIHB1cmdlYWJsZSB0aGVuIG1ha2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAg
ICAgICAvLyBpdHMgZGF0YS4gVGhpcyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVy
biBhbgorICAgICAgICAgICAgLy8gZW1wdHkgU3RyaW5nLgorICAgICAgICAgICAgaWYgKCFjYWNo
ZWRSZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCisgICAgICAgICAgICAgICAgaXNVbnB1
cmdlYWJsZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7
CisgICAgICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5n
KCk7CisgICAgICAgICAgICBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICBUZXh0RW5jb2RpbmcgZW5j
b2RpbmcodGV4dEVuY29kaW5nTmFtZSk7CisgICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgp
KQorICAgICAgICAgICAgZW5jb2RpbmcgPSBXaW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKKyAgICAg
ICAgcmV0dXJuIGVuY29kaW5nLmRlY29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkp
OworICAgIH0KKworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEluc3BlY3RvckNT
U1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQor
eworICAgIE5vZGUqIG93bmVyTm9kZSA9IHN0eWxlU2hlZXQtPm93bmVyTm9kZSgpOworICAgIGlm
ICghb3duZXJOb2RlIHx8IG93bmVyTm9kZS0+bm9kZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05P
REUgfHwgbV9zdHlsZVNoZWV0VG9JZC5maW5kKHN0eWxlU2hlZXQpID09IG1fc3R5bGVTaGVldFRv
SWQuZW5kKCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBFbGVtZW50KiBvd25lckVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4ob3duZXJOb2RlKTsKKyAgICBpZiAob3duZXJF
bGVtZW50LT50YWdOYW1lKCkubG93ZXIoKSAhPSAic3R5bGUiKQorICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisgICAgcmV0dXJuIG93bmVyRWxlbWVudC0+aW5uZXJUZXh0KCk7Cit9CisKKworLy8g
QWxsIHJhbmdlcyBhcmU6IFtzdGFydDsgZW5kKSAoc3RhcnQgLSBpbmNsdXNpdmUsIGVuZCAtIGV4
Y2x1c2l2ZSkKK2Jvb2wgSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFN0eWxlU291cmNlRGF0YShDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3Vs
dCkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFbGVt
ZW50KiBlbGVtZW50ID0gaW5saW5lU3R5bGVFbGVtZW50KHN0eWxlKTsKKyAgICBpZiAoZWxlbWVu
dCkgeworICAgICAgICAvLyBJbmxpbmU6IHN0eWxlPSIuLi4iCisgICAgICAgIFJlZlB0cjxDU1NT
dHlsZVNvdXJjZURhdGE+IHN0eWxlU291cmNlRGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3Jl
YXRlKCk7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKGVs
ZW1lbnQsICZzdHlsZVNvdXJjZURhdGEpOworICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpyZXN1bHQgPSBzdHlsZVNvdXJjZURhdGE7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hl
ZXQgPSBnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxlKTsKKyAgICBpZiAoIXN0eWxlU2hlZXQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VE
YXRhPiA+KiByYW5nZXNWZWN0b3IgPSAwOwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXA6Oml0
ZXJhdG9yIGl0ID0gbV9zdHlsZVNoZWV0VG9PZmZzZXRzLmZpbmQoc3R5bGVTaGVldCk7Ci0gICAg
VmVjdG9yPFNvdXJjZVJhbmdlPiogb2Zmc2V0VmVjdG9yID0gMDsKICAgICBpZiAoaXQgPT0gbV9z
dHlsZVNoZWV0VG9PZmZzZXRzLmVuZCgpKSB7Ci0gICAgICAgIEluc3BlY3RvclJlc291cmNlKiBy
ZXNvdXJjZSA9IG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVzb3VyY2VGb3JVUkwoc3R5bGVTaGVl
dC0+ZmluYWxVUkwoKS5zdHJpbmcoKSk7Ci0gICAgICAgIGlmIChyZXNvdXJjZSkgewotICAgICAg
ICAgICAgb2Zmc2V0VmVjdG9yID0gbmV3IFZlY3RvcjxTb3VyY2VSYW5nZT47CisgICAgICAgIFN0
cmluZyB0ZXh0ID0gc3R5bGVTaGVldFRleHQoYmluZFN0eWxlU2hlZXQoc3R5bGVTaGVldCkpOwor
ICAgICAgICBpZiAoIXRleHQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NTU3R5
bGVTaGVldD4gbmV3U3R5bGVTaGVldCA9IENTU1N0eWxlU2hlZXQ6OmNyZWF0ZShzdHlsZVNoZWV0
LT5vd25lck5vZGUoKSk7CiAgICAgICAgICAgICBDU1NQYXJzZXIgcDsKLSAgICAgICAgICAgIENT
U1BhcnNlcjo6U3R5bGVSdWxlUmFuZ2VzIHJ1bGVSYW5nZU1hcDsKLSAgICAgICAgICAgIHAucGFy
c2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgpLCByZXNvdXJjZS0+c291cmNlU3RyaW5nKCksIDAs
ICZydWxlUmFuZ2VNYXApOwotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3Ro
ID0gbmV3U3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICAg
ICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKG5ld1N0eWxlU2hlZXQt
Pml0ZW0oaSkpOwotICAgICAgICAgICAgICAgIGlmICghcnVsZSkKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBzdGQ6
OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiA+OjppdGVyYXRvciBpdCA9IHJ1bGVSYW5nZU1hcC5m
aW5kKHJ1bGUpOwotICAgICAgICAgICAgICAgIGlmIChpdCAhPSBydWxlUmFuZ2VNYXAuZW5kKCkp
Ci0gICAgICAgICAgICAgICAgICAgIG9mZnNldFZlY3Rvci0+YXBwZW5kKGl0LT5zZWNvbmQpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9zdHlsZVNoZWV0VG9PZmZzZXRzLnNldChzdHls
ZVNoZWV0LCBvZmZzZXRWZWN0b3IpOworICAgICAgICAgICAgU3R5bGVSdWxlUmFuZ2VNYXAgcnVs
ZVJhbmdlTWFwOworICAgICAgICAgICAgcC5wYXJzZVNoZWV0KG5ld1N0eWxlU2hlZXQuZ2V0KCks
IHRleHQsIDAsICZydWxlUmFuZ2VNYXApOworICAgICAgICAgICAgcmFuZ2VzVmVjdG9yID0gbmV3
IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+OworICAgICAgICAgICAgZXh0cmFj
dFJhbmdlcyhuZXdTdHlsZVNoZWV0LmdldCgpLCBydWxlUmFuZ2VNYXAsIHJhbmdlc1ZlY3Rvcik7
CisgICAgICAgICAgICBtX3N0eWxlU2hlZXRUb09mZnNldHMuc2V0KHN0eWxlU2hlZXQsIHJhbmdl
c1ZlY3Rvcik7CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgb2Zmc2V0VmVjdG9yID0g
aXQtPnNlY29uZDsKLSAgICBpZiAoIW9mZnNldFZlY3RvcikKLSAgICAgICAgcmV0dXJuIEhhc2hN
YXA8bG9uZywgU291cmNlUmFuZ2U+KCk7CisgICAgICAgIHJhbmdlc1ZlY3RvciA9IGl0LT5zZWNv
bmQ7CisgICAgaWYgKCFyYW5nZXNWZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHVuc2lnbmVkIHJ1bGVJbmRleCA9IDA7Ci0gICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4g
cmVzdWx0OwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHN0eWxlU2hlZXQtPmxl
bmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgQVNTRVJUKHJ1bGVJbmRleCA8IG9m
ZnNldFZlY3Rvci0+c2l6ZSgpKTsKICAgICAgICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gYXNDU1NT
dHlsZVJ1bGUoc3R5bGVTaGVldC0+aXRlbShpKSk7CiAgICAgICAgIGlmICghcnVsZSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAvLyBUaGlzIG1hcHMgdGhlIHN0eWxlIGlkIHRvIHRo
ZSBydWxlIGJvZHkgcmFuZ2UuCi0gICAgICAgIHJlc3VsdC5zZXQoYmluZFN0eWxlKHJ1bGUtPnN0
eWxlKCkpLCBvZmZzZXRWZWN0b3ItPmF0KHJ1bGVJbmRleCkpOworICAgICAgICBpZiAocnVsZS0+
c3R5bGUoKSA9PSBzdHlsZSkgeworICAgICAgICAgICAgQVNTRVJUKHJ1bGVJbmRleCA8IHJhbmdl
c1ZlY3Rvci0+c2l6ZSgpKTsKKyAgICAgICAgICAgICpyZXN1bHQgPSByYW5nZXNWZWN0b3ItPmF0
KHJ1bGVJbmRleCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICAg
ICBydWxlSW5kZXgrKzsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ1NTU3RvcmU6OmV4dHJhY3RSYW5nZXMoQ1NTU3R5bGVT
aGVldCogc3R5bGVTaGVldCwgY29uc3QgU3R5bGVSdWxlUmFuZ2VNYXAmIHJ1bGVSYW5nZU1hcCwg
VmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4qIHJhbmdlc1ZlY3RvcikKK3sKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8
IGxlbmd0aDsgKytpKSB7CisgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVS
dWxlKHN0eWxlU2hlZXQtPml0ZW0oaSkpOworICAgICAgICBpZiAoIXJ1bGUpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgU3R5bGVSdWxlUmFuZ2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gcnVsZVJhbmdlTWFwLmZpbmQocnVsZSk7CisgICAgICAgIGlmIChpdCAhPSBydWxlUmFuZ2VN
YXAuZW5kKCkpCisgICAgICAgICAgICByYW5nZXNWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsK
KyAgICB9Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFN0eWxlQXR0cmlidXRlUmFu
Z2VzKE5vZGUqIG5vZGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpCit7Cisg
ICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0eWxlZEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgU3RyaW5nIHN0eWxlVGV4dCA9IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1l
bnQqPihub2RlKS0+Z2V0QXR0cmlidXRlKCJzdHlsZSIpOworICAgIGlmIChzdHlsZVRleHQuaXNF
bXB0eSgpKSB7CisgICAgICAgICgqcmVzdWx0KS0+c3R5bGVCb2R5UmFuZ2UuZmlyc3QgPSAwOwor
ICAgICAgICAoKnJlc3VsdCktPnN0eWxlQm9keVJhbmdlLnNlY29uZCA9IDA7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bj4gdGVtcERlY2xhcmF0aW9uID0gQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNyZWF0ZSgp
OworICAgIENTU1BhcnNlciBwOworICAgIHAucGFyc2VEZWNsYXJhdGlvbih0ZW1wRGVjbGFyYXRp
b24uZ2V0KCksIHN0eWxlVGV4dCwgcmVzdWx0LT5nZXQoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK0NTU1N0eWxlU2hlZXQqIEluc3BlY3RvckNTU1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNoZWV0
KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQoreworICAgIGlmICghc3R5bGUpCisgICAgICAg
IHJldHVybiAwOworCisgICAgU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHN0eWxlLT5zdHlsZXNo
ZWV0KCk7CisgICAgaWYgKHN0eWxlU2hlZXQgJiYgc3R5bGVTaGVldC0+aXNDU1NTdHlsZVNoZWV0
KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4oc3R5bGVTaGVl
dCk7CisKKyAgICByZXR1cm4gMDsKIH0KIAogQ1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JDU1NTdG9y
ZTo6YXNDU1NTdHlsZVJ1bGUoU3R5bGVCYXNlKiBzdHlsZUJhc2UpCkBAIC0yMTcsNiArMzU5LDE3
IEBAIGxvbmcgSW5zcGVjdG9yQ1NTU3RvcmU6OmJpbmRSdWxlKENTU1N0eWxlUnVsZSogcnVsZSkK
ICAgICByZXR1cm4gaWQ7CiB9CiAKKy8vIHN0YXRpYworRWxlbWVudCogSW5zcGVjdG9yQ1NTU3Rv
cmU6OmlubGluZVN0eWxlRWxlbWVudChDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKK3sKKyAg
ICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+aXNNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICBOb2RlKiBub2RlID0gc3RhdGljX2Nhc3Q8Q1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24qPihzdHlsZSktPm5vZGUoKTsKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUt
PmlzU3R5bGVkRWxlbWVudCgpIHx8IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKS0+
Z2V0SW5saW5lU3R5bGVEZWNsKCkgIT0gc3R5bGUpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTU3RvcmUuaAppbmRleCA4MmRlNjIyLi44ZWZkMzZkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU1N0b3JlLmgKQEAgLTI5LDYgKzI5LDggQEAKICNpZm5kZWYgSW5zcGVjdG9yQ1NT
U3RvcmVfaAogI2RlZmluZSBJbnNwZWN0b3JDU1NTdG9yZV9oCiAKKyNpbmNsdWRlICJDU1NQcm9w
ZXJ0eURhdHVtLmgiCisKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzYsMTMgKzM4LDE1IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBJbnNwZWN0b3JD
b250cm9sbGVyOwogY2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDU1NT
dHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NTUnVsZUxpc3Q7CiBjbGFzcyBDU1NTdHlsZVJ1bGU7
CiBjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50Owor
Y2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKK2NsYXNzIE5vZGU7CiBjbGFzcyBTdHlsZUJhc2U7
CiAKIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQcm9wZXJ0eVZhbHVlQW5kUHJp
b3JpdHk7CkBAIC01MiwyMyArNTYsMjggQEAgdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlRGVjbGFy
YXRpb24qLCBsb25nPiBTdHlsZVRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRy
PENTU1N0eWxlRGVjbGFyYXRpb24+ID4gSWRUb1N0eWxlTWFwOwogdHlwZWRlZiBIYXNoTWFwPENT
U1N0eWxlUnVsZSosIGxvbmc+IFJ1bGVUb0lkTWFwOwogdHlwZWRlZiBIYXNoTWFwPGxvbmcsIFJl
ZlB0cjxDU1NTdHlsZVJ1bGU+ID4gSWRUb1J1bGVNYXA7Ci10eXBlZGVmIEhhc2hNYXA8Q1NTU3R5
bGVTaGVldCosIFZlY3RvcjxTb3VyY2VSYW5nZT4qID4gU3R5bGVTaGVldFRvT2Zmc2V0c01hcDsK
K3R5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNv
dXJjZURhdGE+ID4qID4gU3R5bGVTaGVldFRvT2Zmc2V0c01hcDsKIHR5cGVkZWYgSGFzaE1hcDxD
U1NTdHlsZVNoZWV0KiwgbG9uZz4gU3R5bGVTaGVldFRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8
bG9uZywgUmVmUHRyPENTU1N0eWxlU2hlZXQ+ID4gSWRUb1N0eWxlU2hlZXRNYXA7Cit0eXBlZGVm
IEhhc2hNYXA8bG9uZywgU3RyaW5nPiBJZFRvU3R5bGVTaGVldFRleHRNYXA7CiB0eXBlZGVmIEhh
c2hNYXA8bG9uZywgRGlzYWJsZWRTdHlsZURlY2xhcmF0aW9uPiBJZFRvRGlzYWJsZWRTdHlsZU1h
cDsKIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8RG9jdW1lbnQ+LCBSZWZQdHI8Q1NTU3R5bGVTaGVl
dD4gPiBEb2N1bWVudFRvU3R5bGVTaGVldE1hcDsKIAogY2xhc3MgSW5zcGVjdG9yQ1NTU3RvcmUg
ewogCiBwdWJsaWM6CisgICAgc3RhdGljIENTU1N0eWxlU2hlZXQqIGdldFBhcmVudFN0eWxlU2hl
ZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOworICAgIHN0YXRpYyBFbGVtZW50KiBpbmxpbmVTdHls
ZUVsZW1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOworCiAgICAgSW5zcGVjdG9yQ1NTU3RvcmUo
SW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcik7CiAgICAgfkluc3BlY3Rv
ckNTU1N0b3JlKCk7CiAgICAgdm9pZCByZXNldCgpOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNl
UmFuZ2U+IGdldFJ1bGVSYW5nZXMoQ1NTU3R5bGVTaGVldCopOworICAgIGJvb2wgZ2V0U3R5bGVT
b3VyY2VEYXRhKENTU1N0eWxlRGVjbGFyYXRpb24qLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRh
PiogcmVzdWx0KTsKICAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZUZvcklkKGxvbmcgc3R5
bGVJZCk7CiAgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldEZvcklkKGxvbmcgc3R5bGVTaGVl
dElkKTsKICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGVGb3JJZChsb25nIHN0eWxlUnVsZUlkKTsKICAg
ICBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24qIGRpc2FibGVkU3R5bGVGb3JJZChsb25nIHN0eWxl
SWQsIGJvb2wgY3JlYXRlSWZBYnNlbnQpOworICAgIFN0cmluZyBzdHlsZVNoZWV0VGV4dChsb25n
IHN0eWxlU2hlZXRJZCk7CiAgICAgQ1NTU3R5bGVTaGVldCogaW5zcGVjdG9yU3R5bGVTaGVldChE
b2N1bWVudCogb3duZXJEb2N1bWVudCwgYm9vbCBjcmVhdGVJZkFic2VudCk7CiAgICAgdm9pZCBy
ZW1vdmVEb2N1bWVudChEb2N1bWVudCopOwogCkBAIC03OCw2ICs4NywxMCBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgc3RhdGljIENTU1N0eWxlUnVsZSogYXNDU1NTdHlsZVJ1bGUoU3R5bGVC
YXNlKik7CisgICAgU3RyaW5nIGlubGluZVN0eWxlU2hlZXRUZXh0KENTU1N0eWxlU2hlZXQqKTsK
KyAgICBTdHJpbmcgcmVzb3VyY2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0Kik7CisgICAg
dm9pZCBleHRyYWN0UmFuZ2VzKENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHlsZVJ1bGVSYW5nZU1h
cCYsIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpOwor
ICAgIGJvb2wgZ2V0U3R5bGVBdHRyaWJ1dGVSYW5nZXMoTm9kZSogcGFyZW50Tm9kZSwgUmVmUHRy
PENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCk7CiAKICAgICBTdHlsZVRvSWRNYXAgbV9zdHls
ZVRvSWQ7CiAgICAgSWRUb1N0eWxlTWFwIG1faWRUb1N0eWxlOwpAQCAtODUsOCArOTgsOSBAQCBw
cml2YXRlOgogICAgIElkVG9SdWxlTWFwIG1faWRUb1J1bGU7CiAgICAgU3R5bGVTaGVldFRvT2Zm
c2V0c01hcCBtX3N0eWxlU2hlZXRUb09mZnNldHM7CiAgICAgU3R5bGVTaGVldFRvSWRNYXAgbV9z
dHlsZVNoZWV0VG9JZDsKLSAgICBJZFRvU3R5bGVTaGVldE1hcCBtX2lkVG9TdHlsZVNoZWV0Owog
ICAgIElkVG9EaXNhYmxlZFN0eWxlTWFwIG1faWRUb0Rpc2FibGVkU3R5bGU7CisgICAgSWRUb1N0
eWxlU2hlZXRNYXAgbV9pZFRvU3R5bGVTaGVldDsKKyAgICBJZFRvU3R5bGVTaGVldFRleHRNYXAg
bV9pZFRvU3R5bGVTaGVldFRleHQ7CiAgICAgRG9jdW1lbnRUb1N0eWxlU2hlZXRNYXAgbV9kb2N1
bWVudE5vZGVUb0luc3BlY3RvclN0eWxlU2hlZXRNYXA7CiAKICAgICBJbnNwZWN0b3JDb250cm9s
bGVyKiBtX2luc3BlY3RvckNvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKaW5kZXggMjNjMjJhYS4uMjc3ODQ3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkF0dHIuaCIKICNp
bmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5RGF0dW0uaCIKICNp
bmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZS5oIgogI2luY2x1
ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0xMTkxLDI2ICsxMTkyLDM0IEBAIHZvaWQgSW5zcGVjdG9y
RE9NQWdlbnQ6OmdldFN0eWxlU2hlZXQobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+CiAgICAgICAgICpzdHlsZVNoZWV0T2JqZWN0ID0gYnVpbGRPYmplY3RGb3JTdHls
ZVNoZWV0KHN0eWxlU2hlZXQtPmRvY3VtZW50KCksIHN0eWxlU2hlZXQpOwogfQogCi12b2lkIElu
c3BlY3RvckRPTUFnZW50OjpnZXRSdWxlUmFuZ2VzKGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+KiBydWxlUmFuZ2UpCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRT
dHlsZVNvdXJjZURhdGEobG9uZyBzdHlsZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogZGF0
YU9iamVjdCkKIHsKLSAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gY3NzU3RvcmUoKS0+
c3R5bGVTaGVldEZvcklkKHN0eWxlU2hlZXRJZCk7Ci0gICAgaWYgKHN0eWxlU2hlZXQgJiYgc3R5
bGVTaGVldC0+ZG9jdW1lbnQoKSkgewotICAgICAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdl
PiBydWxlUmFuZ2VzID0gY3NzU3RvcmUoKS0+Z2V0UnVsZVJhbmdlcyhzdHlsZVNoZWV0KTsKLSAg
ICAgICAgaWYgKCFydWxlUmFuZ2VzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVh
dGUoKTsKLSAgICAgICAgZm9yIChIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPjo6aXRlcmF0b3Ig
aXQgPSBydWxlUmFuZ2VzLmJlZ2luKCk7IGl0ICE9IHJ1bGVSYW5nZXMuZW5kKCk7ICsraXQpIHsK
LSAgICAgICAgICAgIGlmIChpdC0+c2Vjb25kLnNlY29uZCkgewotICAgICAgICAgICAgICAgIFJl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJ1bGVSYW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRl
KCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRPYmplY3QoU3RyaW5nOjpudW1iZXIoaXQt
PmZpcnN0KS51dGY4KCkuZGF0YSgpLCBydWxlUmFuZ2UpOwotICAgICAgICAgICAgICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGJvZHlSYW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
Ci0gICAgICAgICAgICAgICAgcnVsZVJhbmdlLT5zZXRPYmplY3QoImJvZHlSYW5nZSIsIGJvZHlS
YW5nZSk7Ci0gICAgICAgICAgICAgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0IiwgaXQt
PnNlY29uZC5maXJzdCk7Ci0gICAgICAgICAgICAgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoImVu
ZCIsIGl0LT5zZWNvbmQuc2Vjb25kKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICAqcnVsZVJhbmdlID0gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICBDU1NTdHlsZURlY2xhcmF0aW9u
KiBzdHlsZSA9IGNzc1N0b3JlKCktPnN0eWxlRm9ySWQoc3R5bGVJZCk7CisgICAgaWYgKCFzdHls
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHNvdXJj
ZURhdGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOworICAgIGJvb2wgc3VjY2VzcyA9
IGNzc1N0b3JlKCktPmdldFN0eWxlU291cmNlRGF0YShzdHlsZSwgJnNvdXJjZURhdGEpOworICAg
IGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gYm9keVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBy
ZXN1bHQtPnNldE9iamVjdCgiYm9keVJhbmdlIiwgYm9keVJhbmdlKTsKKyAgICBib2R5UmFuZ2Ut
PnNldE51bWJlcigic3RhcnQiLCBzb3VyY2VEYXRhLT5zdHlsZUJvZHlSYW5nZS5maXJzdCk7Cisg
ICAgYm9keVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIHNvdXJjZURhdGEtPnN0eWxlQm9keVJhbmdl
LnNlY29uZCk7CisgICAgUmVmUHRyPEluc3BlY3RvckFycmF5PiBwcm9wZXJ0eVJhbmdlcyA9IElu
c3BlY3RvckFycmF5OjpjcmVhdGUoKTsKKyAgICByZXN1bHQtPnNldEFycmF5KCJwcm9wZXJ0eURh
dGEiLCBwcm9wZXJ0eVJhbmdlcyk7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURh
dHVtLCBTb3VyY2VSYW5nZT4gPiYgcHJvcGVydHlEYXRhID0gc291cmNlRGF0YS0+cHJvcGVydHlE
YXRhOworICAgIGZvciAoVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VS
YW5nZT4gPjo6aXRlcmF0b3IgaXQgPSBwcm9wZXJ0eURhdGEuYmVnaW4oKTsgaXQgIT0gcHJvcGVy
dHlEYXRhLmVuZCgpOyArK2l0KSB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHBy
b3BlcnR5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBwcm9wZXJ0
eVJhbmdlLT5zZXRTdHJpbmcoIm5hbWUiLCBpdC0+Zmlyc3QubmFtZSk7CisgICAgICAgIHByb3Bl
cnR5UmFuZ2UtPnNldFN0cmluZygidmFsdWUiLCBpdC0+Zmlyc3QudmFsdWUpOworICAgICAgICBw
cm9wZXJ0eVJhbmdlLT5zZXRCb29sZWFuKCJpbXBvcnRhbnQiLCBpdC0+Zmlyc3QuaW1wb3J0YW50
KTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0Qm9vbGVhbigicGFyc2VkIiwgaXQtPmZpcnN0
LnBhcnNlZCk7CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBpdC0+
c2Vjb25kLmZpcnN0KTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBp
dC0+c2Vjb25kLnNlY29uZCk7CisgICAgICAgIHByb3BlcnR5UmFuZ2VzLT5wdXNoT2JqZWN0KHBy
b3BlcnR5UmFuZ2UpOwogICAgIH0KKyAgICAqZGF0YU9iamVjdCA9IHJlc3VsdC5yZWxlYXNlKCk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldElubGluZVN0eWxlKGxvbmcgbm9kZUlk
LCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZSkKQEAgLTE0NjksNyArMTQ3OCw3IEBAIFBh
c3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RG
b3JTdHlsZShDU1NTdHlsZURlY2xhCiAgICAgaWYgKGJpbmQpIHsKICAgICAgICAgbG9uZyBzdHls
ZUlkID0gY3NzU3RvcmUoKS0+YmluZFN0eWxlKHN0eWxlKTsKICAgICAgICAgcmVzdWx0LT5zZXRO
dW1iZXIoImlkIiwgc3R5bGVJZCk7Ci0gICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxl
U2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxlKTsKKyAgICAgICAgQ1NTU3R5bGVTaGVl
dCogcGFyZW50U3R5bGVTaGVldCA9IEluc3BlY3RvckNTU1N0b3JlOjpnZXRQYXJlbnRTdHlsZVNo
ZWV0KHN0eWxlKTsKICAgICAgICAgaWYgKHBhcmVudFN0eWxlU2hlZXQpCiAgICAgICAgICAgICBy
ZXN1bHQtPnNldE51bWJlcigicGFyZW50U3R5bGVTaGVldElkIiwgY3NzU3RvcmUoKS0+YmluZFN0
eWxlU2hlZXQocGFyZW50U3R5bGVTaGVldCkpOwogCkBAIC0xNjgxLDIwICsxNjkwLDYgQEAgUGFz
c1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gSW5zcGVjdG9yRE9NQWdlbnQ6OnRvQXJyYXkoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGRhdGEKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAot
Q1NTU3R5bGVTaGVldCogSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFBhcmVudFN0eWxlU2hlZXQoQ1NT
U3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCi17Ci0gICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5
bGVTaGVldCA9IHN0eWxlLT5wYXJlbnRSdWxlKCkgPyBzdHlsZS0+cGFyZW50UnVsZSgpLT5wYXJl
bnRTdHlsZVNoZWV0KCkgOiAwOwotICAgIGlmICghcGFyZW50U3R5bGVTaGVldCkgewotICAgICAg
ICBTdHlsZUJhc2UqIHBhcmVudCA9IHN0eWxlLT5wYXJlbnQoKTsKLSAgICAgICAgaWYgKHBhcmVu
dCAmJiBwYXJlbnQtPmlzQ1NTU3R5bGVTaGVldCgpKSB7Ci0gICAgICAgICAgICBwYXJlbnRTdHls
ZVNoZWV0ID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHBhcmVudCk7Ci0gICAgICAgICAg
ICBpZiAoIXBhcmVudFN0eWxlU2hlZXQtPmxlbmd0aCgpKQotICAgICAgICAgICAgICAgIHJldHVy
biAwOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBwYXJlbnRTdHlsZVNoZWV0OwotfQot
CiB2b2lkIEluc3BlY3RvckRPTUFnZW50Ojpvbk1hdGNoSm9ic1RpbWVyKFRpbWVyPEluc3BlY3Rv
ckRPTUFnZW50PiopCiB7CiAgICAgaWYgKCFtX3BlbmRpbmdNYXRjaEpvYnMuc2l6ZSgpKSB7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA5NzUxZThlLi43YTlmNmJjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZ2V0SW5saW5lU3R5bGUobG9uZyBub2Rl
SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQgZ2V0Q29t
cHV0ZWRTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVzKTsK
ICAgICAgICAgdm9pZCBnZXRTdHlsZVNoZWV0KGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0Piogc3R5bGVTaGVldE9iamVjdCk7Ci0gICAgICAgIHZvaWQgZ2V0UnVsZVJh
bmdlcyhsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcnVsZVJhbmdl
KTsKKyAgICAgICAgdm9pZCBnZXRTdHlsZVNvdXJjZURhdGEobG9uZyBzdHlsZUlkLCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiogZGF0YU9iamVjdCk7CiAgICAgICAgIHZvaWQgYXBwbHlTdHlsZVRl
eHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgU3RyaW5nJiBw
cm9wZXJ0eU5hbWUsIGJvb2wqIHN1Y2Nlc3MsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxl
T2JqZWN0LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjaGFuZ2VkUHJvcGVydGllcyk7CiAgICAg
ICAgIHZvaWQgc2V0U3R5bGVUZXh0KGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBjc3NUZXh0
LCBib29sKiBzdWNjZXNzKTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVByb3BlcnR5KGxvbmcgc3R5
bGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNj
ZXNzKTsKQEAgLTE0OCw3ICsxNDgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZv
aWQgY29weU5vZGUobG9uZyBub2RlSWQpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGlj
IENTU1N0eWxlU2hlZXQqIGdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlvbiop
OwogICAgICAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nKERvY3VtZW50KiBkb2N1bWVudCk7CiAgICAg
ICAgIHZvaWQgc3RvcExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66629</attachid>
            <date>2010-09-06 04:55:12 -0700</date>
            <delta_ts>2010-09-08 10:24:19 -0700</delta_ts>
            <desc>[PATCH] Style fix</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>60921</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZDBiNzFiLi5hZmM3NGZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTA2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCBza2lwcGluZyBhIGNyYXNoaW5nIG1lZGlhIHRlc3QuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zm
c2V0cy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Ut
b2Zmc2V0cy5jc3MKaW5kZXggZWY2OWVlNi4uNDUyMTBlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwpA
QCAtMSw3ICsxLDE0IEBACiBib2R5IHsKICAgICBmb250LXNpemU6IDEycHg7CisgICAgZm9vOiBi
YXIgIQorCisgICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6
ZWQgYnkgV2ViQ29yZSAqLzsKKyAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKKyAgICBjb2xv
cno6ICIhaW1wb3J0YW50IjsKKyAgICBpbXBvcnRhbnQ6IWltcG9ydGFudDsKKyAgICBjb2xvcjog
ImJhZGNvbG9yIiAhIGltcG9ydGFudCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1
ZSAqLzsKIH0KIAotLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29t
bWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1l
bnQgKi8KKy8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQg
YWZ0ZXIgc2VsZWN0b3IgKi97LyogY29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyog
bm90IGFuICFpbXBvcnRhbnQgdW5yZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8K
IAotYm9keS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9Citib2R5Lm1haW4ye2JhY2tncm91bmQ6
IGdyZWVuIC8qIHZhbHVlICFpbXBvcnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNl
bWljb2xvbiwgdmVyeSAhaW1wb3J0YW50ICovfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAppbmRleCBkZGE2N2Fk
Li4yZDI3OWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVz
LXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDIxIEBACi1UZXN0cyB0aGF0
IHByb3BlciBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBy
dWxlIGJvZGllcy4KK1Rlc3RzIHRoYXQgcHJvcGVyIGRhdGEgYW5kIHN0YXJ0L2VuZCBvZmZzZXQg
cG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJv
cGVydGllcy4KIAotYm9keTogWzUtMjhdCi1ib2R5Lm1haW4xOiBbOTgtMTI0XQotYm9keS5tYWlu
MjogWzE1MC0xNjldCi1ib2R5IHsmICAgIGZvbnQtc2l6ZTogMTJweDsmfSYmLyogY29tbWVudCBi
ZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3sv
KiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8mJmJvZHkubWFpbjJ7YmFja2dy
b3VuZDogZ3JlZW47fSYKK2JvZHk6IFs2LTI2Nl0KK1snZm9udC1zaXplJzonMTJweCddIEBbNS0y
MV0KK1snZm9vJzonYmFyJyAhaW1wb3J0YW50IG5vbi1wYXJzZWRdIEBbMjYtMTA0XQorWydoZWln
aHQnOicxMDAlJyAhaW1wb3J0YW50XSBAWzEwOS0xMzNdCitbJ2NvbG9yeic6JyIhaW1wb3J0YW50
Iicgbm9uLXBhcnNlZF0gQFsxMzgtMTU5XQorWydpbXBvcnRhbnQnOicnIG5vbi1wYXJzZWRdIEBb
MTY0LTE3NF0KK1snY29sb3InOiciYmFkY29sb3IiJyAhaW1wb3J0YW50XSBAWzE5MC0yNTldCiti
b2R5Lm1haW4xOiBbMzM3LTQxOF0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0KK1snem9v
JzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9u
LXBhcnNlZF0gQFsyOC04MV0KK2JvZHkubWFpbjI6IFs0NDUtNTQwXQorWydiYWNrZ3JvdW5kJzon
Z3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovJyAhaW1wb3J0YW50XSBAWzAtOTVd
Citib2R5Lm1haW5wYWdlOiBbMTctMTQ5XQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1
LTI3XQorWydiYWRwcm9wZXJ0eSc6JzFiYWR2YWx1ZTEnIG5vbi1wYXJzZWRdIEBbMTA3LTEzMV0K
K2VsZW1lbnQuc3R5bGU6IFswLTMxXQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMC0yMF0K
K1snd2lkdGgnOic4MCUnXSBAWzIxLTMxXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
c3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKaW5kZXggMDUzMzYxMS4uNDJlYjYwMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbApAQCAt
MzUsNTUgKzM1LDQzIEBAIGZ1bmN0aW9uIGZyb250ZW5kX3J1blRlc3QodGVzdENvbnRyb2xsZXIp
CiAgICAgICAgIGZ1bmN0aW9uIHN0eWxlc0NhbGxiYWNrKHRlc3RDb250cm9sbGVyLCBzdHlsZXMp
CiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBtYXRjaGVkQ1NTUnVsZXMgPSBzdHlsZXMubWF0
Y2hlZENTU1J1bGVzOwotICAgICAgICAgICAgdmFyIHBhcmVudFN0eWxlU2hlZXRJZCA9IG1hdGNo
ZWRDU1NSdWxlc1swXS5zdHlsZS5wYXJlbnRTdHlsZVNoZWV0SWQ7Ci0gICAgICAgICAgICBpZiAo
IXBhcmVudFN0eWxlU2hlZXRJZCkgewotICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJl
c3VsdHMucHVzaCgiQkFEIFNUWUxFU0hFRVQgSUQ6ICIgKyBwYXJlbnRTdHlsZVNoZWV0SWQpOwot
ICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIu
cmVzdWx0cyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBtYXRjaGVkQ1NTUnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAg
ICB2YXIgcnVsZSA9IG1hdGNoZWRDU1NSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmdldFN0eWxlU291cmNlRGF0YShydWxlLnN0eWxlLmlkLCBmcm9udGVuZF9zdHls
ZURhdGFSZWNlaXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyLCBydWxlLCBmYWxzZSkpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFuZ2Vz
KHBhcmVudFN0eWxlU2hlZXRJZCwgZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkLmJpbmQobnVs
bCwgdGVzdENvbnRyb2xsZXIsIHBhcmVudFN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzKSk7
CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU291cmNlRGF0YShzdHlsZXMu
aW5saW5lU3R5bGUuaWQsIGZyb250ZW5kX3N0eWxlRGF0YVJlY2VpdmVkLmJpbmQobnVsbCwgdGVz
dENvbnRyb2xsZXIsIHN0eWxlcy5pbmxpbmVTdHlsZSwgdHJ1ZSkpOwogICAgICAgICB9CiAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVzKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1
bWVudC5ib2R5LmlkLCB0cnVlLCBzdHlsZXNDYWxsYmFjay5iaW5kKG51bGwsIHRlc3RDb250cm9s
bGVyKSk7CiAgICAgfSk7CiB9CiAKLWZ1bmN0aW9uIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZl
ZCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsZXMsIHJ1bGVSYW5n
ZXMpCitmdW5jdGlvbiBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwg
cnVsZU9yU3R5bGUsIHNob3VsZEJhaWwsIGRhdGEpCiB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBtYXRjaGVkQ1NTUnVsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHJ1bGUgPSBtYXRj
aGVkQ1NTUnVsZXNbaV07Ci0gICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaChydWxl
LnNlbGVjdG9yVGV4dCArICI6IFsiICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFu
Z2Uuc3RhcnQgKyAiLSIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5nZS5lbmQg
KyAiXSIpOworICAgIHZhciBpc1J1bGUgPSAhIShydWxlT3JTdHlsZS5zdHlsZSk7CisgICAgdGVz
dENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKChpc1J1bGUgPyBydWxlT3JTdHlsZS5zZWxlY3RvclRl
eHQgOiAiZWxlbWVudC5zdHlsZSIpICsgIjogWyIgKyBkYXRhLmJvZHlSYW5nZS5zdGFydCArICIt
IiArIGRhdGEuYm9keVJhbmdlLmVuZCArICJdIik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBk
YXRhLnByb3BlcnR5RGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICB2YXIgcHJvcGVydHlEYXR1
bSA9IGRhdGEucHJvcGVydHlEYXRhW2ldOworICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRz
LnB1c2goIlsnIiArIHByb3BlcnR5RGF0dW0ubmFtZSArICInOiciICsgcHJvcGVydHlEYXR1bS52
YWx1ZSArICInIiArIChwcm9wZXJ0eURhdHVtLmltcG9ydGFudCA/ICIgIWltcG9ydGFudCIgOiAi
IikgKyAocHJvcGVydHlEYXR1bS5wYXJzZWQgPyAiIiA6ICIgbm9uLXBhcnNlZCIpICsiXSBAWyIg
KyBwcm9wZXJ0eURhdHVtLnN0YXJ0ICsgIi0iICsgcHJvcGVydHlEYXR1bS5lbmQgKyAiXSIpOwog
ICAgIH0KLSAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBm
cm9udGVuZF9oYW5kbGVTdHlsZVNoZWV0LmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLX0K
LQotZnVuY3Rpb24gZnJvbnRlbmRfaGFuZGxlU3R5bGVTaGVldCh0ZXN0Q29udHJvbGxlciwgc3R5
bGVTaGVldCkKLXsKLSAgICB2YXIgdXJsID0gc3R5bGVTaGVldC5ocmVmOwotICAgIGlmICh1cmwg
IT09ICIiKSB7Ci0gICAgICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVS
TE1hcFt1cmxdOwotICAgICAgICBpZiAoIXJlc291cmNlKSB7Ci0gICAgICAgICAgICB0ZXN0Q29u
dHJvbGxlci5yZXN1bHRzLnB1c2goIk5PIFJFU09VUkNFIEZPUiBVUkw6ICIgKyB1cmwpOwotICAg
ICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRz
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3Iu
Z2V0UmVzb3VyY2VDb250ZW50KHJlc291cmNlLmlkZW50aWZpZXIsIGZyb250ZW5kX3N0eWxlU2hl
ZXRUZXh0UmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiRU1QVFkgU1RZTEVTSEVFVCBI
UkVGIik7CisgICAgaWYgKHNob3VsZEJhaWwpCiAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7Ci0gICAgfQogfQogCi1mdW5jdGlvbiBmcm9u
dGVuZF9zdHlsZVNoZWV0VGV4dFJlY2VpdmVkKHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0VGV4
dCkKLXsKLSAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goc3R5bGVTaGVldFRleHQucmVw
bGFjZSgvXG4vZywgIiYiKSk7Ci0gICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29u
dHJvbGxlci5yZXN1bHRzKTsKLX0KIDwvc2NyaXB0PgorCis8c3R5bGU+CisKK2JvZHkubWFpbnBh
Z2UgeworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgLyogYXQgbGVhc3Qgb25lIHZhbGlkIHBy
b3BlcnR5IGlzIG5lY2Vzc2FyeSBmb3IgV2ViQ29yZSB0byBtYXRjaCBhIHJ1bGUgKi8KKyAgICBi
YWRwcm9wZXJ0eTogMWJhZHZhbHVlMTsKK30KKworPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkg
Y2xhc3M9Im1haW4xIG1haW4yIiBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxib2R5IGNsYXNzPSJtYWlu
MSBtYWluMiBtYWlucGFnZSIgb25sb2FkPSJvbmxvYWQoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBu
b3JtYWw7IHdpZHRoOiA4MCUiPgogPHA+Ci1UZXN0cyB0aGF0IHByb3BlciBzdGFydC9lbmQgb2Zm
c2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBydWxlIGJvZGllcy4KK1Rlc3RzIHRo
YXQgcHJvcGVyIGRhdGEgYW5kIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRl
ZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIDwvcD4KIAogPC9i
b2R5PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxMWFiZmZmLi4yNGIzMDg5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEwLTA5LTAzICBBbGV4YW5k
ZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBzb3VyY2UtYmFzZWQgcHJvcGVydGll
cyBmb3Igc3R5bGUgZGVjbGFyYXRpb25zIHRvIENTU1BhcnNlciBjbGllbnRzCisKKyAgICAgICAg
VGhpcyBjaGFuZ2U6CisgICAgICAgIC0gRW5hYmxlcyBJbnNwZWN0b3JDU1NTdG9yZSB0byBleHRy
YWN0IENTUyBzdHlsZXNoZWV0IHRleHQgZm9yIGFsbCBzb3VyY2UtYmFzZWQgc3R5bGVzaGVldHMs
CisgICAgICAgICAgZXZlbiB3aXRoIHRoZSByZXNvdXJjZSB0cmFja2luZyB0dXJuZWQgb2ZmLgor
ICAgICAgICAtIEFkZHMgdG8gQ1NTUGFyc2VyIGEgY2FwYWJpbGl0eSBvZiBzb3VyY2UtcmVsYXRl
ZCBzdHlsZSBkZWNsYXJhdGlvbiBkYXRhIGV4dHJhY3Rpb246CisgICAgICAgICAgKiBTdGFydC9l
bmQgc291cmNlIG9mZnNldHMgZm9yIGEgZGVjbGFyYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBwYXJl
bnQgc3R5bGVzaGVldCBzdGFydCBvciB0aGUgInN0eWxlIiBhdHRyaWJ1dGUgdmFsdWUuCisgICAg
ICAgICAgKiBTdGFydC9lbmQgc291cmNlIG9mZnNldHMgZm9yIENTUyBwcm9wZXJ0aWVzLCByZWxh
dGl2ZSB0byB0aGUgZGVjbGFyYXRpb24gc3RhcnQuCisgICAgICAgICAgKiBDU1MgcHJvcGVydHkg
ZGF0YTogbmFtZSwgdmFsdWUsIHByaW9yaXR5LCBXZWJDb3JlIHBhcnNhYmlsaXR5IChpLmUuIGlm
IHRoZSBwcm9wZXJ0eSBpcyB1bmRlcnN0b29kIGJ5IFdlYkNvcmUpLgorICAgICAgICAtIFByb3Zp
ZGVzIHRoZSBleHRyYWN0ZWQgZGF0YSB0byB0aGUgV2ViSW5zcGVjdG9yIGZyb250ZW5kIHZpYSBJ
bnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5bGVTb3VyY2VEYXRhKCkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDk0OQorCisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb246Om5vZGUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpDU1NQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VE
ZWNsYXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUnVs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bWFya1Byb3BlcnR5U3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpmaW5kSW1wb3J0YW50SW5WYWx1ZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eUVuZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyZXNldFByb3BlcnR5TWFya3MpOgor
ICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cm9wZXJ0eURhdHVtOjp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURh
dHVtOjppbml0KToKKyAgICAgICAgKFdURjo6OjplbXB0eVZhbHVlKToKKyAgICAgICAgKiBjc3Mv
Q1NTUHJvcGVydHlEYXR1bS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW06On5DU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW06Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6
b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaDo6aGFzaCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtSGFzaDo6ZXF1YWwpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6cmVzZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OnN0eWxlU2hlZXRUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0
VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3Vy
Y2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFu
Z2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJp
YnV0ZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFy
ZW50U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5s
aW5lU3R5bGVFbGVtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisKIDIwMTAtMDktMDYgIEFudG9u
IE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFt
IEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCAzMzIxY2JiLi5lZDQ0ZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtOTk3LDYgKzk5Nyw4IEBACiAg
ICAgICAgICAgICAnY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCcsCiAgICAgICAgICAg
ICAnY3NzL0NTU1Byb3BlcnR5LmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5Lmgn
LAorICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcCcsCisgICAgICAgICAgICAn
Y3NzL0NTU1Byb3BlcnR5RGF0dW0uaCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5TG9u
Z2hhbmQuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5oJywKICAg
ICAgICAgICAgICdjc3MvQ1NTUXVpcmtQcmltaXRpdmVWYWx1ZS5oJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDNmMjNjZGQuLmM1
YmJlMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtNDMyLDYgKzQzMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NQYXJz
ZXJWYWx1ZXMuY3BwIFwKICAgICBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIFwKICAgICBjc3Mv
Q1NTUHJvcGVydHkuY3BwIFwKKyAgICBjc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAgXAogICAgIGNz
cy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCBcCiAgICAgY3NzL0NTU1JlZmxlY3RWYWx1ZS5jcHAg
XAogICAgIGNzcy9DU1NSdWxlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCBmM2U0OWY1Li41ZDY4M2YwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTI5MzU3LDYgKzI5MzU3LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9wZXJ0eURhdHVtLmNwcCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xD
U1NQcm9wZXJ0eURhdHVtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlMb25naGFuZC5jcHAiDQogCQkJCT4NCiAJ
CQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBjOGI4OGVjLi44ODM5MDQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTQ1Niw2ICsxNDU2LDggQEAKIAkJODFCRTIwRDMxMUY0QkMzMjAwOTE1REZB
IC8qIEpTSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCAqLzsgfTsK
IAkJODJCNjU4OTgxMTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkI2NTg5NzExODlFMzky
MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyogSW5z
cGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNw
cCAqLzsgfTsKKwkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4
REMxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uY3BwICovOyB9OworCQk4MkUz
RDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJD
IC8qIENTU1Byb3BlcnR5RGF0dW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0
MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovOyB9OwogCQk4
NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE1MTIw
RDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwICovOyB9OwogCQk4
NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNjEyMEQ5
MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi87IH07CkBAIC03Mzg0
LDYgKzczODYsOCBAQAogCQk4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJzb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJDdXJzb3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJCNjU4OTcxMTg5RTM5MjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rv
ckNTU1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQjY1ODk5MTE4OUU0
NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVt
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU1Byb3BlcnR5RGF0
dW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MkUzRDhERDEyMkVBMEQxMDAz
QUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDU1NQcm9wZXJ0eURhdHVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0
MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVhbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjk1OCw2ICsxNjk2Miw4IEBACiAJ
CQkJRTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aCAqLywKIAkJCQlBODBFNkNDRDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuY3BwICov
LAogCQkJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQcm9wZXJ0eS5oICovLAorCQkJ
CTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLywKKwkJ
CQk4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovLAogCQkJ
CTBGNkVDRDQ0MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCAqLywK
IAkJCQkwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5oICov
LAogCQkJCUJDRUE0Nzg5MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluICov
LApAQCAtMjA0MzIsNiArMjA0MzgsNyBAQAogCQkJCTg5ODc4NUI5MTIyQ0EyQTcwMDNBQUJEQSAv
KiBKU01ldGFkYXRhQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUYxMTIyRTFF
ODcwMDNBQUJEQSAvKiBKU0ZpbGVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4
NUY1MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yMjg5NSw2ICsyMjkwMiw3IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJBNzAw
M0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3
ODVGMDEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg5ODc4NUY0MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0
eURhdHVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3Jh
bW1hci55IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IGVjNTA3YmUuLjRjNGRlYzUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkKQEAgLTMxNCw3ICszMTQsNyBAQCB3ZWJraXRfa2V5ZnJhbWVfcnVsZToKIDsK
IAogd2Via2l0X2RlY2xzOgotICAgIFdFQktJVF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlIGRl
Y2xhcmF0aW9uX2xpc3QgJ30nIHsKKyAgICBXRUJLSVRfREVDTFNfU1lNICd7JyBtYXliZV9zcGFj
ZV9iZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCAnfScgewogICAgICAgICAvKiBj
YW4gYmUgZW1wdHkgKi8KICAgICB9CiA7CkBAIC05MDMsOCArOTAzLDE1IEBAIHVuYXJ5X29wZXJh
dG9yOgogICB8ICcrJyB7ICQkID0gMTsgfQogICA7CiAKK21heWJlX3NwYWNlX2JlZm9yZV9kZWNs
YXJhdGlvbjoKKyAgICBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRp
Y19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0
KCk7CisgICAgfQorICA7CisKIHJ1bGVzZXQ6Ci0gICAgc2VsZWN0b3JfbGlzdCAneycgbWF5YmVf
c3BhY2UgZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICBzZWxlY3Rvcl9saXN0
ICd7JyBtYXliZV9zcGFjZV9iZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCBjbG9z
aW5nX2JyYWNlIHsKICAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2Vy
Kj4ocGFyc2VyKTsKICAgICAgICAgJCQgPSBwLT5jcmVhdGVTdHlsZVJ1bGUoJDEpOwogICAgIH0K
QEAgLTEzNTUsNiArMTM2Miw4IEBAIGRlY2xhcmF0aW9uX2xpc3Q6CiAKIGRlY2xfbGlzdDoKICAg
ICBkZWNsYXJhdGlvbiAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBz
dGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlT
dGFydCgpOwogICAgICAgICAkJCA9ICQxOwogICAgIH0KICAgICB8IGRlY2xhcmF0aW9uIGludmFs
aWRfYmxvY2tfbGlzdCBtYXliZV9zcGFjZSB7CkBAIC0xMzY0LDEyICsxMzczLDE2IEBAIGRlY2xf
bGlzdDoKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfCBlcnJvciAnOycgbWF5YmVf
c3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihw
YXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgpOwogICAgICAgICAkJCA9IGZh
bHNlOwogICAgIH0KICAgICB8IGVycm9yIGludmFsaWRfYmxvY2tfbGlzdCBlcnJvciAnOycgbWF5
YmVfc3BhY2UgewogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8IGRlY2xfbGlzdCBk
ZWNsYXJhdGlvbiAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0
aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFy
dCgpOwogICAgICAgICAkJCA9ICQxOwogICAgICAgICBpZiAoJDIpCiAgICAgICAgICAgICAkJCA9
ICQyOwpAQCAtMTM4NiwxNSArMTM5OSwyMSBAQCBkZWNsYXJhdGlvbjoKICAgICBwcm9wZXJ0eSAn
OicgbWF5YmVfc3BhY2UgZXhwciBwcmlvIHsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICAgICAg
Q1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAg
Ym9vbCBpc1Byb3BlcnR5UGFyc2VkID0gZmFsc2U7CiAgICAgICAgIGlmICgkMSAmJiAkNCkgewog
ICAgICAgICAgICAgcC0+bV92YWx1ZUxpc3QgPSBwLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDQp
OwogICAgICAgICAgICAgaW50IG9sZFBhcnNlZFByb3BlcnRpZXMgPSBwLT5tX251bVBhcnNlZFBy
b3BlcnRpZXM7CiAgICAgICAgICAgICAkJCA9IHAtPnBhcnNlVmFsdWUoJDEsICQ1KTsKLSAgICAg
ICAgICAgIGlmICghJCQpCisgICAgICAgICAgICBpZiAoISQkKSB7CisgICAgICAgICAgICAgICAg
aWYgKHN0YXRpY19jYXN0PGludD4ocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzKSA9PSBvbGRQYXJz
ZWRQcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICBpc1Byb3BlcnR5UGFyc2VkID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBwLT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHAtPm1fbnVtUGFy
c2VkUHJvcGVydGllcyAtIG9sZFBhcnNlZFByb3BlcnRpZXMpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgaXNQcm9wZXJ0eVBhcnNlZCA9IHRydWU7CiAgICAgICAgICAgICBk
ZWxldGUgcC0+bV92YWx1ZUxpc3Q7CiAgICAgICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IDA7CiAg
ICAgICAgIH0KKyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKCQ1LCBpc1Byb3BlcnR5UGFyc2Vk
KTsKICAgICB9CiAgICAgfAogICAgIHZhcmlhYmxlX3JlZmVyZW5jZSBtYXliZV9zcGFjZSB7CkBA
IC0xNDE3LDExICsxNDM2LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgICAgICAvKiBUaGUgZGVmYXVs
dCBtb3ZhYmxlIHR5cGUgdGVtcGxhdGUgaGFzIGxldHRlci1zcGFjaW5nOiAubm9uZTsgIEhhbmRs
ZSB0aGlzIGJ5IGxvb2tpbmcgZm9yCiAgICAgICAgIGVycm9yIHRva2VucyBhdCB0aGUgc3RhcnQg
b2YgYW4gZXhwciwgcmVjb3ZlciB0aGUgZXhwciBhbmQgdGhlbiB0cmVhdCBhcyBhbiBlcnJvciwg
Y2xlYW5pbmcKICAgICAgICAgdXAgYW5kIGRlbGV0aW5nIHRoZSBzaGlmdGVkIGV4cHIuICAqLwor
ICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwor
ICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgJCQgPSBm
YWxzZTsKICAgICB9CiAgICAgfAogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHBy
aW8gZXJyb3IgewogICAgICAgICAvKiBXaGVuIHdlIGVuY291bnRlciBzb21ldGhpbmcgbGlrZSBw
IHtjb2xvcjogcmVkICFpbXBvcnRhbnQgZmFpbDt9IHdlIHNob3VsZCBkcm9wIHRoZSBkZWNsYXJh
dGlvbiAqLworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihw
YXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAg
ICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfApAQCAtMTQzMiwxMSArMTQ1NSwxNSBAQCBkZWNs
YXJhdGlvbjoKICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIHsKICAgICAgICAg
LyogZGl2IHsgZm9udC1mYW1pbHk6IH0gSnVzdCByZWR1Y2UgYXdheSB0aGlzIHByb3BlcnR5IHdp
dGggbm8gdmFsdWUuICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1Bh
cnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2Up
OwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1h
eWJlX3NwYWNlIGVycm9yIHsKICAgICAgICAgLyogaWYgd2UgY29tZSBhY3Jvc3MgcnVsZXMgd2l0
aCBpbnZhbGlkIHZhbHVlcyBsaWtlIHRoaXMgY2FzZTogcCB7IHdlaWdodDogKjsgfSwganVzdCBk
aXNjYXJkIHRoZSBydWxlICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFs
c2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIGIvV2ViQ29yZS9jc3MvQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24uaAppbmRleCBmNzc1OWY0Li40MDZmZDkxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1dlYkNvcmUv
Y3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTgzLDYgKzgzLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXROb2RlKE5vZGUqIG5vZGUpIHsgbV9ub2RlID0gbm9kZTsgfQogCisg
ICAgTm9kZSogbm9kZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQorCiAgICAgdmlydHVhbCBib29sIGlz
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA2ODcyMzVmLi42
ZTgyYjBiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE0Nyw3ICsxNDcsMTAgQEAgQ1NTUGFyc2VyOjpDU1NQ
YXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nKQogICAgICwgbV9kZWZhdWx0TmFtZXNwYWNlKHN0YXJB
dG9tKQogICAgICwgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KDApCiAgICAgLCBtX3J1bGVCb2R5RW5k
T2Zmc2V0KDApCi0gICAgLCBtX3J1bGVSYW5nZXMoMCkKKyAgICAsIG1fcHJvcGVydHlTdGFydE9m
ZnNldChVSU5UX01BWCkKKyAgICAsIG1fcHJvcGVydHlFbmRPZmZzZXQoVUlOVF9NQVgpCisgICAg
LCBtX3J1bGVSYW5nZU1hcCgwKQorICAgICwgbV9jdXJyZW50U3R5bGVEYXRhKDApCiAgICAgLCBt
X2RhdGEoMCkKICAgICAsIHl5X3N0YXJ0KDEpCiAgICAgLCBtX2xpbmVOdW1iZXIoMCkKQEAgLTE1
OSw2ICsxNjIsNyBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAj
aWYgWVlERUJVRyA+IDAKICAgICBjc3N5eWRlYnVnID0gMTsKICNlbmRpZgorICAgIENTU1Byb3Bl
cnR5RGF0dW06OmluaXQoKTsKIH0KIAogQ1NTUGFyc2VyOjp+Q1NTUGFyc2VyKCkKQEAgLTIyMywx
NiArMjI3LDE5IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBjaGFyKiBwcmVm
aXgsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBjaGFyCiAgICAgcmVzZXRSdWxlQm9keU1h
cmtzKCk7CiB9CiAKLXZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNo
ZWV0LCBjb25zdCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxl
UmFuZ2VzKiBydWxlUmFuZ2VNYXApCit2b2lkIENTU1BhcnNlcjo6cGFyc2VTaGVldChDU1NTdHls
ZVNoZWV0KiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIs
IFN0eWxlUnVsZVJhbmdlTWFwKiBydWxlUmFuZ2VNYXApCiB7CiAgICAgbV9zdHlsZVNoZWV0ID0g
c2hlZXQ7CiAgICAgbV9kZWZhdWx0TmFtZXNwYWNlID0gc3RhckF0b207IC8vIFJlc2V0IHRoZSBk
ZWZhdWx0IG5hbWVzcGFjZS4KLSAgICBtX3J1bGVSYW5nZXMgPSBydWxlUmFuZ2VNYXA7CisgICAg
bV9ydWxlUmFuZ2VNYXAgPSBydWxlUmFuZ2VNYXA7CisgICAgaWYgKHJ1bGVSYW5nZU1hcCkKKyAg
ICAgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVhdGUoKTsK
IAogICAgIG1fbGluZU51bWJlciA9IHN0YXJ0TGluZU51bWJlcjsKICAgICBzZXR1cFBhcnNlcigi
Iiwgc3RyaW5nLCAiIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKLSAgICBtX3J1bGVSYW5nZXMg
PSAwOworICAgIG1fcnVsZVJhbmdlTWFwID0gMDsKKyAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAw
OwogICAgIG1fcnVsZSA9IDA7CiB9CiAKQEAgLTMyOSwxMCArMzM2LDE0IEBAIHZvaWQgQ1NTUGFy
c2VyOjpwYXJzZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBEb2N1bWVudCogZG9jLCBD
U1NTZWxlY3RvckxpCiAgICAgbV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNlbGVjdG9yID0gMDsKIH0K
IAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK2Jvb2wgQ1NTUGFyc2Vy
OjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlv
biwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIENTU1N0eWxlU291cmNlRGF0YSogc3R5bGVTb3VyY2VE
YXRhKQogeworICAgIC8vIExlbmd0aCBvZiB0aGUgIkAtd2Via2l0LWRlY2xzeyIgcHJlZml4Cisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHByZWZpeExlbmd0aCA9IDE1OworCiAgICAgQVNTRVJU
KCFkZWNsYXJhdGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkt
PmlzQ1NTU3R5bGVTaGVldCgpKTsKICAgICBtX3N0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NT
dHlsZVNoZWV0Kj4oZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKSk7CisgICAgbV9jdXJyZW50U3R5
bGVEYXRhID0gc3R5bGVTb3VyY2VEYXRhOwogCiAgICAgc2V0dXBQYXJzZXIoIkAtd2Via2l0LWRl
Y2xzeyIsIHN0cmluZywgIn0gIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKQEAgLTM0Nyw2ICsz
NTgsMTcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdAogICAgICAgICBjbGVhclByb3BlcnRpZXMo
KTsKICAgICB9CiAKKyAgICBpZiAobV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIG1fY3Vy
cmVudFN0eWxlRGF0YS0+c3R5bGVCb2R5UmFuZ2UuZmlyc3QgPSAwOworICAgICAgICBtX2N1cnJl
bnRTdHlsZURhdGEtPnN0eWxlQm9keVJhbmdlLnNlY29uZCA9IHN0cmluZy5sZW5ndGgoKTsKKyAg
ICAgICAgZm9yIChWZWN0b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdl
PiA+OjppdGVyYXRvciBpdCA9IG1fY3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmJlZ2lu
KCk7IGl0ICE9IG1fY3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmVuZCgpOyArK2l0KSB7
CisgICAgICAgICAgICAoKml0KS5zZWNvbmQuZmlyc3QgLT0gcHJlZml4TGVuZ3RoOworICAgICAg
ICAgICAgKCppdCkuc2Vjb25kLnNlY29uZCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAoIW1fcnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURh
dGEgPSAwOwogICAgIHJldHVybiBvazsKIH0KIApAQCAtNTM4NCw4ICs1NDA2LDEyIEBAIENTU1J1
bGUqIENTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxl
Y3RvcnMpCiAgICAgICAgIHJ1bGUtPnNldERlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uOjpjcmVhdGUocnVsZS5nZXQoKSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCBtX251bVBhcnNl
ZFByb3BlcnRpZXMpKTsKICAgICAgICAgcmVzdWx0ID0gcnVsZS5nZXQoKTsKICAgICAgICAgbV9w
YXJzZWRTdHlsZU9iamVjdHMuYXBwZW5kKHJ1bGUucmVsZWFzZSgpKTsKLSAgICAgICAgaWYgKG1f
cnVsZVJhbmdlcykKLSAgICAgICAgICAgIG1fcnVsZVJhbmdlcy0+c2V0KHJlc3VsdCwgc3RkOjpw
YWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4obV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5
RW5kT2Zmc2V0KSk7CisgICAgICAgIGlmIChtX3J1bGVSYW5nZU1hcCkgeworICAgICAgICAgICAg
QVNTRVJUKG1fY3VycmVudFN0eWxlRGF0YSk7CisgICAgICAgICAgICBtX2N1cnJlbnRTdHlsZURh
dGEtPnN0eWxlQm9keVJhbmdlID0gU291cmNlUmFuZ2UobV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBt
X3J1bGVCb2R5RW5kT2Zmc2V0KTsKKyAgICAgICAgICAgIG1fcnVsZVJhbmdlTWFwLT5zZXQocmVz
dWx0LCBtX2N1cnJlbnRTdHlsZURhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIG1fY3VycmVu
dFN0eWxlRGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIH0KICAg
ICB9CiAgICAgcmVzZXRSdWxlQm9keU1hcmtzKCk7CiAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CkBA
IC01NjM4LDcgKzU2NjQsOSBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlTGFzdFNlbGVjdG9yTGlu
ZUFuZFBvc2l0aW9uKCkKIHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAg
ICAgdW5zaWduZWQgb2Zmc2V0ID0geXl0ZXh0IC0gbV9kYXRhOwotICAgIGlmICghbV9ydWxlQm9k
eVN0YXJ0T2Zmc2V0IHx8IG9mZnNldCA8IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKKyAgICBpZiAo
Knl5dGV4dCA9PSAneycpCisgICAgICAgICsrb2Zmc2V0OyAvLyBza2lwIHRoZSBydWxlIGJvZHkg
b3BlbmluZyBicmFjZQorICAgIGlmIChvZmZzZXQgPiBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpCiAg
ICAgICAgIG1fcnVsZUJvZHlTdGFydE9mZnNldCA9IG9mZnNldDsKIH0KIApAQCAtNTY0OSw2ICs1
Njc3LDE0MyBAQCB2b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5RW5kKCkKICAgICAgICAgbV9y
dWxlQm9keUVuZE9mZnNldCA9IG9mZnNldDsKIH0KIAordm9pZCBDU1NQYXJzZXI6Om1hcmtQcm9w
ZXJ0eVN0YXJ0KCkKK3sKKyAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBtX2RhdGE7Cisg
ICAgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0ID0gb2Zmc2V0OworfQorCisvLyBzdGF0aWMKK3Vuc2ln
bmVkIENTU1BhcnNlcjo6ZmluZEltcG9ydGFudEluVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
K3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW1wb3J0YW50U3RyaW5nID0gImltcG9ydGFudCI7
CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGltcG9ydGFudExlbmd0aCA9IDk7CisgICAgZW51
bSBTdGF0ZSB7CisgICAgICAgIElOSVRJQUxfU1RBVEUsCisgICAgICAgIFNUUklOR19TVEFURSwK
KyAgICAgICAgQ09NTUVOVF9TVEFURSwKKyAgICAgICAgQkFOR19TVEFURQorICAgIH07CisKKyAg
ICB1bnNpZ25lZCB2YWx1ZUxlbmd0aCA9IHZhbHVlLmxlbmd0aCgpOworICAgIGlmICh2YWx1ZUxl
bmd0aCA8IGltcG9ydGFudExlbmd0aCArIDEpCisgICAgICAgIHJldHVybiBVSU5UX01BWDsKKyAg
ICB1bnNpZ25lZCBtYXhUb2tlblN0YXJ0SW5kZXggPSB2YWx1ZUxlbmd0aCAtIGltcG9ydGFudExl
bmd0aDsKKyAgICB1bnNpZ25lZCBjdXJyZW50SW5kZXggPSAwOworICAgIHVuc2lnbmVkIGJhbmdJ
bmRleCA9IFVJTlRfTUFYOworICAgIFN0YXRlIHN0YXRlID0gSU5JVElBTF9TVEFURTsKKyAgICBV
Q2hhciBzdHJpbmdUZXJtaW5hdG9yID0gc3RhdGljX2Nhc3Q8VUNoYXI+KDApOworICAgIGNvbnN0
IFVDaGFyKiBjaGFyYWN0ZXJzID0gdmFsdWUuY2hhcmFjdGVycygpOworICAgIHdoaWxlIChjdXJy
ZW50SW5kZXggPD0gbWF4VG9rZW5TdGFydEluZGV4KSB7CisgICAgICAgIFVDaGFyIGNoID0gY2hh
cmFjdGVyc1tjdXJyZW50SW5kZXhdOworICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7CisgICAgICAg
IGNhc2UgSU5JVElBTF9TVEFURToKKyAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAg
ICAgIGNhc2UgJy8nOgorICAgICAgICAgICAgICAgIGlmIChjdXJyZW50SW5kZXggPCB2YWx1ZUxl
bmd0aCAtIDEgJiYgY2hhcmFjdGVyc1tjdXJyZW50SW5kZXggKyAxXSA9PSAnKicpIHsKKyAgICAg
ICAgICAgICAgICAgICAgc3RhdGUgPSBDT01NRU5UX1NUQVRFOworICAgICAgICAgICAgICAgICAg
ICArK2N1cnJlbnRJbmRleDsgLy8gc2tpcCB0aGUgZm9sbG93aW5nICcqJworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyEnOgorICAg
ICAgICAgICAgICAgIHN0YXRlID0gQkFOR19TVEFURTsKKyAgICAgICAgICAgICAgICBiYW5nSW5k
ZXggPSBjdXJyZW50SW5kZXg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlICciJzoKKyAgICAgICAgICAgIGNhc2UgJ1wnJzoKKyAgICAgICAgICAgICAgICBzdGF0ZSA9
IFNUUklOR19TVEFURTsKKyAgICAgICAgICAgICAgICBzdHJpbmdUZXJtaW5hdG9yID0gY2g7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgU1RSSU5HX1NUQVRFOgorICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAg
Y2FzZSAnXFwnOgorICAgICAgICAgICAgICAgICsrY3VycmVudEluZGV4OyAvLyBza2lwIHRoZSBl
c2NhcGVkIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAnIic6CisgICAgICAgICAgICBjYXNlICdcJyc6CisgICAgICAgICAgICAgICAgaWYgKGNoID09
IHN0cmluZ1Rlcm1pbmF0b3IpCisgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElBTF9T
VEFURTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIENPTU1FTlRfU1RBVEU6CisgICAgICAgICAgICBpZiAoY2gg
PT0gJyonICYmIGN1cnJlbnRJbmRleCA8IHZhbHVlTGVuZ3RoIC0gMSAmJiBjaGFyYWN0ZXJzW2N1
cnJlbnRJbmRleCArIDFdID09ICcvJykgeworICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElB
TF9TVEFURTsKKyAgICAgICAgICAgICAgICArK2N1cnJlbnRJbmRleDsgLy8gc2tpcCB0aGUgZm9s
bG93aW5nICcvJworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgQkFOR19TVEFURToKKyAgICAgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgICAgIGNh
c2UgJyAnOgorICAgICAgICAgICAgY2FzZSAnXHQnOgorICAgICAgICAgICAgY2FzZSAnXHInOgor
ICAgICAgICAgICAgY2FzZSAnXG4nOgorICAgICAgICAgICAgY2FzZSAnXGYnOgorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGltcG9ydGFudEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGVj
a0luZGV4ID0gY3VycmVudEluZGV4OworICAgICAgICAgICAgICAgIHdoaWxlIChpbXBvcnRhbnRJ
bmRleCA8IGltcG9ydGFudExlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcmFj
dGVyc1tjaGVja0luZGV4KytdICE9IGltcG9ydGFudFN0cmluZ1tpbXBvcnRhbnRJbmRleCsrXSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBJTklUSUFMX1NUQVRFOworICAgICAg
ICAgICAgICAgICAgICAgICAgLS1jdXJyZW50SW5kZXg7IC8vIHJlLWNoZWNrIHRoZSBzYW1lIHBv
c2l0aW9uIGluIHRoZSBJTklUSUFMIHN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFu
Z0luZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICArK2N1
cnJlbnRJbmRleDsKKyAgICB9CisgICAgcmV0dXJuIFVJTlRfTUFYOworfQorCit2b2lkIENTU1Bh
cnNlcjo6bWFya1Byb3BlcnR5RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3Bl
cnR5UGFyc2VkKQoreworICAgIHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAg
ICBpZiAoKnl5dGV4dCA9PSAnOycpIC8vIGluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3Bl
cnR5IHRleHQKKyAgICAgICAgKytvZmZzZXQ7CisgICAgbV9wcm9wZXJ0eUVuZE9mZnNldCA9IG9m
ZnNldDsKKyAgICBpZiAobV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0ICE9IFVJTlRfTUFYICYmIG1fY3Vy
cmVudFN0eWxlRGF0YSkgeworICAgICAgICAvLyBUaGlzIHN0dWZmIGlzIG9ubHkgZXhlY3V0ZWQg
d2hlbiB0aGUgc3R5bGUgZGF0YSByZXRyaWV2YWwgaXMgcmVxdWVzdGVkIGJ5IGNsaWVudC4KKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc3RhcnQgPSBtX3Byb3BlcnR5U3RhcnRPZmZzZXQ7CisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGVuZCA9IG1fcHJvcGVydHlFbmRPZmZzZXQ7CisgICAgICAgIEFT
U0VSVChzdGFydCA8IGVuZCk7CisgICAgICAgIFN0cmluZyBwcm9wZXJ0eVN0cmluZyA9IFN0cmlu
ZyhtX2RhdGEgKyBzdGFydCwgZW5kIC0gc3RhcnQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAg
ICBpZiAocHJvcGVydHlTdHJpbmcuZW5kc1dpdGgoIjsiLCB0cnVlKSkKKyAgICAgICAgICAgIHBy
b3BlcnR5U3RyaW5nID0gcHJvcGVydHlTdHJpbmcubGVmdChwcm9wZXJ0eVN0cmluZy5sZW5ndGgo
KSAtIDEpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBwcm9wZXJ0eUNvbXBvbmVudHM7CisgICAg
ICAgIHNpemVfdCBjb2xvbkluZGV4ID0gcHJvcGVydHlTdHJpbmcuZmluZCgiOiIpOworICAgICAg
ICBBU1NFUlQoY29sb25JbmRleCAhPSBub3RGb3VuZCk7CisKKyAgICAgICAgU3RyaW5nIG5hbWUg
PSBwcm9wZXJ0eVN0cmluZy5sZWZ0KGNvbG9uSW5kZXgpLnN0cmlwV2hpdGVTcGFjZSgpOworICAg
ICAgICBTdHJpbmcgdmFsdWUgPSBwcm9wZXJ0eVN0cmluZy5zdWJzdHJpbmcoY29sb25JbmRleCAr
IDEsIHByb3BlcnR5U3RyaW5nLmxlbmd0aCgpKS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAg
Ym9vbCBpc0ltcG9ydGFudCA9IGlzSW1wb3J0YW50Rm91bmQ7CisgICAgICAgIGlmIChpc0ltcG9y
dGFudCB8fCAhaXNQcm9wZXJ0eVBhcnNlZCkgeworICAgICAgICAgICAgLy8gTmVlZCB0byBzdHJp
cCAiIXt3fWltcG9ydGFudCIgKHdpdGggdGhlIGZvbGxvd2luZyB0ZXh0KSBpZiB0aGVyZSdzIGEg
Y2hhbmNlIHRoYXQgaXQgaXMgcHJlc2VudCBpbiB0aGUgdmFsdWUuCisgICAgICAgICAgICB1bnNp
Z25lZCBpbXBvcnRhbnRPZmZzZXQgPSBmaW5kSW1wb3J0YW50SW5WYWx1ZSh2YWx1ZSk7CisgICAg
ICAgICAgICBBU1NFUlQoIWlzSW1wb3J0YW50Rm91bmQgfHwgaW1wb3J0YW50T2Zmc2V0ICE9IFVJ
TlRfTUFYKTsKKyAgICAgICAgICAgIGlmIChpbXBvcnRhbnRPZmZzZXQgIT0gVUlOVF9NQVgpIHsK
KyAgICAgICAgICAgICAgICBpc0ltcG9ydGFudCA9IHRydWU7CisgICAgICAgICAgICAgICAgdmFs
dWUgPSB2YWx1ZS5sZWZ0KGltcG9ydGFudE9mZnNldCkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gVGhlIHByb3BlcnR5IHJhbmdlIGlzIHJl
bGF0aXZlIHRvIHRoZSBkZWNsYXJhdGlvbiBzdGFydCBvZmZzZXQuCisgICAgICAgIG1fY3VycmVu
dFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmFwcGVuZCgKKyAgICAgICAgICAgIHN0ZDo6cGFpcjxD
U1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4oQ1NTUHJvcGVydHlEYXR1bShuYW1lLCB2YWx1
ZSwgaXNJbXBvcnRhbnQsIGlzUHJvcGVydHlQYXJzZWQpLCBTb3VyY2VSYW5nZShtX3Byb3BlcnR5
U3RhcnRPZmZzZXQgLSBtX3J1bGVCb2R5U3RhcnRPZmZzZXQsIG1fcHJvcGVydHlFbmRPZmZzZXQg
LSBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpKSk7CisgICAgfQorICAgIHJlc2V0UHJvcGVydHlNYXJr
cygpOworfQorCiBzdGF0aWMgaW50IGNzc1Byb3BlcnR5SUQoY29uc3QgVUNoYXIqIHByb3BlcnR5
TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA2
MjExZTYyLi4zNTdhOWNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysg
Yi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAi
Q29sb3IuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJWYWx1ZXMuaCIKKyNpbmNsdWRlICJDU1NQcm9w
ZXJ0eURhdHVtLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFRdWVyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NSwxOCArNTYsMTYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgQ1NTUGFyc2VyIHsKICAgICBwdWJsaWM6
Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBzdGQ6OnBhaXI8dW5zaWdu
ZWQsIHVuc2lnbmVkPiA+IFN0eWxlUnVsZVJhbmdlczsKLQogICAgICAgICBDU1NQYXJzZXIoYm9v
bCBzdHJpY3RQYXJzaW5nID0gdHJ1ZSk7CiAgICAgICAgIH5DU1NQYXJzZXIoKTsKIAotICAgICAg
ICB2b2lkIHBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYsIGludCBzdGFy
dExpbmVOdW1iZXIgPSAwLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1bGVSYW5nZU1hcCA9IDApOworICAg
ICAgICB2b2lkIHBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYsIGludCBz
dGFydExpbmVOdW1iZXIgPSAwLCBTdHlsZVJ1bGVSYW5nZU1hcCogcnVsZVJhbmdlTWFwID0gMCk7
CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VSdWxlKENTU1N0eWxlU2hlZXQqLCBj
b25zdCBTdHJpbmcmKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NSdWxlPiBwYXJzZUtleWZyYW1l
UnVsZShDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CiAgICAgICAgIGJvb2wgcGFyc2VW
YWx1ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGludCBwcm9wSWQsIGNvbnN0IFN0cmlu
ZyYsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgc3RhdGljIGJvb2wgcGFyc2VDb2xvcihSR0JB
MzImIGNvbG9yLCBjb25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9IGZhbHNlKTsKICAgICAgICAg
Ym9vbCBwYXJzZUNvbG9yKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgU3RyaW5n
Jik7Ci0gICAgICAgIGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiosIGNvbnN0IFN0cmluZyYpOworICAgICAgICBib29sIHBhcnNlRGVjbGFyYXRpb24oQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmLCBDU1NTdHlsZVNvdXJjZURh
dGEqIHN0eWxlU291cmNlRGF0YSA9IDApOwogICAgICAgICBib29sIHBhcnNlTWVkaWFRdWVyeShN
ZWRpYUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKIAogICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQo
KSBjb25zdDsKQEAgLTI0NCwxMCArMjQzLDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgLy8gdG9rZW5pemVyIG1ldGhvZHMgYW5kIGRhdGEKICAgICAgICAgdW5zaWduZWQgbV9ydWxl
Qm9keVN0YXJ0T2Zmc2V0OwogICAgICAgICB1bnNpZ25lZCBtX3J1bGVCb2R5RW5kT2Zmc2V0Owot
ICAgICAgICBTdHlsZVJ1bGVSYW5nZXMqIG1fcnVsZVJhbmdlczsKKyAgICAgICAgdW5zaWduZWQg
bV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAgICB1bnNpZ25lZCBtX3Byb3BlcnR5RW5kT2Zm
c2V0OworICAgICAgICBTdHlsZVJ1bGVSYW5nZU1hcCogbV9ydWxlUmFuZ2VNYXA7CisgICAgICAg
IFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IG1fY3VycmVudFN0eWxlRGF0YTsKICAgICAgICAg
dm9pZCBtYXJrUnVsZUJvZHlTdGFydCgpOwogICAgICAgICB2b2lkIG1hcmtSdWxlQm9keUVuZCgp
OworICAgICAgICB2b2lkIG1hcmtQcm9wZXJ0eVN0YXJ0KCk7CisgICAgICAgIHZvaWQgbWFya1By
b3BlcnR5RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5UGFyc2VkKTsK
ICAgICAgICAgdm9pZCByZXNldFJ1bGVCb2R5TWFya3MoKSB7IG1fcnVsZUJvZHlTdGFydE9mZnNl
dCA9IG1fcnVsZUJvZHlFbmRPZmZzZXQgPSAwOyB9CisgICAgICAgIHZvaWQgcmVzZXRQcm9wZXJ0
eU1hcmtzKCkgeyBtX3Byb3BlcnR5U3RhcnRPZmZzZXQgPSBtX3Byb3BlcnR5RW5kT2Zmc2V0ID0g
VUlOVF9NQVg7IH0KKyAgICAgICAgc3RhdGljIHVuc2lnbmVkIGZpbmRJbXBvcnRhbnRJblZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgICAgICBpbnQgbGV4KHZvaWQqIHl5bHZhbCk7CiAg
ICAgICAgIGludCB0b2tlbigpIHsgcmV0dXJuIHl5VG9rOyB9CiAgICAgICAgIFVDaGFyKiB0ZXh0
KGludCogbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0u
Y3BwIGIvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uN2RiNTQ3NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3Nz
L0NTU1Byb3BlcnR5RGF0dW0uY3BwCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0
IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorCisjaWZkZWYgU0tJUF9TVEFUSUNfQ09OU1RSVUNUT1JTX09OX0dDQworI2RlZmluZSBDU1NQ
Uk9QRVJUWURBVFVNX0hJREVfR0xPQkFMUyAxCisjZW5kaWYKKworI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5RGF0dW0uaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3Rm
L1N0YXRpY0NvbnN0cnVjdG9ycy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NTU1Byb3Bl
cnR5RGF0dW06OkNTU1Byb3BlcnR5RGF0dW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBwYXJzZWQpCisgICAgOiBuYW1lKG5hbWUp
CisgICAgLCB2YWx1ZSh2YWx1ZSkKKyAgICAsIGltcG9ydGFudChpbXBvcnRhbnQpCisgICAgLCBw
YXJzZWQocGFyc2VkKQoreworfQorCitDU1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVt
KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKQorICAgIDogbmFtZShvdGhlci5uYW1lKQor
ICAgICwgdmFsdWUob3RoZXIudmFsdWUpCisgICAgLCBpbXBvcnRhbnQob3RoZXIuaW1wb3J0YW50
KQorICAgICwgcGFyc2VkKG90aGVyLnBhcnNlZCkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bTo6
Q1NTUHJvcGVydHlEYXR1bSgpCisgICAgOiBuYW1lKCIiKQorICAgICwgdmFsdWUoIiIpCisgICAg
LCBpbXBvcnRhbnQoZmFsc2UpCisgICAgLCBwYXJzZWQoZmFsc2UpCit7Cit9CisKK0NTU1Byb3Bl
cnR5RGF0dW0mIENTU1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPShjb25zdCBDU1NQcm9wZXJ0eURh
dHVtJiBvdGhlcikKK3sKKyAgICBuYW1lID0gb3RoZXIubmFtZTsKKyAgICB2YWx1ZSA9IG90aGVy
LnZhbHVlOworICAgIGltcG9ydGFudCA9IG90aGVyLmltcG9ydGFudDsKKyAgICBwYXJzZWQgPSBv
dGhlci5wYXJzZWQ7CisgICAgcmV0dXJuICp0aGlzOworfQorCitTdHJpbmcgQ1NTUHJvcGVydHlE
YXR1bTo6dG9TdHJpbmcoKSBjb25zdAoreworICAgIGlmICghbmFtZSAmJiB2YWx1ZSA9PSAiZSIp
CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZyByZXN1bHQgPSBuYW1lOwor
ICAgIHJlc3VsdCArPSAiOiAiOworICAgIHJlc3VsdCArPSB2YWx1ZTsKKyAgICBpZiAoaW1wb3J0
YW50KQorICAgICAgICByZXN1bHQgKz0gIiAhaW1wb3J0YW50IjsKKyAgICByZXN1bHQgKz0gIjsi
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8vIEdsb2JhbCBpbml0IHJvdXRpbmVzCitERUZJ
TkVfR0xPQkFMKENTU1Byb3BlcnR5RGF0dW0sIGVtcHR5Q1NTUHJvcGVydHlEYXR1bSwgIiIsICJl
IiwgZmFsc2UsIGZhbHNlKQorCisvLyBzdGF0aWMKK3ZvaWQgQ1NTUHJvcGVydHlEYXR1bTo6aW5p
dCgpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7CisgICAgaWYgKCFpbml0aWFsaXpl
ZCkgeworICAgICAgICBuZXcgKCh2b2lkICopICZlbXB0eUNTU1Byb3BlcnR5RGF0dW0pIENTU1By
b3BlcnR5RGF0dW0oIiIsICJlIiwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQg
PSB0cnVlOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKK25hbWVzcGFj
ZSBXVEYgeworCitXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtIEhhc2hUcmFpdHM8V2ViQ29yZTo6
Q1NTUHJvcGVydHlEYXR1bT46OmVtcHR5VmFsdWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9D
QUwoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSwgZW1wdHlIYXNoVmFsdWUsICgiIiwgImgiLCBm
YWxzZSwgZmFsc2UpKTsKKyAgICByZXR1cm4gZW1wdHlIYXNoVmFsdWU7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5oIGIv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmYwN2I3OWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eURhdHVtLmgKQEAgLTAsMCArMSwxMTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENTU1Byb3BlcnR5RGF0dW1faAor
I2RlZmluZSBDU1NQcm9wZXJ0eURhdHVtX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ1NTU3R5bGVSdWxlOworCit0eXBlZGVmIHN0ZDo6cGFp
cjx1bnNpZ25lZCwgdW5zaWduZWQ+IFNvdXJjZVJhbmdlOworCitzdHJ1Y3QgQ1NTUHJvcGVydHlE
YXR1bSB7CisgICAgc3RhdGljIHZvaWQgaW5pdCgpOworCisgICAgQ1NTUHJvcGVydHlEYXR1bShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBi
b29sIHBhcnNlZCk7CisgICAgQ1NTUHJvcGVydHlEYXR1bShjb25zdCBDU1NQcm9wZXJ0eURhdHVt
JiBvdGhlcik7CisgICAgQ1NTUHJvcGVydHlEYXR1bSgpOworICAgIEFMV0FZU19JTkxJTkUgfkNT
U1Byb3BlcnR5RGF0dW0oKSB7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQcm9w
ZXJ0eURhdHVtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbmFtZSA9PSBvdGhlci5uYW1lICYmIHZh
bHVlID09IG90aGVyLnZhbHVlICYmIGltcG9ydGFudCA9PSBvdGhlci5pbXBvcnRhbnQgJiYgcGFy
c2VkID09IG90aGVyLnBhcnNlZDsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDU1NQcm9w
ZXJ0eURhdHVtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKwor
ICAgIENTU1Byb3BlcnR5RGF0dW0mIG9wZXJhdG9yPShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBv
dGhlcik7CisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgbmFtZTsK
KyAgICBTdHJpbmcgdmFsdWU7CisgICAgYm9vbCBpbXBvcnRhbnQ7CisgICAgYm9vbCBwYXJzZWQ7
Cit9OwordHlwZWRlZiBzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgYm9vbD4gU291cmNlQXdh
cmVQcm9wZXJ0eURhdHVtOworCisjaWZuZGVmIENTU1BST1BFUlRZREFUVU1fSElERV9HTE9CQUxT
CitleHRlcm4gY29uc3QgQ1NTUHJvcGVydHlEYXR1bSBlbXB0eUNTU1Byb3BlcnR5RGF0dW07Cisj
ZW5kaWYKKworc3RydWN0IENTU1N0eWxlU291cmNlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPENT
U1N0eWxlU291cmNlRGF0YT4geworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1N0eWxlU291cmNl
RGF0YT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTU3R5
bGVTb3VyY2VEYXRhKCkpOworICAgIH0KKworICAgIC8vIFJhbmdlIG9mIHRoZSBzdHlsZSB0ZXh0
IGluIHRoZSBlbmNsb3Npbmcgc291cmNlIChzdGFydCBhbmQgZW5kIG9mZnNldHMgaW5jbHVzaXZl
KS4KKyAgICBTb3VyY2VSYW5nZSBzdHlsZUJvZHlSYW5nZTsKKyAgICBWZWN0b3I8c3RkOjpwYWly
PENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdlPiA+IHByb3BlcnR5RGF0YTsKK307Cit0eXBl
ZGVmIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiBT
dHlsZVJ1bGVSYW5nZU1hcDsKKworc3RydWN0IENTU1Byb3BlcnR5RGF0dW1IYXNoIHsKKyAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChDU1NQcm9wZXJ0eURhdHVtIGtleSkKKyAgICB7CisgICAgICAg
IHJldHVybiBTdHJpbmdIYXNoOjpoYXNoKGtleS5uYW1lKSArIFN0cmluZ0hhc2g6Omhhc2goa2V5
LnZhbHVlKSArIDcgKiBrZXkuaW1wb3J0YW50ICsgMyAqIGtleS5wYXJzZWQgKyAzMTsKKyAgICB9
CisKKyAgICBzdGF0aWMgYm9vbCBlcXVhbChDU1NQcm9wZXJ0eURhdHVtIGEsIENTU1Byb3BlcnR5
RGF0dW0gYikKKyAgICB7CisgICAgICAgIHJldHVybiBhLm5hbWUgPT0gYi5uYW1lICYmIGEudmFs
dWUgPT0gYi52YWx1ZSAmJiBhLmltcG9ydGFudCA9PSBiLmltcG9ydGFudCAmJiBhLnBhcnNlZCA9
PSBiLnBhcnNlZDsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJl
VG9FbXB0eU9yRGVsZXRlZCA9IGZhbHNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IERlZmF1bHRI
YXNoOwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6Q1NTUHJvcGVydHlE
YXR1bT4geworICAgIHR5cGVkZWYgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bUhhc2ggSGFzaDsK
K307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJvcGVydHlE
YXR1bT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtPiB7Cisg
ICAgc3RhdGljIGNvbnN0IGJvb2wgbmVlZHNEZXN0cnVjdGlvbiA9IGZhbHNlOworICAgIHN0YXRp
YyBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtIGVtcHR5VmFsdWUoKTsKKworICAgIHN0YXRpYyB2
b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtJiBzbG90
KSB7IG5ldyAoJnNsb3QpIFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0oIiIsICJEIiwgZmFsc2Us
IGZhbHNlKTsgfQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6
OkNTU1Byb3BlcnR5RGF0dW0mIHNsb3QpIHsgcmV0dXJuICFzbG90Lm5hbWUubGVuZ3RoKCkgJiYg
c2xvdC52YWx1ZSA9PSAiRCI7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYg
Ly8gQ1NTUHJvcGVydHlEYXR1bV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuaWRsIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCAxNjliMTg4
Li45OWIwMmZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTE4OCw3ICsxODgsNyBAQCBt
b2R1bGUgY29yZSB7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRJbmxpbmVTdHlsZShp
biBsb25nIG5vZGVJZCwgb3V0IFZhbHVlIHN0eWxlKTsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2
b2lkIGdldENvbXB1dGVkU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CiAg
ICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRTdHlsZVNoZWV0KGluIGxvbmcgc3R5bGVTaGVl
dElkLCBvdXQgT2JqZWN0IHN0eWxlU2hlZXQpOwotICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQg
Z2V0UnVsZVJhbmdlcyhpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IFZhbHVlIHJhbmdlcyk7Cisg
ICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBnZXRTdHlsZVNvdXJjZURhdGEoaW4gbG9uZyBzdHls
ZVNoZWV0SWQsIG91dCBPYmplY3Qgc3R5bGVTb3VyY2VEYXRhKTsKICAgICAgICAgW2hhbmRsZXI9
RE9NXSB2b2lkIGFwcGx5U3R5bGVUZXh0KGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxl
VGV4dCwgaW4gU3RyaW5nIHByb3BlcnR5TmFtZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcywgb3V0IFZh
bHVlIHN0eWxlLCBvdXQgQXJyYXkgY2hhbmdlZFByb3BlcnRpZXMpOwogICAgICAgICBbaGFuZGxl
cj1ET01dIHZvaWQgc2V0U3R5bGVUZXh0KGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIHN0eWxl
VGV4dCwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBz
ZXRTdHlsZVByb3BlcnR5KGluIGxvbmcgc3R5bGVJZCwgaW4gU3RyaW5nIG5hbWUsIGluIFN0cmlu
ZyB2YWx1ZSwgb3V0IGJvb2xlYW4gc3VjY2Vzcyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NTdG9yZS5jcHAKaW5kZXggYzJkYzRmMS4uZWU5ZjRiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNTU1N0b3JlLmNwcApAQCAtMzcsMTEgKzM3LDIwIEBACiAjaW5jbHVkZSAiQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU1N0eWxlUnVsZS5oIgogI2luY2x1ZGUgIkNT
U1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDYWNoZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlLmgiCisjaW5jbHVkZSAiRG9jTG9hZGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJI
VE1MSGVhZEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJT
dHlsZVNoZWV0TGlzdC5oIgorI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTY3LDYgKzc2LDcgQEAgdm9pZCBJbnNwZWN0b3JDU1NTdG9yZTo6cmVz
ZXQoKQogICAgIG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5jbGVhcigpOwogICAgIG1fc3R5bGVTaGVl
dFRvSWQuY2xlYXIoKTsKICAgICBtX2lkVG9TdHlsZVNoZWV0LmNsZWFyKCk7CisgICAgbV9pZFRv
U3R5bGVTaGVldFRleHQuY2xlYXIoKTsKICAgICBtX2lkVG9EaXNhYmxlZFN0eWxlLmNsZWFyKCk7
CiAgICAgbV9kb2N1bWVudE5vZGVUb0luc3BlY3RvclN0eWxlU2hlZXRNYXAuY2xlYXIoKTsKIApA
QCAtMTA0LDQ4ICsxMTQsMTgwIEBAIENTU1N0eWxlU2hlZXQqIEluc3BlY3RvckNTU1N0b3JlOjpp
bnNwZWN0b3JTdHlsZVNoZWV0KERvY3VtZW50KiBvd25lckRvY3VtZW50LCBiCiAgICAgcmV0dXJu
IGluc3BlY3RvclN0eWxlU2hlZXQ7CiB9CiAKLUhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IElu
c3BlY3RvckNTU1N0b3JlOjpnZXRSdWxlUmFuZ2VzKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQp
CitTdHJpbmcgSW5zcGVjdG9yQ1NTU3RvcmU6OnN0eWxlU2hlZXRUZXh0KGxvbmcgc3R5bGVTaGVl
dElkKQogeworICAgIElkVG9TdHlsZVNoZWV0VGV4dE1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkVG9T
dHlsZVNoZWV0VGV4dC5maW5kKHN0eWxlU2hlZXRJZCk7CisgICAgaWYgKGl0ICE9IG1faWRUb1N0
eWxlU2hlZXRUZXh0LmVuZCgpKQorICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKKworICAgIENT
U1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZVNoZWV0Rm9ySWQoc3R5bGVTaGVldElkKTsK
ICAgICBpZiAoIXN0eWxlU2hlZXQpCi0gICAgICAgIHJldHVybiBIYXNoTWFwPGxvbmcsIFNvdXJj
ZVJhbmdlPigpOwotICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gb3JpZ2luYWxSdWxlTGlzdCA9IENT
U1J1bGVMaXN0OjpjcmVhdGUoc3R5bGVTaGVldCwgZmFsc2UpOworICAgICAgICByZXR1cm4gU3Ry
aW5nKCk7CisgICAgU3RyaW5nIHRleHQ7CisKKyAgICBOb2RlKiBvd25lck5vZGUgPSBzdHlsZVNo
ZWV0LT5vd25lck5vZGUoKTsKKyAgICBpZiAob3duZXJOb2RlICYmIG93bmVyTm9kZS0+bm9kZVR5
cGUoKSA9PSBOb2RlOjpFTEVNRU5UX05PREUpIHsKKyAgICAgICAgRWxlbWVudCogb3duZXJFbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG93bmVyTm9kZSk7CisgICAgICAgIGlmIChvd25l
ckVsZW1lbnQtPnRhZ05hbWUoKS5sb3dlcigpID09ICJzdHlsZSIpCisgICAgICAgICAgICB0ZXh0
ID0gaW5saW5lU3R5bGVTaGVldFRleHQoc3R5bGVTaGVldCk7CisgICAgfQorICAgIGlmICh0ZXh0
LmlzRW1wdHkoKSkKKyAgICAgICAgdGV4dCA9IHJlc291cmNlU3R5bGVTaGVldFRleHQoc3R5bGVT
aGVldCk7CisKKyAgICBpZiAoIXRleHQuaXNFbXB0eSgpKQorICAgICAgICBtX2lkVG9TdHlsZVNo
ZWV0VGV4dC5zZXQoc3R5bGVTaGVldElkLCB0ZXh0KTsKKyAgICByZXR1cm4gdGV4dDsKK30KKwor
U3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0KENTU1N0eWxl
U2hlZXQqIHN0eWxlU2hlZXQpCit7CisgICAgS1VSTCBzdHlsZVNoZWV0VVJMID0gc3R5bGVTaGVl
dC0+ZmluYWxVUkwoKTsKKyAgICBEb2N1bWVudCogZG9jID0gc3R5bGVTaGVldC0+ZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFN0cmluZyB0
ZXh0RW5jb2RpbmdOYW1lOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKKyAgICBp
ZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihzdHlsZVNoZWV0VVJMLCBkb2MtPmZy
YW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0VVJMKCkpKSB7CisgICAg
ICAgIHRleHRFbmNvZGluZ05hbWUgPSBkb2MtPmlucHV0RW5jb2RpbmcoKTsKKyAgICAgICAgYnVm
ZmVyID0gZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+cHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigp
LT5tYWluUmVzb3VyY2VEYXRhKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc3QgU3RyaW5n
JiB1cmwgPSBzdHlsZVNoZWV0VVJMLnN0cmluZygpOworICAgICAgICBDYWNoZWRSZXNvdXJjZSog
Y2FjaGVkUmVzb3VyY2UgPSBkb2MtPmRvY0xvYWRlcigpLT5jYWNoZWRSZXNvdXJjZSh1cmwpOwor
ICAgICAgICBpZiAoIWNhY2hlZFJlc291cmNlKQorICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2Ug
PSBjYWNoZSgpLT5yZXNvdXJjZUZvclVSTCh1cmwpOworCisgICAgICAgIEFTU0VSVChjYWNoZWRS
ZXNvdXJjZSk7IC8vIEZJWE1FKGFwYXZsb3YpOiBUaGlzIG1pZ2h0IGJlIHRvbyBhZ2dyZXNzaXZl
CisKKyAgICAgICAgYm9vbCBpc1VucHVyZ2VhYmxlID0gdHJ1ZTsKKyAgICAgICAgaWYgKGNhY2hl
ZFJlc291cmNlLT5pc1B1cmdlYWJsZSgpKSB7CisgICAgICAgICAgICAvLyBJZiB0aGUgcmVzb3Vy
Y2UgaXMgcHVyZ2VhYmxlIHRoZW4gbWFrZSBpdCB1bnB1cmdlYWJsZSB0byBnZXQKKyAgICAgICAg
ICAgIC8vIGl0cyBkYXRhLiBUaGlzIG1pZ2h0IGZhaWwsIGluIHdoaWNoIGNhc2Ugd2UgcmV0dXJu
IGFuCisgICAgICAgICAgICAvLyBlbXB0eSBTdHJpbmcuCisgICAgICAgICAgICBpZiAoIWNhY2hl
ZFJlc291cmNlLT5tYWtlUHVyZ2VhYmxlKGZhbHNlKSkKKyAgICAgICAgICAgICAgICBpc1VucHVy
Z2VhYmxlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzVW5wdXJnZWFibGUpIHsK
KyAgICAgICAgICAgIHRleHRFbmNvZGluZ05hbWUgPSBjYWNoZWRSZXNvdXJjZS0+ZW5jb2Rpbmco
KTsKKyAgICAgICAgICAgIGJ1ZmZlciA9IGNhY2hlZFJlc291cmNlLT5kYXRhKCk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBpZiAoYnVmZmVyKSB7CisgICAgICAgIFRleHRFbmNvZGluZyBlbmNv
ZGluZyh0ZXh0RW5jb2RpbmdOYW1lKTsKKyAgICAgICAgaWYgKCFlbmNvZGluZy5pc1ZhbGlkKCkp
CisgICAgICAgICAgICBlbmNvZGluZyA9IFdpbmRvd3NMYXRpbjFFbmNvZGluZygpOworICAgICAg
ICByZXR1cm4gZW5jb2RpbmcuZGVjb2RlKGJ1ZmZlci0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSk7
CisgICAgfQorCisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgSW5zcGVjdG9yQ1NT
U3RvcmU6OmlubGluZVN0eWxlU2hlZXRUZXh0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQpCit7
CisgICAgTm9kZSogb3duZXJOb2RlID0gc3R5bGVTaGVldC0+b3duZXJOb2RlKCk7CisgICAgaWYg
KCFvd25lck5vZGUgfHwgb3duZXJOb2RlLT5ub2RlVHlwZSgpICE9IE5vZGU6OkVMRU1FTlRfTk9E
RSB8fCBtX3N0eWxlU2hlZXRUb0lkLmZpbmQoc3R5bGVTaGVldCkgPT0gbV9zdHlsZVNoZWV0VG9J
ZC5lbmQoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIEVsZW1lbnQqIG93bmVyRWxl
bWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihvd25lck5vZGUpOworICAgIGlmIChvd25lckVs
ZW1lbnQtPnRhZ05hbWUoKS5sb3dlcigpICE9ICJzdHlsZSIpCisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKyAgICByZXR1cm4gb3duZXJFbGVtZW50LT5pbm5lclRleHQoKTsKK30KKworCisvLyBB
bGwgcmFuZ2VzIGFyZTogW3N0YXJ0OyBlbmQpIChzdGFydCAtIGluY2x1c2l2ZSwgZW5kIC0gZXhj
bHVzaXZlKQorYm9vbCBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3VyY2VEYXRhKENTU1N0
eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0
KQoreworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1l
bnQqIGVsZW1lbnQgPSBpbmxpbmVTdHlsZUVsZW1lbnQoc3R5bGUpOworICAgIGlmIChlbGVtZW50
KSB7CisgICAgICAgIC8vIElubGluZTogc3R5bGU9Ii4uLiIKKyAgICAgICAgUmVmUHRyPENTU1N0
eWxlU291cmNlRGF0YT4gc3R5bGVTb3VyY2VEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVh
dGUoKTsKKyAgICAgICAgYm9vbCBzdWNjZXNzID0gZ2V0U3R5bGVBdHRyaWJ1dGVSYW5nZXMoZWxl
bWVudCwgJnN0eWxlU291cmNlRGF0YSk7CisgICAgICAgIGlmICghc3VjY2VzcykKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgKnJlc3VsdCA9IHN0eWxlU291cmNlRGF0YTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVl
dCA9IGdldFBhcmVudFN0eWxlU2hlZXQoc3R5bGUpOworICAgIGlmICghc3R5bGVTaGVldCkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURh
dGE+ID4qIHJhbmdlc1ZlY3RvciA9IDA7CiAgICAgU3R5bGVTaGVldFRvT2Zmc2V0c01hcDo6aXRl
cmF0b3IgaXQgPSBtX3N0eWxlU2hlZXRUb09mZnNldHMuZmluZChzdHlsZVNoZWV0KTsKLSAgICBW
ZWN0b3I8U291cmNlUmFuZ2U+KiBvZmZzZXRWZWN0b3IgPSAwOwogICAgIGlmIChpdCA9PSBtX3N0
eWxlU2hlZXRUb09mZnNldHMuZW5kKCkpIHsKLSAgICAgICAgSW5zcGVjdG9yUmVzb3VyY2UqIHJl
c291cmNlID0gbV9pbnNwZWN0b3JDb250cm9sbGVyLT5yZXNvdXJjZUZvclVSTChzdHlsZVNoZWV0
LT5maW5hbFVSTCgpLnN0cmluZygpKTsKLSAgICAgICAgaWYgKHJlc291cmNlKSB7Ci0gICAgICAg
ICAgICBvZmZzZXRWZWN0b3IgPSBuZXcgVmVjdG9yPFNvdXJjZVJhbmdlPjsKKyAgICAgICAgU3Ry
aW5nIHRleHQgPSBzdHlsZVNoZWV0VGV4dChiaW5kU3R5bGVTaGVldChzdHlsZVNoZWV0KSk7Cisg
ICAgICAgIGlmICghdGV4dC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxDU1NTdHls
ZVNoZWV0PiBuZXdTdHlsZVNoZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlKHN0eWxlU2hlZXQt
Pm93bmVyTm9kZSgpKTsKICAgICAgICAgICAgIENTU1BhcnNlciBwOwotICAgICAgICAgICAgQ1NT
UGFyc2VyOjpTdHlsZVJ1bGVSYW5nZXMgcnVsZVJhbmdlTWFwOwotICAgICAgICAgICAgcC5wYXJz
ZVNoZWV0KG5ld1N0eWxlU2hlZXQuZ2V0KCksIHJlc291cmNlLT5zb3VyY2VTdHJpbmcoKSwgMCwg
JnJ1bGVSYW5nZU1hcCk7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGgg
PSBuZXdTdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAg
ICAgICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gYXNDU1NTdHlsZVJ1bGUobmV3U3R5bGVTaGVldC0+
aXRlbShpKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFydWxlKQotICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBIYXNoTWFwPENTU1N0eWxlUnVsZSosIHN0ZDo6
cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+ID46Oml0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlTWFwLmZp
bmQocnVsZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGl0ICE9IHJ1bGVSYW5nZU1hcC5lbmQoKSkK
LSAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VmVjdG9yLT5hcHBlbmQoaXQtPnNlY29uZCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX3N0eWxlU2hlZXRUb09mZnNldHMuc2V0KHN0eWxl
U2hlZXQsIG9mZnNldFZlY3Rvcik7CisgICAgICAgICAgICBTdHlsZVJ1bGVSYW5nZU1hcCBydWxl
UmFuZ2VNYXA7CisgICAgICAgICAgICBwLnBhcnNlU2hlZXQobmV3U3R5bGVTaGVldC5nZXQoKSwg
dGV4dCwgMCwgJnJ1bGVSYW5nZU1hcCk7CisgICAgICAgICAgICByYW5nZXNWZWN0b3IgPSBuZXcg
VmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID47CisgICAgICAgICAgICBleHRyYWN0
UmFuZ2VzKG5ld1N0eWxlU2hlZXQuZ2V0KCksIHJ1bGVSYW5nZU1hcCwgcmFuZ2VzVmVjdG9yKTsK
KyAgICAgICAgICAgIG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5zZXQoc3R5bGVTaGVldCwgcmFuZ2Vz
VmVjdG9yKTsKICAgICAgICAgfQogICAgIH0gZWxzZQotICAgICAgICBvZmZzZXRWZWN0b3IgPSBp
dC0+c2Vjb25kOwotICAgIGlmICghb2Zmc2V0VmVjdG9yKQotICAgICAgICByZXR1cm4gSGFzaE1h
cDxsb25nLCBTb3VyY2VSYW5nZT4oKTsKKyAgICAgICAgcmFuZ2VzVmVjdG9yID0gaXQtPnNlY29u
ZDsKKyAgICBpZiAoIXJhbmdlc1ZlY3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
dW5zaWduZWQgcnVsZUluZGV4ID0gMDsKLSAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBy
ZXN1bHQ7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gc3R5bGVTaGVldC0+bGVu
Z3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBBU1NFUlQocnVsZUluZGV4IDwgb2Zm
c2V0VmVjdG9yLT5zaXplKCkpOwogICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0
eWxlUnVsZShzdHlsZVNoZWV0LT5pdGVtKGkpKTsKICAgICAgICAgaWYgKCFydWxlKQogICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIC8vIFRoaXMgbWFwcyB0aGUgc3R5bGUgaWQgdG8gdGhl
IHJ1bGUgYm9keSByYW5nZS4KLSAgICAgICAgcmVzdWx0LnNldChiaW5kU3R5bGUocnVsZS0+c3R5
bGUoKSksIG9mZnNldFZlY3Rvci0+YXQocnVsZUluZGV4KSk7CisgICAgICAgIGlmIChydWxlLT5z
dHlsZSgpID09IHN0eWxlKSB7CisgICAgICAgICAgICBBU1NFUlQocnVsZUluZGV4IDwgcmFuZ2Vz
VmVjdG9yLT5zaXplKCkpOworICAgICAgICAgICAgKnJlc3VsdCA9IHJhbmdlc1ZlY3Rvci0+YXQo
cnVsZUluZGV4KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgICAg
IHJ1bGVJbmRleCsrOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBJbnNwZWN0b3JDU1NTdG9yZTo6ZXh0cmFjdFJhbmdlcyhDU1NTdHlsZVNo
ZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBTdHlsZVJ1bGVSYW5nZU1hcCYgcnVsZVJhbmdlTWFwLCBW
ZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiogcmFuZ2VzVmVjdG9yKQoreworICAg
IGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHN0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gYXNDU1NTdHlsZVJ1
bGUoc3R5bGVTaGVldC0+aXRlbShpKSk7CisgICAgICAgIGlmICghcnVsZSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICBTdHlsZVJ1bGVSYW5nZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBydWxlUmFuZ2VNYXAuZmluZChydWxlKTsKKyAgICAgICAgaWYgKGl0ICE9IHJ1bGVSYW5nZU1h
cC5lbmQoKSkKKyAgICAgICAgICAgIHJhbmdlc1ZlY3Rvci0+YXBwZW5kKGl0LT5zZWNvbmQpOwor
ICAgIH0KK30KKworYm9vbCBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVBdHRyaWJ1dGVSYW5n
ZXMoTm9kZSogbm9kZSwgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCkKK3sKKyAg
ICBpZiAoIW5vZGUgfHwgIW5vZGUtPmlzU3R5bGVkRWxlbWVudCgpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBTdHJpbmcgc3R5bGVUZXh0ID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVu
dCo+KG5vZGUpLT5nZXRBdHRyaWJ1dGUoInN0eWxlIik7CisgICAgaWYgKHN0eWxlVGV4dC5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgKCpyZXN1bHQpLT5zdHlsZUJvZHlSYW5nZS5maXJzdCA9IDA7Cisg
ICAgICAgICgqcmVzdWx0KS0+c3R5bGVCb2R5UmFuZ2Uuc2Vjb25kID0gMDsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
PiB0ZW1wRGVjbGFyYXRpb24gPSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7
CisgICAgQ1NTUGFyc2VyIHA7CisgICAgcC5wYXJzZURlY2xhcmF0aW9uKHRlbXBEZWNsYXJhdGlv
bi5nZXQoKSwgc3R5bGVUZXh0LCByZXN1bHQtPmdldCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworQ1NTU3R5bGVTaGVldCogSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFBhcmVudFN0eWxlU2hlZXQo
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAgaWYgKCFzdHlsZSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICBTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gc3R5bGUtPnN0eWxlc2hl
ZXQoKTsKKyAgICBpZiAoc3R5bGVTaGVldCAmJiBzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQo
KSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0
KTsKKworICAgIHJldHVybiAwOwogfQogCiBDU1NTdHlsZVJ1bGUqIEluc3BlY3RvckNTU1N0b3Jl
Ojphc0NTU1N0eWxlUnVsZShTdHlsZUJhc2UqIHN0eWxlQmFzZSkKQEAgLTIxNyw2ICszNTksMTcg
QEAgbG9uZyBJbnNwZWN0b3JDU1NTdG9yZTo6YmluZFJ1bGUoQ1NTU3R5bGVSdWxlKiBydWxlKQog
ICAgIHJldHVybiBpZDsKIH0KIAorLy8gc3RhdGljCitFbGVtZW50KiBJbnNwZWN0b3JDU1NTdG9y
ZTo6aW5saW5lU3R5bGVFbGVtZW50KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQoreworICAg
IGlmICghc3R5bGUgfHwgIXN0eWxlLT5pc011dGFibGVTdHlsZURlY2xhcmF0aW9uKCkpCisgICAg
ICAgIHJldHVybiAwOworICAgIE5vZGUqIG5vZGUgPSBzdGF0aWNfY2FzdDxDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbio+KHN0eWxlKS0+bm9kZSgpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+
aXNTdHlsZWRFbGVtZW50KCkgfHwgc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG5vZGUpLT5n
ZXRJbmxpbmVTdHlsZURlY2woKSAhPSBzdHlsZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NTdG9yZS5oCmluZGV4IDgyZGU2MjIuLjhlZmQzNmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ1NTU3RvcmUuaApAQCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBJbnNwZWN0b3JDU1NT
dG9yZV9oCiAjZGVmaW5lIEluc3BlY3RvckNTU1N0b3JlX2gKIAorI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5RGF0dW0uaCIKKwogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0zNiwxMyArMzgsMTUgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIEluc3BlY3RvckNv
bnRyb2xsZXI7CiBjbGFzcyBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENTU1N0
eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDU1NSdWxlTGlzdDsKIGNsYXNzIENTU1N0eWxlUnVsZTsK
IGNsYXNzIENTU1N0eWxlU2hlZXQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7Citj
bGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOworY2xhc3MgTm9kZTsKIGNsYXNzIFN0eWxlQmFzZTsK
IAogdHlwZWRlZiBzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+IFByb3BlcnR5VmFsdWVBbmRQcmlv
cml0eTsKQEAgLTUyLDIzICs1NiwyOCBAQCB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVEZWNsYXJh
dGlvbiosIGxvbmc+IFN0eWxlVG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8
Q1NTU3R5bGVEZWNsYXJhdGlvbj4gPiBJZFRvU3R5bGVNYXA7CiB0eXBlZGVmIEhhc2hNYXA8Q1NT
U3R5bGVSdWxlKiwgbG9uZz4gUnVsZVRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVm
UHRyPENTU1N0eWxlUnVsZT4gPiBJZFRvUnVsZU1hcDsKLXR5cGVkZWYgSGFzaE1hcDxDU1NTdHls
ZVNoZWV0KiwgVmVjdG9yPFNvdXJjZVJhbmdlPiogPiBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOwor
dHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291
cmNlRGF0YT4gPiogPiBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOwogdHlwZWRlZiBIYXNoTWFwPENT
U1N0eWxlU2hlZXQqLCBsb25nPiBTdHlsZVNoZWV0VG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxs
b25nLCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBJZFRvU3R5bGVTaGVldE1hcDsKK3R5cGVkZWYg
SGFzaE1hcDxsb25nLCBTdHJpbmc+IElkVG9TdHlsZVNoZWV0VGV4dE1hcDsKIHR5cGVkZWYgSGFz
aE1hcDxsb25nLCBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24+IElkVG9EaXNhYmxlZFN0eWxlTWFw
OwogdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxEb2N1bWVudD4sIFJlZlB0cjxDU1NTdHlsZVNoZWV0
PiA+IERvY3VtZW50VG9TdHlsZVNoZWV0TWFwOwogCiBjbGFzcyBJbnNwZWN0b3JDU1NTdG9yZSB7
CiAKIHB1YmxpYzoKKyAgICBzdGF0aWMgQ1NTU3R5bGVTaGVldCogZ2V0UGFyZW50U3R5bGVTaGVl
dChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisgICAgc3RhdGljIEVsZW1lbnQqIGlubGluZVN0eWxl
RWxlbWVudChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisKICAgICBJbnNwZWN0b3JDU1NTdG9yZShJ
bnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsKICAgICB+SW5zcGVjdG9y
Q1NTU3RvcmUoKTsKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgSGFzaE1hcDxsb25nLCBTb3VyY2VS
YW5nZT4gZ2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0Kik7CisgICAgYm9vbCBnZXRTdHlsZVNv
dXJjZURhdGEoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+
KiByZXN1bHQpOwogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRm9ySWQobG9uZyBzdHls
ZUlkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0Rm9ySWQobG9uZyBzdHlsZVNoZWV0
SWQpOwogICAgIENTU1N0eWxlUnVsZSogcnVsZUZvcklkKGxvbmcgc3R5bGVSdWxlSWQpOwogICAg
IERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbiogZGlzYWJsZWRTdHlsZUZvcklkKGxvbmcgc3R5bGVJ
ZCwgYm9vbCBjcmVhdGVJZkFic2VudCk7CisgICAgU3RyaW5nIHN0eWxlU2hlZXRUZXh0KGxvbmcg
c3R5bGVTaGVldElkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHlsZVNoZWV0KERv
Y3VtZW50KiBvd25lckRvY3VtZW50LCBib29sIGNyZWF0ZUlmQWJzZW50KTsKICAgICB2b2lkIHJl
bW92ZURvY3VtZW50KERvY3VtZW50Kik7CiAKQEAgLTc4LDYgKzg3LDEwIEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVsZShTdHlsZUJh
c2UqKTsKKyAgICBTdHJpbmcgaW5saW5lU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCopOwor
ICAgIFN0cmluZyByZXNvdXJjZVN0eWxlU2hlZXRUZXh0KENTU1N0eWxlU2hlZXQqKTsKKyAgICB2
b2lkIGV4dHJhY3RSYW5nZXMoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0eWxlUnVsZVJhbmdlTWFw
JiwgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4qIHJhbmdlc1ZlY3Rvcik7Cisg
ICAgYm9vbCBnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhOb2RlKiBwYXJlbnROb2RlLCBSZWZQdHI8
Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KTsKIAogICAgIFN0eWxlVG9JZE1hcCBtX3N0eWxl
VG9JZDsKICAgICBJZFRvU3R5bGVNYXAgbV9pZFRvU3R5bGU7CkBAIC04NSw4ICs5OCw5IEBAIHBy
aXZhdGU6CiAgICAgSWRUb1J1bGVNYXAgbV9pZFRvUnVsZTsKICAgICBTdHlsZVNoZWV0VG9PZmZz
ZXRzTWFwIG1fc3R5bGVTaGVldFRvT2Zmc2V0czsKICAgICBTdHlsZVNoZWV0VG9JZE1hcCBtX3N0
eWxlU2hlZXRUb0lkOwotICAgIElkVG9TdHlsZVNoZWV0TWFwIG1faWRUb1N0eWxlU2hlZXQ7CiAg
ICAgSWRUb0Rpc2FibGVkU3R5bGVNYXAgbV9pZFRvRGlzYWJsZWRTdHlsZTsKKyAgICBJZFRvU3R5
bGVTaGVldE1hcCBtX2lkVG9TdHlsZVNoZWV0OworICAgIElkVG9TdHlsZVNoZWV0VGV4dE1hcCBt
X2lkVG9TdHlsZVNoZWV0VGV4dDsKICAgICBEb2N1bWVudFRvU3R5bGVTaGVldE1hcCBtX2RvY3Vt
ZW50Tm9kZVRvSW5zcGVjdG9yU3R5bGVTaGVldE1hcDsKIAogICAgIEluc3BlY3RvckNvbnRyb2xs
ZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAppbmRleCAyM2MyMmFhLi4yNzc4NDc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NQWdlbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQXR0ci5oIgogI2lu
Y2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgogI2lu
Y2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVk
ZSAiQ1NTUnVsZUxpc3QuaCIKQEAgLTExOTEsMjYgKzExOTIsMzQgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6Z2V0U3R5bGVTaGVldChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4KICAgICAgICAgKnN0eWxlU2hlZXRPYmplY3QgPSBidWlsZE9iamVjdEZvclN0eWxl
U2hlZXQoc3R5bGVTaGVldC0+ZG9jdW1lbnQoKSwgc3R5bGVTaGVldCk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmdldFJ1bGVSYW5nZXMobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJ
bnNwZWN0b3JWYWx1ZT4qIHJ1bGVSYW5nZSkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0
eWxlU291cmNlRGF0YShsb25nIHN0eWxlSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBkYXRh
T2JqZWN0KQogewotICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBjc3NTdG9yZSgpLT5z
dHlsZVNoZWV0Rm9ySWQoc3R5bGVTaGVldElkKTsKLSAgICBpZiAoc3R5bGVTaGVldCAmJiBzdHls
ZVNoZWV0LT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+
IHJ1bGVSYW5nZXMgPSBjc3NTdG9yZSgpLT5nZXRSdWxlUmFuZ2VzKHN0eWxlU2hlZXQpOwotICAg
ICAgICBpZiAoIXJ1bGVSYW5nZXMuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOwotICAgICAgICBmb3IgKEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+OjppdGVyYXRvciBp
dCA9IHJ1bGVSYW5nZXMuYmVnaW4oKTsgaXQgIT0gcnVsZVJhbmdlcy5lbmQoKTsgKytpdCkgewot
ICAgICAgICAgICAgaWYgKGl0LT5zZWNvbmQuc2Vjb25kKSB7Ci0gICAgICAgICAgICAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcnVsZVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKLSAgICAgICAgICAgICAgICByZXN1bHQtPnNldE9iamVjdChTdHJpbmc6Om51bWJlcihpdC0+
Zmlyc3QpLnV0ZjgoKS5kYXRhKCksIHJ1bGVSYW5nZSk7Ci0gICAgICAgICAgICAgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYm9keVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
LSAgICAgICAgICAgICAgICBydWxlUmFuZ2UtPnNldE9iamVjdCgiYm9keVJhbmdlIiwgYm9keVJh
bmdlKTsKLSAgICAgICAgICAgICAgICBib2R5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBpdC0+
c2Vjb25kLmZpcnN0KTsKLSAgICAgICAgICAgICAgICBib2R5UmFuZ2UtPnNldE51bWJlcigiZW5k
IiwgaXQtPnNlY29uZC5zZWNvbmQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
ICpydWxlUmFuZ2UgPSByZXN1bHQucmVsZWFzZSgpOworICAgIENTU1N0eWxlRGVjbGFyYXRpb24q
IHN0eWxlID0gY3NzU3RvcmUoKS0+c3R5bGVGb3JJZChzdHlsZUlkKTsKKyAgICBpZiAoIXN0eWxl
KQorICAgICAgICByZXR1cm47CisgICAgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gc291cmNl
RGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgYm9vbCBzdWNjZXNzID0g
Y3NzU3RvcmUoKS0+Z2V0U3R5bGVTb3VyY2VEYXRhKHN0eWxlLCAmc291cmNlRGF0YSk7CisgICAg
aWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm47CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVzdWx0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBib2R5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIHJl
c3VsdC0+c2V0T2JqZWN0KCJib2R5UmFuZ2UiLCBib2R5UmFuZ2UpOworICAgIGJvZHlSYW5nZS0+
c2V0TnVtYmVyKCJzdGFydCIsIHNvdXJjZURhdGEtPnN0eWxlQm9keVJhbmdlLmZpcnN0KTsKKyAg
ICBib2R5UmFuZ2UtPnNldE51bWJlcigiZW5kIiwgc291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uu
c2Vjb25kKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHByb3BlcnR5UmFuZ2VzID0gSW5z
cGVjdG9yQXJyYXk6OmNyZWF0ZSgpOworICAgIHJlc3VsdC0+c2V0QXJyYXkoInByb3BlcnR5RGF0
YSIsIHByb3BlcnR5UmFuZ2VzKTsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0
dW0sIFNvdXJjZVJhbmdlPiA+JiBwcm9wZXJ0eURhdGEgPSBzb3VyY2VEYXRhLT5wcm9wZXJ0eURh
dGE7CisgICAgZm9yIChWZWN0b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJh
bmdlPiA+OjppdGVyYXRvciBpdCA9IHByb3BlcnR5RGF0YS5iZWdpbigpOyBpdCAhPSBwcm9wZXJ0
eURhdGEuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJv
cGVydHlSYW5nZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgIHByb3BlcnR5
UmFuZ2UtPnNldFN0cmluZygibmFtZSIsIGl0LT5maXJzdC5uYW1lKTsKKyAgICAgICAgcHJvcGVy
dHlSYW5nZS0+c2V0U3RyaW5nKCJ2YWx1ZSIsIGl0LT5maXJzdC52YWx1ZSk7CisgICAgICAgIHBy
b3BlcnR5UmFuZ2UtPnNldEJvb2xlYW4oImltcG9ydGFudCIsIGl0LT5maXJzdC5pbXBvcnRhbnQp
OworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRCb29sZWFuKCJwYXJzZWQiLCBpdC0+Zmlyc3Qu
cGFyc2VkKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0TnVtYmVyKCJzdGFydCIsIGl0LT5z
ZWNvbmQuZmlyc3QpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIGl0
LT5zZWNvbmQuc2Vjb25kKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZXMtPnB1c2hPYmplY3QocHJv
cGVydHlSYW5nZSk7CiAgICAgfQorICAgICpkYXRhT2JqZWN0ID0gcmVzdWx0LnJlbGVhc2UoKTsK
IH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0SW5saW5lU3R5bGUobG9uZyBub2RlSWQs
IFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlKQpAQCAtMTQ2OSw3ICsxNDc4LDcgQEAgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZv
clN0eWxlKENTU1N0eWxlRGVjbGEKICAgICBpZiAoYmluZCkgewogICAgICAgICBsb25nIHN0eWxl
SWQgPSBjc3NTdG9yZSgpLT5iaW5kU3R5bGUoc3R5bGUpOwogICAgICAgICByZXN1bHQtPnNldE51
bWJlcigiaWQiLCBzdHlsZUlkKTsKLSAgICAgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVT
aGVldCA9IGdldFBhcmVudFN0eWxlU2hlZXQoc3R5bGUpOworICAgICAgICBDU1NTdHlsZVNoZWV0
KiBwYXJlbnRTdHlsZVNoZWV0ID0gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFBhcmVudFN0eWxlU2hl
ZXQoc3R5bGUpOwogICAgICAgICBpZiAocGFyZW50U3R5bGVTaGVldCkKICAgICAgICAgICAgIHJl
c3VsdC0+c2V0TnVtYmVyKCJwYXJlbnRTdHlsZVNoZWV0SWQiLCBjc3NTdG9yZSgpLT5iaW5kU3R5
bGVTaGVldChwYXJlbnRTdHlsZVNoZWV0KSk7CiAKQEAgLTE2ODEsMjAgKzE2OTAsNiBAQCBQYXNz
UmVmUHRyPEluc3BlY3RvckFycmF5PiBJbnNwZWN0b3JET01BZ2VudDo6dG9BcnJheShjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZGF0YQogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCi1D
U1NTdHlsZVNoZWV0KiBJbnNwZWN0b3JET01BZ2VudDo6Z2V0UGFyZW50U3R5bGVTaGVldChDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSkKLXsKLSAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHls
ZVNoZWV0ID0gc3R5bGUtPnBhcmVudFJ1bGUoKSA/IHN0eWxlLT5wYXJlbnRSdWxlKCktPnBhcmVu
dFN0eWxlU2hlZXQoKSA6IDA7Ci0gICAgaWYgKCFwYXJlbnRTdHlsZVNoZWV0KSB7Ci0gICAgICAg
IFN0eWxlQmFzZSogcGFyZW50ID0gc3R5bGUtPnBhcmVudCgpOwotICAgICAgICBpZiAocGFyZW50
ICYmIHBhcmVudC0+aXNDU1NTdHlsZVNoZWV0KCkpIHsKLSAgICAgICAgICAgIHBhcmVudFN0eWxl
U2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0Kj4ocGFyZW50KTsKLSAgICAgICAgICAg
IGlmICghcGFyZW50U3R5bGVTaGVldC0+bGVuZ3RoKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHBhcmVudFN0eWxlU2hlZXQ7Ci19Ci0K
IHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Om9uTWF0Y2hKb2JzVGltZXIoVGltZXI8SW5zcGVjdG9y
RE9NQWdlbnQ+KikKIHsKICAgICBpZiAoIW1fcGVuZGluZ01hdGNoSm9icy5zaXplKCkpIHsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDk3NTFlOGUuLjdhOWY2YmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTIzLDcgKzEyMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJ
ZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVzKTsKICAgICAgICAgdm9pZCBnZXRDb21w
dXRlZFN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZXMpOwog
ICAgICAgICB2b2lkIGdldFN0eWxlU2hlZXQobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+KiBzdHlsZVNoZWV0T2JqZWN0KTsKLSAgICAgICAgdm9pZCBnZXRSdWxlUmFu
Z2VzKGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBydWxlUmFuZ2Up
OworICAgICAgICB2b2lkIGdldFN0eWxlU291cmNlRGF0YShsb25nIHN0eWxlSWQsIFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+KiBkYXRhT2JqZWN0KTsKICAgICAgICAgdm9pZCBhcHBseVN0eWxlVGV4
dChsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgc3R5bGVUZXh0LCBjb25zdCBTdHJpbmcmIHBy
b3BlcnR5TmFtZSwgYm9vbCogc3VjY2VzcywgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVP
YmplY3QsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNoYW5nZWRQcm9wZXJ0aWVzKTsKICAgICAg
ICAgdm9pZCBzZXRTdHlsZVRleHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIGNzc1RleHQs
IGJvb2wqIHN1Y2Nlc3MpOwogICAgICAgICB2b2lkIHNldFN0eWxlUHJvcGVydHkobG9uZyBzdHls
ZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wqIHN1Y2Nl
c3MpOwpAQCAtMTQ4LDcgKzE0OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBjb3B5Tm9kZShsb25nIG5vZGVJZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBzdGF0aWMg
Q1NTU3R5bGVTaGVldCogZ2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0aW9uKik7
CiAgICAgICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKICAgICAg
ICAgdm9pZCBzdG9wTGlzdGVuaW5nKERvY3VtZW50KiBkb2N1bWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66909</attachid>
            <date>2010-09-08 10:24:19 -0700</date>
            <delta_ts>2010-09-18 03:20:38 -0700</delta_ts>
            <desc>[PATCH] Rebased to follow the DocLoader rename</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>61074</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiYmZiYmUwLi43NjUyMThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MDMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTA4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKaW5kZXggZWY2
OWVlNi4uNDUyMTBlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwpAQCAtMSw3ICsxLDE0IEBACiBib2R5
IHsKICAgICBmb250LXNpemU6IDEycHg7CisgICAgZm9vOiBiYXIgIQorCisgICAgaW1wb3J0YW50
IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkgV2ViQ29yZSAqLzsKKyAg
ICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKKyAgICBjb2xvcno6ICIhaW1wb3J0YW50IjsKKyAg
ICBpbXBvcnRhbnQ6IWltcG9ydGFudDsKKyAgICBjb2xvcjogImJhZGNvbG9yIiAhIGltcG9ydGFu
dCAvKiBnb29kIHByb3BlcnR5IHdpdGggc3RyYW5nZSB2YWx1ZSAqLzsKIH0KIAotLyogY29tbWVu
dCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAq
L3svKiBjb21tZW50ICovY29sb3I6ICMwMDA7fS8qIGNvbW1lbnQgKi8KKy8qIGNvbW1lbnQgYmVm
b3JlIHNlbGVjdG9yICovYm9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi97Lyog
Y29tbWVudCAqL2NvbG9yOiAjRjAwQkFBO3pvbzptb28gLyogbm90IGFuICFpbXBvcnRhbnQgdW5y
ZWNvZ25pemVkIHByb3BlcnR5ICovfS8qIGNvbW1lbnQgKi8KIAotYm9keS5tYWluMntiYWNrZ3Jv
dW5kOiBncmVlbjt9Citib2R5Lm1haW4ye2JhY2tncm91bmQ6IGdyZWVuIC8qIHZhbHVlICFpbXBv
cnRhbnQgY29tbWVudCAqLyAhaW1wb3J0YW50IC8qIG5vIHNlbWljb2xvbiwgdmVyeSAhaW1wb3J0
YW50ICovfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Ut
b2Zmc2V0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dAppbmRleCBkZGE2N2FkLi4yZDI3OWZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLWV4cGVj
dGVkLnR4dApAQCAtMSw3ICsxLDIxIEBACi1UZXN0cyB0aGF0IHByb3BlciBzdGFydC9lbmQgb2Zm
c2V0IHBvc2l0aW9ucyBhcmUgcmVwb3J0ZWQgZm9yIENTUyBydWxlIGJvZGllcy4KK1Rlc3RzIHRo
YXQgcHJvcGVyIGRhdGEgYW5kIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRl
ZCBmb3IgQ1NTIHN0eWxlIGRlY2xhcmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIAotYm9keTogWzUt
MjhdCi1ib2R5Lm1haW4xOiBbOTgtMTI0XQotYm9keS5tYWluMjogWzE1MC0xNjldCi1ib2R5IHsm
ICAgIGZvbnQtc2l6ZTogMTJweDsmfSYmLyogY29tbWVudCBiZWZvcmUgc2VsZWN0b3IgKi9ib2R5
Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3svKiBjb21tZW50ICovY29sb3I6ICMw
MDA7fS8qIGNvbW1lbnQgKi8mJmJvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW47fSYKK2JvZHk6
IFs2LTI2Nl0KK1snZm9udC1zaXplJzonMTJweCddIEBbNS0yMV0KK1snZm9vJzonYmFyJyAhaW1w
b3J0YW50IG5vbi1wYXJzZWRdIEBbMjYtMTA0XQorWydoZWlnaHQnOicxMDAlJyAhaW1wb3J0YW50
XSBAWzEwOS0xMzNdCitbJ2NvbG9yeic6JyIhaW1wb3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxMzgt
MTU5XQorWydpbXBvcnRhbnQnOicnIG5vbi1wYXJzZWRdIEBbMTY0LTE3NF0KK1snY29sb3InOici
YmFkY29sb3IiJyAhaW1wb3J0YW50XSBAWzE5MC0yNTldCitib2R5Lm1haW4xOiBbMzM3LTQxOF0K
K1snY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0KK1snem9vJzonbW9vIC8qIG5vdCBhbiAhaW1w
b3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9uLXBhcnNlZF0gQFsyOC04MV0KK2Jv
ZHkubWFpbjI6IFs0NDUtNTQwXQorWydiYWNrZ3JvdW5kJzonZ3JlZW4gLyogdmFsdWUgIWltcG9y
dGFudCBjb21tZW50ICovJyAhaW1wb3J0YW50XSBAWzAtOTVdCitib2R5Lm1haW5wYWdlOiBbMTct
MTQ5XQorWyd0ZXh0LWRlY29yYXRpb24nOidub25lJ10gQFs1LTI3XQorWydiYWRwcm9wZXJ0eSc6
JzFiYWR2YWx1ZTEnIG5vbi1wYXJzZWRdIEBbMTA3LTEzMV0KK2VsZW1lbnQuc3R5bGU6IFswLTMx
XQorWydmb250LXdlaWdodCc6J25vcm1hbCddIEBbMC0yMF0KK1snd2lkdGgnOic4MCUnXSBAWzIx
LTMxXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1v
ZmZzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRz
Lmh0bWwKaW5kZXggMDUzMzYxMS4uNDJlYjYwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMuaHRtbApAQCAtMzUsNTUgKzM1LDQzIEBAIGZ1bmN0
aW9uIGZyb250ZW5kX3J1blRlc3QodGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGZ1bmN0aW9uIHN0
eWxlc0NhbGxiYWNrKHRlc3RDb250cm9sbGVyLCBzdHlsZXMpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHZhciBtYXRjaGVkQ1NTUnVsZXMgPSBzdHlsZXMubWF0Y2hlZENTU1J1bGVzOwotICAgICAg
ICAgICAgdmFyIHBhcmVudFN0eWxlU2hlZXRJZCA9IG1hdGNoZWRDU1NSdWxlc1swXS5zdHlsZS5w
YXJlbnRTdHlsZVNoZWV0SWQ7Ci0gICAgICAgICAgICBpZiAoIXBhcmVudFN0eWxlU2hlZXRJZCkg
ewotICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiQkFEIFNUWUxF
U0hFRVQgSUQ6ICIgKyBwYXJlbnRTdHlsZVNoZWV0SWQpOwotICAgICAgICAgICAgICAgIHRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIucmVzdWx0cyk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRjaGVkQ1NT
UnVsZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgcnVsZSA9IG1hdGNoZWRD
U1NSdWxlc1tpXTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFN0eWxlU291
cmNlRGF0YShydWxlLnN0eWxlLmlkLCBmcm9udGVuZF9zdHlsZURhdGFSZWNlaXZlZC5iaW5kKG51
bGwsIHRlc3RDb250cm9sbGVyLCBydWxlLCBmYWxzZSkpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5nZXRSdWxlUmFuZ2VzKHBhcmVudFN0eWxlU2hlZXRJZCwg
ZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIsIHBh
cmVudFN0eWxlU2hlZXRJZCwgbWF0Y2hlZENTU1J1bGVzKSk7CisgICAgICAgICAgICBJbnNwZWN0
b3JCYWNrZW5kLmdldFN0eWxlU291cmNlRGF0YShzdHlsZXMuaW5saW5lU3R5bGUuaWQsIGZyb250
ZW5kX3N0eWxlRGF0YVJlY2VpdmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIsIHN0eWxlcy5p
bmxpbmVTdHlsZSwgdHJ1ZSkpOwogICAgICAgICB9CiAgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Z2V0U3R5bGVzKFdlYkluc3BlY3Rvci5kb21BZ2VudC5kb2N1bWVudC5ib2R5LmlkLCB0cnVlLCBz
dHlsZXNDYWxsYmFjay5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7CiAgICAgfSk7CiB9CiAK
LWZ1bmN0aW9uIGZyb250ZW5kX3J1bGVSYW5nZXNSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwgc3R5
bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsZXMsIHJ1bGVSYW5nZXMpCitmdW5jdGlvbiBmcm9udGVu
ZF9zdHlsZURhdGFSZWNlaXZlZCh0ZXN0Q29udHJvbGxlciwgcnVsZU9yU3R5bGUsIHNob3VsZEJh
aWwsIGRhdGEpCiB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXRjaGVkQ1NTUnVsZXMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgdmFyIHJ1bGUgPSBtYXRjaGVkQ1NTUnVsZXNbaV07Ci0gICAg
ICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaChydWxlLnNlbGVjdG9yVGV4dCArICI6IFsi
ICsgcnVsZVJhbmdlc1tydWxlLnN0eWxlLmlkXS5ib2R5UmFuZ2Uuc3RhcnQgKyAiLSIgKyBydWxl
UmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5nZS5lbmQgKyAiXSIpOworICAgIHZhciBpc1J1
bGUgPSAhIShydWxlT3JTdHlsZS5zdHlsZSk7CisgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5w
dXNoKChpc1J1bGUgPyBydWxlT3JTdHlsZS5zZWxlY3RvclRleHQgOiAiZWxlbWVudC5zdHlsZSIp
ICsgIjogWyIgKyBkYXRhLmJvZHlSYW5nZS5zdGFydCArICItIiArIGRhdGEuYm9keVJhbmdlLmVu
ZCArICJdIik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLnByb3BlcnR5RGF0YS5sZW5n
dGg7ICsraSkgeworICAgICAgICB2YXIgcHJvcGVydHlEYXR1bSA9IGRhdGEucHJvcGVydHlEYXRh
W2ldOworICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIlsnIiArIHByb3BlcnR5
RGF0dW0ubmFtZSArICInOiciICsgcHJvcGVydHlEYXR1bS52YWx1ZSArICInIiArIChwcm9wZXJ0
eURhdHVtLmltcG9ydGFudCA/ICIgIWltcG9ydGFudCIgOiAiIikgKyAocHJvcGVydHlEYXR1bS5w
YXJzZWQgPyAiIiA6ICIgbm9uLXBhcnNlZCIpICsiXSBAWyIgKyBwcm9wZXJ0eURhdHVtLnN0YXJ0
ICsgIi0iICsgcHJvcGVydHlEYXR1bS5lbmQgKyAiXSIpOwogICAgIH0KLSAgICBJbnNwZWN0b3JC
YWNrZW5kLmdldFN0eWxlU2hlZXQoc3R5bGVTaGVldElkLCBmcm9udGVuZF9oYW5kbGVTdHlsZVNo
ZWV0LmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKLX0KLQotZnVuY3Rpb24gZnJvbnRlbmRf
aGFuZGxlU3R5bGVTaGVldCh0ZXN0Q29udHJvbGxlciwgc3R5bGVTaGVldCkKLXsKLSAgICB2YXIg
dXJsID0gc3R5bGVTaGVldC5ocmVmOwotICAgIGlmICh1cmwgIT09ICIiKSB7Ci0gICAgICAgIHZh
ciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVSTE1hcFt1cmxdOwotICAgICAgICBp
ZiAoIXJlc291cmNlKSB7Ci0gICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2go
Ik5PIFJFU09VUkNFIEZPUiBVUkw6ICIgKyB1cmwpOwotICAgICAgICAgICAgdGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRzKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3IuZ2V0UmVzb3VyY2VDb250ZW50KHJl
c291cmNlLmlkZW50aWZpZXIsIGZyb250ZW5kX3N0eWxlU2hlZXRUZXh0UmVjZWl2ZWQuYmluZChu
dWxsLCB0ZXN0Q29udHJvbGxlcikpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRlc3RDb250cm9s
bGVyLnJlc3VsdHMucHVzaCgiRU1QVFkgU1RZTEVTSEVFVCBIUkVGIik7CisgICAgaWYgKHNob3Vs
ZEJhaWwpCiAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUodGVzdENvbnRyb2xsZXIu
cmVzdWx0cyk7Ci0gICAgfQogfQogCi1mdW5jdGlvbiBmcm9udGVuZF9zdHlsZVNoZWV0VGV4dFJl
Y2VpdmVkKHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0VGV4dCkKLXsKLSAgICB0ZXN0Q29udHJv
bGxlci5yZXN1bHRzLnB1c2goc3R5bGVTaGVldFRleHQucmVwbGFjZSgvXG4vZywgIiYiKSk7Ci0g
ICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRzKTsKLX0K
IDwvc2NyaXB0PgorCis8c3R5bGU+CisKK2JvZHkubWFpbnBhZ2UgeworICAgIHRleHQtZGVjb3Jh
dGlvbjogbm9uZTsgLyogYXQgbGVhc3Qgb25lIHZhbGlkIHByb3BlcnR5IGlzIG5lY2Vzc2FyeSBm
b3IgV2ViQ29yZSB0byBtYXRjaCBhIHJ1bGUgKi8KKyAgICBiYWRwcm9wZXJ0eTogMWJhZHZhbHVl
MTsKK30KKworPC9zdHlsZT4KIDwvaGVhZD4KIAotPGJvZHkgY2xhc3M9Im1haW4xIG1haW4yIiBv
bmxvYWQ9Im9ubG9hZCgpIj4KKzxib2R5IGNsYXNzPSJtYWluMSBtYWluMiBtYWlucGFnZSIgb25s
b2FkPSJvbmxvYWQoKSIgc3R5bGU9ImZvbnQtd2VpZ2h0OiBub3JtYWw7IHdpZHRoOiA4MCUiPgog
PHA+Ci1UZXN0cyB0aGF0IHByb3BlciBzdGFydC9lbmQgb2Zmc2V0IHBvc2l0aW9ucyBhcmUgcmVw
b3J0ZWQgZm9yIENTUyBydWxlIGJvZGllcy4KK1Rlc3RzIHRoYXQgcHJvcGVyIGRhdGEgYW5kIHN0
YXJ0L2VuZCBvZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHN0eWxlIGRlY2xh
cmF0aW9ucyBhbmQgcHJvcGVydGllcy4KIDwvcD4KIAogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMzRlMTQ2Li4yMzFlZTdl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDY3IEBACisyMDEwLTA5LTAzICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUHJvdmlkZSBzb3VyY2UtYmFzZWQgcHJvcGVydGllcyBmb3Igc3R5bGUgZGVjbGFyYXRp
b25zIHRvIENTU1BhcnNlciBjbGllbnRzCisKKyAgICAgICAgVGhpcyBjaGFuZ2U6CisgICAgICAg
IC0gRW5hYmxlcyBJbnNwZWN0b3JDU1NTdG9yZSB0byBleHRyYWN0IENTUyBzdHlsZXNoZWV0IHRl
eHQgZm9yIGFsbCBzb3VyY2UtYmFzZWQgc3R5bGVzaGVldHMsCisgICAgICAgICAgZXZlbiB3aXRo
IHRoZSByZXNvdXJjZSB0cmFja2luZyB0dXJuZWQgb2ZmLgorICAgICAgICAtIEFkZHMgdG8gQ1NT
UGFyc2VyIGEgY2FwYWJpbGl0eSBvZiBzb3VyY2UtcmVsYXRlZCBzdHlsZSBkZWNsYXJhdGlvbiBk
YXRhIGV4dHJhY3Rpb246CisgICAgICAgICAgKiBTdGFydC9lbmQgc291cmNlIG9mZnNldHMgZm9y
IGEgZGVjbGFyYXRpb24sIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgc3R5bGVzaGVldCBzdGFydCBv
ciB0aGUgInN0eWxlIiBhdHRyaWJ1dGUgdmFsdWUuCisgICAgICAgICAgKiBTdGFydC9lbmQgc291
cmNlIG9mZnNldHMgZm9yIENTUyBwcm9wZXJ0aWVzLCByZWxhdGl2ZSB0byB0aGUgZGVjbGFyYXRp
b24gc3RhcnQuCisgICAgICAgICAgKiBDU1MgcHJvcGVydHkgZGF0YTogbmFtZSwgdmFsdWUsIHBy
aW9yaXR5LCBXZWJDb3JlIHBhcnNhYmlsaXR5IChpLmUuIGlmIHRoZSBwcm9wZXJ0eSBpcyB1bmRl
cnN0b29kIGJ5IFdlYkNvcmUpLgorICAgICAgICAtIFByb3ZpZGVzIHRoZSBleHRyYWN0ZWQgZGF0
YSB0byB0aGUgV2ViSW5zcGVjdG9yIGZyb250ZW5kIHZpYSBJbnNwZWN0b3JET01BZ2VudDo6Z2V0
U3R5bGVTb3VyY2VEYXRhKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NDk0OQorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3Mv
Q1NTR3JhbW1hci55OgorICAgICAgICAqIGNzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246Om5vZGUpOgor
ICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
OjpDU1NQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVNoZWV0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VEZWNsYXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVN0eWxlUnVsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6Om1hcmtSdWxlQm9keVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6bWFya1Byb3BlcnR5U3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpm
aW5kSW1wb3J0YW50SW5WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6Om1hcmtQ
cm9wZXJ0eUVuZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpyZXNldFByb3BlcnR5TWFya3MpOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0eURhdHVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVt
OjpDU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06
Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjp0b1N0cmlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjppbml0KToKKyAgICAgICAg
KFdURjo6OjplbXB0eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlEYXR1bS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06On5DU1NQcm9wZXJ0eURh
dHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6b3BlcmF0b3IhPSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQcm9wZXJ0eURhdHVtSGFzaDo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eURhdHVtSGFzaDo6ZXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRs
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ1NTU3RvcmU6OnN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU1N0b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3VyY2VEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVFbGVtZW50KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9N
QWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50Lmg6CisKIDIwMTAtMDktMDggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxv
dkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggYzc1OTc5NC4uNTgyNmEzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTk5Nyw2ICs5OTcsOCBAQAogICAgICAgICAg
ICAgJ2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgnLAogICAgICAgICAgICAgJ2Nzcy9D
U1NQcm9wZXJ0eS5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eS5oJywKKyAgICAg
ICAgICAgICdjc3MvQ1NTUHJvcGVydHlEYXR1bS5jcHAnLAorICAgICAgICAgICAgJ2Nzcy9DU1NQ
cm9wZXJ0eURhdHVtLmgnLAogICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNw
cCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuaCcsCiAgICAgICAgICAg
ICAnY3NzL0NTU1F1aXJrUHJpbWl0aXZlVmFsdWUuaCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBlYTZlOTAxLi45NDU2NGJiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTQzMiw2ICs0MzIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvQ1NTUGFyc2VyVmFsdWVz
LmNwcCBcCiAgICAgY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBcCiAgICAgY3NzL0NTU1Byb3Bl
cnR5LmNwcCBcCisgICAgY3NzL0NTU1Byb3BlcnR5RGF0dW0uY3BwIFwKICAgICBjc3MvQ1NTUHJv
cGVydHlMb25naGFuZC5jcHAgXAogICAgIGNzcy9DU1NSZWZsZWN0VmFsdWUuY3BwIFwKICAgICBj
c3MvQ1NTUnVsZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MDQ3YmQ0Ny4uNmMxZjI0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yOTM1Myw2ICsyOTM1MywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlEYXR1bS5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVy
dHlEYXR1bS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cY3NzXENTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxl
Pg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTUyNDM5
ZS4uMmQ5OGFkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE0NTYsNiArMTQ1Niw4IEBACiAJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURGQSAvKiBKU0lE
QkN1cnNvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi87IH07CiAJCTgyQjY1
ODk4MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTcxMTg5RTM5MjAwRTA1MkEx
IC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODJCNjU4OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNT
U1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi87IH07
CisJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyRTNEOERDMTIyRUEw
RDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLzsgfTsKKwkJODJFM0Q4REYxMjJF
QTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQ
cm9wZXJ0eURhdHVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODQxOUQyQTcxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNDEy
MEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLzsgfTsKIAkJODQxOUQyQTgx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDE5RDJBNTEyMEQ5MkQwMDAx
NDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCAqLzsgfTsKIAkJODQxOUQyQTkx
MjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTYxMjBEOTJEMDAwMTQx
RjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oICovOyB9OwpAQCAtNzM5MSw2ICs3Mzkz
LDggQEAKIAkJODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCQ3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgyQjY1ODk3MTE4OUUzOTIwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NT
dG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9y
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkI2NTg5OTExODlFNDc2MDBFMDUy
QTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eURhdHVtLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJDIC8q
IENTU1Byb3BlcnR5RGF0dW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NT
UHJvcGVydHlEYXR1bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJBNDEy
MEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3RyZWFtQnVp
bGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoQnl0
ZVN0cmVhbUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJB
NjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5NzYsNiArMTY5ODAsOCBAQAogCQkJCUUxRUQ4
QUMyMENDNDlCRTAwMEJGQzU1NyAvKiBDU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggKi8sCiAJ
CQkJQTgwRTZDQ0QwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Byb3BlcnR5LmNwcCAqLywKIAkJCQlB
ODBFNkNENTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUHJvcGVydHkuaCAqLywKKwkJCQk4MkUzRDhE
QzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5jcHAgKi8sCisJCQkJODJFM0Q4
REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCAqLywKIAkJCQkwRjZFQ0Q0
NDBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5jcHAgKi8sCiAJCQkJMEY2
RUNENDMwRjI1MkYzNzAwQkRFMjcxIC8qIENTU1Byb3BlcnR5TG9uZ2hhbmQuaCAqLywKIAkJCQlC
Q0VBNDc4OTA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTUHJvcGVydHlOYW1lcy5pbiAqLywKQEAgLTIw
NDU3LDYgKzIwNDYzLDcgQEAKIAkJCQk5N0JDODQ5QjEyMzcwQTRCMDAwQzYxNjEgLyogSFRNTElu
cHV0U3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDODRBNTEyMzcwREM4MDAwQzYxNjEg
LyogVGV4dFZpZXdTb3VyY2VQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NEI0MTIz
NzExODAwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTgyRTNE
OERGMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTIyOTIzLDYgKzIyOTMwLDcgQEAKIAkJCQk5N0JDODQ4MzEyMzZGRDkzMDAwQzYxNjEgLyog
VGV4dERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM4NEE0MTIzNzBE
QzgwMDBDNjE2MSAvKiBUZXh0Vmlld1NvdXJjZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5N0JDODRCMzEyMzcxMTgwMDAwQzYxNjEgLyogVGV4dERvY3VtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eURhdHVtLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55IGIv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CmluZGV4IDg2YTJmN2MuLmM1NWY5OTggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkKQEAgLTMxNCw3ICszMTQsNyBAQCB3ZWJraXRfa2V5ZnJhbWVfcnVsZToKIDsKIAogd2Via2l0
X2RlY2xzOgotICAgIFdFQktJVF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlIGRlY2xhcmF0aW9u
X2xpc3QgJ30nIHsKKyAgICBXRUJLSVRfREVDTFNfU1lNICd7JyBtYXliZV9zcGFjZV9iZWZvcmVf
ZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCAnfScgewogICAgICAgICAvKiBjYW4gYmUgZW1w
dHkgKi8KICAgICB9CiA7CkBAIC05MDMsOCArOTAzLDE1IEBAIHVuYXJ5X29wZXJhdG9yOgogICB8
ICcrJyB7ICQkID0gMTsgfQogICA7CiAKK21heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlvbjoK
KyAgICBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENT
U1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CisgICAg
fQorICA7CisKIHJ1bGVzZXQ6Ci0gICAgc2VsZWN0b3JfbGlzdCAneycgbWF5YmVfc3BhY2UgZGVj
bGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNlIHsKKyAgICBzZWxlY3Rvcl9saXN0ICd7JyBtYXli
ZV9zcGFjZV9iZWZvcmVfZGVjbGFyYXRpb24gZGVjbGFyYXRpb25fbGlzdCBjbG9zaW5nX2JyYWNl
IHsKICAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2Vy
KTsKICAgICAgICAgJCQgPSBwLT5jcmVhdGVTdHlsZVJ1bGUoJDEpOwogICAgIH0KQEAgLTEzNTUs
NiArMTM2Miw4IEBAIGRlY2xhcmF0aW9uX2xpc3Q6CiAKIGRlY2xfbGlzdDoKICAgICBkZWNsYXJh
dGlvbiAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2Fz
dDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgpOwog
ICAgICAgICAkJCA9ICQxOwogICAgIH0KICAgICB8IGRlY2xhcmF0aW9uIGludmFsaWRfYmxvY2tf
bGlzdCBtYXliZV9zcGFjZSB7CkBAIC0xMzY0LDEyICsxMzczLDE2IEBAIGRlY2xfbGlzdDoKICAg
ICAgICAgJCQgPSBmYWxzZTsKICAgICB9CiAgICAgfCBlcnJvciAnOycgbWF5YmVfc3BhY2Ugewor
ICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwor
ICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAg
IH0KICAgICB8IGVycm9yIGludmFsaWRfYmxvY2tfbGlzdCBlcnJvciAnOycgbWF5YmVfc3BhY2Ug
ewogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8IGRlY2xfbGlzdCBkZWNsYXJhdGlv
biAnOycgbWF5YmVfc3BhY2UgeworICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxD
U1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBwLT5tYXJrUHJvcGVydHlTdGFydCgpOwogICAg
ICAgICAkJCA9ICQxOwogICAgICAgICBpZiAoJDIpCiAgICAgICAgICAgICAkJCA9ICQyOwpAQCAt
MTM4NiwxNSArMTM5OSwyMSBAQCBkZWNsYXJhdGlvbjoKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVf
c3BhY2UgZXhwciBwcmlvIHsKICAgICAgICAgJCQgPSBmYWxzZTsKICAgICAgICAgQ1NTUGFyc2Vy
KiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgYm9vbCBpc1By
b3BlcnR5UGFyc2VkID0gZmFsc2U7CiAgICAgICAgIGlmICgkMSAmJiAkNCkgewogICAgICAgICAg
ICAgcC0+bV92YWx1ZUxpc3QgPSBwLT5zaW5rRmxvYXRpbmdWYWx1ZUxpc3QoJDQpOwogICAgICAg
ICAgICAgaW50IG9sZFBhcnNlZFByb3BlcnRpZXMgPSBwLT5tX251bVBhcnNlZFByb3BlcnRpZXM7
CiAgICAgICAgICAgICAkJCA9IHAtPnBhcnNlVmFsdWUoJDEsICQ1KTsKLSAgICAgICAgICAgIGlm
ICghJCQpCisgICAgICAgICAgICBpZiAoISQkKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXRp
Y19jYXN0PGludD4ocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzKSA9PSBvbGRQYXJzZWRQcm9wZXJ0
aWVzKQorICAgICAgICAgICAgICAgICAgICBpc1Byb3BlcnR5UGFyc2VkID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICBwLT5yb2xsYmFja0xhc3RQcm9wZXJ0aWVzKHAtPm1fbnVtUGFyc2VkUHJvcGVy
dGllcyAtIG9sZFBhcnNlZFByb3BlcnRpZXMpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgaXNQcm9wZXJ0eVBhcnNlZCA9IHRydWU7CiAgICAgICAgICAgICBkZWxldGUgcC0+
bV92YWx1ZUxpc3Q7CiAgICAgICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IDA7CiAgICAgICAgIH0K
KyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKCQ1LCBpc1Byb3BlcnR5UGFyc2VkKTsKICAgICB9
CiAgICAgfAogICAgIHZhcmlhYmxlX3JlZmVyZW5jZSBtYXliZV9zcGFjZSB7CkBAIC0xNDE3LDEx
ICsxNDM2LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgICAgICAvKiBUaGUgZGVmYXVsdCBtb3ZhYmxl
IHR5cGUgdGVtcGxhdGUgaGFzIGxldHRlci1zcGFjaW5nOiAubm9uZTsgIEhhbmRsZSB0aGlzIGJ5
IGxvb2tpbmcgZm9yCiAgICAgICAgIGVycm9yIHRva2VucyBhdCB0aGUgc3RhcnQgb2YgYW4gZXhw
ciwgcmVjb3ZlciB0aGUgZXhwciBhbmQgdGhlbiB0cmVhdCBhcyBhbiBlcnJvciwgY2xlYW5pbmcK
ICAgICAgICAgdXAgYW5kIGRlbGV0aW5nIHRoZSBzaGlmdGVkIGV4cHIuICAqLworICAgICAgICBD
U1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBw
LT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgJCQgPSBmYWxzZTsKICAg
ICB9CiAgICAgfAogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBleHByIHByaW8gZXJyb3Ig
ewogICAgICAgICAvKiBXaGVuIHdlIGVuY291bnRlciBzb21ldGhpbmcgbGlrZSBwIHtjb2xvcjog
cmVkICFpbXBvcnRhbnQgZmFpbDt9IHdlIHNob3VsZCBkcm9wIHRoZSBkZWNsYXJhdGlvbiAqLwor
ICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwor
ICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoZmFsc2UsIGZhbHNlKTsKICAgICAgICAgJCQgPSBm
YWxzZTsKICAgICB9CiAgICAgfApAQCAtMTQzMiwxMSArMTQ1NSwxNSBAQCBkZWNsYXJhdGlvbjoK
ICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIHsKICAgICAgICAgLyogZGl2IHsg
Zm9udC1mYW1pbHk6IH0gSnVzdCByZWR1Y2UgYXdheSB0aGlzIHByb3BlcnR5IHdpdGggbm8gdmFs
dWUuICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBh
cnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAg
ICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNl
IGVycm9yIHsKICAgICAgICAgLyogaWYgd2UgY29tZSBhY3Jvc3MgcnVsZXMgd2l0aCBpbnZhbGlk
IHZhbHVlcyBsaWtlIHRoaXMgY2FzZTogcCB7IHdlaWdodDogKjsgfSwganVzdCBkaXNjYXJkIHRo
ZSBydWxlICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+
KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAg
ICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24uaAppbmRleCBmNzc1OWY0Li40MDZmZDkxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTgzLDYgKzgzLDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXROb2RlKE5vZGUqIG5vZGUpIHsgbV9ub2RlID0gbm9kZTsgfQogCisgICAgTm9kZSog
bm9kZSgpIHsgcmV0dXJuIG1fbm9kZTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIFN0
cmluZyBjc3NUZXh0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAyYWQzMjk0Li44YjUxOTkxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTE0Nyw3ICsxNDcsMTAgQEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoYm9v
bCBzdHJpY3RQYXJzaW5nKQogICAgICwgbV9kZWZhdWx0TmFtZXNwYWNlKHN0YXJBdG9tKQogICAg
ICwgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KDApCiAgICAgLCBtX3J1bGVCb2R5RW5kT2Zmc2V0KDAp
Ci0gICAgLCBtX3J1bGVSYW5nZXMoMCkKKyAgICAsIG1fcHJvcGVydHlTdGFydE9mZnNldChVSU5U
X01BWCkKKyAgICAsIG1fcHJvcGVydHlFbmRPZmZzZXQoVUlOVF9NQVgpCisgICAgLCBtX3J1bGVS
YW5nZU1hcCgwKQorICAgICwgbV9jdXJyZW50U3R5bGVEYXRhKDApCiAgICAgLCBtX2RhdGEoMCkK
ICAgICAsIHl5X3N0YXJ0KDEpCiAgICAgLCBtX2xpbmVOdW1iZXIoMCkKQEAgLTE1OSw2ICsxNjIs
NyBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAjaWYgWVlERUJV
RyA+IDAKICAgICBjc3N5eWRlYnVnID0gMTsKICNlbmRpZgorICAgIENTU1Byb3BlcnR5RGF0dW06
OmluaXQoKTsKIH0KIAogQ1NTUGFyc2VyOjp+Q1NTUGFyc2VyKCkKQEAgLTIyMSwxNiArMjI1LDE5
IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcihjb25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBjb25zdCBjaGFyCiAgICAgcmVzZXRSdWxlQm9keU1hcmtzKCk7CiB9
CiAKLXZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNoZWV0LCBjb25z
dCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxlUmFuZ2VzKiBy
dWxlUmFuZ2VNYXApCit2b2lkIENTU1BhcnNlcjo6cGFyc2VTaGVldChDU1NTdHlsZVNoZWV0KiBz
aGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBzdGFydExpbmVOdW1iZXIsIFN0eWxlUnVs
ZVJhbmdlTWFwKiBydWxlUmFuZ2VNYXApCiB7CiAgICAgbV9zdHlsZVNoZWV0ID0gc2hlZXQ7CiAg
ICAgbV9kZWZhdWx0TmFtZXNwYWNlID0gc3RhckF0b207IC8vIFJlc2V0IHRoZSBkZWZhdWx0IG5h
bWVzcGFjZS4KLSAgICBtX3J1bGVSYW5nZXMgPSBydWxlUmFuZ2VNYXA7CisgICAgbV9ydWxlUmFu
Z2VNYXAgPSBydWxlUmFuZ2VNYXA7CisgICAgaWYgKHJ1bGVSYW5nZU1hcCkKKyAgICAgICAgbV9j
dXJyZW50U3R5bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVhdGUoKTsKIAogICAgIG1f
bGluZU51bWJlciA9IHN0YXJ0TGluZU51bWJlcjsKICAgICBzZXR1cFBhcnNlcigiIiwgc3RyaW5n
LCAiIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKLSAgICBtX3J1bGVSYW5nZXMgPSAwOworICAg
IG1fcnVsZVJhbmdlTWFwID0gMDsKKyAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAwOwogICAgIG1f
cnVsZSA9IDA7CiB9CiAKQEAgLTMyNywxMCArMzM0LDE0IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJz
ZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBEb2N1bWVudCogZG9jLCBDU1NTZWxlY3Rv
ckxpCiAgICAgbV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNlbGVjdG9yID0gMDsKIH0KIAotYm9vbCBD
U1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRl
Y2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZURl
Y2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlvbiwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIENTU1N0eWxlU291cmNlRGF0YSogc3R5bGVTb3VyY2VEYXRhKQogewor
ICAgIC8vIExlbmd0aCBvZiB0aGUgIkAtd2Via2l0LWRlY2xzeyIgcHJlZml4LgorICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSAxNTsKKwogICAgIEFTU0VSVCghZGVjbGFy
YXRpb24tPnN0eWxlc2hlZXQoKSB8fCBkZWNsYXJhdGlvbi0+c3R5bGVzaGVldCgpLT5pc0NTU1N0
eWxlU2hlZXQoKSk7CiAgICAgbV9zdHlsZVNoZWV0ID0gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVl
dCo+KGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkpOworICAgIG1fY3VycmVudFN0eWxlRGF0YSA9
IHN0eWxlU291cmNlRGF0YTsKIAogICAgIHNldHVwUGFyc2VyKCJALXdlYmtpdC1kZWNsc3siLCBz
dHJpbmcsICJ9ICIpOwogICAgIGNzc3l5cGFyc2UodGhpcyk7CkBAIC0zNDUsNiArMzU2LDE3IEBA
IGJvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QKICAgICAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CiAgICAg
fQogCisgICAgaWYgKG1fY3VycmVudFN0eWxlRGF0YSkgeworICAgICAgICBtX2N1cnJlbnRTdHls
ZURhdGEtPnN0eWxlQm9keVJhbmdlLmZpcnN0ID0gMDsKKyAgICAgICAgbV9jdXJyZW50U3R5bGVE
YXRhLT5zdHlsZUJvZHlSYW5nZS5zZWNvbmQgPSBzdHJpbmcubGVuZ3RoKCk7CisgICAgICAgIGZv
ciAoVmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPjo6aXRl
cmF0b3IgaXQgPSBtX2N1cnJlbnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5iZWdpbigpOyBpdCAh
PSBtX2N1cnJlbnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5lbmQoKTsgKytpdCkgeworICAgICAg
ICAgICAgKCppdCkuc2Vjb25kLmZpcnN0IC09IHByZWZpeExlbmd0aDsKKyAgICAgICAgICAgICgq
aXQpLnNlY29uZC5zZWNvbmQgLT0gcHJlZml4TGVuZ3RoOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKCFtX3J1bGVSYW5nZU1hcCkKKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gMDsK
ICAgICByZXR1cm4gb2s7CiB9CiAKQEAgLTUzODAsOCArNTQwMiwxMiBAQCBDU1NSdWxlKiBDU1NQ
YXJzZXI6OmNyZWF0ZVN0eWxlUnVsZShWZWN0b3I8Q1NTU2VsZWN0b3IqPiogc2VsZWN0b3JzKQog
ICAgICAgICBydWxlLT5zZXREZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6
Y3JlYXRlKHJ1bGUuZ2V0KCksIG1fcGFyc2VkUHJvcGVydGllcywgbV9udW1QYXJzZWRQcm9wZXJ0
aWVzKSk7CiAgICAgICAgIHJlc3VsdCA9IHJ1bGUuZ2V0KCk7CiAgICAgICAgIG1fcGFyc2VkU3R5
bGVPYmplY3RzLmFwcGVuZChydWxlLnJlbGVhc2UoKSk7Ci0gICAgICAgIGlmIChtX3J1bGVSYW5n
ZXMpCi0gICAgICAgICAgICBtX3J1bGVSYW5nZXMtPnNldChyZXN1bHQsIHN0ZDo6cGFpcjx1bnNp
Z25lZCwgdW5zaWduZWQ+KG1fcnVsZUJvZHlTdGFydE9mZnNldCwgbV9ydWxlQm9keUVuZE9mZnNl
dCkpOworICAgICAgICBpZiAobV9ydWxlUmFuZ2VNYXApIHsKKyAgICAgICAgICAgIEFTU0VSVCht
X2N1cnJlbnRTdHlsZURhdGEpOworICAgICAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5zdHls
ZUJvZHlSYW5nZSA9IFNvdXJjZVJhbmdlKG1fcnVsZUJvZHlTdGFydE9mZnNldCwgbV9ydWxlQm9k
eUVuZE9mZnNldCk7CisgICAgICAgICAgICBtX3J1bGVSYW5nZU1hcC0+c2V0KHJlc3VsdCwgbV9j
dXJyZW50U3R5bGVEYXRhLnJlbGVhc2UoKSk7CisgICAgICAgICAgICBtX2N1cnJlbnRTdHlsZURh
dGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOworICAgICAgICB9CiAgICAgfQogICAg
IHJlc2V0UnVsZUJvZHlNYXJrcygpOwogICAgIGNsZWFyUHJvcGVydGllcygpOwpAQCAtNTYzNCw3
ICs1NjYwLDkgQEAgdm9pZCBDU1NQYXJzZXI6OnVwZGF0ZUxhc3RTZWxlY3RvckxpbmVBbmRQb3Np
dGlvbigpCiB2b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQoKQogewogICAgIHVuc2ln
bmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKLSAgICBpZiAoIW1fcnVsZUJvZHlTdGFydE9m
ZnNldCB8fCBvZmZzZXQgPCBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpCisgICAgaWYgKCp5eXRleHQg
PT0gJ3snKQorICAgICAgICArK29mZnNldDsgLy8gU2tpcCB0aGUgcnVsZSBib2R5IG9wZW5pbmcg
YnJhY2UuCisgICAgaWYgKG9mZnNldCA+IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKICAgICAgICAg
bV9ydWxlQm9keVN0YXJ0T2Zmc2V0ID0gb2Zmc2V0OwogfQogCkBAIC01NjQ1LDYgKzU2NzMsMTQz
IEBAIHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlFbmQoKQogICAgICAgICBtX3J1bGVCb2R5
RW5kT2Zmc2V0ID0gb2Zmc2V0OwogfQogCit2b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5U3Rh
cnQoKQoreworICAgIHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBtX3By
b3BlcnR5U3RhcnRPZmZzZXQgPSBvZmZzZXQ7Cit9CisKKy8vIHN0YXRpYwordW5zaWduZWQgQ1NT
UGFyc2VyOjpmaW5kSW1wb3J0YW50SW5WYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBpbXBvcnRhbnRTdHJpbmcgPSAiaW1wb3J0YW50IjsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgaW1wb3J0YW50TGVuZ3RoID0gOTsKKyAgICBlbnVtIFN0YXRl
IHsKKyAgICAgICAgSU5JVElBTF9TVEFURSwKKyAgICAgICAgU1RSSU5HX1NUQVRFLAorICAgICAg
ICBDT01NRU5UX1NUQVRFLAorICAgICAgICBCQU5HX1NUQVRFCisgICAgfTsKKworICAgIHVuc2ln
bmVkIHZhbHVlTGVuZ3RoID0gdmFsdWUubGVuZ3RoKCk7CisgICAgaWYgKHZhbHVlTGVuZ3RoIDwg
aW1wb3J0YW50TGVuZ3RoICsgMSkKKyAgICAgICAgcmV0dXJuIFVJTlRfTUFYOworICAgIHVuc2ln
bmVkIG1heFRva2VuU3RhcnRJbmRleCA9IHZhbHVlTGVuZ3RoIC0gaW1wb3J0YW50TGVuZ3RoOwor
ICAgIHVuc2lnbmVkIGN1cnJlbnRJbmRleCA9IDA7CisgICAgdW5zaWduZWQgYmFuZ0luZGV4ID0g
VUlOVF9NQVg7CisgICAgU3RhdGUgc3RhdGUgPSBJTklUSUFMX1NUQVRFOworICAgIFVDaGFyIHN0
cmluZ1Rlcm1pbmF0b3IgPSBzdGF0aWNfY2FzdDxVQ2hhcj4oMCk7CisgICAgY29uc3QgVUNoYXIq
IGNoYXJhY3RlcnMgPSB2YWx1ZS5jaGFyYWN0ZXJzKCk7CisgICAgd2hpbGUgKGN1cnJlbnRJbmRl
eCA8PSBtYXhUb2tlblN0YXJ0SW5kZXgpIHsKKyAgICAgICAgVUNoYXIgY2ggPSBjaGFyYWN0ZXJz
W2N1cnJlbnRJbmRleF07CisgICAgICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICAgICAgY2FzZSBJ
TklUSUFMX1NUQVRFOgorICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgY2Fz
ZSAnLyc6CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA8IHZhbHVlTGVuZ3RoIC0g
MSAmJiBjaGFyYWN0ZXJzW2N1cnJlbnRJbmRleCArIDFdID09ICcqJykgeworICAgICAgICAgICAg
ICAgICAgICBzdGF0ZSA9IENPTU1FTlRfU1RBVEU7CisgICAgICAgICAgICAgICAgICAgICsrY3Vy
cmVudEluZGV4OyAvLyBTa2lwIHRoZSBmb2xsb3dpbmcgJyonLgorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyEnOgorICAgICAgICAg
ICAgICAgIHN0YXRlID0gQkFOR19TVEFURTsKKyAgICAgICAgICAgICAgICBiYW5nSW5kZXggPSBj
dXJyZW50SW5kZXg7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICci
JzoKKyAgICAgICAgICAgIGNhc2UgJ1wnJzoKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IFNUUklO
R19TVEFURTsKKyAgICAgICAgICAgICAgICBzdHJpbmdUZXJtaW5hdG9yID0gY2g7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1RS
SU5HX1NUQVRFOgorICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgY2FzZSAn
XFwnOgorICAgICAgICAgICAgICAgICsrY3VycmVudEluZGV4OyAvLyBTa2lwIHRoZSBlc2NhcGVk
IGNoYXJhY3Rlci4KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJyIn
OgorICAgICAgICAgICAgY2FzZSAnXCcnOgorICAgICAgICAgICAgICAgIGlmIChjaCA9PSBzdHJp
bmdUZXJtaW5hdG9yKQorICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IElOSVRJQUxfU1RBVEU7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBDT01NRU5UX1NUQVRFOgorICAgICAgICAgICAgaWYgKGNoID09ICcq
JyAmJiBjdXJyZW50SW5kZXggPCB2YWx1ZUxlbmd0aCAtIDEgJiYgY2hhcmFjdGVyc1tjdXJyZW50
SW5kZXggKyAxXSA9PSAnLycpIHsKKyAgICAgICAgICAgICAgICBzdGF0ZSA9IElOSVRJQUxfU1RB
VEU7CisgICAgICAgICAgICAgICAgKytjdXJyZW50SW5kZXg7IC8vIFNraXAgdGhlIGZvbGxvd2lu
ZyAnLycuCisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBC
QU5HX1NUQVRFOgorICAgICAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICAgICAgY2FzZSAn
ICc6CisgICAgICAgICAgICBjYXNlICdcdCc6CisgICAgICAgICAgICBjYXNlICdccic6CisgICAg
ICAgICAgICBjYXNlICdcbic6CisgICAgICAgICAgICBjYXNlICdcZic6CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OiB7CisgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW1wb3J0YW50SW5kZXggPSAwOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoZWNrSW5k
ZXggPSBjdXJyZW50SW5kZXg7CisgICAgICAgICAgICAgICAgd2hpbGUgKGltcG9ydGFudEluZGV4
IDwgaW1wb3J0YW50TGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaGFyYWN0ZXJz
W2NoZWNrSW5kZXgrK10gIT0gaW1wb3J0YW50U3RyaW5nW2ltcG9ydGFudEluZGV4KytdKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IElOSVRJQUxfU1RBVEU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAtLWN1cnJlbnRJbmRleDsgLy8gUmUtY2hlY2sgdGhlIHNhbWUgcG9zaXRp
b24gaW4gdGhlIElOSVRJQUwgc3RhdGUuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFuZ0lu
ZGV4OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgQVNTRVJUKGZhbHNlKTsKKyAgICAgICAgfQorICAgICAgICArK2N1cnJl
bnRJbmRleDsKKyAgICB9CisgICAgcmV0dXJuIFVJTlRfTUFYOworfQorCit2b2lkIENTU1BhcnNl
cjo6bWFya1Byb3BlcnR5RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5
UGFyc2VkKQoreworICAgIHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBp
ZiAoKnl5dGV4dCA9PSAnOycpIC8vIEluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3BlcnR5
IHRleHQuCisgICAgICAgICsrb2Zmc2V0OworICAgIG1fcHJvcGVydHlFbmRPZmZzZXQgPSBvZmZz
ZXQ7CisgICAgaWYgKG1fcHJvcGVydHlTdGFydE9mZnNldCAhPSBVSU5UX01BWCAmJiBtX2N1cnJl
bnRTdHlsZURhdGEpIHsKKyAgICAgICAgLy8gVGhpcyBzdHVmZiBpcyBvbmx5IGV4ZWN1dGVkIHdo
ZW4gdGhlIHN0eWxlIGRhdGEgcmV0cmlldmFsIGlzIHJlcXVlc3RlZCBieSBjbGllbnQuCisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHN0YXJ0ID0gbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBlbmQgPSBtX3Byb3BlcnR5RW5kT2Zmc2V0OworICAgICAgICBBU1NF
UlQoc3RhcnQgPCBlbmQpOworICAgICAgICBTdHJpbmcgcHJvcGVydHlTdHJpbmcgPSBTdHJpbmco
bV9kYXRhICsgc3RhcnQsIGVuZCAtIHN0YXJ0KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAg
aWYgKHByb3BlcnR5U3RyaW5nLmVuZHNXaXRoKCI7IiwgdHJ1ZSkpCisgICAgICAgICAgICBwcm9w
ZXJ0eVN0cmluZyA9IHByb3BlcnR5U3RyaW5nLmxlZnQocHJvcGVydHlTdHJpbmcubGVuZ3RoKCkg
LSAxKTsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gcHJvcGVydHlDb21wb25lbnRzOworICAgICAg
ICBzaXplX3QgY29sb25JbmRleCA9IHByb3BlcnR5U3RyaW5nLmZpbmQoIjoiKTsKKyAgICAgICAg
QVNTRVJUKGNvbG9uSW5kZXggIT0gbm90Rm91bmQpOworCisgICAgICAgIFN0cmluZyBuYW1lID0g
cHJvcGVydHlTdHJpbmcubGVmdChjb2xvbkluZGV4KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAg
ICAgU3RyaW5nIHZhbHVlID0gcHJvcGVydHlTdHJpbmcuc3Vic3RyaW5nKGNvbG9uSW5kZXggKyAx
LCBwcm9wZXJ0eVN0cmluZy5sZW5ndGgoKSkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgIGJv
b2wgaXNJbXBvcnRhbnQgPSBpc0ltcG9ydGFudEZvdW5kOworICAgICAgICBpZiAoaXNJbXBvcnRh
bnQgfHwgIWlzUHJvcGVydHlQYXJzZWQpIHsKKyAgICAgICAgICAgIC8vIE5lZWQgdG8gc3RyaXAg
IiF7d31pbXBvcnRhbnQiICh3aXRoIHRoZSBmb2xsb3dpbmcgdGV4dCkgaWYgdGhlcmUncyBhIGNo
YW5jZSB0aGF0IGl0IGlzIHByZXNlbnQgaW4gdGhlIHZhbHVlLgorICAgICAgICAgICAgdW5zaWdu
ZWQgaW1wb3J0YW50T2Zmc2V0ID0gZmluZEltcG9ydGFudEluVmFsdWUodmFsdWUpOworICAgICAg
ICAgICAgQVNTRVJUKCFpc0ltcG9ydGFudEZvdW5kIHx8IGltcG9ydGFudE9mZnNldCAhPSBVSU5U
X01BWCk7CisgICAgICAgICAgICBpZiAoaW1wb3J0YW50T2Zmc2V0ICE9IFVJTlRfTUFYKSB7Cisg
ICAgICAgICAgICAgICAgaXNJbXBvcnRhbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIHZhbHVl
ID0gdmFsdWUubGVmdChpbXBvcnRhbnRPZmZzZXQpLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSByYW5nZSBpcyByZWxh
dGl2ZSB0byB0aGUgZGVjbGFyYXRpb24gc3RhcnQgb2Zmc2V0LgorICAgICAgICBtX2N1cnJlbnRT
dHlsZURhdGEtPnByb3BlcnR5RGF0YS5hcHBlbmQoCisgICAgICAgICAgICBzdGQ6OnBhaXI8Q1NT
UHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+KENTU1Byb3BlcnR5RGF0dW0obmFtZSwgdmFsdWUs
IGlzSW1wb3J0YW50LCBpc1Byb3BlcnR5UGFyc2VkKSwgU291cmNlUmFuZ2UobV9wcm9wZXJ0eVN0
YXJ0T2Zmc2V0IC0gbV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3Byb3BlcnR5RW5kT2Zmc2V0IC0g
bV9ydWxlQm9keVN0YXJ0T2Zmc2V0KSkpOworICAgIH0KKyAgICByZXNldFByb3BlcnR5TWFya3Mo
KTsKK30KKwogc3RhdGljIGludCBjc3NQcm9wZXJ0eUlEKGNvbnN0IFVDaGFyKiBwcm9wZXJ0eU5h
bWUsIHVuc2lnbmVkIGxlbmd0aCkKIHsKICAgICBpZiAoIWxlbmd0aCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggZTg0
MGE3MC4uMDQ5ZmYyZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKKysrIGIv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgIkNv
bG9yLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyVmFsdWVzLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVy
dHlEYXR1bS5oIgogI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlh
UXVlcnkuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTUsMTggKzU2LDE2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENTU1BhcnNlciB7CiAgICAgcHVibGljOgot
ICAgICAgICB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2lnbmVk
LCB1bnNpZ25lZD4gPiBTdHlsZVJ1bGVSYW5nZXM7Ci0KICAgICAgICAgQ1NTUGFyc2VyKGJvb2wg
c3RyaWN0UGFyc2luZyA9IHRydWUpOwogICAgICAgICB+Q1NTUGFyc2VyKCk7CiAKLSAgICAgICAg
dm9pZCBwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRM
aW5lTnVtYmVyID0gMCwgU3R5bGVSdWxlUmFuZ2VzKiBydWxlUmFuZ2VNYXAgPSAwKTsKKyAgICAg
ICAgdm9pZCBwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3Rh
cnRMaW5lTnVtYmVyID0gMCwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCA9IDApOwog
ICAgICAgICBQYXNzUmVmUHRyPENTU1J1bGU+IHBhcnNlUnVsZShDU1NTdHlsZVNoZWV0KiwgY29u
c3QgU3RyaW5nJik7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VLZXlmcmFtZVJ1
bGUoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBib29sIHBhcnNlVmFs
dWUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBpbnQgcHJvcElkLCBjb25zdCBTdHJpbmcm
LCBib29sIGltcG9ydGFudCk7CiAgICAgICAgIHN0YXRpYyBib29sIHBhcnNlQ29sb3IoUkdCQTMy
JiBjb2xvciwgY29uc3QgU3RyaW5nJiwgYm9vbCBzdHJpY3QgPSBmYWxzZSk7CiAgICAgICAgIGJv
b2wgcGFyc2VDb2xvcihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYp
OwotICAgICAgICBib29sIHBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24qLCBjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgYm9vbCBwYXJzZURlY2xhcmF0aW9uKENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgU3RyaW5nJiwgQ1NTU3R5bGVTb3VyY2VEYXRh
KiBzdHlsZVNvdXJjZURhdGEgPSAwKTsKICAgICAgICAgYm9vbCBwYXJzZU1lZGlhUXVlcnkoTWVk
aWFMaXN0KiwgY29uc3QgU3RyaW5nJik7CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkg
Y29uc3Q7CkBAIC0yNDQsMTAgKzI0MywxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IC8vIHRva2VuaXplciBtZXRob2RzIGFuZCBkYXRhCiAgICAgICAgIHVuc2lnbmVkIG1fcnVsZUJv
ZHlTdGFydE9mZnNldDsKICAgICAgICAgdW5zaWduZWQgbV9ydWxlQm9keUVuZE9mZnNldDsKLSAg
ICAgICAgU3R5bGVSdWxlUmFuZ2VzKiBtX3J1bGVSYW5nZXM7CisgICAgICAgIHVuc2lnbmVkIG1f
cHJvcGVydHlTdGFydE9mZnNldDsKKyAgICAgICAgdW5zaWduZWQgbV9wcm9wZXJ0eUVuZE9mZnNl
dDsKKyAgICAgICAgU3R5bGVSdWxlUmFuZ2VNYXAqIG1fcnVsZVJhbmdlTWFwOworICAgICAgICBS
ZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBtX2N1cnJlbnRTdHlsZURhdGE7CiAgICAgICAgIHZv
aWQgbWFya1J1bGVCb2R5U3RhcnQoKTsKICAgICAgICAgdm9pZCBtYXJrUnVsZUJvZHlFbmQoKTsK
KyAgICAgICAgdm9pZCBtYXJrUHJvcGVydHlTdGFydCgpOworICAgICAgICB2b2lkIG1hcmtQcm9w
ZXJ0eUVuZChib29sIGlzSW1wb3J0YW50Rm91bmQsIGJvb2wgaXNQcm9wZXJ0eVBhcnNlZCk7CiAg
ICAgICAgIHZvaWQgcmVzZXRSdWxlQm9keU1hcmtzKCkgeyBtX3J1bGVCb2R5U3RhcnRPZmZzZXQg
PSBtX3J1bGVCb2R5RW5kT2Zmc2V0ID0gMDsgfQorICAgICAgICB2b2lkIHJlc2V0UHJvcGVydHlN
YXJrcygpIHsgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0ID0gbV9wcm9wZXJ0eUVuZE9mZnNldCA9IFVJ
TlRfTUFYOyB9CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBmaW5kSW1wb3J0YW50SW5WYWx1ZShj
b25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICAgICAgaW50IGxleCh2b2lkKiB5eWx2YWwpOwogICAg
ICAgICBpbnQgdG9rZW4oKSB7IHJldHVybiB5eVRvazsgfQogICAgICAgICBVQ2hhciogdGV4dChp
bnQqIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNw
cCBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmNlYmI1N2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eURhdHVtLmNwcApAQCAtMCwwICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAo
YykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmZGVmIFNLSVBfU1RBVElDX0NPTlNUUlVDVE9SU19PTl9HQ0MKKyNkZWZpbmUgQ1NTUFJP
UEVSVFlEQVRVTV9ISURFX0dMT0JBTFMgMQorI2VuZGlmCisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0
eURhdHVtLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9T
dGF0aWNDb25zdHJ1Y3RvcnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NQcm9wZXJ0
eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKQorICAgIDogbmFtZShuYW1lKQor
ICAgICwgdmFsdWUodmFsdWUpCisgICAgLCBpbXBvcnRhbnQoaW1wb3J0YW50KQorICAgICwgcGFy
c2VkKHBhcnNlZCkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1bShj
b25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhlcikKKyAgICA6IG5hbWUob3RoZXIubmFtZSkKKyAg
ICAsIHZhbHVlKG90aGVyLnZhbHVlKQorICAgICwgaW1wb3J0YW50KG90aGVyLmltcG9ydGFudCkK
KyAgICAsIHBhcnNlZChvdGhlci5wYXJzZWQpCit7Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06OkNT
U1Byb3BlcnR5RGF0dW0oKQorICAgIDogbmFtZSgiIikKKyAgICAsIHZhbHVlKCIiKQorICAgICwg
aW1wb3J0YW50KGZhbHNlKQorICAgICwgcGFyc2VkKGZhbHNlKQoreworfQorCitDU1NQcm9wZXJ0
eURhdHVtJiBDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlEYXR1
bSYgb3RoZXIpCit7CisgICAgbmFtZSA9IG90aGVyLm5hbWU7CisgICAgdmFsdWUgPSBvdGhlci52
YWx1ZTsKKyAgICBpbXBvcnRhbnQgPSBvdGhlci5pbXBvcnRhbnQ7CisgICAgcGFyc2VkID0gb3Ro
ZXIucGFyc2VkOworICAgIHJldHVybiAqdGhpczsKK30KKworU3RyaW5nIENTU1Byb3BlcnR5RGF0
dW06OnRvU3RyaW5nKCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
ZW1wdHlWYWx1ZSwgKCJlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBpbXBv
cnRhbnRTdWZmaXgsICgiICFpbXBvcnRhbnQiKSk7CisgICAgaWYgKCFuYW1lICYmIHZhbHVlID09
IGVtcHR5VmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZyByZXN1
bHQgPSBuYW1lOworICAgIHJlc3VsdCArPSAiOiAiOworICAgIHJlc3VsdCArPSB2YWx1ZTsKKyAg
ICBpZiAoaW1wb3J0YW50KQorICAgICAgICByZXN1bHQgKz0gaW1wb3J0YW50U3VmZml4OworICAg
IHJlc3VsdCArPSAiOyI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gR2xvYmFsIGluaXQg
cm91dGluZXMKK0RFRklORV9HTE9CQUwoQ1NTUHJvcGVydHlEYXR1bSwgZW1wdHlDU1NQcm9wZXJ0
eURhdHVtLCAiIiwgImUiLCBmYWxzZSwgZmFsc2UpCisKKy8vIHN0YXRpYwordm9pZCBDU1NQcm9w
ZXJ0eURhdHVtOjppbml0KCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZDsKKyAgICBp
ZiAoIWluaXRpYWxpemVkKSB7CisgICAgICAgIG5ldyAoKHZvaWQgKikgJmVtcHR5Q1NTUHJvcGVy
dHlEYXR1bSkgQ1NTUHJvcGVydHlEYXR1bSgiIiwgImUiLCBmYWxzZSwgZmFsc2UpOworICAgICAg
ICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKworbmFtZXNwYWNlIFdURiB7CisKK1dlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0gSGFzaFRy
YWl0czxXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtPjo6ZW1wdHlWYWx1ZSgpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtLCBlbXB0eUhhc2hWYWx1
ZSwgKCIiLCAiaCIsIGZhbHNlLCBmYWxzZSkpOworICAgIHJldHVybiBlbXB0eUhhc2hWYWx1ZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eURhdHVtLmggYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA3Yjc5YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uaApAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ1NTUHJv
cGVydHlEYXR1bV9oCisjZGVmaW5lIENTU1Byb3BlcnR5RGF0dW1faAorCisjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx1dGlsaXR5PgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFRyYWl0cy5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNo
Lmg+CisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDU1NTdHlsZVJ1bGU7CisKK3R5
cGVkZWYgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gU291cmNlUmFuZ2U7CisKK3N0cnVj
dCBDU1NQcm9wZXJ0eURhdHVtIHsKKyAgICBzdGF0aWMgdm9pZCBpbml0KCk7CisKKyAgICBDU1NQ
cm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9v
bCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKTsKKyAgICBDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IENT
U1Byb3BlcnR5RGF0dW0mIG90aGVyKTsKKyAgICBDU1NQcm9wZXJ0eURhdHVtKCk7CisgICAgQUxX
QVlTX0lOTElORSB+Q1NTUHJvcGVydHlEYXR1bSgpIHsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKSBjb25zdCB7IHJldHVybiBuYW1lID09IG90
aGVyLm5hbWUgJiYgdmFsdWUgPT0gb3RoZXIudmFsdWUgJiYgaW1wb3J0YW50ID09IG90aGVyLmlt
cG9ydGFudCAmJiBwYXJzZWQgPT0gb3RoZXIucGFyc2VkOyB9CisgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IENTU1Byb3BlcnR5RGF0dW0mIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09
IG90aGVyKTsgfQorCisgICAgQ1NTUHJvcGVydHlEYXR1bSYgb3BlcmF0b3I9KGNvbnN0IENTU1By
b3BlcnR5RGF0dW0mIG90aGVyKTsKKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKworICAg
IFN0cmluZyBuYW1lOworICAgIFN0cmluZyB2YWx1ZTsKKyAgICBib29sIGltcG9ydGFudDsKKyAg
ICBib29sIHBhcnNlZDsKK307Cit0eXBlZGVmIHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBi
b29sPiBTb3VyY2VBd2FyZVByb3BlcnR5RGF0dW07CisKKyNpZm5kZWYgQ1NTUFJPUEVSVFlEQVRV
TV9ISURFX0dMT0JBTFMKK2V4dGVybiBjb25zdCBDU1NQcm9wZXJ0eURhdHVtIGVtcHR5Q1NTUHJv
cGVydHlEYXR1bTsKKyNlbmRpZgorCitzdHJ1Y3QgQ1NTU3R5bGVTb3VyY2VEYXRhIDogcHVibGlj
IFJlZkNvdW50ZWQ8Q1NTU3R5bGVTb3VyY2VEYXRhPiB7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
Q1NTU3R5bGVTb3VyY2VEYXRhPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBDU1NTdHlsZVNvdXJjZURhdGEoKSk7CisgICAgfQorCisgICAgLy8gUmFuZ2Ugb2Yg
dGhlIHN0eWxlIHRleHQgaW4gdGhlIGVuY2xvc2luZyBzb3VyY2UgKHN0YXJ0IGFuZCBlbmQgb2Zm
c2V0cyBpbmNsdXNpdmUpLgorICAgIFNvdXJjZVJhbmdlIHN0eWxlQm9keVJhbmdlOworICAgIFZl
Y3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID4gcHJvcGVydHlE
YXRhOworfTsKK3R5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBSZWZQdHI8Q1NTU3R5bGVT
b3VyY2VEYXRhPiA+IFN0eWxlUnVsZVJhbmdlTWFwOworCitzdHJ1Y3QgQ1NTUHJvcGVydHlEYXR1
bUhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKENTU1Byb3BlcnR5RGF0dW0ga2V5KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFN0cmluZ0hhc2g6Omhhc2goa2V5Lm5hbWUpICsgU3RyaW5n
SGFzaDo6aGFzaChrZXkudmFsdWUpICsgNyAqIGtleS5pbXBvcnRhbnQgKyAzICoga2V5LnBhcnNl
ZCArIDMxOworICAgIH0KKworICAgIHN0YXRpYyBib29sIGVxdWFsKENTU1Byb3BlcnR5RGF0dW0g
YSwgQ1NTUHJvcGVydHlEYXR1bSBiKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGEubmFtZSA9PSBi
Lm5hbWUgJiYgYS52YWx1ZSA9PSBiLnZhbHVlICYmIGEuaW1wb3J0YW50ID09IGIuaW1wb3J0YW50
ICYmIGEucGFyc2VkID09IGIucGFyc2VkOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gZmFsc2U7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgRGVmYXVsdEhhc2g7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3Jl
OjpDU1NQcm9wZXJ0eURhdHVtPiB7CisgICAgdHlwZWRlZiBXZWJDb3JlOjpDU1NQcm9wZXJ0eURh
dHVtSGFzaCBIYXNoOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3Jl
OjpDU1NQcm9wZXJ0eURhdHVtPiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Byb3Bl
cnR5RGF0dW0+IHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBuZWVkc0Rlc3RydWN0aW9uID0gZmFs
c2U7CisgICAgc3RhdGljIFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW0gZW1wdHlWYWx1ZSgpOwor
CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OkNTU1Byb3Bl
cnR5RGF0dW0mIHNsb3QpIHsgbmV3ICgmc2xvdCkgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSgi
IiwgIkQiLCBmYWxzZSwgZmFsc2UpOyB9CisgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUo
Y29uc3QgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSYgc2xvdCkgeyByZXR1cm4gIXNsb3QubmFt
ZS5sZW5ndGgoKSAmJiBzbG90LnZhbHVlID09ICJEIjsgfQorfTsKKworfSAvLyBuYW1lc3BhY2Ug
V1RGCisKKyNlbmRpZiAvLyBDU1NQcm9wZXJ0eURhdHVtX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRs
CmluZGV4IDE2OWIxODguLjk5YjAyZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtMTg4
LDcgKzE4OCw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdl
dElubGluZVN0eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwogICAgICAgICBb
aGFuZGxlcj1ET01dIHZvaWQgZ2V0Q29tcHV0ZWRTdHlsZShpbiBsb25nIG5vZGVJZCwgb3V0IFZh
bHVlIHN0eWxlKTsKICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFN0eWxlU2hlZXQoaW4g
bG9uZyBzdHlsZVNoZWV0SWQsIG91dCBPYmplY3Qgc3R5bGVTaGVldCk7Ci0gICAgICAgIFtoYW5k
bGVyPURPTV0gdm9pZCBnZXRSdWxlUmFuZ2VzKGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgVmFs
dWUgcmFuZ2VzKTsKKyAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIGdldFN0eWxlU291cmNlRGF0
YShpbiBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IE9iamVjdCBzdHlsZVNvdXJjZURhdGEpOwogICAg
ICAgICBbaGFuZGxlcj1ET01dIHZvaWQgYXBwbHlTdHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBp
biBTdHJpbmcgc3R5bGVUZXh0LCBpbiBTdHJpbmcgcHJvcGVydHlOYW1lLCBvdXQgYm9vbGVhbiBz
dWNjZXNzLCBvdXQgVmFsdWUgc3R5bGUsIG91dCBBcnJheSBjaGFuZ2VkUHJvcGVydGllcyk7CiAg
ICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBzZXRTdHlsZVRleHQoaW4gbG9uZyBzdHlsZUlkLCBp
biBTdHJpbmcgc3R5bGVUZXh0LCBvdXQgYm9vbGVhbiBzdWNjZXNzKTsKICAgICAgICAgW2hhbmRs
ZXI9RE9NXSB2b2lkIHNldFN0eWxlUHJvcGVydHkoaW4gbG9uZyBzdHlsZUlkLCBpbiBTdHJpbmcg
bmFtZSwgaW4gU3RyaW5nIHZhbHVlLCBvdXQgYm9vbGVhbiBzdWNjZXNzKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAppbmRleCBjMmRjNGYxLi44ZDNhMGM2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCkBAIC0zNywxMSArMzcsMjAgQEAKICNp
bmNsdWRlICJDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgi
CiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUgIkNhY2hlLmgiCisjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgor
I2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlLmgiCisjaW5j
bHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIKKyNpbmNsdWRlICJUZXh0
RW5jb2RpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Nyw2ICs3Niw3IEBAIHZv
aWQgSW5zcGVjdG9yQ1NTU3RvcmU6OnJlc2V0KCkKICAgICBtX3N0eWxlU2hlZXRUb09mZnNldHMu
Y2xlYXIoKTsKICAgICBtX3N0eWxlU2hlZXRUb0lkLmNsZWFyKCk7CiAgICAgbV9pZFRvU3R5bGVT
aGVldC5jbGVhcigpOworICAgIG1faWRUb1N0eWxlU2hlZXRUZXh0LmNsZWFyKCk7CiAgICAgbV9p
ZFRvRGlzYWJsZWRTdHlsZS5jbGVhcigpOwogICAgIG1fZG9jdW1lbnROb2RlVG9JbnNwZWN0b3JT
dHlsZVNoZWV0TWFwLmNsZWFyKCk7CiAKQEAgLTEwNCw0OCArMTE0LDE4MCBAQCBDU1NTdHlsZVNo
ZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6aW5zcGVjdG9yU3R5bGVTaGVldChEb2N1bWVudCogb3du
ZXJEb2N1bWVudCwgYgogICAgIHJldHVybiBpbnNwZWN0b3JTdHlsZVNoZWV0OwogfQogCi1IYXNo
TWFwPGxvbmcsIFNvdXJjZVJhbmdlPiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UnVsZVJhbmdlcyhD
U1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQorU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjpzdHls
ZVNoZWV0VGV4dChsb25nIHN0eWxlU2hlZXRJZCkKIHsKKyAgICBJZFRvU3R5bGVTaGVldFRleHRN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9pZFRvU3R5bGVTaGVldFRleHQuZmluZChzdHlsZVNoZWV0SWQp
OworICAgIGlmIChpdCAhPSBtX2lkVG9TdHlsZVNoZWV0VGV4dC5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIGl0LT5zZWNvbmQ7CisKKyAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gc3R5bGVT
aGVldEZvcklkKHN0eWxlU2hlZXRJZCk7CiAgICAgaWYgKCFzdHlsZVNoZWV0KQotICAgICAgICBy
ZXR1cm4gSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4oKTsKLSAgICBSZWZQdHI8Q1NTUnVsZUxp
c3Q+IG9yaWdpbmFsUnVsZUxpc3QgPSBDU1NSdWxlTGlzdDo6Y3JlYXRlKHN0eWxlU2hlZXQsIGZh
bHNlKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFN0cmluZyB0ZXh0OworCisgICAg
Tm9kZSogb3duZXJOb2RlID0gc3R5bGVTaGVldC0+b3duZXJOb2RlKCk7CisgICAgaWYgKG93bmVy
Tm9kZSAmJiBvd25lck5vZGUtPm5vZGVUeXBlKCkgPT0gTm9kZTo6RUxFTUVOVF9OT0RFKSB7Cisg
ICAgICAgIEVsZW1lbnQqIG93bmVyRWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihvd25l
ck5vZGUpOworICAgICAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1lKCkubG93ZXIoKSA9PSAi
c3R5bGUiKQorICAgICAgICAgICAgdGV4dCA9IGlubGluZVN0eWxlU2hlZXRUZXh0KHN0eWxlU2hl
ZXQpOworICAgIH0KKyAgICBpZiAodGV4dC5pc0VtcHR5KCkpCisgICAgICAgIHRleHQgPSByZXNv
dXJjZVN0eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXQpOworCisgICAgaWYgKCF0ZXh0LmlzRW1wdHko
KSkKKyAgICAgICAgbV9pZFRvU3R5bGVTaGVldFRleHQuc2V0KHN0eWxlU2hlZXRJZCwgdGV4dCk7
CisgICAgcmV0dXJuIHRleHQ7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6cmVzb3Vy
Y2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIEtVUkwg
c3R5bGVTaGVldFVSTCA9IHN0eWxlU2hlZXQtPmZpbmFsVVJMKCk7CisgICAgRG9jdW1lbnQqIGRv
YyA9IHN0eWxlU2hlZXQtPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKKyAgICBTdHJpbmcgdGV4dEVuY29kaW5nTmFtZTsKKyAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXI7CisgICAgaWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZp
ZXIoc3R5bGVTaGVldFVSTCwgZG9jLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIo
KS0+cmVxdWVzdFVSTCgpKSkgeworICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gZG9jLT5pbnB1
dEVuY29kaW5nKCk7CisgICAgICAgIGJ1ZmZlciA9IGRvYy0+ZnJhbWUoKS0+bG9hZGVyKCktPnBy
b3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsID0gc3R5bGVTaGVldFVSTC5zdHJpbmcoKTsK
KyAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gZG9jLT5jYWNoZWRSZXNv
dXJjZUxvYWRlcigpLT5jYWNoZWRSZXNvdXJjZSh1cmwpOworICAgICAgICBpZiAoIWNhY2hlZFJl
c291cmNlKQorICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBjYWNoZSgpLT5yZXNvdXJjZUZv
clVSTCh1cmwpOworCisgICAgICAgIEFTU0VSVChjYWNoZWRSZXNvdXJjZSk7IC8vIEZJWE1FKGFw
YXZsb3YpOiBUaGlzIG1pZ2h0IGJlIHRvbyBhZ2dyZXNzaXZlLgorCisgICAgICAgIGJvb2wgaXNV
bnB1cmdlYWJsZSA9IHRydWU7CisgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZS0+aXNQdXJnZWFi
bGUoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlzIHB1cmdlYWJsZSB0aGVu
IG1ha2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAgICAgICAvLyBpdHMgZGF0YS4gVGhp
cyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgorICAgICAgICAgICAgLy8g
ZW1wdHkgU3RyaW5nLgorICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNvdXJjZS0+bWFrZVB1cmdl
YWJsZShmYWxzZSkpCisgICAgICAgICAgICAgICAgaXNVbnB1cmdlYWJsZSA9IGZhbHNlOworICAg
ICAgICB9CisgICAgICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7CisgICAgICAgICAgICB0ZXh0RW5j
b2RpbmdOYW1lID0gY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCk7CisgICAgICAgICAgICBidWZm
ZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KGJ1ZmZlcikgeworICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2RpbmcodGV4dEVuY29kaW5nTmFt
ZSk7CisgICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKQorICAgICAgICAgICAgZW5jb2Rp
bmcgPSBXaW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKKyAgICAgICAgcmV0dXJuIGVuY29kaW5nLmRl
Y29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAgIH0KKworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIEluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZVNo
ZWV0VGV4dChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0KQoreworICAgIE5vZGUqIG93bmVyTm9k
ZSA9IHN0eWxlU2hlZXQtPm93bmVyTm9kZSgpOworICAgIGlmICghb3duZXJOb2RlIHx8IG93bmVy
Tm9kZS0+bm9kZVR5cGUoKSAhPSBOb2RlOjpFTEVNRU5UX05PREUgfHwgbV9zdHlsZVNoZWV0VG9J
ZC5maW5kKHN0eWxlU2hlZXQpID09IG1fc3R5bGVTaGVldFRvSWQuZW5kKCkpCisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICBFbGVtZW50KiBvd25lckVsZW1lbnQgPSBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4ob3duZXJOb2RlKTsKKyAgICBpZiAob3duZXJFbGVtZW50LT50YWdOYW1lKCkubG93
ZXIoKSAhPSAic3R5bGUiKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG93
bmVyRWxlbWVudC0+aW5uZXJUZXh0KCk7Cit9CisKKworLy8gQWxsIHJhbmdlcyBhcmU6IFtzdGFy
dDsgZW5kKSAoc3RhcnQgLSBpbmNsdXNpdmUsIGVuZCAtIGV4Y2x1c2l2ZSkuCitib29sIEluc3Bl
Y3RvckNTU1N0b3JlOjpnZXRTdHlsZVNvdXJjZURhdGEoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5
bGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpCit7CisgICAgaWYgKCFzdHls
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IGlubGlu
ZVN0eWxlRWxlbWVudChzdHlsZSk7CisgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAgLy8gSW5s
aW5lOiBzdHlsZT0iLi4uIi4KKyAgICAgICAgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gc3R5
bGVTb3VyY2VEYXRhID0gQ1NTU3R5bGVTb3VyY2VEYXRhOjpjcmVhdGUoKTsKKyAgICAgICAgYm9v
bCBzdWNjZXNzID0gZ2V0U3R5bGVBdHRyaWJ1dGVSYW5nZXMoZWxlbWVudCwgJnN0eWxlU291cmNl
RGF0YSk7CisgICAgICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgKnJlc3VsdCA9IHN0eWxlU291cmNlRGF0YTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGdldFBhcmVudFN0eWxl
U2hlZXQoc3R5bGUpOworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+ID4qIHJhbmdlc1ZlY3Rv
ciA9IDA7CiAgICAgU3R5bGVTaGVldFRvT2Zmc2V0c01hcDo6aXRlcmF0b3IgaXQgPSBtX3N0eWxl
U2hlZXRUb09mZnNldHMuZmluZChzdHlsZVNoZWV0KTsKLSAgICBWZWN0b3I8U291cmNlUmFuZ2U+
KiBvZmZzZXRWZWN0b3IgPSAwOwogICAgIGlmIChpdCA9PSBtX3N0eWxlU2hlZXRUb09mZnNldHMu
ZW5kKCkpIHsKLSAgICAgICAgSW5zcGVjdG9yUmVzb3VyY2UqIHJlc291cmNlID0gbV9pbnNwZWN0
b3JDb250cm9sbGVyLT5yZXNvdXJjZUZvclVSTChzdHlsZVNoZWV0LT5maW5hbFVSTCgpLnN0cmlu
ZygpKTsKLSAgICAgICAgaWYgKHJlc291cmNlKSB7Ci0gICAgICAgICAgICBvZmZzZXRWZWN0b3Ig
PSBuZXcgVmVjdG9yPFNvdXJjZVJhbmdlPjsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBzdHlsZVNo
ZWV0VGV4dChiaW5kU3R5bGVTaGVldChzdHlsZVNoZWV0KSk7CisgICAgICAgIGlmICghdGV4dC5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiBuZXdTdHlsZVNo
ZWV0ID0gQ1NTU3R5bGVTaGVldDo6Y3JlYXRlKHN0eWxlU2hlZXQtPm93bmVyTm9kZSgpKTsKICAg
ICAgICAgICAgIENTU1BhcnNlciBwOwotICAgICAgICAgICAgQ1NTUGFyc2VyOjpTdHlsZVJ1bGVS
YW5nZXMgcnVsZVJhbmdlTWFwOwotICAgICAgICAgICAgcC5wYXJzZVNoZWV0KG5ld1N0eWxlU2hl
ZXQuZ2V0KCksIHJlc291cmNlLT5zb3VyY2VTdHJpbmcoKSwgMCwgJnJ1bGVSYW5nZU1hcCk7Ci0g
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBuZXdTdHlsZVNoZWV0LT5s
ZW5ndGgoKTsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgQ1NTU3R5bGVSdWxl
KiBydWxlID0gYXNDU1NTdHlsZVJ1bGUobmV3U3R5bGVTaGVldC0+aXRlbShpKSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKCFydWxlKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgICAgICBIYXNoTWFwPENTU1N0eWxlUnVsZSosIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5z
aWduZWQ+ID46Oml0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlTWFwLmZpbmQocnVsZSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKGl0ICE9IHJ1bGVSYW5nZU1hcC5lbmQoKSkKLSAgICAgICAgICAgICAgICAg
ICAgb2Zmc2V0VmVjdG9yLT5hcHBlbmQoaXQtPnNlY29uZCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBtX3N0eWxlU2hlZXRUb09mZnNldHMuc2V0KHN0eWxlU2hlZXQsIG9mZnNldFZlY3Rv
cik7CisgICAgICAgICAgICBTdHlsZVJ1bGVSYW5nZU1hcCBydWxlUmFuZ2VNYXA7CisgICAgICAg
ICAgICBwLnBhcnNlU2hlZXQobmV3U3R5bGVTaGVldC5nZXQoKSwgdGV4dCwgMCwgJnJ1bGVSYW5n
ZU1hcCk7CisgICAgICAgICAgICByYW5nZXNWZWN0b3IgPSBuZXcgVmVjdG9yPFJlZlB0cjxDU1NT
dHlsZVNvdXJjZURhdGE+ID47CisgICAgICAgICAgICBleHRyYWN0UmFuZ2VzKG5ld1N0eWxlU2hl
ZXQuZ2V0KCksIHJ1bGVSYW5nZU1hcCwgcmFuZ2VzVmVjdG9yKTsKKyAgICAgICAgICAgIG1fc3R5
bGVTaGVldFRvT2Zmc2V0cy5zZXQoc3R5bGVTaGVldCwgcmFuZ2VzVmVjdG9yKTsKICAgICAgICAg
fQogICAgIH0gZWxzZQotICAgICAgICBvZmZzZXRWZWN0b3IgPSBpdC0+c2Vjb25kOwotICAgIGlm
ICghb2Zmc2V0VmVjdG9yKQotICAgICAgICByZXR1cm4gSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5n
ZT4oKTsKKyAgICAgICAgcmFuZ2VzVmVjdG9yID0gaXQtPnNlY29uZDsKKyAgICBpZiAoIXJhbmdl
c1ZlY3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdW5zaWduZWQgcnVsZUluZGV4
ID0gMDsKLSAgICBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdlPiByZXN1bHQ7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gc3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7
ICsraSkgewotICAgICAgICBBU1NFUlQocnVsZUluZGV4IDwgb2Zmc2V0VmVjdG9yLT5zaXplKCkp
OwogICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShzdHlsZVNoZWV0
LT5pdGVtKGkpKTsKICAgICAgICAgaWYgKCFydWxlKQogICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIC8vIFRoaXMgbWFwcyB0aGUgc3R5bGUgaWQgdG8gdGhlIHJ1bGUgYm9keSByYW5nZS4K
LSAgICAgICAgcmVzdWx0LnNldChiaW5kU3R5bGUocnVsZS0+c3R5bGUoKSksIG9mZnNldFZlY3Rv
ci0+YXQocnVsZUluZGV4KSk7CisgICAgICAgIGlmIChydWxlLT5zdHlsZSgpID09IHN0eWxlKSB7
CisgICAgICAgICAgICBBU1NFUlQocnVsZUluZGV4IDwgcmFuZ2VzVmVjdG9yLT5zaXplKCkpOwor
ICAgICAgICAgICAgKnJlc3VsdCA9IHJhbmdlc1ZlY3Rvci0+YXQocnVsZUluZGV4KTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgICAgIHJ1bGVJbmRleCsrOwogICAg
IH0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBJbnNw
ZWN0b3JDU1NTdG9yZTo6ZXh0cmFjdFJhbmdlcyhDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBj
b25zdCBTdHlsZVJ1bGVSYW5nZU1hcCYgcnVsZVJhbmdlTWFwLCBWZWN0b3I8UmVmUHRyPENTU1N0
eWxlU291cmNlRGF0YT4gPiogcmFuZ2VzVmVjdG9yKQoreworICAgIGZvciAodW5zaWduZWQgaSA9
IDAsIGxlbmd0aCA9IHN0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAg
ICAgICAgQ1NTU3R5bGVSdWxlKiBydWxlID0gYXNDU1NTdHlsZVJ1bGUoc3R5bGVTaGVldC0+aXRl
bShpKSk7CisgICAgICAgIGlmICghcnVsZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBTdHlsZVJ1bGVSYW5nZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VNYXAuZmlu
ZChydWxlKTsKKyAgICAgICAgaWYgKGl0ICE9IHJ1bGVSYW5nZU1hcC5lbmQoKSkKKyAgICAgICAg
ICAgIHJhbmdlc1ZlY3Rvci0+YXBwZW5kKGl0LT5zZWNvbmQpOworICAgIH0KK30KKworYm9vbCBJ
bnNwZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVBdHRyaWJ1dGVSYW5nZXMoTm9kZSogbm9kZSwgUmVm
UHRyPENTU1N0eWxlU291cmNlRGF0YT4qIHJlc3VsdCkKK3sKKyAgICBpZiAoIW5vZGUgfHwgIW5v
ZGUtPmlzU3R5bGVkRWxlbWVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJp
bmcgc3R5bGVUZXh0ID0gc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG5vZGUpLT5nZXRBdHRy
aWJ1dGUoInN0eWxlIik7CisgICAgaWYgKHN0eWxlVGV4dC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
KCpyZXN1bHQpLT5zdHlsZUJvZHlSYW5nZS5maXJzdCA9IDA7CisgICAgICAgICgqcmVzdWx0KS0+
c3R5bGVCb2R5UmFuZ2Uuc2Vjb25kID0gMDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiB0ZW1wRGVjbGFyYXRpb24g
PSBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7CisgICAgQ1NTUGFyc2VyIHA7
CisgICAgcC5wYXJzZURlY2xhcmF0aW9uKHRlbXBEZWNsYXJhdGlvbi5nZXQoKSwgc3R5bGVUZXh0
LCByZXN1bHQtPmdldCgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworQ1NTU3R5bGVTaGVldCog
SW5zcGVjdG9yQ1NTU3RvcmU6OmdldFBhcmVudFN0eWxlU2hlZXQoQ1NTU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUpCit7CisgICAgaWYgKCFzdHlsZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBT
dHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gc3R5bGUtPnN0eWxlc2hlZXQoKTsKKyAgICBpZiAoc3R5
bGVTaGVldCAmJiBzdHlsZVNoZWV0LT5pc0NTU1N0eWxlU2hlZXQoKSkKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PENTU1N0eWxlU2hlZXQqPihzdHlsZVNoZWV0KTsKKworICAgIHJldHVybiAw
OwogfQogCiBDU1NTdHlsZVJ1bGUqIEluc3BlY3RvckNTU1N0b3JlOjphc0NTU1N0eWxlUnVsZShT
dHlsZUJhc2UqIHN0eWxlQmFzZSkKQEAgLTIxNyw2ICszNTksMTcgQEAgbG9uZyBJbnNwZWN0b3JD
U1NTdG9yZTo6YmluZFJ1bGUoQ1NTU3R5bGVSdWxlKiBydWxlKQogICAgIHJldHVybiBpZDsKIH0K
IAorLy8gc3RhdGljCitFbGVtZW50KiBJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVFbGVt
ZW50KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQoreworICAgIGlmICghc3R5bGUgfHwgIXN0
eWxlLT5pc011dGFibGVTdHlsZURlY2xhcmF0aW9uKCkpCisgICAgICAgIHJldHVybiAwOworICAg
IE5vZGUqIG5vZGUgPSBzdGF0aWNfY2FzdDxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbio+KHN0
eWxlKS0+bm9kZSgpOworICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNTdHlsZWRFbGVtZW50KCkg
fHwgc3RhdGljX2Nhc3Q8U3R5bGVkRWxlbWVudCo+KG5vZGUpLT5nZXRJbmxpbmVTdHlsZURlY2wo
KSAhPSBzdHlsZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihub2RlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCmluZGV4
IDgyZGU2MjIuLjhlZmQzNmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNTU1N0b3JlLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaApA
QCAtMjksNiArMjksOCBAQAogI2lmbmRlZiBJbnNwZWN0b3JDU1NTdG9yZV9oCiAjZGVmaW5lIElu
c3BlY3RvckNTU1N0b3JlX2gKIAorI2luY2x1ZGUgIkNTU1Byb3BlcnR5RGF0dW0uaCIKKwogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CkBAIC0zNiwxMyArMzgsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBj
bGFzcyBDU1NSdWxlTGlzdDsKIGNsYXNzIENTU1N0eWxlUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hl
ZXQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBJbnNwZWN0b3JDb250
cm9sbGVyOworY2xhc3MgTm9kZTsKIGNsYXNzIFN0eWxlQmFzZTsKIAogdHlwZWRlZiBzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+IFByb3BlcnR5VmFsdWVBbmRQcmlvcml0eTsKQEAgLTUyLDIzICs1
NiwyOCBAQCB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVEZWNsYXJhdGlvbiosIGxvbmc+IFN0eWxl
VG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlv
bj4gPiBJZFRvU3R5bGVNYXA7CiB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgbG9uZz4g
UnVsZVRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlUnVsZT4g
PiBJZFRvUnVsZU1hcDsKLXR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgVmVjdG9yPFNv
dXJjZVJhbmdlPiogPiBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOwordHlwZWRlZiBIYXNoTWFwPENT
U1N0eWxlU2hlZXQqLCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiogPiBTdHls
ZVNoZWV0VG9PZmZzZXRzTWFwOwogdHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBsb25n
PiBTdHlsZVNoZWV0VG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5
bGVTaGVldD4gPiBJZFRvU3R5bGVTaGVldE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxsb25nLCBTdHJp
bmc+IElkVG9TdHlsZVNoZWV0VGV4dE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBEaXNhYmxl
ZFN0eWxlRGVjbGFyYXRpb24+IElkVG9EaXNhYmxlZFN0eWxlTWFwOwogdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxEb2N1bWVudD4sIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+IERvY3VtZW50VG9TdHls
ZVNoZWV0TWFwOwogCiBjbGFzcyBJbnNwZWN0b3JDU1NTdG9yZSB7CiAKIHB1YmxpYzoKKyAgICBz
dGF0aWMgQ1NTU3R5bGVTaGVldCogZ2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0
aW9uKik7CisgICAgc3RhdGljIEVsZW1lbnQqIGlubGluZVN0eWxlRWxlbWVudChDU1NTdHlsZURl
Y2xhcmF0aW9uKik7CisKICAgICBJbnNwZWN0b3JDU1NTdG9yZShJbnNwZWN0b3JDb250cm9sbGVy
KiBpbnNwZWN0b3JDb250cm9sbGVyKTsKICAgICB+SW5zcGVjdG9yQ1NTU3RvcmUoKTsKICAgICB2
b2lkIHJlc2V0KCk7Ci0gICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gZ2V0UnVsZVJhbmdl
cyhDU1NTdHlsZVNoZWV0Kik7CisgICAgYm9vbCBnZXRTdHlsZVNvdXJjZURhdGEoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiosIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpOwogICAgIENT
U1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRm9ySWQobG9uZyBzdHlsZUlkKTsKICAgICBDU1NTdHls
ZVNoZWV0KiBzdHlsZVNoZWV0Rm9ySWQobG9uZyBzdHlsZVNoZWV0SWQpOwogICAgIENTU1N0eWxl
UnVsZSogcnVsZUZvcklkKGxvbmcgc3R5bGVSdWxlSWQpOwogICAgIERpc2FibGVkU3R5bGVEZWNs
YXJhdGlvbiogZGlzYWJsZWRTdHlsZUZvcklkKGxvbmcgc3R5bGVJZCwgYm9vbCBjcmVhdGVJZkFi
c2VudCk7CisgICAgU3RyaW5nIHN0eWxlU2hlZXRUZXh0KGxvbmcgc3R5bGVTaGVldElkKTsKICAg
ICBDU1NTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHlsZVNoZWV0KERvY3VtZW50KiBvd25lckRvY3Vt
ZW50LCBib29sIGNyZWF0ZUlmQWJzZW50KTsKICAgICB2b2lkIHJlbW92ZURvY3VtZW50KERvY3Vt
ZW50Kik7CiAKQEAgLTc4LDYgKzg3LDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGF0
aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVsZShTdHlsZUJhc2UqKTsKKyAgICBTdHJpbmcg
aW5saW5lU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCopOworICAgIFN0cmluZyByZXNvdXJj
ZVN0eWxlU2hlZXRUZXh0KENTU1N0eWxlU2hlZXQqKTsKKyAgICB2b2lkIGV4dHJhY3RSYW5nZXMo
Q1NTU3R5bGVTaGVldCosIGNvbnN0IFN0eWxlUnVsZVJhbmdlTWFwJiwgVmVjdG9yPFJlZlB0cjxD
U1NTdHlsZVNvdXJjZURhdGE+ID4qIHJhbmdlc1ZlY3Rvcik7CisgICAgYm9vbCBnZXRTdHlsZUF0
dHJpYnV0ZVJhbmdlcyhOb2RlKiBwYXJlbnROb2RlLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRh
PiogcmVzdWx0KTsKIAogICAgIFN0eWxlVG9JZE1hcCBtX3N0eWxlVG9JZDsKICAgICBJZFRvU3R5
bGVNYXAgbV9pZFRvU3R5bGU7CkBAIC04NSw4ICs5OCw5IEBAIHByaXZhdGU6CiAgICAgSWRUb1J1
bGVNYXAgbV9pZFRvUnVsZTsKICAgICBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwIG1fc3R5bGVTaGVl
dFRvT2Zmc2V0czsKICAgICBTdHlsZVNoZWV0VG9JZE1hcCBtX3N0eWxlU2hlZXRUb0lkOwotICAg
IElkVG9TdHlsZVNoZWV0TWFwIG1faWRUb1N0eWxlU2hlZXQ7CiAgICAgSWRUb0Rpc2FibGVkU3R5
bGVNYXAgbV9pZFRvRGlzYWJsZWRTdHlsZTsKKyAgICBJZFRvU3R5bGVTaGVldE1hcCBtX2lkVG9T
dHlsZVNoZWV0OworICAgIElkVG9TdHlsZVNoZWV0VGV4dE1hcCBtX2lkVG9TdHlsZVNoZWV0VGV4
dDsKICAgICBEb2N1bWVudFRvU3R5bGVTaGVldE1hcCBtX2RvY3VtZW50Tm9kZVRvSW5zcGVjdG9y
U3R5bGVTaGVldE1hcDsKIAogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29u
dHJvbGxlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAyM2My
MmFhLi4yNzc4NDc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkNTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
LmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1bS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
TmFtZXMuaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIK
QEAgLTExOTEsMjYgKzExOTIsMzQgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5bGVT
aGVldChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4KICAgICAgICAg
KnN0eWxlU2hlZXRPYmplY3QgPSBidWlsZE9iamVjdEZvclN0eWxlU2hlZXQoc3R5bGVTaGVldC0+
ZG9jdW1lbnQoKSwgc3R5bGVTaGVldCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6Omdl
dFJ1bGVSYW5nZXMobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJ1
bGVSYW5nZSkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YShsb25n
IHN0eWxlSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBkYXRhT2JqZWN0KQogewotICAgIENT
U1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBjc3NTdG9yZSgpLT5zdHlsZVNoZWV0Rm9ySWQoc3R5
bGVTaGVldElkKTsKLSAgICBpZiAoc3R5bGVTaGVldCAmJiBzdHlsZVNoZWV0LT5kb2N1bWVudCgp
KSB7Ci0gICAgICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJ1bGVSYW5nZXMgPSBjc3NT
dG9yZSgpLT5nZXRSdWxlUmFuZ2VzKHN0eWxlU2hlZXQpOwotICAgICAgICBpZiAoIXJ1bGVSYW5n
ZXMuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiByZXN1bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICBmb3Ig
KEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+OjppdGVyYXRvciBpdCA9IHJ1bGVSYW5nZXMuYmVn
aW4oKTsgaXQgIT0gcnVsZVJhbmdlcy5lbmQoKTsgKytpdCkgewotICAgICAgICAgICAgaWYgKGl0
LT5zZWNvbmQuc2Vjb25kKSB7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcnVsZVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgICAgICAg
ICByZXN1bHQtPnNldE9iamVjdChTdHJpbmc6Om51bWJlcihpdC0+Zmlyc3QpLnV0ZjgoKS5kYXRh
KCksIHJ1bGVSYW5nZSk7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
Ym9keVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKLSAgICAgICAgICAgICAgICBy
dWxlUmFuZ2UtPnNldE9iamVjdCgiYm9keVJhbmdlIiwgYm9keVJhbmdlKTsKLSAgICAgICAgICAg
ICAgICBib2R5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBpdC0+c2Vjb25kLmZpcnN0KTsKLSAg
ICAgICAgICAgICAgICBib2R5UmFuZ2UtPnNldE51bWJlcigiZW5kIiwgaXQtPnNlY29uZC5zZWNv
bmQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgICpydWxlUmFuZ2UgPSByZXN1
bHQucmVsZWFzZSgpOworICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gY3NzU3RvcmUo
KS0+c3R5bGVGb3JJZChzdHlsZUlkKTsKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm47
CisgICAgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IENTU1N0eWxlU291
cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgYm9vbCBzdWNjZXNzID0gY3NzU3RvcmUoKS0+Z2V0U3R5
bGVTb3VyY2VEYXRhKHN0eWxlLCAmc291cmNlRGF0YSk7CisgICAgaWYgKCFzdWNjZXNzKQorICAg
ICAgICByZXR1cm47CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcmVzdWx0ID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBib2R5UmFu
Z2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIHJlc3VsdC0+c2V0T2JqZWN0KCJi
b2R5UmFuZ2UiLCBib2R5UmFuZ2UpOworICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJzdGFydCIs
IHNvdXJjZURhdGEtPnN0eWxlQm9keVJhbmdlLmZpcnN0KTsKKyAgICBib2R5UmFuZ2UtPnNldE51
bWJlcigiZW5kIiwgc291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc2Vjb25kKTsKKyAgICBSZWZQ
dHI8SW5zcGVjdG9yQXJyYXk+IHByb3BlcnR5UmFuZ2VzID0gSW5zcGVjdG9yQXJyYXk6OmNyZWF0
ZSgpOworICAgIHJlc3VsdC0+c2V0QXJyYXkoInByb3BlcnR5RGF0YSIsIHByb3BlcnR5UmFuZ2Vz
KTsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdlPiA+
JiBwcm9wZXJ0eURhdGEgPSBzb3VyY2VEYXRhLT5wcm9wZXJ0eURhdGE7CisgICAgZm9yIChWZWN0
b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdlPiA+OjppdGVyYXRvciBp
dCA9IHByb3BlcnR5RGF0YS5iZWdpbigpOyBpdCAhPSBwcm9wZXJ0eURhdGEuZW5kKCk7ICsraXQp
IHsKKyAgICAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gcHJvcGVydHlSYW5nZSA9IEluc3Bl
Y3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldFN0cmluZygi
bmFtZSIsIGl0LT5maXJzdC5uYW1lKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0U3RyaW5n
KCJ2YWx1ZSIsIGl0LT5maXJzdC52YWx1ZSk7CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldEJv
b2xlYW4oImltcG9ydGFudCIsIGl0LT5maXJzdC5pbXBvcnRhbnQpOworICAgICAgICBwcm9wZXJ0
eVJhbmdlLT5zZXRCb29sZWFuKCJwYXJzZWQiLCBpdC0+Zmlyc3QucGFyc2VkKTsKKyAgICAgICAg
cHJvcGVydHlSYW5nZS0+c2V0TnVtYmVyKCJzdGFydCIsIGl0LT5zZWNvbmQuZmlyc3QpOworICAg
ICAgICBwcm9wZXJ0eVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIGl0LT5zZWNvbmQuc2Vjb25kKTsK
KyAgICAgICAgcHJvcGVydHlSYW5nZXMtPnB1c2hPYmplY3QocHJvcGVydHlSYW5nZSk7CiAgICAg
fQorICAgICpkYXRhT2JqZWN0ID0gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6Z2V0SW5saW5lU3R5bGUobG9uZyBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JW
YWx1ZT4qIHN0eWxlKQpAQCAtMTQ2OSw3ICsxNDc4LDcgQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IEluc3BlY3RvckRPTUFnZW50OjpidWlsZE9iamVjdEZvclN0eWxlKENTU1N0eWxlRGVj
bGEKICAgICBpZiAoYmluZCkgewogICAgICAgICBsb25nIHN0eWxlSWQgPSBjc3NTdG9yZSgpLT5i
aW5kU3R5bGUoc3R5bGUpOwogICAgICAgICByZXN1bHQtPnNldE51bWJlcigiaWQiLCBzdHlsZUlk
KTsKLSAgICAgICAgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCA9IGdldFBhcmVudFN0
eWxlU2hlZXQoc3R5bGUpOworICAgICAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0
ID0gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFBhcmVudFN0eWxlU2hlZXQoc3R5bGUpOwogICAgICAg
ICBpZiAocGFyZW50U3R5bGVTaGVldCkKICAgICAgICAgICAgIHJlc3VsdC0+c2V0TnVtYmVyKCJw
YXJlbnRTdHlsZVNoZWV0SWQiLCBjc3NTdG9yZSgpLT5iaW5kU3R5bGVTaGVldChwYXJlbnRTdHls
ZVNoZWV0KSk7CiAKQEAgLTE2ODEsMjAgKzE2OTAsNiBAQCBQYXNzUmVmUHRyPEluc3BlY3RvckFy
cmF5PiBJbnNwZWN0b3JET01BZ2VudDo6dG9BcnJheShjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0
YQogICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOwogfQogCi1DU1NTdHlsZVNoZWV0KiBJbnNw
ZWN0b3JET01BZ2VudDo6Z2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0aW9uKiBz
dHlsZSkKLXsKLSAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gc3R5bGUtPnBh
cmVudFJ1bGUoKSA/IHN0eWxlLT5wYXJlbnRSdWxlKCktPnBhcmVudFN0eWxlU2hlZXQoKSA6IDA7
Ci0gICAgaWYgKCFwYXJlbnRTdHlsZVNoZWV0KSB7Ci0gICAgICAgIFN0eWxlQmFzZSogcGFyZW50
ID0gc3R5bGUtPnBhcmVudCgpOwotICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC0+aXNDU1NT
dHlsZVNoZWV0KCkpIHsKLSAgICAgICAgICAgIHBhcmVudFN0eWxlU2hlZXQgPSBzdGF0aWNfY2Fz
dDxDU1NTdHlsZVNoZWV0Kj4ocGFyZW50KTsKLSAgICAgICAgICAgIGlmICghcGFyZW50U3R5bGVT
aGVldC0+bGVuZ3RoKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAg
ICB9Ci0gICAgcmV0dXJuIHBhcmVudFN0eWxlU2hlZXQ7Ci19Ci0KIHZvaWQgSW5zcGVjdG9yRE9N
QWdlbnQ6Om9uTWF0Y2hKb2JzVGltZXIoVGltZXI8SW5zcGVjdG9yRE9NQWdlbnQ+KikKIHsKICAg
ICBpZiAoIW1fcGVuZGluZ01hdGNoSm9icy5zaXplKCkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JET01BZ2VudC5oCmluZGV4IDk3NTFlOGUuLjdhOWY2YmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NQWdlbnQuaApAQCAtMTIzLDcgKzEyMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3Rv
clZhbHVlPiogc3R5bGVzKTsKICAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGxvbmcgbm9k
ZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZXMpOwogICAgICAgICB2b2lkIGdldFN0
eWxlU2hlZXQobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBzdHls
ZVNoZWV0T2JqZWN0KTsKLSAgICAgICAgdm9pZCBnZXRSdWxlUmFuZ2VzKGxvbmcgc3R5bGVTaGVl
dElkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBydWxlUmFuZ2UpOworICAgICAgICB2b2lkIGdl
dFN0eWxlU291cmNlRGF0YShsb25nIHN0eWxlSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBk
YXRhT2JqZWN0KTsKICAgICAgICAgdm9pZCBhcHBseVN0eWxlVGV4dChsb25nIHN0eWxlSWQsIGNv
bnN0IFN0cmluZyYgc3R5bGVUZXh0LCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgYm9vbCog
c3VjY2VzcywgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVPYmplY3QsIFJlZlB0cjxJbnNw
ZWN0b3JBcnJheT4qIGNoYW5nZWRQcm9wZXJ0aWVzKTsKICAgICAgICAgdm9pZCBzZXRTdHlsZVRl
eHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIGNzc1RleHQsIGJvb2wqIHN1Y2Nlc3MpOwog
ICAgICAgICB2b2lkIHNldFN0eWxlUHJvcGVydHkobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wqIHN1Y2Nlc3MpOwpAQCAtMTQ4LDcgKzE0
OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjb3B5Tm9kZShsb25nIG5v
ZGVJZCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBzdGF0aWMgQ1NTU3R5bGVTaGVldCogZ2V0
UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0aW9uKik7CiAgICAgICAgIHZvaWQgc3Rh
cnRMaXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKICAgICAgICAgdm9pZCBzdG9wTGlzdGVu
aW5nKERvY3VtZW50KiBkb2N1bWVudCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67667</attachid>
            <date>2010-09-15 06:00:06 -0700</date>
            <delta_ts>2010-09-15 06:08:59 -0700</delta_ts>
            <desc>[PATCH] Review comments addressed</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>60155</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNmRiNDc0Li4xN2I5MTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MTUgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTE1ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlAaW5mLnUtc3plZ2VkLmh1PgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwppbmRleCBl
ZjY5ZWU2Li40NTIxMGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCkBAIC0xLDcgKzEsMTQgQEAKIGJv
ZHkgewogICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICBmb286IGJhciAhCisKKyAgICBpbXBvcnRh
bnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovOwor
ICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OworICAgIGNvbG9yejogIiFpbXBvcnRhbnQiOwor
ICAgIGltcG9ydGFudDohaW1wb3J0YW50OworICAgIGNvbG9yOiAiYmFkY29sb3IiICEgaW1wb3J0
YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovOwogfQogCi0vKiBjb21t
ZW50IGJlZm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9y
ICovey8qIGNvbW1lbnQgKi9jb2xvcjogIzAwMDt9LyogY29tbWVudCAqLworLyogY29tbWVudCBi
ZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3sv
KiBjb21tZW50ICovY29sb3I6ICNGMDBCQUE7em9vOm1vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1
bnJlY29nbml6ZWQgcHJvcGVydHkgKi99LyogY29tbWVudCAqLwogCi1ib2R5Lm1haW4ye2JhY2tn
cm91bmQ6IGdyZWVuO30KK2JvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW4gLyogdmFsdWUgIWlt
cG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBv
cnRhbnQgKi99CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291
cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0CmluZGV4IGRkYTY3YWQuLmU0ZDMzZDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDcgKzEsMjMgQEAKLVRlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBv
ZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHJ1bGUgYm9kaWVzLgorVGVzdHMg
dGhhdCBwcm9wZXIgZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9y
dGVkIGZvciBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9wZXJ0aWVzLgogCi1ib2R5OiBb
NS0yOF0KLWJvZHkubWFpbjE6IFs5OC0xMjRdCi1ib2R5Lm1haW4yOiBbMTUwLTE2OV0KLWJvZHkg
eyYgICAgZm9udC1zaXplOiAxMnB4OyZ9JiYvKiBjb21tZW50IGJlZm9yZSBzZWxlY3RvciAqL2Jv
ZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9yICovey8qIGNvbW1lbnQgKi9jb2xvcjog
IzAwMDt9LyogY29tbWVudCAqLyYmYm9keS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9JgorYm9k
eTogWzYtMjY2XQorWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXQorWydmb28nOidiYXIgIQor
CisgICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkg
V2ViQ29yZSAqLycgIWltcG9ydGFudCBub24tcGFyc2VkXSBAWzI2LTEwNF0KK1snaGVpZ2h0Jzon
MTAwJSAhaW1wb3J0YW50JyAhaW1wb3J0YW50XSBAWzEwOS0xMzNdCitbJ2NvbG9yeic6JyIhaW1w
b3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxMzgtMTU5XQorWydpbXBvcnRhbnQnOicnIG5vbi1wYXJz
ZWRdIEBbMTY0LTE3NF0KK1snY29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2Qg
cHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyAhaW1wb3J0YW50XSBAWzE5MC0yNTldCiti
b2R5Lm1haW4xOiBbMzM3LTQxOF0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0KK1snem9v
JzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9u
LXBhcnNlZF0gQFsyOC04MV0KK2JvZHkubWFpbjI6IFs0NDUtNTQwXQorWydiYWNrZ3JvdW5kJzon
Z3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2Vt
aWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8nICFpbXBvcnRhbnRdIEBbMC05NV0KK2JvZHkubWFp
bnBhZ2U6IFsxNy0xNDldCitbJ3RleHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzUtMjddCitbJ2Jh
ZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFsxMDctMTMxXQorZWxlbWVudC5z
dHlsZTogWzAtMzFdCitbJ2ZvbnQtd2VpZ2h0Jzonbm9ybWFsJ10gQFswLTIwXQorWyd3aWR0aCc6
JzgwJSddIEBbMjEtMzFdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMtc291cmNlLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291
cmNlLW9mZnNldHMuaHRtbAppbmRleCAwNTMzNjExLi40MmViNjAxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCkBAIC0zNSw1NSArMzUs
NDMgQEAgZnVuY3Rpb24gZnJvbnRlbmRfcnVuVGVzdCh0ZXN0Q29udHJvbGxlcikKICAgICAgICAg
ZnVuY3Rpb24gc3R5bGVzQ2FsbGJhY2sodGVzdENvbnRyb2xsZXIsIHN0eWxlcykKICAgICAgICAg
ewogICAgICAgICAgICAgdmFyIG1hdGNoZWRDU1NSdWxlcyA9IHN0eWxlcy5tYXRjaGVkQ1NTUnVs
ZXM7Ci0gICAgICAgICAgICB2YXIgcGFyZW50U3R5bGVTaGVldElkID0gbWF0Y2hlZENTU1J1bGVz
WzBdLnN0eWxlLnBhcmVudFN0eWxlU2hlZXRJZDsKLSAgICAgICAgICAgIGlmICghcGFyZW50U3R5
bGVTaGVldElkKSB7Ci0gICAgICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNo
KCJCQUQgU1RZTEVTSEVFVCBJRDogIiArIHBhcmVudFN0eWxlU2hlZXRJZCk7Ci0gICAgICAgICAg
ICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRzKTsK
LSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IG1hdGNoZWRDU1NSdWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBydWxl
ID0gbWF0Y2hlZENTU1J1bGVzW2ldOworICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Z2V0U3R5bGVTb3VyY2VEYXRhKHJ1bGUuc3R5bGUuaWQsIGZyb250ZW5kX3N0eWxlRGF0YVJlY2Vp
dmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIsIHJ1bGUsIGZhbHNlKSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFJ1bGVSYW5nZXMocGFyZW50U3R5
bGVTaGVldElkLCBmcm9udGVuZF9ydWxlUmFuZ2VzUmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29u
dHJvbGxlciwgcGFyZW50U3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsZXMpKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTb3VyY2VEYXRhKHN0eWxlcy5pbmxpbmVTdHls
ZS5pZCwgZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxl
ciwgc3R5bGVzLmlubGluZVN0eWxlLCB0cnVlKSk7CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5nZXRTdHlsZXMoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHku
aWQsIHRydWUsIHN0eWxlc0NhbGxiYWNrLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKICAg
ICB9KTsKIH0KIAotZnVuY3Rpb24gZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkKHRlc3RDb250
cm9sbGVyLCBzdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcywgcnVsZVJhbmdlcykKK2Z1bmN0
aW9uIGZyb250ZW5kX3N0eWxlRGF0YVJlY2VpdmVkKHRlc3RDb250cm9sbGVyLCBydWxlT3JTdHls
ZSwgc2hvdWxkQmFpbCwgZGF0YSkKIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hdGNoZWRD
U1NSdWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgcnVsZSA9IG1hdGNoZWRDU1NSdWxl
c1tpXTsKLSAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHJ1bGUuc2VsZWN0b3JU
ZXh0ICsgIjogWyIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5nZS5zdGFydCAr
ICItIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLmVuZCArICJdIik7Cisg
ICAgdmFyIGlzUnVsZSA9ICEhKHJ1bGVPclN0eWxlLnN0eWxlKTsKKyAgICB0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzLnB1c2goKGlzUnVsZSA/IHJ1bGVPclN0eWxlLnNlbGVjdG9yVGV4dCA6ICJlbGVt
ZW50LnN0eWxlIikgKyAiOiBbIiArIGRhdGEuYm9keVJhbmdlLnN0YXJ0ICsgIi0iICsgZGF0YS5i
b2R5UmFuZ2UuZW5kICsgIl0iKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEucHJvcGVy
dHlEYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBwcm9wZXJ0eURhdHVtID0gZGF0YS5w
cm9wZXJ0eURhdGFbaV07CisgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiWyci
ICsgcHJvcGVydHlEYXR1bS5uYW1lICsgIic6JyIgKyBwcm9wZXJ0eURhdHVtLnZhbHVlICsgIici
ICsgKHByb3BlcnR5RGF0dW0uaW1wb3J0YW50ID8gIiAhaW1wb3J0YW50IiA6ICIiKSArIChwcm9w
ZXJ0eURhdHVtLnBhcnNlZCA/ICIiIDogIiBub24tcGFyc2VkIikgKyJdIEBbIiArIHByb3BlcnR5
RGF0dW0uc3RhcnQgKyAiLSIgKyBwcm9wZXJ0eURhdHVtLmVuZCArICJdIik7CiAgICAgfQotICAg
IEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIGZyb250ZW5kX2hh
bmRsZVN0eWxlU2hlZXQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwotfQotCi1mdW5jdGlv
biBmcm9udGVuZF9oYW5kbGVTdHlsZVNoZWV0KHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0KQot
ewotICAgIHZhciB1cmwgPSBzdHlsZVNoZWV0LmhyZWY7Ci0gICAgaWYgKHVybCAhPT0gIiIpIHsK
LSAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFwW3VybF07
Ci0gICAgICAgIGlmICghcmVzb3VyY2UpIHsKLSAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJl
c3VsdHMucHVzaCgiTk8gUkVTT1VSQ0UgRk9SIFVSTDogIiArIHVybCk7Ci0gICAgICAgICAgICB0
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5nZXRSZXNvdXJj
ZUNvbnRlbnQocmVzb3VyY2UuaWRlbnRpZmllciwgZnJvbnRlbmRfc3R5bGVTaGVldFRleHRSZWNl
aXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
dGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJFTVBUWSBTVFlMRVNIRUVUIEhSRUYiKTsKKyAg
ICBpZiAoc2hvdWxkQmFpbCkKICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0
Q29udHJvbGxlci5yZXN1bHRzKTsKLSAgICB9CiB9CiAKLWZ1bmN0aW9uIGZyb250ZW5kX3N0eWxl
U2hlZXRUZXh0UmVjZWl2ZWQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXRUZXh0KQotewotICAg
IHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaChzdHlsZVNoZWV0VGV4dC5yZXBsYWNlKC9cbi9n
LCAiJiIpKTsKLSAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJl
c3VsdHMpOwotfQogPC9zY3JpcHQ+CisKKzxzdHlsZT4KKworYm9keS5tYWlucGFnZSB7CisgICAg
dGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKiBhdCBsZWFzdCBvbmUgdmFsaWQgcHJvcGVydHkgaXMg
bmVjZXNzYXJ5IGZvciBXZWJDb3JlIHRvIG1hdGNoIGEgcnVsZSAqLworICAgIGJhZHByb3BlcnR5
OiAxYmFkdmFsdWUxOworfQorCis8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBjbGFzcz0ibWFp
bjEgbWFpbjIiIG9ubG9hZD0ib25sb2FkKCkiPgorPGJvZHkgY2xhc3M9Im1haW4xIG1haW4yIG1h
aW5wYWdlIiBvbmxvYWQ9Im9ubG9hZCgpIiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsgd2lk
dGg6IDgwJSI+CiA8cD4KLVRlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRp
b25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHJ1bGUgYm9kaWVzLgorVGVzdHMgdGhhdCBwcm9wZXIg
ZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9ydGVkIGZvciBDU1Mg
c3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9wZXJ0aWVzLgogPC9wPgogCiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiYzU2
NGQuLjIwZTRhOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTAtMDktMTUgIEFsZXhhbmRlciBQYXZsb3Yg
IDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNlZCBwcm9wZXJ0aWVzIGZvciBzdHls
ZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMKKworICAgICAgICBUaGlzIGNoYW5n
ZToKKyAgICAgICAgLSBFbmFibGVzIEluc3BlY3RvckNTU1N0b3JlIHRvIGV4dHJhY3QgQ1NTIHN0
eWxlc2hlZXQgdGV4dCBmb3IgYWxsIHNvdXJjZS1iYXNlZCBzdHlsZXNoZWV0cywKKyAgICAgICAg
ICBldmVuIHdpdGggdGhlIHJlc291cmNlIHRyYWNraW5nIHR1cm5lZCBvZmYuCisgICAgICAgIC0g
QWRkcyB0byBDU1NQYXJzZXIgYSBjYXBhYmlsaXR5IG9mIHNvdXJjZS1yZWxhdGVkIHN0eWxlIGRl
Y2xhcmF0aW9uIGRhdGEgZXh0cmFjdGlvbjoKKyAgICAgICAgICAqIFN0YXJ0L2VuZCBzb3VyY2Ug
b2Zmc2V0cyBmb3IgYSBkZWNsYXJhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBzdHlsZXNo
ZWV0IHN0YXJ0IG9yIHRoZSAic3R5bGUiIGF0dHJpYnV0ZSB2YWx1ZS4KKyAgICAgICAgICAqIFN0
YXJ0L2VuZCBzb3VyY2Ugb2Zmc2V0cyBmb3IgQ1NTIHByb3BlcnRpZXMsIHJlbGF0aXZlIHRvIHRo
ZSBkZWNsYXJhdGlvbiBzdGFydC4KKyAgICAgICAgICAqIENTUyBwcm9wZXJ0eSBkYXRhOiBuYW1l
LCB2YWx1ZSwgcHJpb3JpdHksIFdlYkNvcmUgcGFyc2FiaWxpdHkgKGkuZS4gaWYgdGhlIHByb3Bl
cnR5IGlzIHVuZGVyc3Rvb2QgYnkgV2ViQ29yZSkuCisgICAgICAgIC0gUHJvdmlkZXMgdGhlIGV4
dHJhY3RlZCBkYXRhIHRvIHRoZSBXZWJJbnNwZWN0b3IgZnJvbnRlbmQgdmlhIEluc3BlY3RvckRP
TUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6bm9kZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjptYXJrUHJvcGVydHlTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6Om1hcmtQcm9wZXJ0eUVuZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyZXNldFByb3BlcnR5TWFya3MpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eURhdHVtOjp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VSYW5nZTo6U291cmNl
UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlUmFuZ2U6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjppbml0KToKKyAgICAgICAgKFdURjo6Ojpl
bXB0eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlEYXR1bS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06On5DU1NQcm9wZXJ0eURhdHVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eURhdHVtSGFzaDo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVt
SGFzaDo6ZXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NTdG9yZTo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
U3RvcmU6OnN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0
b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVFbGVtZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpyZXNvdXJjZUNvbnRlbnRGb3JVUkwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5
bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorCiAyMDEwLTA5
LTE1ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDM5NGFiNi4uMmNlMTFhYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEw
MDgsNiArMTAwOCw4IEBACiAgICAgICAgICAgICAnY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5LmNwcCcsCiAgICAgICAgICAgICAn
Y3NzL0NTU1Byb3BlcnR5LmgnLAorICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNw
cCcsCisgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5RGF0dW0uaCcsCiAgICAgICAgICAgICAn
Y3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVy
dHlMb25naGFuZC5oJywKICAgICAgICAgICAgICdjc3MvQ1NTUXVpcmtQcmltaXRpdmVWYWx1ZS5o
JywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJv
CmluZGV4IGMzODRmMzMuLjAzMjk4NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNjI4LDYgKzYyOCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIFwKICAgICBjc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwIFwKICAgICBjc3MvQ1NTUHJvcGVydHkuY3BwIFwKKyAgICBjc3MvQ1NTUHJvcGVydHlE
YXR1bS5jcHAgXAogICAgIGNzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCBcCiAgICAgY3NzL0NT
U1JlZmxlY3RWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NSdWxlLmNwcCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1YjdkYTZlLi5jZWQ5ZTVjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI5MzkzLDYgKzI5MzkzLDE0IEBACiAJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9w
ZXJ0eURhdHVtLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9wZXJ0eURhdHVtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlMb25naGFu
ZC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1YjBhZTg1Li43MTU0OGM2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ1Myw2ICsxNDUzLDggQEAKIAkJODFCRTIw
RDMxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJ
REJDdXJzb3IuaCAqLzsgfTsKIAkJODJCNjU4OTgxMTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3Rv
ckNTU1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MkI2NTg5QTExODlF
NDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIElu
c3BlY3RvckNTU1N0b3JlLmNwcCAqLzsgfTsKKwkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8q
IENTU1Byb3BlcnR5RGF0dW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODJFM0Q4REMxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0u
Y3BwICovOyB9OworCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4
REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFG
OEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbS5oICovOyB9OwogCQk4NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxk
ZXIuY3BwICovOyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
LmggKi87IH07CkBAIC03NDA5LDYgKzc0MTEsOCBAQAogCQk4MUJFMjBBODExRjRCNjZGMDA5MTVE
RkEgLyogSlNJREJDdXJzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
REJDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJCNjU4OTcxMTg5RTM5
MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc3BlY3RvckNTU1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAv
KiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENTU1Byb3BlcnR5RGF0dW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQcm9wZXJ0eURhdHVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVh
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAxNDFG
OEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0
ZVN0cmVhbUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0
aEJ5dGVTdHJlYW1CdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzA2
MCw2ICsxNzA2NCw4IEBACiAJCQkJRTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaCAqLywKIAkJCQlBODBFNkNDRDBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTUHJvcGVydHkuY3BwICovLAogCQkJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQ
cm9wZXJ0eS5oICovLAorCQkJCTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0
eURhdHVtLmNwcCAqLywKKwkJCQk4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVy
dHlEYXR1bS5oICovLAogCQkJCTBGNkVDRDQ0MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0
eUxvbmdoYW5kLmNwcCAqLywKIAkJCQkwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJv
cGVydHlMb25naGFuZC5oICovLAogCQkJCUJDRUE0Nzg5MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLmluICovLApAQCAtMjA1NjAsNiArMjA1NjYsNyBAQAogCQkJCTg5M0M0N0E4
MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODkzQzQ3QkMxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NT
UHJvcGVydHlEYXR1bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5
MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Uy
QTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwpAQCAtMjMwMzYsNiArMjMwNDMsNyBAQAogCQkJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0
N0I3MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4OTNDNDdCQjEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3Bl
cnR5RGF0dW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMkEzMDYxMjNFOURDMDAwOUZFMTJB
IC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3REYxMjNF
RjRBOTAwMkIzRDg2IC8qIEpTRGlyZWN0b3J5RW50cnlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODkzQzQ3Q0MxMjNFRUJBMjAwMkIzRDg2IC8qIEpTRW50cnlDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkKaW5kZXggODZhMmY3Yy4uYzU1Zjk5OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55CisrKyBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAt
MzE0LDcgKzMxNCw3IEBAIHdlYmtpdF9rZXlmcmFtZV9ydWxlOgogOwogCiB3ZWJraXRfZGVjbHM6
Ci0gICAgV0VCS0lUX0RFQ0xTX1NZTSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAn
fScgeworICAgIFdFQktJVF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJh
dGlvbiBkZWNsYXJhdGlvbl9saXN0ICd9JyB7CiAgICAgICAgIC8qIGNhbiBiZSBlbXB0eSAqLwog
ICAgIH0KIDsKQEAgLTkwMyw4ICs5MDMsMTUgQEAgdW5hcnlfb3BlcmF0b3I6CiAgIHwgJysnIHsg
JCQgPSAxOyB9CiAgIDsKIAorbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uOgorICAgIG1h
eWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2Vy
Kj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICB9CisgIDsK
KwogcnVsZXNldDoKLSAgICBzZWxlY3Rvcl9saXN0ICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlv
bl9saXN0IGNsb3NpbmdfYnJhY2UgeworICAgIHNlbGVjdG9yX2xpc3QgJ3snIG1heWJlX3NwYWNl
X2JlZm9yZV9kZWNsYXJhdGlvbiBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgewogICAg
ICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwogICAg
ICAgICAkJCA9IHAtPmNyZWF0ZVN0eWxlUnVsZSgkMSk7CiAgICAgfQpAQCAtMTM1NSw2ICsxMzYy
LDggQEAgZGVjbGFyYXRpb25fbGlzdDoKIAogZGVjbF9saXN0OgogICAgIGRlY2xhcmF0aW9uICc7
JyBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1Bh
cnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAg
ICQkID0gJDE7CiAgICAgfQogICAgIHwgZGVjbGFyYXRpb24gaW52YWxpZF9ibG9ja19saXN0IG1h
eWJlX3NwYWNlIHsKQEAgLTEzNjQsMTIgKzEzNzMsMTYgQEAgZGVjbF9saXN0OgogICAgICAgICAk
JCA9IGZhbHNlOwogICAgIH0KICAgICB8IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAg
IENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAg
IHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAg
IHwgZXJyb3IgaW52YWxpZF9ibG9ja19saXN0IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CiAgICAg
ICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwgZGVjbF9saXN0IGRlY2xhcmF0aW9uICc7JyBt
YXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNl
cio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQk
ID0gJDE7CiAgICAgICAgIGlmICgkMikKICAgICAgICAgICAgICQkID0gJDI7CkBAIC0xMzg2LDE1
ICsxMzk5LDIxIEBAIGRlY2xhcmF0aW9uOgogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBl
eHByIHByaW8gewogICAgICAgICAkJCA9IGZhbHNlOwogICAgICAgICBDU1NQYXJzZXIqIHAgPSBz
dGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBib29sIGlzUHJvcGVydHlQ
YXJzZWQgPSBmYWxzZTsKICAgICAgICAgaWYgKCQxICYmICQ0KSB7CiAgICAgICAgICAgICBwLT5t
X3ZhbHVlTGlzdCA9IHAtPnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7CiAgICAgICAgICAgICBp
bnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHAtPm1fbnVtUGFyc2VkUHJvcGVydGllczsKICAgICAg
ICAgICAgICQkID0gcC0+cGFyc2VWYWx1ZSgkMSwgJDUpOwotICAgICAgICAgICAgaWYgKCEkJCkK
KyAgICAgICAgICAgIGlmICghJCQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
aW50PihwLT5tX251bVBhcnNlZFByb3BlcnRpZXMpID09IG9sZFBhcnNlZFByb3BlcnRpZXMpCisg
ICAgICAgICAgICAgICAgICAgIGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAg
ICAgIHAtPnJvbGxiYWNrTGFzdFByb3BlcnRpZXMocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzIC0g
b2xkUGFyc2VkUHJvcGVydGllcyk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBpc1Byb3BlcnR5UGFyc2VkID0gdHJ1ZTsKICAgICAgICAgICAgIGRlbGV0ZSBwLT5tX3ZhbHVl
TGlzdDsKICAgICAgICAgICAgIHAtPm1fdmFsdWVMaXN0ID0gMDsKICAgICAgICAgfQorICAgICAg
ICBwLT5tYXJrUHJvcGVydHlFbmQoJDUsIGlzUHJvcGVydHlQYXJzZWQpOwogICAgIH0KICAgICB8
CiAgICAgdmFyaWFibGVfcmVmZXJlbmNlIG1heWJlX3NwYWNlIHsKQEAgLTE0MTcsMTEgKzE0MzYs
MTUgQEAgZGVjbGFyYXRpb246CiAgICAgICAgIC8qIFRoZSBkZWZhdWx0IG1vdmFibGUgdHlwZSB0
ZW1wbGF0ZSBoYXMgbGV0dGVyLXNwYWNpbmc6IC5ub25lOyAgSGFuZGxlIHRoaXMgYnkgbG9va2lu
ZyBmb3IKICAgICAgICAgZXJyb3IgdG9rZW5zIGF0IHRoZSBzdGFydCBvZiBhbiBleHByLCByZWNv
dmVyIHRoZSBleHByIGFuZCB0aGVuIHRyZWF0IGFzIGFuIGVycm9yLCBjbGVhbmluZwogICAgICAg
ICB1cCBhbmQgZGVsZXRpbmcgdGhlIHNoaWZ0ZWQgZXhwci4gICovCisgICAgICAgIENTU1BhcnNl
ciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQ
cm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAg
ICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIGV4cHIgcHJpbyBlcnJvciB7CiAgICAg
ICAgIC8qIFdoZW4gd2UgZW5jb3VudGVyIHNvbWV0aGluZyBsaWtlIHAge2NvbG9yOiByZWQgIWlt
cG9ydGFudCBmYWlsO30gd2Ugc2hvdWxkIGRyb3AgdGhlIGRlY2xhcmF0aW9uICovCisgICAgICAg
IENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAg
IHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwog
ICAgIH0KICAgICB8CkBAIC0xNDMyLDExICsxNDU1LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgIHwK
ICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgewogICAgICAgICAvKiBkaXYgeyBmb250LWZh
bWlseTogfSBKdXN0IHJlZHVjZSBhd2F5IHRoaXMgcHJvcGVydHkgd2l0aCBubyB2YWx1ZS4gKi8K
KyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsK
KyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0g
ZmFsc2U7CiAgICAgfQogICAgIHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXJyb3Ig
ewogICAgICAgICAvKiBpZiB3ZSBjb21lIGFjcm9zcyBydWxlcyB3aXRoIGludmFsaWQgdmFsdWVz
IGxpa2UgdGhpcyBjYXNlOiBwIHsgd2VpZ2h0OiAqOyB9LCBqdXN0IGRpc2NhcmQgdGhlIHJ1bGUg
Ki8KKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2Vy
KTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQk
ID0gZmFsc2U7CiAgICAgfQogICAgIHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uLmggYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbi5oCmluZGV4IGY3NzU5ZjQuLmQ2MjliY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uaApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dE5vZGUoTm9kZSogbm9kZSkgeyBtX25vZGUgPSBub2RlOyB9CiAKKyAgICBOb2RlKiBub2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9ub2RlOyB9CisKICAgICB2aXJ0dWFsIGJvb2wgaXNNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgU3Ry
aW5nIGNzc1RleHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDdjMzU3MzkuLjc2MzJlOWMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtMTQ3LDcgKzE0NywxMCBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29s
IHN0cmljdFBhcnNpbmcpCiAgICAgLCBtX2RlZmF1bHROYW1lc3BhY2Uoc3RhckF0b20pCiAgICAg
LCBtX3J1bGVCb2R5U3RhcnRPZmZzZXQoMCkKICAgICAsIG1fcnVsZUJvZHlFbmRPZmZzZXQoMCkK
LSAgICAsIG1fcnVsZVJhbmdlcygwKQorICAgICwgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0KFVJTlRf
TUFYKQorICAgICwgbV9wcm9wZXJ0eUVuZE9mZnNldChVSU5UX01BWCkKKyAgICAsIG1fcnVsZVJh
bmdlTWFwKDApCisgICAgLCBtX2N1cnJlbnRTdHlsZURhdGEoMCkKICAgICAsIG1fZGF0YSgwKQog
ICAgICwgeXlfc3RhcnQoMSkKICAgICAsIG1fbGluZU51bWJlcigwKQpAQCAtMTU5LDYgKzE2Miw3
IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICNpZiBZWURFQlVH
ID4gMAogICAgIGNzc3l5ZGVidWcgPSAxOwogI2VuZGlmCisgICAgQ1NTUHJvcGVydHlEYXR1bTo6
aW5pdCgpOwogfQogCiBDU1NQYXJzZXI6On5DU1NQYXJzZXIoKQpAQCAtMjIxLDE2ICsyMjUsMTkg
QEAgdm9pZCBDU1NQYXJzZXI6OnNldHVwUGFyc2VyKGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIGNvbnN0IGNoYXIKICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsKIH0K
IAotdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCogc2hlZXQsIGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1
bGVSYW5nZU1hcCkKK3ZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNo
ZWV0LCBjb25zdCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxl
UmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCkKIHsKICAgICBtX3N0eWxlU2hlZXQgPSBzaGVldDsKICAg
ICBtX2RlZmF1bHROYW1lc3BhY2UgPSBzdGFyQXRvbTsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgbmFt
ZXNwYWNlLgotICAgIG1fcnVsZVJhbmdlcyA9IHJ1bGVSYW5nZU1hcDsKKyAgICBtX3J1bGVSYW5n
ZU1hcCA9IHJ1bGVSYW5nZU1hcDsKKyAgICBpZiAocnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1
cnJlbnRTdHlsZURhdGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOwogCiAgICAgbV9s
aW5lTnVtYmVyID0gc3RhcnRMaW5lTnVtYmVyOwogICAgIHNldHVwUGFyc2VyKCIiLCBzdHJpbmcs
ICIiKTsKICAgICBjc3N5eXBhcnNlKHRoaXMpOwotICAgIG1fcnVsZVJhbmdlcyA9IDA7CisgICAg
bV9ydWxlUmFuZ2VNYXAgPSAwOworICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgbV9y
dWxlID0gMDsKIH0KIApAQCAtMzI3LDEwICszMzQsMTQgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNl
U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIERvY3VtZW50KiBkb2MsIENTU1NlbGVjdG9y
TGkKICAgICBtX3NlbGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3IgPSAwOwogfQogCi1ib29sIENT
U1BhcnNlcjo6cGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVj
bGFyYXRpb24sIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVj
bGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBT
dHJpbmcmIHN0cmluZywgQ1NTU3R5bGVTb3VyY2VEYXRhKiBzdHlsZVNvdXJjZURhdGEpCiB7Cisg
ICAgLy8gTGVuZ3RoIG9mIHRoZSAiQC13ZWJraXQtZGVjbHN7IiBwcmVmaXguCisgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHByZWZpeExlbmd0aCA9IDE1OworCiAgICAgQVNTRVJUKCFkZWNsYXJh
dGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCktPmlzQ1NTU3R5
bGVTaGVldCgpKTsKICAgICBtX3N0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0
Kj4oZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKSk7CisgICAgbV9jdXJyZW50U3R5bGVEYXRhID0g
c3R5bGVTb3VyY2VEYXRhOwogCiAgICAgc2V0dXBQYXJzZXIoIkAtd2Via2l0LWRlY2xzeyIsIHN0
cmluZywgIn0gIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKQEAgLTM0NSw2ICszNTYsMTcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24qIGRlY2xhcmF0aW9uLCBjb25zdAogICAgICAgICBjbGVhclByb3BlcnRpZXMoKTsKICAgICB9
CiAKKyAgICBpZiAobV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIG1fY3VycmVudFN0eWxl
RGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc3RhcnQgPSAwOworICAgICAgICBtX2N1cnJlbnRTdHlsZURh
dGEtPnN0eWxlQm9keVJhbmdlLmVuZCA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChW
ZWN0b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdlPiA+OjppdGVyYXRv
ciBpdCA9IG1fY3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmJlZ2luKCk7IGl0ICE9IG1f
Y3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmVuZCgpOyArK2l0KSB7CisgICAgICAgICAg
ICAoKml0KS5zZWNvbmQuc3RhcnQgLT0gcHJlZml4TGVuZ3RoOworICAgICAgICAgICAgKCppdCku
c2Vjb25kLmVuZCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
IW1fcnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAwOwogICAgIHJl
dHVybiBvazsKIH0KIApAQCAtNTQxNiw4ICs1NDM4LDEyIEBAIENTU1J1bGUqIENTU1BhcnNlcjo6
Y3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3RvcnMpCiAgICAgICAg
IHJ1bGUtPnNldERlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUo
cnVsZS5nZXQoKSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCBtX251bVBhcnNlZFByb3BlcnRpZXMpKTsK
ICAgICAgICAgcmVzdWx0ID0gcnVsZS5nZXQoKTsKICAgICAgICAgbV9wYXJzZWRTdHlsZU9iamVj
dHMuYXBwZW5kKHJ1bGUucmVsZWFzZSgpKTsKLSAgICAgICAgaWYgKG1fcnVsZVJhbmdlcykKLSAg
ICAgICAgICAgIG1fcnVsZVJhbmdlcy0+c2V0KHJlc3VsdCwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1
bnNpZ25lZD4obV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5kT2Zmc2V0KSk7Cisg
ICAgICAgIGlmIChtX3J1bGVSYW5nZU1hcCkgeworICAgICAgICAgICAgQVNTRVJUKG1fY3VycmVu
dFN0eWxlRGF0YSk7CisgICAgICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnN0eWxlQm9keVJh
bmdlID0gU291cmNlUmFuZ2UobV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5kT2Zm
c2V0KTsKKyAgICAgICAgICAgIG1fcnVsZVJhbmdlTWFwLT5zZXQocmVzdWx0LCBtX2N1cnJlbnRT
dHlsZURhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IENT
U1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIH0KICAgICB9CiAgICAgcmVzZXRS
dWxlQm9keU1hcmtzKCk7CiAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CkBAIC01NjcwLDcgKzU2OTYs
OSBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlTGFzdFNlbGVjdG9yTGluZUFuZFBvc2l0aW9uKCkK
IHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgdW5zaWduZWQgb2Zm
c2V0ID0geXl0ZXh0IC0gbV9kYXRhOwotICAgIGlmICghbV9ydWxlQm9keVN0YXJ0T2Zmc2V0IHx8
IG9mZnNldCA8IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKKyAgICBpZiAoKnl5dGV4dCA9PSAneycp
CisgICAgICAgICsrb2Zmc2V0OyAvLyBTa2lwIHRoZSBydWxlIGJvZHkgb3BlbmluZyBicmFjZS4K
KyAgICBpZiAob2Zmc2V0ID4gbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KQogICAgICAgICBtX3J1bGVC
b2R5U3RhcnRPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTU2ODEsNiArNTcwOSwzOSBAQCB2b2lk
IENTU1BhcnNlcjo6bWFya1J1bGVCb2R5RW5kKCkKICAgICAgICAgbV9ydWxlQm9keUVuZE9mZnNl
dCA9IG9mZnNldDsKIH0KIAordm9pZCBDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KCkKK3sK
KyAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBtX2RhdGE7CisgICAgbV9wcm9wZXJ0eVN0
YXJ0T2Zmc2V0ID0gb2Zmc2V0OworfQorCit2b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5RW5k
KGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5UGFyc2VkKQoreworICAgIHVu
c2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBpZiAoKnl5dGV4dCA9PSAnOycp
IC8vIEluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3BlcnR5IHRleHQuCisgICAgICAgICsr
b2Zmc2V0OworICAgIG1fcHJvcGVydHlFbmRPZmZzZXQgPSBvZmZzZXQ7CisgICAgaWYgKG1fcHJv
cGVydHlTdGFydE9mZnNldCAhPSBVSU5UX01BWCAmJiBtX2N1cnJlbnRTdHlsZURhdGEpIHsKKyAg
ICAgICAgLy8gVGhpcyBzdHVmZiBpcyBvbmx5IGV4ZWN1dGVkIHdoZW4gdGhlIHN0eWxlIGRhdGEg
cmV0cmlldmFsIGlzIHJlcXVlc3RlZCBieSBjbGllbnQuCisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHN0YXJ0ID0gbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBl
bmQgPSBtX3Byb3BlcnR5RW5kT2Zmc2V0OworICAgICAgICBBU1NFUlQoc3RhcnQgPCBlbmQpOwor
ICAgICAgICBTdHJpbmcgcHJvcGVydHlTdHJpbmcgPSBTdHJpbmcobV9kYXRhICsgc3RhcnQsIGVu
ZCAtIHN0YXJ0KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgaWYgKHByb3BlcnR5U3RyaW5n
LmVuZHNXaXRoKCI7IiwgdHJ1ZSkpCisgICAgICAgICAgICBwcm9wZXJ0eVN0cmluZyA9IHByb3Bl
cnR5U3RyaW5nLmxlZnQocHJvcGVydHlTdHJpbmcubGVuZ3RoKCkgLSAxKTsKKyAgICAgICAgVmVj
dG9yPFN0cmluZz4gcHJvcGVydHlDb21wb25lbnRzOworICAgICAgICBzaXplX3QgY29sb25JbmRl
eCA9IHByb3BlcnR5U3RyaW5nLmZpbmQoIjoiKTsKKyAgICAgICAgQVNTRVJUKGNvbG9uSW5kZXgg
IT0gbm90Rm91bmQpOworCisgICAgICAgIFN0cmluZyBuYW1lID0gcHJvcGVydHlTdHJpbmcubGVm
dChjb2xvbkluZGV4KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0g
cHJvcGVydHlTdHJpbmcuc3Vic3RyaW5nKGNvbG9uSW5kZXggKyAxLCBwcm9wZXJ0eVN0cmluZy5s
ZW5ndGgoKSkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSByYW5n
ZSBpcyByZWxhdGl2ZSB0byB0aGUgZGVjbGFyYXRpb24gc3RhcnQgb2Zmc2V0LgorICAgICAgICBt
X2N1cnJlbnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5hcHBlbmQoCisgICAgICAgICAgICBzdGQ6
OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+KENTU1Byb3BlcnR5RGF0dW0obmFt
ZSwgdmFsdWUsIGlzSW1wb3J0YW50Rm91bmQsIGlzUHJvcGVydHlQYXJzZWQpLCBTb3VyY2VSYW5n
ZShtX3Byb3BlcnR5U3RhcnRPZmZzZXQgLSBtX3J1bGVCb2R5U3RhcnRPZmZzZXQsIG1fcHJvcGVy
dHlFbmRPZmZzZXQgLSBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpKSk7CisgICAgfQorICAgIHJlc2V0
UHJvcGVydHlNYXJrcygpOworfQorCiBzdGF0aWMgaW50IGNzc1Byb3BlcnR5SUQoY29uc3QgVUNo
YXIqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAppbmRleCA0N2YwYmVkLi41Yjg1ZTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjUsNiArMjUsNyBAQAog
CiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJWYWx1ZXMuaCIKKyNpbmNs
dWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAj
aW5jbHVkZSAiTWVkaWFRdWVyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NSwx
OCArNTYsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgQ1NTUGFyc2VyIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBzdGQ6
OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiA+IFN0eWxlUnVsZVJhbmdlczsKLQogICAgICAgICBD
U1NQYXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nID0gdHJ1ZSk7CiAgICAgICAgIH5DU1NQYXJzZXIo
KTsKIAotICAgICAgICB2b2lkIHBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmlu
ZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAwLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1bGVSYW5nZU1h
cCA9IDApOworICAgICAgICB2b2lkIHBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0
cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAwLCBTdHlsZVJ1bGVSYW5nZU1hcCogcnVsZVJh
bmdlTWFwID0gMCk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VSdWxlKENTU1N0
eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NSdWxlPiBw
YXJzZUtleWZyYW1lUnVsZShDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CiAgICAgICAg
IGJvb2wgcGFyc2VWYWx1ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGludCBwcm9wSWQs
IGNvbnN0IFN0cmluZyYsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgc3RhdGljIGJvb2wgcGFy
c2VDb2xvcihSR0JBMzImIGNvbG9yLCBjb25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9IGZhbHNl
KTsKICAgICAgICAgYm9vbCBwYXJzZUNvbG9yKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYpOworICAgICAgICBib29sIHBhcnNlRGVj
bGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmLCBDU1NT
dHlsZVNvdXJjZURhdGEqIHN0eWxlU291cmNlRGF0YSA9IDApOwogICAgICAgICBib29sIHBhcnNl
TWVkaWFRdWVyeShNZWRpYUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKIAogICAgICAgICBEb2N1bWVu
dCogZG9jdW1lbnQoKSBjb25zdDsKQEAgLTI0NCwxMCArMjQzLDE2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgLy8gdG9rZW5pemVyIG1ldGhvZHMgYW5kIGRhdGEKICAgICAgICAgdW5z
aWduZWQgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0OwogICAgICAgICB1bnNpZ25lZCBtX3J1bGVCb2R5
RW5kT2Zmc2V0OwotICAgICAgICBTdHlsZVJ1bGVSYW5nZXMqIG1fcnVsZVJhbmdlczsKKyAgICAg
ICAgdW5zaWduZWQgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAgICB1bnNpZ25lZCBtX3By
b3BlcnR5RW5kT2Zmc2V0OworICAgICAgICBTdHlsZVJ1bGVSYW5nZU1hcCogbV9ydWxlUmFuZ2VN
YXA7CisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IG1fY3VycmVudFN0eWxlRGF0
YTsKICAgICAgICAgdm9pZCBtYXJrUnVsZUJvZHlTdGFydCgpOwogICAgICAgICB2b2lkIG1hcmtS
dWxlQm9keUVuZCgpOworICAgICAgICB2b2lkIG1hcmtQcm9wZXJ0eVN0YXJ0KCk7CisgICAgICAg
IHZvaWQgbWFya1Byb3BlcnR5RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3Bl
cnR5UGFyc2VkKTsKICAgICAgICAgdm9pZCByZXNldFJ1bGVCb2R5TWFya3MoKSB7IG1fcnVsZUJv
ZHlTdGFydE9mZnNldCA9IG1fcnVsZUJvZHlFbmRPZmZzZXQgPSAwOyB9CisgICAgICAgIHZvaWQg
cmVzZXRQcm9wZXJ0eU1hcmtzKCkgeyBtX3Byb3BlcnR5U3RhcnRPZmZzZXQgPSBtX3Byb3BlcnR5
RW5kT2Zmc2V0ID0gVUlOVF9NQVg7IH0KICAgICAgICAgaW50IGxleCh2b2lkKiB5eWx2YWwpOwog
ICAgICAgICBpbnQgdG9rZW4oKSB7IHJldHVybiB5eVRvazsgfQogICAgICAgICBVQ2hhciogdGV4
dChpbnQqIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVt
LmNwcCBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjk0ZjZiMDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eURhdHVtLmNwcApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmZGVmIFNLSVBfU1RBVElDX0NPTlNUUlVDVE9SU19PTl9HQ0MKKyNkZWZpbmUgQ1NT
UFJPUEVSVFlEQVRVTV9ISURFX0dMT0JBTFMgMQorI2VuZGlmCisKKyNpbmNsdWRlICJDU1NQcm9w
ZXJ0eURhdHVtLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0
Zi9TdGF0aWNDb25zdHJ1Y3RvcnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NQcm9w
ZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKQorICAgIDogbmFtZShuYW1l
KQorICAgICwgdmFsdWUodmFsdWUpCisgICAgLCBpbXBvcnRhbnQoaW1wb3J0YW50KQorICAgICwg
cGFyc2VkKHBhcnNlZCkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1
bShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhlcikKKyAgICA6IG5hbWUob3RoZXIubmFtZSkK
KyAgICAsIHZhbHVlKG90aGVyLnZhbHVlKQorICAgICwgaW1wb3J0YW50KG90aGVyLmltcG9ydGFu
dCkKKyAgICAsIHBhcnNlZChvdGhlci5wYXJzZWQpCit7Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06
OkNTU1Byb3BlcnR5RGF0dW0oKQorICAgIDogbmFtZSgiIikKKyAgICAsIHZhbHVlKCIiKQorICAg
ICwgaW1wb3J0YW50KGZhbHNlKQorICAgICwgcGFyc2VkKGZhbHNlKQoreworfQorCitDU1NQcm9w
ZXJ0eURhdHVtJiBDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlE
YXR1bSYgb3RoZXIpCit7CisgICAgbmFtZSA9IG90aGVyLm5hbWU7CisgICAgdmFsdWUgPSBvdGhl
ci52YWx1ZTsKKyAgICBpbXBvcnRhbnQgPSBvdGhlci5pbXBvcnRhbnQ7CisgICAgcGFyc2VkID0g
b3RoZXIucGFyc2VkOworICAgIHJldHVybiAqdGhpczsKK30KKworU3RyaW5nIENTU1Byb3BlcnR5
RGF0dW06OnRvU3RyaW5nKCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZW1wdHlWYWx1ZSwgKCJlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBp
bXBvcnRhbnRTdWZmaXgsICgiICFpbXBvcnRhbnQiKSk7CisgICAgaWYgKCFuYW1lICYmIHZhbHVl
ID09IGVtcHR5VmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZyBy
ZXN1bHQgPSBuYW1lOworICAgIHJlc3VsdCArPSAiOiAiOworICAgIHJlc3VsdCArPSB2YWx1ZTsK
KyAgICBpZiAoaW1wb3J0YW50KQorICAgICAgICByZXN1bHQgKz0gaW1wb3J0YW50U3VmZml4Owor
ICAgIHJlc3VsdCArPSAiOyI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworU291cmNlUmFuZ2U6
OlNvdXJjZVJhbmdlKCkKKyAgICA6IHN0YXJ0KDApCisgICAgLCBlbmQoMCkKK3sKK30KKworU291
cmNlUmFuZ2U6OlNvdXJjZVJhbmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpCisgICAg
OiBzdGFydChzdGFydCkKKyAgICAsIGVuZChlbmQpCit7Cit9CisKK1NvdXJjZVJhbmdlJiBTb3Vy
Y2VSYW5nZTo6b3BlcmF0b3I9KGNvbnN0IFNvdXJjZVJhbmdlJiBvdGhlcikKK3sKKyAgICB0aGlz
LT5zdGFydCA9IG90aGVyLnN0YXJ0OworICAgIHRoaXMtPmVuZCA9IG90aGVyLmVuZDsKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKKy8vIEdsb2JhbCBpbml0IHJvdXRpbmVzCitERUZJTkVfR0xPQkFM
KENTU1Byb3BlcnR5RGF0dW0sIGVtcHR5Q1NTUHJvcGVydHlEYXR1bSwgIiIsICJlIiwgZmFsc2Us
IGZhbHNlKQorCisvLyBzdGF0aWMKK3ZvaWQgQ1NTUHJvcGVydHlEYXR1bTo6aW5pdCgpCit7Cisg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7CisgICAgaWYgKCFpbml0aWFsaXplZCkgeworICAg
ICAgICBuZXcgKCh2b2lkICopICZlbXB0eUNTU1Byb3BlcnR5RGF0dW0pIENTU1Byb3BlcnR5RGF0
dW0oIiIsICJlIiwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKK25hbWVzcGFjZSBXVEYgewor
CitXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtIEhhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJvcGVy
dHlEYXR1bT46OmVtcHR5VmFsdWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlEYXR1bSwgZW1wdHlIYXNoVmFsdWUsICgiIiwgImgiLCBmYWxzZSwgZmFs
c2UpKTsKKyAgICByZXR1cm4gZW1wdHlIYXNoVmFsdWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5oIGIvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlEYXR1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmJhYmY3NjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVt
LmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENTU1Byb3BlcnR5RGF0dW1faAorI2RlZmluZSBD
U1NQcm9wZXJ0eURhdHVtX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQ1NTU3R5bGVSdWxlOworCitzdHJ1Y3QgQ1NTUHJvcGVydHlEYXR1bSB7
CisgICAgc3RhdGljIHZvaWQgaW5pdCgpOworCisgICAgQ1NTUHJvcGVydHlEYXR1bShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBib29sIHBh
cnNlZCk7CisgICAgQ1NTUHJvcGVydHlEYXR1bShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhl
cik7CisgICAgQ1NTUHJvcGVydHlEYXR1bSgpOworICAgIEFMV0FZU19JTkxJTkUgfkNTU1Byb3Bl
cnR5RGF0dW0oKSB7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQcm9wZXJ0eURh
dHVtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbmFtZSA9PSBvdGhlci5uYW1lICYmIHZhbHVlID09
IG90aGVyLnZhbHVlICYmIGltcG9ydGFudCA9PSBvdGhlci5pbXBvcnRhbnQgJiYgcGFyc2VkID09
IG90aGVyLnBhcnNlZDsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDU1NQcm9wZXJ0eURh
dHVtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKworICAgIENT
U1Byb3BlcnR5RGF0dW0mIG9wZXJhdG9yPShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhlcik7
CisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgbmFtZTsKKyAgICBT
dHJpbmcgdmFsdWU7CisgICAgYm9vbCBpbXBvcnRhbnQ7CisgICAgYm9vbCBwYXJzZWQ7Cit9Owor
dHlwZWRlZiBzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgYm9vbD4gU291cmNlQXdhcmVQcm9w
ZXJ0eURhdHVtOworCisjaWZuZGVmIENTU1BST1BFUlRZREFUVU1fSElERV9HTE9CQUxTCitleHRl
cm4gY29uc3QgQ1NTUHJvcGVydHlEYXR1bSBlbXB0eUNTU1Byb3BlcnR5RGF0dW07CisjZW5kaWYK
Kworc3RydWN0IFNvdXJjZVJhbmdlIHsKKyAgICBTb3VyY2VSYW5nZSgpOworICAgIFNvdXJjZVJh
bmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOworICAgIFNvdXJjZVJhbmdlJiBvcGVy
YXRvcj0oY29uc3QgU291cmNlUmFuZ2UmIG90aGVyKTsKKworICAgIHVuc2lnbmVkIHN0YXJ0Owor
ICAgIHVuc2lnbmVkIGVuZDsKK307CisKK3N0cnVjdCBDU1NTdHlsZVNvdXJjZURhdGEgOiBwdWJs
aWMgUmVmQ291bnRlZDxDU1NTdHlsZVNvdXJjZURhdGE+IHsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NTdHlsZVNvdXJjZURhdGE+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENTU1N0eWxlU291cmNlRGF0YSgpKTsKKyAgICB9CisKKyAgICAvLyBSYW5nZSBv
ZiB0aGUgc3R5bGUgdGV4dCBpbiB0aGUgZW5jbG9zaW5nIHNvdXJjZSAoc3RhcnQgYW5kIGVuZCBv
ZmZzZXRzIGluY2x1c2l2ZSkuCisgICAgU291cmNlUmFuZ2Ugc3R5bGVCb2R5UmFuZ2U7CisgICAg
VmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPiBwcm9wZXJ0
eURhdGE7Cit9OwordHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIFJlZlB0cjxDU1NTdHls
ZVNvdXJjZURhdGE+ID4gU3R5bGVSdWxlUmFuZ2VNYXA7CisKK3N0cnVjdCBDU1NQcm9wZXJ0eURh
dHVtSGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goQ1NTUHJvcGVydHlEYXR1bSBrZXkp
CisgICAgeworICAgICAgICByZXR1cm4gU3RyaW5nSGFzaDo6aGFzaChrZXkubmFtZSkgKyBTdHJp
bmdIYXNoOjpoYXNoKGtleS52YWx1ZSkgKyA3ICoga2V5LmltcG9ydGFudCArIDMgKiBrZXkucGFy
c2VkICsgMzE7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZXF1YWwoQ1NTUHJvcGVydHlEYXR1
bSBhLCBDU1NQcm9wZXJ0eURhdHVtIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5uYW1lID09
IGIubmFtZSAmJiBhLnZhbHVlID09IGIudmFsdWUgJiYgYS5pbXBvcnRhbnQgPT0gYi5pbXBvcnRh
bnQgJiYgYS5wYXJzZWQgPT0gYi5wYXJzZWQ7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBEZWZhdWx0SGFzaDsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNv
cmU6OkNTU1Byb3BlcnR5RGF0dW0+IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW1IYXNoIEhhc2g7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1Byb3BlcnR5RGF0dW0+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJv
cGVydHlEYXR1bT4geworICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBm
YWxzZTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSBlbXB0eVZhbHVlKCk7
CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6Q1NTUHJv
cGVydHlEYXR1bSYgc2xvdCkgeyBuZXcgKCZzbG90KSBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVt
KCIiLCAiRCIsIGZhbHNlLCBmYWxzZSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1
ZShjb25zdCBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtJiBzbG90KSB7IHJldHVybiAhc2xvdC5u
YW1lLmxlbmd0aCgpICYmIHNsb3QudmFsdWUgPT0gIkQiOyB9Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKworI2VuZGlmIC8vIENTU1Byb3BlcnR5RGF0dW1faApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5p
ZGwKaW5kZXggMTY5YjE4OC4uOTliMDJmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBAIC0x
ODgsNyArMTg4LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQg
Z2V0SW5saW5lU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CiAgICAgICAg
IFtoYW5kbGVyPURPTV0gdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQg
VmFsdWUgc3R5bGUpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTaGVldChp
biBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IE9iamVjdCBzdHlsZVNoZWV0KTsKLSAgICAgICAgW2hh
bmRsZXI9RE9NXSB2b2lkIGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBW
YWx1ZSByYW5nZXMpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTb3VyY2VE
YXRhKGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgT2JqZWN0IHN0eWxlU291cmNlRGF0YSk7CiAg
ICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBhcHBseVN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQs
IGluIFN0cmluZyBzdHlsZVRleHQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIG91dCBib29sZWFu
IHN1Y2Nlc3MsIG91dCBWYWx1ZSBzdHlsZSwgb3V0IEFycmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsK
ICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHNldFN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQs
IGluIFN0cmluZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwogICAgICAgICBbaGFu
ZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIHN0eWxlSWQsIGluIFN0cmlu
ZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IGMyZGM0ZjEuLmIwMTk4NjAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTM3LDExICszNywxOCBAQAog
I2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUu
aCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgor
I2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVkZSAi
VGV4dEVuY29kaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjcsNiArNzQsNyBA
QCB2b2lkIEluc3BlY3RvckNTU1N0b3JlOjpyZXNldCgpCiAgICAgbV9zdHlsZVNoZWV0VG9PZmZz
ZXRzLmNsZWFyKCk7CiAgICAgbV9zdHlsZVNoZWV0VG9JZC5jbGVhcigpOwogICAgIG1faWRUb1N0
eWxlU2hlZXQuY2xlYXIoKTsKKyAgICBtX2lkVG9TdHlsZVNoZWV0VGV4dC5jbGVhcigpOwogICAg
IG1faWRUb0Rpc2FibGVkU3R5bGUuY2xlYXIoKTsKICAgICBtX2RvY3VtZW50Tm9kZVRvSW5zcGVj
dG9yU3R5bGVTaGVldE1hcC5jbGVhcigpOwogCkBAIC0xMDQsNDggKzExMiwxNDUgQEAgQ1NTU3R5
bGVTaGVldCogSW5zcGVjdG9yQ1NTU3RvcmU6Omluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQq
IG93bmVyRG9jdW1lbnQsIGIKICAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldDsKIH0KIAot
SGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFJ1bGVSYW5n
ZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6
c3R5bGVTaGVldFRleHQobG9uZyBzdHlsZVNoZWV0SWQpCiB7CisgICAgSWRUb1N0eWxlU2hlZXRU
ZXh0TWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1N0eWxlU2hlZXRUZXh0LmZpbmQoc3R5bGVTaGVl
dElkKTsKKyAgICBpZiAoaXQgIT0gbV9pZFRvU3R5bGVTaGVldFRleHQuZW5kKCkpCisgICAgICAg
IHJldHVybiBpdC0+c2Vjb25kOworCisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHN0
eWxlU2hlZXRGb3JJZChzdHlsZVNoZWV0SWQpOworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU3RyaW5nIHJlc3VsdDsKKyAgICBib29sIHN1Y2Nl
c3MgPSBmYWxzZTsKKyAgICBOb2RlKiBvd25lck5vZGUgPSBzdHlsZVNoZWV0LT5vd25lck5vZGUo
KTsKKyAgICBpZiAob3duZXJOb2RlICYmIG93bmVyTm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpF
TEVNRU5UX05PREUpIHsKKyAgICAgICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG93bmVyTm9kZSk7CisgICAgICAgIGlmIChvd25lckVsZW1lbnQtPnRhZ05h
bWUoKS5sb3dlcigpID09ICJzdHlsZSIpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGlubGluZVN0
eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXQpOworICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBzdWNjZXNzID0gcmVz
b3VyY2VTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0LCAmcmVzdWx0KTsKKworICAgIGlmIChzdWNj
ZXNzKQorICAgICAgICBtX2lkVG9TdHlsZVNoZWV0VGV4dC5zZXQoc3R5bGVTaGVldElkLCByZXN1
bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ1NTU3RvcmU6OnJl
c291cmNlU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgU3RyaW5nKiBy
ZXN1bHQpCit7CisgICAgcmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVzb3VyY2VDb250
ZW50Rm9yVVJMKHN0eWxlU2hlZXQtPmZpbmFsVVJMKCksIHN0eWxlU2hlZXQtPmRvY3VtZW50KCks
IHJlc3VsdCk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVTaGVl
dFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBOb2RlKiBvd25lck5vZGUg
PSBzdHlsZVNoZWV0LT5vd25lck5vZGUoKTsKKyAgICBpZiAoIW93bmVyTm9kZSB8fCBvd25lck5v
ZGUtPm5vZGVUeXBlKCkgIT0gTm9kZTo6RUxFTUVOVF9OT0RFIHx8IG1fc3R5bGVTaGVldFRvSWQu
ZmluZChzdHlsZVNoZWV0KSA9PSBtX3N0eWxlU2hlZXRUb0lkLmVuZCgpKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisgICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxl
bWVudCo+KG93bmVyTm9kZSk7CisgICAgaWYgKG93bmVyRWxlbWVudC0+dGFnTmFtZSgpLmxvd2Vy
KCkgIT0gInN0eWxlIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBvd25l
ckVsZW1lbnQtPmlubmVyVGV4dCgpOworfQorCisKKy8vIEFsbCByYW5nZXMgYXJlOiBbc3RhcnQ7
IGVuZCkgKHN0YXJ0IC0gaW5jbHVzaXZlLCBlbmQgLSBleGNsdXNpdmUpLgorYm9vbCBJbnNwZWN0
b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3VyY2VEYXRhKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxl
LCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlmICghc3R5bGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbmxpbmVT
dHlsZUVsZW1lbnQoc3R5bGUpOworICAgIGlmIChlbGVtZW50KSB7CisgICAgICAgIC8vIElubGlu
ZTogc3R5bGU9Ii4uLiIuCisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHN0eWxl
U291cmNlRGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIGJvb2wg
c3VjY2VzcyA9IGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKGVsZW1lbnQsICZzdHlsZVNvdXJjZURh
dGEpOworICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICpyZXN1bHQgPSBzdHlsZVNvdXJjZURhdGE7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNo
ZWV0KHN0eWxlKTsKICAgICBpZiAoIXN0eWxlU2hlZXQpCi0gICAgICAgIHJldHVybiBIYXNoTWFw
PGxvbmcsIFNvdXJjZVJhbmdlPigpOwotICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gb3JpZ2luYWxS
dWxlTGlzdCA9IENTU1J1bGVMaXN0OjpjcmVhdGUoc3R5bGVTaGVldCwgZmFsc2UpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4g
PiogcmFuZ2VzVmVjdG9yID0gMDsKICAgICBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOjppdGVyYXRv
ciBpdCA9IG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5maW5kKHN0eWxlU2hlZXQpOwotICAgIFZlY3Rv
cjxTb3VyY2VSYW5nZT4qIG9mZnNldFZlY3RvciA9IDA7CiAgICAgaWYgKGl0ID09IG1fc3R5bGVT
aGVldFRvT2Zmc2V0cy5lbmQoKSkgewotICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBtX2luc3BlY3RvckNvbnRyb2xsZXItPnJlc291cmNlRm9yVVJMKHN0eWxlU2hlZXQtPmZp
bmFsVVJMKCkuc3RyaW5nKCkpOwotICAgICAgICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAgICAg
IG9mZnNldFZlY3RvciA9IG5ldyBWZWN0b3I8U291cmNlUmFuZ2U+OworICAgICAgICBTdHJpbmcg
dGV4dCA9IHN0eWxlU2hlZXRUZXh0KGJpbmRTdHlsZVNoZWV0KHN0eWxlU2hlZXQpKTsKKyAgICAg
ICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgUmVmUHRyPENTU1N0eWxlU2hl
ZXQ+IG5ld1N0eWxlU2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3R5bGVTaGVldC0+b3du
ZXJOb2RlKCkpOwogICAgICAgICAgICAgQ1NTUGFyc2VyIHA7Ci0gICAgICAgICAgICBDU1NQYXJz
ZXI6OlN0eWxlUnVsZVJhbmdlcyBydWxlUmFuZ2VNYXA7Ci0gICAgICAgICAgICBwLnBhcnNlU2hl
ZXQobmV3U3R5bGVTaGVldC5nZXQoKSwgcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpLCAwLCAmcnVs
ZVJhbmdlTWFwKTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IG5l
d1N0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAg
ICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShuZXdTdHlsZVNoZWV0LT5pdGVt
KGkpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJ1bGUpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWly
PHVuc2lnbmVkLCB1bnNpZ25lZD4gPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VNYXAuZmluZChy
dWxlKTsKLSAgICAgICAgICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQotICAg
ICAgICAgICAgICAgICAgICBvZmZzZXRWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5zZXQoc3R5bGVTaGVl
dCwgb2Zmc2V0VmVjdG9yKTsKKyAgICAgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwIHJ1bGVSYW5n
ZU1hcDsKKyAgICAgICAgICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgpLCB0ZXh0
LCAwLCAmcnVsZVJhbmdlTWFwKTsKKyAgICAgICAgICAgIHJhbmdlc1ZlY3RvciA9IG5ldyBWZWN0
b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPjsKKyAgICAgICAgICAgIGV4dHJhY3RSYW5n
ZXMobmV3U3R5bGVTaGVldC5nZXQoKSwgcnVsZVJhbmdlTWFwLCByYW5nZXNWZWN0b3IpOworICAg
ICAgICAgICAgbV9zdHlsZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCByYW5nZXNWZWN0
b3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIG9mZnNldFZlY3RvciA9IGl0LT5z
ZWNvbmQ7Ci0gICAgaWYgKCFvZmZzZXRWZWN0b3IpCi0gICAgICAgIHJldHVybiBIYXNoTWFwPGxv
bmcsIFNvdXJjZVJhbmdlPigpOworICAgICAgICByYW5nZXNWZWN0b3IgPSBpdC0+c2Vjb25kOwor
ICAgIGlmICghcmFuZ2VzVmVjdG9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNp
Z25lZCBydWxlSW5kZXggPSAwOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJlc3Vs
dDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgo
KTsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEFTU0VSVChydWxlSW5kZXggPCBvZmZzZXRW
ZWN0b3ItPnNpemUoKSk7CiAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVS
dWxlKHN0eWxlU2hlZXQtPml0ZW0oaSkpOwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgLy8gVGhpcyBtYXBzIHRoZSBzdHlsZSBpZCB0byB0aGUgcnVs
ZSBib2R5IHJhbmdlLgotICAgICAgICByZXN1bHQuc2V0KGJpbmRTdHlsZShydWxlLT5zdHlsZSgp
KSwgb2Zmc2V0VmVjdG9yLT5hdChydWxlSW5kZXgpKTsKKyAgICAgICAgaWYgKHJ1bGUtPnN0eWxl
KCkgPT0gc3R5bGUpIHsKKyAgICAgICAgICAgIEFTU0VSVChydWxlSW5kZXggPCByYW5nZXNWZWN0
b3ItPnNpemUoKSk7CisgICAgICAgICAgICAqcmVzdWx0ID0gcmFuZ2VzVmVjdG9yLT5hdChydWxl
SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgcnVs
ZUluZGV4Kys7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIEluc3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKENTU1N0eWxlU2hlZXQq
IHN0eWxlU2hlZXQsIGNvbnN0IFN0eWxlUnVsZVJhbmdlTWFwJiBydWxlUmFuZ2VNYXAsIFZlY3Rv
cjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpCit7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gc3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBsZW5n
dGg7ICsraSkgeworICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShz
dHlsZVNoZWV0LT5pdGVtKGkpKTsKKyAgICAgICAgaWYgKCFydWxlKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHJ1
bGVSYW5nZU1hcC5maW5kKHJ1bGUpOworICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVu
ZCgpKQorICAgICAgICAgICAgcmFuZ2VzVmVjdG9yLT5hcHBlbmQoaXQtPnNlY29uZCk7CisgICAg
fQorfQorCitib29sIEluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhO
b2RlKiBub2RlLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlm
ICghbm9kZSB8fCAhbm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIFN0cmluZyBzdHlsZVRleHQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4o
bm9kZSktPmdldEF0dHJpYnV0ZSgic3R5bGUiKTsKKyAgICBpZiAoc3R5bGVUZXh0LmlzRW1wdHko
KSkgeworICAgICAgICAoKnJlc3VsdCktPnN0eWxlQm9keVJhbmdlLnN0YXJ0ID0gMDsKKyAgICAg
ICAgKCpyZXN1bHQpLT5zdHlsZUJvZHlSYW5nZS5lbmQgPSAwOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHRlbXBE
ZWNsYXJhdGlvbiA9IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKTsKKyAgICBD
U1NQYXJzZXIgcDsKKyAgICBwLnBhcnNlRGVjbGFyYXRpb24odGVtcERlY2xhcmF0aW9uLmdldCgp
LCBzdHlsZVRleHQsIHJlc3VsdC0+Z2V0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitDU1NT
dHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHls
ZURlY2xhcmF0aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZS0+c3R5bGVzaGVldCgpOwor
ICAgIGlmIChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpOworCisg
ICAgcmV0dXJuIDA7CiB9CiAKIENTU1N0eWxlUnVsZSogSW5zcGVjdG9yQ1NTU3RvcmU6OmFzQ1NT
U3R5bGVSdWxlKFN0eWxlQmFzZSogc3R5bGVCYXNlKQpAQCAtMjE3LDYgKzMyMiwxNyBAQCBsb25n
IEluc3BlY3RvckNTU1N0b3JlOjpiaW5kUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiAgICAgcmV0
dXJuIGlkOwogfQogCisvLyBzdGF0aWMKK0VsZW1lbnQqIEluc3BlY3RvckNTU1N0b3JlOjppbmxp
bmVTdHlsZUVsZW1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAgaWYgKCFz
dHlsZSB8fCAhc3R5bGUtPmlzTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgTm9kZSogbm9kZSA9IHN0YXRpY19jYXN0PENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKj4oc3R5bGUpLT5ub2RlKCk7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0eWxl
ZEVsZW1lbnQoKSB8fCBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdldElubGlu
ZVN0eWxlRGVjbCgpICE9IHN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0
b3JlLmgKaW5kZXggODJkZTYyMi4uOGFlYzVlMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NTdG9yZS5oCkBAIC0yOSw2ICsyOSw5IEBACiAjaWZuZGVmIEluc3BlY3RvckNTU1N0b3JlX2gK
ICNkZWZpbmUgSW5zcGVjdG9yQ1NTU3RvcmVfaAogCisjaW5jbHVkZSAiQ2FjaGUuaCIKKyNpbmNs
dWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCisKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzYsMzkg
KzM5LDQ1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFz
cyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb247
CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NTUnVsZUxpc3Q7CiBjbGFzcyBD
U1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBFbGVtZW50OworY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKK2NsYXNzIE5vZGU7CiBjbGFz
cyBTdHlsZUJhc2U7CiAKIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQcm9wZXJ0
eVZhbHVlQW5kUHJpb3JpdHk7Ci10eXBlZGVmIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+
IFNvdXJjZVJhbmdlOwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydHlWYWx1ZUFuZFBy
aW9yaXR5PiBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb247CiB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5
bGVEZWNsYXJhdGlvbiosIGxvbmc+IFN0eWxlVG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25n
LCBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gPiBJZFRvU3R5bGVNYXA7CiB0eXBlZGVmIEhh
c2hNYXA8Q1NTU3R5bGVSdWxlKiwgbG9uZz4gUnVsZVRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8
bG9uZywgUmVmUHRyPENTU1N0eWxlUnVsZT4gPiBJZFRvUnVsZU1hcDsKLXR5cGVkZWYgSGFzaE1h
cDxDU1NTdHlsZVNoZWV0KiwgVmVjdG9yPFNvdXJjZVJhbmdlPiogPiBTdHlsZVNoZWV0VG9PZmZz
ZXRzTWFwOwordHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBWZWN0b3I8UmVmUHRyPENT
U1N0eWxlU291cmNlRGF0YT4gPiogPiBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOwogdHlwZWRlZiBI
YXNoTWFwPENTU1N0eWxlU2hlZXQqLCBsb25nPiBTdHlsZVNoZWV0VG9JZE1hcDsKIHR5cGVkZWYg
SGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBJZFRvU3R5bGVTaGVldE1hcDsK
K3R5cGVkZWYgSGFzaE1hcDxsb25nLCBTdHJpbmc+IElkVG9TdHlsZVNoZWV0VGV4dE1hcDsKIHR5
cGVkZWYgSGFzaE1hcDxsb25nLCBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24+IElkVG9EaXNhYmxl
ZFN0eWxlTWFwOwogdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxEb2N1bWVudD4sIFJlZlB0cjxDU1NT
dHlsZVNoZWV0PiA+IERvY3VtZW50VG9TdHlsZVNoZWV0TWFwOwogCiBjbGFzcyBJbnNwZWN0b3JD
U1NTdG9yZSB7CiAKIHB1YmxpYzoKKyAgICBzdGF0aWMgQ1NTU3R5bGVTaGVldCogZ2V0UGFyZW50
U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisgICAgc3RhdGljIEVsZW1lbnQqIGlu
bGluZVN0eWxlRWxlbWVudChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisKICAgICBJbnNwZWN0b3JD
U1NTdG9yZShJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsKICAgICB+
SW5zcGVjdG9yQ1NTU3RvcmUoKTsKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgSGFzaE1hcDxsb25n
LCBTb3VyY2VSYW5nZT4gZ2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0Kik7CisgICAgYm9vbCBn
ZXRTdHlsZVNvdXJjZURhdGEoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJlZlB0cjxDU1NTdHlsZVNv
dXJjZURhdGE+KiByZXN1bHQpOwogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRm9ySWQo
bG9uZyBzdHlsZUlkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0Rm9ySWQobG9uZyBz
dHlsZVNoZWV0SWQpOwogICAgIENTU1N0eWxlUnVsZSogcnVsZUZvcklkKGxvbmcgc3R5bGVSdWxl
SWQpOwogICAgIERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbiogZGlzYWJsZWRTdHlsZUZvcklkKGxv
bmcgc3R5bGVJZCwgYm9vbCBjcmVhdGVJZkFic2VudCk7CisgICAgU3RyaW5nIHN0eWxlU2hlZXRU
ZXh0KGxvbmcgc3R5bGVTaGVldElkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHls
ZVNoZWV0KERvY3VtZW50KiBvd25lckRvY3VtZW50LCBib29sIGNyZWF0ZUlmQWJzZW50KTsKICAg
ICB2b2lkIHJlbW92ZURvY3VtZW50KERvY3VtZW50Kik7CiAKQEAgLTc4LDYgKzg3LDEwIEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVs
ZShTdHlsZUJhc2UqKTsKKyAgICBTdHJpbmcgaW5saW5lU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVT
aGVldCopOworICAgIGJvb2wgcmVzb3VyY2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0Kiwg
U3RyaW5nKiByZXN1bHQpOworICAgIHZvaWQgZXh0cmFjdFJhbmdlcyhDU1NTdHlsZVNoZWV0Kiwg
Y29uc3QgU3R5bGVSdWxlUmFuZ2VNYXAmLCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0
YT4gPiogcmFuZ2VzVmVjdG9yKTsKKyAgICBib29sIGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKE5v
ZGUqIHBhcmVudE5vZGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpOwogCiAg
ICAgU3R5bGVUb0lkTWFwIG1fc3R5bGVUb0lkOwogICAgIElkVG9TdHlsZU1hcCBtX2lkVG9TdHls
ZTsKQEAgLTg1LDggKzk4LDkgQEAgcHJpdmF0ZToKICAgICBJZFRvUnVsZU1hcCBtX2lkVG9SdWxl
OwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXAgbV9zdHlsZVNoZWV0VG9PZmZzZXRzOwogICAg
IFN0eWxlU2hlZXRUb0lkTWFwIG1fc3R5bGVTaGVldFRvSWQ7Ci0gICAgSWRUb1N0eWxlU2hlZXRN
YXAgbV9pZFRvU3R5bGVTaGVldDsKICAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcCBtX2lkVG9EaXNh
YmxlZFN0eWxlOworICAgIElkVG9TdHlsZVNoZWV0TWFwIG1faWRUb1N0eWxlU2hlZXQ7CisgICAg
SWRUb1N0eWxlU2hlZXRUZXh0TWFwIG1faWRUb1N0eWxlU2hlZXRUZXh0OwogICAgIERvY3VtZW50
VG9TdHlsZVNoZWV0TWFwIG1fZG9jdW1lbnROb2RlVG9JbnNwZWN0b3JTdHlsZVNoZWV0TWFwOwog
CiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0b3JDb250cm9sbGVyOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA5MGVmMzQ0Li5hOTUxZmE2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2hyb21l
LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCkBA
IC0xODk2LDYgKzE4OTcsNDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRSZXNvdXJj
ZUNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBTdHJpbmcqIGMKICAgICAqY29udGVu
dCA9IHJlc291cmNlID8gcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpIDogU3RyaW5nKCk7CiB9CiAK
K2Jvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3VyY2VDb250ZW50Rm9yVVJMKGNvbnN0IEtV
UkwmIHVybCwgRG9jdW1lbnQqIGZyYW1lRG9jdW1lbnQsIFN0cmluZyogcmVzdWx0KQoreworICAg
IGlmICghZnJhbWVEb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RyaW5n
IHRleHRFbmNvZGluZ05hbWU7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAg
IGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHVybCwgZnJhbWVEb2N1bWVudC0+
ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3RVUkwoKSkpIHsKKyAg
ICAgICAgdGV4dEVuY29kaW5nTmFtZSA9IGZyYW1lRG9jdW1lbnQtPmlucHV0RW5jb2RpbmcoKTsK
KyAgICAgICAgYnVmZmVyID0gZnJhbWVEb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nID0gdXJsLnN0cmluZygpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBmcmFtZURvY3VtZW50LT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5jYWNoZWRSZXNvdXJjZSh1cmxTdHJpbmcpOworICAgICAgICBpZiAo
IWNhY2hlZFJlc291cmNlKQorICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBjYWNoZSgpLT5y
ZXNvdXJjZUZvclVSTCh1cmxTdHJpbmcpOworCisgICAgICAgIEFTU0VSVChjYWNoZWRSZXNvdXJj
ZSk7IC8vIEZJWE1FKGFwYXZsb3YpOiBUaGlzIG1pZ2h0IGJlIHRvbyBhZ2dyZXNzaXZlLgorCisg
ICAgICAgIGJvb2wgaXNVbnB1cmdlYWJsZSA9IHRydWU7CisgICAgICAgIGlmIChjYWNoZWRSZXNv
dXJjZS0+aXNQdXJnZWFibGUoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlz
IHB1cmdlYWJsZSB0aGVuIG1ha2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAgICAgICAv
LyBpdHMgZGF0YS4gVGhpcyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgor
ICAgICAgICAgICAgLy8gZW1wdHkgU3RyaW5nLgorICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNv
dXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCisgICAgICAgICAgICAgICAgaXNVbnB1cmdlYWJs
ZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7CisgICAg
ICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCk7Cisg
ICAgICAgICAgICBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2Rpbmco
dGV4dEVuY29kaW5nTmFtZSk7CisgICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKQorICAg
ICAgICAgICAgZW5jb2RpbmcgPSBXaW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKKyAgICAgICAgKnJl
c3VsdCA9IGVuY29kaW5nLmRlY29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVsb2FkUGFnZSgpCiB7CiAgICAgbV9pbnNwZWN0ZWRQ
YWdlLT5tYWluRnJhbWUoKS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVSZWZyZXNoKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDA3OWNmNTUu
LjE4YWYyMjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTIy
Myw2ICsyMjMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZXNvdXJjZXNNYXAmIHJlc291cmNl
cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VzOyB9CiAgICAgSW5zcGVjdG9yUmVzb3VyY2Uq
IHJlc291cmNlRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICBib29sIHJlc291cmNlQ29u
dGVudEZvclVSTChjb25zdCBLVVJMJiB1cmwsIERvY3VtZW50KiBsb2FkZXJEb2N1bWVudCwgU3Ry
aW5nKiByZXN1bHQpOwogICAgIGJvb2wgaGFzRnJvbnRlbmQoKSBjb25zdCB7IHJldHVybiBtX2Zy
b250ZW5kOyB9CiAKICAgICB2b2lkIGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGRkZDcx
ZjkuLjk5YjUxNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgpA
QCAtMTE5MSwyNiArMTE5MiwzNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNo
ZWV0KGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PgogICAgICAgICAq
c3R5bGVTaGVldE9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldChzdHlsZVNoZWV0LT5k
b2N1bWVudCgpLCBzdHlsZVNoZWV0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0
UnVsZVJhbmdlcyhsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcnVs
ZVJhbmdlKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5bGVTb3VyY2VEYXRhKGxvbmcg
c3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGRhdGFPYmplY3QpCiB7Ci0gICAgQ1NT
U3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGNzc1N0b3JlKCktPnN0eWxlU2hlZXRGb3JJZChzdHls
ZVNoZWV0SWQpOwotICAgIGlmIChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmRvY3VtZW50KCkp
IHsKLSAgICAgICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcnVsZVJhbmdlcyA9IGNzc1N0
b3JlKCktPmdldFJ1bGVSYW5nZXMoc3R5bGVTaGVldCk7Ci0gICAgICAgIGlmICghcnVsZVJhbmdl
cy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgIGZvciAo
SGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT46Oml0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlcy5iZWdp
bigpOyBpdCAhPSBydWxlUmFuZ2VzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICBpZiAoaXQt
PnNlY29uZC5zZWNvbmQpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBydWxlUmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAg
IHJlc3VsdC0+c2V0T2JqZWN0KFN0cmluZzo6bnVtYmVyKGl0LT5maXJzdCkudXRmOCgpLmRhdGEo
KSwgcnVsZVJhbmdlKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBi
b2R5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAgIHJ1
bGVSYW5nZS0+c2V0T2JqZWN0KCJib2R5UmFuZ2UiLCBib2R5UmFuZ2UpOwotICAgICAgICAgICAg
ICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJzdGFydCIsIGl0LT5zZWNvbmQuZmlyc3QpOwotICAg
ICAgICAgICAgICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25kLnNlY29u
ZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgKnJ1bGVSYW5nZSA9IHJlc3Vs
dC5yZWxlYXNlKCk7CisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBjc3NTdG9yZSgp
LT5zdHlsZUZvcklkKHN0eWxlSWQpOworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybjsK
KyAgICBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gQ1NTU3R5bGVTb3Vy
Y2VEYXRhOjpjcmVhdGUoKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBjc3NTdG9yZSgpLT5nZXRTdHls
ZVNvdXJjZURhdGEoc3R5bGUsICZzb3VyY2VEYXRhKTsKKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAg
ICAgIHJldHVybjsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHQgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJvZHlSYW5n
ZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXRPYmplY3QoImJv
ZHlSYW5nZSIsIGJvZHlSYW5nZSk7CisgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0Iiwg
c291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc3RhcnQpOworICAgIGJvZHlSYW5nZS0+c2V0TnVt
YmVyKCJlbmQiLCBzb3VyY2VEYXRhLT5zdHlsZUJvZHlSYW5nZS5lbmQpOworICAgIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4gcHJvcGVydHlSYW5nZXMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7
CisgICAgcmVzdWx0LT5zZXRBcnJheSgicHJvcGVydHlEYXRhIiwgcHJvcGVydHlSYW5nZXMpOwor
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID4mIHBy
b3BlcnR5RGF0YSA9IHNvdXJjZURhdGEtPnByb3BlcnR5RGF0YTsKKyAgICBmb3IgKFZlY3Rvcjxz
dGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID46Oml0ZXJhdG9yIGl0ID0g
cHJvcGVydHlEYXRhLmJlZ2luKCk7IGl0ICE9IHByb3BlcnR5RGF0YS5lbmQoKTsgKytpdCkgewor
ICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwcm9wZXJ0eVJhbmdlID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0U3RyaW5nKCJuYW1l
IiwgaXQtPmZpcnN0Lm5hbWUpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRTdHJpbmcoInZh
bHVlIiwgaXQtPmZpcnN0LnZhbHVlKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0Qm9vbGVh
bigiaW1wb3J0YW50IiwgaXQtPmZpcnN0LmltcG9ydGFudCk7CisgICAgICAgIHByb3BlcnR5UmFu
Z2UtPnNldEJvb2xlYW4oInBhcnNlZCIsIGl0LT5maXJzdC5wYXJzZWQpOworICAgICAgICBwcm9w
ZXJ0eVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0IiwgaXQtPnNlY29uZC5zdGFydCk7CisgICAgICAg
IHByb3BlcnR5UmFuZ2UtPnNldE51bWJlcigiZW5kIiwgaXQtPnNlY29uZC5lbmQpOworICAgICAg
ICBwcm9wZXJ0eVJhbmdlcy0+cHVzaE9iamVjdChwcm9wZXJ0eVJhbmdlKTsKICAgICB9CisgICAg
KmRhdGFPYmplY3QgPSByZXN1bHQucmVsZWFzZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiog
c3R5bGUpCkBAIC0xNDY5LDcgKzE0NzgsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5bGVEZWNsYQogICAg
IGlmIChiaW5kKSB7CiAgICAgICAgIGxvbmcgc3R5bGVJZCA9IGNzc1N0b3JlKCktPmJpbmRTdHls
ZShzdHlsZSk7CiAgICAgICAgIHJlc3VsdC0+c2V0TnVtYmVyKCJpZCIsIHN0eWxlSWQpOwotICAg
ICAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gZ2V0UGFyZW50U3R5bGVTaGVl
dChzdHlsZSk7CisgICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBJbnNw
ZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChzdHlsZSk7CiAgICAgICAgIGlmIChw
YXJlbnRTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmVzdWx0LT5zZXROdW1iZXIoInBhcmVudFN0
eWxlU2hlZXRJZCIsIGNzc1N0b3JlKCktPmJpbmRTdHlsZVNoZWV0KHBhcmVudFN0eWxlU2hlZXQp
KTsKIApAQCAtMTY4MSwyMCArMTY5MCw2IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IElu
c3BlY3RvckRPTUFnZW50Ojp0b0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhCiAgICAg
cmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKLUNTU1N0eWxlU2hlZXQqIEluc3BlY3RvckRP
TUFnZW50OjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQot
ewotICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBzdHlsZS0+cGFyZW50UnVs
ZSgpID8gc3R5bGUtPnBhcmVudFJ1bGUoKS0+cGFyZW50U3R5bGVTaGVldCgpIDogMDsKLSAgICBp
ZiAoIXBhcmVudFN0eWxlU2hlZXQpIHsKLSAgICAgICAgU3R5bGVCYXNlKiBwYXJlbnQgPSBzdHls
ZS0+cGFyZW50KCk7Ci0gICAgICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5pc0NTU1N0eWxlU2hl
ZXQoKSkgewotICAgICAgICAgICAgcGFyZW50U3R5bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0
eWxlU2hlZXQqPihwYXJlbnQpOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRTdHlsZVNoZWV0LT5s
ZW5ndGgoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgIH0KLSAg
ICByZXR1cm4gcGFyZW50U3R5bGVTaGVldDsKLX0KLQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
b25NYXRjaEpvYnNUaW1lcihUaW1lcjxJbnNwZWN0b3JET01BZ2VudD4qKQogewogICAgIGlmICgh
bV9wZW5kaW5nTWF0Y2hKb2JzLnNpemUoKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmgKaW5kZXggOTc1MWU4ZS4uN2E5ZjZiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIGdldElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+
KiBzdHlsZXMpOwogICAgICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGUobG9uZyBub2RlSWQsIFJl
ZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQgZ2V0U3R5bGVTaGVl
dChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHN0eWxlU2hlZXRP
YmplY3QpOwotICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMobG9uZyBzdHlsZVNoZWV0SWQsIFJl
ZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJ1bGVSYW5nZSk7CisgICAgICAgIHZvaWQgZ2V0U3R5bGVT
b3VyY2VEYXRhKGxvbmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGRhdGFPYmpl
Y3QpOwogICAgICAgICB2b2lkIGFwcGx5U3R5bGVUZXh0KGxvbmcgc3R5bGVJZCwgY29uc3QgU3Ry
aW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBib29sKiBzdWNjZXNz
LCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZU9iamVjdCwgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiogY2hhbmdlZFByb3BlcnRpZXMpOwogICAgICAgICB2b2lkIHNldFN0eWxlVGV4dChsb25n
IHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCwgYm9vbCogc3VjY2Vzcyk7CiAgICAgICAg
IHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7CkBAIC0xNDgsNyArMTQ4LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNvcHlOb2RlKGxvbmcgbm9kZUlkKTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0KiBnZXRQYXJlbnRT
dHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qKTsKICAgICAgICAgdm9pZCBzdGFydExpc3Rl
bmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogICAgICAgICB2b2lkIHN0b3BMaXN0ZW5pbmcoRG9j
dW1lbnQqIGRvY3VtZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67668</attachid>
            <date>2010-09-15 06:08:59 -0700</date>
            <delta_ts>2010-09-15 10:32:23 -0700</delta_ts>
            <desc>[PATCH] Include order fixed (case-sensitive)</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>60155</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNmRiNDc0Li4xN2I5MTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MTUgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTE1ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlAaW5mLnUtc3plZ2VkLmh1PgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwppbmRleCBl
ZjY5ZWU2Li40NTIxMGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCkBAIC0xLDcgKzEsMTQgQEAKIGJv
ZHkgewogICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICBmb286IGJhciAhCisKKyAgICBpbXBvcnRh
bnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovOwor
ICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OworICAgIGNvbG9yejogIiFpbXBvcnRhbnQiOwor
ICAgIGltcG9ydGFudDohaW1wb3J0YW50OworICAgIGNvbG9yOiAiYmFkY29sb3IiICEgaW1wb3J0
YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovOwogfQogCi0vKiBjb21t
ZW50IGJlZm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9y
ICovey8qIGNvbW1lbnQgKi9jb2xvcjogIzAwMDt9LyogY29tbWVudCAqLworLyogY29tbWVudCBi
ZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3sv
KiBjb21tZW50ICovY29sb3I6ICNGMDBCQUE7em9vOm1vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1
bnJlY29nbml6ZWQgcHJvcGVydHkgKi99LyogY29tbWVudCAqLwogCi1ib2R5Lm1haW4ye2JhY2tn
cm91bmQ6IGdyZWVuO30KK2JvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW4gLyogdmFsdWUgIWlt
cG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBv
cnRhbnQgKi99CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291
cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0CmluZGV4IGRkYTY3YWQuLmU0ZDMzZDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDcgKzEsMjMgQEAKLVRlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBv
ZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHJ1bGUgYm9kaWVzLgorVGVzdHMg
dGhhdCBwcm9wZXIgZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9y
dGVkIGZvciBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9wZXJ0aWVzLgogCi1ib2R5OiBb
NS0yOF0KLWJvZHkubWFpbjE6IFs5OC0xMjRdCi1ib2R5Lm1haW4yOiBbMTUwLTE2OV0KLWJvZHkg
eyYgICAgZm9udC1zaXplOiAxMnB4OyZ9JiYvKiBjb21tZW50IGJlZm9yZSBzZWxlY3RvciAqL2Jv
ZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9yICovey8qIGNvbW1lbnQgKi9jb2xvcjog
IzAwMDt9LyogY29tbWVudCAqLyYmYm9keS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9JgorYm9k
eTogWzYtMjY2XQorWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXQorWydmb28nOidiYXIgIQor
CisgICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkg
V2ViQ29yZSAqLycgIWltcG9ydGFudCBub24tcGFyc2VkXSBAWzI2LTEwNF0KK1snaGVpZ2h0Jzon
MTAwJSAhaW1wb3J0YW50JyAhaW1wb3J0YW50XSBAWzEwOS0xMzNdCitbJ2NvbG9yeic6JyIhaW1w
b3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxMzgtMTU5XQorWydpbXBvcnRhbnQnOicnIG5vbi1wYXJz
ZWRdIEBbMTY0LTE3NF0KK1snY29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2Qg
cHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyAhaW1wb3J0YW50XSBAWzE5MC0yNTldCiti
b2R5Lm1haW4xOiBbMzM3LTQxOF0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0KK1snem9v
JzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9u
LXBhcnNlZF0gQFsyOC04MV0KK2JvZHkubWFpbjI6IFs0NDUtNTQwXQorWydiYWNrZ3JvdW5kJzon
Z3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2Vt
aWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8nICFpbXBvcnRhbnRdIEBbMC05NV0KK2JvZHkubWFp
bnBhZ2U6IFsxNy0xNDldCitbJ3RleHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzUtMjddCitbJ2Jh
ZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFsxMDctMTMxXQorZWxlbWVudC5z
dHlsZTogWzAtMzFdCitbJ2ZvbnQtd2VpZ2h0Jzonbm9ybWFsJ10gQFswLTIwXQorWyd3aWR0aCc6
JzgwJSddIEBbMjEtMzFdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMtc291cmNlLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291
cmNlLW9mZnNldHMuaHRtbAppbmRleCAwNTMzNjExLi40MmViNjAxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCkBAIC0zNSw1NSArMzUs
NDMgQEAgZnVuY3Rpb24gZnJvbnRlbmRfcnVuVGVzdCh0ZXN0Q29udHJvbGxlcikKICAgICAgICAg
ZnVuY3Rpb24gc3R5bGVzQ2FsbGJhY2sodGVzdENvbnRyb2xsZXIsIHN0eWxlcykKICAgICAgICAg
ewogICAgICAgICAgICAgdmFyIG1hdGNoZWRDU1NSdWxlcyA9IHN0eWxlcy5tYXRjaGVkQ1NTUnVs
ZXM7Ci0gICAgICAgICAgICB2YXIgcGFyZW50U3R5bGVTaGVldElkID0gbWF0Y2hlZENTU1J1bGVz
WzBdLnN0eWxlLnBhcmVudFN0eWxlU2hlZXRJZDsKLSAgICAgICAgICAgIGlmICghcGFyZW50U3R5
bGVTaGVldElkKSB7Ci0gICAgICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNo
KCJCQUQgU1RZTEVTSEVFVCBJRDogIiArIHBhcmVudFN0eWxlU2hlZXRJZCk7Ci0gICAgICAgICAg
ICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRzKTsK
LSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IG1hdGNoZWRDU1NSdWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBydWxl
ID0gbWF0Y2hlZENTU1J1bGVzW2ldOworICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Z2V0U3R5bGVTb3VyY2VEYXRhKHJ1bGUuc3R5bGUuaWQsIGZyb250ZW5kX3N0eWxlRGF0YVJlY2Vp
dmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIsIHJ1bGUsIGZhbHNlKSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFJ1bGVSYW5nZXMocGFyZW50U3R5
bGVTaGVldElkLCBmcm9udGVuZF9ydWxlUmFuZ2VzUmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29u
dHJvbGxlciwgcGFyZW50U3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsZXMpKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTb3VyY2VEYXRhKHN0eWxlcy5pbmxpbmVTdHls
ZS5pZCwgZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxl
ciwgc3R5bGVzLmlubGluZVN0eWxlLCB0cnVlKSk7CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5nZXRTdHlsZXMoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHku
aWQsIHRydWUsIHN0eWxlc0NhbGxiYWNrLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKICAg
ICB9KTsKIH0KIAotZnVuY3Rpb24gZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkKHRlc3RDb250
cm9sbGVyLCBzdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcywgcnVsZVJhbmdlcykKK2Z1bmN0
aW9uIGZyb250ZW5kX3N0eWxlRGF0YVJlY2VpdmVkKHRlc3RDb250cm9sbGVyLCBydWxlT3JTdHls
ZSwgc2hvdWxkQmFpbCwgZGF0YSkKIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hdGNoZWRD
U1NSdWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgcnVsZSA9IG1hdGNoZWRDU1NSdWxl
c1tpXTsKLSAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHJ1bGUuc2VsZWN0b3JU
ZXh0ICsgIjogWyIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5nZS5zdGFydCAr
ICItIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLmVuZCArICJdIik7Cisg
ICAgdmFyIGlzUnVsZSA9ICEhKHJ1bGVPclN0eWxlLnN0eWxlKTsKKyAgICB0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzLnB1c2goKGlzUnVsZSA/IHJ1bGVPclN0eWxlLnNlbGVjdG9yVGV4dCA6ICJlbGVt
ZW50LnN0eWxlIikgKyAiOiBbIiArIGRhdGEuYm9keVJhbmdlLnN0YXJ0ICsgIi0iICsgZGF0YS5i
b2R5UmFuZ2UuZW5kICsgIl0iKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEucHJvcGVy
dHlEYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBwcm9wZXJ0eURhdHVtID0gZGF0YS5w
cm9wZXJ0eURhdGFbaV07CisgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiWyci
ICsgcHJvcGVydHlEYXR1bS5uYW1lICsgIic6JyIgKyBwcm9wZXJ0eURhdHVtLnZhbHVlICsgIici
ICsgKHByb3BlcnR5RGF0dW0uaW1wb3J0YW50ID8gIiAhaW1wb3J0YW50IiA6ICIiKSArIChwcm9w
ZXJ0eURhdHVtLnBhcnNlZCA/ICIiIDogIiBub24tcGFyc2VkIikgKyJdIEBbIiArIHByb3BlcnR5
RGF0dW0uc3RhcnQgKyAiLSIgKyBwcm9wZXJ0eURhdHVtLmVuZCArICJdIik7CiAgICAgfQotICAg
IEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIGZyb250ZW5kX2hh
bmRsZVN0eWxlU2hlZXQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwotfQotCi1mdW5jdGlv
biBmcm9udGVuZF9oYW5kbGVTdHlsZVNoZWV0KHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0KQot
ewotICAgIHZhciB1cmwgPSBzdHlsZVNoZWV0LmhyZWY7Ci0gICAgaWYgKHVybCAhPT0gIiIpIHsK
LSAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFwW3VybF07
Ci0gICAgICAgIGlmICghcmVzb3VyY2UpIHsKLSAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJl
c3VsdHMucHVzaCgiTk8gUkVTT1VSQ0UgRk9SIFVSTDogIiArIHVybCk7Ci0gICAgICAgICAgICB0
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5nZXRSZXNvdXJj
ZUNvbnRlbnQocmVzb3VyY2UuaWRlbnRpZmllciwgZnJvbnRlbmRfc3R5bGVTaGVldFRleHRSZWNl
aXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
dGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJFTVBUWSBTVFlMRVNIRUVUIEhSRUYiKTsKKyAg
ICBpZiAoc2hvdWxkQmFpbCkKICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0
Q29udHJvbGxlci5yZXN1bHRzKTsKLSAgICB9CiB9CiAKLWZ1bmN0aW9uIGZyb250ZW5kX3N0eWxl
U2hlZXRUZXh0UmVjZWl2ZWQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXRUZXh0KQotewotICAg
IHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaChzdHlsZVNoZWV0VGV4dC5yZXBsYWNlKC9cbi9n
LCAiJiIpKTsKLSAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJl
c3VsdHMpOwotfQogPC9zY3JpcHQ+CisKKzxzdHlsZT4KKworYm9keS5tYWlucGFnZSB7CisgICAg
dGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKiBhdCBsZWFzdCBvbmUgdmFsaWQgcHJvcGVydHkgaXMg
bmVjZXNzYXJ5IGZvciBXZWJDb3JlIHRvIG1hdGNoIGEgcnVsZSAqLworICAgIGJhZHByb3BlcnR5
OiAxYmFkdmFsdWUxOworfQorCis8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBjbGFzcz0ibWFp
bjEgbWFpbjIiIG9ubG9hZD0ib25sb2FkKCkiPgorPGJvZHkgY2xhc3M9Im1haW4xIG1haW4yIG1h
aW5wYWdlIiBvbmxvYWQ9Im9ubG9hZCgpIiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsgd2lk
dGg6IDgwJSI+CiA8cD4KLVRlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRp
b25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHJ1bGUgYm9kaWVzLgorVGVzdHMgdGhhdCBwcm9wZXIg
ZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9ydGVkIGZvciBDU1Mg
c3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9wZXJ0aWVzLgogPC9wPgogCiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiYzU2
NGQuLjIwZTRhOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTAtMDktMTUgIEFsZXhhbmRlciBQYXZsb3Yg
IDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNlZCBwcm9wZXJ0aWVzIGZvciBzdHls
ZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMKKworICAgICAgICBUaGlzIGNoYW5n
ZToKKyAgICAgICAgLSBFbmFibGVzIEluc3BlY3RvckNTU1N0b3JlIHRvIGV4dHJhY3QgQ1NTIHN0
eWxlc2hlZXQgdGV4dCBmb3IgYWxsIHNvdXJjZS1iYXNlZCBzdHlsZXNoZWV0cywKKyAgICAgICAg
ICBldmVuIHdpdGggdGhlIHJlc291cmNlIHRyYWNraW5nIHR1cm5lZCBvZmYuCisgICAgICAgIC0g
QWRkcyB0byBDU1NQYXJzZXIgYSBjYXBhYmlsaXR5IG9mIHNvdXJjZS1yZWxhdGVkIHN0eWxlIGRl
Y2xhcmF0aW9uIGRhdGEgZXh0cmFjdGlvbjoKKyAgICAgICAgICAqIFN0YXJ0L2VuZCBzb3VyY2Ug
b2Zmc2V0cyBmb3IgYSBkZWNsYXJhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBzdHlsZXNo
ZWV0IHN0YXJ0IG9yIHRoZSAic3R5bGUiIGF0dHJpYnV0ZSB2YWx1ZS4KKyAgICAgICAgICAqIFN0
YXJ0L2VuZCBzb3VyY2Ugb2Zmc2V0cyBmb3IgQ1NTIHByb3BlcnRpZXMsIHJlbGF0aXZlIHRvIHRo
ZSBkZWNsYXJhdGlvbiBzdGFydC4KKyAgICAgICAgICAqIENTUyBwcm9wZXJ0eSBkYXRhOiBuYW1l
LCB2YWx1ZSwgcHJpb3JpdHksIFdlYkNvcmUgcGFyc2FiaWxpdHkgKGkuZS4gaWYgdGhlIHByb3Bl
cnR5IGlzIHVuZGVyc3Rvb2QgYnkgV2ViQ29yZSkuCisgICAgICAgIC0gUHJvdmlkZXMgdGhlIGV4
dHJhY3RlZCBkYXRhIHRvIHRoZSBXZWJJbnNwZWN0b3IgZnJvbnRlbmQgdmlhIEluc3BlY3RvckRP
TUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6bm9kZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjptYXJrUHJvcGVydHlTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6Om1hcmtQcm9wZXJ0eUVuZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyZXNldFByb3BlcnR5TWFya3MpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eURhdHVtLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQcm9wZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eURhdHVtOjp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VSYW5nZTo6U291cmNl
UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlUmFuZ2U6Om9wZXJhdG9yPSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtOjppbml0KToKKyAgICAgICAgKFdURjo6Ojpl
bXB0eVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlEYXR1bS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06On5DU1NQcm9wZXJ0eURhdHVtKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5RGF0dW06Om9wZXJhdG9yPT0pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bTo6b3BlcmF0b3IhPSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eURhdHVtSGFzaDo6aGFzaCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVt
SGFzaDo6ZXF1YWwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NTdG9yZTo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
U3RvcmU6OnN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0
b3JlOjpyZXNvdXJjZVN0eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNTU1N0b3JlOjppbmxpbmVTdHlsZVNoZWV0VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVFbGVtZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpyZXNvdXJjZUNvbnRlbnRGb3JVUkwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5
bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oOgorCiAyMDEwLTA5
LTE1ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDM5NGFiNi4uMmNlMTFhYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEw
MDgsNiArMTAwOCw4IEBACiAgICAgICAgICAgICAnY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5LmNwcCcsCiAgICAgICAgICAgICAn
Y3NzL0NTU1Byb3BlcnR5LmgnLAorICAgICAgICAgICAgJ2Nzcy9DU1NQcm9wZXJ0eURhdHVtLmNw
cCcsCisgICAgICAgICAgICAnY3NzL0NTU1Byb3BlcnR5RGF0dW0uaCcsCiAgICAgICAgICAgICAn
Y3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVy
dHlMb25naGFuZC5oJywKICAgICAgICAgICAgICdjc3MvQ1NTUXVpcmtQcmltaXRpdmVWYWx1ZS5o
JywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJv
CmluZGV4IGMzODRmMzMuLjAzMjk4NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNjI4LDYgKzYyOCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIFwKICAgICBjc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwIFwKICAgICBjc3MvQ1NTUHJvcGVydHkuY3BwIFwKKyAgICBjc3MvQ1NTUHJvcGVydHlE
YXR1bS5jcHAgXAogICAgIGNzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCBcCiAgICAgY3NzL0NT
U1JlZmxlY3RWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NSdWxlLmNwcCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1YjdkYTZlLi5jZWQ5ZTVjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI5MzkzLDYgKzI5MzkzLDE0IEBACiAJCQkJPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9w
ZXJ0eURhdHVtLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGNzc1xDU1NQcm9wZXJ0eURhdHVtLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlMb25naGFu
ZC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1YjBhZTg1Li43MTU0OGM2IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ1Myw2ICsxNDUzLDggQEAKIAkJODFCRTIw
RDMxMUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJ
REJDdXJzb3IuaCAqLzsgfTsKIAkJODJCNjU4OTgxMTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3Rv
ckNTU1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MkI2NTg5QTExODlF
NDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIElu
c3BlY3RvckNTU1N0b3JlLmNwcCAqLzsgfTsKKwkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8q
IENTU1Byb3BlcnR5RGF0dW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODJFM0Q4REMxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0u
Y3BwICovOyB9OworCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1
bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJFM0Q4
REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5RGF0dW0uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NDE5RDJBNzEyMEQ5MkQwMDAxNDFG
OEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbS5oICovOyB9OwogCQk4NDE5RDJBODEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDg0MTlEMkE1MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxk
ZXIuY3BwICovOyB9OwogCQk4NDE5RDJBOTEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVT
dHJlYW1CdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVy
LmggKi87IH07CkBAIC03NDA5LDYgKzc0MTEsOCBAQAogCQk4MUJFMjBBODExRjRCNjZGMDA5MTVE
RkEgLyogSlNJREJDdXJzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
REJDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJCNjU4OTcxMTg5RTM5
MjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc3BlY3RvckNTU1N0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgyQjY1ODk5MTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDU1NTdG9yZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAv
KiBDU1NQcm9wZXJ0eURhdHVtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENTU1Byb3BlcnR5RGF0dW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlEYXR1bS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NQcm9wZXJ0eURhdHVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg0MTlEMkE0MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0
cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoQnl0ZVN0cmVh
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5RDJBNTEyMEQ5MkQwMDAxNDFG
OEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0
ZVN0cmVhbUJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0
aEJ5dGVTdHJlYW1CdWlsZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzA2
MCw2ICsxNzA2NCw4IEBACiAJCQkJRTFFRDhBQzIwQ0M0OUJFMDAwQkZDNTU3IC8qIENTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaCAqLywKIAkJCQlBODBFNkNDRDBBMTk4OUNBMDA3RkI4QzUgLyog
Q1NTUHJvcGVydHkuY3BwICovLAogCQkJCUE4MEU2Q0Q1MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NQ
cm9wZXJ0eS5oICovLAorCQkJCTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0
eURhdHVtLmNwcCAqLywKKwkJCQk4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVy
dHlEYXR1bS5oICovLAogCQkJCTBGNkVDRDQ0MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0
eUxvbmdoYW5kLmNwcCAqLywKIAkJCQkwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJv
cGVydHlMb25naGFuZC5oICovLAogCQkJCUJDRUE0Nzg5MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLmluICovLApAQCAtMjA1NjAsNiArMjA1NjYsNyBAQAogCQkJCTg5M0M0N0E4
MTIzODkwOEIwMDJCM0Q4NiAvKiBGaWxlV3JpdGVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCTg5M0M0N0I4MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODkzQzQ3QkMxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MkUzRDhERjEyMkVBMEQxMDAzQUU1QkMgLyogQ1NT
UHJvcGVydHlEYXR1bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5
MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Uy
QTMwNzEyM0U5REMwMDA5RkUxMkEgLyogSFRNTFBhcnNlcklkaW9tcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwpAQCAtMjMwMzYsNiArMjMwNDMsNyBAQAogCQkJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5M0M0
N0I3MTIzOEEwOTkwMDJCM0Q4NiAvKiBKU0ZpbGVDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4OTNDNDdCQjEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3Bl
cnR5RGF0dW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMkEzMDYxMjNFOURDMDAwOUZFMTJB
IC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3REYxMjNF
RjRBOTAwMkIzRDg2IC8qIEpTRGlyZWN0b3J5RW50cnlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODkzQzQ3Q0MxMjNFRUJBMjAwMkIzRDg2IC8qIEpTRW50cnlDdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkgYi9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkKaW5kZXggODZhMmY3Yy4uYzU1Zjk5OCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55CisrKyBiL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueQpAQCAt
MzE0LDcgKzMxNCw3IEBAIHdlYmtpdF9rZXlmcmFtZV9ydWxlOgogOwogCiB3ZWJraXRfZGVjbHM6
Ci0gICAgV0VCS0lUX0RFQ0xTX1NZTSAneycgbWF5YmVfc3BhY2UgZGVjbGFyYXRpb25fbGlzdCAn
fScgeworICAgIFdFQktJVF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJh
dGlvbiBkZWNsYXJhdGlvbl9saXN0ICd9JyB7CiAgICAgICAgIC8qIGNhbiBiZSBlbXB0eSAqLwog
ICAgIH0KIDsKQEAgLTkwMyw4ICs5MDMsMTUgQEAgdW5hcnlfb3BlcmF0b3I6CiAgIHwgJysnIHsg
JCQgPSAxOyB9CiAgIDsKIAorbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0aW9uOgorICAgIG1h
eWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2Vy
Kj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQoKTsKKyAgICB9CisgIDsK
KwogcnVsZXNldDoKLSAgICBzZWxlY3Rvcl9saXN0ICd7JyBtYXliZV9zcGFjZSBkZWNsYXJhdGlv
bl9saXN0IGNsb3NpbmdfYnJhY2UgeworICAgIHNlbGVjdG9yX2xpc3QgJ3snIG1heWJlX3NwYWNl
X2JlZm9yZV9kZWNsYXJhdGlvbiBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgewogICAg
ICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOwogICAg
ICAgICAkJCA9IHAtPmNyZWF0ZVN0eWxlUnVsZSgkMSk7CiAgICAgfQpAQCAtMTM1NSw2ICsxMzYy
LDggQEAgZGVjbGFyYXRpb25fbGlzdDoKIAogZGVjbF9saXN0OgogICAgIGRlY2xhcmF0aW9uICc7
JyBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1Bh
cnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAg
ICQkID0gJDE7CiAgICAgfQogICAgIHwgZGVjbGFyYXRpb24gaW52YWxpZF9ibG9ja19saXN0IG1h
eWJlX3NwYWNlIHsKQEAgLTEzNjQsMTIgKzEzNzMsMTYgQEAgZGVjbF9saXN0OgogICAgICAgICAk
JCA9IGZhbHNlOwogICAgIH0KICAgICB8IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAg
IENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAg
IHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAg
IHwgZXJyb3IgaW52YWxpZF9ibG9ja19saXN0IGVycm9yICc7JyBtYXliZV9zcGFjZSB7CiAgICAg
ICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwgZGVjbF9saXN0IGRlY2xhcmF0aW9uICc7JyBt
YXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNl
cio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQk
ID0gJDE7CiAgICAgICAgIGlmICgkMikKICAgICAgICAgICAgICQkID0gJDI7CkBAIC0xMzg2LDE1
ICsxMzk5LDIxIEBAIGRlY2xhcmF0aW9uOgogICAgIHByb3BlcnR5ICc6JyBtYXliZV9zcGFjZSBl
eHByIHByaW8gewogICAgICAgICAkJCA9IGZhbHNlOwogICAgICAgICBDU1NQYXJzZXIqIHAgPSBz
dGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBib29sIGlzUHJvcGVydHlQ
YXJzZWQgPSBmYWxzZTsKICAgICAgICAgaWYgKCQxICYmICQ0KSB7CiAgICAgICAgICAgICBwLT5t
X3ZhbHVlTGlzdCA9IHAtPnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7CiAgICAgICAgICAgICBp
bnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHAtPm1fbnVtUGFyc2VkUHJvcGVydGllczsKICAgICAg
ICAgICAgICQkID0gcC0+cGFyc2VWYWx1ZSgkMSwgJDUpOwotICAgICAgICAgICAgaWYgKCEkJCkK
KyAgICAgICAgICAgIGlmICghJCQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8
aW50PihwLT5tX251bVBhcnNlZFByb3BlcnRpZXMpID09IG9sZFBhcnNlZFByb3BlcnRpZXMpCisg
ICAgICAgICAgICAgICAgICAgIGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwogICAgICAgICAgICAg
ICAgIHAtPnJvbGxiYWNrTGFzdFByb3BlcnRpZXMocC0+bV9udW1QYXJzZWRQcm9wZXJ0aWVzIC0g
b2xkUGFyc2VkUHJvcGVydGllcyk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBpc1Byb3BlcnR5UGFyc2VkID0gdHJ1ZTsKICAgICAgICAgICAgIGRlbGV0ZSBwLT5tX3ZhbHVl
TGlzdDsKICAgICAgICAgICAgIHAtPm1fdmFsdWVMaXN0ID0gMDsKICAgICAgICAgfQorICAgICAg
ICBwLT5tYXJrUHJvcGVydHlFbmQoJDUsIGlzUHJvcGVydHlQYXJzZWQpOwogICAgIH0KICAgICB8
CiAgICAgdmFyaWFibGVfcmVmZXJlbmNlIG1heWJlX3NwYWNlIHsKQEAgLTE0MTcsMTEgKzE0MzYs
MTUgQEAgZGVjbGFyYXRpb246CiAgICAgICAgIC8qIFRoZSBkZWZhdWx0IG1vdmFibGUgdHlwZSB0
ZW1wbGF0ZSBoYXMgbGV0dGVyLXNwYWNpbmc6IC5ub25lOyAgSGFuZGxlIHRoaXMgYnkgbG9va2lu
ZyBmb3IKICAgICAgICAgZXJyb3IgdG9rZW5zIGF0IHRoZSBzdGFydCBvZiBhbiBleHByLCByZWNv
dmVyIHRoZSBleHByIGFuZCB0aGVuIHRyZWF0IGFzIGFuIGVycm9yLCBjbGVhbmluZwogICAgICAg
ICB1cCBhbmQgZGVsZXRpbmcgdGhlIHNoaWZ0ZWQgZXhwci4gICovCisgICAgICAgIENTU1BhcnNl
ciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQ
cm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAg
ICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIGV4cHIgcHJpbyBlcnJvciB7CiAgICAg
ICAgIC8qIFdoZW4gd2UgZW5jb3VudGVyIHNvbWV0aGluZyBsaWtlIHAge2NvbG9yOiByZWQgIWlt
cG9ydGFudCBmYWlsO30gd2Ugc2hvdWxkIGRyb3AgdGhlIGRlY2xhcmF0aW9uICovCisgICAgICAg
IENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAg
IHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNlOwog
ICAgIH0KICAgICB8CkBAIC0xNDMyLDExICsxNDU1LDE1IEBAIGRlY2xhcmF0aW9uOgogICAgIHwK
ICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgewogICAgICAgICAvKiBkaXYgeyBmb250LWZh
bWlseTogfSBKdXN0IHJlZHVjZSBhd2F5IHRoaXMgcHJvcGVydHkgd2l0aCBubyB2YWx1ZS4gKi8K
KyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsK
KyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQkID0g
ZmFsc2U7CiAgICAgfQogICAgIHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgZXJyb3Ig
ewogICAgICAgICAvKiBpZiB3ZSBjb21lIGFjcm9zcyBydWxlcyB3aXRoIGludmFsaWQgdmFsdWVz
IGxpa2UgdGhpcyBjYXNlOiBwIHsgd2VpZ2h0OiAqOyB9LCBqdXN0IGRpc2NhcmQgdGhlIHJ1bGUg
Ki8KKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2VyKj4ocGFyc2Vy
KTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICQk
ID0gZmFsc2U7CiAgICAgfQogICAgIHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uLmggYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbi5oCmluZGV4IGY3NzU5ZjQuLmQ2MjliY2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uaApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dE5vZGUoTm9kZSogbm9kZSkgeyBtX25vZGUgPSBub2RlOyB9CiAKKyAgICBOb2RlKiBub2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9ub2RlOyB9CisKICAgICB2aXJ0dWFsIGJvb2wgaXNNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgU3Ry
aW5nIGNzc1RleHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDdjMzU3MzkuLjc2MzJlOWMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcApAQCAtMTQ3LDcgKzE0NywxMCBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29s
IHN0cmljdFBhcnNpbmcpCiAgICAgLCBtX2RlZmF1bHROYW1lc3BhY2Uoc3RhckF0b20pCiAgICAg
LCBtX3J1bGVCb2R5U3RhcnRPZmZzZXQoMCkKICAgICAsIG1fcnVsZUJvZHlFbmRPZmZzZXQoMCkK
LSAgICAsIG1fcnVsZVJhbmdlcygwKQorICAgICwgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0KFVJTlRf
TUFYKQorICAgICwgbV9wcm9wZXJ0eUVuZE9mZnNldChVSU5UX01BWCkKKyAgICAsIG1fcnVsZVJh
bmdlTWFwKDApCisgICAgLCBtX2N1cnJlbnRTdHlsZURhdGEoMCkKICAgICAsIG1fZGF0YSgwKQog
ICAgICwgeXlfc3RhcnQoMSkKICAgICAsIG1fbGluZU51bWJlcigwKQpAQCAtMTU5LDYgKzE2Miw3
IEBAIENTU1BhcnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICNpZiBZWURFQlVH
ID4gMAogICAgIGNzc3l5ZGVidWcgPSAxOwogI2VuZGlmCisgICAgQ1NTUHJvcGVydHlEYXR1bTo6
aW5pdCgpOwogfQogCiBDU1NQYXJzZXI6On5DU1NQYXJzZXIoKQpAQCAtMjIxLDE2ICsyMjUsMTkg
QEAgdm9pZCBDU1NQYXJzZXI6OnNldHVwUGFyc2VyKGNvbnN0IGNoYXIqIHByZWZpeCwgY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIGNvbnN0IGNoYXIKICAgICByZXNldFJ1bGVCb2R5TWFya3MoKTsKIH0K
IAotdm9pZCBDU1NQYXJzZXI6OnBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCogc2hlZXQsIGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBpbnQgc3RhcnRMaW5lTnVtYmVyLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1
bGVSYW5nZU1hcCkKK3ZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KENTU1N0eWxlU2hlZXQqIHNo
ZWV0LCBjb25zdCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51bWJlciwgU3R5bGVSdWxl
UmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCkKIHsKICAgICBtX3N0eWxlU2hlZXQgPSBzaGVldDsKICAg
ICBtX2RlZmF1bHROYW1lc3BhY2UgPSBzdGFyQXRvbTsgLy8gUmVzZXQgdGhlIGRlZmF1bHQgbmFt
ZXNwYWNlLgotICAgIG1fcnVsZVJhbmdlcyA9IHJ1bGVSYW5nZU1hcDsKKyAgICBtX3J1bGVSYW5n
ZU1hcCA9IHJ1bGVSYW5nZU1hcDsKKyAgICBpZiAocnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1
cnJlbnRTdHlsZURhdGEgPSBDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSgpOwogCiAgICAgbV9s
aW5lTnVtYmVyID0gc3RhcnRMaW5lTnVtYmVyOwogICAgIHNldHVwUGFyc2VyKCIiLCBzdHJpbmcs
ICIiKTsKICAgICBjc3N5eXBhcnNlKHRoaXMpOwotICAgIG1fcnVsZVJhbmdlcyA9IDA7CisgICAg
bV9ydWxlUmFuZ2VNYXAgPSAwOworICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IDA7CiAgICAgbV9y
dWxlID0gMDsKIH0KIApAQCAtMzI3LDEwICszMzQsMTQgQEAgdm9pZCBDU1NQYXJzZXI6OnBhcnNl
U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzdHJpbmcsIERvY3VtZW50KiBkb2MsIENTU1NlbGVjdG9y
TGkKICAgICBtX3NlbGVjdG9yTGlzdEZvclBhcnNlU2VsZWN0b3IgPSAwOwogfQogCi1ib29sIENT
U1BhcnNlcjo6cGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogZGVj
bGFyYXRpb24sIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVj
bGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBT
dHJpbmcmIHN0cmluZywgQ1NTU3R5bGVTb3VyY2VEYXRhKiBzdHlsZVNvdXJjZURhdGEpCiB7Cisg
ICAgLy8gTGVuZ3RoIG9mIHRoZSAiQC13ZWJraXQtZGVjbHN7IiBwcmVmaXguCisgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIHByZWZpeExlbmd0aCA9IDE1OworCiAgICAgQVNTRVJUKCFkZWNsYXJh
dGlvbi0+c3R5bGVzaGVldCgpIHx8IGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCktPmlzQ1NTU3R5
bGVTaGVldCgpKTsKICAgICBtX3N0eWxlU2hlZXQgPSBzdGF0aWNfY2FzdDxDU1NTdHlsZVNoZWV0
Kj4oZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKSk7CisgICAgbV9jdXJyZW50U3R5bGVEYXRhID0g
c3R5bGVTb3VyY2VEYXRhOwogCiAgICAgc2V0dXBQYXJzZXIoIkAtd2Via2l0LWRlY2xzeyIsIHN0
cmluZywgIn0gIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKQEAgLTM0NSw2ICszNTYsMTcgQEAg
Ym9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24qIGRlY2xhcmF0aW9uLCBjb25zdAogICAgICAgICBjbGVhclByb3BlcnRpZXMoKTsKICAgICB9
CiAKKyAgICBpZiAobV9jdXJyZW50U3R5bGVEYXRhKSB7CisgICAgICAgIG1fY3VycmVudFN0eWxl
RGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc3RhcnQgPSAwOworICAgICAgICBtX2N1cnJlbnRTdHlsZURh
dGEtPnN0eWxlQm9keVJhbmdlLmVuZCA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICAgICAgZm9yIChW
ZWN0b3I8c3RkOjpwYWlyPENTU1Byb3BlcnR5RGF0dW0sIFNvdXJjZVJhbmdlPiA+OjppdGVyYXRv
ciBpdCA9IG1fY3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmJlZ2luKCk7IGl0ICE9IG1f
Y3VycmVudFN0eWxlRGF0YS0+cHJvcGVydHlEYXRhLmVuZCgpOyArK2l0KSB7CisgICAgICAgICAg
ICAoKml0KS5zZWNvbmQuc3RhcnQgLT0gcHJlZml4TGVuZ3RoOworICAgICAgICAgICAgKCppdCku
c2Vjb25kLmVuZCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAo
IW1fcnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAwOwogICAgIHJl
dHVybiBvazsKIH0KIApAQCAtNTQxNiw4ICs1NDM4LDEyIEBAIENTU1J1bGUqIENTU1BhcnNlcjo6
Y3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3RvcnMpCiAgICAgICAg
IHJ1bGUtPnNldERlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUo
cnVsZS5nZXQoKSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCBtX251bVBhcnNlZFByb3BlcnRpZXMpKTsK
ICAgICAgICAgcmVzdWx0ID0gcnVsZS5nZXQoKTsKICAgICAgICAgbV9wYXJzZWRTdHlsZU9iamVj
dHMuYXBwZW5kKHJ1bGUucmVsZWFzZSgpKTsKLSAgICAgICAgaWYgKG1fcnVsZVJhbmdlcykKLSAg
ICAgICAgICAgIG1fcnVsZVJhbmdlcy0+c2V0KHJlc3VsdCwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1
bnNpZ25lZD4obV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5kT2Zmc2V0KSk7Cisg
ICAgICAgIGlmIChtX3J1bGVSYW5nZU1hcCkgeworICAgICAgICAgICAgQVNTRVJUKG1fY3VycmVu
dFN0eWxlRGF0YSk7CisgICAgICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnN0eWxlQm9keVJh
bmdlID0gU291cmNlUmFuZ2UobV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5kT2Zm
c2V0KTsKKyAgICAgICAgICAgIG1fcnVsZVJhbmdlTWFwLT5zZXQocmVzdWx0LCBtX2N1cnJlbnRT
dHlsZURhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IENT
U1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIH0KICAgICB9CiAgICAgcmVzZXRS
dWxlQm9keU1hcmtzKCk7CiAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CkBAIC01NjcwLDcgKzU2OTYs
OSBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlTGFzdFNlbGVjdG9yTGluZUFuZFBvc2l0aW9uKCkK
IHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgdW5zaWduZWQgb2Zm
c2V0ID0geXl0ZXh0IC0gbV9kYXRhOwotICAgIGlmICghbV9ydWxlQm9keVN0YXJ0T2Zmc2V0IHx8
IG9mZnNldCA8IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKKyAgICBpZiAoKnl5dGV4dCA9PSAneycp
CisgICAgICAgICsrb2Zmc2V0OyAvLyBTa2lwIHRoZSBydWxlIGJvZHkgb3BlbmluZyBicmFjZS4K
KyAgICBpZiAob2Zmc2V0ID4gbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KQogICAgICAgICBtX3J1bGVC
b2R5U3RhcnRPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTU2ODEsNiArNTcwOSwzOSBAQCB2b2lk
IENTU1BhcnNlcjo6bWFya1J1bGVCb2R5RW5kKCkKICAgICAgICAgbV9ydWxlQm9keUVuZE9mZnNl
dCA9IG9mZnNldDsKIH0KIAordm9pZCBDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KCkKK3sK
KyAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBtX2RhdGE7CisgICAgbV9wcm9wZXJ0eVN0
YXJ0T2Zmc2V0ID0gb2Zmc2V0OworfQorCit2b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5RW5k
KGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5UGFyc2VkKQoreworICAgIHVu
c2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBpZiAoKnl5dGV4dCA9PSAnOycp
IC8vIEluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3BlcnR5IHRleHQuCisgICAgICAgICsr
b2Zmc2V0OworICAgIG1fcHJvcGVydHlFbmRPZmZzZXQgPSBvZmZzZXQ7CisgICAgaWYgKG1fcHJv
cGVydHlTdGFydE9mZnNldCAhPSBVSU5UX01BWCAmJiBtX2N1cnJlbnRTdHlsZURhdGEpIHsKKyAg
ICAgICAgLy8gVGhpcyBzdHVmZiBpcyBvbmx5IGV4ZWN1dGVkIHdoZW4gdGhlIHN0eWxlIGRhdGEg
cmV0cmlldmFsIGlzIHJlcXVlc3RlZCBieSBjbGllbnQuCisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHN0YXJ0ID0gbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBl
bmQgPSBtX3Byb3BlcnR5RW5kT2Zmc2V0OworICAgICAgICBBU1NFUlQoc3RhcnQgPCBlbmQpOwor
ICAgICAgICBTdHJpbmcgcHJvcGVydHlTdHJpbmcgPSBTdHJpbmcobV9kYXRhICsgc3RhcnQsIGVu
ZCAtIHN0YXJ0KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgaWYgKHByb3BlcnR5U3RyaW5n
LmVuZHNXaXRoKCI7IiwgdHJ1ZSkpCisgICAgICAgICAgICBwcm9wZXJ0eVN0cmluZyA9IHByb3Bl
cnR5U3RyaW5nLmxlZnQocHJvcGVydHlTdHJpbmcubGVuZ3RoKCkgLSAxKTsKKyAgICAgICAgVmVj
dG9yPFN0cmluZz4gcHJvcGVydHlDb21wb25lbnRzOworICAgICAgICBzaXplX3QgY29sb25JbmRl
eCA9IHByb3BlcnR5U3RyaW5nLmZpbmQoIjoiKTsKKyAgICAgICAgQVNTRVJUKGNvbG9uSW5kZXgg
IT0gbm90Rm91bmQpOworCisgICAgICAgIFN0cmluZyBuYW1lID0gcHJvcGVydHlTdHJpbmcubGVm
dChjb2xvbkluZGV4KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgU3RyaW5nIHZhbHVlID0g
cHJvcGVydHlTdHJpbmcuc3Vic3RyaW5nKGNvbG9uSW5kZXggKyAxLCBwcm9wZXJ0eVN0cmluZy5s
ZW5ndGgoKSkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSByYW5n
ZSBpcyByZWxhdGl2ZSB0byB0aGUgZGVjbGFyYXRpb24gc3RhcnQgb2Zmc2V0LgorICAgICAgICBt
X2N1cnJlbnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5hcHBlbmQoCisgICAgICAgICAgICBzdGQ6
OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+KENTU1Byb3BlcnR5RGF0dW0obmFt
ZSwgdmFsdWUsIGlzSW1wb3J0YW50Rm91bmQsIGlzUHJvcGVydHlQYXJzZWQpLCBTb3VyY2VSYW5n
ZShtX3Byb3BlcnR5U3RhcnRPZmZzZXQgLSBtX3J1bGVCb2R5U3RhcnRPZmZzZXQsIG1fcHJvcGVy
dHlFbmRPZmZzZXQgLSBtX3J1bGVCb2R5U3RhcnRPZmZzZXQpKSk7CisgICAgfQorICAgIHJlc2V0
UHJvcGVydHlNYXJrcygpOworfQorCiBzdGF0aWMgaW50IGNzc1Byb3BlcnR5SUQoY29uc3QgVUNo
YXIqIHByb3BlcnR5TmFtZSwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghbGVuZ3RoKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaAppbmRleCA0N2YwYmVkLi41Yjg1ZTg1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjUsNiArMjUsNyBAQAog
CiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDU1NQYXJzZXJWYWx1ZXMuaCIKKyNpbmNs
dWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAj
aW5jbHVkZSAiTWVkaWFRdWVyeS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NSwx
OCArNTYsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgQ1NTUGFyc2VyIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIHR5cGVkZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBzdGQ6
OnBhaXI8dW5zaWduZWQsIHVuc2lnbmVkPiA+IFN0eWxlUnVsZVJhbmdlczsKLQogICAgICAgICBD
U1NQYXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nID0gdHJ1ZSk7CiAgICAgICAgIH5DU1NQYXJzZXIo
KTsKIAotICAgICAgICB2b2lkIHBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0cmlu
ZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAwLCBTdHlsZVJ1bGVSYW5nZXMqIHJ1bGVSYW5nZU1h
cCA9IDApOworICAgICAgICB2b2lkIHBhcnNlU2hlZXQoQ1NTU3R5bGVTaGVldCosIGNvbnN0IFN0
cmluZyYsIGludCBzdGFydExpbmVOdW1iZXIgPSAwLCBTdHlsZVJ1bGVSYW5nZU1hcCogcnVsZVJh
bmdlTWFwID0gMCk7CiAgICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VSdWxlKENTU1N0
eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmKTsKICAgICAgICAgUGFzc1JlZlB0cjxDU1NSdWxlPiBw
YXJzZUtleWZyYW1lUnVsZShDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CiAgICAgICAg
IGJvb2wgcGFyc2VWYWx1ZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGludCBwcm9wSWQs
IGNvbnN0IFN0cmluZyYsIGJvb2wgaW1wb3J0YW50KTsKICAgICAgICAgc3RhdGljIGJvb2wgcGFy
c2VDb2xvcihSR0JBMzImIGNvbG9yLCBjb25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9IGZhbHNl
KTsKICAgICAgICAgYm9vbCBwYXJzZUNvbG9yKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgICAgIGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYpOworICAgICAgICBib29sIHBhcnNlRGVj
bGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmLCBDU1NT
dHlsZVNvdXJjZURhdGEqIHN0eWxlU291cmNlRGF0YSA9IDApOwogICAgICAgICBib29sIHBhcnNl
TWVkaWFRdWVyeShNZWRpYUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKIAogICAgICAgICBEb2N1bWVu
dCogZG9jdW1lbnQoKSBjb25zdDsKQEAgLTI0NCwxMCArMjQzLDE2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgLy8gdG9rZW5pemVyIG1ldGhvZHMgYW5kIGRhdGEKICAgICAgICAgdW5z
aWduZWQgbV9ydWxlQm9keVN0YXJ0T2Zmc2V0OwogICAgICAgICB1bnNpZ25lZCBtX3J1bGVCb2R5
RW5kT2Zmc2V0OwotICAgICAgICBTdHlsZVJ1bGVSYW5nZXMqIG1fcnVsZVJhbmdlczsKKyAgICAg
ICAgdW5zaWduZWQgbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAgICB1bnNpZ25lZCBtX3By
b3BlcnR5RW5kT2Zmc2V0OworICAgICAgICBTdHlsZVJ1bGVSYW5nZU1hcCogbV9ydWxlUmFuZ2VN
YXA7CisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IG1fY3VycmVudFN0eWxlRGF0
YTsKICAgICAgICAgdm9pZCBtYXJrUnVsZUJvZHlTdGFydCgpOwogICAgICAgICB2b2lkIG1hcmtS
dWxlQm9keUVuZCgpOworICAgICAgICB2b2lkIG1hcmtQcm9wZXJ0eVN0YXJ0KCk7CisgICAgICAg
IHZvaWQgbWFya1Byb3BlcnR5RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3Bl
cnR5UGFyc2VkKTsKICAgICAgICAgdm9pZCByZXNldFJ1bGVCb2R5TWFya3MoKSB7IG1fcnVsZUJv
ZHlTdGFydE9mZnNldCA9IG1fcnVsZUJvZHlFbmRPZmZzZXQgPSAwOyB9CisgICAgICAgIHZvaWQg
cmVzZXRQcm9wZXJ0eU1hcmtzKCkgeyBtX3Byb3BlcnR5U3RhcnRPZmZzZXQgPSBtX3Byb3BlcnR5
RW5kT2Zmc2V0ID0gVUlOVF9NQVg7IH0KICAgICAgICAgaW50IGxleCh2b2lkKiB5eWx2YWwpOwog
ICAgICAgICBpbnQgdG9rZW4oKSB7IHJldHVybiB5eVRvazsgfQogICAgICAgICBVQ2hhciogdGV4
dChpbnQqIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVt
LmNwcCBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5RGF0dW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjk0ZjZiMDAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eURhdHVtLmNwcApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmZGVmIFNLSVBfU1RBVElDX0NPTlNUUlVDVE9SU19PTl9HQ0MKKyNkZWZpbmUgQ1NT
UFJPUEVSVFlEQVRVTV9ISURFX0dMT0JBTFMgMQorI2VuZGlmCisKKyNpbmNsdWRlICJDU1NQcm9w
ZXJ0eURhdHVtLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0
Zi9TdGF0aWNDb25zdHJ1Y3RvcnMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDU1NQcm9w
ZXJ0eURhdHVtOjpDU1NQcm9wZXJ0eURhdHVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgYm9vbCBpbXBvcnRhbnQsIGJvb2wgcGFyc2VkKQorICAgIDogbmFtZShuYW1l
KQorICAgICwgdmFsdWUodmFsdWUpCisgICAgLCBpbXBvcnRhbnQoaW1wb3J0YW50KQorICAgICwg
cGFyc2VkKHBhcnNlZCkKK3sKK30KKworQ1NTUHJvcGVydHlEYXR1bTo6Q1NTUHJvcGVydHlEYXR1
bShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhlcikKKyAgICA6IG5hbWUob3RoZXIubmFtZSkK
KyAgICAsIHZhbHVlKG90aGVyLnZhbHVlKQorICAgICwgaW1wb3J0YW50KG90aGVyLmltcG9ydGFu
dCkKKyAgICAsIHBhcnNlZChvdGhlci5wYXJzZWQpCit7Cit9CisKK0NTU1Byb3BlcnR5RGF0dW06
OkNTU1Byb3BlcnR5RGF0dW0oKQorICAgIDogbmFtZSgiIikKKyAgICAsIHZhbHVlKCIiKQorICAg
ICwgaW1wb3J0YW50KGZhbHNlKQorICAgICwgcGFyc2VkKGZhbHNlKQoreworfQorCitDU1NQcm9w
ZXJ0eURhdHVtJiBDU1NQcm9wZXJ0eURhdHVtOjpvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlE
YXR1bSYgb3RoZXIpCit7CisgICAgbmFtZSA9IG90aGVyLm5hbWU7CisgICAgdmFsdWUgPSBvdGhl
ci52YWx1ZTsKKyAgICBpbXBvcnRhbnQgPSBvdGhlci5pbXBvcnRhbnQ7CisgICAgcGFyc2VkID0g
b3RoZXIucGFyc2VkOworICAgIHJldHVybiAqdGhpczsKK30KKworU3RyaW5nIENTU1Byb3BlcnR5
RGF0dW06OnRvU3RyaW5nKCkgY29uc3QKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgZW1wdHlWYWx1ZSwgKCJlIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBp
bXBvcnRhbnRTdWZmaXgsICgiICFpbXBvcnRhbnQiKSk7CisgICAgaWYgKCFuYW1lICYmIHZhbHVl
ID09IGVtcHR5VmFsdWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIFN0cmluZyBy
ZXN1bHQgPSBuYW1lOworICAgIHJlc3VsdCArPSAiOiAiOworICAgIHJlc3VsdCArPSB2YWx1ZTsK
KyAgICBpZiAoaW1wb3J0YW50KQorICAgICAgICByZXN1bHQgKz0gaW1wb3J0YW50U3VmZml4Owor
ICAgIHJlc3VsdCArPSAiOyI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworU291cmNlUmFuZ2U6
OlNvdXJjZVJhbmdlKCkKKyAgICA6IHN0YXJ0KDApCisgICAgLCBlbmQoMCkKK3sKK30KKworU291
cmNlUmFuZ2U6OlNvdXJjZVJhbmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpCisgICAg
OiBzdGFydChzdGFydCkKKyAgICAsIGVuZChlbmQpCit7Cit9CisKK1NvdXJjZVJhbmdlJiBTb3Vy
Y2VSYW5nZTo6b3BlcmF0b3I9KGNvbnN0IFNvdXJjZVJhbmdlJiBvdGhlcikKK3sKKyAgICB0aGlz
LT5zdGFydCA9IG90aGVyLnN0YXJ0OworICAgIHRoaXMtPmVuZCA9IG90aGVyLmVuZDsKKyAgICBy
ZXR1cm4gKnRoaXM7Cit9CisKKy8vIEdsb2JhbCBpbml0IHJvdXRpbmVzCitERUZJTkVfR0xPQkFM
KENTU1Byb3BlcnR5RGF0dW0sIGVtcHR5Q1NTUHJvcGVydHlEYXR1bSwgIiIsICJlIiwgZmFsc2Us
IGZhbHNlKQorCisvLyBzdGF0aWMKK3ZvaWQgQ1NTUHJvcGVydHlEYXR1bTo6aW5pdCgpCit7Cisg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQ7CisgICAgaWYgKCFpbml0aWFsaXplZCkgeworICAg
ICAgICBuZXcgKCh2b2lkICopICZlbXB0eUNTU1Byb3BlcnR5RGF0dW0pIENTU1Byb3BlcnR5RGF0
dW0oIiIsICJlIiwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKK25hbWVzcGFjZSBXVEYgewor
CitXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtIEhhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJvcGVy
dHlEYXR1bT46OmVtcHR5VmFsdWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlEYXR1bSwgZW1wdHlIYXNoVmFsdWUsICgiIiwgImgiLCBmYWxzZSwgZmFs
c2UpKTsKKyAgICByZXR1cm4gZW1wdHlIYXNoVmFsdWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlEYXR1bS5oIGIvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlEYXR1bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmJhYmY3NjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eURhdHVt
LmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENTU1Byb3BlcnR5RGF0dW1faAorI2RlZmluZSBD
U1NQcm9wZXJ0eURhdHVtX2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hUcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgQ1NTU3R5bGVSdWxlOworCitzdHJ1Y3QgQ1NTUHJvcGVydHlEYXR1bSB7
CisgICAgc3RhdGljIHZvaWQgaW5pdCgpOworCisgICAgQ1NTUHJvcGVydHlEYXR1bShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBib29sIHBh
cnNlZCk7CisgICAgQ1NTUHJvcGVydHlEYXR1bShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhl
cik7CisgICAgQ1NTUHJvcGVydHlEYXR1bSgpOworICAgIEFMV0FZU19JTkxJTkUgfkNTU1Byb3Bl
cnR5RGF0dW0oKSB7IH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NQcm9wZXJ0eURh
dHVtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbmFtZSA9PSBvdGhlci5uYW1lICYmIHZhbHVlID09
IG90aGVyLnZhbHVlICYmIGltcG9ydGFudCA9PSBvdGhlci5pbXBvcnRhbnQgJiYgcGFyc2VkID09
IG90aGVyLnBhcnNlZDsgfQorICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDU1NQcm9wZXJ0eURh
dHVtJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7IH0KKworICAgIENT
U1Byb3BlcnR5RGF0dW0mIG9wZXJhdG9yPShjb25zdCBDU1NQcm9wZXJ0eURhdHVtJiBvdGhlcik7
CisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgbmFtZTsKKyAgICBT
dHJpbmcgdmFsdWU7CisgICAgYm9vbCBpbXBvcnRhbnQ7CisgICAgYm9vbCBwYXJzZWQ7Cit9Owor
dHlwZWRlZiBzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgYm9vbD4gU291cmNlQXdhcmVQcm9w
ZXJ0eURhdHVtOworCisjaWZuZGVmIENTU1BST1BFUlRZREFUVU1fSElERV9HTE9CQUxTCitleHRl
cm4gY29uc3QgQ1NTUHJvcGVydHlEYXR1bSBlbXB0eUNTU1Byb3BlcnR5RGF0dW07CisjZW5kaWYK
Kworc3RydWN0IFNvdXJjZVJhbmdlIHsKKyAgICBTb3VyY2VSYW5nZSgpOworICAgIFNvdXJjZVJh
bmdlKHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOworICAgIFNvdXJjZVJhbmdlJiBvcGVy
YXRvcj0oY29uc3QgU291cmNlUmFuZ2UmIG90aGVyKTsKKworICAgIHVuc2lnbmVkIHN0YXJ0Owor
ICAgIHVuc2lnbmVkIGVuZDsKK307CisKK3N0cnVjdCBDU1NTdHlsZVNvdXJjZURhdGEgOiBwdWJs
aWMgUmVmQ291bnRlZDxDU1NTdHlsZVNvdXJjZURhdGE+IHsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NTdHlsZVNvdXJjZURhdGE+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENTU1N0eWxlU291cmNlRGF0YSgpKTsKKyAgICB9CisKKyAgICAvLyBSYW5nZSBv
ZiB0aGUgc3R5bGUgdGV4dCBpbiB0aGUgZW5jbG9zaW5nIHNvdXJjZSAoc3RhcnQgYW5kIGVuZCBv
ZmZzZXRzIGluY2x1c2l2ZSkuCisgICAgU291cmNlUmFuZ2Ugc3R5bGVCb2R5UmFuZ2U7CisgICAg
VmVjdG9yPHN0ZDo6cGFpcjxDU1NQcm9wZXJ0eURhdHVtLCBTb3VyY2VSYW5nZT4gPiBwcm9wZXJ0
eURhdGE7Cit9OwordHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlUnVsZSosIFJlZlB0cjxDU1NTdHls
ZVNvdXJjZURhdGE+ID4gU3R5bGVSdWxlUmFuZ2VNYXA7CisKK3N0cnVjdCBDU1NQcm9wZXJ0eURh
dHVtSGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goQ1NTUHJvcGVydHlEYXR1bSBrZXkp
CisgICAgeworICAgICAgICByZXR1cm4gU3RyaW5nSGFzaDo6aGFzaChrZXkubmFtZSkgKyBTdHJp
bmdIYXNoOjpoYXNoKGtleS52YWx1ZSkgKyA3ICoga2V5LmltcG9ydGFudCArIDMgKiBrZXkucGFy
c2VkICsgMzE7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgZXF1YWwoQ1NTUHJvcGVydHlEYXR1
bSBhLCBDU1NQcm9wZXJ0eURhdHVtIGIpCisgICAgeworICAgICAgICByZXR1cm4gYS5uYW1lID09
IGIubmFtZSAmJiBhLnZhbHVlID09IGIudmFsdWUgJiYgYS5pbXBvcnRhbnQgPT0gYi5pbXBvcnRh
bnQgJiYgYS5wYXJzZWQgPT0gYi5wYXJzZWQ7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IGJv
b2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSBmYWxzZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBEZWZhdWx0SGFzaDsKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNv
cmU6OkNTU1Byb3BlcnR5RGF0dW0+IHsKKyAgICB0eXBlZGVmIFdlYkNvcmU6OkNTU1Byb3BlcnR5
RGF0dW1IYXNoIEhhc2g7Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1Byb3BlcnR5RGF0dW0+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTUHJv
cGVydHlEYXR1bT4geworICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBm
YWxzZTsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NTUHJvcGVydHlEYXR1bSBlbXB0eVZhbHVlKCk7
CisKKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoV2ViQ29yZTo6Q1NTUHJv
cGVydHlEYXR1bSYgc2xvdCkgeyBuZXcgKCZzbG90KSBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVt
KCIiLCAiRCIsIGZhbHNlLCBmYWxzZSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1
ZShjb25zdCBXZWJDb3JlOjpDU1NQcm9wZXJ0eURhdHVtJiBzbG90KSB7IHJldHVybiAhc2xvdC5u
YW1lLmxlbmd0aCgpICYmIHNsb3QudmFsdWUgPT0gIkQiOyB9Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXVEYKKworI2VuZGlmIC8vIENTU1Byb3BlcnR5RGF0dW1faApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5p
ZGwKaW5kZXggMTY5YjE4OC4uOTliMDJmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmlkbAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBAIC0x
ODgsNyArMTg4LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQg
Z2V0SW5saW5lU3R5bGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CiAgICAgICAg
IFtoYW5kbGVyPURPTV0gdm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQg
VmFsdWUgc3R5bGUpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTaGVldChp
biBsb25nIHN0eWxlU2hlZXRJZCwgb3V0IE9iamVjdCBzdHlsZVNoZWV0KTsKLSAgICAgICAgW2hh
bmRsZXI9RE9NXSB2b2lkIGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBW
YWx1ZSByYW5nZXMpOworICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTb3VyY2VE
YXRhKGluIGxvbmcgc3R5bGVTaGVldElkLCBvdXQgT2JqZWN0IHN0eWxlU291cmNlRGF0YSk7CiAg
ICAgICAgIFtoYW5kbGVyPURPTV0gdm9pZCBhcHBseVN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQs
IGluIFN0cmluZyBzdHlsZVRleHQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIG91dCBib29sZWFu
IHN1Y2Nlc3MsIG91dCBWYWx1ZSBzdHlsZSwgb3V0IEFycmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsK
ICAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lkIHNldFN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQs
IGluIFN0cmluZyBzdHlsZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwogICAgICAgICBbaGFu
ZGxlcj1ET01dIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIHN0eWxlSWQsIGluIFN0cmlu
ZyBuYW1lLCBpbiBTdHJpbmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwCmluZGV4IGMyZGM0ZjEuLmIwMTk4NjAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTM3LDExICszNywxOCBAQAog
I2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUu
aCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgor
I2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVkZSAi
VGV4dEVuY29kaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjcsNiArNzQsNyBA
QCB2b2lkIEluc3BlY3RvckNTU1N0b3JlOjpyZXNldCgpCiAgICAgbV9zdHlsZVNoZWV0VG9PZmZz
ZXRzLmNsZWFyKCk7CiAgICAgbV9zdHlsZVNoZWV0VG9JZC5jbGVhcigpOwogICAgIG1faWRUb1N0
eWxlU2hlZXQuY2xlYXIoKTsKKyAgICBtX2lkVG9TdHlsZVNoZWV0VGV4dC5jbGVhcigpOwogICAg
IG1faWRUb0Rpc2FibGVkU3R5bGUuY2xlYXIoKTsKICAgICBtX2RvY3VtZW50Tm9kZVRvSW5zcGVj
dG9yU3R5bGVTaGVldE1hcC5jbGVhcigpOwogCkBAIC0xMDQsNDggKzExMiwxNDUgQEAgQ1NTU3R5
bGVTaGVldCogSW5zcGVjdG9yQ1NTU3RvcmU6Omluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQq
IG93bmVyRG9jdW1lbnQsIGIKICAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldDsKIH0KIAot
SGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFJ1bGVSYW5n
ZXMoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6
c3R5bGVTaGVldFRleHQobG9uZyBzdHlsZVNoZWV0SWQpCiB7CisgICAgSWRUb1N0eWxlU2hlZXRU
ZXh0TWFwOjppdGVyYXRvciBpdCA9IG1faWRUb1N0eWxlU2hlZXRUZXh0LmZpbmQoc3R5bGVTaGVl
dElkKTsKKyAgICBpZiAoaXQgIT0gbV9pZFRvU3R5bGVTaGVldFRleHQuZW5kKCkpCisgICAgICAg
IHJldHVybiBpdC0+c2Vjb25kOworCisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHN0
eWxlU2hlZXRGb3JJZChzdHlsZVNoZWV0SWQpOworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworCisgICAgU3RyaW5nIHJlc3VsdDsKKyAgICBib29sIHN1Y2Nl
c3MgPSBmYWxzZTsKKyAgICBOb2RlKiBvd25lck5vZGUgPSBzdHlsZVNoZWV0LT5vd25lck5vZGUo
KTsKKyAgICBpZiAob3duZXJOb2RlICYmIG93bmVyTm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpF
TEVNRU5UX05PREUpIHsKKyAgICAgICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG93bmVyTm9kZSk7CisgICAgICAgIGlmIChvd25lckVsZW1lbnQtPnRhZ05h
bWUoKS5sb3dlcigpID09ICJzdHlsZSIpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGlubGluZVN0
eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXQpOworICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBzdWNjZXNzID0gcmVz
b3VyY2VTdHlsZVNoZWV0VGV4dChzdHlsZVNoZWV0LCAmcmVzdWx0KTsKKworICAgIGlmIChzdWNj
ZXNzKQorICAgICAgICBtX2lkVG9TdHlsZVNoZWV0VGV4dC5zZXQoc3R5bGVTaGVldElkLCByZXN1
bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ1NTU3RvcmU6OnJl
c291cmNlU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgU3RyaW5nKiBy
ZXN1bHQpCit7CisgICAgcmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVzb3VyY2VDb250
ZW50Rm9yVVJMKHN0eWxlU2hlZXQtPmZpbmFsVVJMKCksIHN0eWxlU2hlZXQtPmRvY3VtZW50KCks
IHJlc3VsdCk7Cit9CisKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVTaGVl
dFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBOb2RlKiBvd25lck5vZGUg
PSBzdHlsZVNoZWV0LT5vd25lck5vZGUoKTsKKyAgICBpZiAoIW93bmVyTm9kZSB8fCBvd25lck5v
ZGUtPm5vZGVUeXBlKCkgIT0gTm9kZTo6RUxFTUVOVF9OT0RFIHx8IG1fc3R5bGVTaGVldFRvSWQu
ZmluZChzdHlsZVNoZWV0KSA9PSBtX3N0eWxlU2hlZXRUb0lkLmVuZCgpKQorICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CisgICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxl
bWVudCo+KG93bmVyTm9kZSk7CisgICAgaWYgKG93bmVyRWxlbWVudC0+dGFnTmFtZSgpLmxvd2Vy
KCkgIT0gInN0eWxlIikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBvd25l
ckVsZW1lbnQtPmlubmVyVGV4dCgpOworfQorCisKKy8vIEFsbCByYW5nZXMgYXJlOiBbc3RhcnQ7
IGVuZCkgKHN0YXJ0IC0gaW5jbHVzaXZlLCBlbmQgLSBleGNsdXNpdmUpLgorYm9vbCBJbnNwZWN0
b3JDU1NTdG9yZTo6Z2V0U3R5bGVTb3VyY2VEYXRhKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxl
LCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlmICghc3R5bGUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbmxpbmVT
dHlsZUVsZW1lbnQoc3R5bGUpOworICAgIGlmIChlbGVtZW50KSB7CisgICAgICAgIC8vIElubGlu
ZTogc3R5bGU9Ii4uLiIuCisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHN0eWxl
U291cmNlRGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIGJvb2wg
c3VjY2VzcyA9IGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKGVsZW1lbnQsICZzdHlsZVNvdXJjZURh
dGEpOworICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICpyZXN1bHQgPSBzdHlsZVNvdXJjZURhdGE7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNo
ZWV0KHN0eWxlKTsKICAgICBpZiAoIXN0eWxlU2hlZXQpCi0gICAgICAgIHJldHVybiBIYXNoTWFw
PGxvbmcsIFNvdXJjZVJhbmdlPigpOwotICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gb3JpZ2luYWxS
dWxlTGlzdCA9IENTU1J1bGVMaXN0OjpjcmVhdGUoc3R5bGVTaGVldCwgZmFsc2UpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4g
PiogcmFuZ2VzVmVjdG9yID0gMDsKICAgICBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOjppdGVyYXRv
ciBpdCA9IG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5maW5kKHN0eWxlU2hlZXQpOwotICAgIFZlY3Rv
cjxTb3VyY2VSYW5nZT4qIG9mZnNldFZlY3RvciA9IDA7CiAgICAgaWYgKGl0ID09IG1fc3R5bGVT
aGVldFRvT2Zmc2V0cy5lbmQoKSkgewotICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3Vy
Y2UgPSBtX2luc3BlY3RvckNvbnRyb2xsZXItPnJlc291cmNlRm9yVVJMKHN0eWxlU2hlZXQtPmZp
bmFsVVJMKCkuc3RyaW5nKCkpOwotICAgICAgICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAgICAg
IG9mZnNldFZlY3RvciA9IG5ldyBWZWN0b3I8U291cmNlUmFuZ2U+OworICAgICAgICBTdHJpbmcg
dGV4dCA9IHN0eWxlU2hlZXRUZXh0KGJpbmRTdHlsZVNoZWV0KHN0eWxlU2hlZXQpKTsKKyAgICAg
ICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgUmVmUHRyPENTU1N0eWxlU2hl
ZXQ+IG5ld1N0eWxlU2hlZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3R5bGVTaGVldC0+b3du
ZXJOb2RlKCkpOwogICAgICAgICAgICAgQ1NTUGFyc2VyIHA7Ci0gICAgICAgICAgICBDU1NQYXJz
ZXI6OlN0eWxlUnVsZVJhbmdlcyBydWxlUmFuZ2VNYXA7Ci0gICAgICAgICAgICBwLnBhcnNlU2hl
ZXQobmV3U3R5bGVTaGVldC5nZXQoKSwgcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpLCAwLCAmcnVs
ZVJhbmdlTWFwKTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IG5l
d1N0eWxlU2hlZXQtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAg
ICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShuZXdTdHlsZVNoZWV0LT5pdGVt
KGkpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJ1bGUpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWly
PHVuc2lnbmVkLCB1bnNpZ25lZD4gPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VNYXAuZmluZChy
dWxlKTsKLSAgICAgICAgICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQotICAg
ICAgICAgICAgICAgICAgICBvZmZzZXRWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5zZXQoc3R5bGVTaGVl
dCwgb2Zmc2V0VmVjdG9yKTsKKyAgICAgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwIHJ1bGVSYW5n
ZU1hcDsKKyAgICAgICAgICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgpLCB0ZXh0
LCAwLCAmcnVsZVJhbmdlTWFwKTsKKyAgICAgICAgICAgIHJhbmdlc1ZlY3RvciA9IG5ldyBWZWN0
b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPjsKKyAgICAgICAgICAgIGV4dHJhY3RSYW5n
ZXMobmV3U3R5bGVTaGVldC5nZXQoKSwgcnVsZVJhbmdlTWFwLCByYW5nZXNWZWN0b3IpOworICAg
ICAgICAgICAgbV9zdHlsZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCByYW5nZXNWZWN0
b3IpOwogICAgICAgICB9CiAgICAgfSBlbHNlCi0gICAgICAgIG9mZnNldFZlY3RvciA9IGl0LT5z
ZWNvbmQ7Ci0gICAgaWYgKCFvZmZzZXRWZWN0b3IpCi0gICAgICAgIHJldHVybiBIYXNoTWFwPGxv
bmcsIFNvdXJjZVJhbmdlPigpOworICAgICAgICByYW5nZXNWZWN0b3IgPSBpdC0+c2Vjb25kOwor
ICAgIGlmICghcmFuZ2VzVmVjdG9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNp
Z25lZCBydWxlSW5kZXggPSAwOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJlc3Vs
dDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgo
KTsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEFTU0VSVChydWxlSW5kZXggPCBvZmZzZXRW
ZWN0b3ItPnNpemUoKSk7CiAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVS
dWxlKHN0eWxlU2hlZXQtPml0ZW0oaSkpOwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgLy8gVGhpcyBtYXBzIHRoZSBzdHlsZSBpZCB0byB0aGUgcnVs
ZSBib2R5IHJhbmdlLgotICAgICAgICByZXN1bHQuc2V0KGJpbmRTdHlsZShydWxlLT5zdHlsZSgp
KSwgb2Zmc2V0VmVjdG9yLT5hdChydWxlSW5kZXgpKTsKKyAgICAgICAgaWYgKHJ1bGUtPnN0eWxl
KCkgPT0gc3R5bGUpIHsKKyAgICAgICAgICAgIEFTU0VSVChydWxlSW5kZXggPCByYW5nZXNWZWN0
b3ItPnNpemUoKSk7CisgICAgICAgICAgICAqcmVzdWx0ID0gcmFuZ2VzVmVjdG9yLT5hdChydWxl
SW5kZXgpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgcnVs
ZUluZGV4Kys7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIEluc3BlY3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKENTU1N0eWxlU2hlZXQq
IHN0eWxlU2hlZXQsIGNvbnN0IFN0eWxlUnVsZVJhbmdlTWFwJiBydWxlUmFuZ2VNYXAsIFZlY3Rv
cjxSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpCit7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMCwgbGVuZ3RoID0gc3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBsZW5n
dGg7ICsraSkgeworICAgICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShz
dHlsZVNoZWV0LT5pdGVtKGkpKTsKKyAgICAgICAgaWYgKCFydWxlKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHJ1
bGVSYW5nZU1hcC5maW5kKHJ1bGUpOworICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVu
ZCgpKQorICAgICAgICAgICAgcmFuZ2VzVmVjdG9yLT5hcHBlbmQoaXQtPnNlY29uZCk7CisgICAg
fQorfQorCitib29sIEluc3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhO
b2RlKiBub2RlLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlm
ICghbm9kZSB8fCAhbm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIFN0cmluZyBzdHlsZVRleHQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4o
bm9kZSktPmdldEF0dHJpYnV0ZSgic3R5bGUiKTsKKyAgICBpZiAoc3R5bGVUZXh0LmlzRW1wdHko
KSkgeworICAgICAgICAoKnJlc3VsdCktPnN0eWxlQm9keVJhbmdlLnN0YXJ0ID0gMDsKKyAgICAg
ICAgKCpyZXN1bHQpLT5zdHlsZUJvZHlSYW5nZS5lbmQgPSAwOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHRlbXBE
ZWNsYXJhdGlvbiA9IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKTsKKyAgICBD
U1NQYXJzZXIgcDsKKyAgICBwLnBhcnNlRGVjbGFyYXRpb24odGVtcERlY2xhcmF0aW9uLmdldCgp
LCBzdHlsZVRleHQsIHJlc3VsdC0+Z2V0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitDU1NT
dHlsZVNoZWV0KiBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHls
ZURlY2xhcmF0aW9uKiBzdHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIFN0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZS0+c3R5bGVzaGVldCgpOwor
ICAgIGlmIChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpOworCisg
ICAgcmV0dXJuIDA7CiB9CiAKIENTU1N0eWxlUnVsZSogSW5zcGVjdG9yQ1NTU3RvcmU6OmFzQ1NT
U3R5bGVSdWxlKFN0eWxlQmFzZSogc3R5bGVCYXNlKQpAQCAtMjE3LDYgKzMyMiwxNyBAQCBsb25n
IEluc3BlY3RvckNTU1N0b3JlOjpiaW5kUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiAgICAgcmV0
dXJuIGlkOwogfQogCisvLyBzdGF0aWMKK0VsZW1lbnQqIEluc3BlY3RvckNTU1N0b3JlOjppbmxp
bmVTdHlsZUVsZW1lbnQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAgaWYgKCFz
dHlsZSB8fCAhc3R5bGUtPmlzTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSkKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgTm9kZSogbm9kZSA9IHN0YXRpY19jYXN0PENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKj4oc3R5bGUpLT5ub2RlKCk7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0eWxl
ZEVsZW1lbnQoKSB8fCBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdldElubGlu
ZVN0eWxlRGVjbCgpICE9IHN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0
b3JlLmgKaW5kZXggODJkZTYyMi4uYzE3OTE3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ1NTU3RvcmUuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NTdG9yZS5oCkBAIC0yOSw2ICsyOSw5IEBACiAjaWZuZGVmIEluc3BlY3RvckNTU1N0b3JlX2gK
ICNkZWZpbmUgSW5zcGVjdG9yQ1NTU3RvcmVfaAogCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlEYXR1
bS5oIgorI2luY2x1ZGUgIkNhY2hlLmgiCisKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzYsMzkg
KzM5LDQ1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7Ci1jbGFz
cyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb247
CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NTUnVsZUxpc3Q7CiBjbGFzcyBD
U1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBFbGVtZW50OworY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKK2NsYXNzIE5vZGU7CiBjbGFz
cyBTdHlsZUJhc2U7CiAKIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQcm9wZXJ0
eVZhbHVlQW5kUHJpb3JpdHk7Ci10eXBlZGVmIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+
IFNvdXJjZVJhbmdlOwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydHlWYWx1ZUFuZFBy
aW9yaXR5PiBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb247CiB0eXBlZGVmIEhhc2hNYXA8Q1NTU3R5
bGVEZWNsYXJhdGlvbiosIGxvbmc+IFN0eWxlVG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxsb25n
LCBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gPiBJZFRvU3R5bGVNYXA7CiB0eXBlZGVmIEhh
c2hNYXA8Q1NTU3R5bGVSdWxlKiwgbG9uZz4gUnVsZVRvSWRNYXA7CiB0eXBlZGVmIEhhc2hNYXA8
bG9uZywgUmVmUHRyPENTU1N0eWxlUnVsZT4gPiBJZFRvUnVsZU1hcDsKLXR5cGVkZWYgSGFzaE1h
cDxDU1NTdHlsZVNoZWV0KiwgVmVjdG9yPFNvdXJjZVJhbmdlPiogPiBTdHlsZVNoZWV0VG9PZmZz
ZXRzTWFwOwordHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBWZWN0b3I8UmVmUHRyPENT
U1N0eWxlU291cmNlRGF0YT4gPiogPiBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOwogdHlwZWRlZiBI
YXNoTWFwPENTU1N0eWxlU2hlZXQqLCBsb25nPiBTdHlsZVNoZWV0VG9JZE1hcDsKIHR5cGVkZWYg
SGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBJZFRvU3R5bGVTaGVldE1hcDsK
K3R5cGVkZWYgSGFzaE1hcDxsb25nLCBTdHJpbmc+IElkVG9TdHlsZVNoZWV0VGV4dE1hcDsKIHR5
cGVkZWYgSGFzaE1hcDxsb25nLCBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24+IElkVG9EaXNhYmxl
ZFN0eWxlTWFwOwogdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxEb2N1bWVudD4sIFJlZlB0cjxDU1NT
dHlsZVNoZWV0PiA+IERvY3VtZW50VG9TdHlsZVNoZWV0TWFwOwogCiBjbGFzcyBJbnNwZWN0b3JD
U1NTdG9yZSB7CiAKIHB1YmxpYzoKKyAgICBzdGF0aWMgQ1NTU3R5bGVTaGVldCogZ2V0UGFyZW50
U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisgICAgc3RhdGljIEVsZW1lbnQqIGlu
bGluZVN0eWxlRWxlbWVudChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisKICAgICBJbnNwZWN0b3JD
U1NTdG9yZShJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsKICAgICB+
SW5zcGVjdG9yQ1NTU3RvcmUoKTsKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgSGFzaE1hcDxsb25n
LCBTb3VyY2VSYW5nZT4gZ2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0Kik7CisgICAgYm9vbCBn
ZXRTdHlsZVNvdXJjZURhdGEoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJlZlB0cjxDU1NTdHlsZVNv
dXJjZURhdGE+KiByZXN1bHQpOwogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlRm9ySWQo
bG9uZyBzdHlsZUlkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0Rm9ySWQobG9uZyBz
dHlsZVNoZWV0SWQpOwogICAgIENTU1N0eWxlUnVsZSogcnVsZUZvcklkKGxvbmcgc3R5bGVSdWxl
SWQpOwogICAgIERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbiogZGlzYWJsZWRTdHlsZUZvcklkKGxv
bmcgc3R5bGVJZCwgYm9vbCBjcmVhdGVJZkFic2VudCk7CisgICAgU3RyaW5nIHN0eWxlU2hlZXRU
ZXh0KGxvbmcgc3R5bGVTaGVldElkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHls
ZVNoZWV0KERvY3VtZW50KiBvd25lckRvY3VtZW50LCBib29sIGNyZWF0ZUlmQWJzZW50KTsKICAg
ICB2b2lkIHJlbW92ZURvY3VtZW50KERvY3VtZW50Kik7CiAKQEAgLTc4LDYgKzg3LDEwIEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0eWxlUnVs
ZShTdHlsZUJhc2UqKTsKKyAgICBTdHJpbmcgaW5saW5lU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVT
aGVldCopOworICAgIGJvb2wgcmVzb3VyY2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNoZWV0Kiwg
U3RyaW5nKiByZXN1bHQpOworICAgIHZvaWQgZXh0cmFjdFJhbmdlcyhDU1NTdHlsZVNoZWV0Kiwg
Y29uc3QgU3R5bGVSdWxlUmFuZ2VNYXAmLCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0
YT4gPiogcmFuZ2VzVmVjdG9yKTsKKyAgICBib29sIGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKE5v
ZGUqIHBhcmVudE5vZGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQpOwogCiAg
ICAgU3R5bGVUb0lkTWFwIG1fc3R5bGVUb0lkOwogICAgIElkVG9TdHlsZU1hcCBtX2lkVG9TdHls
ZTsKQEAgLTg1LDggKzk4LDkgQEAgcHJpdmF0ZToKICAgICBJZFRvUnVsZU1hcCBtX2lkVG9SdWxl
OwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXAgbV9zdHlsZVNoZWV0VG9PZmZzZXRzOwogICAg
IFN0eWxlU2hlZXRUb0lkTWFwIG1fc3R5bGVTaGVldFRvSWQ7Ci0gICAgSWRUb1N0eWxlU2hlZXRN
YXAgbV9pZFRvU3R5bGVTaGVldDsKICAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcCBtX2lkVG9EaXNh
YmxlZFN0eWxlOworICAgIElkVG9TdHlsZVNoZWV0TWFwIG1faWRUb1N0eWxlU2hlZXQ7CisgICAg
SWRUb1N0eWxlU2hlZXRUZXh0TWFwIG1faWRUb1N0eWxlU2hlZXRUZXh0OwogICAgIERvY3VtZW50
VG9TdHlsZVNoZWV0TWFwIG1fZG9jdW1lbnROb2RlVG9JbnNwZWN0b3JTdHlsZVNoZWV0TWFwOwog
CiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0b3JDb250cm9sbGVyOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA5MGVmMzQ0Li5hOTUxZmE2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2hyb21l
LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCkBA
IC0xODk2LDYgKzE4OTcsNDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRSZXNvdXJj
ZUNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBTdHJpbmcqIGMKICAgICAqY29udGVu
dCA9IHJlc291cmNlID8gcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpIDogU3RyaW5nKCk7CiB9CiAK
K2Jvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3VyY2VDb250ZW50Rm9yVVJMKGNvbnN0IEtV
UkwmIHVybCwgRG9jdW1lbnQqIGZyYW1lRG9jdW1lbnQsIFN0cmluZyogcmVzdWx0KQoreworICAg
IGlmICghZnJhbWVEb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RyaW5n
IHRleHRFbmNvZGluZ05hbWU7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOworICAg
IGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHVybCwgZnJhbWVEb2N1bWVudC0+
ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3RVUkwoKSkpIHsKKyAg
ICAgICAgdGV4dEVuY29kaW5nTmFtZSA9IGZyYW1lRG9jdW1lbnQtPmlucHV0RW5jb2RpbmcoKTsK
KyAgICAgICAgYnVmZmVyID0gZnJhbWVEb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPnByb3Zp
c2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nID0gdXJsLnN0cmluZygpOworICAgICAg
ICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBmcmFtZURvY3VtZW50LT5jYWNoZWRS
ZXNvdXJjZUxvYWRlcigpLT5jYWNoZWRSZXNvdXJjZSh1cmxTdHJpbmcpOworICAgICAgICBpZiAo
IWNhY2hlZFJlc291cmNlKQorICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBjYWNoZSgpLT5y
ZXNvdXJjZUZvclVSTCh1cmxTdHJpbmcpOworCisgICAgICAgIEFTU0VSVChjYWNoZWRSZXNvdXJj
ZSk7IC8vIEZJWE1FKGFwYXZsb3YpOiBUaGlzIG1pZ2h0IGJlIHRvbyBhZ2dyZXNzaXZlLgorCisg
ICAgICAgIGJvb2wgaXNVbnB1cmdlYWJsZSA9IHRydWU7CisgICAgICAgIGlmIChjYWNoZWRSZXNv
dXJjZS0+aXNQdXJnZWFibGUoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIHJlc291cmNlIGlz
IHB1cmdlYWJsZSB0aGVuIG1ha2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAgICAgICAv
LyBpdHMgZGF0YS4gVGhpcyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVybiBhbgor
ICAgICAgICAgICAgLy8gZW1wdHkgU3RyaW5nLgorICAgICAgICAgICAgaWYgKCFjYWNoZWRSZXNv
dXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCisgICAgICAgICAgICAgICAgaXNVbnB1cmdlYWJs
ZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7CisgICAg
ICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5nKCk7Cisg
ICAgICAgICAgICBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICBUZXh0RW5jb2RpbmcgZW5jb2Rpbmco
dGV4dEVuY29kaW5nTmFtZSk7CisgICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgpKQorICAg
ICAgICAgICAgZW5jb2RpbmcgPSBXaW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKKyAgICAgICAgKnJl
c3VsdCA9IGVuY29kaW5nLmRlY29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZv
aWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVsb2FkUGFnZSgpCiB7CiAgICAgbV9pbnNwZWN0ZWRQ
YWdlLT5tYWluRnJhbWUoKS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVSZWZyZXNoKHRy
dWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDA3OWNmNTUu
LjE4YWYyMjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTIy
Myw2ICsyMjMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZXNvdXJjZXNNYXAmIHJlc291cmNl
cygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VzOyB9CiAgICAgSW5zcGVjdG9yUmVzb3VyY2Uq
IHJlc291cmNlRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICBib29sIHJlc291cmNlQ29u
dGVudEZvclVSTChjb25zdCBLVVJMJiB1cmwsIERvY3VtZW50KiBsb2FkZXJEb2N1bWVudCwgU3Ry
aW5nKiByZXN1bHQpOwogICAgIGJvb2wgaGFzRnJvbnRlbmQoKSBjb25zdCB7IHJldHVybiBtX2Zy
b250ZW5kOyB9CiAKICAgICB2b2lkIGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4IGRkZDcx
ZjkuLjk5YjUxNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eURhdHVtLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgpA
QCAtMTE5MSwyNiArMTE5MiwzNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHlsZVNo
ZWV0KGxvbmcgc3R5bGVTaGVldElkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PgogICAgICAgICAq
c3R5bGVTaGVldE9iamVjdCA9IGJ1aWxkT2JqZWN0Rm9yU3R5bGVTaGVldChzdHlsZVNoZWV0LT5k
b2N1bWVudCgpLCBzdHlsZVNoZWV0KTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0
UnVsZVJhbmdlcyhsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcnVs
ZVJhbmdlKQordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0U3R5bGVTb3VyY2VEYXRhKGxvbmcg
c3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGRhdGFPYmplY3QpCiB7Ci0gICAgQ1NT
U3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGNzc1N0b3JlKCktPnN0eWxlU2hlZXRGb3JJZChzdHls
ZVNoZWV0SWQpOwotICAgIGlmIChzdHlsZVNoZWV0ICYmIHN0eWxlU2hlZXQtPmRvY3VtZW50KCkp
IHsKLSAgICAgICAgSGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT4gcnVsZVJhbmdlcyA9IGNzc1N0
b3JlKCktPmdldFJ1bGVSYW5nZXMoc3R5bGVTaGVldCk7Ci0gICAgICAgIGlmICghcnVsZVJhbmdl
cy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IHJlc3VsdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7Ci0gICAgICAgIGZvciAo
SGFzaE1hcDxsb25nLCBTb3VyY2VSYW5nZT46Oml0ZXJhdG9yIGl0ID0gcnVsZVJhbmdlcy5iZWdp
bigpOyBpdCAhPSBydWxlUmFuZ2VzLmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICBpZiAoaXQt
PnNlY29uZC5zZWNvbmQpIHsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBydWxlUmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAg
IHJlc3VsdC0+c2V0T2JqZWN0KFN0cmluZzo6bnVtYmVyKGl0LT5maXJzdCkudXRmOCgpLmRhdGEo
KSwgcnVsZVJhbmdlKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBi
b2R5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwotICAgICAgICAgICAgICAgIHJ1
bGVSYW5nZS0+c2V0T2JqZWN0KCJib2R5UmFuZ2UiLCBib2R5UmFuZ2UpOwotICAgICAgICAgICAg
ICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJzdGFydCIsIGl0LT5zZWNvbmQuZmlyc3QpOwotICAg
ICAgICAgICAgICAgIGJvZHlSYW5nZS0+c2V0TnVtYmVyKCJlbmQiLCBpdC0+c2Vjb25kLnNlY29u
ZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgKnJ1bGVSYW5nZSA9IHJlc3Vs
dC5yZWxlYXNlKCk7CisgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBjc3NTdG9yZSgp
LT5zdHlsZUZvcklkKHN0eWxlSWQpOworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybjsK
KyAgICBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gQ1NTU3R5bGVTb3Vy
Y2VEYXRhOjpjcmVhdGUoKTsKKyAgICBib29sIHN1Y2Nlc3MgPSBjc3NTdG9yZSgpLT5nZXRTdHls
ZVNvdXJjZURhdGEoc3R5bGUsICZzb3VyY2VEYXRhKTsKKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAg
ICAgIHJldHVybjsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHQgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJvZHlSYW5n
ZSA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXRPYmplY3QoImJv
ZHlSYW5nZSIsIGJvZHlSYW5nZSk7CisgICAgYm9keVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0Iiwg
c291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc3RhcnQpOworICAgIGJvZHlSYW5nZS0+c2V0TnVt
YmVyKCJlbmQiLCBzb3VyY2VEYXRhLT5zdHlsZUJvZHlSYW5nZS5lbmQpOworICAgIFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4gcHJvcGVydHlSYW5nZXMgPSBJbnNwZWN0b3JBcnJheTo6Y3JlYXRlKCk7
CisgICAgcmVzdWx0LT5zZXRBcnJheSgicHJvcGVydHlEYXRhIiwgcHJvcGVydHlSYW5nZXMpOwor
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID4mIHBy
b3BlcnR5RGF0YSA9IHNvdXJjZURhdGEtPnByb3BlcnR5RGF0YTsKKyAgICBmb3IgKFZlY3Rvcjxz
dGQ6OnBhaXI8Q1NTUHJvcGVydHlEYXR1bSwgU291cmNlUmFuZ2U+ID46Oml0ZXJhdG9yIGl0ID0g
cHJvcGVydHlEYXRhLmJlZ2luKCk7IGl0ICE9IHByb3BlcnR5RGF0YS5lbmQoKTsgKytpdCkgewor
ICAgICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBwcm9wZXJ0eVJhbmdlID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0U3RyaW5nKCJuYW1l
IiwgaXQtPmZpcnN0Lm5hbWUpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXRTdHJpbmcoInZh
bHVlIiwgaXQtPmZpcnN0LnZhbHVlKTsKKyAgICAgICAgcHJvcGVydHlSYW5nZS0+c2V0Qm9vbGVh
bigiaW1wb3J0YW50IiwgaXQtPmZpcnN0LmltcG9ydGFudCk7CisgICAgICAgIHByb3BlcnR5UmFu
Z2UtPnNldEJvb2xlYW4oInBhcnNlZCIsIGl0LT5maXJzdC5wYXJzZWQpOworICAgICAgICBwcm9w
ZXJ0eVJhbmdlLT5zZXROdW1iZXIoInN0YXJ0IiwgaXQtPnNlY29uZC5zdGFydCk7CisgICAgICAg
IHByb3BlcnR5UmFuZ2UtPnNldE51bWJlcigiZW5kIiwgaXQtPnNlY29uZC5lbmQpOworICAgICAg
ICBwcm9wZXJ0eVJhbmdlcy0+cHVzaE9iamVjdChwcm9wZXJ0eVJhbmdlKTsKICAgICB9CisgICAg
KmRhdGFPYmplY3QgPSByZXN1bHQucmVsZWFzZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjpnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiog
c3R5bGUpCkBAIC0xNDY5LDcgKzE0NzgsNyBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
SW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5bGVEZWNsYQogICAg
IGlmIChiaW5kKSB7CiAgICAgICAgIGxvbmcgc3R5bGVJZCA9IGNzc1N0b3JlKCktPmJpbmRTdHls
ZShzdHlsZSk7CiAgICAgICAgIHJlc3VsdC0+c2V0TnVtYmVyKCJpZCIsIHN0eWxlSWQpOwotICAg
ICAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gZ2V0UGFyZW50U3R5bGVTaGVl
dChzdHlsZSk7CisgICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBJbnNw
ZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChzdHlsZSk7CiAgICAgICAgIGlmIChw
YXJlbnRTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmVzdWx0LT5zZXROdW1iZXIoInBhcmVudFN0
eWxlU2hlZXRJZCIsIGNzc1N0b3JlKCktPmJpbmRTdHlsZVNoZWV0KHBhcmVudFN0eWxlU2hlZXQp
KTsKIApAQCAtMTY4MSwyMCArMTY5MCw2IEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IElu
c3BlY3RvckRPTUFnZW50Ojp0b0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhCiAgICAg
cmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKLUNTU1N0eWxlU2hlZXQqIEluc3BlY3RvckRP
TUFnZW50OjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQot
ewotICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBzdHlsZS0+cGFyZW50UnVs
ZSgpID8gc3R5bGUtPnBhcmVudFJ1bGUoKS0+cGFyZW50U3R5bGVTaGVldCgpIDogMDsKLSAgICBp
ZiAoIXBhcmVudFN0eWxlU2hlZXQpIHsKLSAgICAgICAgU3R5bGVCYXNlKiBwYXJlbnQgPSBzdHls
ZS0+cGFyZW50KCk7Ci0gICAgICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5pc0NTU1N0eWxlU2hl
ZXQoKSkgewotICAgICAgICAgICAgcGFyZW50U3R5bGVTaGVldCA9IHN0YXRpY19jYXN0PENTU1N0
eWxlU2hlZXQqPihwYXJlbnQpOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRTdHlsZVNoZWV0LT5s
ZW5ndGgoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgfQotICAgIH0KLSAg
ICByZXR1cm4gcGFyZW50U3R5bGVTaGVldDsKLX0KLQogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6
b25NYXRjaEpvYnNUaW1lcihUaW1lcjxJbnNwZWN0b3JET01BZ2VudD4qKQogewogICAgIGlmICgh
bV9wZW5kaW5nTWF0Y2hKb2JzLnNpemUoKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmgKaW5kZXggOTc1MWU4ZS4uN2E5ZjZiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIGdldElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+
KiBzdHlsZXMpOwogICAgICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGUobG9uZyBub2RlSWQsIFJl
ZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQgZ2V0U3R5bGVTaGVl
dChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHN0eWxlU2hlZXRP
YmplY3QpOwotICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMobG9uZyBzdHlsZVNoZWV0SWQsIFJl
ZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJ1bGVSYW5nZSk7CisgICAgICAgIHZvaWQgZ2V0U3R5bGVT
b3VyY2VEYXRhKGxvbmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGRhdGFPYmpl
Y3QpOwogICAgICAgICB2b2lkIGFwcGx5U3R5bGVUZXh0KGxvbmcgc3R5bGVJZCwgY29uc3QgU3Ry
aW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBib29sKiBzdWNjZXNz
LCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZU9iamVjdCwgUmVmUHRyPEluc3BlY3RvckFy
cmF5PiogY2hhbmdlZFByb3BlcnRpZXMpOwogICAgICAgICB2b2lkIHNldFN0eWxlVGV4dChsb25n
IHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCwgYm9vbCogc3VjY2Vzcyk7CiAgICAgICAg
IHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7CkBAIC0xNDgsNyArMTQ4LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNvcHlOb2RlKGxvbmcgbm9kZUlkKTsK
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0KiBnZXRQYXJlbnRT
dHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qKTsKICAgICAgICAgdm9pZCBzdGFydExpc3Rl
bmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogICAgICAgICB2b2lkIHN0b3BMaXN0ZW5pbmcoRG9j
dW1lbnQqIGRvY3VtZW50KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67688</attachid>
            <date>2010-09-15 10:32:23 -0700</date>
            <delta_ts>2010-09-16 09:05:47 -0700</delta_ts>
            <desc>[PATCH] pfeldman&apos;s comments addressed</desc>
            <filename>sourceprops.patch</filename>
            <type>text/plain</type>
            <size>59084</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNmRiNDc0Li4xN2I5MTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDkt
MTUgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNl
ZCBwcm9wZXJ0aWVzIGZvciBzdHlsZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvcmVzb3VyY2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3M6
CisgICAgICAgIChib2R5KToKKyAgICAgICAgKC8qIGNvbW1lbnQgYmVmb3JlIHNlbGVjdG9yICov
Ym9keS5tYWluMS8qIGNvbW1lbnQgYWZ0ZXIgc2VsZWN0b3IgKi8pOgorICAgICAgICAoYm9keS5t
YWluMik6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sOgor
CiAyMDEwLTA5LTE1ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlAaW5mLnUtc3plZ2VkLmh1PgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmNzcwppbmRleCBl
ZjY5ZWU2Li40NTIxMGUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5jc3MKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdHlsZXMtc291cmNlLW9mZnNldHMuY3NzCkBAIC0xLDcgKzEsMTQgQEAKIGJv
ZHkgewogICAgIGZvbnQtc2l6ZTogMTJweDsKKyAgICBmb286IGJhciAhCisKKyAgICBpbXBvcnRh
bnQgLyogIWltcG9ydGFudCBwcm9wZXJ0eSBub3QgcmVjb2duaXplZCBieSBXZWJDb3JlICovOwor
ICAgIGhlaWdodDogMTAwJSAhaW1wb3J0YW50OworICAgIGNvbG9yejogIiFpbXBvcnRhbnQiOwor
ICAgIGltcG9ydGFudDohaW1wb3J0YW50OworICAgIGNvbG9yOiAiYmFkY29sb3IiICEgaW1wb3J0
YW50IC8qIGdvb2QgcHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovOwogfQogCi0vKiBjb21t
ZW50IGJlZm9yZSBzZWxlY3RvciAqL2JvZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9y
ICovey8qIGNvbW1lbnQgKi9jb2xvcjogIzAwMDt9LyogY29tbWVudCAqLworLyogY29tbWVudCBi
ZWZvcmUgc2VsZWN0b3IgKi9ib2R5Lm1haW4xLyogY29tbWVudCBhZnRlciBzZWxlY3RvciAqL3sv
KiBjb21tZW50ICovY29sb3I6ICNGMDBCQUE7em9vOm1vbyAvKiBub3QgYW4gIWltcG9ydGFudCB1
bnJlY29nbml6ZWQgcHJvcGVydHkgKi99LyogY29tbWVudCAqLwogCi1ib2R5Lm1haW4ye2JhY2tn
cm91bmQ6IGdyZWVuO30KK2JvZHkubWFpbjJ7YmFja2dyb3VuZDogZ3JlZW4gLyogdmFsdWUgIWlt
cG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2VtaWNvbG9uLCB2ZXJ5ICFpbXBv
cnRhbnQgKi99CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJj
ZS1vZmZzZXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291
cmNlLW9mZnNldHMtZXhwZWN0ZWQudHh0CmluZGV4IGRkYTY3YWQuLmU0ZDMzZDggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291cmNlLW9mZnNldHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDcgKzEsMjMgQEAKLVRlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBv
ZmZzZXQgcG9zaXRpb25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHJ1bGUgYm9kaWVzLgorVGVzdHMg
dGhhdCBwcm9wZXIgZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9y
dGVkIGZvciBDU1Mgc3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9wZXJ0aWVzLgogCi1ib2R5OiBb
NS0yOF0KLWJvZHkubWFpbjE6IFs5OC0xMjRdCi1ib2R5Lm1haW4yOiBbMTUwLTE2OV0KLWJvZHkg
eyYgICAgZm9udC1zaXplOiAxMnB4OyZ9JiYvKiBjb21tZW50IGJlZm9yZSBzZWxlY3RvciAqL2Jv
ZHkubWFpbjEvKiBjb21tZW50IGFmdGVyIHNlbGVjdG9yICovey8qIGNvbW1lbnQgKi9jb2xvcjog
IzAwMDt9LyogY29tbWVudCAqLyYmYm9keS5tYWluMntiYWNrZ3JvdW5kOiBncmVlbjt9JgorYm9k
eTogWzYtMjY2XQorWydmb250LXNpemUnOicxMnB4J10gQFs1LTIxXQorWydmb28nOidiYXIgIQor
CisgICAgaW1wb3J0YW50IC8qICFpbXBvcnRhbnQgcHJvcGVydHkgbm90IHJlY29nbml6ZWQgYnkg
V2ViQ29yZSAqLycgIWltcG9ydGFudCBub24tcGFyc2VkXSBAWzI2LTEwNF0KK1snaGVpZ2h0Jzon
MTAwJSAhaW1wb3J0YW50JyAhaW1wb3J0YW50XSBAWzEwOS0xMzNdCitbJ2NvbG9yeic6JyIhaW1w
b3J0YW50Iicgbm9uLXBhcnNlZF0gQFsxMzgtMTU5XQorWydpbXBvcnRhbnQnOicnIG5vbi1wYXJz
ZWRdIEBbMTY0LTE3NF0KK1snY29sb3InOiciYmFkY29sb3IiICEgaW1wb3J0YW50IC8qIGdvb2Qg
cHJvcGVydHkgd2l0aCBzdHJhbmdlIHZhbHVlICovJyAhaW1wb3J0YW50XSBAWzE5MC0yNTldCiti
b2R5Lm1haW4xOiBbMzM3LTQxOF0KK1snY29sb3InOicjRjAwQkFBJ10gQFsxMy0yOF0KK1snem9v
JzonbW9vIC8qIG5vdCBhbiAhaW1wb3J0YW50IHVucmVjb2duaXplZCBwcm9wZXJ0eSAqLycgbm9u
LXBhcnNlZF0gQFsyOC04MV0KK2JvZHkubWFpbjI6IFs0NDUtNTQwXQorWydiYWNrZ3JvdW5kJzon
Z3JlZW4gLyogdmFsdWUgIWltcG9ydGFudCBjb21tZW50ICovICFpbXBvcnRhbnQgLyogbm8gc2Vt
aWNvbG9uLCB2ZXJ5ICFpbXBvcnRhbnQgKi8nICFpbXBvcnRhbnRdIEBbMC05NV0KK2JvZHkubWFp
bnBhZ2U6IFsxNy0xNDldCitbJ3RleHQtZGVjb3JhdGlvbic6J25vbmUnXSBAWzUtMjddCitbJ2Jh
ZHByb3BlcnR5JzonMWJhZHZhbHVlMScgbm9uLXBhcnNlZF0gQFsxMDctMTMxXQorZWxlbWVudC5z
dHlsZTogWzAtMzFdCitbJ2ZvbnQtd2VpZ2h0Jzonbm9ybWFsJ10gQFswLTIwXQorWyd3aWR0aCc6
JzgwJSddIEBbMjEtMzFdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHls
ZXMtc291cmNlLW9mZnNldHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMtc291
cmNlLW9mZnNldHMuaHRtbAppbmRleCAwNTMzNjExLi40MmViNjAxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzLXNvdXJjZS1vZmZzZXRzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy1zb3VyY2Utb2Zmc2V0cy5odG1sCkBAIC0zNSw1NSArMzUs
NDMgQEAgZnVuY3Rpb24gZnJvbnRlbmRfcnVuVGVzdCh0ZXN0Q29udHJvbGxlcikKICAgICAgICAg
ZnVuY3Rpb24gc3R5bGVzQ2FsbGJhY2sodGVzdENvbnRyb2xsZXIsIHN0eWxlcykKICAgICAgICAg
ewogICAgICAgICAgICAgdmFyIG1hdGNoZWRDU1NSdWxlcyA9IHN0eWxlcy5tYXRjaGVkQ1NTUnVs
ZXM7Ci0gICAgICAgICAgICB2YXIgcGFyZW50U3R5bGVTaGVldElkID0gbWF0Y2hlZENTU1J1bGVz
WzBdLnN0eWxlLnBhcmVudFN0eWxlU2hlZXRJZDsKLSAgICAgICAgICAgIGlmICghcGFyZW50U3R5
bGVTaGVldElkKSB7Ci0gICAgICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNo
KCJCQUQgU1RZTEVTSEVFVCBJRDogIiArIHBhcmVudFN0eWxlU2hlZXRJZCk7Ci0gICAgICAgICAg
ICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0Q29udHJvbGxlci5yZXN1bHRzKTsK
LSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IG1hdGNoZWRDU1NSdWxlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgIHZhciBydWxl
ID0gbWF0Y2hlZENTU1J1bGVzW2ldOworICAgICAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQu
Z2V0U3R5bGVTb3VyY2VEYXRhKHJ1bGUuc3R5bGUuaWQsIGZyb250ZW5kX3N0eWxlRGF0YVJlY2Vp
dmVkLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIsIHJ1bGUsIGZhbHNlKSk7CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmdldFJ1bGVSYW5nZXMocGFyZW50U3R5
bGVTaGVldElkLCBmcm9udGVuZF9ydWxlUmFuZ2VzUmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29u
dHJvbGxlciwgcGFyZW50U3R5bGVTaGVldElkLCBtYXRjaGVkQ1NTUnVsZXMpKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTb3VyY2VEYXRhKHN0eWxlcy5pbmxpbmVTdHls
ZS5pZCwgZnJvbnRlbmRfc3R5bGVEYXRhUmVjZWl2ZWQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxl
ciwgc3R5bGVzLmlubGluZVN0eWxlLCB0cnVlKSk7CiAgICAgICAgIH0KICAgICAgICAgSW5zcGVj
dG9yQmFja2VuZC5nZXRTdHlsZXMoV2ViSW5zcGVjdG9yLmRvbUFnZW50LmRvY3VtZW50LmJvZHku
aWQsIHRydWUsIHN0eWxlc0NhbGxiYWNrLmJpbmQobnVsbCwgdGVzdENvbnRyb2xsZXIpKTsKICAg
ICB9KTsKIH0KIAotZnVuY3Rpb24gZnJvbnRlbmRfcnVsZVJhbmdlc1JlY2VpdmVkKHRlc3RDb250
cm9sbGVyLCBzdHlsZVNoZWV0SWQsIG1hdGNoZWRDU1NSdWxlcywgcnVsZVJhbmdlcykKK2Z1bmN0
aW9uIGZyb250ZW5kX3N0eWxlRGF0YVJlY2VpdmVkKHRlc3RDb250cm9sbGVyLCBydWxlT3JTdHls
ZSwgc2hvdWxkQmFpbCwgZGF0YSkKIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hdGNoZWRD
U1NSdWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICB2YXIgcnVsZSA9IG1hdGNoZWRDU1NSdWxl
c1tpXTsKLSAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKHJ1bGUuc2VsZWN0b3JU
ZXh0ICsgIjogWyIgKyBydWxlUmFuZ2VzW3J1bGUuc3R5bGUuaWRdLmJvZHlSYW5nZS5zdGFydCAr
ICItIiArIHJ1bGVSYW5nZXNbcnVsZS5zdHlsZS5pZF0uYm9keVJhbmdlLmVuZCArICJdIik7Cisg
ICAgdmFyIGlzUnVsZSA9ICEhKHJ1bGVPclN0eWxlLnN0eWxlKTsKKyAgICB0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzLnB1c2goKGlzUnVsZSA/IHJ1bGVPclN0eWxlLnNlbGVjdG9yVGV4dCA6ICJlbGVt
ZW50LnN0eWxlIikgKyAiOiBbIiArIGRhdGEuYm9keVJhbmdlLnN0YXJ0ICsgIi0iICsgZGF0YS5i
b2R5UmFuZ2UuZW5kICsgIl0iKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEucHJvcGVy
dHlEYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHZhciBwcm9wZXJ0eURhdHVtID0gZGF0YS5w
cm9wZXJ0eURhdGFbaV07CisgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiWyci
ICsgcHJvcGVydHlEYXR1bS5uYW1lICsgIic6JyIgKyBwcm9wZXJ0eURhdHVtLnZhbHVlICsgIici
ICsgKHByb3BlcnR5RGF0dW0uaW1wb3J0YW50ID8gIiAhaW1wb3J0YW50IiA6ICIiKSArIChwcm9w
ZXJ0eURhdHVtLnBhcnNlZCA/ICIiIDogIiBub24tcGFyc2VkIikgKyJdIEBbIiArIHByb3BlcnR5
RGF0dW0uc3RhcnQgKyAiLSIgKyBwcm9wZXJ0eURhdHVtLmVuZCArICJdIik7CiAgICAgfQotICAg
IEluc3BlY3RvckJhY2tlbmQuZ2V0U3R5bGVTaGVldChzdHlsZVNoZWV0SWQsIGZyb250ZW5kX2hh
bmRsZVN0eWxlU2hlZXQuYmluZChudWxsLCB0ZXN0Q29udHJvbGxlcikpOwotfQotCi1mdW5jdGlv
biBmcm9udGVuZF9oYW5kbGVTdHlsZVNoZWV0KHRlc3RDb250cm9sbGVyLCBzdHlsZVNoZWV0KQot
ewotICAgIHZhciB1cmwgPSBzdHlsZVNoZWV0LmhyZWY7Ci0gICAgaWYgKHVybCAhPT0gIiIpIHsK
LSAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFwW3VybF07
Ci0gICAgICAgIGlmICghcmVzb3VyY2UpIHsKLSAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJl
c3VsdHMucHVzaCgiTk8gUkVTT1VSQ0UgRk9SIFVSTDogIiArIHVybCk7Ci0gICAgICAgICAgICB0
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJlc3VsdHMpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIFdlYkluc3BlY3Rvci5nZXRSZXNvdXJj
ZUNvbnRlbnQocmVzb3VyY2UuaWRlbnRpZmllciwgZnJvbnRlbmRfc3R5bGVTaGVldFRleHRSZWNl
aXZlZC5iaW5kKG51bGwsIHRlc3RDb250cm9sbGVyKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
dGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJFTVBUWSBTVFlMRVNIRUVUIEhSRUYiKTsKKyAg
ICBpZiAoc2hvdWxkQmFpbCkKICAgICAgICAgdGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSh0ZXN0
Q29udHJvbGxlci5yZXN1bHRzKTsKLSAgICB9CiB9CiAKLWZ1bmN0aW9uIGZyb250ZW5kX3N0eWxl
U2hlZXRUZXh0UmVjZWl2ZWQodGVzdENvbnRyb2xsZXIsIHN0eWxlU2hlZXRUZXh0KQotewotICAg
IHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaChzdHlsZVNoZWV0VGV4dC5yZXBsYWNlKC9cbi9n
LCAiJiIpKTsKLSAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKHRlc3RDb250cm9sbGVyLnJl
c3VsdHMpOwotfQogPC9zY3JpcHQ+CisKKzxzdHlsZT4KKworYm9keS5tYWlucGFnZSB7CisgICAg
dGV4dC1kZWNvcmF0aW9uOiBub25lOyAvKiBhdCBsZWFzdCBvbmUgdmFsaWQgcHJvcGVydHkgaXMg
bmVjZXNzYXJ5IGZvciBXZWJDb3JlIHRvIG1hdGNoIGEgcnVsZSAqLworICAgIGJhZHByb3BlcnR5
OiAxYmFkdmFsdWUxOworfQorCis8L3N0eWxlPgogPC9oZWFkPgogCi08Ym9keSBjbGFzcz0ibWFp
bjEgbWFpbjIiIG9ubG9hZD0ib25sb2FkKCkiPgorPGJvZHkgY2xhc3M9Im1haW4xIG1haW4yIG1h
aW5wYWdlIiBvbmxvYWQ9Im9ubG9hZCgpIiBzdHlsZT0iZm9udC13ZWlnaHQ6IG5vcm1hbDsgd2lk
dGg6IDgwJSI+CiA8cD4KLVRlc3RzIHRoYXQgcHJvcGVyIHN0YXJ0L2VuZCBvZmZzZXQgcG9zaXRp
b25zIGFyZSByZXBvcnRlZCBmb3IgQ1NTIHJ1bGUgYm9kaWVzLgorVGVzdHMgdGhhdCBwcm9wZXIg
ZGF0YSBhbmQgc3RhcnQvZW5kIG9mZnNldCBwb3NpdGlvbnMgYXJlIHJlcG9ydGVkIGZvciBDU1Mg
c3R5bGUgZGVjbGFyYXRpb25zIGFuZCBwcm9wZXJ0aWVzLgogPC9wPgogCiA8L2JvZHk+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiYzU2
NGQuLjJhODljZmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTAtMDktMTUgIEFsZXhhbmRlciBQYXZsb3Yg
IDxhcGF2bG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcm92aWRlIHNvdXJjZS1iYXNlZCBwcm9wZXJ0aWVzIGZvciBzdHls
ZSBkZWNsYXJhdGlvbnMgdG8gQ1NTUGFyc2VyIGNsaWVudHMKKworICAgICAgICBUaGlzIGNoYW5n
ZToKKyAgICAgICAgLSBFbmFibGVzIEluc3BlY3RvckNTU1N0b3JlIHRvIGV4dHJhY3QgQ1NTIHN0
eWxlc2hlZXQgdGV4dCBmb3IgYWxsIHNvdXJjZS1iYXNlZCBzdHlsZXNoZWV0cywKKyAgICAgICAg
ICBldmVuIHdpdGggdGhlIHJlc291cmNlIHRyYWNraW5nIHR1cm5lZCBvZmYuCisgICAgICAgIC0g
QWRkcyB0byBDU1NQYXJzZXIgYSBjYXBhYmlsaXR5IG9mIHNvdXJjZS1yZWxhdGVkIHN0eWxlIGRl
Y2xhcmF0aW9uIGRhdGEgZXh0cmFjdGlvbjoKKyAgICAgICAgICAqIFN0YXJ0L2VuZCBzb3VyY2Ug
b2Zmc2V0cyBmb3IgYSBkZWNsYXJhdGlvbiwgcmVsYXRpdmUgdG8gdGhlIHBhcmVudCBzdHlsZXNo
ZWV0IHN0YXJ0IG9yIHRoZSAic3R5bGUiIGF0dHJpYnV0ZSB2YWx1ZS4KKyAgICAgICAgICAqIFN0
YXJ0L2VuZCBzb3VyY2Ugb2Zmc2V0cyBmb3IgQ1NTIHByb3BlcnRpZXMsIHJlbGF0aXZlIHRvIHRo
ZSBkZWNsYXJhdGlvbiBzdGFydC4KKyAgICAgICAgICAqIENTUyBwcm9wZXJ0eSBkYXRhOiBuYW1l
LCB2YWx1ZSwgcHJpb3JpdHksIFdlYkNvcmUgcGFyc2FiaWxpdHkgKGkuZS4gaWYgdGhlIHByb3Bl
cnR5IGlzIHVuZGVyc3Rvb2QgYnkgV2ViQ29yZSkuCisgICAgICAgIC0gUHJvdmlkZXMgdGhlIGV4
dHJhY3RlZCBkYXRhIHRvIHRoZSBXZWJJbnNwZWN0b3IgZnJvbnRlbmQgdmlhIEluc3BlY3RvckRP
TUFnZW50OjpnZXRTdHlsZVNvdXJjZURhdGEoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0OTQ5CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGNzcy9DU1NHcmFtbWFyLnk6CisgICAgICAgICogY3NzL0NTU011dGFibGVTdHlsZURl
Y2xhcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bjo6bm9kZSk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXI6OkNTU1BhcnNlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBh
cnNlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlU3R5bGVSdWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6bWFya1J1bGVCb2R5U3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjptYXJrUHJvcGVydHlTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6Om1hcmtQcm9wZXJ0eUVuZCk6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpyZXNldFByb3BlcnR5TWFya3MpOgorICAgICAg
ICAqIGNzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZVJhbmdlOjpTb3VyY2VSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VS
YW5nZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0
YTo6Q1NTUHJvcGVydHlTb3VyY2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
U291cmNlRGF0YTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291
cmNlRGF0YTo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlTb3VyY2VE
YXRhOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0YTo6aW5p
dCk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0YTo6fkNTU1Byb3BlcnR5U291cmNlRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNvdXJjZURhdGE6OmNyZWF0ZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5pZGw6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNTU1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpy
ZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NTdG9yZTo6c3R5bGVTaGVldFRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OnJlc291cmNlU3R5bGVT
aGVldFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OmlubGluZVN0
eWxlU2hlZXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3JlOjpnZXRT
dHlsZVNvdXJjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OmV4
dHJhY3RSYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTU3RvcmU6OmdldFN0
eWxlQXR0cmlidXRlUmFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0b3Jl
OjpnZXRQYXJlbnRTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU1N0
b3JlOjppbmxpbmVTdHlsZUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
U1NTdG9yZS5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnJlc291cmNlQ29udGVudEZv
clVSTCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0eWxlU291cmNlRGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01BZ2VudDo6YnVpbGRPYmplY3RGb3JTdHlsZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisKIDIwMTAtMDktMTUgIFJlbmF0YSBIb2RvdmFu
ICA8cmVuaUBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1
bHplLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCBkMzk0YWI2Li4yZGVjNzgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTAxMCw2ICsxMDEwLDggQEAKICAg
ICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHkuaCcsCiAgICAgICAgICAgICAnY3NzL0NTU1Byb3Bl
cnR5TG9uZ2hhbmQuY3BwJywKICAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5o
JywKKyAgICAgICAgICAgICdjc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCcsCisgICAgICAg
ICAgICAnY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5oJywKICAgICAgICAgICAgICdjc3MvQ1NT
UXVpcmtQcmltaXRpdmVWYWx1ZS5oJywKICAgICAgICAgICAgICdjc3MvQ1NTUmVmbGVjdFZhbHVl
LmNwcCcsCiAgICAgICAgICAgICAnY3NzL0NTU1JlZmxlY3RWYWx1ZS5oJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGMzODRmMzMu
LjA5MmZkNDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtNjI5LDYgKzYyOSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5jcHAgXAogICAgIGNzcy9DU1NQcm9wZXJ0eS5jcHAgXAogICAgIGNzcy9D
U1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCBcCisgICAgY3NzL0NTU1Byb3BlcnR5U291cmNlRGF0YS5j
cHAgXAogICAgIGNzcy9DU1NSZWZsZWN0VmFsdWUuY3BwIFwKICAgICBjc3MvQ1NTUnVsZS5jcHAg
XAogICAgIGNzcy9DU1NSdWxlTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggNWI3ZGE2ZS4uMGMzNjBjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0yOTQwNSw2ICsyOTQwNSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcQ1NTUHJvcGVydHlTb3VyY2VEYXRh
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGNzc1xDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xDU1NRdWlya1ByaW1pdGl2ZVZhbHVl
LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA1YjBhZTg1Li5iNzI3MWVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ1Myw2ICsxNDUzLDggQEAKIAkJODFCRTIwRDMx
MUY0QkMzMjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJD
dXJzb3IuaCAqLzsgfTsKIAkJODJCNjU4OTgxMTg5RTM5MjAwRTA1MkExIC8qIEluc3BlY3RvckNT
U1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MkI2NTg5QTExODlFNDc2
MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmNwcCAqLzsgfTsKKwkJODJFM0Q4REUxMjJFQTBEMTAwM0FFNUJDIC8qIENT
U1Byb3BlcnR5U291cmNlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4MkUzRDhEQzEyMkVBMEQxMDAzQUU1QkMgLyogQ1NTUHJvcGVydHlTb3Vy
Y2VEYXRhLmNwcCAqLzsgfTsKKwkJODJFM0Q4REYxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3Bl
cnR5U291cmNlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODJFM0Q4REQxMjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg0MTlE
MkE3MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTQxMjBEOTJEMDAwMTQxRjhG
IC8qIFNWR1BhdGhCeXRlU3RyZWFtLmggKi87IH07CiAJCTg0MTlEMkE4MTIwRDkyRDAwMDE0MUY4
RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1Bh
dGhCeXRlU3RyZWFtQnVpbGRlci5jcHAgKi87IH07CiAJCTg0MTlEMkE5MTIwRDkyRDAwMDE0MUY4
RiAvKiBTVkdQYXRoQnl0ZVN0cmVhbUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0MTlEMkE2MTIwRDkyRDAwMDE0MUY4RiAvKiBTVkdQYXRo
Qnl0ZVN0cmVhbUJ1aWxkZXIuaCAqLzsgfTsKQEAgLTc0MDksNiArNzQxMSw4IEBACiAJCTgxQkUy
MEE4MTFGNEI2NkYwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0lEQkN1cnNvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4MkI2NTg5NzExODlFMzkyMDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ1NTU3RvcmUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJCNjU4OTkxMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3Rv
ckNTU1N0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3Bl
Y3RvckNTU1N0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODJFM0Q4REMx
MjJFQTBEMTAwM0FFNUJDIC8qIENTU1Byb3BlcnR5U291cmNlRGF0YS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MkUzRDhERDEyMkVBMEQxMDAzQUU1QkMgLyogQ1NT
UHJvcGVydHlTb3VyY2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENT
U1Byb3BlcnR5U291cmNlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDE5
RDJBNDEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEJ5dGVTdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODQxOUQyQTUxMjBEOTJEMDAwMTQxRjhGIC8qIFNWR1BhdGhCeXRlU3Ry
ZWFtQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQ
YXRoQnl0ZVN0cmVhbUJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NDE5RDJBNjEyMEQ5MkQwMDAxNDFGOEYgLyogU1ZHUGF0aEJ5dGVTdHJlYW1CdWlsZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhCeXRlU3RyZWFtQnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwNjMsNiArMTcwNjcsOCBAQAogCQkJ
CTBGNkVDRDQ0MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcCAqLywK
IAkJCQkwRjZFQ0Q0MzBGMjUyRjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5oICov
LAogCQkJCUJDRUE0Nzg5MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NQcm9wZXJ0eU5hbWVzLmluICov
LAorCQkJCTgyRTNEOERDMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJjZURhdGEu
Y3BwICovLAorCQkJCTgyRTNEOEREMTIyRUEwRDEwMDNBRTVCQyAvKiBDU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuaCAqLywKIAkJCQlBODBFNkNDMDBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTUXVpcmtQcmlt
aXRpdmVWYWx1ZS5oICovLAogCQkJCTkzNjI2NDBBMERFMTEzN0QwMDlENUEwMCAvKiBDU1NSZWZs
ZWN0aW9uRGlyZWN0aW9uLmggKi8sCiAJCQkJQkM1QTEyREQwREMwNDE0ODAwQzlBRkFEIC8qIENT
U1JlZmxlY3RWYWx1ZS5jcHAgKi8sCkBAIC0yMDU2MCw2ICsyMDU2Niw3IEBACiAJCQkJODkzQzQ3
QTgxMjM4OTA4QjAwMkIzRDg2IC8qIEZpbGVXcml0ZXJDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODkzQzQ3QjgxMjM4QTA5OTAwMkIzRDg2IC8qIEpTRmlsZUNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4OTNDNDdCQzEyMzhBMEE5MDAyQjNEODYgLyogSlNGaWxlV3JpdGVyQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTgyRTNEOERGMTIyRUEwRDEwMDNBRTVCQyAvKiBD
U1NQcm9wZXJ0eVNvdXJjZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMzA5QzlGMTIzOTUw
QkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNFMkEzMDcxMjNFOURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKQEAgLTIzMDM2LDYgKzIzMDQzLDcgQEAKIAkJCQlBNjIyQThGQzEyMkM0
NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk4OTNDNDdCNzEyMzhBMDk5MDAyQjNEODYgLyogSlNGaWxlQ2FsbGJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODkzQzQ3QkIxMjM4QTBBOTAwMkIzRDg2IC8qIEpTRmlsZVdyaXRlckNhbGxi
YWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgyRTNEOERFMTIyRUEwRDEwMDNBRTVCQyAvKiBD
U1NQcm9wZXJ0eVNvdXJjZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMkEzMDYxMjNF
OURDMDAwOUZFMTJBIC8qIEhUTUxQYXJzZXJJZGlvbXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODkzQzQ3REYxMjNFRjRBOTAwMkIzRDg2IC8qIEpTRGlyZWN0b3J5RW50cnlDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODkzQzQ3Q0MxMjNFRUJBMjAwMkIzRDg2IC8qIEpTRW50cnlDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFy
LnkgYi9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKaW5kZXggODZhMmY3Yy4uYzU1Zjk5OCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55CisrKyBiL1dlYkNvcmUvY3NzL0NTU0dy
YW1tYXIueQpAQCAtMzE0LDcgKzMxNCw3IEBAIHdlYmtpdF9rZXlmcmFtZV9ydWxlOgogOwogCiB3
ZWJraXRfZGVjbHM6Ci0gICAgV0VCS0lUX0RFQ0xTX1NZTSAneycgbWF5YmVfc3BhY2UgZGVjbGFy
YXRpb25fbGlzdCAnfScgeworICAgIFdFQktJVF9ERUNMU19TWU0gJ3snIG1heWJlX3NwYWNlX2Jl
Zm9yZV9kZWNsYXJhdGlvbiBkZWNsYXJhdGlvbl9saXN0ICd9JyB7CiAgICAgICAgIC8qIGNhbiBi
ZSBlbXB0eSAqLwogICAgIH0KIDsKQEAgLTkwMyw4ICs5MDMsMTUgQEAgdW5hcnlfb3BlcmF0b3I6
CiAgIHwgJysnIHsgJCQgPSAxOyB9CiAgIDsKIAorbWF5YmVfc3BhY2VfYmVmb3JlX2RlY2xhcmF0
aW9uOgorICAgIG1heWJlX3NwYWNlIHsKKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nh
c3Q8Q1NTUGFyc2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5U3RhcnQoKTsK
KyAgICB9CisgIDsKKwogcnVsZXNldDoKLSAgICBzZWxlY3Rvcl9saXN0ICd7JyBtYXliZV9zcGFj
ZSBkZWNsYXJhdGlvbl9saXN0IGNsb3NpbmdfYnJhY2UgeworICAgIHNlbGVjdG9yX2xpc3QgJ3sn
IG1heWJlX3NwYWNlX2JlZm9yZV9kZWNsYXJhdGlvbiBkZWNsYXJhdGlvbl9saXN0IGNsb3Npbmdf
YnJhY2UgewogICAgICAgICBDU1NQYXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihw
YXJzZXIpOwogICAgICAgICAkJCA9IHAtPmNyZWF0ZVN0eWxlUnVsZSgkMSk7CiAgICAgfQpAQCAt
MTM1NSw2ICsxMzYyLDggQEAgZGVjbGFyYXRpb25fbGlzdDoKIAogZGVjbF9saXN0OgogICAgIGRl
Y2xhcmF0aW9uICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRp
Y19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0
KCk7CiAgICAgICAgICQkID0gJDE7CiAgICAgfQogICAgIHwgZGVjbGFyYXRpb24gaW52YWxpZF9i
bG9ja19saXN0IG1heWJlX3NwYWNlIHsKQEAgLTEzNjQsMTIgKzEzNzMsMTYgQEAgZGVjbF9saXN0
OgogICAgICAgICAkJCA9IGZhbHNlOwogICAgIH0KICAgICB8IGVycm9yICc7JyBtYXliZV9zcGFj
ZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNl
cik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7CiAgICAgICAgICQkID0gZmFsc2U7
CiAgICAgfQogICAgIHwgZXJyb3IgaW52YWxpZF9ibG9ja19saXN0IGVycm9yICc7JyBtYXliZV9z
cGFjZSB7CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwgZGVjbF9saXN0IGRlY2xh
cmF0aW9uICc7JyBtYXliZV9zcGFjZSB7CisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19j
YXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eVN0YXJ0KCk7
CiAgICAgICAgICQkID0gJDE7CiAgICAgICAgIGlmICgkMikKICAgICAgICAgICAgICQkID0gJDI7
CkBAIC0xMzg2LDE1ICsxMzk5LDIxIEBAIGRlY2xhcmF0aW9uOgogICAgIHByb3BlcnR5ICc6JyBt
YXliZV9zcGFjZSBleHByIHByaW8gewogICAgICAgICAkJCA9IGZhbHNlOwogICAgICAgICBDU1NQ
YXJzZXIqIHAgPSBzdGF0aWNfY2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpOworICAgICAgICBib29s
IGlzUHJvcGVydHlQYXJzZWQgPSBmYWxzZTsKICAgICAgICAgaWYgKCQxICYmICQ0KSB7CiAgICAg
ICAgICAgICBwLT5tX3ZhbHVlTGlzdCA9IHAtPnNpbmtGbG9hdGluZ1ZhbHVlTGlzdCgkNCk7CiAg
ICAgICAgICAgICBpbnQgb2xkUGFyc2VkUHJvcGVydGllcyA9IHAtPm1fbnVtUGFyc2VkUHJvcGVy
dGllczsKICAgICAgICAgICAgICQkID0gcC0+cGFyc2VWYWx1ZSgkMSwgJDUpOwotICAgICAgICAg
ICAgaWYgKCEkJCkKKyAgICAgICAgICAgIGlmICghJCQpIHsKKyAgICAgICAgICAgICAgICBpZiAo
c3RhdGljX2Nhc3Q8aW50PihwLT5tX251bVBhcnNlZFByb3BlcnRpZXMpID09IG9sZFBhcnNlZFBy
b3BlcnRpZXMpCisgICAgICAgICAgICAgICAgICAgIGlzUHJvcGVydHlQYXJzZWQgPSB0cnVlOwog
ICAgICAgICAgICAgICAgIHAtPnJvbGxiYWNrTGFzdFByb3BlcnRpZXMocC0+bV9udW1QYXJzZWRQ
cm9wZXJ0aWVzIC0gb2xkUGFyc2VkUHJvcGVydGllcyk7CisgICAgICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgICAgICBpc1Byb3BlcnR5UGFyc2VkID0gdHJ1ZTsKICAgICAgICAgICAgIGRlbGV0
ZSBwLT5tX3ZhbHVlTGlzdDsKICAgICAgICAgICAgIHAtPm1fdmFsdWVMaXN0ID0gMDsKICAgICAg
ICAgfQorICAgICAgICBwLT5tYXJrUHJvcGVydHlFbmQoJDUsIGlzUHJvcGVydHlQYXJzZWQpOwog
ICAgIH0KICAgICB8CiAgICAgdmFyaWFibGVfcmVmZXJlbmNlIG1heWJlX3NwYWNlIHsKQEAgLTE0
MTcsMTEgKzE0MzYsMTUgQEAgZGVjbGFyYXRpb246CiAgICAgICAgIC8qIFRoZSBkZWZhdWx0IG1v
dmFibGUgdHlwZSB0ZW1wbGF0ZSBoYXMgbGV0dGVyLXNwYWNpbmc6IC5ub25lOyAgSGFuZGxlIHRo
aXMgYnkgbG9va2luZyBmb3IKICAgICAgICAgZXJyb3IgdG9rZW5zIGF0IHRoZSBzdGFydCBvZiBh
biBleHByLCByZWNvdmVyIHRoZSBleHByIGFuZCB0aGVuIHRyZWF0IGFzIGFuIGVycm9yLCBjbGVh
bmluZwogICAgICAgICB1cCBhbmQgZGVsZXRpbmcgdGhlIHNoaWZ0ZWQgZXhwci4gICovCisgICAg
ICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNlcik7CisgICAg
ICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAkJCA9IGZhbHNl
OwogICAgIH0KICAgICB8CiAgICAgcHJvcGVydHkgJzonIG1heWJlX3NwYWNlIGV4cHIgcHJpbyBl
cnJvciB7CiAgICAgICAgIC8qIFdoZW4gd2UgZW5jb3VudGVyIHNvbWV0aGluZyBsaWtlIHAge2Nv
bG9yOiByZWQgIWltcG9ydGFudCBmYWlsO30gd2Ugc2hvdWxkIGRyb3AgdGhlIGRlY2xhcmF0aW9u
ICovCisgICAgICAgIENTU1BhcnNlciogcCA9IHN0YXRpY19jYXN0PENTU1BhcnNlcio+KHBhcnNl
cik7CisgICAgICAgIHAtPm1hcmtQcm9wZXJ0eUVuZChmYWxzZSwgZmFsc2UpOwogICAgICAgICAk
JCA9IGZhbHNlOwogICAgIH0KICAgICB8CkBAIC0xNDMyLDExICsxNDU1LDE1IEBAIGRlY2xhcmF0
aW9uOgogICAgIHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVfc3BhY2UgewogICAgICAgICAvKiBk
aXYgeyBmb250LWZhbWlseTogfSBKdXN0IHJlZHVjZSBhd2F5IHRoaXMgcHJvcGVydHkgd2l0aCBu
byB2YWx1ZS4gKi8KKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFyc2Vy
Kj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7CiAg
ICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwKICAgICBwcm9wZXJ0eSAnOicgbWF5YmVf
c3BhY2UgZXJyb3IgewogICAgICAgICAvKiBpZiB3ZSBjb21lIGFjcm9zcyBydWxlcyB3aXRoIGlu
dmFsaWQgdmFsdWVzIGxpa2UgdGhpcyBjYXNlOiBwIHsgd2VpZ2h0OiAqOyB9LCBqdXN0IGRpc2Nh
cmQgdGhlIHJ1bGUgKi8KKyAgICAgICAgQ1NTUGFyc2VyKiBwID0gc3RhdGljX2Nhc3Q8Q1NTUGFy
c2VyKj4ocGFyc2VyKTsKKyAgICAgICAgcC0+bWFya1Byb3BlcnR5RW5kKGZhbHNlLCBmYWxzZSk7
CiAgICAgICAgICQkID0gZmFsc2U7CiAgICAgfQogICAgIHwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Y3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmggYi9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbi5oCmluZGV4IGY3NzU5ZjQuLmQ2MjliY2YgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvY3NzL0NTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9jc3Mv
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldE5vZGUoTm9kZSogbm9kZSkgeyBtX25vZGUgPSBub2RlOyB9CiAKKyAgICBO
b2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlOyB9CisKICAgICB2aXJ0dWFsIGJvb2wg
aXNNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAg
IHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDdjMzU3Mzku
LjRmNDU1NWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkNTU1By
aW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHkuaCIKICNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmgiCiAjaW5j
bHVkZSAiQ1NTUXVpcmtQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1JlZmxlY3RWYWx1
ZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0xNDcsNyArMTQ4LDEwIEBAIENTU1Bh
cnNlcjo6Q1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZykKICAgICAsIG1fZGVmYXVsdE5hbWVz
cGFjZShzdGFyQXRvbSkKICAgICAsIG1fcnVsZUJvZHlTdGFydE9mZnNldCgwKQogICAgICwgbV9y
dWxlQm9keUVuZE9mZnNldCgwKQotICAgICwgbV9ydWxlUmFuZ2VzKDApCisgICAgLCBtX3Byb3Bl
cnR5U3RhcnRPZmZzZXQoVUlOVF9NQVgpCisgICAgLCBtX3Byb3BlcnR5RW5kT2Zmc2V0KFVJTlRf
TUFYKQorICAgICwgbV9ydWxlUmFuZ2VNYXAoMCkKKyAgICAsIG1fY3VycmVudFN0eWxlRGF0YSgw
KQogICAgICwgbV9kYXRhKDApCiAgICAgLCB5eV9zdGFydCgxKQogICAgICwgbV9saW5lTnVtYmVy
KDApCkBAIC0xNTksNiArMTYzLDcgQEAgQ1NTUGFyc2VyOjpDU1NQYXJzZXIoYm9vbCBzdHJpY3RQ
YXJzaW5nKQogI2lmIFlZREVCVUcgPiAwCiAgICAgY3NzeXlkZWJ1ZyA9IDE7CiAjZW5kaWYKKyAg
ICBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OmluaXQoKTsKIH0KIAogQ1NTUGFyc2VyOjp+Q1NTUGFy
c2VyKCkKQEAgLTIyMSwxNiArMjI2LDE5IEBAIHZvaWQgQ1NTUGFyc2VyOjpzZXR1cFBhcnNlcihj
b25zdCBjaGFyKiBwcmVmaXgsIGNvbnN0IFN0cmluZyYgc3RyaW5nLCBjb25zdCBjaGFyCiAgICAg
cmVzZXRSdWxlQm9keU1hcmtzKCk7CiB9CiAKLXZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNoZWV0KENT
U1N0eWxlU2hlZXQqIHNoZWV0LCBjb25zdCBTdHJpbmcmIHN0cmluZywgaW50IHN0YXJ0TGluZU51
bWJlciwgU3R5bGVSdWxlUmFuZ2VzKiBydWxlUmFuZ2VNYXApCit2b2lkIENTU1BhcnNlcjo6cGFy
c2VTaGVldChDU1NTdHlsZVNoZWV0KiBzaGVldCwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCBz
dGFydExpbmVOdW1iZXIsIFN0eWxlUnVsZVJhbmdlTWFwKiBydWxlUmFuZ2VNYXApCiB7CiAgICAg
bV9zdHlsZVNoZWV0ID0gc2hlZXQ7CiAgICAgbV9kZWZhdWx0TmFtZXNwYWNlID0gc3RhckF0b207
IC8vIFJlc2V0IHRoZSBkZWZhdWx0IG5hbWVzcGFjZS4KLSAgICBtX3J1bGVSYW5nZXMgPSBydWxl
UmFuZ2VNYXA7CisgICAgbV9ydWxlUmFuZ2VNYXAgPSBydWxlUmFuZ2VNYXA7CisgICAgaWYgKHJ1
bGVSYW5nZU1hcCkKKyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhID0gQ1NTU3R5bGVTb3VyY2VE
YXRhOjpjcmVhdGUoKTsKIAogICAgIG1fbGluZU51bWJlciA9IHN0YXJ0TGluZU51bWJlcjsKICAg
ICBzZXR1cFBhcnNlcigiIiwgc3RyaW5nLCAiIik7CiAgICAgY3NzeXlwYXJzZSh0aGlzKTsKLSAg
ICBtX3J1bGVSYW5nZXMgPSAwOworICAgIG1fcnVsZVJhbmdlTWFwID0gMDsKKyAgICBtX2N1cnJl
bnRTdHlsZURhdGEgPSAwOwogICAgIG1fcnVsZSA9IDA7CiB9CiAKQEAgLTMyNywxMCArMzM1LDE0
IEBAIHZvaWQgQ1NTUGFyc2VyOjpwYXJzZVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBE
b2N1bWVudCogZG9jLCBDU1NTZWxlY3RvckxpCiAgICAgbV9zZWxlY3Rvckxpc3RGb3JQYXJzZVNl
bGVjdG9yID0gMDsKIH0KIAotYm9vbCBDU1NQYXJzZXI6OnBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb24qIGRlY2xhcmF0aW9uLCBjb25zdCBTdHJpbmcmIHN0cmluZykK
K2Jvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QgU3RyaW5nJiBzdHJpbmcsIENTU1N0eWxlU291cmNlRGF0
YSogc3R5bGVTb3VyY2VEYXRhKQogeworICAgIC8vIExlbmd0aCBvZiB0aGUgIkAtd2Via2l0LWRl
Y2xzeyIgcHJlZml4LgorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBwcmVmaXhMZW5ndGggPSAx
NTsKKwogICAgIEFTU0VSVCghZGVjbGFyYXRpb24tPnN0eWxlc2hlZXQoKSB8fCBkZWNsYXJhdGlv
bi0+c3R5bGVzaGVldCgpLT5pc0NTU1N0eWxlU2hlZXQoKSk7CiAgICAgbV9zdHlsZVNoZWV0ID0g
c3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KGRlY2xhcmF0aW9uLT5zdHlsZXNoZWV0KCkpOwor
ICAgIG1fY3VycmVudFN0eWxlRGF0YSA9IHN0eWxlU291cmNlRGF0YTsKIAogICAgIHNldHVwUGFy
c2VyKCJALXdlYmtpdC1kZWNsc3siLCBzdHJpbmcsICJ9ICIpOwogICAgIGNzc3l5cGFyc2UodGhp
cyk7CkBAIC0zNDUsNiArMzU3LDE3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZURlY2xhcmF0aW9u
KENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBkZWNsYXJhdGlvbiwgY29uc3QKICAgICAgICAg
Y2xlYXJQcm9wZXJ0aWVzKCk7CiAgICAgfQogCisgICAgaWYgKG1fY3VycmVudFN0eWxlRGF0YSkg
eworICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnN0eWxlQm9keVJhbmdlLnN0YXJ0ID0gMDsK
KyAgICAgICAgbV9jdXJyZW50U3R5bGVEYXRhLT5zdHlsZUJvZHlSYW5nZS5lbmQgPSBzdHJpbmcu
bGVuZ3RoKCk7CisgICAgICAgIGZvciAoVmVjdG9yPENTU1Byb3BlcnR5U291cmNlRGF0YT46Oml0
ZXJhdG9yIGl0ID0gbV9jdXJyZW50U3R5bGVEYXRhLT5wcm9wZXJ0eURhdGEuYmVnaW4oKTsgaXQg
IT0gbV9jdXJyZW50U3R5bGVEYXRhLT5wcm9wZXJ0eURhdGEuZW5kKCk7ICsraXQpIHsKKyAgICAg
ICAgICAgICgqaXQpLnJhbmdlLnN0YXJ0IC09IHByZWZpeExlbmd0aDsKKyAgICAgICAgICAgICgq
aXQpLnJhbmdlLmVuZCAtPSBwcmVmaXhMZW5ndGg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBp
ZiAoIW1fcnVsZVJhbmdlTWFwKQorICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEgPSAwOwogICAg
IHJldHVybiBvazsKIH0KIApAQCAtNTQxNiw4ICs1NDM5LDEyIEBAIENTU1J1bGUqIENTU1BhcnNl
cjo6Y3JlYXRlU3R5bGVSdWxlKFZlY3RvcjxDU1NTZWxlY3Rvcio+KiBzZWxlY3RvcnMpCiAgICAg
ICAgIHJ1bGUtPnNldERlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVh
dGUocnVsZS5nZXQoKSwgbV9wYXJzZWRQcm9wZXJ0aWVzLCBtX251bVBhcnNlZFByb3BlcnRpZXMp
KTsKICAgICAgICAgcmVzdWx0ID0gcnVsZS5nZXQoKTsKICAgICAgICAgbV9wYXJzZWRTdHlsZU9i
amVjdHMuYXBwZW5kKHJ1bGUucmVsZWFzZSgpKTsKLSAgICAgICAgaWYgKG1fcnVsZVJhbmdlcykK
LSAgICAgICAgICAgIG1fcnVsZVJhbmdlcy0+c2V0KHJlc3VsdCwgc3RkOjpwYWlyPHVuc2lnbmVk
LCB1bnNpZ25lZD4obV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5kT2Zmc2V0KSk7
CisgICAgICAgIGlmIChtX3J1bGVSYW5nZU1hcCkgeworICAgICAgICAgICAgQVNTRVJUKG1fY3Vy
cmVudFN0eWxlRGF0YSk7CisgICAgICAgICAgICBtX2N1cnJlbnRTdHlsZURhdGEtPnN0eWxlQm9k
eVJhbmdlID0gU291cmNlUmFuZ2UobV9ydWxlQm9keVN0YXJ0T2Zmc2V0LCBtX3J1bGVCb2R5RW5k
T2Zmc2V0KTsKKyAgICAgICAgICAgIG1fcnVsZVJhbmdlTWFwLT5zZXQocmVzdWx0LCBtX2N1cnJl
bnRTdHlsZURhdGEucmVsZWFzZSgpKTsKKyAgICAgICAgICAgIG1fY3VycmVudFN0eWxlRGF0YSA9
IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIH0KICAgICB9CiAgICAgcmVz
ZXRSdWxlQm9keU1hcmtzKCk7CiAgICAgY2xlYXJQcm9wZXJ0aWVzKCk7CkBAIC01NjcwLDcgKzU2
OTcsOSBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlTGFzdFNlbGVjdG9yTGluZUFuZFBvc2l0aW9u
KCkKIHZvaWQgQ1NTUGFyc2VyOjptYXJrUnVsZUJvZHlTdGFydCgpCiB7CiAgICAgdW5zaWduZWQg
b2Zmc2V0ID0geXl0ZXh0IC0gbV9kYXRhOwotICAgIGlmICghbV9ydWxlQm9keVN0YXJ0T2Zmc2V0
IHx8IG9mZnNldCA8IG1fcnVsZUJvZHlTdGFydE9mZnNldCkKKyAgICBpZiAoKnl5dGV4dCA9PSAn
eycpCisgICAgICAgICsrb2Zmc2V0OyAvLyBTa2lwIHRoZSBydWxlIGJvZHkgb3BlbmluZyBicmFj
ZS4KKyAgICBpZiAob2Zmc2V0ID4gbV9ydWxlQm9keVN0YXJ0T2Zmc2V0KQogICAgICAgICBtX3J1
bGVCb2R5U3RhcnRPZmZzZXQgPSBvZmZzZXQ7CiB9CiAKQEAgLTU2ODEsNiArNTcxMCwzOSBAQCB2
b2lkIENTU1BhcnNlcjo6bWFya1J1bGVCb2R5RW5kKCkKICAgICAgICAgbV9ydWxlQm9keUVuZE9m
ZnNldCA9IG9mZnNldDsKIH0KIAordm9pZCBDU1NQYXJzZXI6Om1hcmtQcm9wZXJ0eVN0YXJ0KCkK
K3sKKyAgICB1bnNpZ25lZCBvZmZzZXQgPSB5eXRleHQgLSBtX2RhdGE7CisgICAgbV9wcm9wZXJ0
eVN0YXJ0T2Zmc2V0ID0gb2Zmc2V0OworfQorCit2b2lkIENTU1BhcnNlcjo6bWFya1Byb3BlcnR5
RW5kKGJvb2wgaXNJbXBvcnRhbnRGb3VuZCwgYm9vbCBpc1Byb3BlcnR5UGFyc2VkKQoreworICAg
IHVuc2lnbmVkIG9mZnNldCA9IHl5dGV4dCAtIG1fZGF0YTsKKyAgICBpZiAoKnl5dGV4dCA9PSAn
OycpIC8vIEluY2x1ZGUgc2VtaWNvbG9uIGludG8gdGhlIHByb3BlcnR5IHRleHQuCisgICAgICAg
ICsrb2Zmc2V0OworICAgIG1fcHJvcGVydHlFbmRPZmZzZXQgPSBvZmZzZXQ7CisgICAgaWYgKG1f
cHJvcGVydHlTdGFydE9mZnNldCAhPSBVSU5UX01BWCAmJiBtX2N1cnJlbnRTdHlsZURhdGEpIHsK
KyAgICAgICAgLy8gVGhpcyBzdHVmZiBpcyBvbmx5IGV4ZWN1dGVkIHdoZW4gdGhlIHN0eWxlIGRh
dGEgcmV0cmlldmFsIGlzIHJlcXVlc3RlZCBieSBjbGllbnQuCisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHN0YXJ0ID0gbV9wcm9wZXJ0eVN0YXJ0T2Zmc2V0OworICAgICAgICBjb25zdCB1bnNpZ25l
ZCBlbmQgPSBtX3Byb3BlcnR5RW5kT2Zmc2V0OworICAgICAgICBBU1NFUlQoc3RhcnQgPCBlbmQp
OworICAgICAgICBTdHJpbmcgcHJvcGVydHlTdHJpbmcgPSBTdHJpbmcobV9kYXRhICsgc3RhcnQs
IGVuZCAtIHN0YXJ0KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgaWYgKHByb3BlcnR5U3Ry
aW5nLmVuZHNXaXRoKCI7IiwgdHJ1ZSkpCisgICAgICAgICAgICBwcm9wZXJ0eVN0cmluZyA9IHBy
b3BlcnR5U3RyaW5nLmxlZnQocHJvcGVydHlTdHJpbmcubGVuZ3RoKCkgLSAxKTsKKyAgICAgICAg
VmVjdG9yPFN0cmluZz4gcHJvcGVydHlDb21wb25lbnRzOworICAgICAgICBzaXplX3QgY29sb25J
bmRleCA9IHByb3BlcnR5U3RyaW5nLmZpbmQoIjoiKTsKKyAgICAgICAgQVNTRVJUKGNvbG9uSW5k
ZXggIT0gbm90Rm91bmQpOworCisgICAgICAgIFN0cmluZyBuYW1lID0gcHJvcGVydHlTdHJpbmcu
bGVmdChjb2xvbkluZGV4KS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgU3RyaW5nIHZhbHVl
ID0gcHJvcGVydHlTdHJpbmcuc3Vic3RyaW5nKGNvbG9uSW5kZXggKyAxLCBwcm9wZXJ0eVN0cmlu
Zy5sZW5ndGgoKSkuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgICAgIC8vIFRoZSBwcm9wZXJ0eSBy
YW5nZSBpcyByZWxhdGl2ZSB0byB0aGUgZGVjbGFyYXRpb24gc3RhcnQgb2Zmc2V0LgorICAgICAg
ICBtX2N1cnJlbnRTdHlsZURhdGEtPnByb3BlcnR5RGF0YS5hcHBlbmQoCisgICAgICAgICAgICBD
U1NQcm9wZXJ0eVNvdXJjZURhdGEobmFtZSwgdmFsdWUsIGlzSW1wb3J0YW50Rm91bmQsIGlzUHJv
cGVydHlQYXJzZWQsIFNvdXJjZVJhbmdlKG1fcHJvcGVydHlTdGFydE9mZnNldCAtIG1fcnVsZUJv
ZHlTdGFydE9mZnNldCwgbV9wcm9wZXJ0eUVuZE9mZnNldCAtIG1fcnVsZUJvZHlTdGFydE9mZnNl
dCkpKTsKKyAgICB9CisgICAgcmVzZXRQcm9wZXJ0eU1hcmtzKCk7Cit9CisKIHN0YXRpYyBpbnQg
Y3NzUHJvcGVydHlJRChjb25zdCBVQ2hhciogcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBsZW5ndGgp
CiB7CiAgICAgaWYgKCFsZW5ndGgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDQ3ZjBiZWQuLmY4YjI0ZGYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNT
U1BhcnNlclZhbHVlcy5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5U291cmNlRGF0YS5oIgogI2lu
Y2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTUsMTggKzU2LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIENTU1BhcnNlciB7CiAgICAgcHVibGljOgotICAgICAgICB0eXBlZGVm
IEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNpZ25lZD4gPiBT
dHlsZVJ1bGVSYW5nZXM7Ci0KICAgICAgICAgQ1NTUGFyc2VyKGJvb2wgc3RyaWN0UGFyc2luZyA9
IHRydWUpOwogICAgICAgICB+Q1NTUGFyc2VyKCk7CiAKLSAgICAgICAgdm9pZCBwYXJzZVNoZWV0
KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyID0gMCwg
U3R5bGVSdWxlUmFuZ2VzKiBydWxlUmFuZ2VNYXAgPSAwKTsKKyAgICAgICAgdm9pZCBwYXJzZVNo
ZWV0KENTU1N0eWxlU2hlZXQqLCBjb25zdCBTdHJpbmcmLCBpbnQgc3RhcnRMaW5lTnVtYmVyID0g
MCwgU3R5bGVSdWxlUmFuZ2VNYXAqIHJ1bGVSYW5nZU1hcCA9IDApOwogICAgICAgICBQYXNzUmVm
UHRyPENTU1J1bGU+IHBhcnNlUnVsZShDU1NTdHlsZVNoZWV0KiwgY29uc3QgU3RyaW5nJik7CiAg
ICAgICAgIFBhc3NSZWZQdHI8Q1NTUnVsZT4gcGFyc2VLZXlmcmFtZVJ1bGUoQ1NTU3R5bGVTaGVl
dCosIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBib29sIHBhcnNlVmFsdWUoQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24qLCBpbnQgcHJvcElkLCBjb25zdCBTdHJpbmcmLCBib29sIGltcG9ydGFu
dCk7CiAgICAgICAgIHN0YXRpYyBib29sIHBhcnNlQ29sb3IoUkdCQTMyJiBjb2xvciwgY29uc3Qg
U3RyaW5nJiwgYm9vbCBzdHJpY3QgPSBmYWxzZSk7CiAgICAgICAgIGJvb2wgcGFyc2VDb2xvcihD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYpOwotICAgICAgICBib29s
IHBhcnNlRGVjbGFyYXRpb24oQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJp
bmcmKTsKKyAgICAgICAgYm9vbCBwYXJzZURlY2xhcmF0aW9uKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiwgY29uc3QgU3RyaW5nJiwgQ1NTU3R5bGVTb3VyY2VEYXRhKiBzdHlsZVNvdXJjZURh
dGEgPSAwKTsKICAgICAgICAgYm9vbCBwYXJzZU1lZGlhUXVlcnkoTWVkaWFMaXN0KiwgY29uc3Qg
U3RyaW5nJik7CiAKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CkBAIC0yNDQs
MTAgKzI0MywxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIHRva2VuaXplciBt
ZXRob2RzIGFuZCBkYXRhCiAgICAgICAgIHVuc2lnbmVkIG1fcnVsZUJvZHlTdGFydE9mZnNldDsK
ICAgICAgICAgdW5zaWduZWQgbV9ydWxlQm9keUVuZE9mZnNldDsKLSAgICAgICAgU3R5bGVSdWxl
UmFuZ2VzKiBtX3J1bGVSYW5nZXM7CisgICAgICAgIHVuc2lnbmVkIG1fcHJvcGVydHlTdGFydE9m
ZnNldDsKKyAgICAgICAgdW5zaWduZWQgbV9wcm9wZXJ0eUVuZE9mZnNldDsKKyAgICAgICAgU3R5
bGVSdWxlUmFuZ2VNYXAqIG1fcnVsZVJhbmdlTWFwOworICAgICAgICBSZWZQdHI8Q1NTU3R5bGVT
b3VyY2VEYXRhPiBtX2N1cnJlbnRTdHlsZURhdGE7CiAgICAgICAgIHZvaWQgbWFya1J1bGVCb2R5
U3RhcnQoKTsKICAgICAgICAgdm9pZCBtYXJrUnVsZUJvZHlFbmQoKTsKKyAgICAgICAgdm9pZCBt
YXJrUHJvcGVydHlTdGFydCgpOworICAgICAgICB2b2lkIG1hcmtQcm9wZXJ0eUVuZChib29sIGlz
SW1wb3J0YW50Rm91bmQsIGJvb2wgaXNQcm9wZXJ0eVBhcnNlZCk7CiAgICAgICAgIHZvaWQgcmVz
ZXRSdWxlQm9keU1hcmtzKCkgeyBtX3J1bGVCb2R5U3RhcnRPZmZzZXQgPSBtX3J1bGVCb2R5RW5k
T2Zmc2V0ID0gMDsgfQorICAgICAgICB2b2lkIHJlc2V0UHJvcGVydHlNYXJrcygpIHsgbV9wcm9w
ZXJ0eVN0YXJ0T2Zmc2V0ID0gbV9wcm9wZXJ0eUVuZE9mZnNldCA9IFVJTlRfTUFYOyB9CiAgICAg
ICAgIGludCBsZXgodm9pZCogeXlsdmFsKTsKICAgICAgICAgaW50IHRva2VuKCkgeyByZXR1cm4g
eXlUb2s7IH0KICAgICAgICAgVUNoYXIqIHRleHQoaW50KiBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5U291cmNlRGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MTYyODAzMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5U291cmNl
RGF0YS5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZmRlZiBT
S0lQX1NUQVRJQ19DT05TVFJVQ1RPUlNfT05fR0NDCisjZGVmaW5lIENTU1BST1BFUlRZU09VUkNF
REFUQV9ISURFX0dMT0JBTFMgMQorI2VuZGlmCisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1N0
YXRpY0NvbnN0cnVjdG9ycy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTb3VyY2VSYW5nZTo6U291cmNlUmFuZ2UoKQorICAgIDog
c3RhcnQoMCkKKyAgICAsIGVuZCgwKQoreworfQorCitTb3VyY2VSYW5nZTo6U291cmNlUmFuZ2Uo
dW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkKKyAgICA6IHN0YXJ0KHN0YXJ0KQorICAgICwg
ZW5kKGVuZCkKK3sKK30KKworU291cmNlUmFuZ2UmIFNvdXJjZVJhbmdlOjpvcGVyYXRvcj0oY29u
c3QgU291cmNlUmFuZ2UmIG90aGVyKQoreworICAgIHRoaXMtPnN0YXJ0ID0gb3RoZXIuc3RhcnQ7
CisgICAgdGhpcy0+ZW5kID0gb3RoZXIuZW5kOworICAgIHJldHVybiAqdGhpczsKK30KKworQ1NT
UHJvcGVydHlTb3VyY2VEYXRhOjpDU1NQcm9wZXJ0eVNvdXJjZURhdGEoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIGltcG9ydGFudCwgYm9vbCBwYXJzZWRPaywg
Y29uc3QgU291cmNlUmFuZ2UmIHJhbmdlKQorICAgIDogbmFtZShuYW1lKQorICAgICwgdmFsdWUo
dmFsdWUpCisgICAgLCBpbXBvcnRhbnQoaW1wb3J0YW50KQorICAgICwgcGFyc2VkT2socGFyc2Vk
T2spCisgICAgLCByYW5nZShyYW5nZSkKK3sKK30KKworQ1NTUHJvcGVydHlTb3VyY2VEYXRhOjpD
U1NQcm9wZXJ0eVNvdXJjZURhdGEoY29uc3QgQ1NTUHJvcGVydHlTb3VyY2VEYXRhJiBvdGhlcikK
KyAgICA6IG5hbWUob3RoZXIubmFtZSkKKyAgICAsIHZhbHVlKG90aGVyLnZhbHVlKQorICAgICwg
aW1wb3J0YW50KG90aGVyLmltcG9ydGFudCkKKyAgICAsIHBhcnNlZE9rKG90aGVyLnBhcnNlZE9r
KQorICAgICwgcmFuZ2Uob3RoZXIucmFuZ2UpCit7Cit9CisKK0NTU1Byb3BlcnR5U291cmNlRGF0
YTo6Q1NTUHJvcGVydHlTb3VyY2VEYXRhKCkKKyAgICA6IG5hbWUoIiIpCisgICAgLCB2YWx1ZSgi
IikKKyAgICAsIGltcG9ydGFudChmYWxzZSkKKyAgICAsIHBhcnNlZE9rKGZhbHNlKQorICAgICwg
cmFuZ2UoU291cmNlUmFuZ2UoMCwgMCkpCit7Cit9CisKK0NTU1Byb3BlcnR5U291cmNlRGF0YSYg
Q1NTUHJvcGVydHlTb3VyY2VEYXRhOjpvcGVyYXRvcj0oY29uc3QgQ1NTUHJvcGVydHlTb3VyY2VE
YXRhJiBvdGhlcikKK3sKKyAgICBuYW1lID0gb3RoZXIubmFtZTsKKyAgICB2YWx1ZSA9IG90aGVy
LnZhbHVlOworICAgIGltcG9ydGFudCA9IG90aGVyLmltcG9ydGFudDsKKyAgICBwYXJzZWRPayA9
IG90aGVyLnBhcnNlZE9rOworICAgIHJhbmdlID0gb3RoZXIucmFuZ2U7CisgICAgcmV0dXJuICp0
aGlzOworfQorCitTdHJpbmcgQ1NTUHJvcGVydHlTb3VyY2VEYXRhOjp0b1N0cmluZygpIGNvbnN0
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVtcHR5VmFsdWUsICgiZSIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgaW1wb3J0YW50U3VmZml4LCAoIiAhaW1w
b3J0YW50IikpOworICAgIGlmICghbmFtZSAmJiB2YWx1ZSA9PSBlbXB0eVZhbHVlKQorICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBTdHJpbmcgcmVzdWx0ID0gbmFtZTsKKyAgICByZXN1
bHQgKz0gIjogIjsKKyAgICByZXN1bHQgKz0gdmFsdWU7CisgICAgaWYgKGltcG9ydGFudCkKKyAg
ICAgICAgcmVzdWx0ICs9IGltcG9ydGFudFN1ZmZpeDsKKyAgICByZXN1bHQgKz0gIjsiOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3Vuc2lnbmVkIENTU1Byb3BlcnR5U291cmNlRGF0YTo6aGFz
aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZ0hhc2g6Omhhc2gobmFtZSkgKyAzICogU3Ry
aW5nSGFzaDo6aGFzaCh2YWx1ZSkgKyA3ICogaW1wb3J0YW50ICsgMTMgKiBwYXJzZWRPayArIDMx
OworfQorCisvLyBHbG9iYWwgaW5pdCByb3V0aW5lcworREVGSU5FX0dMT0JBTChDU1NQcm9wZXJ0
eVNvdXJjZURhdGEsIGVtcHR5Q1NTUHJvcGVydHlTb3VyY2VEYXRhLCAiIiwgImUiLCBmYWxzZSwg
ZmFsc2UpCisKKy8vIHN0YXRpYwordm9pZCBDU1NQcm9wZXJ0eVNvdXJjZURhdGE6OmluaXQoKQor
eworICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkOworICAgIGlmICghaW5pdGlhbGl6ZWQpIHsK
KyAgICAgICAgbmV3ICgodm9pZCAqKSAmZW1wdHlDU1NQcm9wZXJ0eVNvdXJjZURhdGEpIENTU1By
b3BlcnR5U291cmNlRGF0YSgiIiwgImUiLCBmYWxzZSwgZmFsc2UsIFNvdXJjZVJhbmdlKDAsIDAp
KTsKKyAgICAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRh
LmggYi9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eVNvdXJjZURhdGEuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42YjJkMzY5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ1NTUHJv
cGVydHlTb3VyY2VEYXRhX2gKKyNkZWZpbmUgQ1NTUHJvcGVydHlTb3VyY2VEYXRhX2gKKworI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8dXRpbGl0eT4KKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1N0eWxlUnVsZTsKKwor
c3RydWN0IFNvdXJjZVJhbmdlIHsKKyAgICBTb3VyY2VSYW5nZSgpOworICAgIFNvdXJjZVJhbmdl
KHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQpOworICAgIFNvdXJjZVJhbmdlJiBvcGVyYXRv
cj0oY29uc3QgU291cmNlUmFuZ2UmIG90aGVyKTsKKworICAgIHVuc2lnbmVkIHN0YXJ0OworICAg
IHVuc2lnbmVkIGVuZDsKK307CisKK3N0cnVjdCBDU1NQcm9wZXJ0eVNvdXJjZURhdGEgeworICAg
IHN0YXRpYyB2b2lkIGluaXQoKTsKKworICAgIENTU1Byb3BlcnR5U291cmNlRGF0YShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgaW1wb3J0YW50LCBib29sIHBh
cnNlZE9rLCBjb25zdCBTb3VyY2VSYW5nZSYgcmFuZ2UpOworICAgIENTU1Byb3BlcnR5U291cmNl
RGF0YShjb25zdCBDU1NQcm9wZXJ0eVNvdXJjZURhdGEmIG90aGVyKTsKKyAgICBDU1NQcm9wZXJ0
eVNvdXJjZURhdGEoKTsKKyAgICBBTFdBWVNfSU5MSU5FIH5DU1NQcm9wZXJ0eVNvdXJjZURhdGEo
KSB7IH0KKworICAgIENTU1Byb3BlcnR5U291cmNlRGF0YSYgb3BlcmF0b3I9KGNvbnN0IENTU1By
b3BlcnR5U291cmNlRGF0YSYgb3RoZXIpOworICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0Owor
ICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdDsKKworICAgIFN0cmluZyBuYW1lOworICAgIFN0cmlu
ZyB2YWx1ZTsKKyAgICBib29sIGltcG9ydGFudDsKKyAgICBib29sIHBhcnNlZE9rOworICAgIFNv
dXJjZVJhbmdlIHJhbmdlOworfTsKKworI2lmbmRlZiBDU1NQUk9QRVJUWVNPVVJDRURBVEFfSElE
RV9HTE9CQUxTCitleHRlcm4gY29uc3QgQ1NTUHJvcGVydHlTb3VyY2VEYXRhIGVtcHR5Q1NTUHJv
cGVydHlTb3VyY2VEYXRhOworI2VuZGlmCisKK3N0cnVjdCBDU1NTdHlsZVNvdXJjZURhdGEgOiBw
dWJsaWMgUmVmQ291bnRlZDxDU1NTdHlsZVNvdXJjZURhdGE+IHsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IENTU1N0eWxlU291cmNlRGF0YSgpKTsKKyAgICB9CisKKyAgICAvLyBSYW5n
ZSBvZiB0aGUgc3R5bGUgdGV4dCBpbiB0aGUgZW5jbG9zaW5nIHNvdXJjZSAoc3RhcnQgYW5kIGVu
ZCBvZmZzZXRzIGluY2x1c2l2ZSkuCisgICAgU291cmNlUmFuZ2Ugc3R5bGVCb2R5UmFuZ2U7Cisg
ICAgVmVjdG9yPENTU1Byb3BlcnR5U291cmNlRGF0YT4gcHJvcGVydHlEYXRhOworfTsKK3R5cGVk
ZWYgSGFzaE1hcDxDU1NTdHlsZVJ1bGUqLCBSZWZQdHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiA+IFN0
eWxlUnVsZVJhbmdlTWFwOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBD
U1NQcm9wZXJ0eVNvdXJjZURhdGFfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmlkbCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwKaW5kZXggMTY5YjE4
OC4uOTliMDJmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCkBAIC0xODgsNyArMTg4LDcgQEAg
bW9kdWxlIGNvcmUgewogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0SW5saW5lU3R5bGUo
aW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSBzdHlsZSk7CiAgICAgICAgIFtoYW5kbGVyPURPTV0g
dm9pZCBnZXRDb21wdXRlZFN0eWxlKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgc3R5bGUpOwog
ICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTaGVldChpbiBsb25nIHN0eWxlU2hl
ZXRJZCwgb3V0IE9iamVjdCBzdHlsZVNoZWV0KTsKLSAgICAgICAgW2hhbmRsZXI9RE9NXSB2b2lk
IGdldFJ1bGVSYW5nZXMoaW4gbG9uZyBzdHlsZVNoZWV0SWQsIG91dCBWYWx1ZSByYW5nZXMpOwor
ICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQgZ2V0U3R5bGVTb3VyY2VEYXRhKGluIGxvbmcgc3R5
bGVTaGVldElkLCBvdXQgT2JqZWN0IHN0eWxlU291cmNlRGF0YSk7CiAgICAgICAgIFtoYW5kbGVy
PURPTV0gdm9pZCBhcHBseVN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHls
ZVRleHQsIGluIFN0cmluZyBwcm9wZXJ0eU5hbWUsIG91dCBib29sZWFuIHN1Y2Nlc3MsIG91dCBW
YWx1ZSBzdHlsZSwgb3V0IEFycmF5IGNoYW5nZWRQcm9wZXJ0aWVzKTsKICAgICAgICAgW2hhbmRs
ZXI9RE9NXSB2b2lkIHNldFN0eWxlVGV4dChpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBzdHls
ZVRleHQsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwogICAgICAgICBbaGFuZGxlcj1ET01dIHZvaWQg
c2V0U3R5bGVQcm9wZXJ0eShpbiBsb25nIHN0eWxlSWQsIGluIFN0cmluZyBuYW1lLCBpbiBTdHJp
bmcgdmFsdWUsIG91dCBib29sZWFuIHN1Y2Nlc3MpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTU3RvcmUuY3BwCmluZGV4IGMyZGM0ZjEuLmIwMTk4NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NTdG9yZS5jcHAKQEAgLTM3LDExICszNywxOCBAQAogI2luY2x1ZGUgIkNTU1N0
eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJD
U1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5o
IgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCisjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjcsNiArNzQsNyBAQCB2b2lkIEluc3BlY3Rv
ckNTU1N0b3JlOjpyZXNldCgpCiAgICAgbV9zdHlsZVNoZWV0VG9PZmZzZXRzLmNsZWFyKCk7CiAg
ICAgbV9zdHlsZVNoZWV0VG9JZC5jbGVhcigpOwogICAgIG1faWRUb1N0eWxlU2hlZXQuY2xlYXIo
KTsKKyAgICBtX2lkVG9TdHlsZVNoZWV0VGV4dC5jbGVhcigpOwogICAgIG1faWRUb0Rpc2FibGVk
U3R5bGUuY2xlYXIoKTsKICAgICBtX2RvY3VtZW50Tm9kZVRvSW5zcGVjdG9yU3R5bGVTaGVldE1h
cC5jbGVhcigpOwogCkBAIC0xMDQsNDggKzExMiwxNDUgQEAgQ1NTU3R5bGVTaGVldCogSW5zcGVj
dG9yQ1NTU3RvcmU6Omluc3BlY3RvclN0eWxlU2hlZXQoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQs
IGIKICAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldDsKIH0KIAotSGFzaE1hcDxsb25nLCBT
b3VyY2VSYW5nZT4gSW5zcGVjdG9yQ1NTU3RvcmU6OmdldFJ1bGVSYW5nZXMoQ1NTU3R5bGVTaGVl
dCogc3R5bGVTaGVldCkKK1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6c3R5bGVTaGVldFRleHQo
bG9uZyBzdHlsZVNoZWV0SWQpCiB7CisgICAgSWRUb1N0eWxlU2hlZXRUZXh0TWFwOjppdGVyYXRv
ciBpdCA9IG1faWRUb1N0eWxlU2hlZXRUZXh0LmZpbmQoc3R5bGVTaGVldElkKTsKKyAgICBpZiAo
aXQgIT0gbV9pZFRvU3R5bGVTaGVldFRleHQuZW5kKCkpCisgICAgICAgIHJldHVybiBpdC0+c2Vj
b25kOworCisgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHN0eWxlU2hlZXRGb3JJZChz
dHlsZVNoZWV0SWQpOworICAgIGlmICghc3R5bGVTaGVldCkKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworCisgICAgU3RyaW5nIHJlc3VsdDsKKyAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAg
ICBOb2RlKiBvd25lck5vZGUgPSBzdHlsZVNoZWV0LT5vd25lck5vZGUoKTsKKyAgICBpZiAob3du
ZXJOb2RlICYmIG93bmVyTm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpFTEVNRU5UX05PREUpIHsK
KyAgICAgICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG93
bmVyTm9kZSk7CisgICAgICAgIGlmIChvd25lckVsZW1lbnQtPnRhZ05hbWUoKS5sb3dlcigpID09
ICJzdHlsZSIpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGlubGluZVN0eWxlU2hlZXRUZXh0KHN0
eWxlU2hlZXQpOworICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7CisgICAgICAgIH0KKyAgICB9
CisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICBzdWNjZXNzID0gcmVzb3VyY2VTdHlsZVNoZWV0
VGV4dChzdHlsZVNoZWV0LCAmcmVzdWx0KTsKKworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBt
X2lkVG9TdHlsZVNoZWV0VGV4dC5zZXQoc3R5bGVTaGVldElkLCByZXN1bHQpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ1NTU3RvcmU6OnJlc291cmNlU3R5bGVTaGVl
dFRleHQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgU3RyaW5nKiByZXN1bHQpCit7CisgICAg
cmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci0+cmVzb3VyY2VDb250ZW50Rm9yVVJMKHN0eWxl
U2hlZXQtPmZpbmFsVVJMKCksIHN0eWxlU2hlZXQtPmRvY3VtZW50KCksIHJlc3VsdCk7Cit9CisK
K1N0cmluZyBJbnNwZWN0b3JDU1NTdG9yZTo6aW5saW5lU3R5bGVTaGVldFRleHQoQ1NTU3R5bGVT
aGVldCogc3R5bGVTaGVldCkKK3sKKyAgICBOb2RlKiBvd25lck5vZGUgPSBzdHlsZVNoZWV0LT5v
d25lck5vZGUoKTsKKyAgICBpZiAoIW93bmVyTm9kZSB8fCBvd25lck5vZGUtPm5vZGVUeXBlKCkg
IT0gTm9kZTo6RUxFTUVOVF9OT0RFIHx8IG1fc3R5bGVTaGVldFRvSWQuZmluZChzdHlsZVNoZWV0
KSA9PSBtX3N0eWxlU2hlZXRUb0lkLmVuZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7Cisg
ICAgRWxlbWVudCogb3duZXJFbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG93bmVyTm9k
ZSk7CisgICAgaWYgKG93bmVyRWxlbWVudC0+dGFnTmFtZSgpLmxvd2VyKCkgIT0gInN0eWxlIikK
KyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBvd25lckVsZW1lbnQtPmlubmVy
VGV4dCgpOworfQorCisKKy8vIEFsbCByYW5nZXMgYXJlOiBbc3RhcnQ7IGVuZCkgKHN0YXJ0IC0g
aW5jbHVzaXZlLCBlbmQgLSBleGNsdXNpdmUpLgorYm9vbCBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0
U3R5bGVTb3VyY2VEYXRhKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBSZWZQdHI8Q1NTU3R5
bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbmxpbmVTdHlsZUVsZW1lbnQoc3R5
bGUpOworICAgIGlmIChlbGVtZW50KSB7CisgICAgICAgIC8vIElubGluZTogc3R5bGU9Ii4uLiIu
CisgICAgICAgIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+IHN0eWxlU291cmNlRGF0YSA9IENT
U1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGdldFN0
eWxlQXR0cmlidXRlUmFuZ2VzKGVsZW1lbnQsICZzdHlsZVNvdXJjZURhdGEpOworICAgICAgICBp
ZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICpyZXN1bHQg
PSBzdHlsZVNvdXJjZURhdGE7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIENT
U1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBnZXRQYXJlbnRTdHlsZVNoZWV0KHN0eWxlKTsKICAg
ICBpZiAoIXN0eWxlU2hlZXQpCi0gICAgICAgIHJldHVybiBIYXNoTWFwPGxvbmcsIFNvdXJjZVJh
bmdlPigpOwotICAgIFJlZlB0cjxDU1NSdWxlTGlzdD4gb3JpZ2luYWxSdWxlTGlzdCA9IENTU1J1
bGVMaXN0OjpjcmVhdGUoc3R5bGVTaGVldCwgZmFsc2UpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiogcmFuZ2VzVmVjdG9y
ID0gMDsKICAgICBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOjppdGVyYXRvciBpdCA9IG1fc3R5bGVT
aGVldFRvT2Zmc2V0cy5maW5kKHN0eWxlU2hlZXQpOwotICAgIFZlY3RvcjxTb3VyY2VSYW5nZT4q
IG9mZnNldFZlY3RvciA9IDA7CiAgICAgaWYgKGl0ID09IG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5l
bmQoKSkgewotICAgICAgICBJbnNwZWN0b3JSZXNvdXJjZSogcmVzb3VyY2UgPSBtX2luc3BlY3Rv
ckNvbnRyb2xsZXItPnJlc291cmNlRm9yVVJMKHN0eWxlU2hlZXQtPmZpbmFsVVJMKCkuc3RyaW5n
KCkpOwotICAgICAgICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAgICAgIG9mZnNldFZlY3RvciA9
IG5ldyBWZWN0b3I8U291cmNlUmFuZ2U+OworICAgICAgICBTdHJpbmcgdGV4dCA9IHN0eWxlU2hl
ZXRUZXh0KGJpbmRTdHlsZVNoZWV0KHN0eWxlU2hlZXQpKTsKKyAgICAgICAgaWYgKCF0ZXh0Lmlz
RW1wdHkoKSkgewogICAgICAgICAgICAgUmVmUHRyPENTU1N0eWxlU2hlZXQ+IG5ld1N0eWxlU2hl
ZXQgPSBDU1NTdHlsZVNoZWV0OjpjcmVhdGUoc3R5bGVTaGVldC0+b3duZXJOb2RlKCkpOwogICAg
ICAgICAgICAgQ1NTUGFyc2VyIHA7Ci0gICAgICAgICAgICBDU1NQYXJzZXI6OlN0eWxlUnVsZVJh
bmdlcyBydWxlUmFuZ2VNYXA7Ci0gICAgICAgICAgICBwLnBhcnNlU2hlZXQobmV3U3R5bGVTaGVl
dC5nZXQoKSwgcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpLCAwLCAmcnVsZVJhbmdlTWFwKTsKLSAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IG5ld1N0eWxlU2hlZXQtPmxl
bmd0aCgpOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBDU1NTdHlsZVJ1bGUq
IHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShuZXdTdHlsZVNoZWV0LT5pdGVtKGkpKTsKLSAgICAgICAg
ICAgICAgICBpZiAoIXJ1bGUpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgICAgIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgc3RkOjpwYWlyPHVuc2lnbmVkLCB1bnNp
Z25lZD4gPjo6aXRlcmF0b3IgaXQgPSBydWxlUmFuZ2VNYXAuZmluZChydWxlKTsKLSAgICAgICAg
ICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQotICAgICAgICAgICAgICAgICAg
ICBvZmZzZXRWZWN0b3ItPmFwcGVuZChpdC0+c2Vjb25kKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIG1fc3R5bGVTaGVldFRvT2Zmc2V0cy5zZXQoc3R5bGVTaGVldCwgb2Zmc2V0VmVjdG9y
KTsKKyAgICAgICAgICAgIFN0eWxlUnVsZVJhbmdlTWFwIHJ1bGVSYW5nZU1hcDsKKyAgICAgICAg
ICAgIHAucGFyc2VTaGVldChuZXdTdHlsZVNoZWV0LmdldCgpLCB0ZXh0LCAwLCAmcnVsZVJhbmdl
TWFwKTsKKyAgICAgICAgICAgIHJhbmdlc1ZlY3RvciA9IG5ldyBWZWN0b3I8UmVmUHRyPENTU1N0
eWxlU291cmNlRGF0YT4gPjsKKyAgICAgICAgICAgIGV4dHJhY3RSYW5nZXMobmV3U3R5bGVTaGVl
dC5nZXQoKSwgcnVsZVJhbmdlTWFwLCByYW5nZXNWZWN0b3IpOworICAgICAgICAgICAgbV9zdHls
ZVNoZWV0VG9PZmZzZXRzLnNldChzdHlsZVNoZWV0LCByYW5nZXNWZWN0b3IpOwogICAgICAgICB9
CiAgICAgfSBlbHNlCi0gICAgICAgIG9mZnNldFZlY3RvciA9IGl0LT5zZWNvbmQ7Ci0gICAgaWYg
KCFvZmZzZXRWZWN0b3IpCi0gICAgICAgIHJldHVybiBIYXNoTWFwPGxvbmcsIFNvdXJjZVJhbmdl
PigpOworICAgICAgICByYW5nZXNWZWN0b3IgPSBpdC0+c2Vjb25kOworICAgIGlmICghcmFuZ2Vz
VmVjdG9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNpZ25lZCBydWxlSW5kZXgg
PSAwOwotICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+IHJlc3VsdDsKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwLCBsZW5ndGggPSBzdHlsZVNoZWV0LT5sZW5ndGgoKTsgaSA8IGxlbmd0aDsg
KytpKSB7Ci0gICAgICAgIEFTU0VSVChydWxlSW5kZXggPCBvZmZzZXRWZWN0b3ItPnNpemUoKSk7
CiAgICAgICAgIENTU1N0eWxlUnVsZSogcnVsZSA9IGFzQ1NTU3R5bGVSdWxlKHN0eWxlU2hlZXQt
Pml0ZW0oaSkpOwogICAgICAgICBpZiAoIXJ1bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgLy8gVGhpcyBtYXBzIHRoZSBzdHlsZSBpZCB0byB0aGUgcnVsZSBib2R5IHJhbmdlLgot
ICAgICAgICByZXN1bHQuc2V0KGJpbmRTdHlsZShydWxlLT5zdHlsZSgpKSwgb2Zmc2V0VmVjdG9y
LT5hdChydWxlSW5kZXgpKTsKKyAgICAgICAgaWYgKHJ1bGUtPnN0eWxlKCkgPT0gc3R5bGUpIHsK
KyAgICAgICAgICAgIEFTU0VSVChydWxlSW5kZXggPCByYW5nZXNWZWN0b3ItPnNpemUoKSk7Cisg
ICAgICAgICAgICAqcmVzdWx0ID0gcmFuZ2VzVmVjdG9yLT5hdChydWxlSW5kZXgpOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICAgICAgcnVsZUluZGV4Kys7CiAgICAg
fQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEluc3Bl
Y3RvckNTU1N0b3JlOjpleHRyYWN0UmFuZ2VzKENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIGNv
bnN0IFN0eWxlUnVsZVJhbmdlTWFwJiBydWxlUmFuZ2VNYXAsIFZlY3RvcjxSZWZQdHI8Q1NTU3R5
bGVTb3VyY2VEYXRhPiA+KiByYW5nZXNWZWN0b3IpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MCwgbGVuZ3RoID0gc3R5bGVTaGVldC0+bGVuZ3RoKCk7IGkgPCBsZW5ndGg7ICsraSkgeworICAg
ICAgICBDU1NTdHlsZVJ1bGUqIHJ1bGUgPSBhc0NTU1N0eWxlUnVsZShzdHlsZVNoZWV0LT5pdGVt
KGkpKTsKKyAgICAgICAgaWYgKCFydWxlKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IFN0eWxlUnVsZVJhbmdlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHJ1bGVSYW5nZU1hcC5maW5k
KHJ1bGUpOworICAgICAgICBpZiAoaXQgIT0gcnVsZVJhbmdlTWFwLmVuZCgpKQorICAgICAgICAg
ICAgcmFuZ2VzVmVjdG9yLT5hcHBlbmQoaXQtPnNlY29uZCk7CisgICAgfQorfQorCitib29sIElu
c3BlY3RvckNTU1N0b3JlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyhOb2RlKiBub2RlLCBSZWZQ
dHI8Q1NTU3R5bGVTb3VyY2VEYXRhPiogcmVzdWx0KQoreworICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+aXNTdHlsZWRFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0cmlu
ZyBzdHlsZVRleHQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdldEF0dHJp
YnV0ZSgic3R5bGUiKTsKKyAgICBpZiAoc3R5bGVUZXh0LmlzRW1wdHkoKSkgeworICAgICAgICAo
KnJlc3VsdCktPnN0eWxlQm9keVJhbmdlLnN0YXJ0ID0gMDsKKyAgICAgICAgKCpyZXN1bHQpLT5z
dHlsZUJvZHlSYW5nZS5lbmQgPSAwOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHRlbXBEZWNsYXJhdGlvbiA9IENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uOjpjcmVhdGUoKTsKKyAgICBDU1NQYXJzZXIgcDsKKyAg
ICBwLnBhcnNlRGVjbGFyYXRpb24odGVtcERlY2xhcmF0aW9uLmdldCgpLCBzdHlsZVRleHQsIHJl
c3VsdC0+Z2V0KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitDU1NTdHlsZVNoZWV0KiBJbnNw
ZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0aW9uKiBz
dHlsZSkKK3sKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFN0eWxl
U2hlZXQqIHN0eWxlU2hlZXQgPSBzdHlsZS0+c3R5bGVzaGVldCgpOworICAgIGlmIChzdHlsZVNo
ZWV0ICYmIHN0eWxlU2hlZXQtPmlzQ1NTU3R5bGVTaGVldCgpKQorICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8Q1NTU3R5bGVTaGVldCo+KHN0eWxlU2hlZXQpOworCisgICAgcmV0dXJuIDA7CiB9
CiAKIENTU1N0eWxlUnVsZSogSW5zcGVjdG9yQ1NTU3RvcmU6OmFzQ1NTU3R5bGVSdWxlKFN0eWxl
QmFzZSogc3R5bGVCYXNlKQpAQCAtMjE3LDYgKzMyMiwxNyBAQCBsb25nIEluc3BlY3RvckNTU1N0
b3JlOjpiaW5kUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCiAgICAgcmV0dXJuIGlkOwogfQogCisv
LyBzdGF0aWMKK0VsZW1lbnQqIEluc3BlY3RvckNTU1N0b3JlOjppbmxpbmVTdHlsZUVsZW1lbnQo
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCit7CisgICAgaWYgKCFzdHlsZSB8fCAhc3R5bGUt
PmlzTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24oKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgTm9k
ZSogbm9kZSA9IHN0YXRpY19jYXN0PENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKj4oc3R5bGUp
LT5ub2RlKCk7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc1N0eWxlZEVsZW1lbnQoKSB8fCBz
dGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obm9kZSktPmdldElubGluZVN0eWxlRGVjbCgpICE9
IHN0eWxlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG5vZGUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
U3RvcmUuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU1N0b3JlLmgKaW5kZXggODJk
ZTYyMi4uOWIzMjlkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
U3RvcmUuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NTdG9yZS5oCkBAIC0y
OSw0NiArMjksNTQgQEAKICNpZm5kZWYgSW5zcGVjdG9yQ1NTU3RvcmVfaAogI2RlZmluZSBJbnNw
ZWN0b3JDU1NTdG9yZV9oCiAKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCIKKyNp
bmNsdWRlICJDYWNoZS5oIgorCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7
Ci1jbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb247CiBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgQ1NTUnVsZUxpc3Q7CiBj
bGFzcyBDU1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NTdHlsZVNoZWV0OworY2xhc3MgRG9jdW1lbnQ7
CitjbGFzcyBFbGVtZW50OworY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKK2NsYXNzIE5vZGU7
CiBjbGFzcyBTdHlsZUJhc2U7CiAKIHR5cGVkZWYgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBQ
cm9wZXJ0eVZhbHVlQW5kUHJpb3JpdHk7Ci10eXBlZGVmIHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5z
aWduZWQ+IFNvdXJjZVJhbmdlOwogdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUHJvcGVydHlWYWx1
ZUFuZFByaW9yaXR5PiBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb247CiB0eXBlZGVmIEhhc2hNYXA8
Q1NTU3R5bGVEZWNsYXJhdGlvbiosIGxvbmc+IFN0eWxlVG9JZE1hcDsKIHR5cGVkZWYgSGFzaE1h
cDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gPiBJZFRvU3R5bGVNYXA7CiB0eXBl
ZGVmIEhhc2hNYXA8Q1NTU3R5bGVSdWxlKiwgbG9uZz4gUnVsZVRvSWRNYXA7CiB0eXBlZGVmIEhh
c2hNYXA8bG9uZywgUmVmUHRyPENTU1N0eWxlUnVsZT4gPiBJZFRvUnVsZU1hcDsKLXR5cGVkZWYg
SGFzaE1hcDxDU1NTdHlsZVNoZWV0KiwgVmVjdG9yPFNvdXJjZVJhbmdlPiogPiBTdHlsZVNoZWV0
VG9PZmZzZXRzTWFwOwordHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBWZWN0b3I8UmVm
UHRyPENTU1N0eWxlU291cmNlRGF0YT4gPiogPiBTdHlsZVNoZWV0VG9PZmZzZXRzTWFwOwogdHlw
ZWRlZiBIYXNoTWFwPENTU1N0eWxlU2hlZXQqLCBsb25nPiBTdHlsZVNoZWV0VG9JZE1hcDsKIHR5
cGVkZWYgSGFzaE1hcDxsb25nLCBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiBJZFRvU3R5bGVTaGVl
dE1hcDsKK3R5cGVkZWYgSGFzaE1hcDxsb25nLCBTdHJpbmc+IElkVG9TdHlsZVNoZWV0VGV4dE1h
cDsKIHR5cGVkZWYgSGFzaE1hcDxsb25nLCBEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24+IElkVG9E
aXNhYmxlZFN0eWxlTWFwOwogdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxEb2N1bWVudD4sIFJlZlB0
cjxDU1NTdHlsZVNoZWV0PiA+IERvY3VtZW50VG9TdHlsZVNoZWV0TWFwOwogCiBjbGFzcyBJbnNw
ZWN0b3JDU1NTdG9yZSB7CiAKIHB1YmxpYzoKKyAgICBzdGF0aWMgQ1NTU3R5bGVTaGVldCogZ2V0
UGFyZW50U3R5bGVTaGVldChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisgICAgc3RhdGljIEVsZW1l
bnQqIGlubGluZVN0eWxlRWxlbWVudChDU1NTdHlsZURlY2xhcmF0aW9uKik7CisKICAgICBJbnNw
ZWN0b3JDU1NTdG9yZShJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKTsK
ICAgICB+SW5zcGVjdG9yQ1NTU3RvcmUoKTsKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgSGFzaE1h
cDxsb25nLCBTb3VyY2VSYW5nZT4gZ2V0UnVsZVJhbmdlcyhDU1NTdHlsZVNoZWV0Kik7CisgICAg
Ym9vbCBnZXRTdHlsZVNvdXJjZURhdGEoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIFJlZlB0cjxDU1NT
dHlsZVNvdXJjZURhdGE+KiByZXN1bHQpOwogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxl
Rm9ySWQobG9uZyBzdHlsZUlkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0Rm9ySWQo
bG9uZyBzdHlsZVNoZWV0SWQpOwogICAgIENTU1N0eWxlUnVsZSogcnVsZUZvcklkKGxvbmcgc3R5
bGVSdWxlSWQpOwogICAgIERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbiogZGlzYWJsZWRTdHlsZUZv
cklkKGxvbmcgc3R5bGVJZCwgYm9vbCBjcmVhdGVJZkFic2VudCk7CisgICAgU3RyaW5nIHN0eWxl
U2hlZXRUZXh0KGxvbmcgc3R5bGVTaGVldElkKTsKICAgICBDU1NTdHlsZVNoZWV0KiBpbnNwZWN0
b3JTdHlsZVNoZWV0KERvY3VtZW50KiBvd25lckRvY3VtZW50LCBib29sIGNyZWF0ZUlmQWJzZW50
KTsKICAgICB2b2lkIHJlbW92ZURvY3VtZW50KERvY3VtZW50Kik7CiAKQEAgLTc4LDYgKzg2LDEw
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgQ1NTU3R5bGVSdWxlKiBhc0NTU1N0
eWxlUnVsZShTdHlsZUJhc2UqKTsKKyAgICBTdHJpbmcgaW5saW5lU3R5bGVTaGVldFRleHQoQ1NT
U3R5bGVTaGVldCopOworICAgIGJvb2wgcmVzb3VyY2VTdHlsZVNoZWV0VGV4dChDU1NTdHlsZVNo
ZWV0KiwgU3RyaW5nKiByZXN1bHQpOworICAgIHZvaWQgZXh0cmFjdFJhbmdlcyhDU1NTdHlsZVNo
ZWV0KiwgY29uc3QgU3R5bGVSdWxlUmFuZ2VNYXAmLCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU291
cmNlRGF0YT4gPiogcmFuZ2VzVmVjdG9yKTsKKyAgICBib29sIGdldFN0eWxlQXR0cmlidXRlUmFu
Z2VzKE5vZGUqIHBhcmVudE5vZGUsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiByZXN1bHQp
OwogCiAgICAgU3R5bGVUb0lkTWFwIG1fc3R5bGVUb0lkOwogICAgIElkVG9TdHlsZU1hcCBtX2lk
VG9TdHlsZTsKQEAgLTg1LDggKzk3LDkgQEAgcHJpdmF0ZToKICAgICBJZFRvUnVsZU1hcCBtX2lk
VG9SdWxlOwogICAgIFN0eWxlU2hlZXRUb09mZnNldHNNYXAgbV9zdHlsZVNoZWV0VG9PZmZzZXRz
OwogICAgIFN0eWxlU2hlZXRUb0lkTWFwIG1fc3R5bGVTaGVldFRvSWQ7Ci0gICAgSWRUb1N0eWxl
U2hlZXRNYXAgbV9pZFRvU3R5bGVTaGVldDsKICAgICBJZFRvRGlzYWJsZWRTdHlsZU1hcCBtX2lk
VG9EaXNhYmxlZFN0eWxlOworICAgIElkVG9TdHlsZVNoZWV0TWFwIG1faWRUb1N0eWxlU2hlZXQ7
CisgICAgSWRUb1N0eWxlU2hlZXRUZXh0TWFwIG1faWRUb1N0eWxlU2hlZXRUZXh0OwogICAgIERv
Y3VtZW50VG9TdHlsZVNoZWV0TWFwIG1fZG9jdW1lbnROb2RlVG9JbnNwZWN0b3JTdHlsZVNoZWV0
TWFwOwogCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0b3JDb250cm9sbGVyOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA5MGVmMzQ0Li5h
OTUxZmE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
Q2hyb21lLmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdl
LmgiCkBAIC0xODk2LDYgKzE4OTcsNDkgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpnZXRS
ZXNvdXJjZUNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBTdHJpbmcqIGMKICAgICAq
Y29udGVudCA9IHJlc291cmNlID8gcmVzb3VyY2UtPnNvdXJjZVN0cmluZygpIDogU3RyaW5nKCk7
CiB9CiAKK2Jvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzb3VyY2VDb250ZW50Rm9yVVJMKGNv
bnN0IEtVUkwmIHVybCwgRG9jdW1lbnQqIGZyYW1lRG9jdW1lbnQsIFN0cmluZyogcmVzdWx0KQor
eworICAgIGlmICghZnJhbWVEb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
U3RyaW5nIHRleHRFbmNvZGluZ05hbWU7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVy
OworICAgIGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKHVybCwgZnJhbWVEb2N1
bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlcXVlc3RVUkwoKSkp
IHsKKyAgICAgICAgdGV4dEVuY29kaW5nTmFtZSA9IGZyYW1lRG9jdW1lbnQtPmlucHV0RW5jb2Rp
bmcoKTsKKyAgICAgICAgYnVmZmVyID0gZnJhbWVEb2N1bWVudC0+ZnJhbWUoKS0+bG9hZGVyKCkt
PnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKS0+bWFpblJlc291cmNlRGF0YSgpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nID0gdXJsLnN0cmluZygpOwor
ICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UgPSBmcmFtZURvY3VtZW50LT5j
YWNoZWRSZXNvdXJjZUxvYWRlcigpLT5jYWNoZWRSZXNvdXJjZSh1cmxTdHJpbmcpOworICAgICAg
ICBpZiAoIWNhY2hlZFJlc291cmNlKQorICAgICAgICAgICAgY2FjaGVkUmVzb3VyY2UgPSBjYWNo
ZSgpLT5yZXNvdXJjZUZvclVSTCh1cmxTdHJpbmcpOworCisgICAgICAgIEFTU0VSVChjYWNoZWRS
ZXNvdXJjZSk7IC8vIEZJWE1FKGFwYXZsb3YpOiBUaGlzIG1pZ2h0IGJlIHRvbyBhZ2dyZXNzaXZl
LgorCisgICAgICAgIGJvb2wgaXNVbnB1cmdlYWJsZSA9IHRydWU7CisgICAgICAgIGlmIChjYWNo
ZWRSZXNvdXJjZS0+aXNQdXJnZWFibGUoKSkgeworICAgICAgICAgICAgLy8gSWYgdGhlIHJlc291
cmNlIGlzIHB1cmdlYWJsZSB0aGVuIG1ha2UgaXQgdW5wdXJnZWFibGUgdG8gZ2V0CisgICAgICAg
ICAgICAvLyBpdHMgZGF0YS4gVGhpcyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNlIHdlIHJldHVy
biBhbgorICAgICAgICAgICAgLy8gZW1wdHkgU3RyaW5nLgorICAgICAgICAgICAgaWYgKCFjYWNo
ZWRSZXNvdXJjZS0+bWFrZVB1cmdlYWJsZShmYWxzZSkpCisgICAgICAgICAgICAgICAgaXNVbnB1
cmdlYWJsZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmIChpc1VucHVyZ2VhYmxlKSB7
CisgICAgICAgICAgICB0ZXh0RW5jb2RpbmdOYW1lID0gY2FjaGVkUmVzb3VyY2UtPmVuY29kaW5n
KCk7CisgICAgICAgICAgICBidWZmZXIgPSBjYWNoZWRSZXNvdXJjZS0+ZGF0YSgpOworICAgICAg
ICB9CisgICAgfQorCisgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICBUZXh0RW5jb2RpbmcgZW5j
b2RpbmcodGV4dEVuY29kaW5nTmFtZSk7CisgICAgICAgIGlmICghZW5jb2RpbmcuaXNWYWxpZCgp
KQorICAgICAgICAgICAgZW5jb2RpbmcgPSBXaW5kb3dzTGF0aW4xRW5jb2RpbmcoKTsKKyAgICAg
ICAgKnJlc3VsdCA9IGVuY29kaW5nLmRlY29kZShidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXpl
KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6cmVsb2FkUGFnZSgpCiB7CiAgICAgbV9pbnNw
ZWN0ZWRQYWdlLT5tYWluRnJhbWUoKS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVSZWZy
ZXNoKHRydWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IDA3
OWNmNTUuLjE4YWYyMjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgK
QEAgLTIyMyw2ICsyMjMsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBSZXNvdXJjZXNNYXAmIHJl
c291cmNlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VzOyB9CiAgICAgSW5zcGVjdG9yUmVz
b3VyY2UqIHJlc291cmNlRm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICBib29sIHJlc291
cmNlQ29udGVudEZvclVSTChjb25zdCBLVVJMJiB1cmwsIERvY3VtZW50KiBsb2FkZXJEb2N1bWVu
dCwgU3RyaW5nKiByZXN1bHQpOwogICAgIGJvb2wgaGFzRnJvbnRlbmQoKSBjb25zdCB7IHJldHVy
biBtX2Zyb250ZW5kOyB9CiAKICAgICB2b2lkIGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29u
dGV4dCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9N
QWdlbnQuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCmluZGV4
IGRkZDcxZjkuLjM2YjQ0OGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaCIKICNpbmNsdWRlICJDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCIK
ICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVJ1bGUuaCIKQEAgLTExOTEsMjYgKzExOTIsMzQgQEAgdm9pZCBJbnNwZWN0b3JE
T01BZ2VudDo6Z2V0U3R5bGVTaGVldChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4KICAgICAgICAgKnN0eWxlU2hlZXRPYmplY3QgPSBidWlsZE9iamVjdEZvclN0eWxl
U2hlZXQoc3R5bGVTaGVldC0+ZG9jdW1lbnQoKSwgc3R5bGVTaGVldCk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmdldFJ1bGVSYW5nZXMobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJ
bnNwZWN0b3JWYWx1ZT4qIHJ1bGVSYW5nZSkKK3ZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmdldFN0
eWxlU291cmNlRGF0YShsb25nIHN0eWxlSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBkYXRh
T2JqZWN0KQogewotICAgIENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSBjc3NTdG9yZSgpLT5z
dHlsZVNoZWV0Rm9ySWQoc3R5bGVTaGVldElkKTsKLSAgICBpZiAoc3R5bGVTaGVldCAmJiBzdHls
ZVNoZWV0LT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+
IHJ1bGVSYW5nZXMgPSBjc3NTdG9yZSgpLT5nZXRSdWxlUmFuZ2VzKHN0eWxlU2hlZXQpOwotICAg
ICAgICBpZiAoIXJ1bGVSYW5nZXMuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiByZXN1bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0
ZSgpOwotICAgICAgICBmb3IgKEhhc2hNYXA8bG9uZywgU291cmNlUmFuZ2U+OjppdGVyYXRvciBp
dCA9IHJ1bGVSYW5nZXMuYmVnaW4oKTsgaXQgIT0gcnVsZVJhbmdlcy5lbmQoKTsgKytpdCkgewot
ICAgICAgICAgICAgaWYgKGl0LT5zZWNvbmQuc2Vjb25kKSB7Ci0gICAgICAgICAgICAgICAgUmVm
UHRyPEluc3BlY3Rvck9iamVjdD4gcnVsZVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKLSAgICAgICAgICAgICAgICByZXN1bHQtPnNldE9iamVjdChTdHJpbmc6Om51bWJlcihpdC0+
Zmlyc3QpLnV0ZjgoKS5kYXRhKCksIHJ1bGVSYW5nZSk7Ci0gICAgICAgICAgICAgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYm9keVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsK
LSAgICAgICAgICAgICAgICBydWxlUmFuZ2UtPnNldE9iamVjdCgiYm9keVJhbmdlIiwgYm9keVJh
bmdlKTsKLSAgICAgICAgICAgICAgICBib2R5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBpdC0+
c2Vjb25kLmZpcnN0KTsKLSAgICAgICAgICAgICAgICBib2R5UmFuZ2UtPnNldE51bWJlcigiZW5k
IiwgaXQtPnNlY29uZC5zZWNvbmQpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
ICpydWxlUmFuZ2UgPSByZXN1bHQucmVsZWFzZSgpOworICAgIENTU1N0eWxlRGVjbGFyYXRpb24q
IHN0eWxlID0gY3NzU3RvcmUoKS0+c3R5bGVGb3JJZChzdHlsZUlkKTsKKyAgICBpZiAoIXN0eWxl
KQorICAgICAgICByZXR1cm47CisgICAgUmVmUHRyPENTU1N0eWxlU291cmNlRGF0YT4gc291cmNl
RGF0YSA9IENTU1N0eWxlU291cmNlRGF0YTo6Y3JlYXRlKCk7CisgICAgYm9vbCBzdWNjZXNzID0g
Y3NzU3RvcmUoKS0+Z2V0U3R5bGVTb3VyY2VEYXRhKHN0eWxlLCAmc291cmNlRGF0YSk7CisgICAg
aWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm47CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4gcmVzdWx0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBib2R5UmFuZ2UgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgIHJl
c3VsdC0+c2V0T2JqZWN0KCJib2R5UmFuZ2UiLCBib2R5UmFuZ2UpOworICAgIGJvZHlSYW5nZS0+
c2V0TnVtYmVyKCJzdGFydCIsIHNvdXJjZURhdGEtPnN0eWxlQm9keVJhbmdlLnN0YXJ0KTsKKyAg
ICBib2R5UmFuZ2UtPnNldE51bWJlcigiZW5kIiwgc291cmNlRGF0YS0+c3R5bGVCb2R5UmFuZ2Uu
ZW5kKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHByb3BlcnR5UmFuZ2VzID0gSW5zcGVj
dG9yQXJyYXk6OmNyZWF0ZSgpOworICAgIHJlc3VsdC0+c2V0QXJyYXkoInByb3BlcnR5RGF0YSIs
IHByb3BlcnR5UmFuZ2VzKTsKKyAgICBWZWN0b3I8Q1NTUHJvcGVydHlTb3VyY2VEYXRhPiYgcHJv
cGVydHlEYXRhID0gc291cmNlRGF0YS0+cHJvcGVydHlEYXRhOworICAgIGZvciAoVmVjdG9yPENT
U1Byb3BlcnR5U291cmNlRGF0YT46Oml0ZXJhdG9yIGl0ID0gcHJvcGVydHlEYXRhLmJlZ2luKCk7
IGl0ICE9IHByb3BlcnR5RGF0YS5lbmQoKTsgKytpdCkgeworICAgICAgICBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBwcm9wZXJ0eVJhbmdlID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAg
ICAgICAgcHJvcGVydHlSYW5nZS0+c2V0U3RyaW5nKCJuYW1lIiwgaXQtPm5hbWUpOworICAgICAg
ICBwcm9wZXJ0eVJhbmdlLT5zZXRTdHJpbmcoInZhbHVlIiwgaXQtPnZhbHVlKTsKKyAgICAgICAg
cHJvcGVydHlSYW5nZS0+c2V0Qm9vbGVhbigiaW1wb3J0YW50IiwgaXQtPmltcG9ydGFudCk7Cisg
ICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldEJvb2xlYW4oInBhcnNlZCIsIGl0LT5wYXJzZWRPayk7
CisgICAgICAgIHByb3BlcnR5UmFuZ2UtPnNldE51bWJlcigic3RhcnQiLCBpdC0+cmFuZ2Uuc3Rh
cnQpOworICAgICAgICBwcm9wZXJ0eVJhbmdlLT5zZXROdW1iZXIoImVuZCIsIGl0LT5yYW5nZS5l
bmQpOworICAgICAgICBwcm9wZXJ0eVJhbmdlcy0+cHVzaE9iamVjdChwcm9wZXJ0eVJhbmdlKTsK
ICAgICB9CisgICAgKmRhdGFPYmplY3QgPSByZXN1bHQucmVsZWFzZSgpOwogfQogCiB2b2lkIElu
c3BlY3RvckRPTUFnZW50OjpnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiogc3R5bGUpCkBAIC0xNDY5LDcgKzE0NzgsNyBAQCBQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gSW5zcGVjdG9yRE9NQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5
bGVEZWNsYQogICAgIGlmIChiaW5kKSB7CiAgICAgICAgIGxvbmcgc3R5bGVJZCA9IGNzc1N0b3Jl
KCktPmJpbmRTdHlsZShzdHlsZSk7CiAgICAgICAgIHJlc3VsdC0+c2V0TnVtYmVyKCJpZCIsIHN0
eWxlSWQpOwotICAgICAgICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gZ2V0UGFy
ZW50U3R5bGVTaGVldChzdHlsZSk7CisgICAgICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxl
U2hlZXQgPSBJbnNwZWN0b3JDU1NTdG9yZTo6Z2V0UGFyZW50U3R5bGVTaGVldChzdHlsZSk7CiAg
ICAgICAgIGlmIChwYXJlbnRTdHlsZVNoZWV0KQogICAgICAgICAgICAgcmVzdWx0LT5zZXROdW1i
ZXIoInBhcmVudFN0eWxlU2hlZXRJZCIsIGNzc1N0b3JlKCktPmJpbmRTdHlsZVNoZWV0KHBhcmVu
dFN0eWxlU2hlZXQpKTsKIApAQCAtMTY4MSwyMCArMTY5MCw2IEBAIFBhc3NSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+IEluc3BlY3RvckRPTUFnZW50Ojp0b0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBkYXRhCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CiB9CiAKLUNTU1N0eWxlU2hlZXQq
IEluc3BlY3RvckRPTUFnZW50OjpnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRp
b24qIHN0eWxlKQotewotICAgIENTU1N0eWxlU2hlZXQqIHBhcmVudFN0eWxlU2hlZXQgPSBzdHls
ZS0+cGFyZW50UnVsZSgpID8gc3R5bGUtPnBhcmVudFJ1bGUoKS0+cGFyZW50U3R5bGVTaGVldCgp
IDogMDsKLSAgICBpZiAoIXBhcmVudFN0eWxlU2hlZXQpIHsKLSAgICAgICAgU3R5bGVCYXNlKiBw
YXJlbnQgPSBzdHlsZS0+cGFyZW50KCk7Ci0gICAgICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LT5p
c0NTU1N0eWxlU2hlZXQoKSkgewotICAgICAgICAgICAgcGFyZW50U3R5bGVTaGVldCA9IHN0YXRp
Y19jYXN0PENTU1N0eWxlU2hlZXQqPihwYXJlbnQpOwotICAgICAgICAgICAgaWYgKCFwYXJlbnRT
dHlsZVNoZWV0LT5sZW5ndGgoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAg
fQotICAgIH0KLSAgICByZXR1cm4gcGFyZW50U3R5bGVTaGVldDsKLX0KLQogdm9pZCBJbnNwZWN0
b3JET01BZ2VudDo6b25NYXRjaEpvYnNUaW1lcihUaW1lcjxJbnNwZWN0b3JET01BZ2VudD4qKQog
ewogICAgIGlmICghbV9wZW5kaW5nTWF0Y2hKb2JzLnNpemUoKSkgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTUFnZW50LmgKaW5kZXggOTc1MWU4ZS4uN2E5ZjZiYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIGdldElubGluZVN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5z
cGVjdG9yVmFsdWU+KiBzdHlsZXMpOwogICAgICAgICB2b2lkIGdldENvbXB1dGVkU3R5bGUobG9u
ZyBub2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CiAgICAgICAgIHZvaWQg
Z2V0U3R5bGVTaGVldChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4q
IHN0eWxlU2hlZXRPYmplY3QpOwotICAgICAgICB2b2lkIGdldFJ1bGVSYW5nZXMobG9uZyBzdHls
ZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJ1bGVSYW5nZSk7CisgICAgICAgIHZv
aWQgZ2V0U3R5bGVTb3VyY2VEYXRhKGxvbmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4qIGRhdGFPYmplY3QpOwogICAgICAgICB2b2lkIGFwcGx5U3R5bGVUZXh0KGxvbmcgc3R5bGVJ
ZCwgY29uc3QgU3RyaW5nJiBzdHlsZVRleHQsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBi
b29sKiBzdWNjZXNzLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZU9iamVjdCwgUmVmUHRy
PEluc3BlY3RvckFycmF5PiogY2hhbmdlZFByb3BlcnRpZXMpOwogICAgICAgICB2b2lkIHNldFN0
eWxlVGV4dChsb25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgY3NzVGV4dCwgYm9vbCogc3VjY2Vz
cyk7CiAgICAgICAgIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShsb25nIHN0eWxlSWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7CkBAIC0xNDgs
NyArMTQ4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGNvcHlOb2RlKGxv
bmcgbm9kZUlkKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBDU1NTdHlsZVNoZWV0
KiBnZXRQYXJlbnRTdHlsZVNoZWV0KENTU1N0eWxlRGVjbGFyYXRpb24qKTsKICAgICAgICAgdm9p
ZCBzdGFydExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwogICAgICAgICB2b2lkIHN0b3BM
aXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKIAo=
</data>
<flag name="review"
          id="57059"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>