<?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>58064</bug_id>
          
          <creation_ts>2011-04-07 11:18:18 -0700</creation_ts>
          <short_desc>Web Inspector: Network events don&apos;t preserves, when inspector frontend closed and open again</short_desc>
          <delta_ts>2011-04-15 08:16:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Sergey Vorobyev">sergeyvorobyev</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>381510</commentid>
    <comment_count>0</comment_count>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-07 11:18:18 -0700</bug_when>
    <thetext>Monitoring of network activity start when inspector frontend created.
So It&apos;s empty in initial state.
Same problem, when user close frontend and open it again:
Network events are not saves.
So we need way to collect network events in background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382081</commentid>
    <comment_count>1</comment_count>
      <attachid>88782</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-08 01:52:39 -0700</bug_when>
    <thetext>Created attachment 88782
First version of background event collector patch

Need add condition to enable this functionality</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382097</commentid>
    <comment_count>2</comment_count>
      <attachid>88786</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-08 02:29:14 -0700</bug_when>
    <thetext>Created attachment 88786
Fix merge conflicts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382098</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-08 02:32:31 -0700</bug_when>
    <thetext>Attachment 88786 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/inspector/InspectorFrontendProxy.cpp:68:  Else clause should never be on same line as else (use 2 lines)  [whitespace/newline] [4]
Source/WebCore/inspector/InspectorResourceAgent.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/inspector/InspectorResourceAgent.cpp:54:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/inspector/EventsCollector.cpp:27:  Found other header before a header this file implements. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebCore/inspector/EventsCollector.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Source/WebCore/inspector/EventsCollector.cpp:52:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WebCore/inspector/EventsCollector.cpp:55:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/inspector/InspectorFrontendProxy.h:40:  The parameter name &quot;collector&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/inspector/InspectorFrontendProxy.h:41:  The parameter name &quot;collector&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/inspector/InspectorFrontendProxy.h:41:  The parameter name &quot;channel&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 10 in 14 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>382109</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-08 02:56:25 -0700</bug_when>
    <thetext>Attachment 88786 did not build on win:
Build output: http://queues.webkit.org/results/8346958</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382116</commentid>
    <comment_count>5</comment_count>
      <attachid>88789</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-08 03:12:44 -0700</bug_when>
    <thetext>Created attachment 88789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382127</commentid>
    <comment_count>6</comment_count>
      <attachid>88792</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-08 03:46:05 -0700</bug_when>
    <thetext>Created attachment 88792
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382135</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-08 04:11:17 -0700</bug_when>
    <thetext>Attachment 88792 did not build on win:
Build output: http://queues.webkit.org/results/8341995</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382136</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-08 04:13:31 -0700</bug_when>
    <thetext>Attachment 88789 did not build on win:
Build output: http://queues.webkit.org/results/8341998</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382229</commentid>
    <comment_count>9</comment_count>
      <attachid>88792</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-08 07:54:26 -0700</bug_when>
    <thetext>Comment on attachment 88792
Patch

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

&gt; Source/WebCore/inspector/EventsCollector.cpp:39
&gt; +    events = *(new Vector&lt;String&gt;);

Just nuke this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382230</commentid>
    <comment_count>10</comment_count>
      <attachid>88792</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-08 07:56:18 -0700</bug_when>
    <thetext>Comment on attachment 88792
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:374
&gt; +                &quot;name&quot;: &quot;domContentEventFired&quot;,

Let&apos;s move introduction of these two messages into a separate change. It would make the patch smaller.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382231</commentid>
    <comment_count>11</comment_count>
      <attachid>88822</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-08 07:57:26 -0700</bug_when>
    <thetext>Created attachment 88822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383122</commentid>
    <comment_count>12</comment_count>
      <attachid>88994</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-11 05:46:23 -0700</bug_when>
    <thetext>Created attachment 88994
Patch file with doc-encode to prompt vc-project pass svn-apply</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383129</commentid>
    <comment_count>13</comment_count>
      <attachid>88997</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-11 06:13:31 -0700</bug_when>
    <thetext>Created attachment 88997
Patch file with fuzz=2 for vc project</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383158</commentid>
    <comment_count>14</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-04-11 07:27:56 -0700</bug_when>
    <thetext>Attachment 88997 did not build on qt:
Build output: http://queues.webkit.org/results/8374946</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383177</commentid>
    <comment_count>15</comment_count>
      <attachid>89009</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-11 08:23:59 -0700</bug_when>
    <thetext>Created attachment 89009
Add new files in WebCore/WebCore.pro file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385648</commentid>
    <comment_count>16</comment_count>
      <attachid>89009</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-14 04:44:57 -0700</bug_when>
    <thetext>Comment on attachment 89009
Add new files in WebCore/WebCore.pro file

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests. (OOPS!)

Would be really nice to have a test for this change.

&gt; Source/WebCore/inspector/EventsCollector.cpp:38
&gt; +{ }

style: closing bracket should go on a new line.

&gt; Source/WebCore/inspector/EventsCollector.cpp:42
&gt; +    totalLength += (int)message.length();

we don&apos;t use c-style casts in WebCore code. You could use size_t as m_totalLength type.

&gt; Source/WebCore/inspector/EventsCollector.h:42
&gt; +    void collect(const String&amp; message);

I&apos;d rename it to addEvent

&gt; Source/WebCore/inspector/EventsCollector.h:43
&gt; +    void pushData(InspectorFrontendChannel*);

Consider renaming pushData to sendCollectedEvents?

&gt; Source/WebCore/inspector/EventsCollector.h:45
&gt; +    static const int CAPACITY = 1048576; // 1 Mb

WebCore constant names should be in camelCase, like maxCapacity. Also please use 1024*1024 instead of the number, compiler will do this evaluation for you.

&gt; Source/WebCore/inspector/EventsCollector.h:46
&gt; +    int totalLength;

style: private fields should start with m_ prefix(http://www.webkit.org/coding/coding-style.html)

&gt; Source/WebCore/inspector/InspectorFrontendProxy.h:40
&gt; +    InspectorFrontendProxy(EventsCollector*);

Constructors with single argument should be marked as &quot;explicit&quot;.

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:549
&gt; +    m_frontend = new InspectorFrontend::Network(m_inspectorFrontendProxy.get());

You&apos;re leaking the Network object here. Instead it should be owned by the agent and created only when background resource tracking is enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385735</commentid>
    <comment_count>17</comment_count>
      <attachid>89009</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-14 06:57:19 -0700</bug_when>
    <thetext>Comment on attachment 89009
Add new files in WebCore/WebCore.pro file

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        No new tests. (OOPS!)
&gt; 
&gt; Would be really nice to have a test for this change.

First commit would be without test and it will contain disable functionality
Next commit would contain tests and machinery for enable functionality

&gt;&gt; Source/WebCore/inspector/EventsCollector.cpp:38
&gt;&gt; +{ }
&gt; 
&gt; style: closing bracket should go on a new line.

done

&gt;&gt; Source/WebCore/inspector/EventsCollector.cpp:42
&gt;&gt; +    totalLength += (int)message.length();
&gt; 
&gt; we don&apos;t use c-style casts in WebCore code. You could use size_t as m_totalLength type.

done

&gt;&gt; Source/WebCore/inspector/EventsCollector.h:42
&gt;&gt; +    void collect(const String&amp; message);
&gt; 
&gt; I&apos;d rename it to addEvent

done

&gt;&gt; Source/WebCore/inspector/EventsCollector.h:43
&gt;&gt; +    void pushData(InspectorFrontendChannel*);
&gt; 
&gt; Consider renaming pushData to sendCollectedEvents?

It&apos;s much good, done

&gt;&gt; Source/WebCore/inspector/EventsCollector.h:45
&gt;&gt; +    static const int CAPACITY = 1048576; // 1 Mb
&gt; 
&gt; WebCore constant names should be in camelCase, like maxCapacity. Also please use 1024*1024 instead of the number, compiler will do this evaluation for you.

done

&gt;&gt; Source/WebCore/inspector/EventsCollector.h:46
&gt;&gt; +    int totalLength;
&gt; 
&gt; style: private fields should start with m_ prefix(http://www.webkit.org/coding/coding-style.html)

done.

&gt;&gt; Source/WebCore/inspector/InspectorFrontendProxy.h:40
&gt;&gt; +    InspectorFrontendProxy(EventsCollector*);
&gt; 
&gt; Constructors with single argument should be marked as &quot;explicit&quot;.

done

&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:549
&gt;&gt; +    m_frontend = new InspectorFrontend::Network(m_inspectorFrontendProxy.get());
&gt; 
&gt; You&apos;re leaking the Network object here. Instead it should be owned by the agent and created only when background resource tracking is enabled.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385737</commentid>
    <comment_count>18</comment_count>
      <attachid>89579</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-14 06:58:40 -0700</bug_when>
    <thetext>Created attachment 89579
After firsts review. Functionality disabled by default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386532</commentid>
    <comment_count>19</comment_count>
      <attachid>89579</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-15 05:36:59 -0700</bug_when>
    <thetext>Comment on attachment 89579
After firsts review. Functionality disabled by default

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

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:94
&gt; +    if (enabledBackgoundEventsCoollection()) {

enabledBackgoundEventsCoollection -&gt; backgoundEventsCoollectionEnabled

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:-281
&gt; -    ASSERT(!m_instrumentingAgents-&gt;inspectorResourceAgent());

This assert should be preserved if it fails you should figure out when to clear pointer to this agent from the instrumenting agents structure.

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:504
&gt; +    // TODO(vors):

Please file a bug on this and add FIXME(bug number) instead of the TODO.

&gt; Source/WebCore/inspector/InspectorResourceAgent.h:134
&gt; +    OwnPtr&lt;InspectorFrontend::Network&gt; m_frontend;

This is wrong since the frontend passed in setFrontend method is owned by the caller, r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386543</commentid>
    <comment_count>20</comment_count>
      <attachid>89774</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 06:22:15 -0700</bug_when>
    <thetext>Created attachment 89774
After 2nd review. Fix memory leaks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386544</commentid>
    <comment_count>21</comment_count>
      <attachid>89579</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 06:24:19 -0700</bug_when>
    <thetext>Comment on attachment 89579
After firsts review. Functionality disabled by default

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

&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:94
&gt;&gt; +    if (enabledBackgoundEventsCoollection()) {
&gt; 
&gt; enabledBackgoundEventsCoollection -&gt; backgoundEventsCoollectionEnabled

done

&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:-281
&gt;&gt; -    ASSERT(!m_instrumentingAgents-&gt;inspectorResourceAgent());
&gt; 
&gt; This assert should be preserved if it fails you should figure out when to clear pointer to this agent from the instrumenting agents structure.

done

&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:504
&gt;&gt; +    // TODO(vors):
&gt; 
&gt; Please file a bug on this and add FIXME(bug number) instead of the TODO.

done.

&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.h:134
&gt;&gt; +    OwnPtr&lt;InspectorFrontend::Network&gt; m_frontend;
&gt; 
&gt; This is wrong since the frontend passed in setFrontend method is owned by the caller, r- for this.

Done, add m_mockFrontend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386551</commentid>
    <comment_count>22</comment_count>
      <attachid>89774</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-15 06:31:39 -0700</bug_when>
    <thetext>Comment on attachment 89774
After 2nd review. Fix memory leaks

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

&gt; Source/WebCore/ChangeLog:8
&gt; +

Please provide a brief description of the changes made.

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:-493
&gt; -    if (!m_frontend)

Please revert this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386559</commentid>
    <comment_count>23</comment_count>
      <attachid>89774</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2011-04-15 06:40:00 -0700</bug_when>
    <thetext>Comment on attachment 89774
After 2nd review. Fix memory leaks

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests. (OOPS!)

You will not be able to commit a patch with this line.

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:94
&gt; +    if (backgoundEventsCoollectionEnabled()) {

The method name has two mistypes, please fix.

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:-319
&gt; -

I believe this line was removed inadvertently.

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:513
&gt; +    // Now this function disable.

Now this function is disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386562</commentid>
    <comment_count>24</comment_count>
      <attachid>89774</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-15 06:43:27 -0700</bug_when>
    <thetext>Comment on attachment 89774
After 2nd review. Fix memory leaks

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

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:94
&gt; +    if (backgoundEventsCoollectionEnabled()) {

I think that when event collection is enabled you could simply set inspectorFrotnedChannel to the proxy object and clear it in clearFrontend. In fact you can completely ignore passed frontend object.

If you proceed with the current approach, you should reset the agent and frontend states as they were before setFrontend including setting m_frontend to m_mockFrontend.get</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386564</commentid>
    <comment_count>25</comment_count>
      <attachid>89778</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 06:45:10 -0700</bug_when>
    <thetext>Created attachment 89778
After 3th review. Revert one remove change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386580</commentid>
    <comment_count>26</comment_count>
      <attachid>89774</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 07:03:06 -0700</bug_when>
    <thetext>Comment on attachment 89774
After 2nd review. Fix memory leaks

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +
&gt; 
&gt; Please provide a brief description of the changes made.

done.

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        No new tests. (OOPS!)
&gt; 
&gt; You will not be able to commit a patch with this line.

done.

&gt;&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:94
&gt;&gt;&gt; +    if (backgoundEventsCoollectionEnabled()) {
&gt;&gt; 
&gt;&gt; The method name has two mistypes, please fix.
&gt; 
&gt; I think that when event collection is enabled you could simply set inspectorFrotnedChannel to the proxy object and clear it in clearFrontend. In fact you can completely ignore passed frontend object.
&gt; 
&gt; If you proceed with the current approach, you should reset the agent and frontend states as they were before setFrontend including setting m_frontend to m_mockFrontend.get

@apavlov done, thank you</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386582</commentid>
    <comment_count>27</comment_count>
      <attachid>89774</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 07:05:46 -0700</bug_when>
    <thetext>Comment on attachment 89774
After 2nd review. Fix memory leaks

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

&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:-319
&gt;&gt; -
&gt; 
&gt; I believe this line was removed inadvertently.

done

&gt;&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:513
&gt;&gt; +    // Now this function disable.
&gt; 
&gt; Now this function is disabled.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386584</commentid>
    <comment_count>28</comment_count>
      <attachid>89783</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 07:07:10 -0700</bug_when>
    <thetext>Created attachment 89783
Minor fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386594</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-15 07:09:19 -0700</bug_when>
    <thetext>Attachment 89783 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebCore/inspector/InspectorResourceAgent.cpp:107:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 17 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>386606</commentid>
    <comment_count>30</comment_count>
      <attachid>89787</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 07:31:05 -0700</bug_when>
    <thetext>Created attachment 89787
Fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386618</commentid>
    <comment_count>31</comment_count>
      <attachid>89787</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-15 07:52:52 -0700</bug_when>
    <thetext>Comment on attachment 89787
Fix style

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

&gt; Source/WebCore/inspector/InspectorResourceAgent.cpp:106
&gt; +        m_frontend = m_mockFrontend.get();

You should clear pointer from the proxy to the channel, otherwise m_inspectorFrontendProxy will continue sending events into the channel. r- for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386624</commentid>
    <comment_count>32</comment_count>
      <attachid>89790</attachid>
    <who name="Sergey Vorobyev">sergeyvorobyev</who>
    <bug_when>2011-04-15 08:05:54 -0700</bug_when>
    <thetext>Created attachment 89790
Fix clearFrontend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386629</commentid>
    <comment_count>33</comment_count>
      <attachid>89790</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-15 08:16:30 -0700</bug_when>
    <thetext>Comment on attachment 89790
Fix clearFrontend

Clearing flags on attachment: 89790

Committed r83975: &lt;http://trac.webkit.org/changeset/83975&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386630</commentid>
    <comment_count>34</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-04-15 08:16:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88782</attachid>
            <date>2011-04-08 01:52:39 -0700</date>
            <delta_ts>2011-04-08 02:29:14 -0700</delta_ts>
            <desc>First version of background event collector patch</desc>
            <filename>background</filename>
            <type>text/plain</type>
            <size>38681</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZmQ4Y2U5Li5lNjQwMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMg
QEAKKzIwMTEtMDQtMDggIFNlcmdleSBWb3JvYnlldiAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogTmV0d29yayBldmVudHMgZG9uJ3QgcHJlc2VydmVzLAorICAgICAgICB3aGVu
IGluc3BlY3RvciBmcm9udGVuZCBjbG9zZWQgYW5kIG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MDY0CisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGlu
c3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
c0NvbGxlY3Rvcjo6Y29sbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6
OnB1c2hEYXRhKToKKyAgICAgICAgKiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRzQ29sbGVjdG9yOjp+RXZlbnRzQ29sbGVjdG9yKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEV2ZW50
c0NvbGxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5Ojpz
ZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQ
cm94eTo6fkluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNv
dXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNo
ZWRGcm9tUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2xvc2VXZWJTb2NrZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdl
bnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdl
bnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2
ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5h
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29u
dGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVy
LnByb3RvdHlwZS5sb2FkRXZlbnRGaXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50Rmly
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0w
NCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLiBGaXggUXQgbWluaW1hbCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMDQ5
MmQ1YS4uNDYwZDcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE5OTAsNiArMTk5MCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvbnNvbGVN
ZXNzYWdlLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmggXAor
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRIb3N0LmNwcCBcCkBAIC0yMDMwLDYgKzIwMzIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggXAorCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBcCisJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCBcCiAJU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBcCiAJU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDJkNTVlMWEuLmJhMWM1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMxODMsNiArMzE4
Myw4IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmgnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9F
dmVudHNDb2xsZWN0b3IuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVj
dG9yLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCcsCkBAIC0zMjE3LDYgKzMyMTksOCBAQAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwJywKKyAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDU3MGQxZmEuLmJiZjQ5OGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NjQ5NCw2ICs2NjQ5NCwxNCBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFByb3h5Lmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBjZTJiYTI2Li5mZWEzZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NDQsNiArNjQ0LDEwIEBACiAJCTIwRDYyOTI2MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjBENjI5MjQxMjUzNjkwQjAwMDgx
NTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi87IH07CiAJCTIwRDYyOTI3MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0
MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLzsgfTsKIAkJMjI3Nzc3NjAxMzQ1REVB
OTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8q
IEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTIyNzc3QjRBMTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHND
b2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi87IH07
CisJCTIyNzc3QjRCMTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjQ5MTM0QTAxOEMw
MDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkyMjc3N0I0RTEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVj
dG9yRnJvbnRlbmRQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQ
cm94eS5jcHAgKi87IH07CisJCTIyNzc3QjRGMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JG
cm9udGVuZFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTIyODg1
RTY0MTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyODg1RTYzMTMwMUFF
NEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMjI4
QzI4NDUxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBF
IC8qIFNjcmlwdFdyYXBwYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTI0NUQ4MEEzMTMyODBFNDAwMDM0OTJBNiAvKiBTUUxDYWxsYmFja1dy
YXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0
NUQ4MEEyMTMyODBFNDAwMDM0OTJBNiAvKiBTUUxDYWxsYmFja1dyYXBwZXIuaCAqLzsgfTsKQEAg
LTcwNDUsNiArNzA0OSwxMCBAQAogCQkyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyNzc3NzVGMTM0NURFQTkw
MDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTIyNzc3QjQ4MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRzQ29sbGVj
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDkxMzRBMDE4QzAw
OEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFdmVudHNDb2xsZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3
NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1
NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluc3BlY3RvckZyb250ZW5kUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyOEMyODQ0
MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2NyaXB0V3JhcHBhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFzaENoYW5nZUV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzE0Myw2ICsxMzE1MSw4IEBACiAJCQkJNDFGMDYxOEMw
RjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggKi8sCiAJCQkJNEYxNDQyMjYxMzM5
RkQ2MjAwRTBENkY4IC8qIERPTU5vZGVIaWdobGlnaHRlci5jcHAgKi8sCiAJCQkJNEYxNDQyMjcx
MzM5RkQ2MjAwRTBENkY4IC8qIERPTU5vZGVIaWdobGlnaHRlci5oICovLAorCQkJCTIyNzc3QjQ4
MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwICovLAorCQkJCTIyNzc3QjQ5
MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuaCAqLywKIAkJCQlGMzY0NEFGRDEx
MTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuY3BwICovLAogCQkJCUYzNjQ0QUZFMTEx
OTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5oICovLAogCQkJCTdBMEU3NkY2MTBCRjA4
RUQwMEEwMjc2RSAvKiBJbmplY3RlZFNjcmlwdEhvc3QuY3BwICovLApAQCAtMTMxODYsNiArMTMx
OTYsOCBAQAogCQkJCTdBMEU3NzBCMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwICovLAogCQkJCTdBMEU3NzBDMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JG
cm9udGVuZEhvc3QuaCAqLywKIAkJCQk3QTBFNzcwRDEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmlkbCAqLywKKwkJCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyog
SW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgKi8sCisJCQkJMjI3NzdCNEQxMzRBMDFBODAwOEVB
NDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLywKIAkJCQkyMEQ2MjkyNDEyNTM2OTBC
MDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLywKIAkJCQkyMEQ2Mjky
NTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi8sCiAJCQkJ
NEY2RkRENjIxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgKi8sCkBA
IC0yMDg2NCw2ICsyMDg3Niw3IEBACiAJCQkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAv
KiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMEZFRjM3MkIxN0M1M0VBQzFDMUZC
RUUgLyogRXZlbnRTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTIyNzc3QjRCMTM0QTAxOEMw
MDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMkVEQjdC
MEIzMDhBNzgwMDI3MDRCNiAvKiBFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2
MEQ4RjMwRDJBMTFFMDAwQjk5MThGIC8qIEV4Y2VwdGlvbkJhc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNUZCQ0YyMDlCQTE0M0IwMEUyMzBCMSAvKiBFeGNlcHRpb25Db2RlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIxMjE1LDYgKzIxMjI4LDcgQEAKIAkJCQlGMzQ0QzcxNDExMjVCODJDMDBGMjZF
RUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUYzNDRD
NzUzMTEyOTREOUQwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QTBFNzcwRjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUg
LyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjBENjI5Mjcx
MjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEY2RkRENjUxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM2ODUsNiArMjM2OTksNyBAQAog
CQkJCTkzOTg4NUMzMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjI3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMkVEQkVBMEIzMDhFMEIwMDI3MDRC
NiAvKiBFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRDhGMjBEMkExMUUw
MDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzgzMUI1
NzBEMDg3RDYwMDBFNUM5ODQgLyogRXhjZXB0aW9uQ29kZS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTIzOTk1LDYgKzI0MDEwLDcgQEAKIAkJCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogSW5z
cGVjdG9yRnJvbnRlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NEM3NTgxMTI5NEZGNjAw
RjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0EwRTc3MEUxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjc3N0I0RTEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVj
dG9yRnJvbnRlbmRQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyMEQ2MjkyNjEyNTM2OTBC
MDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTRGNkZERDY0MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9FdmVudHNDb2xsZWN0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjFiOTY1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZl
bnRzQ29sbGVjdG9yLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFdmVudHNDb2xs
ZWN0b3I6OkV2ZW50c0NvbGxlY3RvcigpCisgICAgOiB0b3RhbExlbmd0aCgwKQoreworICAgIGV2
ZW50cyA9ICoobmV3IFZlY3RvcjxTdHJpbmc+KTsKK30KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6
OmNvbGxlY3QoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHRvdGFsTGVuZ3RoICs9IChp
bnQpbWVzc2FnZS5sZW5ndGgoKTsKKyAgICBldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAgIHdo
aWxlICh0b3RhbExlbmd0aCA+IENBUEFDSVRZKSB7CisgICAgICAgIHRvdGFsTGVuZ3RoIC09IChp
bnQpZXZlbnRzWzBdLmxlbmd0aCgpOworICAgICAgICBldmVudHMucmVtb3ZlKDApOworICAgIH0K
K30KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbCogcmVjZWl2ZXIpIHsKKyAgICBmb3IgKFZlY3RvcjxTdHJpbmc+OjppdGVyYXRvciBpdCA9
IGV2ZW50cy5iZWdpbigpOyBpdCAhPSBldmVudHMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgcmVj
ZWl2ZXItPnNlbmRNZXNzYWdlVG9Gcm9udGVuZCgqaXQpOworICAgIH0KK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi41M2ViZTAxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgRXZlbnRzQ29sbGVjdG9yX2gKKyNkZWZpbmUgRXZlbnRzQ29sbGVjdG9yX2gKKworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWw7CisKK2NsYXNzIEV2ZW50c0NvbGxlY3RvciB7CitwdWJsaWM6CisgICAg
RXZlbnRzQ29sbGVjdG9yKCk7CisgICAgfkV2ZW50c0NvbGxlY3RvcigpIHsgfQorICAgIHZvaWQg
Y29sbGVjdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQgcHVzaERhdGEoSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKik7Citwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBpbnQgQ0FQ
QUNJVFkgPSAxMDQ4NTc2OyAvLyAxIE1iCisgICAgaW50IHRvdGFsTGVuZ3RoOworICAgIFZlY3Rv
cjxTdHJpbmc+IGV2ZW50czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vICFkZWZpbmVkKEV2ZW50c0NvbGxlY3Rvcl9oKQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
biBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA2ZGEwYTQy
Li41Nzc1YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0z
NjUsNiArMzY1LDE4IEBACiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCiAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZG9tQ29udGVudEV2ZW50RmlyZWQiLAor
ICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInRpbWUiLCAidHlwZSI6ICJudW1iZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImxvYWRF
dmVudEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CisgICAgICAgICAg
ICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJmcmFtZURldGFjaGVkIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RmlyZWQgd2hlbiBmcmFtZSBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIGl0cyBwYXJlbnQuIiwKICAg
ICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4wYzg0ZjhlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIgorCisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkV2ZW50c0NvbGxlY3Rvci5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW5zcGVj
dG9yRnJvbnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xsZWN0b3Iq
IGNvbGxlY3RvcikKK3sKKyAgICBtX3JlY2VpdmVyID0gMDsKKyAgICBtX2NvbGxlY3RvciA9IGNv
bGxlY3RvcjsKK30KKworSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQ
cm94eShFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3RvciwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiByZWNlaXZlcikKK3sKKyAgICBtX2NvbGxlY3RvciA9IGNvbGxlY3RvcjsKKyAgICBtX3JlY2Vp
dmVyID0gcmVjZWl2ZXI7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2V0SW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogcmVjZWl2ZXIp
Cit7CisgICAgbV9yZWNlaXZlciA9IHJlY2VpdmVyOworfQorCit2b2lkIEluc3BlY3RvckZyb250
ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3RvcihFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3RvcikK
K3sKKyAgICBtX2NvbGxlY3RvciA9IGNvbGxlY3RvcjsKK30KKworYm9vbCBJbnNwZWN0b3JGcm9u
dGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
eworICAgIG1fY29sbGVjdG9yLT5jb2xsZWN0KG1lc3NhZ2UpOworICAgIGlmIChtX3JlY2VpdmVy
KQorICAgICAgICByZXR1cm4gbV9yZWNlaXZlci0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKG1lc3Nh
Z2UpOworICAgIGVsc2UgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjc0YjM3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZFByb3h5X2gKKyNkZWZpbmUgSW5zcGVjdG9y
RnJvbnRlbmRQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFdmVudHNDb2xsZWN0b3I7CisKK2NsYXNzIEluc3Bl
Y3RvckZyb250ZW5kUHJveHkgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK3B1
YmxpYzoKKyAgICBJbnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3RvciogY29sbGVj
dG9yKTsKKyAgICBJbnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3RvciogY29sbGVj
dG9yLCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGNoYW5uZWwpOworICAgIHZpcnR1YWwgfklu
c3BlY3RvckZyb250ZW5kUHJveHkoKSB7IH0KKworICAgIHZvaWQgc2V0SW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworICAgIHZvaWQgc2V0RXZlbnRz
Q29sbGVjdG9yKEV2ZW50c0NvbGxlY3RvciopOworICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICBJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwqIG1fcmVjZWl2ZXI7CisgICAgRXZlbnRzQ29sbGVjdG9yKiBt
X2NvbGxlY3RvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTlNQRUNUT1IpCisKKyNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JGcm9udGVuZFBy
b3h5X2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCmluZGV4IDZkM2I0YWQuLjcwZmQyMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC01
MDksNiArNTA5LDkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRM
b2FkZWRFdmVudEZpcmVkSW1wbChJbnNwZWN0b3JBZ2VudCogaW4KICAgICBpZiAoSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50
aW5nQWdlbnRzKCktPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKICAgICAgICAgdGltZWxpbmVB
Z2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpOwogCisgICAgaWYgKEluc3BlY3RvclJlc291
cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0Fn
ZW50cygpLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCisgICAgICAgIHJlc291cmNlQWdlbnQt
PmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CisKICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0
b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgp
OwogfQpAQCAtNTI3LDYgKzUzMCw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjps
b2FkRXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50CiAgICAgaWYg
KEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+
aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZE1hcmtMb2FkRXZlbnQoKTsKIAorICAgIGlmIChJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRp
bmdBZ2VudHMoKS0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQorICAgICAgICByZXNvdXJjZUFn
ZW50LT5sb2FkRXZlbnRGaXJlZCgpOworCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9y
UGFnZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAppbmRleCA3N2M0NjRlLi5lZGY2OThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC02MTIsNyArNjEyLDcgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVVzZXJBZ2VudE92ZXJyaWRl
KEZyYW1lKiBmcmFtZSwgU3RyaW4KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6d2lsbFNlbmRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGljID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJv
bnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGluc3Bl
Y3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICB3aWxsU2VuZFJlcXVlc3RJbXBsKGlj
LCBpZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogI2VuZGlm
CiB9CkBAIC02NTEsNyArNjUxLDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKGNvbnN0IEluc3BlY3Rvckluc3QKIGlubGluZSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGlu
c3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0
b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkK
ICAgICAgICAgcmV0dXJuIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwoaW5zcGVjdG9y
QWdlbnQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKICNlbmRpZgogICAgIHJldHVybiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKQEAgLTY2OCw3ICs2NjgsNyBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKGNv
bnN0IEluc3BlY3RvcgogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRS
ZWNlaXZlQ29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkKIHsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdl
bnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAg
ICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmll
ciwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCiB9CkBAIC02NzYsNyArNjc2
LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29u
dGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2kKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZyhGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikK
LSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRX
aXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNw
ZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBkaWRG
aW5pc2hMb2FkaW5nSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgZmluaXNoVGltZSk7
CiAjZW5kaWYKIH0KQEAgLTcwOCw3ICs3MDgsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbgog
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZl
bnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdl
bnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAg
ICAgIGRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkSW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUs
IHVybCk7CiAjZW5kaWYKIH0KQEAgLTcxNiw3ICs3MTYsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKEZyYW1lKiBmcmFt
ZSwgYwogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJl
ZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGlu
c3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGxv
YWRFdmVudEZpcmVkSW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUsIHVybCk7CiAjZW5kaWYKIH0K
QEAgLTcyNCw3ICs3MjQsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmxvYWRFdmVudEZpcmVkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdQogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSog
ZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFt
ZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFn
ZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBmcmFtZURldGFjaGVkRnJvbVBhcmVudEltcGwo
aW5zcGVjdG9yQWdlbnQsIGZyYW1lKTsKICNlbmRpZgogfQpAQCAtNzkyLDcgKzc5Miw3IEBAIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGVzdHJveVdvcmtlcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENyZWF0ZVdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEtVUkwmIHJlcXVlc3RVUkwsIGNvbnN0IEtV
UkwmIGRvY3VtZW50VVJMKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9y
Q29udGV4dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRDcmVhdGVX
ZWJTb2NrZXRJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXF1ZXN0VVJMLCBkb2N1
bWVudFVSTCk7CiAjZW5kaWYKIH0KQEAgLTgwMCw3ICs4MDAsNyBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KgogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdl
YlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0
JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yQ29udGV4
dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICB3aWxsU2VuZFdlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3RJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXF1ZXN0
KTsKICNlbmRpZgogfQpAQCAtODA4LDcgKzgwOCw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KFNjcmlwdEV4
CiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2Nr
ZXRIYW5kc2hha2VSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlJiBy
ZXNwb25zZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQo
Y29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3Bl
Y3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlkUmVjZWl2ZVdlYlNvY2tl
dEhhbmRzaGFrZVJlc3BvbnNlSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVzcG9u
c2UpOwogI2VuZGlmCiB9CkBAIC04MTYsNyArODE2LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoU2Ny
aXAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJTb2Nr
ZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yQ29udGV4dChjb250
ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9y
QWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRDbG9zZVdlYlNvY2tldEltcGwo
aW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5kZXggNzU3MTlk
YS4uNWM0NDI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtNDUsMTAgKzQ1LDEzIEBACiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZy
b250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIgorI2luY2x1ZGUg
Ikluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oIgogI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtNzcsNiArODAsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIg
ZXh0cmFSZXF1ZXN0SGVhZGVyc1tdID0gImV4dHJhUmVxdWVzdEhlYWRlcnMiOwogdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5uZXR3b3JrKCk7CisgICAgLy8gSW5z
ZXJ0IE1lc3NhZ2UgUHJveHkgaW4gcmVjZWl2ZXIgY2hhaW4uCisgICAgSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsKiBjbGllbnQgPSBtX2Zyb250ZW5kLT5nZXRJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwoKTsKKyAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHktPnNldEluc3BlY3RvckZyb250ZW5k
Q2hhbm5lbChjbGllbnQpOworICAgIG1fZnJvbnRlbmQtPnNldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbChtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOworICAgIG1fZXZlbnRzQ29sbGVj
dG9yLT5wdXNoRGF0YShjbGllbnQpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6
OmNsZWFyRnJvbnRlbmQoKQpAQCAtMjYzLDEwICsyNzEsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UoY29uc3QgQ2FjaGVk
UmVzbwogICAgIHJldHVybiByZXNvdXJjZU9iamVjdDsKIH0KIAotSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQotewotICAgIEFTU0VSVCghbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpOwotfQorSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKSB7fQogCiB2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKQEAgLTMwMyw3ICszMDgsNiBA
QCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZQogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHJl
c291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVzcG9uc2Up
OwogICAgIFN0cmluZyB0eXBlID0gIk90aGVyIjsKICAgICBsb25nIGNhY2hlZFJlc291cmNlU2l6
ZSA9IDA7Ci0KICAgICBpZiAobG9hZGVyKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiBjYWNo
ZWRSZXNvdXJjZSA9IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNhY2hlZFJlc291cmNlKGxvYWRl
ci0+ZnJhbWUoKSwgcmVzcG9uc2UudXJsKCkpOwogICAgICAgICBpZiAoY2FjaGVkUmVzb3VyY2Up
IHsKQEAgLTM0NywxMiArMzUxLDIxIEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
TG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiBsb2FkCiB7CiAgICAg
bV9mcm9udGVuZC0+cmVzb3VyY2VMb2FkZWRGcm9tTWVtb3J5Q2FjaGUocG9pbnRlckFzSWQobG9h
ZGVyLT5mcmFtZSgpKSwgcG9pbnRlckFzSWQobG9hZGVyKSwgbG9hZGVyLT51cmwoKS5zdHJpbmco
KSwgY3VycmVudFRpbWUoKSwgYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZSgqcmVzb3VyY2Up
KTsKIH0KLQogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRJbml0aWFsQ29udGVudCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nLCBjb25z
dCBTdHJpbmcmIHR5cGUpCiB7CiAgICAgbV9mcm9udGVuZC0+aW5pdGlhbENvbnRlbnRTZXQoc3Rh
dGljX2Nhc3Q8aW50PihpZGVudGlmaWVyKSwgc291cmNlU3RyaW5nLCB0eXBlKTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpkb21Db250ZW50RXZlbnRGaXJlZCgpCit7CisgICAg
bV9mcm9udGVuZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQoreworICAgIG1fZnJv
bnRlbmQtPmxvYWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworfQorCiBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQog
ewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGZyYW1lT2JqZWN0ID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKQEAgLTQ3Miw4ICs0ODUsNiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6ZW5hYmxlKCkKIHsKLSAgICBpZiAoIW1fZnJvbnRlbmQpCi0gICAgICAgIHJldHVybjsKICAg
ICBtX3N0YXRlLT5zZXRCb29sZWFuKFJlc291cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVu
YWJsZWQsIHRydWUpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVz
b3VyY2VBZ2VudCh0aGlzKTsKIH0KQEAgLTUxMSw4ICs1MjIsMTUgQEAgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW4KICAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRz
KQogICAgICwgbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQotICAgICwgbV9mcm9u
dGVuZCgwKQorICAgICwgbV9ldmVudHNDb2xsZWN0b3IobmV3IEV2ZW50c0NvbGxlY3RvcigpKQor
ICAgICwgbV9pbnNwZWN0b3JGcm9udGVuZFByb3h5KG5ldyBJbnNwZWN0b3JGcm9udGVuZFByb3h5
KG1fZXZlbnRzQ29sbGVjdG9yLmdldCgpKSkKIHsKKyAgICAvLyBUT0RPKHZvcnMpOgorICAgIC8v
IEFkZCBoZXJlIGNvbmRpdGlvbiB0byBlbmFibGUgYmFja2dyb3VuZCBldmVudHMgY29sbGVjdGlv
bi4KKworICAgIC8vIENyZWF0ZSBkdW1teSBmcm9udGVuZCwgc28gd2UgY2FuIGNvbGxlY3QgbmV0
d29yayBldmVudHMuCisgICAgbV9mcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZDo6TmV0
d29yayhtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOworICAgIGVuYWJsZSgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaAppbmRleCBlM2I5ZGY5Li5jYjY5ZDIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTUxLDEwICs1
MiwxMiBAQCBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSW5zcGVj
dG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvckZyb250
ZW5kUHJveHk7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsK
IGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBLVVJMOworY2xhc3MgRXZlbnRzQ29s
bGVjdG9yOwogY2xhc3MgUGFnZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJj
ZVJlcXVlc3Q7CkBAIC05NSw2ICs5OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlzaExv
YWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAg
dm9pZCBkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1
bWVudExvYWRlciosIGNvbnN0IENhY2hlZFJlc291cmNlKik7CisgICAgdm9pZCBkb21Db250ZW50
RXZlbnRGaXJlZCgpOworICAgIHZvaWQgbG9hZEV2ZW50RmlyZWQoKTsKICAgICB2b2lkIHNldElu
aXRpYWxDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkKERv
Y3VtZW50TG9hZGVyKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSop
OwpAQCAtMTIzLDYgKzEyOCw4IEBAIHByaXZhdGU6CiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cyog
bV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBJbnNwZWN0b3JT
dGF0ZSogbV9zdGF0ZTsKKyAgICBPd25QdHI8RXZlbnRzQ29sbGVjdG9yPiBtX2V2ZW50c0NvbGxl
Y3RvcjsKKyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmRQcm94eT4gbV9pbnNwZWN0b3JGcm9u
dGVuZFByb3h5OwogICAgIEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3JrKiBtX2Zyb250ZW5kOwog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29y
a01hbmFnZXIuanMKaW5kZXggOThhYTA2MC4uZjViZjBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0xNTAsNiAr
MTUwLDE4IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAogCisgICAgZG9t
Q29udGVudEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVs
cy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKKyAgICB9LAorCisg
ICAgbG9hZEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVs
cy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKKyAgICB9LAorCiAgICAgZGF0
YVJlY2VpdmVkOiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhS
ZWNlaXZlZCkKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0UmVz
b3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNTM2YTgwNi4uOGE0M2ZkOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTk4Nyw4ICs5
ODcsNiBAQCBXZWJJbnNwZWN0b3Iuc3RhcnRVc2VySW5pdGlhdGVkRGVidWdnaW5nID0gZnVuY3Rp
b24oKQogV2ViSW5zcGVjdG9yLmRvbUNvbnRlbnRFdmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkK
IHsKICAgICB0aGlzLnBhbmVscy5hdWRpdHMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0
aW1lOwotICAgIGlmICh0aGlzLnBhbmVscy5uZXR3b3JrKQotICAgICAgICB0aGlzLnBhbmVscy5u
ZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKICAgICB0aGlzLmV4dGVu
c2lvblNlcnZlci5ub3RpZnlQYWdlRE9NQ29udGVudExvYWRlZCgodGltZSAtIFdlYkluc3BlY3Rv
ci5tYWluUmVzb3VyY2Uuc3RhcnRUaW1lKSAqIDEwMDApOwogICAgIHRoaXMubWFpblJlc291cmNl
RE9NQ29udGVudFRpbWUgPSB0aW1lOwogfQpAQCAtOTk2LDcgKzk5NCw2IEBAIFdlYkluc3BlY3Rv
ci5kb21Db250ZW50RXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiBXZWJJbnNwZWN0b3IubG9h
ZEV2ZW50RmlyZWQgPSBmdW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5t
YWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7Ci0gICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWlu
UmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7CiAgICAgdGhpcy5wYW5lbHMucmVzb3VyY2VzLmxvYWRF
dmVudEZpcmVkKCk7CiAgICAgdGhpcy5leHRlbnNpb25TZXJ2ZXIubm90aWZ5UGFnZUxvYWRlZCgo
dGltZSAtIFdlYkluc3BlY3Rvci5tYWluUmVzb3VyY2Uuc3RhcnRUaW1lKSAqIDEwMDApOwogICAg
IHRoaXMubWFpblJlc291cmNlTG9hZFRpbWUgPSB0aW1lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88786</attachid>
            <date>2011-04-08 02:29:14 -0700</date>
            <delta_ts>2011-04-08 03:12:37 -0700</delta_ts>
            <desc>Fix merge conflicts</desc>
            <filename>background</filename>
            <type>text/plain</type>
            <size>36904</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMGM3YmI1Li5lYTIzZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMg
QEAKKzIwMTEtMDQtMDggIFNlcmdleSBWb3JvYnlldiAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
IEluc3BlY3RvcjogTmV0d29yayBldmVudHMgZG9uJ3QgcHJlc2VydmVzLAorICAgICAgICB3aGVu
IGluc3BlY3RvciBmcm9udGVuZCBjbG9zZWQgYW5kIG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MDY0CisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGlu
c3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
c0NvbGxlY3Rvcjo6Y29sbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6
OnB1c2hEYXRhKToKKyAgICAgICAgKiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRzQ29sbGVjdG9yOjp+RXZlbnRzQ29sbGVjdG9yKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEV2ZW50
c0NvbGxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5Ojpz
ZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQ
cm94eTo6fkluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNv
dXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNo
ZWRGcm9tUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV2ViU29ja2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2xvc2VXZWJTb2NrZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdl
bnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdl
bnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2
ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5h
YmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29u
dGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVy
LnByb3RvdHlwZS5sb2FkRXZlbnRGaXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50Rmly
ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0w
OCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEF0dGVtcHQgdG8g
Zml4IHRoZSBRdCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjY2NhNDc5Li42YWQxNThiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0zMTk3LDYgKzMxOTcsOCBAQAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9Db25zb2xlTWVzc2FnZS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvRE9NTm9kZUhp
Z2hsaWdodGVyLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRl
ci5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcCcsCisgICAg
ICAgICAgICAnaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5j
cHAnLApAQCAtMzIzMSw2ICszMjMzLDggQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFByb3h5LmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJv
eHkuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBjMmUzYTU0Li5l
MjE4MjFmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNjY1NDIsNiArNjY1NDIsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuY3Bw
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGZhZDFiZi4uNzNkMmRiYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NjQ2LDYgKzY0NiwxMCBAQAogCQkyMEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwICovOyB9OwogCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmggKi87IH07CiAJCTIyNzc3NzYwMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDIyNzc3NzVGMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyMjc3
N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjQ4MTM0QTAxOEMwMDhFQTQ1
NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwICovOyB9OworCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0
NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjI3
NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEMxMzRBMDFB
ODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwICovOyB9OworCQkyMjc3N0I0
RjEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEQxMzRBMDFBODAwOEVB
NDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNE
T01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBT
Y3JpcHRXcmFwcGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNDVEODBBMzEz
MjgwRTQwMDAzNDkyQTYgLyogU1FMQ2FsbGJhY2tXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNDVEODBBMjEzMjgwRTQwMDAzNDkyQTYgLyog
U1FMQ2FsbGJhY2tXcmFwcGVyLmggKi87IH07CkBAIC03MDY5LDYgKzcwNzMsMTAgQEAKIAkJMjBE
NjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMEQ2MjkyNTEyNTM2OTBCMDAw
ODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyMjc3Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0ODEz
NEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTIyNzc3QjQ5MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRzQ29sbGVjdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZFBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyODg1RTYzMTMwMUFFNEMwMDUy
NkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0
V3JhcHBhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFdyYXBw
YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNDQyQkJGODExOTRDOUQzMDBE
NDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEhhc2hDaGFuZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMx
ODcsNiArMTMxOTUsOCBAQAogCQkJCTQxRjA2MThDMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xl
TWVzc2FnZS5oICovLAogCQkJCTRGMTQ0MjI2MTMzOUZENjIwMEUwRDZGOCAvKiBET01Ob2RlSGln
aGxpZ2h0ZXIuY3BwICovLAogCQkJCTRGMTQ0MjI3MTMzOUZENjIwMEUwRDZGOCAvKiBET01Ob2Rl
SGlnaGxpZ2h0ZXIuaCAqLywKKwkJCQkyMjc3N0I0ODEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmNwcCAqLywKKwkJCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmggKi8sCiAJCQkJRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVk
U2NyaXB0LmNwcCAqLywKIAkJCQlGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyogSW5qZWN0ZWRT
Y3JpcHQuaCAqLywKIAkJCQk3QTBFNzZGNjEwQkYwOEVEMDBBMDI3NkUgLyogSW5qZWN0ZWRTY3Jp
cHRIb3N0LmNwcCAqLywKQEAgLTEzMjMwLDYgKzEzMjQwLDggQEAKIAkJCQk3QTBFNzcwQjEwQzAw
QTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCAqLywKIAkJCQk3QTBFNzcw
QzEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggKi8sCiAJCQkJN0Ew
RTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgKi8sCisJ
CQkJMjI3NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3Bw
ICovLAorCQkJCTIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFBy
b3h5LmggKi8sCiAJCQkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oICovLAogCQkJCTRGNkZERDYyMTM0MURFREQwMDFGOEVFMyAv
KiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovLApAQCAtMjA5MzQsNiArMjA5NDYsNyBAQAogCQkJ
CTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTBGRUYzNzJCMTdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTJFREI3QjBCMzA4QTc4MDAyNzA0QjYgLyogRXZlbnRU
YXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEOEYzMEQyQTExRTAwMEI5OTE4RiAvKiBF
eGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVGQkNGMjA5QkExNDNCMDBFMjMw
QjEgLyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTI4Niw2ICsyMTI5OSw3
IEBACiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYx
MEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMjI3NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZERDY1MTM0MURFREQw
MDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGMEQ2
QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTIzNzcyLDYgKzIzNzg2LDcgQEAKIAkJCQk5Mzk4ODVDMzA4QjdFM0QxMDBFNzA3
QzQgLyogRXZlbnROYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4RjY3NTYxQzEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMEZFRjM3MkIy
N0M1M0VBQzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjI3
NzdCNEExMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlFMTJFREJFQTBCMzA4RTBCMDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM2MEQ4RjIwRDJBMTFFMDAwQjk5MThGIC8qIEV4Y2VwdGlvbkJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM4MzFCNTcwRDA4N0Q2MDAwRTVDOTg0IC8qIEV4Y2Vw
dGlvbkNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDA4Miw2ICsyNDA5Nyw3IEBACiAJCQkJ
NEY0RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUYzNDRDNzU4MTEyOTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBMEU3NzBFMTBDMDBBODgwMEEw
Mjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjI3
NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjZGREQ2NDEzNDFERUREMDAxRjhF
RTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGMEQ2QjJF
MTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjk2NTZjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKQEAgLTAsMCAr
MSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbC5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1
ZGUgIkV2ZW50c0NvbGxlY3Rvci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworRXZlbnRzQ29sbGVjdG9yOjpFdmVudHNDb2xsZWN0b3IoKQor
ICAgIDogdG90YWxMZW5ndGgoMCkKK3sKKyAgICBldmVudHMgPSAqKG5ldyBWZWN0b3I8U3RyaW5n
Pik7Cit9CisKK3ZvaWQgRXZlbnRzQ29sbGVjdG9yOjpjb2xsZWN0KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKK3sKKyAgICB0b3RhbExlbmd0aCArPSAoaW50KW1lc3NhZ2UubGVuZ3RoKCk7CisgICAg
ZXZlbnRzLmFwcGVuZChtZXNzYWdlKTsKKyAgICB3aGlsZSAodG90YWxMZW5ndGggPiBDQVBBQ0lU
WSkgeworICAgICAgICB0b3RhbExlbmd0aCAtPSAoaW50KWV2ZW50c1swXS5sZW5ndGgoKTsKKyAg
ICAgICAgZXZlbnRzLnJlbW92ZSgwKTsKKyAgICB9Cit9CisKK3ZvaWQgRXZlbnRzQ29sbGVjdG9y
OjpwdXNoRGF0YShJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKSB7CisgICAgZm9y
IChWZWN0b3I8U3RyaW5nPjo6aXRlcmF0b3IgaXQgPSBldmVudHMuYmVnaW4oKTsgaXQgIT0gZXZl
bnRzLmVuZCgpOyArK2l0KSB7CisgICAgICAgIHJlY2VpdmVyLT5zZW5kTWVzc2FnZVRvRnJvbnRl
bmQoKml0KTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RXZlbnRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVj
dG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNlYmUwMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaApA
QCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEV2ZW50c0NvbGxlY3Rvcl9oCisj
ZGVmaW5lIEV2ZW50c0NvbGxlY3Rvcl9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOworCitjbGFzcyBF
dmVudHNDb2xsZWN0b3IgeworcHVibGljOgorICAgIEV2ZW50c0NvbGxlY3RvcigpOworICAgIH5F
dmVudHNDb2xsZWN0b3IoKSB7IH0KKyAgICB2b2lkIGNvbGxlY3QoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKTsKKyAgICB2b2lkIHB1c2hEYXRhKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworcHJp
dmF0ZToKKyAgICBzdGF0aWMgY29uc3QgaW50IENBUEFDSVRZID0gMTA0ODU3NjsgLy8gMSBNYgor
ICAgIGludCB0b3RhbExlbmd0aDsKKyAgICBWZWN0b3I8U3RyaW5nPiBldmVudHM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChFdmVudHNDb2xsZWN0
b3JfaCkKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggNjg0NTNiMy4uN2Y3ZWVhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzcxLDYgKzM3MSwxOCBAQAogICAgICAgICBd
LAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
YW1lIjogImRvbUNvbnRlbnRFdmVudEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVt
YmVyIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAibmFtZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZSIs
ICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIsCiAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJlZW4g
ZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQ
cm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGM4NGY4ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ikluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNp
bmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3BlY3Rv
ckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9yZWNl
aXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK0luc3BlY3RvckZy
b250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xs
ZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogcmVjZWl2ZXIpCit7CisgICAgbV9jb2xs
ZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNlaXZlciA9IHJlY2VpdmVyOworfQorCit2b2lk
IEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAgIG1fcmVjZWl2ZXIgPSByZWNl
aXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0
b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xs
ZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zy
b250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX2NvbGxlY3Rvci0+Y29sbGVj
dChtZXNzYWdlKTsKKyAgICBpZiAobV9yZWNlaXZlcikKKyAgICAgICAgcmV0dXJuIG1fcmVjZWl2
ZXItPnNlbmRNZXNzYWdlVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICBlbHNlIHJldHVybiBmYWxz
ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQ
cm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NGIzN2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQ
cm94eS5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSW5zcGVjdG9yRnJv
bnRlbmRQcm94eV9oCisjZGVmaW5lIEluc3BlY3RvckZyb250ZW5kUHJveHlfaAorCisjaWYgRU5B
QkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RXZlbnRzQ29sbGVjdG9yOworCitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZFByb3h5IDogcHVibGlj
IEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9yRnJvbnRl
bmRQcm94eShFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3Rvcik7CisgICAgSW5zcGVjdG9yRnJvbnRl
bmRQcm94eShFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3RvciwgSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiBjaGFubmVsKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGcm9udGVuZFByb3h5KCkgeyB9
CisKKyAgICB2b2lkIHNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqKTsKKyAgICB2b2lkIHNldEV2ZW50c0NvbGxlY3RvcihFdmVudHNDb2xsZWN0b3Iq
KTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CisKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBtX3Jl
Y2VpdmVyOworICAgIEV2ZW50c0NvbGxlY3RvciogbV9jb2xsZWN0b3I7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorCisjZW5kaWYg
Ly8gIWRlZmluZWQoSW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkMmI3
M2Y0Li5hYjE3MTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTA5LDYgKzUwOSw5IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoSW5zcGVj
dG9yQWdlbnQqIGluCiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdl
bnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JUaW1l
bGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZE1hcmtET01Db250ZW50RXZl
bnQoKTsKIAorICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0g
aW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUmVzb3VyY2VB
Z2VudCgpKQorICAgICAgICByZXNvdXJjZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgpOwor
CiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQt
Pmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAgIHBh
Z2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTUyNyw2ICs1MzAsOSBAQCB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudAogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0
aW1lbGluZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5z
cGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrTG9h
ZEV2ZW50KCk7CiAKKyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2Vu
dCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291
cmNlQWdlbnQoKSkKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQoKTsKKwog
ICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5p
bnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdl
QWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzdjNDY0ZS4uZWRmNjk4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtNjEyLDcgKzYxMiw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZShGcmFtZSogZnJhbWUsIFN0cmluCiBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChGcmFtZSog
ZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVj
dFJlc3BvbnNlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpYyA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAg
IGlmIChJbnNwZWN0b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkK
ICAgICAgICAgd2lsbFNlbmRSZXF1ZXN0SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1
ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtNjUxLDcgKzY1MSw3IEBAIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0
YShjb25zdCBJbnNwZWN0b3JJbnN0CiBpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29v
a2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNl
KEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZv
ckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0g
aW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybiB3aWxsUmVjZWl2
ZVJlc291cmNlUmVzcG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25z
ZSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7
CkBAIC02NjgsNyArNjY4LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IKIGlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUq
IGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVu
Z3RoUmVjZWl2ZWQpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFt
ZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3Bl
Y3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0
aEltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2Vp
dmVkKTsKICNlbmRpZgogfQpAQCAtNjc2LDcgKzY3Niw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1
bnNpCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRp
bmcoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hU
aW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUp
KQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgZGlkRmluaXNoTG9hZGluZ0ltcGwoaW5zcGVjdG9y
QWdlbnQsIGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOwogI2VuZGlmCiB9CkBAIC03MDgsNyArNzA4
LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRl
ZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb24KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25z
dCBLVVJMJiB1cmwpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFt
ZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3Bl
Y3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRG
aXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MTYs
NyArNzE2LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250
ZW50TG9hZGVkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGMKIGlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFt
ZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFn
ZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBsb2FkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9y
QWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MjQsNyArNzI0LDcgQEAgaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChGcmFtZSogZnJh
bWUsIGNvbnN0IEtVUkwmIHUKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqIGZyYW1lKQogewogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3Rv
ckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAg
ICAgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnRJbXBsKGluc3BlY3RvckFnZW50LCBmcmFtZSk7CiAj
ZW5kaWYKIH0KQEAgLTc5Miw3ICs3OTIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZERlc3Ryb3lXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zdCBLVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBLVVJMJiBkb2N1bWVudFVSTCkKIHsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQg
PSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4
dChjb250ZXh0KSkKICAgICAgICAgZGlkQ3JlYXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2Vu
dCwgaWRlbnRpZmllciwgcmVxdWVzdFVSTCwgZG9jdW1lbnRVUkwpOwogI2VuZGlmCiB9CkBAIC04
MDAsNyArODAwLDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
cmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250
ZXh0KSkKICAgICAgICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0SW1wbChpbnNw
ZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdCk7CiAjZW5kaWYKIH0KQEAgLTgwOCw3ICs4
MDgsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2Vi
U29ja2V0SGFuZHNoYWtlUmVxdWVzdChTY3JpcHRFeAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVj
dG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNwZWN0
b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29udGV4
dCkpCiAgICAgICAgIGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZUltcGwoaW5z
cGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtODE2LDcg
KzgxNiw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2
ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKFNjcmlwCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JB
Z2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkK
ICAgICAgICAgZGlkQ2xvc2VXZWJTb2NrZXRJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVy
KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwCmluZGV4IGYyNzM3NGYuLmQzYTk4MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTQ1
LDEwICs0NSwxMyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBIZWFk
ZXJNYXAuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kUHJveHkuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVl
cy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJLVVJMLmgi
CisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKQEAgLTg4
LDYgKzkxLDExIEBAIHN0YXRpYyBjb25zdCBjaGFyIG90aGVyW10gPSAiT3RoZXIiOwogdm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5uZXR3b3JrKCk7CisgICAgLy8g
SW5zZXJ0IE1lc3NhZ2UgUHJveHkgaW4gcmVjZWl2ZXIgY2hhaW4uCisgICAgSW5zcGVjdG9yRnJv
bnRlbmRDaGFubmVsKiBjbGllbnQgPSBtX2Zyb250ZW5kLT5nZXRJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwoKTsKKyAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHktPnNldEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbChjbGllbnQpOworICAgIG1fZnJvbnRlbmQtPnNldEluc3BlY3RvckZyb250ZW5k
Q2hhbm5lbChtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOworICAgIG1fZXZlbnRzQ29s
bGVjdG9yLT5wdXNoRGF0YShjbGllbnQpOwogfQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdl
bnQ6OmNsZWFyRnJvbnRlbmQoKQpAQCAtMjc0LDEwICsyODIsNyBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UoY29uc3QgQ2Fj
aGVkUmVzbwogICAgIHJldHVybiByZXNvdXJjZU9iamVjdDsKIH0KIAotSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQotewotICAgIEFTU0VSVCghbV9pbnN0
cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpOwotfQorSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKSB7fQogCiB2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKQEAgLTMxNCw3ICszMTks
NiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZQogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+
IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9uc2UocmVzcG9u
c2UpOwogICAgIFN0cmluZyB0eXBlID0gIk90aGVyIjsKICAgICBsb25nIGNhY2hlZFJlc291cmNl
U2l6ZSA9IDA7Ci0KICAgICBpZiAobG9hZGVyKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiBj
YWNoZWRSZXNvdXJjZSA9IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNhY2hlZFJlc291cmNlKGxv
YWRlci0+ZnJhbWUoKSwgcmVzcG9uc2UudXJsKCkpOwogICAgICAgICBpZiAoY2FjaGVkUmVzb3Vy
Y2UpIHsKQEAgLTM2OSw2ICszNzMsMTYgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpz
ZXRJbml0aWFsWEhSQ29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnMKICAgICBt
X2Zyb250ZW5kLT5pbml0aWFsQ29udGVudFNldChzdGF0aWNfY2FzdDxpbnQ+KGlkZW50aWZpZXIp
LCBzb3VyY2VTdHJpbmcsIFJlc291cmNlVHlwZTo6eGhyKTsKIH0KIAordm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50Ojpkb21Db250ZW50RXZlbnRGaXJlZCgpCit7CisgICAgbV9mcm9udGVuZC0+
ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQoreworICAgIG1fZnJvbnRlbmQtPmxvYWRF
dmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworfQorCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQogewogICAgIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+IGZyYW1lT2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUo
KTsKQEAgLTQ4OCw4ICs1MDIsNiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJs
ZShFcnJvclN0cmluZyopCiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKCkK
IHsKLSAgICBpZiAoIW1fZnJvbnRlbmQpCi0gICAgICAgIHJldHVybjsKICAgICBtX3N0YXRlLT5z
ZXRCb29sZWFuKFJlc291cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVuYWJsZWQsIHRydWUp
OwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCh0
aGlzKTsKIH0KQEAgLTUyNyw4ICs1MzksMTUgQEAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW4KICAg
ICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQogICAgICwgbV9w
YWdlKHBhZ2UpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQotICAgICwgbV9mcm9udGVuZCgwKQorICAg
ICwgbV9ldmVudHNDb2xsZWN0b3IobmV3IEV2ZW50c0NvbGxlY3RvcigpKQorICAgICwgbV9pbnNw
ZWN0b3JGcm9udGVuZFByb3h5KG5ldyBJbnNwZWN0b3JGcm9udGVuZFByb3h5KG1fZXZlbnRzQ29s
bGVjdG9yLmdldCgpKSkKIHsKKyAgICAvLyBUT0RPKHZvcnMpOgorICAgIC8vIEFkZCBoZXJlIGNv
bmRpdGlvbiB0byBlbmFibGUgYmFja2dyb3VuZCBldmVudHMgY29sbGVjdGlvbi4KKworICAgIC8v
IENyZWF0ZSBkdW1teSBmcm9udGVuZCwgc28gd2UgY2FuIGNvbGxlY3QgbmV0d29yayBldmVudHMu
CisgICAgbV9mcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZDo6TmV0d29yayhtX2luc3Bl
Y3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOworICAgIGVuYWJsZSgpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuaAppbmRleCAxMmYwZmUzLi5lYjNkNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCiAKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTUxLDEwICs1MiwxMiBAQCBjbGFz
cyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgSW5zcGVjdG9yQXJyYXk7CiBj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kUHJveHk7CiBj
bGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3Ry
dW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBLVVJMOworY2xhc3MgRXZlbnRzQ29sbGVjdG9yOwogY2xh
c3MgUGFnZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CkBA
IC05Nyw2ICsxMDAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9tTWVt
b3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBDYWNoZWRSZXNvdXJjZSopOwogICAgIHZv
aWQgc2V0SW5pdGlhbFNjcmlwdENvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CiAgICAgdm9pZCBzZXRJbml0aWFsWEhSQ29udGVudCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKKyAg
ICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CisgICAgdm9pZCBsb2FkRXZlbnRGaXJlZCgp
OwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciopOwogICAgIHZvaWQgZnJh
bWVEZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqKTsKIApAQCAtMTI0LDYgKzEyOSw4IEBAIHByaXZh
dGU6CiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOwogICAg
IFBhZ2UqIG1fcGFnZTsKICAgICBJbnNwZWN0b3JTdGF0ZSogbV9zdGF0ZTsKKyAgICBPd25QdHI8
RXZlbnRzQ29sbGVjdG9yPiBtX2V2ZW50c0NvbGxlY3RvcjsKKyAgICBPd25QdHI8SW5zcGVjdG9y
RnJvbnRlbmRQcm94eT4gbV9pbnNwZWN0b3JGcm9udGVuZFByb3h5OwogICAgIEluc3BlY3RvckZy
b250ZW5kOjpOZXR3b3JrKiBtX2Zyb250ZW5kOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggOThhYTA2MC4u
ZjViZjBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9O
ZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0xNTAsNiArMTUwLDE4IEBAIFdlYkluc3BlY3Rvci5OZXR3
b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNl
KHJlc291cmNlKTsKICAgICB9LAogCisgICAgZG9tQ29udGVudEV2ZW50RmlyZWQ6IGZ1bmN0aW9u
KHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNv
bnRlbnRUaW1lID0gdGltZTsKKyAgICB9LAorCisgICAgbG9hZEV2ZW50RmlyZWQ6IGZ1bmN0aW9u
KHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRU
aW1lID0gdGltZTsKKyAgICB9LAorCiAgICAgZGF0YVJlY2VpdmVkOiBmdW5jdGlvbihpZGVudGlm
aWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCkKICAgICB7CiAgICAgICAgIHZh
ciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0UmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXgg
M2MzMGEyMC4uMTJkMjk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanMKQEAgLTk4NywxNSArOTg3LDEyIEBAIFdlYkluc3BlY3Rvci5zdGFy
dFVzZXJJbml0aWF0ZWREZWJ1Z2dpbmcgPSBmdW5jdGlvbigpCiBXZWJJbnNwZWN0b3IuZG9tQ29u
dGVudEV2ZW50RmlyZWQgPSBmdW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0
cy5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7Ci0gICAgaWYgKHRoaXMucGFuZWxz
Lm5ldHdvcmspCi0gICAgICAgIHRoaXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29u
dGVudFRpbWUgPSB0aW1lOwogICAgIHRoaXMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0
aW1lOwogfQogCiBXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQgPSBmdW5jdGlvbih0aW1lKQog
ewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7Ci0g
ICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7CiAgICAg
dGhpcy5wYW5lbHMucmVzb3VyY2VzLmxvYWRFdmVudEZpcmVkKCk7CiAgICAgdGhpcy5tYWluUmVz
b3VyY2VMb2FkVGltZSA9IHRpbWU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88789</attachid>
            <date>2011-04-08 03:12:44 -0700</date>
            <delta_ts>2011-04-08 03:45:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58064-20110408141241.patch</filename>
            <type>text/plain</type>
            <size>38197</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZTliYzY0NzU4YTUxZGNh
MDU2NTk1NDAwNjRmOTBhZjFiYzhiMTJhLi5kNTk3NDg1NzNmODgyNzY0NWM3ODZjNDY5MTBhZTVj
Y2U3MzE0ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMDQtMDggIFNlcmdl
eSBWb3JvYnlldiAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29yayBl
dmVudHMgZG9uJ3QgcHJlc2VydmVzLAorICAgICAgICB3aGVuIGluc3BlY3RvciBmcm9udGVuZCBj
bG9zZWQgYW5kIG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU4MDY0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9FdmVudHNDb2xsZWN0
b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6RXZlbnRz
Q29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6Y29sbGVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRzQ29sbGVjdG9yOjp+RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6
Okluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRQcm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6fkluc3BlY3RvckZyb250
ZW5kUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250
ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRX
ZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJTb2Nr
ZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkRXZlbnRG
aXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0wOCAgQW5kcmV5IEFkYWlraW4gIDxh
YW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBjY2NhNDc5NDZkZTY0MjViYjA0ZDEwZWUzYTJkOGQyMDhiZjAz
NDJlLi42YWQxNThiNzdmYjViY2YxMTE3YjliMmVkZTVjYTJhNTA1MTk5MWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0zMTk3LDYgKzMxOTcsOCBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Db25z
b2xlTWVzc2FnZS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcCcsCisgICAgICAgICAgICAn
aW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQu
aCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAnLApAQCAt
MzIzMSw2ICszMjMzLDggQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNw
cCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBjMmUzYTU0MDk1OGM1NjVmY2M3
YTY0NWI2ZjNkYjFhZmFjOWM5NDVmLi5lMjE4MjFmZTE0Njg2ZDdhODYwMGFjMmE5ZmY4ZTBkODE0
MjhkODgzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNjY1NDIsNiArNjY1NDIsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuY3Bw
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNw
ZWN0b3JcSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGZhZDFiZmRjZjk4Y2NhZDVkZDEzMWRi
MTdhYjhlODYwZGU5MTc4NS4uNzNkMmRiY2RjMDFiYzg2OWZhZTU5YTkwODA2YWVmOWM4ODBjNTZi
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjQ2LDYgKzY0NiwxMCBAQAogCQkyMEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMgLyog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwICovOyB9OwogCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyog
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyNzc3NzYwMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDIyNzc3NzVGMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjQ4MTM0QTAx
OEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwICovOyB9OworCQkyMjc3N0I0QjEzNEEw
MThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdC
NEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwICovOyB9Owor
CQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEQxMzRB
MDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZF
NjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNE
T01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlE
MEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFi
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQky
NDVEODBBMzEzMjgwRTQwMDAzNDkyQTYgLyogU1FMQ2FsbGJhY2tXcmFwcGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNDVEODBBMjEzMjgwRTQwMDAz
NDkyQTYgLyogU1FMQ2FsbGJhY2tXcmFwcGVyLmggKi87IH07CkBAIC03MDY5LDYgKzcwNzMsMTAg
QEAKIAkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMEQ2MjkyNTEy
NTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyMjc3Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Mjc3N0I0ODEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTIyNzc3QjQ5MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHND
b2xsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRzQ29sbGVj
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTIyNzc3QjRDMTM0QTAxQTgwMDhF
QTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JG
cm9udGVuZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyODg1RTYzMTMw
MUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUg
LyogU2NyaXB0V3JhcHBhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNj
cmlwdFdyYXBwYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNDQyQkJGODEx
OTRDOUQzMDBENDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhhc2hDaGFuZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTMxODcsNiArMTMxOTUsOCBAQAogCQkJCTQxRjA2MThDMEY1RjA2OTgwMEEwN0VBQyAv
KiBDb25zb2xlTWVzc2FnZS5oICovLAogCQkJCTRGMTQ0MjI2MTMzOUZENjIwMEUwRDZGOCAvKiBE
T01Ob2RlSGlnaGxpZ2h0ZXIuY3BwICovLAogCQkJCTRGMTQ0MjI3MTMzOUZENjIwMEUwRDZGOCAv
KiBET01Ob2RlSGlnaGxpZ2h0ZXIuaCAqLywKKwkJCQkyMjc3N0I0ODEzNEEwMThDMDA4RUE0NTUg
LyogRXZlbnRzQ29sbGVjdG9yLmNwcCAqLywKKwkJCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUg
LyogRXZlbnRzQ29sbGVjdG9yLmggKi8sCiAJCQkJRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8q
IEluamVjdGVkU2NyaXB0LmNwcCAqLywKIAkJCQlGMzY0NEFGRTExMTk4MDU5MDBFMEQ1MzcgLyog
SW5qZWN0ZWRTY3JpcHQuaCAqLywKIAkJCQk3QTBFNzZGNjEwQkYwOEVEMDBBMDI3NkUgLyogSW5q
ZWN0ZWRTY3JpcHRIb3N0LmNwcCAqLywKQEAgLTEzMjMwLDYgKzEzMjQwLDggQEAKIAkJCQk3QTBF
NzcwQjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCAqLywKIAkJ
CQk3QTBFNzcwQzEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggKi8s
CiAJCQkJN0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5p
ZGwgKi8sCisJCQkJMjI3NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5k
UHJveHkuY3BwICovLAorCQkJCTIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JG
cm9udGVuZFByb3h5LmggKi8sCiAJCQkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQz
IC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovLAogCQkJCTRGNkZERDYyMTM0MURFREQw
MDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovLApAQCAtMjA5MzQsNiArMjA5NDYs
NyBAQAogCQkJCTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTBGRUYzNzJCMTdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTJFREI3QjBCMzA4QTc4MDAyNzA0QjYg
LyogRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEOEYzMEQyQTExRTAwMEI5
OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVGQkNGMjA5QkEx
NDNCMDBFMjMwQjEgLyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTI4Niw2
ICsyMTI5OSw3IEBACiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8qIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBGMjZF
RUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMjI3NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250
ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZERDY1
MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIzNzcyLDYgKzIzNzg2LDcgQEAKIAkJCQk5Mzk4ODVDMzA4QjdF
M0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4RjY3NTYx
QzEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MEZFRjM3MkIyN0M1M0VBQzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMjI3NzdCNEExMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMTJFREJFQTBCMzA4RTBCMDAyNzA0QjYgLyogRXZlbnRUYXJnZXQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MEQ4RjIwRDJBMTFFMDAwQjk5MThGIC8qIEV4Y2Vw
dGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM4MzFCNTcwRDA4N0Q2MDAwRTVDOTg0
IC8qIEV4Y2VwdGlvbkNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDA4Miw2ICsyNDA5Nyw3
IEBACiAJCQkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIEluc3BlY3RvckZyb250ZW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUYzNDRDNzU4MTEyOTRGRjYwMEYyNkVFRSAvKiBJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBMEU3NzBFMTBD
MDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjZGREQ2NDEzNDFE
RUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTlGMEQ2QjJFMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50
c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMDdmODcxM2M2NjdhMDU3ZTdjOGNiNzY1MDA1MGQ5ZGY0OTRiNzAy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxl
Y3Rvci5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkV2ZW50c0NvbGxlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikK
KworI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXZlbnRzQ29sbGVjdG9yOjpF
dmVudHNDb2xsZWN0b3IoKQorICAgIDogdG90YWxMZW5ndGgoMCkKK3sKKyAgICBldmVudHMgPSAq
KG5ldyBWZWN0b3I8U3RyaW5nPik7Cit9CisKK3ZvaWQgRXZlbnRzQ29sbGVjdG9yOjpjb2xsZWN0
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICB0b3RhbExlbmd0aCArPSAoaW50KW1lc3Nh
Z2UubGVuZ3RoKCk7CisgICAgZXZlbnRzLmFwcGVuZChtZXNzYWdlKTsKKyAgICB3aGlsZSAodG90
YWxMZW5ndGggPiBDQVBBQ0lUWSkgeworICAgICAgICB0b3RhbExlbmd0aCAtPSAoaW50KWV2ZW50
c1swXS5sZW5ndGgoKTsKKyAgICAgICAgZXZlbnRzLnJlbW92ZSgwKTsKKyAgICB9Cit9CisKK3Zv
aWQgRXZlbnRzQ29sbGVjdG9yOjpwdXNoRGF0YShJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJl
Y2VpdmVyKQoreworICAgIGZvciAoVmVjdG9yPFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gZXZlbnRz
LmJlZ2luKCk7IGl0ICE9IGV2ZW50cy5lbmQoKTsgKytpdCkKKyAgICAgICAgcmVjZWl2ZXItPnNl
bmRNZXNzYWdlVG9Gcm9udGVuZCgqaXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2
ZW50c0NvbGxlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzZWJlMDFlOWU2YzY0NWU5YjZhNzk0MjZkMzFl
ZWY3MzI5YTI4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RXZlbnRzQ29sbGVjdG9yLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBF
dmVudHNDb2xsZWN0b3JfaAorI2RlZmluZSBFdmVudHNDb2xsZWN0b3JfaAorCisjaWYgRU5BQkxF
KElOU1BFQ1RPUikKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5k
Q2hhbm5lbDsKKworY2xhc3MgRXZlbnRzQ29sbGVjdG9yIHsKK3B1YmxpYzoKKyAgICBFdmVudHND
b2xsZWN0b3IoKTsKKyAgICB+RXZlbnRzQ29sbGVjdG9yKCkgeyB9CisgICAgdm9pZCBjb2xsZWN0
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBwdXNoRGF0YShJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqKTsKK3ByaXZhdGU6CisgICAgc3RhdGljIGNvbnN0IGludCBDQVBBQ0lUWSA9
IDEwNDg1NzY7IC8vIDEgTWIKKyAgICBpbnQgdG90YWxMZW5ndGg7CisgICAgVmVjdG9yPFN0cmlu
Zz4gZXZlbnRzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gIWRl
ZmluZWQoRXZlbnRzQ29sbGVjdG9yX2gpCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDY4NDUzYjM0NDFjMjZj
NjZjZTExOGIxMjFiNzJkNTg0ZGEwZTZhY2QuLjdmN2VlYTVmOTgyMWIxZWNjZWI1N2JhN2M2MTE3
ZTM1MDY5YmRiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAg
LTM3MSw2ICszNzEsMTggQEAKICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJkb21Db250ZW50RXZlbnRGaXJlZCIs
CisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgIF0KKyAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAibG9h
ZEV2ZW50RmlyZWQiLAorICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInRpbWUiLCAidHlwZSI6ICJudW1iZXIiIH0KKyAgICAgICAg
ICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
ICJuYW1lIjogImZyYW1lRGV0YWNoZWQiLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJGaXJlZCB3aGVuIGZyYW1lIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gaXRzIHBhcmVudC4iLAog
ICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjMmEwMjA1
MmVmOTlkMzdkZmE2MWE1NDZkZDRiMmMxYTljZjViMDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKQEAgLTAsMCAr
MSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZFBy
b3h5LmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVj
dG9yLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpJbnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50
c0NvbGxlY3RvciogY29sbGVjdG9yKQoreworICAgIG1fcmVjZWl2ZXIgPSAwOworICAgIG1fY29s
bGVjdG9yID0gY29sbGVjdG9yOworfQorCitJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpJbnNwZWN0
b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3RvciogY29sbGVjdG9yLCBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqIG5leHRDaGFubmVsKQoreworICAgIG1fY29sbGVjdG9yID0gY29sbGVjdG9y
OworICAgIG1fcmVjZWl2ZXIgPSBuZXh0Q2hhbm5lbDsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9u
dGVuZFByb3h5OjpzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwoSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKiByZWNlaXZlcikKK3sKKyAgICBtX3JlY2VpdmVyID0gcmVjZWl2ZXI7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2V0RXZlbnRzQ29sbGVjdG9yKEV2ZW50c0NvbGxl
Y3RvciogY29sbGVjdG9yKQoreworICAgIG1fY29sbGVjdG9yID0gY29sbGVjdG9yOworfQorCiti
b29sIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9jb2xsZWN0b3ItPmNvbGxlY3QobWVzc2FnZSk7Cisg
ICAgaWYgKG1fcmVjZWl2ZXIpCisgICAgICAgIHJldHVybiBtX3JlY2VpdmVyLT5zZW5kTWVzc2Fn
ZVRvRnJvbnRlbmQobWVzc2FnZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzY2MzliYWVmZTlkNGJhNWRjOGJlNGRjY2JkNDk2YWQ3NzE2ZmJkZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKQEAg
LTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZFByb3h5
X2gKKyNkZWZpbmUgSW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5TUEVD
VE9SKQorCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFdmVudHNDb2xs
ZWN0b3I7CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kUHJveHkgOiBwdWJsaWMgSW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsIHsKK3B1YmxpYzoKKyAgICBJbnNwZWN0b3JGcm9udGVuZFByb3h5KEV2
ZW50c0NvbGxlY3RvciopOworICAgIEluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVj
dG9yKiwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBuZXh0Q2hhbm5lbCk7CisgICAgdmlydHVh
bCB+SW5zcGVjdG9yRnJvbnRlbmRQcm94eSgpIHsgfQorCisgICAgdm9pZCBzZXRJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBzZXRF
dmVudHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKik7CisgICAgdmlydHVhbCBib29sIHNlbmRN
ZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworCitwcml2YXRlOgorICAg
IEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbV9yZWNlaXZlcjsKKyAgICBFdmVudHNDb2xsZWN0
b3IqIG1fY29sbGVjdG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKElOU1BFQ1RPUikKKworI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckZyb250
ZW5kUHJveHlfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZDJiNzNmNDI3NjU5Zjk1ZGQwYWQwNjVjZDAyOTEy
ODM5MTI0ZTM2Mi4uYWIxNzE3OTlhOTI0MWNmYTVmZmU5ZTlkMjViODUyZDBiYjIzY2UzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKQEAgLTUwOSw2ICs1MDksOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKEluc3BlY3RvckFnZW50KiBpbgogICAg
IGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAg
ICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrRE9NQ29udGVudEV2ZW50KCk7CiAKKyAgICBpZiAo
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5p
bnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKKyAgICAgICAg
cmVzb3VyY2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKwogICAgIGlmIChJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdl
bnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmRvbUNvbnRl
bnRFdmVudEZpcmVkKCk7CiB9CkBAIC01MjcsNiArNTMwLDkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGlu
c3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclRpbWVsaW5lQWdl
bnQoKSkKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVudCgpOwogCisgICAg
aWYgKEluc3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCisgICAg
ICAgIHJlc291cmNlQWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7CisKICAgICBpZiAoSW5zcGVjdG9y
UGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50
cygpLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50LT5sb2FkRXZlbnRG
aXJlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oCmluZGV4IDc3YzQ2NGU5MTk5ZjQyYmU0MzU3ZGFiN2ZhNmVkMDU3N2E1
ZjM2ODAuLmVkZjY5OGZkOTU5OWFmNjkzNTExYWY4NjJkOWMwZjBmNjVhZWUwYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgK
QEAgLTYxMiw3ICs2MTIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmFwcGx5VXNlckFnZW50T3ZlcnJpZGUoRnJhbWUqIGZyYW1lLCBTdHJpbgogaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QoRnJhbWUqIGZyYW1lLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaWMg
PSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5z
cGVjdG9yQWdlbnQqIGljID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAg
IHdpbGxTZW5kUmVxdWVzdEltcGwoaWMsIGlkZW50aWZpZXIsIGxvYWRlciwgcmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSk7CiAjZW5kaWYKIH0KQEAgLTY1MSw3ICs2NTEsNyBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZURhdGEoY29uc3Qg
SW5zcGVjdG9ySW5zdAogaW5saW5lIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShGcmFtZSog
ZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdl
bnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShm
cmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3Rv
ckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJj
ZVJlc3BvbnNlSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogI2Vu
ZGlmCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSgpOwpAQCAtNjY4
LDcgKzY2OCw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZVJlc291cmNlUmVzcG9uc2UoY29uc3QgSW5zcGVjdG9yCiBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwg
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2Vp
dmVkKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUp
KQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhJbXBsKGlu
c3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCk7CiAj
ZW5kaWYKIH0KQEAgLTY3Niw3ICs2NzYsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaQogaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKEZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKIHsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBp
ZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFt
ZShmcmFtZSkpCiAgICAgICAgIGRpZEZpbmlzaExvYWRpbmdJbXBsKGluc3BlY3RvckFnZW50LCBp
ZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKICNlbmRpZgogfQpAQCAtNzA4LDcgKzcwOCw3IEBAIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c2NyaXB0SW1wb3J0ZWQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29uCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYg
dXJsKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUp
KQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBs
KGluc3BlY3RvckFnZW50LCBmcmFtZSwgdXJsKTsKICNlbmRpZgogfQpAQCAtNzE2LDcgKzcxNiw3
IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRl
ZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmxvYWRFdmVudEZpcmVkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsKQog
ewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAg
IGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZy
YW1lKGZyYW1lKSkKICAgICAgICAgbG9hZEV2ZW50RmlyZWRJbXBsKGluc3BlY3RvckFnZW50LCBm
cmFtZSwgdXJsKTsKICNlbmRpZgogfQpAQCAtNzI0LDcgKzcyNCw3IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25z
dCBLVVJMJiB1CiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0
YWNoZWRGcm9tUGFyZW50KEZyYW1lKiBmcmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGZyYW1l
RGV0YWNoZWRGcm9tUGFyZW50SW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUpOwogI2VuZGlmCiB9
CkBAIC03OTIsNyArNzkyLDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWREZXN0cm95V29ya2VyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKIGlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgS1VS
TCYgcmVxdWVzdFVSTCwgY29uc3QgS1VSTCYgZG9jdW1lbnRVUkwpCiB7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVj
dG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNwZWN0
b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29udGV4
dCkpCiAgICAgICAgIGRpZENyZWF0ZVdlYlNvY2tldEltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50
aWZpZXIsIHJlcXVlc3RVUkwsIGRvY3VtZW50VVJMKTsKICNlbmRpZgogfQpAQCAtODAwLDcgKzgw
MCw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2Vi
U29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdl
YlNvY2tldEhhbmRzaGFrZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29udGV4dCkpCiAg
ICAgICAgIHdpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdEltcGwoaW5zcGVjdG9yQWdl
bnQsIGlkZW50aWZpZXIsIHJlcXVlc3QpOwogI2VuZGlmCiB9CkBAIC04MDgsNyArODA4LDcgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhh
bmRzaGFrZVJlcXVlc3QoU2NyaXB0RXgKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29j
a2V0SGFuZHNoYWtlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
Ci0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50
V2l0aEZyb250ZW5kRm9yQ29udGV4dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAg
ICAgICBkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2VJbXBsKGluc3BlY3RvckFn
ZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAjZW5kaWYKIH0KQEAgLTgxNiw3ICs4MTYsNyBA
QCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2Nr
ZXRIYW5kc2hha2VSZXNwb25zZShTY3JpcAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRo
RnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5z
cGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29udGV4dCkpCiAgICAgICAg
IGRpZENsb3NlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllcik7CiAjZW5k
aWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmNwcAppbmRleCBmMjczNzRmZTUwODY0NWRkNDU5MzZjM2QxZjRlYTliNjIyZDMwMzFl
Li43ZTI1ZWJlOTkzMjQyZTJmMGFiYmZmMjE1MGQ4N2VhZjI2YThjZmQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBAIC0z
NCwyMSArMzQsMjQgQEAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiQmFzZTY0
LmgiCi0jaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkV2ZW50c0NvbGxlY3Rv
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNs
dWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIK
KyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JGcm9udGVuZFByb3h5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJy
b3IuaCIKQEAgLTg4LDYgKzkxLDExIEBAIHN0YXRpYyBjb25zdCBjaGFyIG90aGVyW10gPSAiT3Ro
ZXIiOwogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JG
cm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5uZXR3b3Jr
KCk7CisgICAgLy8gSW5zZXJ0IE1lc3NhZ2UgUHJveHkgaW4gcmVjZWl2ZXIgY2hhaW4uCisgICAg
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBjbGllbnQgPSBtX2Zyb250ZW5kLT5nZXRJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwoKTsKKyAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHktPnNldElu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbChjbGllbnQpOworICAgIG1fZnJvbnRlbmQtPnNldEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbChtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOworICAg
IG1fZXZlbnRzQ29sbGVjdG9yLT5wdXNoRGF0YShjbGllbnQpOwogfQogCiB2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQpAQCAtMjc0LDEwICsyODIsNyBAQCBzdGF0
aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3Vy
Y2UoY29uc3QgQ2FjaGVkUmVzbwogICAgIHJldHVybiByZXNvdXJjZU9iamVjdDsKIH0KIAotSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQotewotICAgIEFT
U0VSVCghbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpOwot
fQorSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKSB7fQog
CiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKQEAg
LTMxNCw3ICszMTksNiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVS
ZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZQogICAgIFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVz
cG9uc2UocmVzcG9uc2UpOwogICAgIFN0cmluZyB0eXBlID0gIk90aGVyIjsKICAgICBsb25nIGNh
Y2hlZFJlc291cmNlU2l6ZSA9IDA7Ci0KICAgICBpZiAobG9hZGVyKSB7CiAgICAgICAgIENhY2hl
ZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNhY2hl
ZFJlc291cmNlKGxvYWRlci0+ZnJhbWUoKSwgcmVzcG9uc2UudXJsKCkpOwogICAgICAgICBpZiAo
Y2FjaGVkUmVzb3VyY2UpIHsKQEAgLTM2OSw2ICszNzMsMTYgQEAgdm9pZCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpzZXRJbml0aWFsWEhSQ29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnMKICAgICBtX2Zyb250ZW5kLT5pbml0aWFsQ29udGVudFNldChzdGF0aWNfY2FzdDxpbnQ+
KGlkZW50aWZpZXIpLCBzb3VyY2VTdHJpbmcsIFJlc291cmNlVHlwZTo6eGhyKTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpkb21Db250ZW50RXZlbnRGaXJlZCgpCit7CisgICAg
bV9mcm9udGVuZC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKK3Zv
aWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQoKQoreworICAgIG1fZnJv
bnRlbmQtPmxvYWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworfQorCiBzdGF0aWMgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQog
ewogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGZyYW1lT2JqZWN0ID0gSW5zcGVjdG9yT2Jq
ZWN0OjpjcmVhdGUoKTsKQEAgLTQ4OCw4ICs1MDIsNiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6ZW5hYmxlKCkKIHsKLSAgICBpZiAoIW1fZnJvbnRlbmQpCi0gICAgICAgIHJldHVybjsKICAg
ICBtX3N0YXRlLT5zZXRCb29sZWFuKFJlc291cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVu
YWJsZWQsIHRydWUpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yUmVz
b3VyY2VBZ2VudCh0aGlzKTsKIH0KQEAgLTUyNyw4ICs1MzksMTUgQEAgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW4KICAgICA6IG1faW5zdHJ1bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRz
KQogICAgICwgbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQotICAgICwgbV9mcm9u
dGVuZCgwKQorICAgICwgbV9ldmVudHNDb2xsZWN0b3IobmV3IEV2ZW50c0NvbGxlY3RvcigpKQor
ICAgICwgbV9pbnNwZWN0b3JGcm9udGVuZFByb3h5KG5ldyBJbnNwZWN0b3JGcm9udGVuZFByb3h5
KG1fZXZlbnRzQ29sbGVjdG9yLmdldCgpKSkKIHsKKyAgICAvLyBUT0RPKHZvcnMpOgorICAgIC8v
IEFkZCBoZXJlIGNvbmRpdGlvbiB0byBlbmFibGUgYmFja2dyb3VuZCBldmVudHMgY29sbGVjdGlv
bi4KKworICAgIC8vIENyZWF0ZSBkdW1teSBmcm9udGVuZCwgc28gd2UgY2FuIGNvbGxlY3QgbmV0
d29yayBldmVudHMuCisgICAgbV9mcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZDo6TmV0
d29yayhtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOworICAgIGVuYWJsZSgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlQWdlbnQuaAppbmRleCAxMmYwZmUzODhiYWRlNGU2ODYwMzkyNDMw
Y2YyNjU4ZTFiNjU2ZmUxLi5lYjNkNDRmYTJjMjMxZTdjMTNiYmUwYzU5NWVlZTlhYWY0ZjYwNDg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAg
LTUxLDEwICs1MiwxMiBAQCBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEZyYW1lOwogY2xh
c3MgSW5zcGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3Bl
Y3RvckZyb250ZW5kUHJveHk7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0
b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBLVVJMOworY2xhc3Mg
RXZlbnRzQ29sbGVjdG9yOwogY2xhc3MgUGFnZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7CkBAIC05Nyw2ICsxMDAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBDYWNo
ZWRSZXNvdXJjZSopOwogICAgIHZvaWQgc2V0SW5pdGlhbFNjcmlwdENvbnRlbnQodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CiAgICAgdm9pZCBz
ZXRJbml0aWFsWEhSQ29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlU3RyaW5nKTsKKyAgICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CisgICAg
dm9pZCBsb2FkRXZlbnRGaXJlZCgpOwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZChEb2N1bWVudExv
YWRlciopOwogICAgIHZvaWQgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqKTsKIApAQCAt
MTI0LDYgKzEyOSw4IEBAIHByaXZhdGU6CiAgICAgSW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0
cnVtZW50aW5nQWdlbnRzOwogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBJbnNwZWN0b3JTdGF0ZSog
bV9zdGF0ZTsKKyAgICBPd25QdHI8RXZlbnRzQ29sbGVjdG9yPiBtX2V2ZW50c0NvbGxlY3RvcjsK
KyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmRQcm94eT4gbV9pbnNwZWN0b3JGcm9udGVuZFBy
b3h5OwogICAgIEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3JrKiBtX2Zyb250ZW5kOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFu
YWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFn
ZXIuanMKaW5kZXggOThhYTA2MGJiNDkxM2NlYTlkMDE4NTM0MmFiMGRlMDdkZDdiMWRjNy4uZjVi
ZjBjOGFlZDY0MWEzMTgzMzIzMTE1ZGE5NTMwODY0YzE5ODViMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBAIC0xNTAs
NiArMTUwLDE4IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAogCisgICAg
ZG9tQ29udGVudEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKKyAgICB9LAor
CisgICAgbG9hZEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBh
bmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKKyAgICB9LAorCiAgICAg
ZGF0YVJlY2VpdmVkOiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5n
dGhSZWNlaXZlZCkKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2luZmxpZ2h0
UmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggM2MzMGEyMGZmZmY2NzcyZGMwNTZlNjg5MDg1
MzA4MGU3MzU1ZDBhZC4uMTJkMjk2OTQ1YjRiZDAyOWYxNGI3ZTcyNDFjNTllMDFmMzc1MDg3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
QEAgLTk4NywxNSArOTg3LDEyIEBAIFdlYkluc3BlY3Rvci5zdGFydFVzZXJJbml0aWF0ZWREZWJ1
Z2dpbmcgPSBmdW5jdGlvbigpCiBXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQgPSBm
dW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VET01D
b250ZW50VGltZSA9IHRpbWU7Ci0gICAgaWYgKHRoaXMucGFuZWxzLm5ldHdvcmspCi0gICAgICAg
IHRoaXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwog
ICAgIHRoaXMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwogfQogCiBXZWJJbnNw
ZWN0b3IubG9hZEV2ZW50RmlyZWQgPSBmdW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxz
LmF1ZGl0cy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7Ci0gICAgdGhpcy5wYW5lbHMubmV0
d29yay5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7CiAgICAgdGhpcy5wYW5lbHMucmVzb3Vy
Y2VzLmxvYWRFdmVudEZpcmVkKCk7CiAgICAgdGhpcy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRp
bWU7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88792</attachid>
            <date>2011-04-08 03:46:05 -0700</date>
            <delta_ts>2011-04-08 07:57:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58064-20110408144602.patch</filename>
            <type>text/plain</type>
            <size>39380</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZTliYzY0NzU4YTUxZGNh
MDU2NTk1NDAwNjRmOTBhZjFiYzhiMTJhLi5kNTk3NDg1NzNmODgyNzY0NWM3ODZjNDY5MTBhZTVj
Y2U3MzE0ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMDQtMDggIFNlcmdl
eSBWb3JvYnlldiAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29yayBl
dmVudHMgZG9uJ3QgcHJlc2VydmVzLAorICAgICAgICB3aGVuIGluc3BlY3RvciBmcm9udGVuZCBj
bG9zZWQgYW5kIG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU4MDY0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9FdmVudHNDb2xsZWN0
b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6RXZlbnRz
Q29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6Y29sbGVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRzQ29sbGVjdG9yOjp+RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6
Okluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRQcm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6fkluc3BlY3RvckZyb250
ZW5kUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250
ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRX
ZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJTb2Nr
ZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJl
Y2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkRXZlbnRG
aXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0wOCAgQW5kcmV5IEFkYWlraW4gIDxh
YW5kcmV5QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGRhYjkwNDJjYWQ0NDhlMzMzYTQ5NTdj
YTVmZmFiMDlmM2RkYWYzNDUuLjM2MGZkZmM4MDc2MzY2ZTFmODJmZmU1MzY5ODYxNTY3NzMzNDYx
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTkwOCw2ICsxOTA4LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1l
c3NhZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuaCBcCisJ
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dEhvc3QuY3BwIFwKQEAgLTE5NDgsNiArMTk1MCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggY2NjYTQ3OTQ2ZGU2NDI1YmIwNGQxMGVlM2EyZDhkMjA4YmYwMzQyZS4uNmFkMTU4Yjc3
ZmI1YmNmMTExN2I5YjJlZGU1Y2EyYTUwNTE5OTFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzE5
Nyw2ICszMTk3LDggQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuaCcsCisgICAgICAgICAgICAnaW5z
cGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVu
dHNDb2xsZWN0b3IuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNw
cCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwJywKQEAgLTMyMzEsNiArMzIzMyw4
IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
Y3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oJywKKyAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAnLAorICAgICAgICAg
ICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYzJlM2E1NDA5NThjNTY1ZmNjN2E2NDViNmYzZGIxYWZh
YzljOTQ1Zi4uZTIxODIxZmUxNDY4NmQ3YTg2MDBhYzJhOWZmOGUwZDgxNDI4ZDg4MyAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY2NTQyLDYg
KzY2NTQyLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rv
ckZyb250ZW5kUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiCiAJCQkJ
PgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDhmYWQxYmZkY2Y5OGNjYWQ1ZGQxMzFkYjE3YWI4ZTg2MGRlOTE3
ODUuLjczZDJkYmNkYzAxYmM4NjlmYWU1OWE5MDgwNmFlZjljODgwYzU2YmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY0Niw2
ICs2NDYsMTAgQEAKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
ICovOyB9OwogCQkyMjc3Nzc2MDEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
Mjc3Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjI3NzdCNEEx
MzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0ODEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmNwcCAqLzsgfTsKKwkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8q
IEV2ZW50c0NvbGxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTIyNzc3QjRF
MTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjRDMTM0QTAxQTgwMDhF
QTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLzsgfTsKKwkJMjI3NzdCNEYxMzRB
MDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAv
KiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjI4ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1w
bGVtZW50YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRp
b25DdXN0b20uY3BwICovOyB9OwogCQkyMjhDMjg0NTEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0
V3JhcHBhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjQ1RDgwQTMxMzI4MEU0
MDAwMzQ5MkE2IC8qIFNRTENhbGxiYWNrV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ1RDgwQTIxMzI4MEU0MDAwMzQ5MkE2IC8qIFNRTENh
bGxiYWNrV3JhcHBlci5oICovOyB9OwpAQCAtNzA2OSw2ICs3MDczLDEwIEBACiAJCTIwRDYyOTI0
MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQz
IC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDgxMzRBMDE4
QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVj
dG9yRnJvbnRlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjgg
LyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBw
YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5
IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
YXNoQ2hhbmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMTg3LDYg
KzEzMTk1LDggQEAKIAkJCQk0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3Nh
Z2UuaCAqLywKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdo
dGVyLmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hs
aWdodGVyLmggKi8sCisJCQkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxl
Y3Rvci5jcHAgKi8sCisJCQkJMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxl
Y3Rvci5oICovLAogCQkJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlw
dC5jcHAgKi8sCiAJCQkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0
LmggKi8sCiAJCQkJN0EwRTc2RjYxMEJGMDhFRDAwQTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9z
dC5jcHAgKi8sCkBAIC0xMzIzMCw2ICsxMzI0MCw4IEBACiAJCQkJN0EwRTc3MEIxMEMwMEE4ODAw
QTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCiAJCQkJN0EwRTc3MEMxMEMw
MEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBE
MTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIy
Nzc3QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywK
KwkJCQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5o
ICovLAogCQkJCTIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwICovLAogCQkJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCAqLywKIAkJCQk0RjZGREQ2MjEzNDFERUREMDAxRjhFRTMgLyogSW5z
cGVjdG9yUGFnZUFnZW50LmNwcCAqLywKQEAgLTIwOTM0LDYgKzIwOTQ2LDcgQEAKIAkJCQk5Mzk4
ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUwRkVGMzcyQjE3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTEyRURCN0IwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDhGMzBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0
aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8q
IEV4Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEyODYsNiArMjEyOTksNyBAQAog
CQkJCUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBB
ODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTIyNzc3QjRGMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjZGREQ2NTEzNDFERUREMDAxRjhF
RTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjBENkIyRjEy
MUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMzc3Miw2ICsyMzc4Niw3IEBACiAJCQkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEY2NzU2MUMxMjg4QjE3QjAwNDdB
Q0EzIC8qIEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTBGRUYzNzJCMjdDNTNF
QUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRB
MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTEyRURCRUEwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNjBEOEYyMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzODMxQjU3MEQwODdENjAwMEU1Qzk4NCAvKiBFeGNlcHRpb25D
b2RlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQwODIsNiArMjQwOTcsNyBAQAogCQkJCTRGNEY1
RkZCMTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUg
LyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRF
MTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8q
IEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjBENkIyRTEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDA3Zjg3MTNjNjY3YTA1N2U3YzhjYjc2NTAwNTBkOWRmNDk0YjcwMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBAIC0w
LDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJF
dmVudHNDb2xsZWN0b3IuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9y
KCkKKyAgICA6IHRvdGFsTGVuZ3RoKDApCit7CisgICAgZXZlbnRzID0gKihuZXcgVmVjdG9yPFN0
cmluZz4pOworfQorCit2b2lkIEV2ZW50c0NvbGxlY3Rvcjo6Y29sbGVjdChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCit7CisgICAgdG90YWxMZW5ndGggKz0gKGludCltZXNzYWdlLmxlbmd0aCgpOwor
ICAgIGV2ZW50cy5hcHBlbmQobWVzc2FnZSk7CisgICAgd2hpbGUgKHRvdGFsTGVuZ3RoID4gQ0FQ
QUNJVFkpIHsKKyAgICAgICAgdG90YWxMZW5ndGggLT0gKGludClldmVudHNbMF0ubGVuZ3RoKCk7
CisgICAgICAgIGV2ZW50cy5yZW1vdmUoMCk7CisgICAgfQorfQorCit2b2lkIEV2ZW50c0NvbGxl
Y3Rvcjo6cHVzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiByZWNlaXZlcikKK3sKKyAg
ICBmb3IgKFZlY3RvcjxTdHJpbmc+OjppdGVyYXRvciBpdCA9IGV2ZW50cy5iZWdpbigpOyBpdCAh
PSBldmVudHMuZW5kKCk7ICsraXQpCisgICAgICAgIHJlY2VpdmVyLT5zZW5kTWVzc2FnZVRvRnJv
bnRlbmQoKml0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVu
dHNDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3Iu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41M2ViZTAxZTllNmM2NDVlOWI2YTc5NDI2ZDMxZWVmNzMyOWEyODczCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rv
ci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRXZlbnRzQ29sbGVjdG9y
X2gKKyNkZWZpbmUgRXZlbnRzQ29sbGVjdG9yX2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWw7CisKK2Ns
YXNzIEV2ZW50c0NvbGxlY3RvciB7CitwdWJsaWM6CisgICAgRXZlbnRzQ29sbGVjdG9yKCk7Cisg
ICAgfkV2ZW50c0NvbGxlY3RvcigpIHsgfQorICAgIHZvaWQgY29sbGVjdChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOworICAgIHZvaWQgcHVzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7
Citwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBpbnQgQ0FQQUNJVFkgPSAxMDQ4NTc2OyAvLyAx
IE1iCisgICAgaW50IHRvdGFsTGVuZ3RoOworICAgIFZlY3RvcjxTdHJpbmc+IGV2ZW50czsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vICFkZWZpbmVkKEV2ZW50c0Nv
bGxlY3Rvcl9oKQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA2ODQ1M2IzNDQxYzI2YzY2Y2UxMThiMTIxYjcy
ZDU4NGRhMGU2YWNkLi43ZjdlZWE1Zjk4MjFiMWVjY2ViNTdiYTdjNjExN2UzNTA2OWJkYjIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0zNzEsNiArMzcxLDE4
IEBACiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCiAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiZG9tQ29udGVudEV2ZW50RmlyZWQiLAorICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWUi
LCAidHlwZSI6ICJudW1iZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImxvYWRFdmVudEZpcmVkIiwK
KyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CisgICAgICAgICAgICAgICAgXQorICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJmcmFt
ZURldGFjaGVkIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZWQgd2hlbiBm
cmFtZSBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIGl0cyBwYXJlbnQuIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzJhMDIwNTJlZjk5ZDM3ZGZhNjFh
NTQ2ZGQ0YjJjMWE5Y2Y1YjA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIgorCisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkV2ZW50c0NvbGxlY3Rvci5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xsZWN0b3IqIGNv
bGxlY3RvcikKK3sKKyAgICBtX3JlY2VpdmVyID0gMDsKKyAgICBtX2NvbGxlY3RvciA9IGNvbGxl
Y3RvcjsKK30KKworSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94
eShFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3RvciwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBu
ZXh0Q2hhbm5lbCkKK3sKKyAgICBtX2NvbGxlY3RvciA9IGNvbGxlY3RvcjsKKyAgICBtX3JlY2Vp
dmVyID0gbmV4dENoYW5uZWw7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2V0
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogcmVjZWl2
ZXIpCit7CisgICAgbV9yZWNlaXZlciA9IHJlY2VpdmVyOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3RvcihFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3Rv
cikKK3sKKyAgICBtX2NvbGxlY3RvciA9IGNvbGxlY3RvcjsKK30KKworYm9vbCBJbnNwZWN0b3JG
cm9udGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQoreworICAgIG1fY29sbGVjdG9yLT5jb2xsZWN0KG1lc3NhZ2UpOworICAgIGlmIChtX3JlY2Vp
dmVyKQorICAgICAgICByZXR1cm4gbV9yZWNlaXZlci0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKG1l
c3NhZ2UpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2NjM5YmFlZmU5ZDRi
YTVkYzhiZTRkY2NiZDQ5NmFkNzcxNmZiZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oCkBAIC0wLDAgKzEsNTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgSW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oCisjZGVmaW5lIElu
c3BlY3RvckZyb250ZW5kUHJveHlfaAorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRXZlbnRzQ29sbGVjdG9yOworCitjbGFz
cyBJbnNwZWN0b3JGcm9udGVuZFByb3h5IDogcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCB7CitwdWJsaWM6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xsZWN0b3Iq
KTsKKyAgICBJbnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3RvciosIEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbCogbmV4dENoYW5uZWwpOworICAgIHZpcnR1YWwgfkluc3BlY3RvckZy
b250ZW5kUHJveHkoKSB7IH0KKworICAgIHZvaWQgc2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworICAgIHZvaWQgc2V0RXZlbnRzQ29sbGVjdG9y
KEV2ZW50c0NvbGxlY3RvciopOworICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJvbnRl
bmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKworcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqIG1fcmVjZWl2ZXI7CisgICAgRXZlbnRzQ29sbGVjdG9yKiBtX2NvbGxlY3Rv
cjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQ
RUNUT1IpCisKKyNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JGcm9udGVuZFByb3h5X2gpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCmluZGV4IGQyYjczZjQyNzY1OWY5NWRkMGFkMDY1Y2QwMjkxMjgzOTEyNGUzNjIuLmFi
MTcxNzk5YTkyNDFjZmE1ZmZlOWU5ZDI1Yjg1MmQwYmIyM2NlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC01
MDksNiArNTA5LDkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRM
b2FkZWRFdmVudEZpcmVkSW1wbChJbnNwZWN0b3JBZ2VudCogaW4KICAgICBpZiAoSW5zcGVjdG9y
VGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50
aW5nQWdlbnRzKCktPmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKICAgICAgICAgdGltZWxpbmVB
Z2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpOwogCisgICAgaWYgKEluc3BlY3RvclJlc291
cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0Fn
ZW50cygpLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCisgICAgICAgIHJlc291cmNlQWdlbnQt
PmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CisKICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0
b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgp
OwogfQpAQCAtNTI3LDYgKzUzMCw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjps
b2FkRXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50CiAgICAgaWYg
KEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+
aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAg
IHRpbWVsaW5lQWdlbnQtPmRpZE1hcmtMb2FkRXZlbnQoKTsKIAorICAgIGlmIChJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRp
bmdBZ2VudHMoKS0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQorICAgICAgICByZXNvdXJjZUFn
ZW50LT5sb2FkRXZlbnRGaXJlZCgpOworCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9y
UGFnZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAppbmRleCA3N2M0NjRlOTE5OWY0MmJlNDM1N2RhYjdmYTZlZDA1NzdhNWYzNjgwLi5lZGY2OThm
ZDk1OTlhZjY5MzUxMWFmODYyZDljMGYwZjY1YWVlMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC02MTIsNyArNjEy
LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseVVzZXJBZ2Vu
dE92ZXJyaWRlKEZyYW1lKiBmcmFtZSwgU3RyaW4KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGljID0gaW5zcGVjdG9yQWdl
bnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
YyA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICB3aWxsU2VuZFJlcXVl
c3RJbXBsKGljLCBpZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Up
OwogI2VuZGlmCiB9CkBAIC02NTEsNyArNjUxLDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKGNvbnN0IEluc3BlY3Rvckluc3QK
IGlubGluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UoRnJhbWUqIGZyYW1lLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlm
IChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1l
KGZyYW1lKSkKICAgICAgICAgcmV0dXJuIHdpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZUltcGwo
aW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKICNlbmRpZgogICAgIHJldHVy
biBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsKQEAgLTY2OCw3ICs2NjgsNyBAQCBp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVSZXNvdXJjZVJl
c3BvbnNlKGNvbnN0IEluc3BlY3RvcgogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgaW50IGRhdGFMZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCkKIHsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQg
PSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5z
cGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFt
ZSkpCiAgICAgICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JBZ2VudCwg
aWRlbnRpZmllciwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCiB9CkBAIC02
NzYsNyArNjc2LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRS
ZWNlaXZlQ29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2kKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZyhGcmFtZSogZnJhbWUsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVj
dG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAg
ICAgICBkaWRGaW5pc2hMb2FkaW5nSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgZmlu
aXNoVGltZSk7CiAjZW5kaWYKIH0KQEAgLTcwOCw3ICs3MDgsNyBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnNjcmlwdEltcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbgogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50
TG9hZGVkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQg
PSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5z
cGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFt
ZSkpCiAgICAgICAgIGRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkSW1wbChpbnNwZWN0b3JBZ2Vu
dCwgZnJhbWUsIHVybCk7CiAjZW5kaWYKIH0KQEAgLTcxNiw3ICs3MTYsNyBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKEZy
YW1lKiBmcmFtZSwgYwogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2Fk
RXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAg
ICAgICAgIGxvYWRFdmVudEZpcmVkSW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUsIHVybCk7CiAj
ZW5kaWYKIH0KQEAgLTcyNCw3ICs3MjQsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmxvYWRFdmVudEZpcmVkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdQogaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVu
dChGcmFtZSogZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVj
dG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JG
cmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGlu
c3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBmcmFtZURldGFjaGVkRnJvbVBh
cmVudEltcGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lKTsKICNlbmRpZgogfQpAQCAtNzkyLDcgKzc5
Miw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGVzdHJveVdv
cmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IEtVUkwmIHJlcXVlc3RVUkws
IGNvbnN0IEtVUkwmIGRvY3VtZW50VVJMKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAg
aWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZy
b250ZW5kRm9yQ29udGV4dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICBk
aWRDcmVhdGVXZWJTb2NrZXRJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXF1ZXN0
VVJMLCBkb2N1bWVudFVSTCk7CiAjZW5kaWYKIH0KQEAgLTgwMCw3ICs4MDAsNyBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KgogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJTb2NrZXRIYW5kc2hh
a2VSZXF1ZXN0JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKElu
c3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5k
Rm9yQ29udGV4dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICB3aWxsU2Vu
ZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3RJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVy
LCByZXF1ZXN0KTsKICNlbmRpZgogfQpAQCAtODA4LDcgKzgwOCw3IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0
KFNjcmlwdEV4CiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2Vp
dmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlJiByZXNwb25zZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZv
ckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2Vu
dCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlkUmVjZWl2
ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmll
ciwgcmVzcG9uc2UpOwogI2VuZGlmCiB9CkBAIC04MTYsNyArODE2LDcgQEAgaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVz
cG9uc2UoU2NyaXAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xv
c2VXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yQ29u
dGV4dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0g
aW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRDbG9zZVdlYlNv
Y2tldEltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIpOwogI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKaW5k
ZXggZjI3Mzc0ZmU1MDg2NDVkZDQ1OTM2YzNkMWY0ZWE5YjYyMmQzMDMxZS4uN2UyNWViZTk5MzI0
MmUyZjBhYmJmZjIxNTBkODdlYWYyNmE4Y2ZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcApAQCAtMzQsMjEgKzM0LDI0IEBA
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkJhc2U2NC5oIgotI2luY2x1ZGUg
Ik1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1l
T3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRUUEhl
YWRlck1hcC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRQcm94
eS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFs
dWVzLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIktVUkwu
aCIKKyNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQcm9ncmVzc1RyYWNrZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCkBAIC04OCw2
ICs5MSwxMSBAQCBzdGF0aWMgY29uc3QgY2hhciBvdGhlcltdID0gIk90aGVyIjsKIHZvaWQgSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6c2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250
ZW5kKQogewogICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+bmV0d29yaygpOworICAgIC8vIElu
c2VydCBNZXNzYWdlIFByb3h5IGluIHJlY2VpdmVyIGNoYWluLgorICAgIEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbCogY2xpZW50ID0gbV9mcm9udGVuZC0+Z2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKCk7CisgICAgbV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LT5zZXRJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwoY2xpZW50KTsKKyAgICBtX2Zyb250ZW5kLT5zZXRJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICBtX2V2ZW50c0NvbGxl
Y3Rvci0+cHVzaERhdGEoY2xpZW50KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpjbGVhckZyb250ZW5kKCkKQEAgLTI3NCwxMCArMjgyLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckNhY2hlZFJlc291cmNlKGNvbnN0IENhY2hl
ZFJlc28KICAgICByZXR1cm4gcmVzb3VyY2VPYmplY3Q7CiB9CiAKLUluc3BlY3RvclJlc291cmNl
QWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkKLXsKLSAgICBBU1NFUlQoIW1faW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKTsKLX0KK0luc3BlY3RvclJl
c291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkge30KIAogdm9pZCBJbnNwZWN0
b3JSZXNvdXJjZUFnZW50Ojp3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CkBAIC0zMTQsNyArMzE5LDYg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWUKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBy
ZXNvdXJjZVJlc3BvbnNlID0gYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlc3BvbnNl
KTsKICAgICBTdHJpbmcgdHlwZSA9ICJPdGhlciI7CiAgICAgbG9uZyBjYWNoZWRSZXNvdXJjZVNp
emUgPSAwOwotCiAgICAgaWYgKGxvYWRlcikgewogICAgICAgICBDYWNoZWRSZXNvdXJjZSogY2Fj
aGVkUmVzb3VyY2UgPSBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjYWNoZWRSZXNvdXJjZShsb2Fk
ZXItPmZyYW1lKCksIHJlc3BvbnNlLnVybCgpKTsKICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNl
KSB7CkBAIC0zNjksNiArMzczLDE2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6c2V0
SW5pdGlhbFhIUkNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zCiAgICAgbV9m
cm9udGVuZC0+aW5pdGlhbENvbnRlbnRTZXQoc3RhdGljX2Nhc3Q8aW50PihpZGVudGlmaWVyKSwg
c291cmNlU3RyaW5nLCBSZXNvdXJjZVR5cGU6Onhocik7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQoKQoreworICAgIG1fZnJvbnRlbmQtPmRv
bUNvbnRlbnRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworfQorCit2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5sb2FkRXZl
bnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBidWlsZE9iamVjdEZvckZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBmcmFtZU9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7
CkBAIC00ODgsOCArNTAyLDYgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUo
RXJyb3JTdHJpbmcqKQogCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZSgpCiB7
Ci0gICAgaWYgKCFtX2Zyb250ZW5kKQotICAgICAgICByZXR1cm47CiAgICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihSZXNvdXJjZUFnZW50U3RhdGU6OnJlc291cmNlQWdlbnRFbmFibGVkLCB0cnVlKTsK
ICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclJlc291cmNlQWdlbnQodGhp
cyk7CiB9CkBAIC01MjcsOCArNTM5LDE1IEBAIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3Bl
Y3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluCiAgICAg
OiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fcGFn
ZShwYWdlKQogICAgICwgbV9zdGF0ZShzdGF0ZSkKLSAgICAsIG1fZnJvbnRlbmQoMCkKKyAgICAs
IG1fZXZlbnRzQ29sbGVjdG9yKG5ldyBFdmVudHNDb2xsZWN0b3IoKSkKKyAgICAsIG1faW5zcGVj
dG9yRnJvbnRlbmRQcm94eShuZXcgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShtX2V2ZW50c0NvbGxl
Y3Rvci5nZXQoKSkpCiB7CisgICAgLy8gVE9ETyh2b3JzKToKKyAgICAvLyBBZGQgaGVyZSBjb25k
aXRpb24gdG8gZW5hYmxlIGJhY2tncm91bmQgZXZlbnRzIGNvbGxlY3Rpb24uCisKKyAgICAvLyBD
cmVhdGUgZHVtbXkgZnJvbnRlbmQsIHNvIHdlIGNhbiBjb2xsZWN0IG5ldHdvcmsgZXZlbnRzLgor
ICAgIG1fZnJvbnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQ6Ok5ldHdvcmsobV9pbnNwZWN0
b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICBlbmFibGUoKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmgKaW5kZXggMTJmMGZlMzg4YmFkZTRlNjg2MDM5MjQzMGNmMjY1OGUxYjY1NmZl
MS4uZWIzZDQ0ZmEyYzIzMWU3YzEzYmJlMGM1OTVlZWU5YWFmNGY2MDQ4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybVN0cmluZy5oIgogCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01MSwxMCArNTIsMTIg
QEAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckFy
cmF5OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZFBy
b3h5OwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFz
cyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgS1VSTDsKK2NsYXNzIEV2ZW50c0NvbGxlY3Rv
cjsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwpAQCAtOTcsNiArMTAwLDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkTG9hZFJlc291cmNl
RnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29uc3QgQ2FjaGVkUmVzb3VyY2UqKTsK
ICAgICB2b2lkIHNldEluaXRpYWxTY3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwogICAgIHZvaWQgc2V0SW5pdGlhbFhIUkNv
bnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmlu
Zyk7CisgICAgdm9pZCBkb21Db250ZW50RXZlbnRGaXJlZCgpOworICAgIHZvaWQgbG9hZEV2ZW50
RmlyZWQoKTsKICAgICB2b2lkIGRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqKTsKICAgICB2
b2lkIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1lKik7CiAKQEAgLTEyNCw2ICsxMjksOCBA
QCBwcml2YXRlOgogICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50
czsKICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1fc3RhdGU7CisgICAg
T3duUHRyPEV2ZW50c0NvbGxlY3Rvcj4gbV9ldmVudHNDb2xsZWN0b3I7CisgICAgT3duUHRyPElu
c3BlY3RvckZyb250ZW5kUHJveHk+IG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eTsKICAgICBJbnNw
ZWN0b3JGcm9udGVuZDo6TmV0d29yayogbV9mcm9udGVuZDsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCmluZGV4IDk4
YWEwNjBiYjQ5MTNjZWE5ZDAxODUzNDJhYjBkZTA3ZGQ3YjFkYzcuLmY1YmYwYzhhZWQ2NDFhMzE4
MzMyMzExNWRhOTUzMDg2NGMxOTg1YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwpAQCAtMTUwLDYgKzE1MCwxOCBAQCBX
ZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll91cGRhdGVSZXNvdXJjZShyZXNvdXJjZSk7CiAgICAgfSwKIAorICAgIGRvbUNvbnRlbnRFdmVu
dEZpcmVkOiBmdW5jdGlvbih0aW1lKQorICAgIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5w
YW5lbHMubmV0d29yaykKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5t
YWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7CisgICAgfSwKKworICAgIGxvYWRFdmVu
dEZpcmVkOiBmdW5jdGlvbih0aW1lKQorICAgIHsKKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5w
YW5lbHMubmV0d29yaykKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yay5t
YWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7CisgICAgfSwKKwogICAgIGRhdGFSZWNlaXZlZDog
ZnVuY3Rpb24oaWRlbnRpZmllciwgdGltZSwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpCiAg
ICAgewogICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9pbmZsaWdodFJlc291cmNlc0J5SWRb
aWRlbnRpZmllcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCmluZGV4IDNjMzBhMjBmZmZmNjc3MmRjMDU2ZTY4OTA4NTMwODBlNzM1NWQwYWQu
LjEyZDI5Njk0NWI0YmQwMjlmMTRiN2U3MjQxYzU5ZTAxZjM3NTA4NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC05ODcsMTUgKzk4
NywxMiBAQCBXZWJJbnNwZWN0b3Iuc3RhcnRVc2VySW5pdGlhdGVkRGVidWdnaW5nID0gZnVuY3Rp
b24oKQogV2ViSW5zcGVjdG9yLmRvbUNvbnRlbnRFdmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkK
IHsKICAgICB0aGlzLnBhbmVscy5hdWRpdHMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0
aW1lOwotICAgIGlmICh0aGlzLnBhbmVscy5uZXR3b3JrKQotICAgICAgICB0aGlzLnBhbmVscy5u
ZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKICAgICB0aGlzLm1haW5S
ZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKIH0KIAogV2ViSW5zcGVjdG9yLmxvYWRFdmVu
dEZpcmVkID0gZnVuY3Rpb24odGltZSkKIHsKICAgICB0aGlzLnBhbmVscy5hdWRpdHMubWFpblJl
c291cmNlTG9hZFRpbWUgPSB0aW1lOwotICAgIHRoaXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291
cmNlTG9hZFRpbWUgPSB0aW1lOwogICAgIHRoaXMucGFuZWxzLnJlc291cmNlcy5sb2FkRXZlbnRG
aXJlZCgpOwogICAgIHRoaXMubWFpblJlc291cmNlTG9hZFRpbWUgPSB0aW1lOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88822</attachid>
            <date>2011-04-08 07:57:26 -0700</date>
            <delta_ts>2011-04-11 08:23:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58064-20110408185721.patch</filename>
            <type>text/plain</type>
            <size>40479</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyNzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjUxODBj
OWRiMTkwMGY4NWM2N2ZmYTljOTVjMTI3ZjAwMjczY2NjMS4uOGFjNDNmZTAzMWFiNmZlMjY4OTgw
MjI2YTFlNWY0M2E0ZDZiMTU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTg4NCw2ICs4ODQs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCiAgICAgaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAKKyAgICBpbnNwZWN0b3Iv
RXZlbnRzQ29sbGVjdG9yLmNwcAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKICAg
ICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAogICAgIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC05MDMsNiArOTA0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHku
Y3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZTliYzY0NzU4YTUxZGNhMDU2NTk1NDAw
NjRmOTBhZjFiYzhiMTJhLi5kNTk3NDg1NzNmODgyNzY0NWM3ODZjNDY5MTBhZTVjY2U3MzE0ZWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMDQtMDggIFNlcmdleSBWb3JvYnll
diAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29yayBldmVudHMgZG9u
J3QgcHJlc2VydmVzLAorICAgICAgICB3aGVuIGluc3BlY3RvciBmcm9udGVuZCBjbG9zZWQgYW5k
IG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU4MDY0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6Y29sbGVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvRXZlbnRzQ29sbGVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRzQ29s
bGVjdG9yOjp+RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3BlY3Rv
ckZyb250ZW5kUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94
eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6fkluc3BlY3RvckZyb250ZW5kUHJveHkp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVk
RXZlbnRGaXJlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2Fk
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29u
dGVudExvYWRlZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29ja2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRI
YW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJTb2NrZXQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2VpdmVSZXNw
b25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2Fk
UmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3Jr
RGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkRXZlbnRGaXJlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmxv
YWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0wOCAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGRhYjkwNDJjYWQ0NDhlMzMzYTQ5NTdjYTVmZmFiMDlm
M2RkYWYzNDUuLjM2MGZkZmM4MDc2MzY2ZTFmODJmZmU1MzY5ODYxNTY3NzMzNDYxY2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTkwOCw2ICsxOTA4LDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3Bw
IFwKQEAgLTE5NDgsNiArMTk1MCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBcCiAJU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisJU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2Nj
YTQ3OTQ2ZGU2NDI1YmIwNGQxMGVlM2EyZDhkMjA4YmYwMzQyZS4uNmFkMTU4Yjc3ZmI1YmNmMTEx
N2I5YjJlZGU1Y2EyYTUwNTE5OTFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzE5Nyw2ICszMTk3
LDggQEAKICAgICAgICAgICAgICdpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0V2
ZW50c0NvbGxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVudHNDb2xsZWN0
b3IuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCcsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwJywKQEAgLTMyMzEsNiArMzIzMyw4IEBACiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwJywKICAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAnLAorICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggYzJlM2E1NDA5NThjNTY1ZmNjN2E2NDViNmYzZGIxYWZhYzljOTQ1Zi4u
ZGVjMjZlMGE5YjU4YmI4Nzc2ZTNkZmU1YjRlNTAxOTExM2QxODkyOSAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY2Mzc0LDYgKzY2Mzc0LDE0
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGlu
c3BlY3RvclxFdmVudHNDb2xsZWN0b3IuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRXZlbnRzQ29sbGVjdG9yLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxE
T01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTY2NTQyLDYgKzY2
NTUwLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZy
b250ZW5kUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDhmYWQxYmZkY2Y5OGNjYWQ1ZGQxMzFkYjE3YWI4ZTg2MGRlOTE3ODUu
LjczZDJkYmNkYzAxYmM4NjlmYWU1OWE5MDgwNmFlZjljODgwYzU2YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY0Niw2ICs2
NDYsMTAgQEAKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICov
OyB9OwogCQkyMjc3Nzc2MDEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3
Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjI3NzdCNEExMzRB
MDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0ODEzNEEwMThDMDA4RUE0NTUgLyogRXZl
bnRzQ29sbGVjdG9yLmNwcCAqLzsgfTsKKwkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2
ZW50c0NvbGxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTIyNzc3QjRFMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1
NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLzsgfTsKKwkJMjI3NzdCNEYxMzRBMDFB
ODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAvKiBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMjI4ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVt
ZW50YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25D
dXN0b20uY3BwICovOyB9OwogCQkyMjhDMjg0NTEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3Jh
cHBhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
MjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjQ1RDgwQTMxMzI4MEU0MDAw
MzQ5MkE2IC8qIFNRTENhbGxiYWNrV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ1RDgwQTIxMzI4MEU0MDAwMzQ5MkE2IC8qIFNRTENhbGxi
YWNrV3JhcHBlci5oICovOyB9OwpAQCAtNzA2OSw2ICs3MDczLDEwIEBACiAJCTIwRDYyOTI0MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8q
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDgxMzRBMDE4QzAw
OEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9y
RnJvbnRlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyog
SlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5IC8q
IEhhc2hDaGFuZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYXNo
Q2hhbmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMTg3LDYgKzEz
MTk1LDggQEAKIAkJCQk0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2Uu
aCAqLywKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdo
dGVyLmggKi8sCisJCQkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rv
ci5jcHAgKi8sCisJCQkJMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rv
ci5oICovLAogCQkJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5j
cHAgKi8sCiAJCQkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0Lmgg
Ki8sCiAJCQkJN0EwRTc2RjYxMEJGMDhFRDAwQTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5j
cHAgKi8sCkBAIC0xMzIzMCw2ICsxMzI0MCw4IEBACiAJCQkJN0EwRTc3MEIxMEMwMEE4ODAwQTAy
NzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCiAJCQkJN0EwRTc3MEMxMEMwMEE4
ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBD
MDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3
QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJ
CQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICov
LAogCQkJCTIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwICovLAogCQkJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCAqLywKIAkJCQk0RjZGREQ2MjEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVj
dG9yUGFnZUFnZW50LmNwcCAqLywKQEAgLTIwOTM0LDYgKzIwOTQ2LDcgQEAKIAkJCQk5Mzk4ODVD
NDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEY2
NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUwRkVGMzcyQjE3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEyRURCN0IwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDhGMzBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9u
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4
Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEyODYsNiArMjEyOTksNyBAQAogCQkJ
CUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgw
MEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTIy
Nzc3QjRGMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjZGREQ2NTEzNDFERUREMDAxRjhFRTMg
LyogSW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjBENkIyRjEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMzc3Miw2ICsyMzc4Niw3IEBACiAJCQkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEY2NzU2MUMxMjg4QjE3QjAwNDdBQ0Ez
IC8qIEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTBGRUYzNzJCMjdDNTNFQUMx
QzFGQkVFIC8qIEV2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRBMTM0
QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTEyRURCRUEwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDNjBEOEYyMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzODMxQjU3MEQwODdENjAwMEU1Qzk4NCAvKiBFeGNlcHRpb25Db2Rl
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQwODIsNiArMjQwOTcsNyBAQAogCQkJCTRGNEY1RkZC
MTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyog
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRFMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIElu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjBENkIyRTEyMUJGRUJB
MDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTM1MjA1YjI5YzY4MjQ5ZjBlYTgwM2I1NzYzZmRjYzMwMDc4ZTk5MQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBAIC0wLDAg
KzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVu
dHNDb2xsZWN0b3IuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKCkK
KyAgICA6IHRvdGFsTGVuZ3RoKDApCit7IH0KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OmNvbGxl
Y3QoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIHRvdGFsTGVuZ3RoICs9IChpbnQpbWVz
c2FnZS5sZW5ndGgoKTsKKyAgICBldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAgIHdoaWxlICh0
b3RhbExlbmd0aCA+IENBUEFDSVRZKSB7CisgICAgICAgIHRvdGFsTGVuZ3RoIC09IChpbnQpZXZl
bnRzWzBdLmxlbmd0aCgpOworICAgICAgICBldmVudHMucmVtb3ZlKDApOworICAgIH0KK30KKwor
dm9pZCBFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCog
cmVjZWl2ZXIpCit7CisgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6aXRlcmF0b3IgaXQgPSBldmVu
dHMuYmVnaW4oKTsgaXQgIT0gZXZlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICByZWNlaXZlci0+
c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKCppdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RXZlbnRzQ29sbGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNlYmUwMWU5ZTZjNjQ1ZTliNmE3OTQyNmQz
MWVlZjczMjlhMjg3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9FdmVudHNDb2xsZWN0b3IuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEV2ZW50c0NvbGxlY3Rvcl9oCisjZGVmaW5lIEV2ZW50c0NvbGxlY3Rvcl9oCisKKyNpZiBFTkFC
TEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsOworCitjbGFzcyBFdmVudHNDb2xsZWN0b3IgeworcHVibGljOgorICAgIEV2ZW50
c0NvbGxlY3RvcigpOworICAgIH5FdmVudHNDb2xsZWN0b3IoKSB7IH0KKyAgICB2b2lkIGNvbGxl
Y3QoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIHB1c2hEYXRhKEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCopOworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgaW50IENBUEFDSVRZ
ID0gMTA0ODU3NjsgLy8gMSBNYgorICAgIGludCB0b3RhbExlbmd0aDsKKyAgICBWZWN0b3I8U3Ry
aW5nPiBldmVudHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAh
ZGVmaW5lZChFdmVudHNDb2xsZWN0b3JfaCkKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggNjg0NTNiMzQ0MWMy
NmM2NmNlMTE4YjEyMWI3MmQ1ODRkYTBlNmFjZC4uN2Y3ZWVhNWY5ODIxYjFlY2NlYjU3YmE3YzYx
MTdlMzUwNjliZGIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpA
QCAtMzcxLDYgKzM3MSwxOCBAQAogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwogICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImRvbUNvbnRlbnRFdmVudEZpcmVk
IiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CisgICAgICAgICAgICAgICAgXQor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJs
b2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAg
ICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIsCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIs
CiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMyYTAy
MDUyZWY5OWQzN2RmYTYxYTU0NmRkNGIyYzFhOWNmNWIwNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcApAQCAtMCww
ICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5k
UHJveHkuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJFdmVudHNDb2xs
ZWN0b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZl
bnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9yZWNlaXZlciA9IDA7CisgICAgbV9j
b2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3Bl
Y3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IsIEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogbmV4dENoYW5uZWwpCit7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0
b3I7CisgICAgbV9yZWNlaXZlciA9IG5leHRDaGFubmVsOworfQorCit2b2lkIEluc3BlY3RvckZy
b250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAgIG1fcmVjZWl2ZXIgPSByZWNlaXZlcjsKK30KKwor
dm9pZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IoRXZlbnRzQ29s
bGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisK
K2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX2NvbGxlY3Rvci0+Y29sbGVjdChtZXNzYWdlKTsK
KyAgICBpZiAobV9yZWNlaXZlcikKKyAgICAgICAgcmV0dXJuIG1fcmVjZWl2ZXItPnNlbmRNZXNz
YWdlVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NjYzOWJhZWZlOWQ0YmE1ZGM4YmU0ZGNjYmQ0OTZhZDc3MTZmYmRkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaApA
QCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEluc3BlY3RvckZyb250ZW5kUHJv
eHlfaAorI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZFByb3h5X2gKKworI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEV2ZW50c0Nv
bGxlY3RvcjsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eSA6IHB1YmxpYyBJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZyb250ZW5kUHJveHko
RXZlbnRzQ29sbGVjdG9yKik7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xs
ZWN0b3IqLCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIG5leHRDaGFubmVsKTsKKyAgICB2aXJ0
dWFsIH5JbnNwZWN0b3JGcm9udGVuZFByb3h5KCkgeyB9CisKKyAgICB2b2lkIHNldEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqKTsKKyAgICB2b2lkIHNl
dEV2ZW50c0NvbGxlY3RvcihFdmVudHNDb2xsZWN0b3IqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Vu
ZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKK3ByaXZhdGU6Cisg
ICAgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBtX3JlY2VpdmVyOworICAgIEV2ZW50c0NvbGxl
Y3RvciogbV9jb2xsZWN0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorCisjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yRnJv
bnRlbmRQcm94eV9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkMmI3M2Y0Mjc2NTlmOTVkZDBhZDA2NWNkMDI5
MTI4MzkxMjRlMzYyLi5hYjE3MTc5OWE5MjQxY2ZhNWZmZTllOWQyNWI4NTJkMGJiMjNjZTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcApAQCAtNTA5LDYgKzUwOSw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGluCiAg
ICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0b3JB
Z2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZE1hcmtET01Db250ZW50RXZlbnQoKTsKIAorICAgIGlm
IChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQt
Pmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQorICAgICAg
ICByZXNvdXJjZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgpOworCiAgICAgaWYgKEluc3Bl
Y3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdB
Z2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+ZG9tQ29u
dGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTUyNyw2ICs1MzAsOSBAQCB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudAogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0g
aW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yVGltZWxpbmVB
Z2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrTG9hZEV2ZW50KCk7CiAKKyAg
ICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3BlY3RvckFn
ZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKKyAg
ICAgICAgcmVzb3VyY2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQoKTsKKwogICAgIGlmIChJbnNwZWN0
b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdl
bnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmxvYWRFdmVu
dEZpcmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzdjNDY0ZTkxOTlmNDJiZTQzNTdkYWI3ZmE2ZWQwNTc3
YTVmMzY4MC4uZWRmNjk4ZmQ5NTk5YWY2OTM1MTFhZjg2MmQ5YzBmMGY2NWFlZTBiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aApAQCAtNjEyLDcgKzYxMiw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZShGcmFtZSogZnJhbWUsIFN0cmluCiBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBp
YyA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAg
ICAgd2lsbFNlbmRSZXF1ZXN0SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCBy
ZWRpcmVjdFJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtNjUxLDcgKzY1MSw3IEBAIGlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25z
dCBJbnNwZWN0b3JJbnN0CiBpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKEZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JB
Z2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1l
KGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVj
dG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291
cmNlUmVzcG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAj
ZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CkBAIC02
NjgsNyArNjY4LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRS
ZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1l
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVj
ZWl2ZWQpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFt
ZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFn
ZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwo
aW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsK
ICNlbmRpZgogfQpAQCAtNjc2LDcgKzY3Niw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpCiBp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmcoRnJh
bWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQog
ewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAg
IGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZy
YW1lKGZyYW1lKSkKICAgICAgICAgZGlkRmluaXNoTG9hZGluZ0ltcGwoaW5zcGVjdG9yQWdlbnQs
IGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOwogI2VuZGlmCiB9CkBAIC03MDgsNyArNzA4LDcgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb24KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFt
ZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFn
ZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZElt
cGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MTYsNyArNzE2
LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9h
ZGVkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGMKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwp
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisg
ICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9y
RnJhbWUoZnJhbWUpKQogICAgICAgICBsb2FkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQs
IGZyYW1lLCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MjQsNyArNzI0LDcgQEAgaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNv
bnN0IEtVUkwmIHUKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVE
ZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqIGZyYW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
Ci0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50
V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5z
cGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgZnJh
bWVEZXRhY2hlZEZyb21QYXJlbnRJbXBsKGluc3BlY3RvckFnZW50LCBmcmFtZSk7CiAjZW5kaWYK
IH0KQEAgLTc5Miw3ICs3OTIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZERlc3Ryb3lXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBL
VVJMJiByZXF1ZXN0VVJMLCBjb25zdCBLVVJMJiBkb2N1bWVudFVSTCkKIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250
ZXh0KSkKICAgICAgICAgZGlkQ3JlYXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRl
bnRpZmllciwgcmVxdWVzdFVSTCwgZG9jdW1lbnRVUkwpOwogI2VuZGlmCiB9CkBAIC04MDAsNyAr
ODAwLDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVX
ZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3Qg
V2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JB
Z2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkK
ICAgICAgICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JB
Z2VudCwgaWRlbnRpZmllciwgcmVxdWVzdCk7CiAjZW5kaWYKIH0KQEAgLTgwOCw3ICs4MDgsNyBA
QCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0
SGFuZHNoYWtlUmVxdWVzdChTY3JpcHRFeAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJT
b2NrZXRIYW5kc2hha2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29udGV4dCkpCiAg
ICAgICAgIGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZUltcGwoaW5zcGVjdG9y
QWdlbnQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtODE2LDcgKzgxNiw3
IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNv
Y2tldEhhbmRzaGFrZVJlc3BvbnNlKFNjcmlwCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAg
ICAgZGlkQ2xvc2VXZWJTb2NrZXRJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyKTsKICNl
bmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwCmluZGV4IGYyNzM3NGZlNTA4NjQ1ZGQ0NTkzNmMzZDFmNGVhOWI2MjJkMzAz
MWUuLjdlMjVlYmU5OTMyNDJlMmYwYWJiZmYyMTUwZDg3ZWFmMjZhOGNmZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAg
LTM0LDIxICszNCwyNCBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJCYXNl
NjQuaCIKLSNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVj
dG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5o
IgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kUHJveHkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1
ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VF
cnJvci5oIgpAQCAtODgsNiArOTEsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgb3RoZXJbXSA9ICJP
dGhlciI7CiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3Rv
ckZyb250ZW5kKiBmcm9udGVuZCkKIHsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPm5ldHdv
cmsoKTsKKyAgICAvLyBJbnNlcnQgTWVzc2FnZSBQcm94eSBpbiByZWNlaXZlciBjaGFpbi4KKyAg
ICBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCgpOworICAgIG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS0+c2V0
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKGNsaWVudCk7CisgICAgbV9mcm9udGVuZC0+c2V0SW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsKG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS5nZXQoKSk7Cisg
ICAgbV9ldmVudHNDb2xsZWN0b3ItPnB1c2hEYXRhKGNsaWVudCk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCkBAIC0yNzQsMTAgKzI4Miw3IEBAIHN0
YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNv
dXJjZShjb25zdCBDYWNoZWRSZXNvCiAgICAgcmV0dXJuIHJlc291cmNlT2JqZWN0OwogfQogCi1J
bnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpCi17Ci0gICAg
QVNTRVJUKCFtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSk7
Ci19CitJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpIHt9
CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewpA
QCAtMzE0LDcgKzMxOSw2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gcmVzb3VyY2VSZXNwb25zZSA9IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VS
ZXNwb25zZShyZXNwb25zZSk7CiAgICAgU3RyaW5nIHR5cGUgPSAiT3RoZXIiOwogICAgIGxvbmcg
Y2FjaGVkUmVzb3VyY2VTaXplID0gMDsKLQogICAgIGlmIChsb2FkZXIpIHsKICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2Fj
aGVkUmVzb3VyY2UobG9hZGVyLT5mcmFtZSgpLCByZXNwb25zZS51cmwoKSk7CiAgICAgICAgIGlm
IChjYWNoZWRSZXNvdXJjZSkgewpAQCAtMzY5LDYgKzM3MywxNiBAQCB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OnNldEluaXRpYWxYSFJDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgY29ucwogICAgIG1fZnJvbnRlbmQtPmluaXRpYWxDb250ZW50U2V0KHN0YXRpY19jYXN0PGlu
dD4oaWRlbnRpZmllciksIHNvdXJjZVN0cmluZywgUmVzb3VyY2VUeXBlOjp4aHIpOwogfQogCit2
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKCkKK3sKKyAg
ICBtX2Zyb250ZW5kLT5kb21Db250ZW50RXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwor
dm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpsb2FkRXZlbnRGaXJlZCgpCit7CisgICAgbV9m
cm9udGVuZC0+bG9hZEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKIHN0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZShGcmFtZSogZnJhbWUp
CiB7CiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZnJhbWVPYmplY3QgPSBJbnNwZWN0b3JP
YmplY3Q6OmNyZWF0ZSgpOwpAQCAtNDg4LDggKzUwMiw2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjplbmFibGUoKQogewotICAgIGlmICghbV9mcm9udGVuZCkKLSAgICAgICAgcmV0dXJuOwog
ICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oUmVzb3VyY2VBZ2VudFN0YXRlOjpyZXNvdXJjZUFnZW50
RW5hYmxlZCwgdHJ1ZSk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50KHRoaXMpOwogfQpAQCAtNTI3LDggKzUzOSwxNSBAQCBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbgogICAgIDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2Vu
dHMpCiAgICAgLCBtX3BhZ2UocGFnZSkKICAgICAsIG1fc3RhdGUoc3RhdGUpCi0gICAgLCBtX2Zy
b250ZW5kKDApCisgICAgLCBtX2V2ZW50c0NvbGxlY3RvcihuZXcgRXZlbnRzQ29sbGVjdG9yKCkp
CisgICAgLCBtX2luc3BlY3RvckZyb250ZW5kUHJveHkobmV3IEluc3BlY3RvckZyb250ZW5kUHJv
eHkobV9ldmVudHNDb2xsZWN0b3IuZ2V0KCkpKQogeworICAgIC8vIFRPRE8odm9ycyk6CisgICAg
Ly8gQWRkIGhlcmUgY29uZGl0aW9uIHRvIGVuYWJsZSBiYWNrZ3JvdW5kIGV2ZW50cyBjb2xsZWN0
aW9uLgorCisgICAgLy8gQ3JlYXRlIGR1bW15IGZyb250ZW5kLCBzbyB3ZSBjYW4gY29sbGVjdCBu
ZXR3b3JrIGV2ZW50cy4KKyAgICBtX2Zyb250ZW5kID0gbmV3IEluc3BlY3RvckZyb250ZW5kOjpO
ZXR3b3JrKG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS5nZXQoKSk7CisgICAgZW5hYmxlKCk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCmluZGV4IDEyZjBmZTM4OGJhZGU0ZTY4NjAzOTI0
MzBjZjI2NThlMWI2NTZmZTEuLmViM2Q0NGZhMmMyMzFlN2MxM2JiZTBjNTk1ZWVlOWFhZjRmNjA0
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgi
CiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApA
QCAtNTEsMTAgKzUyLDEyIEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgRnJhbWU7CiBj
bGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmRQcm94eTsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3Bl
Y3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEtVUkw7CitjbGFz
cyBFdmVudHNDb2xsZWN0b3I7CiBjbGFzcyBQYWdlOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNs
YXNzIFJlc291cmNlUmVxdWVzdDsKQEAgLTk3LDYgKzEwMCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IENh
Y2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBzZXRJbml0aWFsU2NyaXB0Q29udGVudCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2b2lk
IHNldEluaXRpYWxYSFJDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VTdHJpbmcpOworICAgIHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKyAg
ICB2b2lkIGxvYWRFdmVudEZpcmVkKCk7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkKERvY3VtZW50
TG9hZGVyKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSopOwogCkBA
IC0xMjQsNiArMTI5LDggQEAgcHJpdmF0ZToKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2lu
c3RydW1lbnRpbmdBZ2VudHM7CiAgICAgUGFnZSogbV9wYWdlOwogICAgIEluc3BlY3RvclN0YXRl
KiBtX3N0YXRlOworICAgIE93blB0cjxFdmVudHNDb2xsZWN0b3I+IG1fZXZlbnRzQ29sbGVjdG9y
OworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZFByb3h5PiBtX2luc3BlY3RvckZyb250ZW5k
UHJveHk7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6Ok5ldHdvcmsqIG1fZnJvbnRlbmQ7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtN
YW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFu
YWdlci5qcwppbmRleCA5OGFhMDYwYmI0OTEzY2VhOWQwMTg1MzQyYWIwZGUwN2RkN2IxZGM3Li5m
NWJmMGM4YWVkNjQxYTMxODMzMjMxMTVkYTk1MzA4NjRjMTk4NWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKQEAgLTE1
MCw2ICsxNTAsMTggQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fdXBkYXRlUmVzb3VyY2UocmVzb3VyY2UpOwogICAgIH0sCiAKKyAg
ICBkb21Db250ZW50RXZlbnRGaXJlZDogZnVuY3Rpb24odGltZSkKKyAgICB7CisgICAgICAgIGlm
IChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOworICAgIH0s
CisKKyAgICBsb2FkRXZlbnRGaXJlZDogZnVuY3Rpb24odGltZSkKKyAgICB7CisgICAgICAgIGlm
IChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
cGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlTG9hZFRpbWUgPSB0aW1lOworICAgIH0sCisKICAg
ICBkYXRhUmVjZWl2ZWQ6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUsIGRhdGFMZW5ndGgsIGxl
bmd0aFJlY2VpdmVkKQogICAgIHsKICAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5faW5mbGln
aHRSZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAzYzMwYTIwZmZmZjY3NzJkYzA1NmU2ODkw
ODUzMDgwZTczNTVkMGFkLi4xMmQyOTY5NDViNGJkMDI5ZjE0YjdlNzI0MWM1OWUwMWYzNzUwODcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
cwpAQCAtOTg3LDE1ICs5ODcsMTIgQEAgV2ViSW5zcGVjdG9yLnN0YXJ0VXNlckluaXRpYXRlZERl
YnVnZ2luZyA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5kb21Db250ZW50RXZlbnRGaXJlZCA9
IGZ1bmN0aW9uKHRpbWUpCiB7CiAgICAgdGhpcy5wYW5lbHMuYXVkaXRzLm1haW5SZXNvdXJjZURP
TUNvbnRlbnRUaW1lID0gdGltZTsKLSAgICBpZiAodGhpcy5wYW5lbHMubmV0d29yaykKLSAgICAg
ICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7
CiAgICAgdGhpcy5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7CiB9CiAKIFdlYklu
c3BlY3Rvci5sb2FkRXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiB7CiAgICAgdGhpcy5wYW5l
bHMuYXVkaXRzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKLSAgICB0aGlzLnBhbmVscy5u
ZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKICAgICB0aGlzLnBhbmVscy5yZXNv
dXJjZXMubG9hZEV2ZW50RmlyZWQoKTsKICAgICB0aGlzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0g
dGltZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88994</attachid>
            <date>2011-04-11 05:46:23 -0700</date>
            <delta_ts>2011-04-11 06:13:31 -0700</delta_ts>
            <desc>Patch file with doc-encode to prompt vc-project pass svn-apply</desc>
            <filename>M</filename>
            <type>text/plain</type>
            <size>40184</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQNCmluZGV4IGZiYzZlOGEuLmJjM2UxOWYgMTAwNjQ0DQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dA0KKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQNCkBAIC04ODcsNiArODg3LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUw0KIA0KICAg
ICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwDQogICAgIGluc3BlY3Rvci9ET01Ob2RlSGln
aGxpZ2h0ZXIuY3BwDQorICAgIGluc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwDQogICAgIGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHANCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5jcHANCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHANCkBAIC05
MDYsNiArOTA3LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUw0KICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yRGVidWdnZXJBZ2VudC5jcHANCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwDQogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwDQor
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcA0KICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcA0KICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5jcHANCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3Bw
DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nDQppbmRleCBjNWQwN2ZlLi5mMDE5MTIzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cNCkBAIC0xLDMg
KzEsNjMgQEANCisyMDExLTA0LTA4ICBTZXJnZXkgVm9yb2J5ZXYgIDxzZXJnZXl2b3JvYnlldkBn
b29nbGUuY29tPg0KKw0KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuDQorDQor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIGV2ZW50cyBkb24ndCBwcmVzZXJ2ZXMsDQor
ICAgICAgICB3aGVuIGluc3BlY3RvciBmcm9udGVuZCBjbG9zZWQgYW5kIG9wZW4gYWdhaW4NCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODA2NA0KKw0K
KyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpDQorDQorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOg0KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6DQorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOg0KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6DQorICAgICAgICAqIGluc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwOiBBZGRlZC4N
CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OkV2ZW50c0NvbGxlY3Rvcik6DQor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRzQ29sbGVjdG9yOjpjb2xsZWN0KToNCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKToNCisgICAgICAgICogaW5zcGVjdG9y
L0V2ZW50c0NvbGxlY3Rvci5oOiBBZGRlZC4NCisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xs
ZWN0b3I6On5FdmVudHNDb2xsZWN0b3IpOg0KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb246DQorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDog
QWRkZWQuDQorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6SW5zcGVj
dG9yRnJvbnRlbmRQcm94eSk6DQorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQ
cm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKToNCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IpOg0KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6DQor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5Lmg6IEFkZGVkLg0KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6On5JbnNwZWN0b3JGcm9udGVu
ZFByb3h5KToNCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHA6DQorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250
ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwpOg0KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKToNCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOg0KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToNCisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSk6DQor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29u
dGVudExlbmd0aCk6DQorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRGaW5pc2hMb2FkaW5nKToNCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKToNCisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkKToNCisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50
KToNCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0
ZVdlYlNvY2tldCk6DQorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QpOg0KKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJl
c3BvbnNlKToNCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENsb3NlV2ViU29ja2V0KToNCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwOg0KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNl
dEZyb250ZW5kKToNCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp+
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6DQorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToNCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOg0KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZp
cmVkKToNCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpsb2FkRXZl
bnRGaXJlZCk6DQorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5h
YmxlKToNCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNwZWN0
b3JSZXNvdXJjZUFnZW50KToNCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuaDoNCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5q
czoNCisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLmRv
bUNvbnRlbnRFdmVudEZpcmVkKToNCisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3Bh
dGNoZXIucHJvdG90eXBlLmxvYWRFdmVudEZpcmVkKToNCisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuanM6DQorICAgICAgICAoV2ViSW5zcGVjdG9yLmRvbUNvbnRlbnRF
dmVudEZpcmVkKToNCisgICAgICAgIChXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQpOg0KKw0K
IDIwMTEtMDQtMTEgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+DQogDQog
ICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5Lg0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtDQppbmRleCBiZjdkMzZlLi44MWI5ODAyIDEwMDY0NA0KLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQ0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQ0KQEAgLTE5MTYsNiArMTkxNiw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcDQog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIFwNCiAJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAgXA0KIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmggXA0KKwlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcCBcDQorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9F
dmVudHNDb2xsZWN0b3IuaCBcDQogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5jcHAgXA0KIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBc
DQogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwNCkBA
IC0xOTU2LDYgKzE5NTgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXA0KIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIFwNCiAJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXA0KIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggXA0KKwlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgXA0KKwlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIFwNCiAJU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgXA0KIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggXA0KIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcDQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpDQppbmRl
eCA4OGZiYjhhLi5mZWZjODM2IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkNCkBAIC0zMjA0LDYgKzMyMDQs
OCBAQA0KICAgICAgICAgICAgICdpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCcsDQogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwJywNCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oJywNCisgICAgICAgICAgICAnaW5zcGVjdG9y
L0V2ZW50c0NvbGxlY3Rvci5jcHAnLA0KKyAgICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29s
bGVjdG9yLmgnLA0KICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwJywN
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgnLA0KICAgICAgICAgICAg
ICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCcsDQpAQCAtMzIzOCw2ICszMjQwLDgg
QEANCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
Y3BwJywNCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAn
LA0KICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgnLA0KKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAnLA0KKyAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oJywNCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAnLA0KICAgICAgICAgICAg
ICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgnLA0KICAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCcsDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvag0KaW5kZXggMjcyZjk2ZS4uODY1M2Y5NCAxMDA3NTUN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qDQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvag0KQEAgLTY2NjU0
LDYgKzY2NjU0LDE0IEBADQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRXZlbnRzQ29sbGVjdG9yLmNwcCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxFdmVu
dHNDb2xsZWN0b3IuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KQEAgLTY2ODIyLDYgKzY2ODMwLDE0IEBADQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQppbmRl
eCBhODIzMzJmLi4yY2MwN2MzIDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oNCkBAIC02NDYsNiArNjQ2LDEwIEBADQogCQkyMEQ2Mjky
NjEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI0MTI1MzY5MEIw
MDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovOyB9Ow0KIAkJMjBENjI5
MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjBENjI5MjUxMjUzNjkwQjAw
MDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovOyB9Ow0KIAkJMjI3Nzc3NjAx
MzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3Nzc3NUYxMzQ1REVBOTAwOEVB
NDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07DQorCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDIyNzc3QjQ4MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3Bw
ICovOyB9Ow0KKwkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNDkx
MzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07DQorCQkyMjc3N0I0RTEzNEEwMUE4MDA4RUE0NTUg
LyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9y
RnJvbnRlbmRQcm94eS5jcHAgKi87IH07DQorCQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUgLyog
SW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250
ZW5kUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
Ow0KIAkJMjI4ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI4
ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwICov
OyB9Ow0KIAkJMjI4QzI4NDUxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI4QzI4NDQxMEQ4
MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07DQogCQkyNDVEODBBMzEzMjgwRTQwMDAzNDkyQTYgLyog
U1FMQ2FsbGJhY2tXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyNDVEODBBMjEzMjgwRTQwMDAzNDkyQTYgLyogU1FMQ2FsbGJhY2tXcmFwcGVy
LmggKi87IH07DQpAQCAtNzA3OSw2ICs3MDgzLDEwIEBADQogCQkyMEQ2MjkyNDEyNTM2OTBCMDAw
ODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07DQogCQkyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Ow0KIAkJ
MjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCisJCTIyNzc3QjQ4MTM0QTAxOEMwMDhFQTQ1
NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRXZlbnRzQ29sbGVjdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCisJ
CTIyNzc3QjQ5MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRzQ29sbGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07DQorCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNw
ZWN0b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCisJCTIy
Nzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTIyODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBK
U0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9Ow0KIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsNCiAJCTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAv
KiBIYXNoQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFz
aENoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07DQpAQCAtMTMyMTAsNiAr
MTMyMTgsOCBAQA0KIAkJCQk0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3Nh
Z2UuaCAqLywNCiAJCQkJNEYxNDQyMjYxMzM5RkQ2MjAwRTBENkY4IC8qIERPTU5vZGVIaWdobGln
aHRlci5jcHAgKi8sDQogCQkJCTRGMTQ0MjI3MTMzOUZENjIwMEUwRDZGOCAvKiBET01Ob2RlSGln
aGxpZ2h0ZXIuaCAqLywNCisJCQkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0Nv
bGxlY3Rvci5jcHAgKi8sDQorCQkJCTIyNzc3QjQ5MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHND
b2xsZWN0b3IuaCAqLywNCiAJCQkJRjM2NDRBRkQxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVk
U2NyaXB0LmNwcCAqLywNCiAJCQkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVk
U2NyaXB0LmggKi8sDQogCQkJCTdBMEU3NkY2MTBCRjA4RUQwMEEwMjc2RSAvKiBJbmplY3RlZFNj
cmlwdEhvc3QuY3BwICovLA0KQEAgLTEzMjUzLDYgKzEzMjYzLDggQEANCiAJCQkJN0EwRTc3MEIx
MEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sDQogCQkJCTdB
MEU3NzBDMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCAqLywNCiAJ
CQkJN0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5pZGwg
Ki8sDQorCQkJCTIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFBy
b3h5LmNwcCAqLywNCisJCQkJMjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZy
b250ZW5kUHJveHkuaCAqLywNCiAJCQkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi8sDQogCQkJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0
MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLywNCiAJCQkJNEY2RkRENjIxMzQxREVE
RDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgKi8sDQpAQCAtMjA5NjksNiArMjA5
ODEsNyBAQA0KIAkJCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGlu
IEhlYWRlcnMgKi8sDQogCQkJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVl
LmggaW4gSGVhZGVycyAqLywNCiAJCQkJRTBGRUYzNzJCMTdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50
U291cmNlLmggaW4gSGVhZGVycyAqLywNCisJCQkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8q
IEV2ZW50c0NvbGxlY3Rvci5oIGluIEhlYWRlcnMgKi8sDQogCQkJCUUxMkVEQjdCMEIzMDhBNzgw
MDI3MDRCNiAvKiBFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8sDQogCQkJCUJDNjBEOEYzMEQy
QTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywNCiAJCQkJOTM1
RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJzICovLA0K
QEAgLTIxMzIxLDYgKzIxMzM0LDcgQEANCiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8q
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywNCiAJCQkJRjM0NEM3NTMx
MTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFk
ZXJzICovLA0KIAkJCQk3QTBFNzcwRjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmggaW4gSGVhZGVycyAqLywNCisJCQkJMjI3NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8q
IEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovLA0KIAkJCQkyMEQ2MjkyNzEy
NTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAq
LywNCiAJCQkJNEY2RkRENjUxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5o
IGluIEhlYWRlcnMgKi8sDQogCQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0
b3JQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAqLywNCkBAIC0yMzgxNCw2ICsyMzgyOCw3IEBA
DQogCQkJCTkzOTg4NUMzMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCBpbiBTb3Vy
Y2VzICovLA0KIAkJCQk4RjY3NTYxQzEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAg
aW4gU291cmNlcyAqLywNCiAJCQkJRTBGRUYzNzJCMjdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50U291
cmNlLmNwcCBpbiBTb3VyY2VzICovLA0KKwkJCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLA0KIAkJCQlFMTJFREJFQTBCMzA4RTBC
MDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sDQogCQkJCUJDNjBEOEYy
MEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBpbiBTb3VyY2VzICovLA0KIAkJ
CQk5MzgzMUI1NzBEMDg3RDYwMDBFNUM5ODQgLyogRXhjZXB0aW9uQ29kZS5jcHAgaW4gU291cmNl
cyAqLywNCkBAIC0yNDEyNCw2ICsyNDEzOSw3IEBADQogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEEx
ODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywNCiAJCQkJRjM0NEM3
NTgxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGlu
IFNvdXJjZXMgKi8sDQogCQkJCTdBMEU3NzBFMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JG
cm9udGVuZEhvc3QuY3BwIGluIFNvdXJjZXMgKi8sDQorCQkJCTIyNzc3QjRFMTM0QTAxQTgwMDhF
QTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLA0KIAkJCQky
MEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBp
biBTb3VyY2VzICovLA0KIAkJCQk0RjZGREQ2NDEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9y
UGFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLA0KIAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAy
ODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywNCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwDQpuZXcgZmlsZSBtb2RlIDEw
MDY0NA0KaW5kZXggMDAwMDAwMC4uZTM1MjA1Yg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHANCkBAIC0wLDAgKzEsNTggQEAN
CisvKg0KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4NCisgKg0KKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucw0KKyAqIGFyZSBtZXQ6DQor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQNCisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuDQorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlDQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4NCisgKg0KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkNCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQ0KKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUg0KKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUg0KKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLA0KKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywNCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1INCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZDQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUDQorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFDQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gDQorICovDQorDQorI2luY2x1ZGUgImNvbmZpZy5o
Ig0KKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCINCisNCisjaWYgRU5BQkxFKElOU1BFQ1RP
UikNCisNCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiDQorI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiDQorDQorbmFtZXNwYWNlIFdlYkNvcmUgew0KKw0KK0V2ZW50c0Nv
bGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKCkNCisgICAgOiB0b3RhbExlbmd0aCgwKQ0KK3sgfQ0K
Kw0KK3ZvaWQgRXZlbnRzQ29sbGVjdG9yOjpjb2xsZWN0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkN
Cit7DQorICAgIHRvdGFsTGVuZ3RoICs9IChpbnQpbWVzc2FnZS5sZW5ndGgoKTsNCisgICAgZXZl
bnRzLmFwcGVuZChtZXNzYWdlKTsNCisgICAgd2hpbGUgKHRvdGFsTGVuZ3RoID4gQ0FQQUNJVFkp
IHsNCisgICAgICAgIHRvdGFsTGVuZ3RoIC09IChpbnQpZXZlbnRzWzBdLmxlbmd0aCgpOw0KKyAg
ICAgICAgZXZlbnRzLnJlbW92ZSgwKTsNCisgICAgfQ0KK30NCisNCit2b2lkIEV2ZW50c0NvbGxl
Y3Rvcjo6cHVzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiByZWNlaXZlcikNCit7DQor
ICAgIGZvciAoVmVjdG9yPFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gZXZlbnRzLmJlZ2luKCk7IGl0
ICE9IGV2ZW50cy5lbmQoKTsgKytpdCkNCisgICAgICAgIHJlY2VpdmVyLT5zZW5kTWVzc2FnZVRv
RnJvbnRlbmQoKml0KTsNCit9DQorDQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KKw0KKyNlbmRp
ZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9FdmVudHNDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHND
b2xsZWN0b3IuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjUzZWJlMDEN
Ci0tLSAvZGV2L251bGwNCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xs
ZWN0b3IuaA0KQEAgLTAsMCArMSw1NCBAQA0KKy8qDQorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAqDQorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQorICogYXJlIG1ldDoNCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodA0KKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KKyAqDQor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQ0KKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSDQorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
DQorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsDQorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUg0KKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkNCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQNCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiANCisg
Ki8NCisNCisjaWZuZGVmIEV2ZW50c0NvbGxlY3Rvcl9oDQorI2RlZmluZSBFdmVudHNDb2xsZWN0
b3JfaA0KKw0KKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQ0KKw0KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPg0KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+DQorDQorbmFtZXNwYWNlIFdlYkNvcmUgew0K
Kw0KK2NsYXNzIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbDsNCisNCitjbGFzcyBFdmVudHNDb2xs
ZWN0b3Igew0KK3B1YmxpYzoNCisgICAgRXZlbnRzQ29sbGVjdG9yKCk7DQorICAgIH5FdmVudHND
b2xsZWN0b3IoKSB7IH0NCisgICAgdm9pZCBjb2xsZWN0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7
DQorICAgIHZvaWQgcHVzaERhdGEoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7DQorcHJpdmF0
ZToNCisgICAgc3RhdGljIGNvbnN0IGludCBDQVBBQ0lUWSA9IDEwNDg1NzY7IC8vIDEgTWINCisg
ICAgaW50IHRvdGFsTGVuZ3RoOw0KKyAgICBWZWN0b3I8U3RyaW5nPiBldmVudHM7DQorfTsNCisN
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQorDQorI2VuZGlmIC8vICFkZWZpbmVkKEV2ZW50c0Nv
bGxlY3Rvcl9oKQ0KKw0KKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQ0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbg0KaW5kZXggY2Q5MWI2ZC4uM2M3Mjg3ZSAxMDA2NDQN
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbg0KKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uDQpAQCAtMzcxLDYgKzM3MSwxOCBA
QA0KICAgICAgICAgXSwNCiAgICAgICAgICJldmVudHMiOiBbDQogICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgICAgICAibmFtZSI6ICJkb21Db250ZW50RXZlbnRGaXJlZCIsDQorICAgICAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWw0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0
aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9DQorICAgICAgICAgICAgICAgIF0NCisgICAgICAgICAg
ICB9LA0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgIm5hbWUiOiAibG9hZEV2ZW50
RmlyZWQiLA0KKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsNCisgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQ0KKyAgICAgICAgICAg
ICAgICBdDQorICAgICAgICAgICAgfSwNCisgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg
ICJuYW1lIjogImZyYW1lRGV0YWNoZWQiLA0KICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiRmlyZWQgd2hlbiBmcmFtZSBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIGl0cyBwYXJlbnQuIiwN
CiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwDQpuZXcgZmlsZSBtb2RlIDEw
MDY0NA0KaW5kZXggMDAwMDAwMC4uOGMyYTAyMA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwDQpAQCAtMCwwICsx
LDczIEBADQorLyoNCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4NCisgKg0KKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUNCisgKiBt
ZXQ6DQorICoNCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlDQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcg0KKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUNCisgKiBkaXN0cmlidXRpb24uDQorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cw0KKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tDQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4NCisgKg0KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMNCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVA0KKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUg0KKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUDQorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsDQorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVA0KKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLA0KKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQ0KKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQNCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UNCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLg0KKyAqLw0KKw0KKyNpbmNsdWRlICJjb25maWcuaCIN
CisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIg0KKw0KKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQ0KKw0KKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCINCisjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCINCisNCituYW1lc3BhY2UgV2ViQ29yZSB7DQorDQorSW5zcGVjdG9yRnJv
bnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xsZWN0b3IqIGNvbGxl
Y3RvcikNCit7DQorICAgIG1fcmVjZWl2ZXIgPSAwOw0KKyAgICBtX2NvbGxlY3RvciA9IGNvbGxl
Y3RvcjsNCit9DQorDQorSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQ
cm94eShFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3RvciwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiBuZXh0Q2hhbm5lbCkNCit7DQorICAgIG1fY29sbGVjdG9yID0gY29sbGVjdG9yOw0KKyAgICBt
X3JlY2VpdmVyID0gbmV4dENoYW5uZWw7DQorfQ0KKw0KK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRQ
cm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCogcmVjZWl2ZXIpDQorew0KKyAgICBtX3JlY2VpdmVyID0gcmVjZWl2ZXI7DQorfQ0KKw0KK3Zv
aWQgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2V0RXZlbnRzQ29sbGVjdG9yKEV2ZW50c0NvbGxl
Y3RvciogY29sbGVjdG9yKQ0KK3sNCisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7DQorfQ0K
Kw0KK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkNCit7DQorICAgIG1fY29sbGVjdG9yLT5jb2xsZWN0KG1lc3Nh
Z2UpOw0KKyAgICBpZiAobV9yZWNlaXZlcikNCisgICAgICAgIHJldHVybiBtX3JlY2VpdmVyLT5z
ZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZSk7DQorICAgIHJldHVybiBmYWxzZTsNCit9DQor
DQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ0KKw0KKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9S
KQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94
eS5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNzY2MzliYQ0KLS0tIC9k
ZXYvbnVsbA0KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
UHJveHkuaA0KQEAgLTAsMCArMSw1NyBAQA0KKy8qDQorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLg0KKyAqDQorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQorICogYXJlIG1ldDoNCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodA0KKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodA0KKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUNCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KKyAqDQor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQ0KKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFDQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSDQorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
DQorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsDQorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUg0KKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkNCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQNCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UNCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiANCisg
Ki8NCisNCisjaWZuZGVmIEluc3BlY3RvckZyb250ZW5kUHJveHlfaA0KKyNkZWZpbmUgSW5zcGVj
dG9yRnJvbnRlbmRQcm94eV9oDQorDQorI2lmIEVOQUJMRShJTlNQRUNUT1IpDQorDQorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIg0KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
Pg0KKw0KK25hbWVzcGFjZSBXZWJDb3JlIHsNCisNCitjbGFzcyBFdmVudHNDb2xsZWN0b3I7DQor
DQorY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eSA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwgew0KK3B1YmxpYzoNCisgICAgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHND
b2xsZWN0b3IqKTsNCisgICAgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xsZWN0b3Iq
LCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIG5leHRDaGFubmVsKTsNCisgICAgdmlydHVhbCB+
SW5zcGVjdG9yRnJvbnRlbmRQcm94eSgpIHsgfQ0KKw0KKyAgICB2b2lkIHNldEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqKTsNCisgICAgdm9pZCBzZXRF
dmVudHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKik7DQorICAgIHZpcnR1YWwgYm9vbCBzZW5k
TWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsNCisNCitwcml2YXRlOg0K
KyAgICBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIG1fcmVjZWl2ZXI7DQorICAgIEV2ZW50c0Nv
bGxlY3RvciogbV9jb2xsZWN0b3I7DQorfTsNCisNCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlDQor
DQorI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpDQorDQorI2VuZGlmIC8vICFkZWZpbmVkKElu
c3BlY3RvckZyb250ZW5kUHJveHlfaCkNCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwDQppbmRleCBkMmI3M2Y0Li5hYjE3MTc5
IDEwMDY0NA0KLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHANCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwDQpAQCAtNTA5LDYgKzUwOSw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQq
IGluDQogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5z
cGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCgpKQ0KICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0RPTUNvbnRlbnRFdmVudCgpOw0K
IA0KKyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3Bl
Y3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdlbnQo
KSkNCisgICAgICAgIHJlc291cmNlQWdlbnQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7DQorDQog
ICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5p
bnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQ0KICAgICAgICAgcGFn
ZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgpOw0KIH0NCkBAIC01MjcsNiArNTMwLDkgQEAg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkSW1wbChJbnNwZWN0
b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQNCiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQq
IHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5p
bnNwZWN0b3JUaW1lbGluZUFnZW50KCkpDQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJr
TG9hZEV2ZW50KCk7DQogDQorICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJj
ZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9y
UmVzb3VyY2VBZ2VudCgpKQ0KKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQo
KTsNCisNCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9y
QWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpDQogICAg
ICAgICBwYWdlQWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7DQogfQ0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaA0KaW5kZXggNzdjNDY0
ZS4uZWRmNjk4ZiAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaA0KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oDQpAQCAtNjEyLDcgKzYxMiw3IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZShGcmFtZSogZnJh
bWUsIFN0cmluDQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2Vu
ZFJlcXVlc3QoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkNCiB7DQogI2lmIEVOQUJMRShJTlNQRUNUT1IpDQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZv
ckZyYW1lKGZyYW1lKSkNCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGluc3BlY3RvckFn
ZW50Rm9yRnJhbWUoZnJhbWUpKQ0KICAgICAgICAgd2lsbFNlbmRSZXF1ZXN0SW1wbChpYywgaWRl
bnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsNCiAjZW5kaWYNCiB9
DQpAQCAtNjUxLDcgKzY1MSw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25zdCBJbnNwZWN0b3JJbnN0DQogaW5saW5lIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpDQogew0KICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQ0KLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0g
aW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpDQorICAgIGlmIChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1l
KSkNCiAgICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGluc3Bl
Y3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7DQogI2VuZGlmDQogICAgIHJldHVybiBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUoKTsNCkBAIC02NjgsNyArNjY4LDcgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNw
b25zZShjb25zdCBJbnNwZWN0b3INCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCwgaW50IGxlbmd0aFJlY2VpdmVkKQ0KIHsNCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikNCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2Vu
dCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQ0KKyAgICBpZiAo
SW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShm
cmFtZSkpDQogICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoaW5zcGVjdG9yQWdl
bnQsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsNCiAjZW5kaWYNCiB9
DQpAQCAtNjc2LDcgKzY3Niw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpDQogaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKEZyYW1lKiBmcmFt
ZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkNCiB7DQogI2lm
IEVOQUJMRShJTlNQRUNUT1IpDQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdl
bnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkNCisgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUo
ZnJhbWUpKQ0KICAgICAgICAgZGlkRmluaXNoTG9hZGluZ0ltcGwoaW5zcGVjdG9yQWdlbnQsIGlk
ZW50aWZpZXIsIGZpbmlzaFRpbWUpOw0KICNlbmRpZg0KIH0NCkBAIC03MDgsNyArNzA4LDcgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb24NCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VS
TCYgdXJsKQ0KIHsNCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikNCi0gICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUo
ZnJhbWUpKQ0KKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVj
dG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpDQogICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRG
aXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOw0KICNlbmRpZg0KIH0NCkBAIC03
MTYsNyArNzE2LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21D
b250ZW50TG9hZGVkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGMNCiBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkKEZyYW1lKiBmcmFtZSwgY29uc3Qg
S1VSTCYgdXJsKQ0KIHsNCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikNCi0gICAgaWYgKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJh
bWUoZnJhbWUpKQ0KKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpDQogICAgICAgICBsb2FkRXZlbnRGaXJlZEltcGwo
aW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOw0KICNlbmRpZg0KIH0NCkBAIC03MjQsNyArNzI0
LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJl
ZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHUNCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1lKiBmcmFtZSkNCiB7DQog
I2lmIEVOQUJMRShJTlNQRUNUT1IpDQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkNCisgICAg
aWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJh
bWUoZnJhbWUpKQ0KICAgICAgICAgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnRJbXBsKGluc3BlY3Rv
ckFnZW50LCBmcmFtZSk7DQogI2VuZGlmDQogfQ0KQEAgLTc5Miw3ICs3OTIsNyBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERlc3Ryb3lXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogYw0KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkQ3JlYXRlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgS1VSTCYgcmVxdWVzdFVSTCwgY29uc3QgS1VSTCYg
ZG9jdW1lbnRVUkwpDQogew0KICNpZiBFTkFCTEUoSU5TUEVDVE9SKQ0KLSAgICBpZiAoSW5zcGVj
dG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JD
b250ZXh0KGNvbnRleHQpKQ0KKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQ0KICAgICAgICAgZGlkQ3JlYXRl
V2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdFVSTCwgZG9j
dW1lbnRVUkwpOw0KICNlbmRpZg0KIH0NCkBAIC04MDAsNyArODAwLDcgQEAgaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCoNCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxT
ZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYlNvY2tldEhhbmRzaGFrZVJl
cXVlc3QmIHJlcXVlc3QpDQogew0KICNpZiBFTkFCTEUoSU5TUEVDVE9SKQ0KLSAgICBpZiAoSW5z
cGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRG
b3JDb250ZXh0KGNvbnRleHQpKQ0KKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQ0KICAgICAgICAgd2lsbFNl
bmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmll
ciwgcmVxdWVzdCk7DQogI2VuZGlmDQogfQ0KQEAgLTgwOCw3ICs4MDgsNyBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVx
dWVzdChTY3JpcHRFeA0KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
UmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29ja2V0SGFuZHNo
YWtlUmVzcG9uc2UmIHJlc3BvbnNlKQ0KIHsNCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikNCi0gICAg
aWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZy
b250ZW5kRm9yQ29udGV4dChjb250ZXh0KSkNCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNw
ZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkNCiAgICAgICAg
IGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZUltcGwoaW5zcGVjdG9yQWdlbnQs
IGlkZW50aWZpZXIsIHJlc3BvbnNlKTsNCiAjZW5kaWYNCiB9DQpAQCAtODE2LDcgKzgxNiw3IEBA
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tl
dEhhbmRzaGFrZVJlc3BvbnNlKFNjcmlwDQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpDQogew0KICNpZiBFTkFCTEUoSU5TUEVDVE9SKQ0K
LSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRX
aXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQ0KKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQ0KICAg
ICAgICAgZGlkQ2xvc2VXZWJTb2NrZXRJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyKTsN
CiAjZW5kaWYNCiB9DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwDQppbmRleCBmMjczNzRmLi43ZTI1ZWJlIDEwMDY0NA0KLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwDQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHANCkBA
IC0zNCwyMSArMzQsMjQgQEANCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikNCiANCiAjaW5jbHVkZSAi
QmFzZTY0LmgiDQotI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiDQogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlLmgiDQogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiDQogI2luY2x1ZGUg
IkRvY3VtZW50LmgiDQogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiDQorI2luY2x1ZGUgIkV2
ZW50c0NvbGxlY3Rvci5oIg0KICNpbmNsdWRlICJGcmFtZS5oIg0KICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIg0KICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCINCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiDQogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCINCiAjaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmQuaCINCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmgi
DQorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCINCiAjaW5jbHVkZSAiSW5zcGVj
dG9yU3RhdGUuaCINCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiDQogI2luY2x1ZGUgIklu
c3RydW1lbnRpbmdBZ2VudHMuaCINCiAjaW5jbHVkZSAiS1VSTC5oIg0KKyNpbmNsdWRlICJNZW1v
cnlDYWNoZS5oIg0KICNpbmNsdWRlICJQYWdlLmgiDQogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tl
ci5oIg0KICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiDQpAQCAtODgsNiArOTEsMTEgQEAgc3Rh
dGljIGNvbnN0IGNoYXIgb3RoZXJbXSA9ICJPdGhlciI7DQogdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpDQogew0KICAg
ICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPm5ldHdvcmsoKTsNCisgICAgLy8gSW5zZXJ0IE1lc3Nh
Z2UgUHJveHkgaW4gcmVjZWl2ZXIgY2hhaW4uDQorICAgIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCogY2xpZW50ID0gbV9mcm9udGVuZC0+Z2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKCk7DQor
ICAgIG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KGNsaWVudCk7DQorICAgIG1fZnJvbnRlbmQtPnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCht
X2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOw0KKyAgICBtX2V2ZW50c0NvbGxlY3Rvci0+
cHVzaERhdGEoY2xpZW50KTsNCiB9DQogDQogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpj
bGVhckZyb250ZW5kKCkNCkBAIC0yNzQsMTAgKzI4Miw3IEBAIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShjb25zdCBDYWNoZWRS
ZXNvDQogICAgIHJldHVybiByZXNvdXJjZU9iamVjdDsNCiB9DQogDQotSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQ0KLXsNCi0gICAgQVNTRVJUKCFtX2lu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSk7DQotfQ0KK0luc3Bl
Y3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkge30NCiANCiB2b2lk
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkNCiB7DQpAQCAtMzE0
LDcgKzMxOSw2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lDQogICAgIFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IHJlc291cmNlUmVzcG9uc2UgPSBidWlsZE9iamVjdEZvclJlc291cmNlUmVzcG9u
c2UocmVzcG9uc2UpOw0KICAgICBTdHJpbmcgdHlwZSA9ICJPdGhlciI7DQogICAgIGxvbmcgY2Fj
aGVkUmVzb3VyY2VTaXplID0gMDsNCi0NCiAgICAgaWYgKGxvYWRlcikgew0KICAgICAgICAgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2Fj
aGVkUmVzb3VyY2UobG9hZGVyLT5mcmFtZSgpLCByZXNwb25zZS51cmwoKSk7DQogICAgICAgICBp
ZiAoY2FjaGVkUmVzb3VyY2UpIHsNCkBAIC0zNjksNiArMzczLDE2IEBAIHZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6c2V0SW5pdGlhbFhIUkNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zDQogICAgIG1fZnJvbnRlbmQtPmluaXRpYWxDb250ZW50U2V0KHN0YXRpY19jYXN0
PGludD4oaWRlbnRpZmllciksIHNvdXJjZVN0cmluZywgUmVzb3VyY2VUeXBlOjp4aHIpOw0KIH0N
CiANCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKCkN
Cit7DQorICAgIG1fZnJvbnRlbmQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkp
Ow0KK30NCisNCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKCkN
Cit7DQorICAgIG1fZnJvbnRlbmQtPmxvYWRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOw0KK30N
CisNCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRnJh
bWUoRnJhbWUqIGZyYW1lKQ0KIHsNCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZnJhbWVP
YmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOw0KQEAgLTQ4OCw4ICs1MDIsNiBAQCB2
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopDQogDQogdm9p
ZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUoKQ0KIHsNCi0gICAgaWYgKCFtX2Zyb250
ZW5kKQ0KLSAgICAgICAgcmV0dXJuOw0KICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKFJlc291cmNl
QWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVuYWJsZWQsIHRydWUpOw0KICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclJlc291cmNlQWdlbnQodGhpcyk7DQogfQ0KQEAgLTUy
Nyw4ICs1MzksMTUgQEAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VB
Z2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW4NCiAgICAgOiBtX2luc3RydW1l
bnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykNCiAgICAgLCBtX3BhZ2UocGFnZSkNCiAg
ICAgLCBtX3N0YXRlKHN0YXRlKQ0KLSAgICAsIG1fZnJvbnRlbmQoMCkNCisgICAgLCBtX2V2ZW50
c0NvbGxlY3RvcihuZXcgRXZlbnRzQ29sbGVjdG9yKCkpDQorICAgICwgbV9pbnNwZWN0b3JGcm9u
dGVuZFByb3h5KG5ldyBJbnNwZWN0b3JGcm9udGVuZFByb3h5KG1fZXZlbnRzQ29sbGVjdG9yLmdl
dCgpKSkNCiB7DQorICAgIC8vIFRPRE8odm9ycyk6DQorICAgIC8vIEFkZCBoZXJlIGNvbmRpdGlv
biB0byBlbmFibGUgYmFja2dyb3VuZCBldmVudHMgY29sbGVjdGlvbi4NCisNCisgICAgLy8gQ3Jl
YXRlIGR1bW15IGZyb250ZW5kLCBzbyB3ZSBjYW4gY29sbGVjdCBuZXR3b3JrIGV2ZW50cy4NCisg
ICAgbV9mcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZDo6TmV0d29yayhtX2luc3BlY3Rv
ckZyb250ZW5kUHJveHkuZ2V0KCkpOw0KKyAgICBlbmFibGUoKTsNCiB9DQogDQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQ0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5oDQppbmRleCAxMmYwZmUzLi5lYjNkNDRmIDEwMDY0NA0KLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaA0KKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaA0KQEAgLTM0LDYg
KzM0LDcgQEANCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCINCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCINCiANCisjaW5jbHVkZSA8d3RmL093blB0ci5oPg0KICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPg0KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+DQogDQpAQCAtNTEsMTAg
KzUyLDEyIEBAIGNsYXNzIERvY3VtZW50TG9hZGVyOw0KIGNsYXNzIEZyYW1lOw0KIGNsYXNzIElu
c3BlY3RvckFycmF5Ow0KIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOw0KK2NsYXNzIEluc3BlY3Rv
ckZyb250ZW5kUHJveHk7DQogY2xhc3MgSW5zcGVjdG9yT2JqZWN0Ow0KIGNsYXNzIEluc3BlY3Rv
clN0YXRlOw0KIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7DQogY2xhc3MgS1VSTDsNCitjbGFz
cyBFdmVudHNDb2xsZWN0b3I7DQogY2xhc3MgUGFnZTsNCiBjbGFzcyBSZXNvdXJjZUVycm9yOw0K
IGNsYXNzIFJlc291cmNlUmVxdWVzdDsNCkBAIC05Nyw2ICsxMDAsOCBAQCBwdWJsaWM6DQogICAg
IHZvaWQgZGlkTG9hZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlKERvY3VtZW50TG9hZGVyKiwgY29u
c3QgQ2FjaGVkUmVzb3VyY2UqKTsNCiAgICAgdm9pZCBzZXRJbml0aWFsU2NyaXB0Q29udGVudCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsNCiAg
ICAgdm9pZCBzZXRJbml0aWFsWEhSQ29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsNCisgICAgdm9pZCBkb21Db250ZW50RXZlbnRGaXJl
ZCgpOw0KKyAgICB2b2lkIGxvYWRFdmVudEZpcmVkKCk7DQogICAgIHZvaWQgZGlkQ29tbWl0TG9h
ZChEb2N1bWVudExvYWRlciopOw0KICAgICB2b2lkIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZy
YW1lKik7DQogDQpAQCAtMTI0LDYgKzEyOSw4IEBAIHByaXZhdGU6DQogICAgIEluc3RydW1lbnRp
bmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50czsNCiAgICAgUGFnZSogbV9wYWdlOw0KICAg
ICBJbnNwZWN0b3JTdGF0ZSogbV9zdGF0ZTsNCisgICAgT3duUHRyPEV2ZW50c0NvbGxlY3Rvcj4g
bV9ldmVudHNDb2xsZWN0b3I7DQorICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZFByb3h5PiBt
X2luc3BlY3RvckZyb250ZW5kUHJveHk7DQogICAgIEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3Jr
KiBtX2Zyb250ZW5kOw0KIH07DQogDQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMNCmluZGV4IDk4YWEwNjAuLmY1YmYwYzggMTAw
NjQ0DQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtN
YW5hZ2VyLmpzDQpAQCAtMTUwLDYgKzE1MCwxOCBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3Bh
dGNoZXIucHJvdG90eXBlID0gew0KICAgICAgICAgdGhpcy5fdXBkYXRlUmVzb3VyY2UocmVzb3Vy
Y2UpOw0KICAgICB9LA0KIA0KKyAgICBkb21Db250ZW50RXZlbnRGaXJlZDogZnVuY3Rpb24odGlt
ZSkNCisgICAgew0KKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29yaykNCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29u
dGVudFRpbWUgPSB0aW1lOw0KKyAgICB9LA0KKw0KKyAgICBsb2FkRXZlbnRGaXJlZDogZnVuY3Rp
b24odGltZSkNCisgICAgew0KKyAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5wYW5lbHMubmV0d29y
aykNCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNl
TG9hZFRpbWUgPSB0aW1lOw0KKyAgICB9LA0KKw0KICAgICBkYXRhUmVjZWl2ZWQ6IGZ1bmN0aW9u
KGlkZW50aWZpZXIsIHRpbWUsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKQ0KICAgICB7DQog
ICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9pbmZsaWdodFJlc291cmNlc0J5SWRbaWRlbnRp
Zmllcl07DQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcw0KaW5kZXggM2MzMGEyMC4uMTJkMjk2OSAxMDA2NDQNCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzDQorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcw0KQEAgLTk4NywxNSArOTg3LDEyIEBAIFdl
Ykluc3BlY3Rvci5zdGFydFVzZXJJbml0aWF0ZWREZWJ1Z2dpbmcgPSBmdW5jdGlvbigpDQogV2Vi
SW5zcGVjdG9yLmRvbUNvbnRlbnRFdmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkNCiB7DQogICAg
IHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7DQot
ICAgIGlmICh0aGlzLnBhbmVscy5uZXR3b3JrKQ0KLSAgICAgICAgdGhpcy5wYW5lbHMubmV0d29y
ay5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7DQogICAgIHRoaXMubWFpblJlc291
cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOw0KIH0NCiANCiBXZWJJbnNwZWN0b3IubG9hZEV2ZW50
RmlyZWQgPSBmdW5jdGlvbih0aW1lKQ0KIHsNCiAgICAgdGhpcy5wYW5lbHMuYXVkaXRzLm1haW5S
ZXNvdXJjZUxvYWRUaW1lID0gdGltZTsNCi0gICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVz
b3VyY2VMb2FkVGltZSA9IHRpbWU7DQogICAgIHRoaXMucGFuZWxzLnJlc291cmNlcy5sb2FkRXZl
bnRGaXJlZCgpOw0KICAgICB0aGlzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsNCiB9DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88997</attachid>
            <date>2011-04-11 06:13:31 -0700</date>
            <delta_ts>2011-04-11 08:23:59 -0700</delta_ts>
            <desc>Patch file with fuzz=2 for vc project</desc>
            <filename>M</filename>
            <type>text/plain</type>
            <size>39297</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmJjNmU4YS4uYmMzZTE5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4Nyw2ICs4ODcsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBpbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCiAgICAgaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRl
ci5jcHAKKyAgICBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcAogICAgIGluc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAog
ICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC05MDYsNiArOTA3LDcg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kUHJveHkuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNWQw
N2ZlLi5mMDE5MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMDQtMDggIFNl
cmdleSBWb3JvYnlldiAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29y
ayBldmVudHMgZG9uJ3QgcHJlc2VydmVzLAorICAgICAgICB3aGVuIGluc3BlY3RvciBmcm9udGVu
ZCBjbG9zZWQgYW5kIG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU4MDY0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9FdmVudHNDb2xs
ZWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6RXZl
bnRzQ29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6Y29sbGVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRzQ29sbGVjdG9yOjp+RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJv
eHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRl
bmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6fkluc3BlY3RvckZy
b250ZW5kUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21D
b250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29j
a2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNl
bmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJT
b2NrZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNv
dXJjZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29udGVudEV2ZW50RmlyZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkRXZl
bnRGaXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0xMSAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlr
aGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmY3ZDM2ZS4uODFiOTgw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xOTE2LDYgKzE5MTYsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5jcHAgXApAQCAtMTk1Niw2ICsxOTU4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmggXAogCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCA4OGZiYjhhLi5mZWZjODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMjA0LDYgKzMyMDQs
OCBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvRXZl
bnRzQ29sbGVjdG9yLmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rv
ci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAnLApAQCAtMzIzOCw2ICszMjQwLDggQEAKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgnLAorICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCcsCisgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCAyNzJmOTZlLi44NjUzZjk0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjY2NTUsNCArNjY2NTUsMTIgQEAKIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRXZlbnRzQ29s
bGVjdG9yLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5caW5zcGVjdG9yXEV2ZW50c0NvbGxlY3Rvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCIKIAkJCQk+CkBAIC02NjgyMyw0ICs2NjgzMSwxMiBAQAogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFByb3h5
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE4MjMzMmYuLjJjYzA3YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY0Niw2ICs2
NDYsMTAgQEAKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICov
OyB9OwogCQkyMjc3Nzc2MDEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3
Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjI3NzdCNEExMzRB
MDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0ODEzNEEwMThDMDA4RUE0NTUgLyogRXZl
bnRzQ29sbGVjdG9yLmNwcCAqLzsgfTsKKwkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2
ZW50c0NvbGxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTIyNzc3QjRFMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1
NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLzsgfTsKKwkJMjI3NzdCNEYxMzRBMDFB
ODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAvKiBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMjI4ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVt
ZW50YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25D
dXN0b20uY3BwICovOyB9OwogCQkyMjhDMjg0NTEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3Jh
cHBhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
MjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjQ1RDgwQTMxMzI4MEU0MDAw
MzQ5MkE2IC8qIFNRTENhbGxiYWNrV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ1RDgwQTIxMzI4MEU0MDAwMzQ5MkE2IC8qIFNRTENhbGxi
YWNrV3JhcHBlci5oICovOyB9OwpAQCAtNzA3OSw2ICs3MDgzLDEwIEBACiAJCTIwRDYyOTI0MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8q
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDgxMzRBMDE4QzAw
OEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9y
RnJvbnRlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyog
SlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5IC8q
IEhhc2hDaGFuZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYXNo
Q2hhbmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjEwLDYgKzEz
MjE4LDggQEAKIAkJCQk0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2Uu
aCAqLywKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdo
dGVyLmggKi8sCisJCQkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rv
ci5jcHAgKi8sCisJCQkJMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rv
ci5oICovLAogCQkJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5j
cHAgKi8sCiAJCQkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0Lmgg
Ki8sCiAJCQkJN0EwRTc2RjYxMEJGMDhFRDAwQTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5j
cHAgKi8sCkBAIC0xMzI1Myw2ICsxMzI2Myw4IEBACiAJCQkJN0EwRTc3MEIxMEMwMEE4ODAwQTAy
NzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCiAJCQkJN0EwRTc3MEMxMEMwMEE4
ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBD
MDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3
QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJ
CQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICov
LAogCQkJCTIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwICovLAogCQkJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCAqLywKIAkJCQk0RjZGREQ2MjEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVj
dG9yUGFnZUFnZW50LmNwcCAqLywKQEAgLTIwOTY5LDYgKzIwOTgxLDcgQEAKIAkJCQk5Mzk4ODVD
NDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEY2
NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUwRkVGMzcyQjE3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEyRURCN0IwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDhGMzBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9u
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4
Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEzMjEsNiArMjEzMzQsNyBAQAogCQkJ
CUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgw
MEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTIy
Nzc3QjRGMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjZGREQ2NTEzNDFERUREMDAxRjhFRTMg
LyogSW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjBENkIyRjEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMzgxNCw2ICsyMzgyOCw3IEBACiAJCQkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEY2NzU2MUMxMjg4QjE3QjAwNDdBQ0Ez
IC8qIEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTBGRUYzNzJCMjdDNTNFQUMx
QzFGQkVFIC8qIEV2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRBMTM0
QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTEyRURCRUEwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDNjBEOEYyMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzODMxQjU3MEQwODdENjAwMEU1Qzk4NCAvKiBFeGNlcHRpb25Db2Rl
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQxMjQsNiArMjQxMzksNyBAQAogCQkJCTRGNEY1RkZC
MTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyog
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRFMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIElu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjBENkIyRTEyMUJGRUJB
MDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM1MjA1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0
b3IuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKCkKKyAgICA6IHRv
dGFsTGVuZ3RoKDApCit7IH0KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OmNvbGxlY3QoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQoreworICAgIHRvdGFsTGVuZ3RoICs9IChpbnQpbWVzc2FnZS5sZW5n
dGgoKTsKKyAgICBldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAgIHdoaWxlICh0b3RhbExlbmd0
aCA+IENBUEFDSVRZKSB7CisgICAgICAgIHRvdGFsTGVuZ3RoIC09IChpbnQpZXZlbnRzWzBdLmxl
bmd0aCgpOworICAgICAgICBldmVudHMucmVtb3ZlKDApOworICAgIH0KK30KKwordm9pZCBFdmVu
dHNDb2xsZWN0b3I6OnB1c2hEYXRhKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogcmVjZWl2ZXIp
Cit7CisgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6aXRlcmF0b3IgaXQgPSBldmVudHMuYmVnaW4o
KTsgaXQgIT0gZXZlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICByZWNlaXZlci0+c2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kKCppdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvRXZlbnRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29s
bGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNlYmUwMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3Iu
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEV2ZW50c0NvbGxlY3Rvcl9o
CisjZGVmaW5lIEV2ZW50c0NvbGxlY3Rvcl9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOworCitjbGFz
cyBFdmVudHNDb2xsZWN0b3IgeworcHVibGljOgorICAgIEV2ZW50c0NvbGxlY3RvcigpOworICAg
IH5FdmVudHNDb2xsZWN0b3IoKSB7IH0KKyAgICB2b2lkIGNvbGxlY3QoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKKyAgICB2b2lkIHB1c2hEYXRhKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOwor
cHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgaW50IENBUEFDSVRZID0gMTA0ODU3NjsgLy8gMSBN
YgorICAgIGludCB0b3RhbExlbmd0aDsKKyAgICBWZWN0b3I8U3RyaW5nPiBldmVudHM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChFdmVudHNDb2xs
ZWN0b3JfaCkKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggY2Q5MWI2ZC4uM2M3Mjg3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzcxLDYgKzM3MSwxOCBAQAogICAgICAg
ICBdLAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJuYW1lIjogImRvbUNvbnRlbnRFdmVudEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAi
bnVtYmVyIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGlt
ZSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIs
CiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJl
ZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMyYTAyMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
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
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3Bl
Y3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9y
ZWNlaXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK0luc3BlY3Rv
ckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBj
b2xsZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbmV4dENoYW5uZWwpCit7CisgICAg
bV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNlaXZlciA9IG5leHRDaGFubmVsOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAgIG1fcmVjZWl2
ZXIgPSByZWNlaXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVu
dHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9jb2xsZWN0
b3IgPSBjb2xsZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX2NvbGxlY3Rv
ci0+Y29sbGVjdChtZXNzYWdlKTsKKyAgICBpZiAobV9yZWNlaXZlcikKKyAgICAgICAgcmV0dXJu
IG1fcmVjZWl2ZXItPnNlbmRNZXNzYWdlVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjYzOWJhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUHJveHkuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEluc3BlY3Rv
ckZyb250ZW5kUHJveHlfaAorI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZFByb3h5X2gKKworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEV2ZW50c0NvbGxlY3RvcjsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eSA6IHB1
YmxpYyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZy
b250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKik7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRQcm94
eShFdmVudHNDb2xsZWN0b3IqLCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIG5leHRDaGFubmVs
KTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGcm9udGVuZFByb3h5KCkgeyB9CisKKyAgICB2b2lk
IHNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqKTsK
KyAgICB2b2lkIHNldEV2ZW50c0NvbGxlY3RvcihFdmVudHNDb2xsZWN0b3IqKTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisK
K3ByaXZhdGU6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBtX3JlY2VpdmVyOworICAg
IEV2ZW50c0NvbGxlY3RvciogbV9jb2xsZWN0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorCisjZW5kaWYgLy8gIWRlZmluZWQo
SW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkMmI3M2Y0Li5hYjE3MTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtNTA5LDYgKzUwOSw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGlu
CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkp
CiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZE1hcmtET01Db250ZW50RXZlbnQoKTsKIAorICAg
IGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQorICAg
ICAgICByZXNvdXJjZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgpOworCiAgICAgaWYgKElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRp
bmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+ZG9t
Q29udGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTUyNyw2ICs1MzAsOSBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKEluc3BlY3RvckFnZW50KiBpbnNw
ZWN0b3JBZ2VudAogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50
ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yVGltZWxp
bmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrTG9hZEV2ZW50KCk7CiAK
KyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3BlY3Rv
ckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkK
KyAgICAgICAgcmVzb3VyY2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQoKTsKKwogICAgIGlmIChJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5n
QWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmxvYWRF
dmVudEZpcmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzdjNDY0ZS4uZWRmNjk4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAt
NjEyLDcgKzYxMiw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBw
bHlVc2VyQWdlbnRPdmVycmlkZShGcmFtZSogZnJhbWUsIFN0cmluCiBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQog
ewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGlu
c3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0
b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgd2ls
bFNlbmRSZXF1ZXN0SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVj
dFJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtNjUxLDcgKzY1MSw3IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25zdCBJbnNw
ZWN0b3JJbnN0CiBpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKEZyYW1lKiBmcmFt
ZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCog
aW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1l
KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNlUmVz
cG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAjZW5kaWYK
ICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CkBAIC02NjgsNyAr
NjY4LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
UmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IKIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQp
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisg
ICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9y
RnJhbWUoZnJhbWUpKQogICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoaW5zcGVj
dG9yQWdlbnQsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKICNlbmRp
ZgogfQpAQCAtNjc2LDcgKzY3Niw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpCiBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmcoRnJhbWUqIGZy
YW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2Vu
dCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZy
YW1lKSkKICAgICAgICAgZGlkRmluaXNoTG9hZGluZ0ltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50
aWZpZXIsIGZpbmlzaFRpbWUpOwogI2VuZGlmCiB9CkBAIC03MDgsNyArNzA4LDcgQEAgaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb24KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwp
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisg
ICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9y
RnJhbWUoZnJhbWUpKQogICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoaW5z
cGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MTYsNyArNzE2LDcgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZl
bnRGaXJlZChGcmFtZSogZnJhbWUsIGMKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6bG9hZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwpCiB7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUo
ZnJhbWUpKQogICAgICAgICBsb2FkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1l
LCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MjQsNyArNzI0LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHUKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXRhY2hl
ZEZyb21QYXJlbnQoRnJhbWUqIGZyYW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAg
aWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZy
b250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgZnJhbWVEZXRh
Y2hlZEZyb21QYXJlbnRJbXBsKGluc3BlY3RvckFnZW50LCBmcmFtZSk7CiAjZW5kaWYKIH0KQEAg
LTc5Miw3ICs3OTIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZERlc3Ryb3lXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBLVVJMJiBy
ZXF1ZXN0VVJMLCBjb25zdCBLVVJMJiBkb2N1bWVudFVSTCkKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JB
Z2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkK
ICAgICAgICAgZGlkQ3JlYXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmll
ciwgcmVxdWVzdFVSTCwgZG9jdW1lbnRVUkwpOwogI2VuZGlmCiB9CkBAIC04MDAsNyArODAwLDcg
QEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2Nr
ZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29j
a2V0SGFuZHNoYWtlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAg
ICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwg
aWRlbnRpZmllciwgcmVxdWVzdCk7CiAjZW5kaWYKIH0KQEAgLTgwOCw3ICs4MDgsNyBAQCBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNo
YWtlUmVxdWVzdChTY3JpcHRFeAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJTb2NrZXRI
YW5kc2hha2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRo
RnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5z
cGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29udGV4dCkpCiAgICAgICAg
IGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZUltcGwoaW5zcGVjdG9yQWdlbnQs
IGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtODE2LDcgKzgxNiw3IEBAIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlKFNjcmlwCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlm
IChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9u
dGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlk
Q2xvc2VXZWJTb2NrZXRJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyKTsKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuY3BwCmluZGV4IGYyNzM3NGYuLjdlMjVlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTM0LDIxICszNCwyNCBA
QAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJCYXNlNjQuaCIKLSNpbmNsdWRl
ICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxGcmFt
ZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBI
ZWFkZXJNYXAuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIklu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUHJv
eHkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZh
bHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJLVVJM
LmgiCisjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtODgs
NiArOTEsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgb3RoZXJbXSA9ICJPdGhlciI7CiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCkKIHsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPm5ldHdvcmsoKTsKKyAgICAvLyBJ
bnNlcnQgTWVzc2FnZSBQcm94eSBpbiByZWNlaXZlciBjaGFpbi4KKyAgICBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbCgpOworICAgIG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS0+c2V0SW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsKGNsaWVudCk7CisgICAgbV9mcm9udGVuZC0+c2V0SW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS5nZXQoKSk7CisgICAgbV9ldmVudHNDb2xs
ZWN0b3ItPnB1c2hEYXRhKGNsaWVudCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6Y2xlYXJGcm9udGVuZCgpCkBAIC0yNzQsMTAgKzI4Miw3IEBAIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShjb25zdCBDYWNo
ZWRSZXNvCiAgICAgcmV0dXJuIHJlc291cmNlT2JqZWN0OwogfQogCi1JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpCi17Ci0gICAgQVNTRVJUKCFtX2luc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSk7Ci19CitJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpIHt9CiAKIHZvaWQgSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewpAQCAtMzE0LDcgKzMxOSw2
IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cmVzb3VyY2VSZXNwb25zZSA9IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZXNwb25z
ZSk7CiAgICAgU3RyaW5nIHR5cGUgPSAiT3RoZXIiOwogICAgIGxvbmcgY2FjaGVkUmVzb3VyY2VT
aXplID0gMDsKLQogICAgIGlmIChsb2FkZXIpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFJlc291cmNlID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UobG9h
ZGVyLT5mcmFtZSgpLCByZXNwb25zZS51cmwoKSk7CiAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJj
ZSkgewpAQCAtMzY5LDYgKzM3MywxNiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNl
dEluaXRpYWxYSFJDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29ucwogICAgIG1f
ZnJvbnRlbmQtPmluaXRpYWxDb250ZW50U2V0KHN0YXRpY19jYXN0PGludD4oaWRlbnRpZmllciks
IHNvdXJjZVN0cmluZywgUmVzb3VyY2VUeXBlOjp4aHIpOwogfQogCit2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5k
b21Db250ZW50RXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwordm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50Ojpsb2FkRXZlbnRGaXJlZCgpCit7CisgICAgbV9mcm9udGVuZC0+bG9hZEV2
ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gZnJhbWVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OwpAQCAtNDg4LDggKzUwMiw2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nKikKIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUoKQog
ewotICAgIGlmICghbV9mcm9udGVuZCkKLSAgICAgICAgcmV0dXJuOwogICAgIG1fc3RhdGUtPnNl
dEJvb2xlYW4oUmVzb3VyY2VBZ2VudFN0YXRlOjpyZXNvdXJjZUFnZW50RW5hYmxlZCwgdHJ1ZSk7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JSZXNvdXJjZUFnZW50KHRo
aXMpOwogfQpAQCAtNTI3LDggKzUzOSwxNSBAQCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAg
IDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX3Bh
Z2UocGFnZSkKICAgICAsIG1fc3RhdGUoc3RhdGUpCi0gICAgLCBtX2Zyb250ZW5kKDApCisgICAg
LCBtX2V2ZW50c0NvbGxlY3RvcihuZXcgRXZlbnRzQ29sbGVjdG9yKCkpCisgICAgLCBtX2luc3Bl
Y3RvckZyb250ZW5kUHJveHkobmV3IEluc3BlY3RvckZyb250ZW5kUHJveHkobV9ldmVudHNDb2xs
ZWN0b3IuZ2V0KCkpKQogeworICAgIC8vIFRPRE8odm9ycyk6CisgICAgLy8gQWRkIGhlcmUgY29u
ZGl0aW9uIHRvIGVuYWJsZSBiYWNrZ3JvdW5kIGV2ZW50cyBjb2xsZWN0aW9uLgorCisgICAgLy8g
Q3JlYXRlIGR1bW15IGZyb250ZW5kLCBzbyB3ZSBjYW4gY29sbGVjdCBuZXR3b3JrIGV2ZW50cy4K
KyAgICBtX2Zyb250ZW5kID0gbmV3IEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3JrKG1faW5zcGVj
dG9yRnJvbnRlbmRQcm94eS5nZXQoKSk7CisgICAgZW5hYmxlKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oCmluZGV4IDEyZjBmZTMuLmViM2Q0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKIAorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNTEsMTAgKzUyLDEyIEBAIGNsYXNz
IERvY3VtZW50TG9hZGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTsKIGNs
YXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1
bWVudGluZ0FnZW50czsKIGNsYXNzIEtVUkw7CitjbGFzcyBFdmVudHNDb2xsZWN0b3I7CiBjbGFz
cyBQYWdlOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKQEAg
LTk3LDYgKzEwMCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZExvYWRSZXNvdXJjZUZyb21NZW1v
cnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAgICAgdm9p
ZCBzZXRJbml0aWFsU2NyaXB0Q29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2b2lkIHNldEluaXRpYWxYSFJDb250ZW50KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOworICAg
IHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKyAgICB2b2lkIGxvYWRFdmVudEZpcmVkKCk7
CiAgICAgdm9pZCBkaWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKik7CiAgICAgdm9pZCBmcmFt
ZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSopOwogCkBAIC0xMjQsNiArMTI5LDggQEAgcHJpdmF0
ZToKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAg
UGFnZSogbV9wYWdlOwogICAgIEluc3BlY3RvclN0YXRlKiBtX3N0YXRlOworICAgIE93blB0cjxF
dmVudHNDb2xsZWN0b3I+IG1fZXZlbnRzQ29sbGVjdG9yOworICAgIE93blB0cjxJbnNwZWN0b3JG
cm9udGVuZFByb3h5PiBtX2luc3BlY3RvckZyb250ZW5kUHJveHk7CiAgICAgSW5zcGVjdG9yRnJv
bnRlbmQ6Ok5ldHdvcmsqIG1fZnJvbnRlbmQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCA5OGFhMDYwLi5m
NWJmMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya01hbmFnZXIuanMKQEAgLTE1MCw2ICsxNTAsMTggQEAgV2ViSW5zcGVjdG9yLk5ldHdv
cmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdXBkYXRlUmVzb3VyY2Uo
cmVzb3VyY2UpOwogICAgIH0sCiAKKyAgICBkb21Db250ZW50RXZlbnRGaXJlZDogZnVuY3Rpb24o
dGltZSkKKyAgICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29u
dGVudFRpbWUgPSB0aW1lOworICAgIH0sCisKKyAgICBsb2FkRXZlbnRGaXJlZDogZnVuY3Rpb24o
dGltZSkKKyAgICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlTG9hZFRp
bWUgPSB0aW1lOworICAgIH0sCisKICAgICBkYXRhUmVjZWl2ZWQ6IGZ1bmN0aW9uKGlkZW50aWZp
ZXIsIHRpbWUsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKQogICAgIHsKICAgICAgICAgdmFy
IHJlc291cmNlID0gdGhpcy5faW5mbGlnaHRSZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAz
YzMwYTIwLi4xMmQyOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcwpAQCAtOTg3LDE1ICs5ODcsMTIgQEAgV2ViSW5zcGVjdG9yLnN0YXJ0
VXNlckluaXRpYXRlZERlYnVnZ2luZyA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5kb21Db250
ZW50RXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiB7CiAgICAgdGhpcy5wYW5lbHMuYXVkaXRz
Lm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKLSAgICBpZiAodGhpcy5wYW5lbHMu
bmV0d29yaykKLSAgICAgICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VET01Db250
ZW50VGltZSA9IHRpbWU7CiAgICAgdGhpcy5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRp
bWU7CiB9CiAKIFdlYkluc3BlY3Rvci5sb2FkRXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiB7
CiAgICAgdGhpcy5wYW5lbHMuYXVkaXRzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKLSAg
ICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKICAgICB0
aGlzLnBhbmVscy5yZXNvdXJjZXMubG9hZEV2ZW50RmlyZWQoKTsKICAgICB0aGlzLm1haW5SZXNv
dXJjZUxvYWRUaW1lID0gdGltZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89009</attachid>
            <date>2011-04-11 08:23:59 -0700</date>
            <delta_ts>2011-04-14 06:58:40 -0700</delta_ts>
            <desc>Add new files in WebCore/WebCore.pro file</desc>
            <filename>M</filename>
            <type>text/plain</type>
            <size>40921</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmJjNmU4YS4uYmMzZTE5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4Nyw2ICs4ODcsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBpbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCiAgICAgaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRl
ci5jcHAKKyAgICBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcAogICAgIGluc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAog
ICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC05MDYsNiArOTA3LDcg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kUHJveHkuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNWQw
N2ZlLi5mMDE5MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMDQtMDggIFNl
cmdleSBWb3JvYnlldiAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29y
ayBldmVudHMgZG9uJ3QgcHJlc2VydmVzLAorICAgICAgICB3aGVuIGluc3BlY3RvciBmcm9udGVu
ZCBjbG9zZWQgYW5kIG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU4MDY0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGluc3BlY3Rvci9FdmVudHNDb2xs
ZWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6RXZl
bnRzQ29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6Y29sbGVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OnB1c2hEYXRhKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRzQ29sbGVjdG9yOjp+RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJv
eHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRl
bmQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6fkluc3BlY3RvckZy
b250ZW5kUHJveHkpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21D
b250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZEltcGwpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlV2ViU29j
a2V0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNl
bmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJT
b2NrZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNv
dXJjZUFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50OjpkaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29udGVudEV2ZW50RmlyZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkRXZl
bnRGaXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0xMSAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlr
aGF0c2t5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmY3ZDM2ZS4uODFiOTgw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xOTE2LDYgKzE5MTYsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcCBcCisJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5jcHAgXApAQCAtMTk1Niw2ICsxOTU4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmggXAogCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCA4OGZiYjhhLi5mZWZjODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMjA0LDYgKzMyMDQs
OCBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCcsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvRXZl
bnRzQ29sbGVjdG9yLmNwcCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rv
ci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAnLApAQCAtMzIzOCw2ICszMjQwLDggQEAKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgnLAorICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCcsCisgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCAyNzJmOTZlLi44NjUzZjk0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjY2NTUsNCArNjY2NTUsMTIgQEAKIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRXZlbnRzQ29s
bGVjdG9yLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5caW5zcGVjdG9yXEV2ZW50c0NvbGxlY3Rvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCIKIAkJCQk+CkBAIC02NjgyMyw0ICs2NjgzMSwxMiBAQAogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFByb3h5
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE4MjMzMmYuLjJjYzA3YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY0Niw2ICs2
NDYsMTAgQEAKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICov
OyB9OwogCQkyMjc3Nzc2MDEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3
Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjI3NzdCNEExMzRB
MDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0ODEzNEEwMThDMDA4RUE0NTUgLyogRXZl
bnRzQ29sbGVjdG9yLmNwcCAqLzsgfTsKKwkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2
ZW50c0NvbGxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTIyNzc3QjRFMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1
NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLzsgfTsKKwkJMjI3NzdCNEYxMzRBMDFB
ODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAvKiBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMjI4ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVt
ZW50YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25D
dXN0b20uY3BwICovOyB9OwogCQkyMjhDMjg0NTEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3Jh
cHBhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
MjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjQ1RDgwQTMxMzI4MEU0MDAw
MzQ5MkE2IC8qIFNRTENhbGxiYWNrV3JhcHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjQ1RDgwQTIxMzI4MEU0MDAwMzQ5MkE2IC8qIFNRTENhbGxi
YWNrV3JhcHBlci5oICovOyB9OwpAQCAtNzA3OSw2ICs3MDgzLDEwIEBACiAJCTIwRDYyOTI0MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8q
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDgxMzRBMDE4QzAw
OEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9y
RnJvbnRlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyog
SlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5IC8q
IEhhc2hDaGFuZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYXNo
Q2hhbmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjEwLDYgKzEz
MjE4LDggQEAKIAkJCQk0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2Uu
aCAqLywKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVy
LmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdo
dGVyLmggKi8sCisJCQkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rv
ci5jcHAgKi8sCisJCQkJMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rv
ci5oICovLAogCQkJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5j
cHAgKi8sCiAJCQkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0Lmgg
Ki8sCiAJCQkJN0EwRTc2RjYxMEJGMDhFRDAwQTAyNzZFIC8qIEluamVjdGVkU2NyaXB0SG9zdC5j
cHAgKi8sCkBAIC0xMzI1Myw2ICsxMzI2Myw4IEBACiAJCQkJN0EwRTc3MEIxMEMwMEE4ODAwQTAy
NzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCiAJCQkJN0EwRTc3MEMxMEMwMEE4
ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBD
MDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3
QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJ
CQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICov
LAogCQkJCTIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwICovLAogCQkJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCAqLywKIAkJCQk0RjZGREQ2MjEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVj
dG9yUGFnZUFnZW50LmNwcCAqLywKQEAgLTIwOTY5LDYgKzIwOTgxLDcgQEAKIAkJCQk5Mzk4ODVD
NDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEY2
NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUwRkVGMzcyQjE3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMjI3NzdCNEIxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTEyRURCN0IwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDhGMzBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9u
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1RkJDRjIwOUJBMTQzQjAwRTIzMEIxIC8qIEV4
Y2VwdGlvbkNvZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEzMjEsNiArMjEzMzQsNyBAQAogCQkJ
CUYzNDRDNzE0MTEyNUI4MkMwMEYyNkVFRSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjM0NEM3NTMxMTI5NEQ5RDAwRjI2RUVFIC8qIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NzBGMTBDMDBBODgw
MEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTIy
Nzc3QjRGMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjZGREQ2NTEzNDFERUREMDAxRjhFRTMg
LyogSW5zcGVjdG9yUGFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjBENkIyRjEyMUJG
RUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMzgxNCw2ICsyMzgyOCw3IEBACiAJCQkJOTM5ODg1QzMwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEY2NzU2MUMxMjg4QjE3QjAwNDdBQ0Ez
IC8qIEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTBGRUYzNzJCMjdDNTNFQUMx
QzFGQkVFIC8qIEV2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRBMTM0
QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTEyRURCRUEwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDNjBEOEYyMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzODMxQjU3MEQwODdENjAwMEU1Qzk4NCAvKiBFeGNlcHRpb25Db2Rl
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQxMjQsNiArMjQxMzksNyBAQAogCQkJCTRGNEY1RkZC
MTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyog
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRFMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIElu
c3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjBENkIyRTEyMUJGRUJB
MDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM1MjA1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0
b3IuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKCkKKyAgICA6IHRv
dGFsTGVuZ3RoKDApCit7IH0KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OmNvbGxlY3QoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQoreworICAgIHRvdGFsTGVuZ3RoICs9IChpbnQpbWVzc2FnZS5sZW5n
dGgoKTsKKyAgICBldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAgIHdoaWxlICh0b3RhbExlbmd0
aCA+IENBUEFDSVRZKSB7CisgICAgICAgIHRvdGFsTGVuZ3RoIC09IChpbnQpZXZlbnRzWzBdLmxl
bmd0aCgpOworICAgICAgICBldmVudHMucmVtb3ZlKDApOworICAgIH0KK30KKwordm9pZCBFdmVu
dHNDb2xsZWN0b3I6OnB1c2hEYXRhKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogcmVjZWl2ZXIp
Cit7CisgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6aXRlcmF0b3IgaXQgPSBldmVudHMuYmVnaW4o
KTsgaXQgIT0gZXZlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICByZWNlaXZlci0+c2VuZE1lc3Nh
Z2VUb0Zyb250ZW5kKCppdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvRXZlbnRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29s
bGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNlYmUwMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3Iu
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEV2ZW50c0NvbGxlY3Rvcl9o
CisjZGVmaW5lIEV2ZW50c0NvbGxlY3Rvcl9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOworCitjbGFz
cyBFdmVudHNDb2xsZWN0b3IgeworcHVibGljOgorICAgIEV2ZW50c0NvbGxlY3RvcigpOworICAg
IH5FdmVudHNDb2xsZWN0b3IoKSB7IH0KKyAgICB2b2lkIGNvbGxlY3QoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKKyAgICB2b2lkIHB1c2hEYXRhKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOwor
cHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgaW50IENBUEFDSVRZID0gMTA0ODU3NjsgLy8gMSBN
YgorICAgIGludCB0b3RhbExlbmd0aDsKKyAgICBWZWN0b3I8U3RyaW5nPiBldmVudHM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChFdmVudHNDb2xs
ZWN0b3JfaCkKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggY2Q5MWI2ZC4uM2M3Mjg3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMzcxLDYgKzM3MSwxOCBAQAogICAgICAg
ICBdLAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJuYW1lIjogImRvbUNvbnRlbnRFdmVudEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAi
bnVtYmVyIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGlt
ZSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0s
CisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIs
CiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJl
ZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGMyYTAyMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
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
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3Bl
Y3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9y
ZWNlaXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK0luc3BlY3Rv
ckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBj
b2xsZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbmV4dENoYW5uZWwpCit7CisgICAg
bV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNlaXZlciA9IG5leHRDaGFubmVsOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAgIG1fcmVjZWl2
ZXIgPSByZWNlaXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVu
dHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9jb2xsZWN0
b3IgPSBjb2xsZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX2NvbGxlY3Rv
ci0+Y29sbGVjdChtZXNzYWdlKTsKKyAgICBpZiAobV9yZWNlaXZlcikKKyAgICAgICAgcmV0dXJu
IG1fcmVjZWl2ZXItPnNlbmRNZXNzYWdlVG9Gcm9udGVuZChtZXNzYWdlKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJ
TlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjYzOWJhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUHJveHkuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEluc3BlY3Rv
ckZyb250ZW5kUHJveHlfaAorI2RlZmluZSBJbnNwZWN0b3JGcm9udGVuZFByb3h5X2gKKworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEV2ZW50c0NvbGxlY3RvcjsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eSA6IHB1
YmxpYyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwgeworcHVibGljOgorICAgIEluc3BlY3RvckZy
b250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKik7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRQcm94
eShFdmVudHNDb2xsZWN0b3IqLCBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIG5leHRDaGFubmVs
KTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0b3JGcm9udGVuZFByb3h5KCkgeyB9CisKKyAgICB2b2lk
IHNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqKTsK
KyAgICB2b2lkIHNldEV2ZW50c0NvbGxlY3RvcihFdmVudHNDb2xsZWN0b3IqKTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisK
K3ByaXZhdGU6CisgICAgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBtX3JlY2VpdmVyOworICAg
IEV2ZW50c0NvbGxlY3RvciogbV9jb2xsZWN0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQorCisjZW5kaWYgLy8gIWRlZmluZWQo
SW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkMmI3M2Y0Li5hYjE3MTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtNTA5LDYgKzUwOSw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGlu
CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkp
CiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPmRpZE1hcmtET01Db250ZW50RXZlbnQoKTsKIAorICAg
IGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJjZUFnZW50ID0gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQorICAg
ICAgICByZXNvdXJjZUFnZW50LT5kb21Db250ZW50RXZlbnRGaXJlZCgpOworCiAgICAgaWYgKElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRp
bmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+ZG9t
Q29udGVudEV2ZW50RmlyZWQoKTsKIH0KQEAgLTUyNyw2ICs1MzAsOSBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKEluc3BlY3RvckFnZW50KiBpbnNw
ZWN0b3JBZ2VudAogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50
ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yVGltZWxp
bmVBZ2VudCgpKQogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrTG9hZEV2ZW50KCk7CiAK
KyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3BlY3Rv
ckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkK
KyAgICAgICAgcmVzb3VyY2VBZ2VudC0+bG9hZEV2ZW50RmlyZWQoKTsKKwogICAgIGlmIChJbnNw
ZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5n
QWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmxvYWRF
dmVudEZpcmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzdjNDY0ZS4uZWRmNjk4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAt
NjEyLDcgKzYxMiw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBw
bHlVc2VyQWdlbnRPdmVycmlkZShGcmFtZSogZnJhbWUsIFN0cmluCiBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQog
ewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGlu
c3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0
b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgd2ls
bFNlbmRSZXF1ZXN0SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVj
dFJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtNjUxLDcgKzY1MSw3IEBAIGlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25zdCBJbnNw
ZWN0b3JJbnN0CiBpbmxpbmUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6d2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlKEZyYW1lKiBmcmFt
ZSwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCog
aW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1l
KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNlUmVz
cG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAjZW5kaWYK
ICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llKCk7CkBAIC02NjgsNyAr
NjY4LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
UmVzb3VyY2VSZXNwb25zZShjb25zdCBJbnNwZWN0b3IKIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGludCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQp
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisg
ICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9y
RnJhbWUoZnJhbWUpKQogICAgICAgICBkaWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoaW5zcGVj
dG9yQWdlbnQsIGlkZW50aWZpZXIsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKICNlbmRp
ZgogfQpAQCAtNjc2LDcgKzY3Niw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpCiBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExvYWRpbmcoRnJhbWUqIGZy
YW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogI2lm
IEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2Vu
dCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZy
YW1lKSkKICAgICAgICAgZGlkRmluaXNoTG9hZGluZ0ltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50
aWZpZXIsIGZpbmlzaFRpbWUpOwogI2VuZGlmCiB9CkBAIC03MDgsNyArNzA4LDcgQEAgaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzY3JpcHRJbXBvcnRlZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb24KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwp
CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisg
ICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9y
RnJhbWUoZnJhbWUpKQogICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoaW5z
cGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MTYsNyArNzE2LDcgQEAg
aW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZl
bnRGaXJlZChGcmFtZSogZnJhbWUsIGMKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6bG9hZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwpCiB7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUo
ZnJhbWUpKQogICAgICAgICBsb2FkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1l
LCB1cmwpOwogI2VuZGlmCiB9CkBAIC03MjQsNyArNzI0LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHUKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXRhY2hl
ZEZyb21QYXJlbnQoRnJhbWUqIGZyYW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAg
aWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZy
b250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgZnJhbWVEZXRh
Y2hlZEZyb21QYXJlbnRJbXBsKGluc3BlY3RvckFnZW50LCBmcmFtZSk7CiAjZW5kaWYKIH0KQEAg
LTc5Miw3ICs3OTIsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZERlc3Ryb3lXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBLVVJMJiBy
ZXF1ZXN0VVJMLCBjb25zdCBLVVJMJiBkb2N1bWVudFVSTCkKIHsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JB
Z2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkK
ICAgICAgICAgZGlkQ3JlYXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmll
ciwgcmVxdWVzdFVSTCwgZG9jdW1lbnRVUkwpOwogI2VuZGlmCiB9CkBAIC04MDAsNyArODAwLDcg
QEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2Nr
ZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29j
a2V0SGFuZHNoYWtlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAg
ICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwg
aWRlbnRpZmllciwgcmVxdWVzdCk7CiAjZW5kaWYKIH0KQEAgLTgwOCw3ICs4MDgsNyBAQCBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNo
YWtlUmVxdWVzdChTY3JpcHRFeAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJTb2NrZXRI
YW5kc2hha2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRo
RnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5z
cGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29udGV4dCkpCiAgICAgICAg
IGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZUltcGwoaW5zcGVjdG9yQWdlbnQs
IGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKICNlbmRpZgogfQpAQCAtODE2LDcgKzgxNiw3IEBAIGlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhh
bmRzaGFrZVJlc3BvbnNlKFNjcmlwCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlm
IChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9u
dGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlk
Q2xvc2VXZWJTb2NrZXRJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyKTsKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdl
bnQuY3BwCmluZGV4IGYyNzM3NGYuLjdlMjVlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKQEAgLTM0LDIxICszNCwyNCBA
QAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJCYXNlNjQuaCIKLSNpbmNsdWRl
ICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxGcmFt
ZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBI
ZWFkZXJNYXAuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIklu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUHJv
eHkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZh
bHVlcy5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJLVVJM
LmgiCisjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtODgs
NiArOTEsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgb3RoZXJbXSA9ICJPdGhlciI7CiB2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCkKIHsKICAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPm5ldHdvcmsoKTsKKyAgICAvLyBJ
bnNlcnQgTWVzc2FnZSBQcm94eSBpbiByZWNlaXZlciBjaGFpbi4KKyAgICBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbCgpOworICAgIG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS0+c2V0SW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsKGNsaWVudCk7CisgICAgbV9mcm9udGVuZC0+c2V0SW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eS5nZXQoKSk7CisgICAgbV9ldmVudHNDb2xs
ZWN0b3ItPnB1c2hEYXRhKGNsaWVudCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6Y2xlYXJGcm9udGVuZCgpCkBAIC0yNzQsMTAgKzI4Miw3IEBAIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNvdXJjZShjb25zdCBDYWNo
ZWRSZXNvCiAgICAgcmV0dXJuIHJlc291cmNlT2JqZWN0OwogfQogCi1JbnNwZWN0b3JSZXNvdXJj
ZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpCi17Ci0gICAgQVNTRVJUKCFtX2luc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSk7Ci19CitJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpIHt9CiAKIHZvaWQgSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewpAQCAtMzE0LDcgKzMxOSw2
IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4g
cmVzb3VyY2VSZXNwb25zZSA9IGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZXNwb25z
ZSk7CiAgICAgU3RyaW5nIHR5cGUgPSAiT3RoZXIiOwogICAgIGxvbmcgY2FjaGVkUmVzb3VyY2VT
aXplID0gMDsKLQogICAgIGlmIChsb2FkZXIpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNh
Y2hlZFJlc291cmNlID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UobG9h
ZGVyLT5mcmFtZSgpLCByZXNwb25zZS51cmwoKSk7CiAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJj
ZSkgewpAQCAtMzY5LDYgKzM3MywxNiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNl
dEluaXRpYWxYSFJDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29ucwogICAgIG1f
ZnJvbnRlbmQtPmluaXRpYWxDb250ZW50U2V0KHN0YXRpY19jYXN0PGludD4oaWRlbnRpZmllciks
IHNvdXJjZVN0cmluZywgUmVzb3VyY2VUeXBlOjp4aHIpOwogfQogCit2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5k
b21Db250ZW50RXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwordm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50Ojpsb2FkRXZlbnRGaXJlZCgpCit7CisgICAgbV9mcm9udGVuZC0+bG9hZEV2
ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAgICAgUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gZnJhbWVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgp
OwpAQCAtNDg4LDggKzUwMiw2IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxl
KEVycm9yU3RyaW5nKikKIAogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUoKQog
ewotICAgIGlmICghbV9mcm9udGVuZCkKLSAgICAgICAgcmV0dXJuOwogICAgIG1fc3RhdGUtPnNl
dEJvb2xlYW4oUmVzb3VyY2VBZ2VudFN0YXRlOjpyZXNvdXJjZUFnZW50RW5hYmxlZCwgdHJ1ZSk7
CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JSZXNvdXJjZUFnZW50KHRo
aXMpOwogfQpAQCAtNTI3LDggKzUzOSwxNSBAQCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAg
IDogbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX3Bh
Z2UocGFnZSkKICAgICAsIG1fc3RhdGUoc3RhdGUpCi0gICAgLCBtX2Zyb250ZW5kKDApCisgICAg
LCBtX2V2ZW50c0NvbGxlY3RvcihuZXcgRXZlbnRzQ29sbGVjdG9yKCkpCisgICAgLCBtX2luc3Bl
Y3RvckZyb250ZW5kUHJveHkobmV3IEluc3BlY3RvckZyb250ZW5kUHJveHkobV9ldmVudHNDb2xs
ZWN0b3IuZ2V0KCkpKQogeworICAgIC8vIFRPRE8odm9ycyk6CisgICAgLy8gQWRkIGhlcmUgY29u
ZGl0aW9uIHRvIGVuYWJsZSBiYWNrZ3JvdW5kIGV2ZW50cyBjb2xsZWN0aW9uLgorCisgICAgLy8g
Q3JlYXRlIGR1bW15IGZyb250ZW5kLCBzbyB3ZSBjYW4gY29sbGVjdCBuZXR3b3JrIGV2ZW50cy4K
KyAgICBtX2Zyb250ZW5kID0gbmV3IEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3JrKG1faW5zcGVj
dG9yRnJvbnRlbmRQcm94eS5nZXQoKSk7CisgICAgZW5hYmxlKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSZXNvdXJjZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oCmluZGV4IDEyZjBmZTMuLmViM2Q0NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKIAorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNTEsMTAgKzUyLDEyIEBAIGNsYXNz
IERvY3VtZW50TG9hZGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTsKIGNs
YXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1
bWVudGluZ0FnZW50czsKIGNsYXNzIEtVUkw7CitjbGFzcyBFdmVudHNDb2xsZWN0b3I7CiBjbGFz
cyBQYWdlOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKQEAg
LTk3LDYgKzEwMCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZExvYWRSZXNvdXJjZUZyb21NZW1v
cnlDYWNoZShEb2N1bWVudExvYWRlciosIGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAgICAgdm9p
ZCBzZXRJbml0aWFsU2NyaXB0Q29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2b2lkIHNldEluaXRpYWxYSFJDb250ZW50KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOworICAg
IHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKyAgICB2b2lkIGxvYWRFdmVudEZpcmVkKCk7
CiAgICAgdm9pZCBkaWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKik7CiAgICAgdm9pZCBmcmFt
ZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSopOwogCkBAIC0xMjQsNiArMTI5LDggQEAgcHJpdmF0
ZToKICAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAg
UGFnZSogbV9wYWdlOwogICAgIEluc3BlY3RvclN0YXRlKiBtX3N0YXRlOworICAgIE93blB0cjxF
dmVudHNDb2xsZWN0b3I+IG1fZXZlbnRzQ29sbGVjdG9yOworICAgIE93blB0cjxJbnNwZWN0b3JG
cm9udGVuZFByb3h5PiBtX2luc3BlY3RvckZyb250ZW5kUHJveHk7CiAgICAgSW5zcGVjdG9yRnJv
bnRlbmQ6Ok5ldHdvcmsqIG1fZnJvbnRlbmQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCA5OGFhMDYwLi5m
NWJmMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya01hbmFnZXIuanMKQEAgLTE1MCw2ICsxNTAsMTggQEAgV2ViSW5zcGVjdG9yLk5ldHdv
cmtEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdXBkYXRlUmVzb3VyY2Uo
cmVzb3VyY2UpOwogICAgIH0sCiAKKyAgICBkb21Db250ZW50RXZlbnRGaXJlZDogZnVuY3Rpb24o
dGltZSkKKyAgICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29u
dGVudFRpbWUgPSB0aW1lOworICAgIH0sCisKKyAgICBsb2FkRXZlbnRGaXJlZDogZnVuY3Rpb24o
dGltZSkKKyAgICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlTG9hZFRp
bWUgPSB0aW1lOworICAgIH0sCisKICAgICBkYXRhUmVjZWl2ZWQ6IGZ1bmN0aW9uKGlkZW50aWZp
ZXIsIHRpbWUsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKQogICAgIHsKICAgICAgICAgdmFy
IHJlc291cmNlID0gdGhpcy5faW5mbGlnaHRSZXNvdXJjZXNCeUlkW2lkZW50aWZpZXJdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAz
YzMwYTIwLi4xMmQyOTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcwpAQCAtOTg3LDE1ICs5ODcsMTIgQEAgV2ViSW5zcGVjdG9yLnN0YXJ0
VXNlckluaXRpYXRlZERlYnVnZ2luZyA9IGZ1bmN0aW9uKCkKIFdlYkluc3BlY3Rvci5kb21Db250
ZW50RXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiB7CiAgICAgdGhpcy5wYW5lbHMuYXVkaXRz
Lm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKLSAgICBpZiAodGhpcy5wYW5lbHMu
bmV0d29yaykKLSAgICAgICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VET01Db250
ZW50VGltZSA9IHRpbWU7CiAgICAgdGhpcy5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRp
bWU7CiB9CiAKIFdlYkluc3BlY3Rvci5sb2FkRXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiB7
CiAgICAgdGhpcy5wYW5lbHMuYXVkaXRzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKLSAg
ICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKICAgICB0
aGlzLnBhbmVscy5yZXNvdXJjZXMubG9hZEV2ZW50RmlyZWQoKTsKICAgICB0aGlzLm1haW5SZXNv
dXJjZUxvYWRUaW1lID0gdGltZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggY2MyMGE4Mi4uYmEzNTk3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTgxMCw2ICs4MTAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBo
dG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIFwKICAgICBpbnNwZWN0b3Iv
Q29uc29sZU1lc3NhZ2UuY3BwIFwKICAgICBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNw
cCBcCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAogICAgIGluc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3Bw
IFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBcCkBAIC04MjgsNiAr
ODI5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAorICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgXApAQCAt
MTc0Myw2ICsxNzQ1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9wYXJzZXIvWFNTRmlsdGVy
LmggXAogICAgIGluc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oIFwKICAgICBpbnNwZWN0b3IvRE9N
Tm9kZUhpZ2hsaWdodGVyLmggXAorICAgIGluc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaCBcCiAg
ICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmggXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNj
cmlwdEhvc3QuaCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oIFwKQEAg
LTE3NTksOSArMTc2MiwxMSBAQCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RGVidWdnZXJBZ2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBcCisgICAg
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIFwKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIFwK
KyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBcCg==
</data>
<flag name="review"
          id="81632"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89579</attachid>
            <date>2011-04-14 06:58:40 -0700</date>
            <delta_ts>2011-04-15 06:26:38 -0700</delta_ts>
            <desc>After firsts review. Functionality disabled by default</desc>
            <filename>review</filename>
            <type>text/plain</type>
            <size>36799</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmJkYTJlNy4uYTk1NmFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4OSw0ICs4ODksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIu
Y3BwCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKICAgICBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAg
LTkwOCw0ICs5MDksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlZTYxZWEuLmJlYzIyZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMiArMSw2NSBAQAorMjAxMS0wNC0xNCAgU2VyZ2V5IFZvcm9ieWV2
ICA8c2VyZ2V5dm9yb2J5ZXZAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIGV2ZW50cyBkb24n
dCBwcmVzZXJ2ZXMsCisgICAgICAgIHdoZW4gaW5zcGVjdG9yIGZyb250ZW5kIGNsb3NlZCBhbmQg
b3BlbiBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgwNjQKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OkV2ZW50c0NvbGxlY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6c2VuZENvbGxlY3RlZEV2ZW50cyk6CisgICAgICAg
ICogaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50c0NvbGxlY3Rvcjo6fkV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFBy
b3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5
OjpJbnNwZWN0b3JGcm9udGVuZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5k
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6On5JbnNwZWN0b3JGcm9u
dGVuZFByb3h5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29u
dGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
RmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5k
V2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29j
a2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJl
c291cmNlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5kb21Db250ZW50RXZlbnRGaXJl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLmxv
YWRFdmVudEZpcmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQpOgorCiAyMDExLTA0LTE0ICBJbHlhIFRpa2hv
bm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggYmM2Yzc1Mi4uYjc2ZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0xOTIyLDQgKzE5MjIsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9FdmVudHNDb2xsZWN0b3IuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRz
Q29sbGVjdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKQEAgLTE5
NjIsNCArMTk2NCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMGE3OWQwLi41
ZTEwZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMjEyLDQgKzMyMTIsNiBAQAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVu
dHNDb2xsZWN0b3IuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9y
LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oJywKQEAgLTMyNDYsNCArMzI0OCw2IEBA
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTVhOWU2MS4u
OGNkY2I4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTgxMSw0ICs4MTEsNSBAQCBTT1VSQ0VTICs9IFwK
ICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIFwKICAgICBpbnNwZWN0b3IvRE9NTm9k
ZUhpZ2hsaWdodGVyLmNwcCBcCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAog
ICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdEhvc3QuY3BwIFwKQEAgLTgyOSw0ICs4MzAsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCkBAIC0xNzQ1LDQg
KzE3NDcsNSBAQCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBc
CiAgICAgaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oIFwKKyAgICBpbnNwZWN0b3IvRXZl
bnRzQ29sbGVjdG9yLmggXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKICAgICBp
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmggXApAQCAtMTc2MSw3ICsxNzY0LDkgQEAgSEVB
REVSUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggXAorICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisgICAgaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBm
YjljOGFlLi40ODA3M2ExIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtNjY2MDMsNCArNjY2MDMsMTIgQEAKIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRXZlbnRzQ29sbGVjdG9yLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XEV2ZW50c0NvbGxlY3Rvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCIKIAkJCQk+CkBA
IC02Njc3MSw0ICs2Njc3OSwxMiBAQAogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckZyb250ZW5kUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiCiAJ
CQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGU1OGY0OWUuLmMwZGJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY0Nyw0ICs2NDcsOCBAQAogCQkyMEQ2
MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBC
MDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyNzc3NzYw
MTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3NzVGMTM0NURFQTkwMDhF
QTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDIyNzc3QjQ4MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3Bw
ICovOyB9OworCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0OTEz
NEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8q
IEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZy
b250ZW5kUHJveHkuY3BwICovOyB9OworCQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUgLyogSW5z
cGVjdG9yRnJvbnRlbmRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5k
UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjg4NUU2
MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi87IH07
CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAw
MDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzA4NSw0ICs3MDg5LDggQEAKIAkJMjBENjI5MjUxMjUz
NjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3
NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29s
bGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0
NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250
ZW5kUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFB
RTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8q
IFNjcmlwdFdyYXBwYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jp
cHRXcmFwcGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjI2LDQgKzEz
MjM0LDYgQEAKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdo
dGVyLmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hs
aWdodGVyLmggKi8sCisJCQkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxl
Y3Rvci5jcHAgKi8sCisJCQkJMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxl
Y3Rvci5oICovLAogCQkJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlw
dC5jcHAgKi8sCiAJCQkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0
LmggKi8sCkBAIC0xMzI2OSw0ICsxMzI3OSw2IEBACiAJCQkJN0EwRTc3MEMxMEMwMEE4ODAwQTAy
NzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBDMDBBODgw
MEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3QjRDMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJCQkyMjc3
N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICovLAogCQkJ
CTIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
ICovLAogCQkJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCAqLywKQEAgLTIwOTg1LDQgKzIwOTk3LDUgQEAKIAkJCQk4RjY3NTYxQjEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTBGRUYzNzJCMTdD
NTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0
QjEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTJFREI3QjBCMzA4QTc4MDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNjBEOEYzMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTIxMzM2LDQgKzIxMzQ5LDUgQEAKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBG
MjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMjI3NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZy
b250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0
MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZE
RDY1MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjM4MzQsNCArMjM4NDgsNSBAQAogCQkJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAv
KiBFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjI3QzUzRUFDMUMx
RkJFRSAvKiBFdmVudFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjc3N0I0QTEzNEEw
MThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
MkVEQkVBMEIzMDhFMEIwMDI3MDRCNiAvKiBFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzYwRDhGMjBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI0MTQ0LDQgKzI0MTU5LDUgQEAKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBG
MjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRFMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0
b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTIwRDYyOTI2MTI1MzY5MEIw
MDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHND
b2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMzNjVjZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBA
IC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJFdmVudHNDb2xsZWN0b3IuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRl
ICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVj
dG9yKCkKKyAgICA6IG1fdG90YWxMZW5ndGgoMCkKK3sKK30KKwordm9pZCBFdmVudHNDb2xsZWN0
b3I6OmFkZEV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3RvdGFsTGVuZ3Ro
ICs9IG1lc3NhZ2UubGVuZ3RoKCk7CisgICAgbV9ldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAg
IHdoaWxlIChtX3RvdGFsTGVuZ3RoID4gbWF4Q2FwYWNpdHkpIHsKKyAgICAgICAgbV90b3RhbExl
bmd0aCAtPSBtX2V2ZW50c1swXS5sZW5ndGgoKTsKKyAgICAgICAgbV9ldmVudHMucmVtb3ZlKDAp
OworICAgIH0KK30KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OnNlbmRDb2xsZWN0ZWRFdmVudHMo
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiByZWNlaXZlcikKK3sKKyAgICBmb3IgKFZlY3RvcjxT
dHJpbmc+OjppdGVyYXRvciBpdCA9IG1fZXZlbnRzLmJlZ2luKCk7IGl0ICE9IG1fZXZlbnRzLmVu
ZCgpOyArK2l0KQorICAgICAgICByZWNlaXZlci0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKCppdCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUzZTEwOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEV2ZW50c0NvbGxlY3Rvcl9oCisjZGVmaW5lIEV2ZW50c0Nv
bGxlY3Rvcl9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOworCitjbGFzcyBFdmVudHNDb2xsZWN0b3Ig
eworcHVibGljOgorICAgIEV2ZW50c0NvbGxlY3RvcigpOworICAgIH5FdmVudHNDb2xsZWN0b3Io
KSB7IH0KKyAgICB2b2lkIGFkZEV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9p
ZCBzZW5kQ29sbGVjdGVkRXZlbnRzKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworcHJpdmF0
ZToKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heENhcGFjaXR5ID0gMTAyNCoxMDI0OyAvLyAx
IE1iCisgICAgc2l6ZV90IG1fdG90YWxMZW5ndGg7CisgICAgVmVjdG9yPFN0cmluZz4gbV9ldmVu
dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChF
dmVudHNDb2xsZWN0b3JfaCkKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMWZjZDQ1Zi4uMGQ5MzM1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtNDMyLDQgKzQzMiwxNiBA
QAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
YW1lIjogImRvbUNvbnRlbnRFdmVudEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVt
YmVyIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAibmFtZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZSIs
ICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIsCiAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJlZW4g
ZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNGUyMTg4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3Rv
ckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBj
b2xsZWN0b3IpCit7CisgICAgbV9yZWNlaXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xs
ZWN0b3I7Cit9CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJv
eHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCog
bmV4dENoYW5uZWwpCit7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNl
aXZlciA9IG5leHRDaGFubmVsOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNl
dEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2Vp
dmVyKQoreworICAgIG1fcmVjZWl2ZXIgPSByZWNlaXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JG
cm9udGVuZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0
b3IpCit7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3sKKyAgICBtX2NvbGxlY3Rvci0+YWRkRXZlbnQobWVzc2FnZSk7CisgICAgaWYgKG1fcmVj
ZWl2ZXIpCisgICAgICAgIHJldHVybiBtX3JlY2VpdmVyLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQo
bWVzc2FnZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjU5YWY2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZFByb3h5X2gKKyNkZWZpbmUgSW5zcGVjdG9y
RnJvbnRlbmRQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFdmVudHNDb2xsZWN0b3I7CisKK2NsYXNzIEluc3Bl
Y3RvckZyb250ZW5kUHJveHkgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3Rv
ciopOworICAgIEluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiwgSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKiBuZXh0Q2hhbm5lbCk7CisgICAgdmlydHVhbCB+SW5zcGVjdG9y
RnJvbnRlbmRQcm94eSgpIHsgfQorCisgICAgdm9pZCBzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBzZXRFdmVudHNDb2xsZWN0
b3IoRXZlbnRzQ29sbGVjdG9yKik7CisgICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9u
dGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworCitwcml2YXRlOgorICAgIEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogbV9yZWNlaXZlcjsKKyAgICBFdmVudHNDb2xsZWN0b3IqIG1fY29sbGVj
dG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKKworI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckZyb250ZW5kUHJveHlfaCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKaW5kZXggZDJiNzNmNC4uYWIxNzE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTUxMCw0ICs1
MTAsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2
ZW50RmlyZWRJbXBsKEluc3BlY3RvckFnZW50KiBpbgogICAgICAgICB0aW1lbGluZUFnZW50LT5k
aWRNYXJrRE9NQ29udGVudEV2ZW50KCk7CiAKKyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCogcmVzb3VyY2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCkt
Pmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZG9tQ29u
dGVudEV2ZW50RmlyZWQoKTsKKwogICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VB
Z2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CkBAIC01
MjgsNCArNTMxLDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZp
cmVkSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQKICAgICAgICAgdGltZWxpbmVB
Z2VudC0+ZGlkTWFya0xvYWRFdmVudCgpOwogCisgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdl
bnQqIHJlc291cmNlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygp
LT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCisgICAgICAgIHJlc291cmNlQWdlbnQtPmxvYWRF
dmVudEZpcmVkKCk7CisKICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBp
bnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JQYWdlQWdlbnQo
KSkKICAgICAgICAgcGFnZUFnZW50LT5sb2FkRXZlbnRGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDc3YzQ2
NGUuLmVkZjY5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTYxMyw1ICs2MTMsNSBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2ln
bmVkIGxvbgogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50
KiBpYyA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlm
IChJbnNwZWN0b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAg
ICAgICAgd2lsbFNlbmRSZXF1ZXN0SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0
LCByZWRpcmVjdFJlc3BvbnNlKTsKICNlbmRpZgpAQCAtNjUyLDUgKzY1Miw1IEBAIGlubGluZSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsUmVjZWl2ZVJlc291CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVj
dG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JG
cmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGlu
c3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVS
ZXNvdXJjZVJlc3BvbnNlSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVzcG9uc2Up
OwogI2VuZGlmCkBAIC02NjksNSArNjY5LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2kKIHsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBp
ZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFt
ZShmcmFtZSkpCiAgICAgICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JB
Z2VudCwgaWRlbnRpZmllciwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCkBA
IC02NzcsNSArNjc3LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaW5pc2hMb2FkaW5nKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG8KIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAg
ICAgICAgIGRpZEZpbmlzaExvYWRpbmdJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBm
aW5pc2hUaW1lKTsKICNlbmRpZgpAQCAtNzA5LDUgKzcwOSw1IEBAIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZy
YW1lLCBjCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFt
ZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFn
ZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZElt
cGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCkBAIC03MTcsNSArNzE3LDUg
QEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHUKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAg
IGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhG
cm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3Rv
ckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGxvYWRFdmVu
dEZpcmVkSW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUsIHVybCk7CiAjZW5kaWYKQEAgLTcyNSw1
ICs3MjUsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0
YWNoZWRGcm9tUGFyZW50KEZyYW1lKiBmcmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGZyYW1l
RGV0YWNoZWRGcm9tUGFyZW50SW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUpOwogI2VuZGlmCkBA
IC03OTMsNSArNzkzLDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250
ZXh0KSkKICAgICAgICAgZGlkQ3JlYXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRl
bnRpZmllciwgcmVxdWVzdFVSTCwgZG9jdW1lbnRVUkwpOwogI2VuZGlmCkBAIC04MDEsNSArODAx
LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNv
Y2tldEhhbmRzaGFrZVJlcXVlc3QoU2NyaXB0RXgKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAg
ICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwg
aWRlbnRpZmllciwgcmVxdWVzdCk7CiAjZW5kaWYKQEAgLTgwOSw1ICs4MDksNSBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hh
a2VSZXNwb25zZShTY3JpcAogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9y
Q29udGV4dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRSZWNlaXZl
V2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVy
LCByZXNwb25zZSk7CiAjZW5kaWYKQEAgLTgxNyw1ICs4MTcsNSBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNv
bnRleHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudEZvckNvbnRleHQoY29udGV4dCkpCiAgICAgICAgIGRpZENsb3NlV2ViU29ja2V0SW1w
bChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA5NWNlYmNm
Li43NjQyNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwCkBAIC0zNSw5ICszNSw5IEBACiAKICNpbmNsdWRlICJCYXNlNjQu
aCIKLSNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9y
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNDYs
OCArNDYsMTEgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNp
bmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZFByb3h5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3Rh
dGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50
aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtODks
NCArOTIsMTEgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5u
ZXR3b3JrKCk7CisgICAgaWYgKGVuYWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbigpKSB7
CisgICAgICAgIC8vIEluc2VydCBNZXNzYWdlIFByb3h5IGluIHJlY2VpdmVyIGNoYWluLgorICAg
ICAgICBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldElu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbCgpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJv
eHktPnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChjbGllbnQpOworICAgICAgICBtX2Zyb250
ZW5kLT5zZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5
LmdldCgpKTsKKyAgICAgICAgbV9ldmVudHNDb2xsZWN0b3ItPnNlbmRDb2xsZWN0ZWRFdmVudHMo
Y2xpZW50KTsKKyAgICB9CiB9CiAKQEAgLTEwNiw1ICsxMTYsNSBAQCB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OnJlc291cmNlQ29udGVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZy
YW1lKiBmcgogewogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIk5v
IGZyYW1lIHRvIGdldCByZXNvdXJjZSBjb250ZW50IGZvciI7IAorICAgICAgICAqZXJyb3JTdHJp
bmcgPSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291cmNlIGNvbnRlbnQgZm9yIjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTI3Nyw4ICsyODcsNSBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UoY29uc3QgQ2FjaGVkUmVzbwog
fQogCi1JbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpCi17
Ci0gICAgQVNTRVJUKCFtX2luc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdl
bnQoKSk7Ci19CitJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp+SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCgpIHt9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
KQpAQCAtMzE3LDUgKzMyNCw0IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgU3RyaW5n
IHR5cGUgPSAiT3RoZXIiOwogICAgIGxvbmcgY2FjaGVkUmVzb3VyY2VTaXplID0gMDsKLQogICAg
IGlmIChsb2FkZXIpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0g
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UobG9hZGVyLT5mcmFtZSgpLCBy
ZXNwb25zZS51cmwoKSk7CkBAIC0zNzIsNCArMzc4LDE0IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6c2V0SW5pdGlhbFhIUkNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBj
b25zCiB9CiAKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50Rmly
ZWQoKQoreworICAgIG1fZnJvbnRlbmQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKGN1cnJlbnRUaW1l
KCkpOworfQorCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKCkK
K3sKKyAgICBtX2Zyb250ZW5kLT5sb2FkRXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwog
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckZyYW1lKEZy
YW1lKiBmcmFtZSkKIHsKQEAgLTQ4NCw0ICs1MDAsMTIgQEAgRnJhbWUqIEluc3BlY3RvclJlc291
cmNlQWdlbnQ6OmZyYW1lRm9ySWQoY29uc3QgU3RyaW5nJiBmcmFtZUlkKQogfQogCitib29sIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbigp
Cit7CisgICAgLy8gVE9ETyh2b3JzKToKKyAgICAvLyBBZGQgaGVyZSBjb25kaXRpb24gdG8gZW5h
YmxlIGJhY2tncm91bmQgZXZlbnRzIGNvbGxlY3Rpb24uCisgICAgLy8gTm93IHRoaXMgZnVuY3Rp
b24gZGlzYWJsZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKIHsKQEAgLTQ5MSw2ICs1MTUsNCBAQCB2b2lk
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiB2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZSgpCiB7Ci0gICAgaWYgKCFtX2Zyb250ZW5kKQotICAg
ICAgICByZXR1cm47CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihSZXNvdXJjZUFnZW50U3RhdGU6
OnJlc291cmNlQWdlbnRFbmFibGVkLCB0cnVlKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMt
PnNldEluc3BlY3RvclJlc291cmNlQWdlbnQodGhpcyk7CkBAIC01MzAsNiArNTUyLDEyIEBAIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluCiAgICAgLCBtX3BhZ2UocGFnZSkKICAgICAsIG1fc3RhdGUo
c3RhdGUpCi0gICAgLCBtX2Zyb250ZW5kKDApCiB7CisgICAgaWYgKGVuYWJsZWRCYWNrZ291bmRF
dmVudHNDb29sbGVjdGlvbigpKSB7CisgICAgICAgIG1fZXZlbnRzQ29sbGVjdG9yID0gbmV3IEV2
ZW50c0NvbGxlY3RvcigpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHkgPSBuZXcg
SW5zcGVjdG9yRnJvbnRlbmRQcm94eShtX2V2ZW50c0NvbGxlY3Rvci5nZXQoKSk7CisgICAgICAg
IC8vIENyZWF0ZSBkdW1teSBmcm9udGVuZCwgc28gd2UgY2FuIGNvbGxlY3QgbmV0d29yayBldmVu
dHMuCisgICAgICAgIG1fZnJvbnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQ6Ok5ldHdvcmso
bV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICAgICAgZW5hYmxlKCk7CisgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNl
QWdlbnQuaAppbmRleCAxMmYwZmUzLi43NDE4MzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKQEAgLTM1LDQgKzM1LDUgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNTIs
OCArNTMsMTAgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTsKIGNsYXNzIElu
c3BlY3Rvck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGlu
Z0FnZW50czsKIGNsYXNzIEtVUkw7CitjbGFzcyBFdmVudHNDb2xsZWN0b3I7CiBjbGFzcyBQYWdl
OwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKQEAgLTk4LDQgKzEwMSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEluaXRpYWxTY3JpcHRDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOwogICAgIHZvaWQgc2V0SW5pdGlhbFhIUkNvbnRlbnQo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7Cisg
ICAgdm9pZCBkb21Db250ZW50RXZlbnRGaXJlZCgpOworICAgIHZvaWQgbG9hZEV2ZW50RmlyZWQo
KTsKICAgICB2b2lkIGRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqKTsKICAgICB2b2lkIGZy
YW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1lKik7CkBAIC0xMDksNCArMTE0LDUgQEAgcHVibGlj
OgogCiAgICAgRnJhbWUqIGZyYW1lRm9ySWQoY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKKyAgICBi
b29sIGVuYWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbigpOwogCiAgICAgLy8gQ2FsbGVk
IGZyb20gZnJvbnRlbmQgCkBAIC0xMjUsNSArMTMxLDcgQEAgcHJpdmF0ZToKICAgICBQYWdlKiBt
X3BhZ2U7CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1fc3RhdGU7Ci0gICAgSW5zcGVjdG9yRnJvbnRl
bmQ6Ok5ldHdvcmsqIG1fZnJvbnRlbmQ7CisgICAgT3duUHRyPEV2ZW50c0NvbGxlY3Rvcj4gbV9l
dmVudHNDb2xsZWN0b3I7CisgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3JrPiBt
X2Zyb250ZW5kOworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZFByb3h5PiBtX2luc3BlY3Rv
ckZyb250ZW5kUHJveHk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCBhNWE1M2NiLi41ZWU4MThkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2Vy
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFn
ZXIuanMKQEAgLTE1MSw0ICsxNTEsMTYgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVy
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCisgICAgZG9tQ29udGVudEV2ZW50RmlyZWQ6IGZ1bmN0
aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3Jr
KQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURP
TUNvbnRlbnRUaW1lID0gdGltZTsKKyAgICB9LAorCisgICAgbG9hZEV2ZW50RmlyZWQ6IGZ1bmN0
aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3Jr
KQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxv
YWRUaW1lID0gdGltZTsKKyAgICB9LAorCiAgICAgZGF0YVJlY2VpdmVkOiBmdW5jdGlvbihpZGVu
dGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDUxMGY5
MzEuLmRkY2ZhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzCkBAIC05OTAsNiArOTkwLDQgQEAgV2ViSW5zcGVjdG9yLmRvbUNvbnRlbnRF
dmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkKIHsKICAgICB0aGlzLnBhbmVscy5hdWRpdHMubWFp
blJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwotICAgIGlmICh0aGlzLnBhbmVscy5uZXR3
b3JrKQotICAgICAgICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRU
aW1lID0gdGltZTsKICAgICB0aGlzLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsK
IH0KQEAgLTk5OCw1ICs5OTYsNCBAQCBXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQgPSBmdW5j
dGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VMb2FkVGlt
ZSA9IHRpbWU7Ci0gICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VMb2FkVGltZSA9
IHRpbWU7CiAgICAgdGhpcy5wYW5lbHMucmVzb3VyY2VzLmxvYWRFdmVudEZpcmVkKCk7CiAgICAg
dGhpcy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7Cg==
</data>
<flag name="review"
          id="82280"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89774</attachid>
            <date>2011-04-15 06:22:15 -0700</date>
            <delta_ts>2011-04-15 07:05:46 -0700</delta_ts>
            <desc>After 2nd review. Fix memory leaks</desc>
            <filename>review</filename>
            <type>text/plain</type>
            <size>36802</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmJkYTJlNy4uYTk1NmFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4OSw0ICs4ODksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIu
Y3BwCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKICAgICBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAg
LTkwOCw0ICs5MDksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlZTYxZWEuLmJlYzIyZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMiArMSw2NSBAQAorMjAxMS0wNC0xNCAgU2VyZ2V5IFZvcm9ieWV2
ICA8c2VyZ2V5dm9yb2J5ZXZAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIGV2ZW50cyBkb24n
dCBwcmVzZXJ2ZXMsCisgICAgICAgIHdoZW4gaW5zcGVjdG9yIGZyb250ZW5kIGNsb3NlZCBhbmQg
b3BlbiBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgwNjQKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OkV2ZW50c0NvbGxlY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6c2VuZENvbGxlY3RlZEV2ZW50cyk6CisgICAgICAg
ICogaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50c0NvbGxlY3Rvcjo6fkV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFBy
b3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5
OjpJbnNwZWN0b3JGcm9udGVuZFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5k
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6On5JbnNwZWN0b3JGcm9u
dGVuZFByb3h5KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29u
dGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
RmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tl
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5k
V2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29j
a2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJl
c291cmNlQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5kb21Db250ZW50RXZlbnRGaXJl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLmxv
YWRFdmVudEZpcmVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQpOgorCiAyMDExLTA0LTE0ICBJbHlhIFRpa2hv
bm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggYmM2Yzc1Mi4uYjc2ZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0xOTIyLDQgKzE5MjIsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9FdmVudHNDb2xsZWN0b3IuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRz
Q29sbGVjdG9yLmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKQEAgLTE5
NjIsNCArMTk2NCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMGE3OWQwLi41
ZTEwZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMjEyLDQgKzMyMTIsNiBAQAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVu
dHNDb2xsZWN0b3IuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9y
LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAnLAogICAgICAg
ICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oJywKQEAgLTMyNDYsNCArMzI0OCw2IEBA
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwJywKKyAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTVhOWU2MS4u
OGNkY2I4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTgxMSw0ICs4MTEsNSBAQCBTT1VSQ0VTICs9IFwK
ICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIFwKICAgICBpbnNwZWN0b3IvRE9NTm9k
ZUhpZ2hsaWdodGVyLmNwcCBcCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAog
ICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdEhvc3QuY3BwIFwKQEAgLTgyOSw0ICs4MzAsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCkBAIC0xNzQ1LDQg
KzE3NDcsNSBAQCBIRUFERVJTICs9IFwKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBc
CiAgICAgaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5oIFwKKyAgICBpbnNwZWN0b3IvRXZl
bnRzQ29sbGVjdG9yLmggXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKICAgICBp
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmggXApAQCAtMTc2MSw3ICsxNzY0LDkgQEAgSEVB
REVSUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggXAorICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisgICAgaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBm
YjljOGFlLi40ODA3M2ExIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtNjY2MDMsNCArNjY2MDMsMTIgQEAKIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRXZlbnRzQ29sbGVjdG9yLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XEV2ZW50c0NvbGxlY3Rvci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCIKIAkJCQk+CkBA
IC02Njc3MSw0ICs2Njc3OSwxMiBAQAogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckZyb250ZW5kUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiCiAJ
CQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGU1OGY0OWUuLmMwZGJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY0Nyw0ICs2NDcsOCBAQAogCQkyMEQ2
MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBC
MDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyNzc3NzYw
MTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3NzVGMTM0NURFQTkwMDhF
QTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDIyNzc3QjQ4MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3Bw
ICovOyB9OworCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0OTEz
NEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8q
IEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZy
b250ZW5kUHJveHkuY3BwICovOyB9OworCQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUgLyogSW5z
cGVjdG9yRnJvbnRlbmRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5k
UHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjg4NUU2
MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi87IH07
CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAw
MDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzA4NSw0ICs3MDg5LDggQEAKIAkJMjBENjI5MjUxMjUz
NjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3Rv
ckZyb250ZW5kQ2hhbm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3
NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29s
bGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0
NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250
ZW5kUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFB
RTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8q
IFNjcmlwdFdyYXBwYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jp
cHRXcmFwcGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjI2LDQgKzEz
MjM0LDYgQEAKIAkJCQk0RjE0NDIyNjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdo
dGVyLmNwcCAqLywKIAkJCQk0RjE0NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hs
aWdodGVyLmggKi8sCisJCQkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxl
Y3Rvci5jcHAgKi8sCisJCQkJMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxl
Y3Rvci5oICovLAogCQkJCUYzNjQ0QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlw
dC5jcHAgKi8sCiAJCQkJRjM2NDRBRkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0
LmggKi8sCkBAIC0xMzI2OSw0ICsxMzI3OSw2IEBACiAJCQkJN0EwRTc3MEMxMEMwMEE4ODAwQTAy
NzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBDMDBBODgw
MEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3QjRDMTM0
QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJCQkyMjc3
N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICovLAogCQkJ
CTIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
ICovLAogCQkJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCAqLywKQEAgLTIwOTg1LDQgKzIwOTk3LDUgQEAKIAkJCQk4RjY3NTYxQjEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTBGRUYzNzJCMTdD
NTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0
QjEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTJFREI3QjBCMzA4QTc4MDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNjBEOEYzMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTIxMzM2LDQgKzIxMzQ5LDUgQEAKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBG
MjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMjI3NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZy
b250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0
MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZE
RDY1MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjM4MzQsNCArMjM4NDgsNSBAQAogCQkJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAv
KiBFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjI3QzUzRUFDMUMx
RkJFRSAvKiBFdmVudFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjc3N0I0QTEzNEEw
MThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
MkVEQkVBMEIzMDhFMEIwMDI3MDRCNiAvKiBFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzYwRDhGMjBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI0MTQ0LDQgKzI0MTU5LDUgQEAKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBG
MjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QTBFNzcwRTEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTIyNzc3QjRFMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0
b3JGcm9udGVuZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTIwRDYyOTI2MTI1MzY5MEIw
MDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNEY2RkRENjQxMzQxREVERDAwMUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHND
b2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMzNjVjZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBA
IC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJFdmVudHNDb2xsZWN0b3IuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRl
ICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVj
dG9yKCkKKyAgICA6IG1fdG90YWxMZW5ndGgoMCkKK3sKK30KKwordm9pZCBFdmVudHNDb2xsZWN0
b3I6OmFkZEV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3RvdGFsTGVuZ3Ro
ICs9IG1lc3NhZ2UubGVuZ3RoKCk7CisgICAgbV9ldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAg
IHdoaWxlIChtX3RvdGFsTGVuZ3RoID4gbWF4Q2FwYWNpdHkpIHsKKyAgICAgICAgbV90b3RhbExl
bmd0aCAtPSBtX2V2ZW50c1swXS5sZW5ndGgoKTsKKyAgICAgICAgbV9ldmVudHMucmVtb3ZlKDAp
OworICAgIH0KK30KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OnNlbmRDb2xsZWN0ZWRFdmVudHMo
SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiByZWNlaXZlcikKK3sKKyAgICBmb3IgKFZlY3RvcjxT
dHJpbmc+OjppdGVyYXRvciBpdCA9IG1fZXZlbnRzLmJlZ2luKCk7IGl0ICE9IG1fZXZlbnRzLmVu
ZCgpOyArK2l0KQorICAgICAgICByZWNlaXZlci0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKCppdCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNU
T1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUzZTEwOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEV2ZW50c0NvbGxlY3Rvcl9oCisjZGVmaW5lIEV2ZW50c0Nv
bGxlY3Rvcl9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsOworCitjbGFzcyBFdmVudHNDb2xsZWN0b3Ig
eworcHVibGljOgorICAgIEV2ZW50c0NvbGxlY3RvcigpOworICAgIH5FdmVudHNDb2xsZWN0b3Io
KSB7IH0KKyAgICB2b2lkIGFkZEV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9p
ZCBzZW5kQ29sbGVjdGVkRXZlbnRzKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworcHJpdmF0
ZToKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heENhcGFjaXR5ID0gMTAyNCoxMDI0OyAvLyAx
IE1iCisgICAgc2l6ZV90IG1fdG90YWxMZW5ndGg7CisgICAgVmVjdG9yPFN0cmluZz4gbV9ldmVu
dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChF
dmVudHNDb2xsZWN0b3JfaCkKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMWZjZDQ1Zi4uMGQ5MzM1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtNDMyLDQgKzQzMiwxNiBA
QAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJu
YW1lIjogImRvbUNvbnRlbnRFdmVudEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVy
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVt
YmVyIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICAibmFtZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZSIs
ICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIsCiAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJlZW4g
ZGV0YWNoZWQgZnJvbSBpdHMgcGFyZW50LiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNGUyMTg4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lm
IEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3Rv
ckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBj
b2xsZWN0b3IpCit7CisgICAgbV9yZWNlaXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xs
ZWN0b3I7Cit9CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJv
eHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCog
bmV4dENoYW5uZWwpCit7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNl
aXZlciA9IG5leHRDaGFubmVsOworfQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNl
dEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2Vp
dmVyKQoreworICAgIG1fcmVjZWl2ZXIgPSByZWNlaXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JG
cm9udGVuZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0
b3IpCit7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK3sKKyAgICBtX2NvbGxlY3Rvci0+YWRkRXZlbnQobWVzc2FnZSk7CisgICAgaWYgKG1fcmVj
ZWl2ZXIpCisgICAgICAgIHJldHVybiBtX3JlY2VpdmVyLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQo
bWVzc2FnZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMjU5YWY2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBJbnNwZWN0b3JGcm9udGVuZFByb3h5X2gKKyNkZWZpbmUgSW5zcGVjdG9y
RnJvbnRlbmRQcm94eV9oCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5z
cGVjdG9yRnJvbnRlbmRDaGFubmVsLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFdmVudHNDb2xsZWN0b3I7CisKK2NsYXNzIEluc3Bl
Y3RvckZyb250ZW5kUHJveHkgOiBwdWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBJbnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3Rv
ciopOworICAgIEluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiwgSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsKiBuZXh0Q2hhbm5lbCk7CisgICAgdmlydHVhbCB+SW5zcGVjdG9y
RnJvbnRlbmRQcm94eSgpIHsgfQorCisgICAgdm9pZCBzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwoSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKik7CisgICAgdm9pZCBzZXRFdmVudHNDb2xsZWN0
b3IoRXZlbnRzQ29sbGVjdG9yKik7CisgICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9u
dGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworCitwcml2YXRlOgorICAgIEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbCogbV9yZWNlaXZlcjsKKyAgICBFdmVudHNDb2xsZWN0b3IqIG1fY29sbGVj
dG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKKworI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3RvckZyb250ZW5kUHJveHlfaCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKaW5kZXggZDJiNzNmNC4uYWIxNzE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTUxMCw0ICs1
MTAsNyBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2
ZW50RmlyZWRJbXBsKEluc3BlY3RvckFnZW50KiBpbgogICAgICAgICB0aW1lbGluZUFnZW50LT5k
aWRNYXJrRE9NQ29udGVudEV2ZW50KCk7CiAKKyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dCogcmVzb3VyY2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCkt
Pmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZG9tQ29u
dGVudEV2ZW50RmlyZWQoKTsKKwogICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VB
Z2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CkBAIC01
MjgsNCArNTMxLDcgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZp
cmVkSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQKICAgICAgICAgdGltZWxpbmVB
Z2VudC0+ZGlkTWFya0xvYWRFdmVudCgpOwogCisgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdl
bnQqIHJlc291cmNlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygp
LT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpCisgICAgICAgIHJlc291cmNlQWdlbnQtPmxvYWRF
dmVudEZpcmVkKCk7CisKICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBp
bnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JQYWdlQWdlbnQo
KSkKICAgICAgICAgcGFnZUFnZW50LT5sb2FkRXZlbnRGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDc3YzQ2
NGUuLmVkZjY5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTYxMyw1ICs2MTMsNSBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2ln
bmVkIGxvbgogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50
KiBpYyA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlm
IChJbnNwZWN0b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAg
ICAgICAgd2lsbFNlbmRSZXF1ZXN0SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0
LCByZWRpcmVjdFJlc3BvbnNlKTsKICNlbmRpZgpAQCAtNjUyLDUgKzY1Miw1IEBAIGlubGluZSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsUmVjZWl2ZVJlc291CiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVj
dG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JG
cmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGlu
c3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVS
ZXNvdXJjZVJlc3BvbnNlSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVzcG9uc2Up
OwogI2VuZGlmCkBAIC02NjksNSArNjY5LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2kKIHsK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBp
ZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFt
ZShmcmFtZSkpCiAgICAgICAgIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JB
Z2VudCwgaWRlbnRpZmllciwgZGF0YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCkBA
IC02NzcsNSArNjc3LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRGaW5pc2hMb2FkaW5nKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG8KIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAg
ICAgICAgIGRpZEZpbmlzaExvYWRpbmdJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBm
aW5pc2hUaW1lKTsKICNlbmRpZgpAQCAtNzA5LDUgKzcwOSw1IEBAIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZy
YW1lLCBjCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFt
ZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFn
ZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZElt
cGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCkBAIC03MTcsNSArNzE3LDUg
QEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHUKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAg
IGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhG
cm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3Rv
ckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGxvYWRFdmVu
dEZpcmVkSW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUsIHVybCk7CiAjZW5kaWYKQEAgLTcyNSw1
ICs3MjUsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0
YWNoZWRGcm9tUGFyZW50KEZyYW1lKiBmcmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3Bl
Y3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGZyYW1l
RGV0YWNoZWRGcm9tUGFyZW50SW1wbChpbnNwZWN0b3JBZ2VudCwgZnJhbWUpOwogI2VuZGlmCkBA
IC03OTMsNSArNzkzLDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKIHsKICNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNw
ZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250
ZXh0KSkKICAgICAgICAgZGlkQ3JlYXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRl
bnRpZmllciwgcmVxdWVzdFVSTCwgZG9jdW1lbnRVUkwpOwogI2VuZGlmCkBAIC04MDEsNSArODAx
LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNv
Y2tldEhhbmRzaGFrZVJlcXVlc3QoU2NyaXB0RXgKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdp
dGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAg
ICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwg
aWRlbnRpZmllciwgcmVxdWVzdCk7CiAjZW5kaWYKQEAgLTgwOSw1ICs4MDksNSBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hh
a2VSZXNwb25zZShTY3JpcAogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3Bl
Y3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9y
Q29udGV4dChjb250ZXh0KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRGb3JDb250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRSZWNlaXZl
V2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVy
LCByZXNwb25zZSk7CiAjZW5kaWYKQEAgLTgxNyw1ICs4MTcsNSBAQCBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQq
IGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNv
bnRleHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudEZvckNvbnRleHQoY29udGV4dCkpCiAgICAgICAgIGRpZENsb3NlV2ViU29ja2V0SW1w
bChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA5NWNlYmNm
Li5hZDc3NzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlQWdlbnQuY3BwCkBAIC0zNSw5ICszNSw5IEBACiAKICNpbmNsdWRlICJCYXNlNjQu
aCIKLSNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9y
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNDYs
OCArNDYsMTEgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNp
bmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZFByb3h5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3Rh
dGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50
aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtODks
NCArOTIsMTEgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5u
ZXR3b3JrKCk7CisgICAgaWYgKGJhY2tnb3VuZEV2ZW50c0Nvb2xsZWN0aW9uRW5hYmxlZCgpKSB7
CisgICAgICAgIC8vIEluc2VydCBNZXNzYWdlIFByb3h5IGluIHJlY2VpdmVyIGNoYWluLgorICAg
ICAgICBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldElu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbCgpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJv
eHktPnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChjbGllbnQpOworICAgICAgICBtX2Zyb250
ZW5kLT5zZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5
LmdldCgpKTsKKyAgICAgICAgbV9ldmVudHNDb2xsZWN0b3ItPnNlbmRDb2xsZWN0ZWRFdmVudHMo
Y2xpZW50KTsKKyAgICB9CiB9CiAKQEAgLTEwNiw1ICsxMTYsNSBAQCB2b2lkIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OnJlc291cmNlQ29udGVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZy
YW1lKiBmcgogewogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIk5v
IGZyYW1lIHRvIGdldCByZXNvdXJjZSBjb250ZW50IGZvciI7IAorICAgICAgICAqZXJyb3JTdHJp
bmcgPSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291cmNlIGNvbnRlbnQgZm9yIjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTI3OSw0ICsyODksOCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVkUmVzb3VyY2UoY29uc3QgQ2FjaGVkUmVzbwog
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQogeworICAg
IGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKFJlc291cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2Vu
dEVuYWJsZWQpKSB7CisgICAgICAgIEVycm9yU3RyaW5nIGVycm9yOworICAgICAgICBkaXNhYmxl
KCZlcnJvcik7CisgICAgfQogICAgIEFTU0VSVCghbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNw
ZWN0b3JSZXNvdXJjZUFnZW50KCkpOwogfQpAQCAtMzE3LDUgKzMzMSw0IEBAIHZvaWQgSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgRG9jdW1lCiAgICAgU3RyaW5nIHR5cGUgPSAiT3RoZXIiOwogICAgIGxvbmcgY2FjaGVk
UmVzb3VyY2VTaXplID0gMDsKLQogICAgIGlmIChsb2FkZXIpIHsKICAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2FjaGVkUmVz
b3VyY2UobG9hZGVyLT5mcmFtZSgpLCByZXNwb25zZS51cmwoKSk7CkBAIC0zNzIsNCArMzg1LDE0
IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6c2V0SW5pdGlhbFhIUkNvbnRlbnQodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zCiB9CiAKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQoKQoreworICAgIG1fZnJvbnRlbmQtPmRvbUNvbnRl
bnRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworfQorCit2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OmxvYWRFdmVudEZpcmVkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5sb2FkRXZlbnRGaXJl
ZChjdXJyZW50VGltZSgpKTsKK30KKwogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBidWlsZE9iamVjdEZvckZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKQEAgLTQ4NCw0ICs1MDcsMTIg
QEAgRnJhbWUqIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmZyYW1lRm9ySWQoY29uc3QgU3RyaW5n
JiBmcmFtZUlkKQogfQogCitib29sIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmJhY2tnb3VuZEV2
ZW50c0Nvb2xsZWN0aW9uRW5hYmxlZCgpCit7CisgICAgLy8gRklYTUUgKGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODY1MikKKyAgICAvLyBBZGQgaGVyZSBjb25kaXRp
b24gdG8gZW5hYmxlIGJhY2tncm91bmQgZXZlbnRzIGNvbGxlY3Rpb24uCisgICAgLy8gTm93IHRo
aXMgZnVuY3Rpb24gZGlzYWJsZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKIHsKQEAgLTQ5MSw2ICs1MjIs
NCBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiB2
b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZSgpCiB7Ci0gICAgaWYgKCFtX2Zyb250
ZW5kKQotICAgICAgICByZXR1cm47CiAgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihSZXNvdXJjZUFn
ZW50U3RhdGU6OnJlc291cmNlQWdlbnRFbmFibGVkLCB0cnVlKTsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvclJlc291cmNlQWdlbnQodGhpcyk7CkBAIC01MzAsNiArNTU5
LDEzIEBAIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluCiAgICAgLCBtX3BhZ2UocGFnZSkKICAgICAs
IG1fc3RhdGUoc3RhdGUpCi0gICAgLCBtX2Zyb250ZW5kKDApCiB7CisgICAgaWYgKGJhY2tnb3Vu
ZEV2ZW50c0Nvb2xsZWN0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIG1fZXZlbnRzQ29sbGVjdG9y
ID0gbmV3IEV2ZW50c0NvbGxlY3RvcigpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJv
eHkgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShtX2V2ZW50c0NvbGxlY3Rvci5nZXQoKSk7
CisgICAgICAgIC8vIENyZWF0ZSBtb2NrIGZyb250ZW5kLCBzbyB3ZSBjYW4gY29sbGVjdCBuZXR3
b3JrIGV2ZW50cy4KKyAgICAgICAgbV9tb2NrRnJvbnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJvbnRl
bmQ6Ok5ldHdvcmsobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICAgICAgbV9m
cm9udGVuZCA9IG1fbW9ja0Zyb250ZW5kLmdldCgpOworICAgICAgICBlbmFibGUoKTsKKyAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudC5oCmluZGV4IDEyZjBmZTMuLjZlODU1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApAQCAtMzUsNCArMzUsNSBAQAogI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Miw4
ICs1MywxMCBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckFycmF5OwogY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZFByb3h5OwogY2xhc3MgSW5z
cGVjdG9yT2JqZWN0OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5n
QWdlbnRzOwogY2xhc3MgS1VSTDsKK2NsYXNzIEV2ZW50c0NvbGxlY3RvcjsKIGNsYXNzIFBhZ2U7
CiBjbGFzcyBSZXNvdXJjZUVycm9yOwpAQCAtOTgsNCArMTAxLDYgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0SW5pdGlhbFNjcmlwdENvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CiAgICAgdm9pZCBzZXRJbml0aWFsWEhSQ29udGVudCh1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKKyAg
ICB2b2lkIGRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CisgICAgdm9pZCBsb2FkRXZlbnRGaXJlZCgp
OwogICAgIHZvaWQgZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciopOwogICAgIHZvaWQgZnJh
bWVEZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqKTsKQEAgLTEwOSw0ICsxMTQsNSBAQCBwdWJsaWM6
CiAKICAgICBGcmFtZSogZnJhbWVGb3JJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpOworICAgIGJv
b2wgYmFja2dvdW5kRXZlbnRzQ29vbGxlY3Rpb25FbmFibGVkKCk7CiAKICAgICAvLyBDYWxsZWQg
ZnJvbSBmcm9udGVuZCAKQEAgLTEyNSw1ICsxMzEsOCBAQCBwcml2YXRlOgogICAgIFBhZ2UqIG1f
cGFnZTsKICAgICBJbnNwZWN0b3JTdGF0ZSogbV9zdGF0ZTsKKyAgICBPd25QdHI8RXZlbnRzQ29s
bGVjdG9yPiBtX2V2ZW50c0NvbGxlY3RvcjsKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6TmV0d29y
ayogbV9mcm9udGVuZDsKKyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ6Ok5ldHdvcms+IG1f
bW9ja0Zyb250ZW5kOworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZFByb3h5PiBtX2luc3Bl
Y3RvckZyb250ZW5kUHJveHk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCBhNWE1M2NiLi41ZWU4MThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5h
Z2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01h
bmFnZXIuanMKQEAgLTE1MSw0ICsxNTEsMTYgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRj
aGVyLnByb3RvdHlwZSA9IHsKICAgICB9LAogCisgICAgZG9tQ29udGVudEV2ZW50RmlyZWQ6IGZ1
bmN0aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3
b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJj
ZURPTUNvbnRlbnRUaW1lID0gdGltZTsKKyAgICB9LAorCisgICAgbG9hZEV2ZW50RmlyZWQ6IGZ1
bmN0aW9uKHRpbWUpCisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3
b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJj
ZUxvYWRUaW1lID0gdGltZTsKKyAgICB9LAorCiAgICAgZGF0YVJlY2VpdmVkOiBmdW5jdGlvbihp
ZGVudGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCkKICAgICB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDUx
MGY5MzEuLmRkY2ZhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC05OTAsNiArOTkwLDQgQEAgV2ViSW5zcGVjdG9yLmRvbUNvbnRl
bnRFdmVudEZpcmVkID0gZnVuY3Rpb24odGltZSkKIHsKICAgICB0aGlzLnBhbmVscy5hdWRpdHMu
bWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwotICAgIGlmICh0aGlzLnBhbmVscy5u
ZXR3b3JrKQotICAgICAgICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRl
bnRUaW1lID0gdGltZTsKICAgICB0aGlzLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGlt
ZTsKIH0KQEAgLTk5OCw1ICs5OTYsNCBAQCBXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQgPSBm
dW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VMb2Fk
VGltZSA9IHRpbWU7Ci0gICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VMb2FkVGlt
ZSA9IHRpbWU7CiAgICAgdGhpcy5wYW5lbHMucmVzb3VyY2VzLmxvYWRFdmVudEZpcmVkKCk7CiAg
ICAgdGhpcy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7Cg==
</data>
<flag name="review"
          id="82489"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89778</attachid>
            <date>2011-04-15 06:45:10 -0700</date>
            <delta_ts>2011-04-15 07:07:10 -0700</delta_ts>
            <desc>After 3th review. Revert one remove change</desc>
            <filename>review</filename>
            <type>text/plain</type>
            <size>36810</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmJkYTJlNy4uYTk1NmFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4OSw0ICs4ODksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIu
Y3BwCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKICAgICBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAg
LTkwOCw0ICs5MDksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlZTYxZWEuLmRmZTE1MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMiArMSw2OSBAQAorMjAxMS0wNC0xNCAgU2VyZ2V5IFZvcm9ieWV2
ICA8c2VyZ2V5dm9yb2J5ZXZAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIGV2ZW50cyBkb24n
dCBwcmVzZXJ2ZXMsCisgICAgICAgIHdoZW4gaW5zcGVjdG9yIGZyb250ZW5kIGNsb3NlZCBhbmQg
b3BlbiBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgwNjQKKworICAgICAgICBBZGRlZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5IGFuZCBFdmVu
dHNDb2xsZWN0b3IuCisgICAgICAgIFRoZXkgYWxsb3cgY2FwdHVyZWQgbWVzc2FnZXMgZnJvbSBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50CisgICAgICAgIHRvIGZyb250ZW5kIChvciBtb2NrRnJvbnRl
bmQgaWYgZnJvbnRlbmQgZGlzYWJsZWQpIGFuZAorICAgICAgICBwdXNoIGNvbGxlY3RlZCBkYXRh
IHdoZW4gZnJvbnRlbmQgcmVjb25uZWN0LgorICAgICAgICBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMg
ZGlzYWJsZWQgYnkgZGVmYXVsdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpFdmVudHNDb2xsZWN0b3I6OkV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxl
Y3Rvcjo6c2VuZENvbGxlY3RlZEV2ZW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL0V2ZW50c0Nv
bGxlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6fkV2
ZW50c0NvbGxlY3Rvcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpJbnNwZWN0b3JGcm9udGVuZFBy
b3h5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kUHJveHk6On5JbnNwZWN0b3JGcm9udGVuZFByb3h5KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2
ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxT
ZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRMb2FkZWRF
dmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
Y2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVu
dEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmxvYWRF
dmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVu
YWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNw
YXRjaGVyLnByb3RvdHlwZS5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLmxvYWRFdmVudEZpcmVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IubG9hZEV2
ZW50RmlyZWQpOgorCiAyMDExLTA0LTE0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9t
aXVtLm9yZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmM2Yzc1Mi4uYjc2
ZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xOTIyLDQgKzE5MjIsNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hs
aWdodGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKQEAgLTE5NjIsNCArMTk2NCw2IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94
eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMGE3OWQwLi41ZTEwZmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0zMjEyLDQgKzMyMTIsNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdo
dGVyLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdC5oJywKQEAgLTMyNDYsNCArMzI0OCw2IEBACiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUHJveHkuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTVhOWU2MS4uOGNkY2I4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTgxMSw0ICs4MTEsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuY3BwIFwKICAgICBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBcCisg
ICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwKQEAg
LTgyOSw0ICs4MzAsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCkBAIC0xNzQ1LDQgKzE3NDcsNSBAQCBIRUFERVJTICs9
IFwKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBcCiAgICAgaW5zcGVjdG9yL0RPTU5v
ZGVIaWdobGlnaHRlci5oIFwKKyAgICBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggXAogICAg
IGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRIb3N0LmggXApAQCAtMTc2MSw3ICsxNzY0LDkgQEAgSEVBREVSUyArPSBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlLmggXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUHJveHkuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmYjljOGFlLi40ODA3M2ExIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjY2MDMs
NCArNjY2MDMsMTIgQEAKIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxpbnNwZWN0b3JcRXZlbnRzQ29sbGVjdG9yLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEV2ZW50c0NvbGxlY3Rvci5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCIKIAkJCQk+CkBAIC02Njc3MSw0ICs2Njc3OSwxMiBA
QAogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU1OGY0OWUuLmMw
ZGJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTY0Nyw0ICs2NDcsOCBAQAogCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyNzc3NzYwMTM0NURFQTkwMDhFQTQ1NSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDIyNzc3NzVGMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjQ4MTM0
QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwICovOyB9OworCQkyMjc3N0I0QjEz
NEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZl
bnRzQ29sbGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3
NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwICovOyB9
OworCQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEQx
MzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyMjg4NUU2NDEzMDFBRTRDMDA1
MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyog
SlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAw
MDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFw
cGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNzA4NSw0ICs3MDg5LDggQEAKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1
IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Mjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdC
NEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01J
bXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjI2LDQgKzEzMjM0LDYgQEAKIAkJCQk0RjE0NDIy
NjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCAqLywKIAkJCQk0RjE0
NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmggKi8sCisJCQkJMjI3
NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8sCisJCQkJMjI3
NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovLAogCQkJCUYzNjQ0
QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgKi8sCiAJCQkJRjM2NDRB
RkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmggKi8sCkBAIC0xMzI2OSw0ICsx
MzI3OSw2IEBACiAJCQkJN0EwRTc3MEMxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250
ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JG
cm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNw
ZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJCQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUg
LyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICovLAogCQkJCTIwRDYyOTI0MTI1MzY5MEIwMDA4
MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovLAogCQkJCTIwRDYyOTI1MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLywKQEAgLTIwOTg1
LDQgKzIwOTk3LDUgQEAKIAkJCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTBGRUYzNzJCMTdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50
U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTJFREI3QjBCMzA4QTc4MDAy
NzA0QjYgLyogRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEOEYzMEQyQTEx
RTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxMzM2LDQg
KzIxMzQ5LDUgQEAKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMwMEE4ODAw
QTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjI3
NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAv
KiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4MzQsNCArMjM4NDgs
NSBAQAogCQkJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjI3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMkVEQkVBMEIzMDhFMEIwMDI3MDRC
NiAvKiBFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRDhGMjBEMkExMUUw
MDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0MTQ0LDQg
KzI0MTU5LDUgQEAKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4
MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTIyNzc3QjRFMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAw
MUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMWMzNjVjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIK
KworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKCkKKyAgICA6IG1fdG90YWxM
ZW5ndGgoMCkKK3sKK30KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3RvdGFsTGVuZ3RoICs9IG1lc3NhZ2UubGVuZ3RoKCk7
CisgICAgbV9ldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAgIHdoaWxlIChtX3RvdGFsTGVuZ3Ro
ID4gbWF4Q2FwYWNpdHkpIHsKKyAgICAgICAgbV90b3RhbExlbmd0aCAtPSBtX2V2ZW50c1swXS5s
ZW5ndGgoKTsKKyAgICAgICAgbV9ldmVudHMucmVtb3ZlKDApOworICAgIH0KK30KKwordm9pZCBF
dmVudHNDb2xsZWN0b3I6OnNlbmRDb2xsZWN0ZWRFdmVudHMoSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiByZWNlaXZlcikKK3sKKyAgICBmb3IgKFZlY3RvcjxTdHJpbmc+OjppdGVyYXRvciBpdCA9
IG1fZXZlbnRzLmJlZ2luKCk7IGl0ICE9IG1fZXZlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICBy
ZWNlaXZlci0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKCppdCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDUzZTEwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9FdmVudHNDb2xsZWN0b3IuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEV2ZW50c0NvbGxlY3Rvcl9oCisjZGVmaW5lIEV2ZW50c0NvbGxlY3Rvcl9oCisKKyNpZiBFTkFC
TEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsOworCitjbGFzcyBFdmVudHNDb2xsZWN0b3IgeworcHVibGljOgorICAgIEV2ZW50
c0NvbGxlY3RvcigpOworICAgIH5FdmVudHNDb2xsZWN0b3IoKSB7IH0KKyAgICB2b2lkIGFkZEV2
ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBzZW5kQ29sbGVjdGVkRXZlbnRz
KEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IG1heENhcGFjaXR5ID0gMTAyNCoxMDI0OyAvLyAxIE1iCisgICAgc2l6ZV90IG1fdG90
YWxMZW5ndGg7CisgICAgVmVjdG9yPFN0cmluZz4gbV9ldmVudHM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChFdmVudHNDb2xsZWN0b3JfaCkKKwor
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KaW5kZXggMWZjZDQ1Zi4uMGQ5MzM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgpAQCAtNDMyLDQgKzQzMiwxNiBAQAogICAgICAgICAiZXZlbnRzIjog
WwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImRvbUNvbnRlbnRFdmVu
dEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIsCiAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFy
ZW50LiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUyMTg4ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
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
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3Bl
Y3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9y
ZWNlaXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK0luc3BlY3Rv
ckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBj
b2xsZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbmV4dENoYW5uZWwpCit7CisgICAg
bV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNlaXZlciA9IG5leHRDaGFubmVsOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAgIG1fcmVjZWl2
ZXIgPSByZWNlaXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVu
dHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9jb2xsZWN0
b3IgPSBjb2xsZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX2NvbGxlY3Rv
ci0+YWRkRXZlbnQobWVzc2FnZSk7CisgICAgaWYgKG1fcmVjZWl2ZXIpCisgICAgICAgIHJldHVy
biBtX3JlY2VpdmVyLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZSk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU5YWY2Nwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbnNwZWN0
b3JGcm9udGVuZFByb3h5X2gKKyNkZWZpbmUgSW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oCisKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBFdmVudHNDb2xsZWN0b3I7CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kUHJveHkgOiBw
dWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3RvciopOworICAgIEluc3BlY3RvckZy
b250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBu
ZXh0Q2hhbm5lbCk7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yRnJvbnRlbmRQcm94eSgpIHsgfQor
CisgICAgdm9pZCBzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwoSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKik7CisgICAgdm9pZCBzZXRFdmVudHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKik7
CisgICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOworCitwcml2YXRlOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbV9yZWNl
aXZlcjsKKyAgICBFdmVudHNDb2xsZWN0b3IqIG1fY29sbGVjdG9yOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKKworI2VuZGlmIC8v
ICFkZWZpbmVkKEluc3BlY3RvckZyb250ZW5kUHJveHlfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZDJiNzNm
NC4uYWIxNzE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTUxMCw0ICs1MTAsNyBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKEluc3BlY3Rv
ckFnZW50KiBpbgogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrRE9NQ29udGVudEV2ZW50
KCk7CiAKKyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGlu
c3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdl
bnQoKSkKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKwog
ICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5p
bnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdl
QWdlbnQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CkBAIC01MjgsNCArNTMxLDcgQEAgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkSW1wbChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVu
dCgpOwogCisgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBp
bnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KCkpCisgICAgICAgIHJlc291cmNlQWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7CisKICAgICBp
ZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1
bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50
LT5sb2FkRXZlbnRGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDc3YzQ2NGUuLmVkZjY5OGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgK
QEAgLTYxMyw1ICs2MTMsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbgogewogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGluc3BlY3RvckFnZW50
V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaWMg
PSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgd2lsbFNlbmRSZXF1ZXN0
SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
ICNlbmRpZgpAQCAtNjUyLDUgKzY1Miw1IEBAIGlubGluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjZWl2ZVJlc291CiB7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUo
ZnJhbWUpKQogICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChp
bnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogI2VuZGlmCkBAIC02NjksNSAr
NjY5LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
Q29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2kKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGlu
c3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgZGF0
YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCkBAIC02NzcsNSArNjc3LDUgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKEZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgbG8KIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVu
ZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGRpZEZpbmlzaExvYWRp
bmdJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKICNlbmRpZgpA
QCAtNzA5LDUgKzcwOSw1IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQog
ICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZy
YW1lLCB1cmwpOwogI2VuZGlmCkBAIC03MTcsNSArNzE3LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHUKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCog
aW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1l
KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGxvYWRFdmVudEZpcmVkSW1wbChpbnNwZWN0b3JB
Z2VudCwgZnJhbWUsIHVybCk7CiAjZW5kaWYKQEAgLTcyNSw1ICs3MjUsNSBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1l
KiBmcmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZy
YW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9y
QWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1w
bChpbnNwZWN0b3JBZ2VudCwgZnJhbWUpOwogI2VuZGlmCkBAIC03OTMsNSArNzkzLDUgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCoKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVu
ZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlkQ3Jl
YXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdFVSTCwg
ZG9jdW1lbnRVUkwpOwogI2VuZGlmCkBAIC04MDEsNSArODAxLDUgQEAgaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qo
U2NyaXB0RXgKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQo
Y29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3Bl
Y3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgd2lsbFNlbmRXZWJTb2NrZXRI
YW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdCk7
CiAjZW5kaWYKQEAgLTgwOSw1ICs4MDksNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShTY3JpcAogewog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yQ29udGV4dChjb250ZXh0KSkKKyAg
ICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JD
b250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVz
cG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAjZW5kaWYK
QEAgLTgxNyw1ICs4MTcsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29u
dGV4dCkpCiAgICAgICAgIGRpZENsb3NlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRl
bnRpZmllcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA5NWNlYmNmLi4xMTc0YzBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBA
IC0zNSw5ICszNSw5IEBACiAKICNpbmNsdWRlICJCYXNlNjQuaCIKLSNpbmNsdWRlICJNZW1vcnlD
YWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNDYsOCArNDYsMTEgQEAKICNpbmNsdWRl
ICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVk
ZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtODksNCArOTIsMTEgQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5uZXR3b3JrKCk7CisgICAgaWYgKGJh
Y2tnb3VuZEV2ZW50c0Nvb2xsZWN0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIC8vIEluc2VydCBN
ZXNzYWdlIFByb3h5IGluIHJlY2VpdmVyIGNoYWluLgorICAgICAgICBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCgpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHktPnNldEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbChjbGllbnQpOworICAgICAgICBtX2Zyb250ZW5kLT5zZXRJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICAgICAgbV9l
dmVudHNDb2xsZWN0b3ItPnNlbmRDb2xsZWN0ZWRFdmVudHMoY2xpZW50KTsKKyAgICB9CiB9CiAK
QEAgLTEwNiw1ICsxMTYsNSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlc291cmNl
Q29udGVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBmcgogewogICAgIGlmICgh
ZnJhbWUpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIGZyYW1lIHRvIGdldCByZXNvdXJj
ZSBjb250ZW50IGZvciI7IAorICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gZnJhbWUgdG8gZ2V0
IHJlc291cmNlIGNvbnRlbnQgZm9yIjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3OSw0
ICsyODksOCBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0
Rm9yQ2FjaGVkUmVzb3VyY2UoY29uc3QgQ2FjaGVkUmVzbwogSW5zcGVjdG9yUmVzb3VyY2VBZ2Vu
dDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQoKQogeworICAgIGlmIChtX3N0YXRlLT5nZXRCb29s
ZWFuKFJlc291cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVuYWJsZWQpKSB7CisgICAgICAg
IEVycm9yU3RyaW5nIGVycm9yOworICAgICAgICBkaXNhYmxlKCZlcnJvcik7CisgICAgfQogICAg
IEFTU0VSVCghbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkp
OwogfQpAQCAtMzE3LDUgKzMzMSw0IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lCiAgICAgU3Ry
aW5nIHR5cGUgPSAiT3RoZXIiOwogICAgIGxvbmcgY2FjaGVkUmVzb3VyY2VTaXplID0gMDsKLQog
ICAgIGlmIChsb2FkZXIpIHsKICAgICAgICAgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNl
ID0gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2FjaGVkUmVzb3VyY2UobG9hZGVyLT5mcmFtZSgp
LCByZXNwb25zZS51cmwoKSk7CkBAIC0zNzIsNCArMzg1LDE0IEBAIHZvaWQgSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudDo6c2V0SW5pdGlhbFhIUkNvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zCiB9CiAKK3ZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50
RmlyZWQoKQoreworICAgIG1fZnJvbnRlbmQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKGN1cnJlbnRU
aW1lKCkpOworfQorCit2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmxvYWRFdmVudEZpcmVk
KCkKK3sKKyAgICBtX2Zyb250ZW5kLT5sb2FkRXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30K
Kwogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckZyYW1l
KEZyYW1lKiBmcmFtZSkKIHsKQEAgLTQ4NCw0ICs1MDcsMTIgQEAgRnJhbWUqIEluc3BlY3RvclJl
c291cmNlQWdlbnQ6OmZyYW1lRm9ySWQoY29uc3QgU3RyaW5nJiBmcmFtZUlkKQogfQogCitib29s
IEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmJhY2tnb3VuZEV2ZW50c0Nvb2xsZWN0aW9uRW5hYmxl
ZCgpCit7CisgICAgLy8gRklYTUUgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01ODY1MikKKyAgICAvLyBBZGQgaGVyZSBjb25kaXRpb24gdG8gZW5hYmxlIGJhY2tncm91
bmQgZXZlbnRzIGNvbGxlY3Rpb24uCisgICAgLy8gTm93IHRoaXMgZnVuY3Rpb24gZGlzYWJsZS4K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5h
YmxlKEVycm9yU3RyaW5nKikKIHsKQEAgLTUzMCw2ICs1NjEsMTQgQEAgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW4KICAgICAsIG1fcGFnZShwYWdlKQogICAgICwgbV9zdGF0ZShzdGF0ZSkKLSAgICAs
IG1fZnJvbnRlbmQoMCkKIHsKKyAgICBpZiAoYmFja2dvdW5kRXZlbnRzQ29vbGxlY3Rpb25FbmFi
bGVkKCkpIHsKKyAgICAgICAgbV9ldmVudHNDb2xsZWN0b3IgPSBuZXcgRXZlbnRzQ29sbGVjdG9y
KCk7CisgICAgICAgIG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eSA9IG5ldyBJbnNwZWN0b3JGcm9u
dGVuZFByb3h5KG1fZXZlbnRzQ29sbGVjdG9yLmdldCgpKTsKKyAgICAgICAgLy8gQ3JlYXRlIG1v
Y2sgZnJvbnRlbmQsIHNvIHdlIGNhbiBjb2xsZWN0IG5ldHdvcmsgZXZlbnRzLgorICAgICAgICBt
X21vY2tGcm9udGVuZCA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZDo6TmV0d29yayhtX2luc3BlY3Rv
ckZyb250ZW5kUHJveHkuZ2V0KCkpOworICAgICAgICBtX2Zyb250ZW5kID0gbV9tb2NrRnJvbnRl
bmQuZ2V0KCk7CisgICAgICAgIGVuYWJsZSgpOworICAgIH0gZWxzZQorICAgICAgICBtX2Zyb250
ZW5kID0gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JS
ZXNvdXJjZUFnZW50LmgKaW5kZXggMTJmMGZlMy4uNmU4NTUwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0zNSw0ICszNSw1
IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
QEAgLTUyLDggKzUzLDEwIEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSW5zcGVjdG9yQXJyYXk7CiBj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kUHJveHk7CiBj
bGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3Ry
dW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBLVVJMOworY2xhc3MgRXZlbnRzQ29sbGVjdG9yOwogY2xh
c3MgUGFnZTsKIGNsYXNzIFJlc291cmNlRXJyb3I7CkBAIC05OCw0ICsxMDEsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRJbml0aWFsU2NyaXB0Q29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKICAgICB2b2lkIHNldEluaXRpYWxYSFJD
b250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJp
bmcpOworICAgIHZvaWQgZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKyAgICB2b2lkIGxvYWRFdmVu
dEZpcmVkKCk7CiAgICAgdm9pZCBkaWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKik7CiAgICAg
dm9pZCBmcmFtZURldGFjaGVkRnJvbVBhcmVudChGcmFtZSopOwpAQCAtMTA5LDQgKzExNCw1IEBA
IHB1YmxpYzoKIAogICAgIEZyYW1lKiBmcmFtZUZvcklkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7
CisgICAgYm9vbCBiYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbkVuYWJsZWQoKTsKIAogICAgIC8v
IENhbGxlZCBmcm9tIGZyb250ZW5kIApAQCAtMTI1LDUgKzEzMSw4IEBAIHByaXZhdGU6CiAgICAg
UGFnZSogbV9wYWdlOwogICAgIEluc3BlY3RvclN0YXRlKiBtX3N0YXRlOworICAgIE93blB0cjxF
dmVudHNDb2xsZWN0b3I+IG1fZXZlbnRzQ29sbGVjdG9yOwogICAgIEluc3BlY3RvckZyb250ZW5k
OjpOZXR3b3JrKiBtX2Zyb250ZW5kOworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZDo6TmV0
d29yaz4gbV9tb2NrRnJvbnRlbmQ7CisgICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kUHJveHk+
IG1faW5zcGVjdG9yRnJvbnRlbmRQcm94eTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCmluZGV4IGE1YTUzY2IuLjVl
ZTgxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0
d29ya01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9O
ZXR3b3JrTWFuYWdlci5qcwpAQCAtMTUxLDQgKzE1MSwxNiBAQCBXZWJJbnNwZWN0b3IuTmV0d29y
a0Rpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgIH0sCiAKKyAgICBkb21Db250ZW50RXZlbnRG
aXJlZDogZnVuY3Rpb24odGltZSkKKyAgICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFu
ZWxzLm5ldHdvcmspCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFp
blJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOworICAgIH0sCisKKyAgICBsb2FkRXZlbnRG
aXJlZDogZnVuY3Rpb24odGltZSkKKyAgICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFu
ZWxzLm5ldHdvcmspCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFp
blJlc291cmNlTG9hZFRpbWUgPSB0aW1lOworICAgIH0sCisKICAgICBkYXRhUmVjZWl2ZWQ6IGZ1
bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUsIGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKQogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
aW5kZXggNTEwZjkzMS4uZGRjZmFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTk5MCw2ICs5OTAsNCBAQCBXZWJJbnNwZWN0b3Iu
ZG9tQ29udGVudEV2ZW50RmlyZWQgPSBmdW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxz
LmF1ZGl0cy5tYWluUmVzb3VyY2VET01Db250ZW50VGltZSA9IHRpbWU7Ci0gICAgaWYgKHRoaXMu
cGFuZWxzLm5ldHdvcmspCi0gICAgICAgIHRoaXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNl
RE9NQ29udGVudFRpbWUgPSB0aW1lOwogICAgIHRoaXMubWFpblJlc291cmNlRE9NQ29udGVudFRp
bWUgPSB0aW1lOwogfQpAQCAtOTk4LDUgKzk5Niw0IEBAIFdlYkluc3BlY3Rvci5sb2FkRXZlbnRG
aXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiB7CiAgICAgdGhpcy5wYW5lbHMuYXVkaXRzLm1haW5SZXNv
dXJjZUxvYWRUaW1lID0gdGltZTsKLSAgICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJj
ZUxvYWRUaW1lID0gdGltZTsKICAgICB0aGlzLnBhbmVscy5yZXNvdXJjZXMubG9hZEV2ZW50Rmly
ZWQoKTsKICAgICB0aGlzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89783</attachid>
            <date>2011-04-15 07:07:10 -0700</date>
            <delta_ts>2011-04-15 07:31:05 -0700</delta_ts>
            <desc>Minor fixes</desc>
            <filename>review</filename>
            <type>text/plain</type>
            <size>36733</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmJkYTJlNy4uYTk1NmFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4OSw0ICs4ODksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIu
Y3BwCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKICAgICBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAg
LTkwOCw0ICs5MDksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlZTYxZWEuLmRmZTE1MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMiArMSw2OSBAQAorMjAxMS0wNC0xNCAgU2VyZ2V5IFZvcm9ieWV2
ICA8c2VyZ2V5dm9yb2J5ZXZAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIGV2ZW50cyBkb24n
dCBwcmVzZXJ2ZXMsCisgICAgICAgIHdoZW4gaW5zcGVjdG9yIGZyb250ZW5kIGNsb3NlZCBhbmQg
b3BlbiBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgwNjQKKworICAgICAgICBBZGRlZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5IGFuZCBFdmVu
dHNDb2xsZWN0b3IuCisgICAgICAgIFRoZXkgYWxsb3cgY2FwdHVyZWQgbWVzc2FnZXMgZnJvbSBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50CisgICAgICAgIHRvIGZyb250ZW5kIChvciBtb2NrRnJvbnRl
bmQgaWYgZnJvbnRlbmQgZGlzYWJsZWQpIGFuZAorICAgICAgICBwdXNoIGNvbGxlY3RlZCBkYXRh
IHdoZW4gZnJvbnRlbmQgcmVjb25uZWN0LgorICAgICAgICBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMg
ZGlzYWJsZWQgYnkgZGVmYXVsdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpFdmVudHNDb2xsZWN0b3I6OkV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxl
Y3Rvcjo6c2VuZENvbGxlY3RlZEV2ZW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL0V2ZW50c0Nv
bGxlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6fkV2
ZW50c0NvbGxlY3Rvcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpJbnNwZWN0b3JGcm9udGVuZFBy
b3h5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kUHJveHk6On5JbnNwZWN0b3JGcm9udGVuZFByb3h5KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2
ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxT
ZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRMb2FkZWRF
dmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
Y2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVu
dEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmxvYWRF
dmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVu
YWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNw
YXRjaGVyLnByb3RvdHlwZS5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLmxvYWRFdmVudEZpcmVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IubG9hZEV2
ZW50RmlyZWQpOgorCiAyMDExLTA0LTE0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9t
aXVtLm9yZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmM2Yzc1Mi4uYjc2
ZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xOTIyLDQgKzE5MjIsNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hs
aWdodGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKQEAgLTE5NjIsNCArMTk2NCw2IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94
eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMGE3OWQwLi41ZTEwZmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0zMjEyLDQgKzMyMTIsNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdo
dGVyLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdC5oJywKQEAgLTMyNDYsNCArMzI0OCw2IEBACiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUHJveHkuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTVhOWU2MS4uOGNkY2I4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTgxMSw0ICs4MTEsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuY3BwIFwKICAgICBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBcCisg
ICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwKQEAg
LTgyOSw0ICs4MzAsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCkBAIC0xNzQ1LDQgKzE3NDcsNSBAQCBIRUFERVJTICs9
IFwKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBcCiAgICAgaW5zcGVjdG9yL0RPTU5v
ZGVIaWdobGlnaHRlci5oIFwKKyAgICBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggXAogICAg
IGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRIb3N0LmggXApAQCAtMTc2MSw3ICsxNzY0LDkgQEAgSEVBREVSUyArPSBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlLmggXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUHJveHkuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmYjljOGFlLi40ODA3M2ExIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjY2MDMs
NCArNjY2MDMsMTIgQEAKIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxpbnNwZWN0b3JcRXZlbnRzQ29sbGVjdG9yLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEV2ZW50c0NvbGxlY3Rvci5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCIKIAkJCQk+CkBAIC02Njc3MSw0ICs2Njc3OSwxMiBA
QAogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU1OGY0OWUuLmMw
ZGJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTY0Nyw0ICs2NDcsOCBAQAogCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyNzc3NzYwMTM0NURFQTkwMDhFQTQ1NSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDIyNzc3NzVGMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjQ4MTM0
QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwICovOyB9OworCQkyMjc3N0I0QjEz
NEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZl
bnRzQ29sbGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3
NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwICovOyB9
OworCQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEQx
MzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyMjg4NUU2NDEzMDFBRTRDMDA1
MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyog
SlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAw
MDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFw
cGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNzA4NSw0ICs3MDg5LDggQEAKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1
IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Mjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdC
NEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01J
bXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjI2LDQgKzEzMjM0LDYgQEAKIAkJCQk0RjE0NDIy
NjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCAqLywKIAkJCQk0RjE0
NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmggKi8sCisJCQkJMjI3
NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8sCisJCQkJMjI3
NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovLAogCQkJCUYzNjQ0
QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgKi8sCiAJCQkJRjM2NDRB
RkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmggKi8sCkBAIC0xMzI2OSw0ICsx
MzI3OSw2IEBACiAJCQkJN0EwRTc3MEMxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250
ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JG
cm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNw
ZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJCQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUg
LyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICovLAogCQkJCTIwRDYyOTI0MTI1MzY5MEIwMDA4
MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovLAogCQkJCTIwRDYyOTI1MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLywKQEAgLTIwOTg1
LDQgKzIwOTk3LDUgQEAKIAkJCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTBGRUYzNzJCMTdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50
U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTJFREI3QjBCMzA4QTc4MDAy
NzA0QjYgLyogRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEOEYzMEQyQTEx
RTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxMzM2LDQg
KzIxMzQ5LDUgQEAKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMwMEE4ODAw
QTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjI3
NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAv
KiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4MzQsNCArMjM4NDgs
NSBAQAogCQkJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjI3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMkVEQkVBMEIzMDhFMEIwMDI3MDRC
NiAvKiBFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRDhGMjBEMkExMUUw
MDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0MTQ0LDQg
KzI0MTU5LDUgQEAKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4
MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTIyNzc3QjRFMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAw
MUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMWMzNjVjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIK
KworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKCkKKyAgICA6IG1fdG90YWxM
ZW5ndGgoMCkKK3sKK30KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3RvdGFsTGVuZ3RoICs9IG1lc3NhZ2UubGVuZ3RoKCk7
CisgICAgbV9ldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAgIHdoaWxlIChtX3RvdGFsTGVuZ3Ro
ID4gbWF4Q2FwYWNpdHkpIHsKKyAgICAgICAgbV90b3RhbExlbmd0aCAtPSBtX2V2ZW50c1swXS5s
ZW5ndGgoKTsKKyAgICAgICAgbV9ldmVudHMucmVtb3ZlKDApOworICAgIH0KK30KKwordm9pZCBF
dmVudHNDb2xsZWN0b3I6OnNlbmRDb2xsZWN0ZWRFdmVudHMoSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiByZWNlaXZlcikKK3sKKyAgICBmb3IgKFZlY3RvcjxTdHJpbmc+OjppdGVyYXRvciBpdCA9
IG1fZXZlbnRzLmJlZ2luKCk7IGl0ICE9IG1fZXZlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICBy
ZWNlaXZlci0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKCppdCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDUzZTEwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9FdmVudHNDb2xsZWN0b3IuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEV2ZW50c0NvbGxlY3Rvcl9oCisjZGVmaW5lIEV2ZW50c0NvbGxlY3Rvcl9oCisKKyNpZiBFTkFC
TEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsOworCitjbGFzcyBFdmVudHNDb2xsZWN0b3IgeworcHVibGljOgorICAgIEV2ZW50
c0NvbGxlY3RvcigpOworICAgIH5FdmVudHNDb2xsZWN0b3IoKSB7IH0KKyAgICB2b2lkIGFkZEV2
ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBzZW5kQ29sbGVjdGVkRXZlbnRz
KEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IG1heENhcGFjaXR5ID0gMTAyNCoxMDI0OyAvLyAxIE1iCisgICAgc2l6ZV90IG1fdG90
YWxMZW5ndGg7CisgICAgVmVjdG9yPFN0cmluZz4gbV9ldmVudHM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChFdmVudHNDb2xsZWN0b3JfaCkKKwor
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KaW5kZXggMWZjZDQ1Zi4uMGQ5MzM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgpAQCAtNDMyLDQgKzQzMiwxNiBAQAogICAgICAgICAiZXZlbnRzIjog
WwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImRvbUNvbnRlbnRFdmVu
dEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIsCiAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFy
ZW50LiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUyMTg4ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
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
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3Bl
Y3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9y
ZWNlaXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK0luc3BlY3Rv
ckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBj
b2xsZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbmV4dENoYW5uZWwpCit7CisgICAg
bV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNlaXZlciA9IG5leHRDaGFubmVsOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAgIG1fcmVjZWl2
ZXIgPSByZWNlaXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVu
dHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9jb2xsZWN0
b3IgPSBjb2xsZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX2NvbGxlY3Rv
ci0+YWRkRXZlbnQobWVzc2FnZSk7CisgICAgaWYgKG1fcmVjZWl2ZXIpCisgICAgICAgIHJldHVy
biBtX3JlY2VpdmVyLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZSk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU5YWY2Nwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbnNwZWN0
b3JGcm9udGVuZFByb3h5X2gKKyNkZWZpbmUgSW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oCisKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBFdmVudHNDb2xsZWN0b3I7CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kUHJveHkgOiBw
dWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3RvciopOworICAgIEluc3BlY3RvckZy
b250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBu
ZXh0Q2hhbm5lbCk7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yRnJvbnRlbmRQcm94eSgpIHsgfQor
CisgICAgdm9pZCBzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwoSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKik7CisgICAgdm9pZCBzZXRFdmVudHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKik7
CisgICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOworCitwcml2YXRlOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbV9yZWNl
aXZlcjsKKyAgICBFdmVudHNDb2xsZWN0b3IqIG1fY29sbGVjdG9yOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKKworI2VuZGlmIC8v
ICFkZWZpbmVkKEluc3BlY3RvckZyb250ZW5kUHJveHlfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZDJiNzNm
NC4uYWIxNzE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTUxMCw0ICs1MTAsNyBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKEluc3BlY3Rv
ckFnZW50KiBpbgogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrRE9NQ29udGVudEV2ZW50
KCk7CiAKKyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGlu
c3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdl
bnQoKSkKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKwog
ICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5p
bnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdl
QWdlbnQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CkBAIC01MjgsNCArNTMxLDcgQEAgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkSW1wbChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVu
dCgpOwogCisgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBp
bnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KCkpCisgICAgICAgIHJlc291cmNlQWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7CisKICAgICBp
ZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1
bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50
LT5sb2FkRXZlbnRGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDc3YzQ2NGUuLmVkZjY5OGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgK
QEAgLTYxMyw1ICs2MTMsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbgogewogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGluc3BlY3RvckFnZW50
V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaWMg
PSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgd2lsbFNlbmRSZXF1ZXN0
SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
ICNlbmRpZgpAQCAtNjUyLDUgKzY1Miw1IEBAIGlubGluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjZWl2ZVJlc291CiB7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUo
ZnJhbWUpKQogICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChp
bnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogI2VuZGlmCkBAIC02NjksNSAr
NjY5LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
Q29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2kKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGlu
c3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgZGF0
YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCkBAIC02NzcsNSArNjc3LDUgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKEZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgbG8KIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVu
ZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGRpZEZpbmlzaExvYWRp
bmdJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKICNlbmRpZgpA
QCAtNzA5LDUgKzcwOSw1IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQog
ICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZy
YW1lLCB1cmwpOwogI2VuZGlmCkBAIC03MTcsNSArNzE3LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHUKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCog
aW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1l
KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGxvYWRFdmVudEZpcmVkSW1wbChpbnNwZWN0b3JB
Z2VudCwgZnJhbWUsIHVybCk7CiAjZW5kaWYKQEAgLTcyNSw1ICs3MjUsNSBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1l
KiBmcmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZy
YW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9y
QWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1w
bChpbnNwZWN0b3JBZ2VudCwgZnJhbWUpOwogI2VuZGlmCkBAIC03OTMsNSArNzkzLDUgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCoKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVu
ZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlkQ3Jl
YXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdFVSTCwg
ZG9jdW1lbnRVUkwpOwogI2VuZGlmCkBAIC04MDEsNSArODAxLDUgQEAgaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qo
U2NyaXB0RXgKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQo
Y29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3Bl
Y3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgd2lsbFNlbmRXZWJTb2NrZXRI
YW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdCk7
CiAjZW5kaWYKQEAgLTgwOSw1ICs4MDksNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShTY3JpcAogewog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yQ29udGV4dChjb250ZXh0KSkKKyAg
ICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JD
b250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVz
cG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAjZW5kaWYK
QEAgLTgxNyw1ICs4MTcsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29u
dGV4dCkpCiAgICAgICAgIGRpZENsb3NlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRl
bnRpZmllcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA5NWNlYmNmLi4zYTg0N2ZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBA
IC0zNSw5ICszNSw5IEBACiAKICNpbmNsdWRlICJCYXNlNjQuaCIKLSNpbmNsdWRlICJNZW1vcnlD
YWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNDYsOCArNDYsMTEgQEAKICNpbmNsdWRl
ICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVk
ZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtODksOSArOTIsMTkgQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5uZXR3b3JrKCk7CisgICAgaWYgKGJh
Y2tncm91bmRFdmVudHNDb2xsZWN0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIC8vIEluc2VydCBN
ZXNzYWdlIFByb3h5IGluIHJlY2VpdmVyIGNoYWluLgorICAgICAgICBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCgpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHktPnNldEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbChjbGllbnQpOworICAgICAgICBtX2Zyb250ZW5kLT5zZXRJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICAgICAgbV9l
dmVudHNDb2xsZWN0b3ItPnNlbmRDb2xsZWN0ZWRFdmVudHMoY2xpZW50KTsKKyAgICB9CiB9CiAK
IHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCiB7Ci0gICAgbV9m
cm9udGVuZCA9IDA7CisgICAgaWYgKGJhY2tncm91bmRFdmVudHNDb2xsZWN0aW9uRW5hYmxlZCgp
KSB7CisgICAgICAgIG1fZnJvbnRlbmQgPSBtX21vY2tGcm9udGVuZC5nZXQoKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgbV9mcm9udGVuZCA9IDA7CiAgICAgZGlzYWJsZSgwKTsKIH0KQEAgLTEwNiw1
ICsxMTksNSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlc291cmNlQ29udGVudChF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBmcgogewogICAgIGlmICghZnJhbWUpIHsK
LSAgICAgICAgKmVycm9yU3RyaW5nID0gIk5vIGZyYW1lIHRvIGdldCByZXNvdXJjZSBjb250ZW50
IGZvciI7IAorICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291cmNl
IGNvbnRlbnQgZm9yIjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3OSw0ICsyOTIsOCBA
QCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQ2FjaGVk
UmVzb3VyY2UoY29uc3QgQ2FjaGVkUmVzbwogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3Bl
Y3RvclJlc291cmNlQWdlbnQoKQogeworICAgIGlmIChtX3N0YXRlLT5nZXRCb29sZWFuKFJlc291
cmNlQWdlbnRTdGF0ZTo6cmVzb3VyY2VBZ2VudEVuYWJsZWQpKSB7CisgICAgICAgIEVycm9yU3Ry
aW5nIGVycm9yOworICAgICAgICBkaXNhYmxlKCZlcnJvcik7CisgICAgfQogICAgIEFTU0VSVCgh
bV9pbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkpOwogfQpAQCAt
MzcyLDQgKzM4OSwxNCBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnNldEluaXRpYWxY
SFJDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29ucwogfQogCit2b2lkIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKCkKK3sKKyAgICBtX2Zyb250
ZW5kLT5kb21Db250ZW50RXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwordm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50Ojpsb2FkRXZlbnRGaXJlZCgpCit7CisgICAgbV9mcm9udGVuZC0+
bG9hZEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKIHN0YXRpYyBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7CkBAIC00
ODQsNCArNTExLDEyIEBAIEZyYW1lKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpmcmFtZUZvcklk
KGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIH0KIAorYm9vbCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
OjpiYWNrZ3JvdW5kRXZlbnRzQ29sbGVjdGlvbkVuYWJsZWQoKQoreworICAgIC8vIEZJWE1FICho
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg2NTIpCisgICAgLy8gQWRk
IGhlcmUgY29uZGl0aW9uIHRvIGVuYWJsZSBiYWNrZ3JvdW5kIGV2ZW50cyBjb2xsZWN0aW9uLgor
ICAgIC8vIE5vdyB0aGlzIGZ1bmN0aW9uIGlzIGRpc2FibGUuCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiB7
CkBAIC01MzAsNiArNTY1LDE0IEBAIEluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJl
c291cmNlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluCiAgICAgLCBtX3Bh
Z2UocGFnZSkKICAgICAsIG1fc3RhdGUoc3RhdGUpCi0gICAgLCBtX2Zyb250ZW5kKDApCiB7Cisg
ICAgaWYgKGJhY2tncm91bmRFdmVudHNDb2xsZWN0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIG1f
ZXZlbnRzQ29sbGVjdG9yID0gbmV3IEV2ZW50c0NvbGxlY3RvcigpOworICAgICAgICBtX2luc3Bl
Y3RvckZyb250ZW5kUHJveHkgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShtX2V2ZW50c0Nv
bGxlY3Rvci5nZXQoKSk7CisgICAgICAgIC8vIENyZWF0ZSBtb2NrIGZyb250ZW5kLCBzbyB3ZSBj
YW4gY29sbGVjdCBuZXR3b3JrIGV2ZW50cy4KKyAgICAgICAgbV9tb2NrRnJvbnRlbmQgPSBuZXcg
SW5zcGVjdG9yRnJvbnRlbmQ6Ok5ldHdvcmsobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgp
KTsKKyAgICAgICAgbV9mcm9udGVuZCA9IG1fbW9ja0Zyb250ZW5kLmdldCgpOworICAgICAgICBl
bmFibGUoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9mcm9udGVuZCA9IDA7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oCmluZGV4
IDEyZjBmZTMuLjI3ZGRjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlQWdlbnQuaApAQCAtMzUsNCArMzUsNSBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC01Miw4ICs1MywxMCBAQCBj
bGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckFycmF5OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmQ7CitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZFByb3h5OwogY2xhc3MgSW5zcGVjdG9yT2JqZWN0
OwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xh
c3MgS1VSTDsKK2NsYXNzIEV2ZW50c0NvbGxlY3RvcjsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBSZXNv
dXJjZUVycm9yOwpAQCAtOTgsNCArMTAxLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5pdGlh
bFNjcmlwdENvbnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVN0cmluZyk7CiAgICAgdm9pZCBzZXRJbml0aWFsWEhSQ29udGVudCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlU3RyaW5nKTsKKyAgICB2b2lkIGRvbUNv
bnRlbnRFdmVudEZpcmVkKCk7CisgICAgdm9pZCBsb2FkRXZlbnRGaXJlZCgpOwogICAgIHZvaWQg
ZGlkQ29tbWl0TG9hZChEb2N1bWVudExvYWRlciopOwogICAgIHZvaWQgZnJhbWVEZXRhY2hlZEZy
b21QYXJlbnQoRnJhbWUqKTsKQEAgLTEwOSw0ICsxMTQsNSBAQCBwdWJsaWM6CiAKICAgICBGcmFt
ZSogZnJhbWVGb3JJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpOworICAgIGJvb2wgYmFja2dyb3Vu
ZEV2ZW50c0NvbGxlY3Rpb25FbmFibGVkKCk7CiAKICAgICAvLyBDYWxsZWQgZnJvbSBmcm9udGVu
ZCAKQEAgLTEyNSw1ICsxMzEsOCBAQCBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBJ
bnNwZWN0b3JTdGF0ZSogbV9zdGF0ZTsKKyAgICBPd25QdHI8RXZlbnRzQ29sbGVjdG9yPiBtX2V2
ZW50c0NvbGxlY3RvcjsKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6TmV0d29yayogbV9mcm9udGVu
ZDsKKyAgICBPd25QdHI8SW5zcGVjdG9yRnJvbnRlbmQ6Ok5ldHdvcms+IG1fbW9ja0Zyb250ZW5k
OworICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZFByb3h5PiBtX2luc3BlY3RvckZyb250ZW5k
UHJveHk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9OZXR3b3JrTWFuYWdlci5qcwppbmRleCBhNWE1M2NiLi41ZWU4MThkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKQEAg
LTE1MSw0ICsxNTEsMTYgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlw
ZSA9IHsKICAgICB9LAogCisgICAgZG9tQ29udGVudEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUp
CisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRU
aW1lID0gdGltZTsKKyAgICB9LAorCisgICAgbG9hZEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUp
CisgICAgeworICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0g
dGltZTsKKyAgICB9LAorCiAgICAgZGF0YVJlY2VpdmVkOiBmdW5jdGlvbihpZGVudGlmaWVyLCB0
aW1lLCBkYXRhTGVuZ3RoLCBsZW5ndGhSZWNlaXZlZCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDUxMGY5MzEuLmRkY2Zh
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
LmpzCkBAIC05OTAsNiArOTkwLDQgQEAgV2ViSW5zcGVjdG9yLmRvbUNvbnRlbnRFdmVudEZpcmVk
ID0gZnVuY3Rpb24odGltZSkKIHsKICAgICB0aGlzLnBhbmVscy5hdWRpdHMubWFpblJlc291cmNl
RE9NQ29udGVudFRpbWUgPSB0aW1lOwotICAgIGlmICh0aGlzLnBhbmVscy5uZXR3b3JrKQotICAg
ICAgICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGlt
ZTsKICAgICB0aGlzLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKIH0KQEAgLTk5
OCw1ICs5OTYsNCBAQCBXZWJJbnNwZWN0b3IubG9hZEV2ZW50RmlyZWQgPSBmdW5jdGlvbih0aW1l
KQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7
Ci0gICAgdGhpcy5wYW5lbHMubmV0d29yay5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7CiAg
ICAgdGhpcy5wYW5lbHMucmVzb3VyY2VzLmxvYWRFdmVudEZpcmVkKCk7CiAgICAgdGhpcy5tYWlu
UmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89787</attachid>
            <date>2011-04-15 07:31:05 -0700</date>
            <delta_ts>2011-04-15 08:05:54 -0700</delta_ts>
            <desc>Fix style</desc>
            <filename>review</filename>
            <type>text/plain</type>
            <size>36729</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmJkYTJlNy4uYTk1NmFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4OSw0ICs4ODksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVj
dG9yL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIu
Y3BwCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKICAgICBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuY3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAKQEAg
LTkwOCw0ICs5MDksNSBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJlZTYxZWEuLmRmZTE1MWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMiArMSw2OSBAQAorMjAxMS0wNC0xNCAgU2VyZ2V5IFZvcm9ieWV2
ICA8c2VyZ2V5dm9yb2J5ZXZAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOZXR3b3JrIGV2ZW50cyBkb24n
dCBwcmVzZXJ2ZXMsCisgICAgICAgIHdoZW4gaW5zcGVjdG9yIGZyb250ZW5kIGNsb3NlZCBhbmQg
b3BlbiBhZ2FpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTgwNjQKKworICAgICAgICBBZGRlZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5IGFuZCBFdmVu
dHNDb2xsZWN0b3IuCisgICAgICAgIFRoZXkgYWxsb3cgY2FwdHVyZWQgbWVzc2FnZXMgZnJvbSBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50CisgICAgICAgIHRvIGZyb250ZW5kIChvciBtb2NrRnJvbnRl
bmQgaWYgZnJvbnRlbmQgZGlzYWJsZWQpIGFuZAorICAgICAgICBwdXNoIGNvbGxlY3RlZCBkYXRh
IHdoZW4gZnJvbnRlbmQgcmVjb25uZWN0LgorICAgICAgICBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMg
ZGlzYWJsZWQgYnkgZGVmYXVsdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpFdmVudHNDb2xsZWN0b3I6OkV2ZW50c0NvbGxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxl
Y3Rvcjo6c2VuZENvbGxlY3RlZEV2ZW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL0V2ZW50c0Nv
bGxlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50c0NvbGxlY3Rvcjo6fkV2
ZW50c0NvbGxlY3Rvcik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpJbnNwZWN0b3JGcm9udGVuZFBy
b3h5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3Bl
Y3RvckZyb250ZW5kQ2hhbm5lbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZFByb3h5OjpzZXRFdmVudHNDb2xsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RnJvbnRlbmRQcm94eTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kUHJveHk6On5JbnNwZWN0b3JGcm9udGVuZFByb3h5KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2
ZW50RmlyZWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxT
ZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxSZWNlaXZlUmVzb3VyY2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVDb250ZW50TGVuZ3RoKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRMb2FkZWRF
dmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
bG9hZEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpmcmFtZURldGFjaGVkRnJvbVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
Y2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6fkluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVu
dEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmxvYWRF
dmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmVu
YWJsZWRCYWNrZ291bmRFdmVudHNDb29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNw
YXRjaGVyLnByb3RvdHlwZS5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlLmxvYWRFdmVudEZpcmVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5kb21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IubG9hZEV2
ZW50RmlyZWQpOgorCiAyMDExLTA0LTE0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9t
aXVtLm9yZz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmM2Yzc1Mi4uYjc2
ZjUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xOTIyLDQgKzE5MjIsNiBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hs
aWdodGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKQEAgLTE5NjIsNCArMTk2NCw2IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaCBcCisJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94
eS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyMGE3OWQwLi41ZTEwZmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0zMjEyLDQgKzMyMTIsNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9ET01Ob2Rl
SGlnaGxpZ2h0ZXIuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdo
dGVyLmgnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwJywKKyAg
ICAgICAgICAgICdpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdC5oJywKQEAgLTMyNDYsNCArMzI0OCw2IEBACiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUHJveHkuY3BwJywKKyAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTVhOWU2MS4uOGNkY2I4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTgxMSw0ICs4MTEsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvQ29uc29s
ZU1lc3NhZ2UuY3BwIFwKICAgICBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBcCisg
ICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwKQEAg
LTgyOSw0ICs4MzAsNSBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIFwKKyAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAgXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCkBAIC0xNzQ1LDQgKzE3NDcsNSBAQCBIRUFERVJTICs9
IFwKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCBcCiAgICAgaW5zcGVjdG9yL0RPTU5v
ZGVIaWdobGlnaHRlci5oIFwKKyAgICBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggXAogICAg
IGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRIb3N0LmggXApAQCAtMTc2MSw3ICsxNzY0LDkgQEAgSEVBREVSUyArPSBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlLmggXAorICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kUHJveHkuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmYjljOGFlLi40ODA3M2ExIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjY2MDMs
NCArNjY2MDMsMTIgQEAKIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxpbnNwZWN0b3JcRXZlbnRzQ29sbGVjdG9yLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEV2ZW50c0NvbGxlY3Rvci5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCIKIAkJCQk+CkBAIC02Njc3MSw0ICs2Njc3OSwxMiBA
QAogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVj
dG9yXEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU1OGY0OWUuLmMw
ZGJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTY0Nyw0ICs2NDcsOCBAQAogCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyNzc3NzYwMTM0NURFQTkwMDhFQTQ1NSAvKiBJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDIyNzc3NzVGMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjQ4MTM0
QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHNDb2xsZWN0b3IuY3BwICovOyB9OworCQkyMjc3N0I0QjEz
NEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZl
bnRzQ29sbGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3
NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwICovOyB9
OworCQkyMjc3N0I0RjEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNEQx
MzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyMjg4NUU2NDEzMDFBRTRDMDA1
MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyog
SlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAw
MDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFw
cGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNzA4NSw0ICs3MDg5LDggQEAKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdCNDgxMzRBMDE4QzAwOEVBNDU1
IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFdmVudHNDb2xsZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Mjc3N0I0OTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyMjc3N0I0QzEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JGcm9udGVuZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI3NzdC
NEQxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01J
bXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjI2LDQgKzEzMjM0LDYgQEAKIAkJCQk0RjE0NDIy
NjEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCAqLywKIAkJCQk0RjE0
NDIyNzEzMzlGRDYyMDBFMEQ2RjggLyogRE9NTm9kZUhpZ2hsaWdodGVyLmggKi8sCisJCQkJMjI3
NzdCNDgxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgKi8sCisJCQkJMjI3
NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oICovLAogCQkJCUYzNjQ0
QUZEMTExOTgwNTkwMEUwRDUzNyAvKiBJbmplY3RlZFNjcmlwdC5jcHAgKi8sCiAJCQkJRjM2NDRB
RkUxMTE5ODA1OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmggKi8sCkBAIC0xMzI2OSw0ICsx
MzI3OSw2IEBACiAJCQkJN0EwRTc3MEMxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250
ZW5kSG9zdC5oICovLAogCQkJCTdBMEU3NzBEMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JG
cm9udGVuZEhvc3QuaWRsICovLAorCQkJCTIyNzc3QjRDMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNw
ZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLywKKwkJCQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUg
LyogSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oICovLAogCQkJCTIwRDYyOTI0MTI1MzY5MEIwMDA4
MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovLAogCQkJCTIwRDYyOTI1MTI1
MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLywKQEAgLTIwOTg1
LDQgKzIwOTk3LDUgQEAKIAkJCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTBGRUYzNzJCMTdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50
U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0NTUgLyog
RXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTJFREI3QjBCMzA4QTc4MDAy
NzA0QjYgLyogRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEOEYzMEQyQTEx
RTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxMzM2LDQg
KzIxMzQ5LDUgQEAKIAkJCQlGMzQ0Qzc1MzExMjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMwMEE4ODAw
QTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjI3
NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAv
KiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM4MzQsNCArMjM4NDgs
NSBAQAogCQkJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUwRkVGMzcyQjI3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjc3N0I0QTEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRz
Q29sbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMkVEQkVBMEIzMDhFMEIwMDI3MDRC
NiAvKiBFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRDhGMjBEMkExMUUw
MDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0MTQ0LDQg
KzI0MTU5LDUgQEAKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTBFNzcwRTEwQzAwQTg4
MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTIyNzc3QjRFMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY2RkRENjQxMzQxREVERDAw
MUY4RUUzIC8qIEluc3BlY3RvclBhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMWMzNjVjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIK
KworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENo
YW5uZWwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0V2ZW50c0NvbGxlY3Rvcjo6RXZlbnRzQ29sbGVjdG9yKCkKKyAgICA6IG1fdG90YWxM
ZW5ndGgoMCkKK3sKK30KKwordm9pZCBFdmVudHNDb2xsZWN0b3I6OmFkZEV2ZW50KGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3RvdGFsTGVuZ3RoICs9IG1lc3NhZ2UubGVuZ3RoKCk7
CisgICAgbV9ldmVudHMuYXBwZW5kKG1lc3NhZ2UpOworICAgIHdoaWxlIChtX3RvdGFsTGVuZ3Ro
ID4gbWF4Q2FwYWNpdHkpIHsKKyAgICAgICAgbV90b3RhbExlbmd0aCAtPSBtX2V2ZW50c1swXS5s
ZW5ndGgoKTsKKyAgICAgICAgbV9ldmVudHMucmVtb3ZlKDApOworICAgIH0KK30KKwordm9pZCBF
dmVudHNDb2xsZWN0b3I6OnNlbmRDb2xsZWN0ZWRFdmVudHMoSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKiByZWNlaXZlcikKK3sKKyAgICBmb3IgKFZlY3RvcjxTdHJpbmc+OjppdGVyYXRvciBpdCA9
IG1fZXZlbnRzLmJlZ2luKCk7IGl0ICE9IG1fZXZlbnRzLmVuZCgpOyArK2l0KQorICAgICAgICBy
ZWNlaXZlci0+c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKCppdCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZDUzZTEwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9FdmVudHNDb2xsZWN0b3IuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IEV2ZW50c0NvbGxlY3Rvcl9oCisjZGVmaW5lIEV2ZW50c0NvbGxlY3Rvcl9oCisKKyNpZiBFTkFC
TEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW5zcGVjdG9yRnJvbnRl
bmRDaGFubmVsOworCitjbGFzcyBFdmVudHNDb2xsZWN0b3IgeworcHVibGljOgorICAgIEV2ZW50
c0NvbGxlY3RvcigpOworICAgIH5FdmVudHNDb2xsZWN0b3IoKSB7IH0KKyAgICB2b2lkIGFkZEV2
ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisgICAgdm9pZCBzZW5kQ29sbGVjdGVkRXZlbnRz
KEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCopOworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IG1heENhcGFjaXR5ID0gMTAyNCoxMDI0OyAvLyAxIE1iCisgICAgc2l6ZV90IG1fdG90
YWxMZW5ndGg7CisgICAgVmVjdG9yPFN0cmluZz4gbV9ldmVudHM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAhZGVmaW5lZChFdmVudHNDb2xsZWN0b3JfaCkKKwor
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yLmpzb24KaW5kZXggMWZjZDQ1Zi4uMGQ5MzM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgpAQCAtNDMyLDQgKzQzMiwxNiBAQAogICAgICAgICAiZXZlbnRzIjog
WwogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImRvbUNvbnRlbnRFdmVu
dEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJsb2FkRXZlbnRGaXJlZCIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZSIsICJ0eXBlIjogIm51bWJlciIgfQor
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgIm5hbWUiOiAiZnJhbWVEZXRhY2hlZCIsCiAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkZpcmVkIHdoZW4gZnJhbWUgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSBpdHMgcGFy
ZW50LiIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGUyMTg4ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
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
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisK
KyNpbmNsdWRlICJFdmVudHNDb2xsZWN0b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0luc3BlY3RvckZyb250ZW5kUHJveHk6Okluc3Bl
Y3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9y
ZWNlaXZlciA9IDA7CisgICAgbV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7Cit9CisKK0luc3BlY3Rv
ckZyb250ZW5kUHJveHk6Okluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiBj
b2xsZWN0b3IsIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbmV4dENoYW5uZWwpCit7CisgICAg
bV9jb2xsZWN0b3IgPSBjb2xsZWN0b3I7CisgICAgbV9yZWNlaXZlciA9IG5leHRDaGFubmVsOwor
fQorCit2b2lkIEluc3BlY3RvckZyb250ZW5kUHJveHk6OnNldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAgIG1fcmVjZWl2
ZXIgPSByZWNlaXZlcjsKK30KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZFByb3h5OjpzZXRFdmVu
dHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKiBjb2xsZWN0b3IpCit7CisgICAgbV9jb2xsZWN0
b3IgPSBjb2xsZWN0b3I7Cit9CisKK2Jvb2wgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6c2VuZE1l
c3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX2NvbGxlY3Rv
ci0+YWRkRXZlbnQobWVzc2FnZSk7CisgICAgaWYgKG1fcmVjZWl2ZXIpCisgICAgICAgIHJldHVy
biBtX3JlY2VpdmVyLT5zZW5kTWVzc2FnZVRvRnJvbnRlbmQobWVzc2FnZSk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjU5YWY2Nwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJbnNwZWN0
b3JGcm9udGVuZFByb3h5X2gKKyNkZWZpbmUgSW5zcGVjdG9yRnJvbnRlbmRQcm94eV9oCisKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBFdmVudHNDb2xsZWN0b3I7CisKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kUHJveHkgOiBw
dWJsaWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBJ
bnNwZWN0b3JGcm9udGVuZFByb3h5KEV2ZW50c0NvbGxlY3RvciopOworICAgIEluc3BlY3RvckZy
b250ZW5kUHJveHkoRXZlbnRzQ29sbGVjdG9yKiwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBu
ZXh0Q2hhbm5lbCk7CisgICAgdmlydHVhbCB+SW5zcGVjdG9yRnJvbnRlbmRQcm94eSgpIHsgfQor
CisgICAgdm9pZCBzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwoSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsKik7CisgICAgdm9pZCBzZXRFdmVudHNDb2xsZWN0b3IoRXZlbnRzQ29sbGVjdG9yKik7
CisgICAgdmlydHVhbCBib29sIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOworCitwcml2YXRlOgorICAgIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogbV9yZWNl
aXZlcjsKKyAgICBFdmVudHNDb2xsZWN0b3IqIG1fY29sbGVjdG9yOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKKworI2VuZGlmIC8v
ICFkZWZpbmVkKEluc3BlY3RvckZyb250ZW5kUHJveHlfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZDJiNzNm
NC4uYWIxNzE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTUxMCw0ICs1MTAsNyBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWRJbXBsKEluc3BlY3Rv
ckFnZW50KiBpbgogICAgICAgICB0aW1lbGluZUFnZW50LT5kaWRNYXJrRE9NQ29udGVudEV2ZW50
KCk7CiAKKyAgICBpZiAoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGlu
c3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclJlc291cmNlQWdl
bnQoKSkKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKKwog
ICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5p
bnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VBZ2VudCgpKQogICAgICAgICBwYWdl
QWdlbnQtPmRvbUNvbnRlbnRFdmVudEZpcmVkKCk7CkBAIC01MjgsNCArNTMxLDcgQEAgdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkSW1wbChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQKICAgICAgICAgdGltZWxpbmVBZ2VudC0+ZGlkTWFya0xvYWRFdmVu
dCgpOwogCisgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdlbnQqIHJlc291cmNlQWdlbnQgPSBp
bnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KCkpCisgICAgICAgIHJlc291cmNlQWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7CisKICAgICBp
ZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1
bWVudGluZ0FnZW50cygpLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkKICAgICAgICAgcGFnZUFnZW50
LT5sb2FkRXZlbnRGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDc3YzQ2NGUuLmVkZjY5OGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgK
QEAgLTYxMyw1ICs2MTMsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbgogewogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGluc3BlY3RvckFnZW50
V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaWMg
PSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgd2lsbFNlbmRSZXF1ZXN0
SW1wbChpYywgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
ICNlbmRpZgpAQCAtNjUyLDUgKzY1Miw1IEBAIGlubGluZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVjZWl2ZVJlc291CiB7CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFn
ZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYg
KEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUo
ZnJhbWUpKQogICAgICAgICByZXR1cm4gd2lsbFJlY2VpdmVSZXNvdXJjZVJlc3BvbnNlSW1wbChp
bnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVzcG9uc2UpOwogI2VuZGlmCkBAIC02NjksNSAr
NjY5LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
Q29udGVudExlbmd0aChGcmFtZSogZnJhbWUsIHVuc2kKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2Vu
dFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGlu
c3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGRp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoSW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgZGF0
YUxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQpOwogI2VuZGlmCkBAIC02NzcsNSArNjc3LDUgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRGaW5pc2hMb2FkaW5nKEZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgbG8KIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVu
ZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGRpZEZpbmlzaExvYWRp
bmdJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKICNlbmRpZgpA
QCAtNzA5LDUgKzcwOSw1IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZG9tQ29udGVudExvYWRlZEV2ZW50RmlyZWQoRnJhbWUqIGZyYW1lLCBjCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQog
ICAgICAgICBkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZy
YW1lLCB1cmwpOwogI2VuZGlmCkBAIC03MTcsNSArNzE3LDUgQEAgaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpsb2FkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHUKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCog
aW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1l
KSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGxvYWRFdmVudEZpcmVkSW1wbChpbnNwZWN0b3JB
Z2VudCwgZnJhbWUsIHVybCk7CiAjZW5kaWYKQEAgLTcyNSw1ICs3MjUsNSBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZyYW1lRGV0YWNoZWRGcm9tUGFyZW50KEZyYW1l
KiBmcmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZy
YW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9y
QWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAgICAgIGZyYW1lRGV0YWNoZWRGcm9tUGFyZW50SW1w
bChpbnNwZWN0b3JBZ2VudCwgZnJhbWUpOwogI2VuZGlmCkBAIC03OTMsNSArNzkzLDUgQEAgaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCoKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVu
ZEZvckNvbnRleHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IGluc3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlkQ3Jl
YXRlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdFVSTCwg
ZG9jdW1lbnRVUkwpOwogI2VuZGlmCkBAIC04MDEsNSArODAxLDUgQEAgaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qo
U2NyaXB0RXgKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2Vu
dCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQo
Y29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3Bl
Y3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgd2lsbFNlbmRXZWJTb2NrZXRI
YW5kc2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdCk7
CiAjZW5kaWYKQEAgLTgwOSw1ICs4MDksNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShTY3JpcAogewog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JB
Z2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yQ29udGV4dChjb250ZXh0KSkKKyAg
ICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JD
b250ZXh0KGNvbnRleHQpKQogICAgICAgICBkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVz
cG9uc2VJbXBsKGluc3BlY3RvckFnZW50LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAjZW5kaWYK
QEAgLTgxNyw1ICs4MTcsNSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENsb3NlV2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
cGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRleHQpKQorICAgIGlmIChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckNvbnRleHQoY29u
dGV4dCkpCiAgICAgICAgIGRpZENsb3NlV2ViU29ja2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRl
bnRpZmllcik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZUFnZW50LmNwcAppbmRleCA5NWNlYmNmLi4yZDFmN2IxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCkBA
IC0zNSw5ICszNSw5IEBACiAKICNpbmNsdWRlICJCYXNlNjQuaCIKLSNpbmNsdWRlICJNZW1vcnlD
YWNoZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVz
b3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCisjaW5jbHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNDYsOCArNDYsMTEgQEAKICNpbmNsdWRl
ICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JGcm9u
dGVuZFByb3h5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNw
ZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVk
ZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtODksOSArOTIsMTkgQEAgdm9pZCBJbnNw
ZWN0b3JSZXNvdXJjZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRl
bmQpCiB7CiAgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5uZXR3b3JrKCk7CisgICAgaWYgKGJh
Y2tncm91bmRFdmVudHNDb2xsZWN0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIC8vIEluc2VydCBN
ZXNzYWdlIFByb3h5IGluIHJlY2VpdmVyIGNoYWluLgorICAgICAgICBJbnNwZWN0b3JGcm9udGVu
ZENoYW5uZWwqIGNsaWVudCA9IG1fZnJvbnRlbmQtPmdldEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bCgpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHktPnNldEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbChjbGllbnQpOworICAgICAgICBtX2Zyb250ZW5kLT5zZXRJbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICAgICAgbV9l
dmVudHNDb2xsZWN0b3ItPnNlbmRDb2xsZWN0ZWRFdmVudHMoY2xpZW50KTsKKyAgICB9CiB9CiAK
IHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCiB7Ci0gICAgbV9m
cm9udGVuZCA9IDA7CisgICAgaWYgKGJhY2tncm91bmRFdmVudHNDb2xsZWN0aW9uRW5hYmxlZCgp
KQorICAgICAgICBtX2Zyb250ZW5kID0gbV9tb2NrRnJvbnRlbmQuZ2V0KCk7CisgICAgZWxzZQor
ICAgICAgICBtX2Zyb250ZW5kID0gMDsKICAgICBkaXNhYmxlKDApOwogfQpAQCAtMTA2LDUgKzEx
OSw1IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KEVycm9y
U3RyaW5nKiBlcnJvclN0cmluZywgRnJhbWUqIGZyCiB7CiAgICAgaWYgKCFmcmFtZSkgewotICAg
ICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291cmNlIGNvbnRlbnQgZm9y
IjsgCisgICAgICAgICplcnJvclN0cmluZyA9ICJObyBmcmFtZSB0byBnZXQgcmVzb3VyY2UgY29u
dGVudCBmb3IiOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjc5LDQgKzI5Miw4IEBAIHN0
YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JDYWNoZWRSZXNv
dXJjZShjb25zdCBDYWNoZWRSZXNvCiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojp+SW5zcGVjdG9y
UmVzb3VyY2VBZ2VudCgpCiB7CisgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oUmVzb3VyY2VB
Z2VudFN0YXRlOjpyZXNvdXJjZUFnZW50RW5hYmxlZCkpIHsKKyAgICAgICAgRXJyb3JTdHJpbmcg
ZXJyb3I7CisgICAgICAgIGRpc2FibGUoJmVycm9yKTsKKyAgICB9CiAgICAgQVNTRVJUKCFtX2lu
c3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSk7CiB9CkBAIC0zNzIs
NCArMzg5LDE0IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6c2V0SW5pdGlhbFhIUkNv
bnRlbnQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zCiB9CiAKK3ZvaWQgSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudDo6ZG9tQ29udGVudEV2ZW50RmlyZWQoKQoreworICAgIG1fZnJvbnRlbmQt
PmRvbUNvbnRlbnRFdmVudEZpcmVkKGN1cnJlbnRUaW1lKCkpOworfQorCit2b2lkIEluc3BlY3Rv
clJlc291cmNlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKCkKK3sKKyAgICBtX2Zyb250ZW5kLT5sb2Fk
RXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwogc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKQEAgLTQ4NCw0
ICs1MTEsMTIgQEAgRnJhbWUqIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmZyYW1lRm9ySWQoY29u
c3QgU3RyaW5nJiBmcmFtZUlkKQogfQogCitib29sIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmJh
Y2tncm91bmRFdmVudHNDb2xsZWN0aW9uRW5hYmxlZCgpCit7CisgICAgLy8gRklYTUUgKGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODY1MikKKyAgICAvLyBBZGQgaGVy
ZSBjb25kaXRpb24gdG8gZW5hYmxlIGJhY2tncm91bmQgZXZlbnRzIGNvbGxlY3Rpb24uCisgICAg
Ly8gTm93IHRoaXMgZnVuY3Rpb24gaXMgZGlzYWJsZS4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
IHZvaWQgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKIHsKQEAg
LTUzMCw2ICs1NjUsMTQgQEAgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6SW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW4KICAgICAsIG1fcGFnZShw
YWdlKQogICAgICwgbV9zdGF0ZShzdGF0ZSkKLSAgICAsIG1fZnJvbnRlbmQoMCkKIHsKKyAgICBp
ZiAoYmFja2dyb3VuZEV2ZW50c0NvbGxlY3Rpb25FbmFibGVkKCkpIHsKKyAgICAgICAgbV9ldmVu
dHNDb2xsZWN0b3IgPSBuZXcgRXZlbnRzQ29sbGVjdG9yKCk7CisgICAgICAgIG1faW5zcGVjdG9y
RnJvbnRlbmRQcm94eSA9IG5ldyBJbnNwZWN0b3JGcm9udGVuZFByb3h5KG1fZXZlbnRzQ29sbGVj
dG9yLmdldCgpKTsKKyAgICAgICAgLy8gQ3JlYXRlIG1vY2sgZnJvbnRlbmQsIHNvIHdlIGNhbiBj
b2xsZWN0IG5ldHdvcmsgZXZlbnRzLgorICAgICAgICBtX21vY2tGcm9udGVuZCA9IG5ldyBJbnNw
ZWN0b3JGcm9udGVuZDo6TmV0d29yayhtX2luc3BlY3RvckZyb250ZW5kUHJveHkuZ2V0KCkpOwor
ICAgICAgICBtX2Zyb250ZW5kID0gbV9tb2NrRnJvbnRlbmQuZ2V0KCk7CisgICAgICAgIGVuYWJs
ZSgpOworICAgIH0gZWxzZQorICAgICAgICBtX2Zyb250ZW5kID0gMDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKaW5kZXggMTJm
MGZlMy4uMjdkZGMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVzb3VyY2VBZ2VudC5oCkBAIC0zNSw0ICszNSw1IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKIAorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTUyLDggKzUzLDEwIEBAIGNsYXNz
IEZyYW1lOwogY2xhc3MgSW5zcGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsK
K2NsYXNzIEluc3BlY3RvckZyb250ZW5kUHJveHk7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBj
bGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBL
VVJMOworY2xhc3MgRXZlbnRzQ29sbGVjdG9yOwogY2xhc3MgUGFnZTsKIGNsYXNzIFJlc291cmNl
RXJyb3I7CkBAIC05OCw0ICsxMDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbml0aWFsU2Ny
aXB0Q29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
U3RyaW5nKTsKICAgICB2b2lkIHNldEluaXRpYWxYSFJDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOworICAgIHZvaWQgZG9tQ29udGVu
dEV2ZW50RmlyZWQoKTsKKyAgICB2b2lkIGxvYWRFdmVudEZpcmVkKCk7CiAgICAgdm9pZCBkaWRD
b21taXRMb2FkKERvY3VtZW50TG9hZGVyKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkRnJvbVBh
cmVudChGcmFtZSopOwpAQCAtMTA5LDQgKzExNCw1IEBAIHB1YmxpYzoKIAogICAgIEZyYW1lKiBm
cmFtZUZvcklkKGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CisgICAgYm9vbCBiYWNrZ3JvdW5kRXZl
bnRzQ29sbGVjdGlvbkVuYWJsZWQoKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIGZyb250ZW5kIApA
QCAtMTI1LDUgKzEzMSw4IEBAIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwogICAgIEluc3Bl
Y3RvclN0YXRlKiBtX3N0YXRlOworICAgIE93blB0cjxFdmVudHNDb2xsZWN0b3I+IG1fZXZlbnRz
Q29sbGVjdG9yOwogICAgIEluc3BlY3RvckZyb250ZW5kOjpOZXR3b3JrKiBtX2Zyb250ZW5kOwor
ICAgIE93blB0cjxJbnNwZWN0b3JGcm9udGVuZDo6TmV0d29yaz4gbV9tb2NrRnJvbnRlbmQ7Cisg
ICAgT3duUHRyPEluc3BlY3RvckZyb250ZW5kUHJveHk+IG1faW5zcGVjdG9yRnJvbnRlbmRQcm94
eTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
TmV0d29ya01hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtNYW5hZ2VyLmpzCmluZGV4IGE1YTUzY2IuLjVlZTgxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya01hbmFnZXIuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcwpAQCAtMTUx
LDQgKzE1MSwxNiBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0Rpc3BhdGNoZXIucHJvdG90eXBlID0g
ewogICAgIH0sCiAKKyAgICBkb21Db250ZW50RXZlbnRGaXJlZDogZnVuY3Rpb24odGltZSkKKyAg
ICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUg
PSB0aW1lOworICAgIH0sCisKKyAgICBsb2FkRXZlbnRGaXJlZDogZnVuY3Rpb24odGltZSkKKyAg
ICB7CisgICAgICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmspCisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlTG9hZFRpbWUgPSB0aW1l
OworICAgIH0sCisKICAgICBkYXRhUmVjZWl2ZWQ6IGZ1bmN0aW9uKGlkZW50aWZpZXIsIHRpbWUs
IGRhdGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNTEwZjkzMS4uZGRjZmFhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3Iu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
QEAgLTk5MCw2ICs5OTAsNCBAQCBXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQgPSBm
dW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VET01D
b250ZW50VGltZSA9IHRpbWU7Ci0gICAgaWYgKHRoaXMucGFuZWxzLm5ldHdvcmspCi0gICAgICAg
IHRoaXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwog
ICAgIHRoaXMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwogfQpAQCAtOTk4LDUg
Kzk5Niw0IEBAIFdlYkluc3BlY3Rvci5sb2FkRXZlbnRGaXJlZCA9IGZ1bmN0aW9uKHRpbWUpCiB7
CiAgICAgdGhpcy5wYW5lbHMuYXVkaXRzLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKLSAg
ICB0aGlzLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKICAgICB0
aGlzLnBhbmVscy5yZXNvdXJjZXMubG9hZEV2ZW50RmlyZWQoKTsKICAgICB0aGlzLm1haW5SZXNv
dXJjZUxvYWRUaW1lID0gdGltZTsK
</data>
<flag name="review"
          id="82503"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89790</attachid>
            <date>2011-04-15 08:05:54 -0700</date>
            <delta_ts>2011-04-15 08:16:30 -0700</delta_ts>
            <desc>Fix clearFrontend</desc>
            <filename>review</filename>
            <type>text/plain</type>
            <size>42070</size>
            <attacher name="Sergey Vorobyev">sergeyvorobyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNmJkYTJlNy4uYTk1NmFhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg4OCw2ICs4ODgsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBpbnNw
ZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwCiAgICAgaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRl
ci5jcHAKKyAgICBpbnNwZWN0b3IvRXZlbnRzQ29sbGVjdG9yLmNwcAogICAgIGluc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAog
ICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuY3BwCkBAIC05MDcsNiArOTA4LDcg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFn
ZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kUHJveHkuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZWU2
MWVhLi5kZmUxNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTEtMDQtMTQgIFNl
cmdleSBWb3JvYnlldiAgPHNlcmdleXZvcm9ieWV2QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmV0d29y
ayBldmVudHMgZG9uJ3QgcHJlc2VydmVzLAorICAgICAgICB3aGVuIGluc3BlY3RvciBmcm9udGVu
ZCBjbG9zZWQgYW5kIG9wZW4gYWdhaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU4MDY0CisKKyAgICAgICAgQWRkZWQgSW5zcGVjdG9yRnJvbnRlbmRQ
cm94eSBhbmQgRXZlbnRzQ29sbGVjdG9yLgorICAgICAgICBUaGV5IGFsbG93IGNhcHR1cmVkIG1l
c3NhZ2VzIGZyb20gSW5zcGVjdG9yUmVzb3VyY2VBZ2VudAorICAgICAgICB0byBmcm9udGVuZCAo
b3IgbW9ja0Zyb250ZW5kIGlmIGZyb250ZW5kIGRpc2FibGVkKSBhbmQKKyAgICAgICAgcHVzaCBj
b2xsZWN0ZWQgZGF0YSB3aGVuIGZyb250ZW5kIHJlY29ubmVjdC4KKyAgICAgICAgVGhpcyBmdW5j
dGlvbmFsaXR5IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRzQ29sbGVjdG9yOjpFdmVudHNDb2xsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6RXZlbnRzQ29sbGVjdG9yOjphZGRFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudHNDb2xsZWN0b3I6OnNlbmRDb2xsZWN0ZWRFdmVudHMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9FdmVudHNDb2xsZWN0b3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudHND
b2xsZWN0b3I6On5FdmVudHNDb2xsZWN0b3IpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6SW5zcGVj
dG9yRnJvbnRlbmRQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFBy
b3h5OjpzZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRnJvbnRlbmRQcm94eTo6c2V0RXZlbnRzQ29sbGVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckZyb250ZW5kUHJveHk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZCk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZFByb3h5Ojp+SW5zcGVjdG9yRnJvbnRlbmRQcm94
eSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRMb2Fk
ZWRFdmVudEZpcmVkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmxvYWRFdmVudEZpcmVkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlQ29udGVudExlbmd0aCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEZpbmlzaExv
YWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21D
b250ZW50TG9hZGVkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmxvYWRFdmVudEZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6cmVzb3VyY2VDb250ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6OmRpZFJlY2Vp
dmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpk
b21Db250ZW50RXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50Ojpsb2FkRXZlbnRGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNv
dXJjZUFnZW50OjplbmFibGVkQmFja2dvdW5kRXZlbnRzQ29vbGxlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclJlc291cmNlQWdlbnQ6Okluc3BlY3RvclJlc291cmNlQWdlbnQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5cGUuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtEaXNwYXRjaGVyLnByb3RvdHlwZS5sb2FkRXZlbnRG
aXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLmxvYWRFdmVudEZpcmVkKToKKwogMjAxMS0wNC0xNCAgSWx5YSBUaWtob25vdnNreSAg
PGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1h
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGJjNmM3NTIuLmI3NmY1MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTkyMSw2ICsxOTIxLDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuaCBcCisJU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0LmggXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3Qu
Y3BwIFwKQEAgLTE5NjEsNiArMTk2Myw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCisJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
MjBhNzlkMC4uNWUxMGZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzIxMSw2ICszMjExLDggQEAK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuaCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9ET01Ob2RlSGlnaGxpZ2h0ZXIuaCcsCisgICAgICAgICAgICAnaW5zcGVjdG9yL0V2ZW50c0Nv
bGxlY3Rvci5jcHAnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9FdmVudHNDb2xsZWN0b3IuaCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCcsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdEhvc3QuY3BwJywKQEAgLTMyNDUsNiArMzI0Nyw4IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwJywKICAgICAgICAg
ICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oJywKKyAgICAgICAgICAgICdpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5jcHAnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZFByb3h5LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JQYWdl
QWdlbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTVhOWU2MS4uOGNkY2I4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTgxMCw2ICs4MTAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL3NoYWRvdy9U
ZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIFwKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3Nh
Z2UuY3BwIFwKICAgICBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcCBcCisgICAgaW5z
cGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlw
dC5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwKICAgICBpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcCBcCkBAIC04MjgsNiArODI5LDcgQEAgU09V
UkNFUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAg
XAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBcCiAgICAg
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAorICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZFByb3h5LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgXApAQCAtMTc0NCw2ICsxNzQ2
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
aCBcCiAgICAgaW5zcGVjdG9yL0NvbnNvbGVNZXNzYWdlLmggXAogICAgIGluc3BlY3Rvci9ET01O
b2RlSGlnaGxpZ2h0ZXIuaCBcCisgICAgaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oIFwKICAg
ICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBcCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5oIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmggXApAQCAt
MTc2MCw5ICsxNzYzLDExIEBAIEhFQURFUlMgKz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JE
ZWJ1Z2dlckFnZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQu
aCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIFwKKyAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggXAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZENsaWVudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggXAor
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmggXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZmI5YzhhZS4u
NDgwNzNhMSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTY2NjAyLDYgKzY2NjAyLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxFdmVudHNDb2xsZWN0b3IuY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
RXZlbnRzQ29sbGVjdG9yLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KQEAgLTY2NzcwLDYgKzY2Nzc4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZFBy
b3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU1OGY0OWUuLmMwZGJjNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTY0Niw2ICs2NDYsMTAgQEAKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oICovOyB9OwogCQkyMjc3Nzc2MDEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyMjc3Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMjI3NzdCNEExMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjc3N0I0ODEzNEEwMThD
MDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCAqLzsgfTsKKwkJMjI3NzdCNEIxMzRBMDE4
QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMjI3NzdCNDkxMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0Nv
bGxlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTIyNzc3QjRFMTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjRD
MTM0QTAxQTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLzsgfTsKKwkJ
MjI3NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyNzc3QjREMTM0QTAx
QTgwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjI4ODVFNjQxMzAxQUU0QzAwNTI2RTY4
IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9N
SW1wbGVtZW50YXRpb25DdXN0b20uY3BwICovOyB9OwogCQkyMjhDMjg0NTEwRDgyNTAwMDA5RDBE
MEUgLyogU2NyaXB0V3JhcHBhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjI5
MkIyN0MxMzU2NjY5NDAwQ0YxMUVGIC8qIEltYWdlQnVmZmVyRGF0YUNHLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyOTJCMjdCMTM1NjY2OTQwMENG
MTFFRiAvKiBJbWFnZUJ1ZmZlckRhdGFDRy5jcHAgKi87IH07CkBAIC03MDg0LDYgKzcwODgsMTAg
QEAKIAkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMEQ2MjkyNTEy
NTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyMjc3Nzc1RjEzNDVERUE5MDA4RUE0NTUgLyogSW5zcGVj
dG9yRnJvbnRlbmRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
Mjc3N0I0ODEzNEEwMThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50c0NvbGxlY3Rvci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTIyNzc3QjQ5MTM0QTAxOEMwMDhFQTQ1NSAvKiBFdmVudHND
b2xsZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRzQ29sbGVj
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTIyNzc3QjRDMTM0QTAxQTgwMDhF
QTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckZyb250ZW5kUHJveHkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyMjc3N0I0RDEzNEEwMUE4MDA4RUE0NTUgLyogSW5zcGVjdG9yRnJv
bnRlbmRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JG
cm9udGVuZFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyODg1RTYzMTMw
MUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUg
LyogU2NyaXB0V3JhcHBhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNj
cmlwdFdyYXBwYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjkyQjI3QjEz
NTY2Njk0MDBDRjExRUYgLyogSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTMyMjUsNiArMTMyMzMsOCBAQAogCQkJCTQxRjA2MThDMEY1RjA2
OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5oICovLAogCQkJCTRGMTQ0MjI2MTMzOUZENjIw
MEUwRDZGOCAvKiBET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwICovLAogCQkJCTRGMTQ0MjI3MTMzOUZE
NjIwMEUwRDZGOCAvKiBET01Ob2RlSGlnaGxpZ2h0ZXIuaCAqLywKKwkJCQkyMjc3N0I0ODEzNEEw
MThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmNwcCAqLywKKwkJCQkyMjc3N0I0OTEzNEEw
MThDMDA4RUE0NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggKi8sCiAJCQkJRjM2NDRBRkQxMTE5ODA1
OTAwRTBENTM3IC8qIEluamVjdGVkU2NyaXB0LmNwcCAqLywKIAkJCQlGMzY0NEFGRTExMTk4MDU5
MDBFMEQ1MzcgLyogSW5qZWN0ZWRTY3JpcHQuaCAqLywKIAkJCQk3QTBFNzZGNjEwQkYwOEVEMDBB
MDI3NkUgLyogSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCAqLywKQEAgLTEzMjY4LDYgKzEzMjc4LDgg
QEAKIAkJCQk3QTBFNzcwQjEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LmNwcCAqLywKIAkJCQk3QTBFNzcwQzEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmggKi8sCiAJCQkJN0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZy
b250ZW5kSG9zdC5pZGwgKi8sCisJCQkJMjI3NzdCNEMxMzRBMDFBODAwOEVBNDU1IC8qIEluc3Bl
Y3RvckZyb250ZW5kUHJveHkuY3BwICovLAorCQkJCTIyNzc3QjREMTM0QTAxQTgwMDhFQTQ1NSAv
KiBJbnNwZWN0b3JGcm9udGVuZFByb3h5LmggKi8sCiAJCQkJMjBENjI5MjQxMjUzNjkwQjAwMDgx
NTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJMjBENjI5MjUxMjUz
NjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovLAogCQkJCTRGNkZE
RDYyMTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuY3BwICovLApAQCAtMjA5
ODQsNiArMjA5OTYsNyBAQAogCQkJCTkzOTg4NUM0MDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5h
bWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyogRXZl
bnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTBGRUYzNzJCMTdDNTNFQUMxQzFGQkVFIC8q
IEV2ZW50U291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyMjc3N0I0QjEzNEEwMThDMDA4RUE0
NTUgLyogRXZlbnRzQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTJFREI3QjBCMzA4
QTc4MDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEOEYz
MEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzVGQkNGMjA5QkExNDNCMDBFMjMwQjEgLyogRXhjZXB0aW9uQ29kZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMTMzNSw2ICsyMTM0OCw3IEBACiAJCQkJRjM0NEM3MTQxMTI1QjgyQzAwRjI2RUVFIC8q
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzQ0Qzc1MzEx
Mjk0RDlEMDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0EwRTc3MEYxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5k
SG9zdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMjI3NzdCNEYxMzRBMDFBODAwOEVBNDU1IC8qIElu
c3BlY3RvckZyb250ZW5kUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5
MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTRGNkZERDY1MTM0MURFREQwMDFGOEVFMyAvKiBJbnNwZWN0b3JQYWdlQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9m
aWxlckFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIzODMzLDYgKzIzODQ3LDcgQEAKIAkJCQk5
Mzk4ODVDMzA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4RjY3NTYxQzEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMEZFRjM3MkIyN0M1M0VBQzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMjI3NzdCNEExMzRBMDE4QzAwOEVBNDU1IC8qIEV2ZW50c0NvbGxl
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTJFREJFQTBCMzA4RTBCMDAyNzA0QjYgLyog
RXZlbnRUYXJnZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MEQ4RjIwRDJBMTFFMDAwQjk5
MThGIC8qIEV4Y2VwdGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM4MzFCNTcwRDA4
N0Q2MDAwRTVDOTg0IC8qIEV4Y2VwdGlvbkNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDE0
Myw2ICsyNDE1OCw3IEBACiAJCQkJNEY0RjVGRkIxMUNCRDJFMTAwQTE4NkJGIC8qIEluc3BlY3Rv
ckZyb250ZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzNDRDNzU4MTEyOTRGRjYwMEYyNkVF
RSAvKiBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBMEU3NzBFMTBDMDBBODgwMEEwMjc2RSAvKiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMjI3NzdCNEUxMzRBMDFBODAwOEVBNDU1IC8qIEluc3BlY3RvckZy
b250ZW5kUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjBENjI5MjYxMjUzNjkwQjAwMDgx
NTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0
RjZGREQ2NDEzNDFERUREMDAxRjhFRTMgLyogSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTlGMEQ2QjJFMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxl
ckFnZW50LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRXZl
bnRzQ29sbGVjdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzM2
NWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0Nv
bGxlY3Rvci5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50c0NvbGxlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKworI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXZlbnRzQ29sbGVjdG9y
OjpFdmVudHNDb2xsZWN0b3IoKQorICAgIDogbV90b3RhbExlbmd0aCgwKQoreworfQorCit2b2lk
IEV2ZW50c0NvbGxlY3Rvcjo6YWRkRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAg
IG1fdG90YWxMZW5ndGggKz0gbWVzc2FnZS5sZW5ndGgoKTsKKyAgICBtX2V2ZW50cy5hcHBlbmQo
bWVzc2FnZSk7CisgICAgd2hpbGUgKG1fdG90YWxMZW5ndGggPiBtYXhDYXBhY2l0eSkgeworICAg
ICAgICBtX3RvdGFsTGVuZ3RoIC09IG1fZXZlbnRzWzBdLmxlbmd0aCgpOworICAgICAgICBtX2V2
ZW50cy5yZW1vdmUoMCk7CisgICAgfQorfQorCit2b2lkIEV2ZW50c0NvbGxlY3Rvcjo6c2VuZENv
bGxlY3RlZEV2ZW50cyhJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIHJlY2VpdmVyKQoreworICAg
IGZvciAoVmVjdG9yPFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gbV9ldmVudHMuYmVnaW4oKTsgaXQg
IT0gbV9ldmVudHMuZW5kKCk7ICsraXQpCisgICAgICAgIHJlY2VpdmVyLT5zZW5kTWVzc2FnZVRv
RnJvbnRlbmQoKml0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9F
dmVudHNDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9FdmVudHNDb2xsZWN0
b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTNlMTA5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0V2ZW50c0NvbGxlY3Rvci5oCkBA
IC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRXZlbnRzQ29sbGVjdG9yX2gKKyNk
ZWZpbmUgRXZlbnRzQ29sbGVjdG9yX2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWw7CisKK2NsYXNzIEV2
ZW50c0NvbGxlY3RvciB7CitwdWJsaWM6CisgICAgRXZlbnRzQ29sbGVjdG9yKCk7CisgICAgfkV2
ZW50c0NvbGxlY3RvcigpIHsgfQorICAgIHZvaWQgYWRkRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKTsKKyAgICB2b2lkIHNlbmRDb2xsZWN0ZWRFdmVudHMoSW5zcGVjdG9yRnJvbnRlbmRDaGFu
bmVsKik7Citwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4Q2FwYWNpdHkgPSAx
MDI0KjEwMjQ7IC8vIDEgTWIKKyAgICBzaXplX3QgbV90b3RhbExlbmd0aDsKKyAgICBWZWN0b3I8
U3RyaW5nPiBtX2V2ZW50czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vICFkZWZpbmVkKEV2ZW50c0NvbGxlY3Rvcl9oKQorCisjZW5kaWYgLy8gRU5BQkxFKElOU1BF
Q1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
biBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAxZmNkNDVm
Li4wZDkzMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Lmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC00
MzEsNiArNDMxLDE4IEBACiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCiAgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZG9tQ29udGVudEV2ZW50RmlyZWQiLAor
ICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInRpbWUiLCAidHlwZSI6ICJudW1iZXIiIH0KKyAgICAgICAgICAgICAgICBdCisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImxvYWRF
dmVudEZpcmVkIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ0aW1lIiwgInR5cGUiOiAibnVtYmVyIiB9CisgICAgICAgICAg
ICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJmcmFtZURldGFjaGVkIiwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RmlyZWQgd2hlbiBmcmFtZSBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIGl0cyBwYXJlbnQuIiwKICAg
ICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi40ZTIxODhkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIgorCisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKworI2luY2x1ZGUgIkV2ZW50c0NvbGxlY3Rvci5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSW5zcGVj
dG9yRnJvbnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xsZWN0b3Iq
IGNvbGxlY3RvcikKK3sKKyAgICBtX3JlY2VpdmVyID0gMDsKKyAgICBtX2NvbGxlY3RvciA9IGNv
bGxlY3RvcjsKK30KKworSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6SW5zcGVjdG9yRnJvbnRlbmRQ
cm94eShFdmVudHNDb2xsZWN0b3IqIGNvbGxlY3RvciwgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
KiBuZXh0Q2hhbm5lbCkKK3sKKyAgICBtX2NvbGxlY3RvciA9IGNvbGxlY3RvcjsKKyAgICBtX3Jl
Y2VpdmVyID0gbmV4dENoYW5uZWw7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTo6
c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCogcmVj
ZWl2ZXIpCit7CisgICAgbV9yZWNlaXZlciA9IHJlY2VpdmVyOworfQorCit2b2lkIEluc3BlY3Rv
ckZyb250ZW5kUHJveHk6OnNldEV2ZW50c0NvbGxlY3RvcihFdmVudHNDb2xsZWN0b3IqIGNvbGxl
Y3RvcikKK3sKKyAgICBtX2NvbGxlY3RvciA9IGNvbGxlY3RvcjsKK30KKworYm9vbCBJbnNwZWN0
b3JGcm9udGVuZFByb3h5OjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQoreworICAgIG1fY29sbGVjdG9yLT5hZGRFdmVudChtZXNzYWdlKTsKKyAgICBpZiAobV9y
ZWNlaXZlcikKKyAgICAgICAgcmV0dXJuIG1fcmVjZWl2ZXItPnNlbmRNZXNzYWdlVG9Gcm9udGVu
ZChtZXNzYWdlKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yNTlhZjY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kUHJveHkuaApAQCAtMCwwICsxLDU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIEluc3BlY3RvckZyb250ZW5kUHJveHlfaAorI2RlZmluZSBJbnNwZWN0
b3JGcm9udGVuZFByb3h5X2gKKworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisKKyNpbmNsdWRlICJJ
bnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEV2ZW50c0NvbGxlY3RvcjsKKworY2xhc3MgSW5z
cGVjdG9yRnJvbnRlbmRQcm94eSA6IHB1YmxpYyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwgewor
cHVibGljOgorICAgIGV4cGxpY2l0IEluc3BlY3RvckZyb250ZW5kUHJveHkoRXZlbnRzQ29sbGVj
dG9yKik7CisgICAgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShFdmVudHNDb2xsZWN0b3IqLCBJbnNw
ZWN0b3JGcm9udGVuZENoYW5uZWwqIG5leHRDaGFubmVsKTsKKyAgICB2aXJ0dWFsIH5JbnNwZWN0
b3JGcm9udGVuZFByb3h5KCkgeyB9CisKKyAgICB2b2lkIHNldEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbChJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqKTsKKyAgICB2b2lkIHNldEV2ZW50c0NvbGxl
Y3RvcihFdmVudHNDb2xsZWN0b3IqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VUb0Zy
b250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9y
RnJvbnRlbmRDaGFubmVsKiBtX3JlY2VpdmVyOworICAgIEV2ZW50c0NvbGxlY3RvciogbV9jb2xs
ZWN0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
SU5TUEVDVE9SKQorCisjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yRnJvbnRlbmRQcm94eV9o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAppbmRleCBkMmI3M2Y0Li5hYjE3MTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTA5LDYg
KzUwOSw5IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVk
RXZlbnRGaXJlZEltcGwoSW5zcGVjdG9yQWdlbnQqIGluCiAgICAgaWYgKEluc3BlY3RvclRpbWVs
aW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC0+aW5zdHJ1bWVudGluZ0Fn
ZW50cygpLT5pbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCiAgICAgICAgIHRpbWVsaW5lQWdlbnQt
PmRpZE1hcmtET01Db250ZW50RXZlbnQoKTsKIAorICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KiByZXNvdXJjZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMo
KS0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQorICAgICAgICByZXNvdXJjZUFnZW50LT5kb21D
b250ZW50RXZlbnRGaXJlZCgpOworCiAgICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFn
ZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUGFn
ZUFnZW50KCkpCiAgICAgICAgIHBhZ2VBZ2VudC0+ZG9tQ29udGVudEV2ZW50RmlyZWQoKTsKIH0K
QEAgLTUyNyw2ICs1MzAsOSBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2
ZW50RmlyZWRJbXBsKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudAogICAgIGlmIChJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3Ry
dW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQogICAgICAgICB0aW1l
bGluZUFnZW50LT5kaWRNYXJrTG9hZEV2ZW50KCk7CiAKKyAgICBpZiAoSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdl
bnRzKCktPmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKKyAgICAgICAgcmVzb3VyY2VBZ2VudC0+
bG9hZEV2ZW50RmlyZWQoKTsKKwogICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCA9IGluc3BlY3RvckFnZW50LT5pbnN0cnVtZW50aW5nQWdlbnRzKCktPmluc3BlY3RvclBhZ2VB
Z2VudCgpKQogICAgICAgICBwYWdlQWdlbnQtPmxvYWRFdmVudEZpcmVkKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5k
ZXggNzdjNDY0ZS4uZWRmNjk4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtNjEyLDcgKzYxMiw3IEBAIGlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlVc2VyQWdlbnRPdmVycmlkZShGcmFt
ZSogZnJhbWUsIFN0cmluCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxTZW5kUmVxdWVzdChGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
Ci0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpYyA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5k
Rm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaWMgPSBpbnNwZWN0b3JB
Z2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgd2lsbFNlbmRSZXF1ZXN0SW1wbChpYywgaWRl
bnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKICNlbmRpZgogfQpA
QCAtNjUxLDcgKzY1MSw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb25zdCBJbnNwZWN0b3JJbnN0CiBpbmxpbmUgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJl
Y2VpdmVSZXNvdXJjZVJlc3BvbnNlKEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0
b3JBZ2VudFdpdGhGcm9udGVuZEZvckZyYW1lKGZyYW1lKSkKKyAgICBpZiAoSW5zcGVjdG9yQWdl
bnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRGb3JGcmFtZShmcmFtZSkpCiAgICAg
ICAgIHJldHVybiB3aWxsUmVjZWl2ZVJlc291cmNlUmVzcG9uc2VJbXBsKGluc3BlY3RvckFnZW50
LCBpZGVudGlmaWVyLCByZXNwb25zZSk7CiAjZW5kaWYKICAgICByZXR1cm4gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llKCk7CkBAIC02NjgsNyArNjY4LDcgQEAgaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShjb25zdCBJ
bnNwZWN0b3IKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2
ZUNvbnRlbnRMZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGlu
dCBkYXRhTGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBk
aWRSZWNlaXZlQ29udGVudExlbmd0aEltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIGRh
dGFMZW5ndGgsIGxlbmd0aFJlY2VpdmVkKTsKICNlbmRpZgogfQpAQCAtNjc2LDcgKzY3Niw3IEBA
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZUNvbnRlbnRM
ZW5ndGgoRnJhbWUqIGZyYW1lLCB1bnNpCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZEZpbmlzaExvYWRpbmcoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAg
aWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZy
b250ZW5kRm9yRnJhbWUoZnJhbWUpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9y
QWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZvckZyYW1lKGZyYW1lKSkKICAgICAgICAgZGlkRmluaXNo
TG9hZGluZ0ltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOwogI2Vu
ZGlmCiB9CkBAIC03MDgsNyArNzA4LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzY3JpcHRJbXBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb24KIGlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZG9tQ29udGVudExvYWRlZEV2ZW50Rmly
ZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdl
bnRXaXRoRnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBp
bnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBk
b21Db250ZW50TG9hZGVkRXZlbnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwp
OwogI2VuZGlmCiB9CkBAIC03MTYsNyArNzE2LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkb21Db250ZW50TG9hZGVkRXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGMK
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6bG9hZEV2ZW50RmlyZWQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAg
ICBpZiAoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRo
RnJvbnRlbmRGb3JGcmFtZShmcmFtZSkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0
b3JBZ2VudCA9IGluc3BlY3RvckFnZW50Rm9yRnJhbWUoZnJhbWUpKQogICAgICAgICBsb2FkRXZl
bnRGaXJlZEltcGwoaW5zcGVjdG9yQWdlbnQsIGZyYW1lLCB1cmwpOwogI2VuZGlmCiB9CkBAIC03
MjQsNyArNzI0LDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpsb2Fk
RXZlbnRGaXJlZChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHUKIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZnJhbWVEZXRhY2hlZEZyb21QYXJlbnQoRnJhbWUqIGZyYW1l
KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNw
ZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50V2l0aEZyb250ZW5kRm9yRnJhbWUoZnJhbWUpKQor
ICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudEZv
ckZyYW1lKGZyYW1lKSkKICAgICAgICAgZnJhbWVEZXRhY2hlZEZyb21QYXJlbnRJbXBsKGluc3Bl
Y3RvckFnZW50LCBmcmFtZSk7CiAjZW5kaWYKIH0KQEAgLTc5Miw3ICs3OTIsNyBAQCBpbmxpbmUg
dm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERlc3Ryb3lXb3JrZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogYwogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBLVVJMJiByZXF1ZXN0VVJMLCBjb25zdCBLVVJMJiBk
b2N1bWVudFVSTCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JB
Z2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRl
eHQoY29udGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGlu
c3BlY3RvckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlkQ3JlYXRlV2ViU29j
a2V0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdFVSTCwgZG9jdW1lbnRV
UkwpOwogI2VuZGlmCiB9CkBAIC04MDAsNyArODAwLDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCoKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2Nr
ZXRIYW5kc2hha2VSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCog
aW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29u
dGV4dCkpCisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3Rv
ckFnZW50Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgd2lsbFNlbmRXZWJTb2NrZXRIYW5k
c2hha2VSZXF1ZXN0SW1wbChpbnNwZWN0b3JBZ2VudCwgaWRlbnRpZmllciwgcmVxdWVzdCk7CiAj
ZW5kaWYKIH0KQEAgLTgwOCw3ICs4MDgsNyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChTY3JpcHRFeAogaW5s
aW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFu
ZHNoYWtlUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSYgcmVzcG9u
c2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zcGVjdG9yQWdlbnQqIGlu
c3BlY3RvckFnZW50ID0gaW5zcGVjdG9yQWdlbnRXaXRoRnJvbnRlbmRGb3JDb250ZXh0KGNvbnRl
eHQpKQorICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JB
Z2VudEZvckNvbnRleHQoY29udGV4dCkpCiAgICAgICAgIGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5k
c2hha2VSZXNwb25zZUltcGwoaW5zcGVjdG9yQWdlbnQsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsK
ICNlbmRpZgogfQpAQCAtODE2LDcgKzgxNiw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKFNjcmlwCiBp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikK
IHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JBZ2VudCogaW5zcGVj
dG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudFdpdGhGcm9udGVuZEZvckNvbnRleHQoY29udGV4dCkp
CisgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3BlY3RvckFnZW50
Rm9yQ29udGV4dChjb250ZXh0KSkKICAgICAgICAgZGlkQ2xvc2VXZWJTb2NrZXRJbXBsKGluc3Bl
Y3RvckFnZW50LCBpZGVudGlmaWVyKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuY3BwCmluZGV4IDk1Y2ViY2YuLmQw
ZDFhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2VBZ2VudC5jcHAKQEAgLTM0LDIxICszNCwyNCBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAKICNpbmNsdWRlICJCYXNlNjQuaCIKLSNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCisjaW5j
bHVkZSAiRXZlbnRzQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUVFBIZWFkZXJNYXAuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5o
IgorI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kUHJveHkuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgogI2luY2x1ZGUgIkluc3Ry
dW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTWVtb3J5Q2Fj
aGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtODgsMTEgKzkxLDIyIEBAIHN0YXRpYyBjb25z
dCBjaGFyIG90aGVyW10gPSAiT3RoZXIiOwogdm9pZCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpz
ZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCiB7CiAgICAgbV9mcm9udGVu
ZCA9IGZyb250ZW5kLT5uZXR3b3JrKCk7CisgICAgaWYgKGJhY2tncm91bmRFdmVudHNDb2xsZWN0
aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIC8vIEluc2VydCBNZXNzYWdlIFByb3h5IGluIHJlY2Vp
dmVyIGNoYWluLgorICAgICAgICBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwqIGNsaWVudCA9IG1f
ZnJvbnRlbmQtPmdldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCgpOworICAgICAgICBtX2luc3Bl
Y3RvckZyb250ZW5kUHJveHktPnNldEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbChjbGllbnQpOwor
ICAgICAgICBtX2Zyb250ZW5kLT5zZXRJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwobV9pbnNwZWN0
b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICAgICAgbV9ldmVudHNDb2xsZWN0b3ItPnNlbmRD
b2xsZWN0ZWRFdmVudHMoY2xpZW50KTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCiB7Ci0gICAgbV9mcm9udGVuZCA9IDA7CisgICAgaWYg
KGJhY2tncm91bmRFdmVudHNDb2xsZWN0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIG1faW5zcGVj
dG9yRnJvbnRlbmRQcm94eS0+c2V0SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKDApOworICAgICAg
ICBtX2Zyb250ZW5kID0gbV9tb2NrRnJvbnRlbmQuZ2V0KCk7CisgICAgfSBlbHNlCisgICAgICAg
IG1fZnJvbnRlbmQgPSAwOwogICAgIGRpc2FibGUoMCk7CiB9CiAKQEAgLTEwNSw3ICsxMTksNyBA
QCB2b2lkIEluc3BlY3RvclJlc291cmNlQWdlbnQ6OnJlc3RvcmUoKQogdm9pZCBJbnNwZWN0b3JS
ZXNvdXJjZUFnZW50OjpyZXNvdXJjZUNvbnRlbnQoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nKiByZXN1bHQpCiB7CiAgICAgaWYg
KCFmcmFtZSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiTm8gZnJhbWUgdG8gZ2V0IHJlc291
cmNlIGNvbnRlbnQgZm9yIjsgCisgICAgICAgICplcnJvclN0cmluZyA9ICJObyBmcmFtZSB0byBn
ZXQgcmVzb3VyY2UgY29udGVudCBmb3IiOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0y
NzgsNiArMjkyLDEwIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gYnVpbGRP
YmplY3RGb3JDYWNoZWRSZXNvdXJjZShjb25zdCBDYWNoZWRSZXNvCiAKIEluc3BlY3RvclJlc291
cmNlQWdlbnQ6On5JbnNwZWN0b3JSZXNvdXJjZUFnZW50KCkKIHsKKyAgICBpZiAobV9zdGF0ZS0+
Z2V0Qm9vbGVhbihSZXNvdXJjZUFnZW50U3RhdGU6OnJlc291cmNlQWdlbnRFbmFibGVkKSkgewor
ICAgICAgICBFcnJvclN0cmluZyBlcnJvcjsKKyAgICAgICAgZGlzYWJsZSgmZXJyb3IpOworICAg
IH0KICAgICBBU1NFUlQoIW1faW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VB
Z2VudCgpKTsKIH0KIApAQCAtMzcxLDYgKzM4OSwxNiBAQCB2b2lkIEluc3BlY3RvclJlc291cmNl
QWdlbnQ6OnNldEluaXRpYWxYSFJDb250ZW50KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
cwogICAgIG1fZnJvbnRlbmQtPmluaXRpYWxDb250ZW50U2V0KHN0YXRpY19jYXN0PGludD4oaWRl
bnRpZmllciksIHNvdXJjZVN0cmluZywgUmVzb3VyY2VUeXBlOjp4aHIpOwogfQogCit2b2lkIElu
c3BlY3RvclJlc291cmNlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKCkKK3sKKyAgICBtX2Zy
b250ZW5kLT5kb21Db250ZW50RXZlbnRGaXJlZChjdXJyZW50VGltZSgpKTsKK30KKwordm9pZCBJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50Ojpsb2FkRXZlbnRGaXJlZCgpCit7CisgICAgbV9mcm9udGVu
ZC0+bG9hZEV2ZW50RmlyZWQoY3VycmVudFRpbWUoKSk7Cit9CisKIHN0YXRpYyBQYXNzUmVmUHRy
PEluc3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAg
ICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gZnJhbWVPYmplY3QgPSBJbnNwZWN0b3JPYmplY3Q6
OmNyZWF0ZSgpOwpAQCAtNDgzLDYgKzUxMSwxNCBAQCBGcmFtZSogSW5zcGVjdG9yUmVzb3VyY2VB
Z2VudDo6ZnJhbWVGb3JJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpCiAgICAgcmV0dXJuIDA7CiB9
CiAKK2Jvb2wgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6YmFja2dyb3VuZEV2ZW50c0NvbGxlY3Rp
b25FbmFibGVkKCkKK3sKKyAgICAvLyBGSVhNRSAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU4NjUyKQorICAgIC8vIEFkZCBoZXJlIGNvbmRpdGlvbiB0byBlbmFibGUg
YmFja2dyb3VuZCBldmVudHMgY29sbGVjdGlvbi4KKyAgICAvLyBOb3cgdGhpcyBmdW5jdGlvbiBp
cyBkaXNhYmxlLgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBJbnNwZWN0b3JSZXNvdXJj
ZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogewogICAgIGVuYWJsZSgpOwpAQCAtNTI5LDgg
KzU2NSwxNiBAQCBJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpJbnNwZWN0b3JSZXNvdXJjZUFnZW50
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbgogICAgIDogbV9pbnN0cnVtZW50aW5n
QWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMpCiAgICAgLCBtX3BhZ2UocGFnZSkKICAgICAsIG1f
c3RhdGUoc3RhdGUpCi0gICAgLCBtX2Zyb250ZW5kKDApCiB7CisgICAgaWYgKGJhY2tncm91bmRF
dmVudHNDb2xsZWN0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIG1fZXZlbnRzQ29sbGVjdG9yID0g
bmV3IEV2ZW50c0NvbGxlY3RvcigpOworICAgICAgICBtX2luc3BlY3RvckZyb250ZW5kUHJveHkg
PSBuZXcgSW5zcGVjdG9yRnJvbnRlbmRQcm94eShtX2V2ZW50c0NvbGxlY3Rvci5nZXQoKSk7Cisg
ICAgICAgIC8vIENyZWF0ZSBtb2NrIGZyb250ZW5kLCBzbyB3ZSBjYW4gY29sbGVjdCBuZXR3b3Jr
IGV2ZW50cy4KKyAgICAgICAgbV9tb2NrRnJvbnRlbmQgPSBuZXcgSW5zcGVjdG9yRnJvbnRlbmQ6
Ok5ldHdvcmsobV9pbnNwZWN0b3JGcm9udGVuZFByb3h5LmdldCgpKTsKKyAgICAgICAgbV9mcm9u
dGVuZCA9IG1fbW9ja0Zyb250ZW5kLmdldCgpOworICAgICAgICBlbmFibGUoKTsKKyAgICB9IGVs
c2UKKyAgICAgICAgbV9mcm9udGVuZCA9IDA7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
CmluZGV4IDEyZjBmZTMuLjI3ZGRjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JSZXNvdXJjZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclJlc291cmNlQWdlbnQuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
Ikluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKIAorI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNTEsMTAgKzUyLDEyIEBAIGNsYXNzIERvY3VtZW50TG9h
ZGVyOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIEluc3BlY3Rv
ckZyb250ZW5kOworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRQcm94eTsKIGNsYXNzIEluc3BlY3Rv
ck9iamVjdDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50
czsKIGNsYXNzIEtVUkw7CitjbGFzcyBFdmVudHNDb2xsZWN0b3I7CiBjbGFzcyBQYWdlOwogY2xh
c3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKQEAgLTk3LDYgKzEwMCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShEb2N1
bWVudExvYWRlciosIGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCBzZXRJbml0aWFs
U2NyaXB0Q29udGVudCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlU3RyaW5nKTsKICAgICB2b2lkIHNldEluaXRpYWxYSFJDb250ZW50KHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpbmcpOworICAgIHZvaWQgZG9tQ29u
dGVudEV2ZW50RmlyZWQoKTsKKyAgICB2b2lkIGxvYWRFdmVudEZpcmVkKCk7CiAgICAgdm9pZCBk
aWRDb21taXRMb2FkKERvY3VtZW50TG9hZGVyKik7CiAgICAgdm9pZCBmcmFtZURldGFjaGVkRnJv
bVBhcmVudChGcmFtZSopOwogCkBAIC0xMDgsNiArMTEzLDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICAgICBGcmFtZSogZnJhbWVGb3JJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpOworICAgIGJvb2wg
YmFja2dyb3VuZEV2ZW50c0NvbGxlY3Rpb25FbmFibGVkKCk7CiAKICAgICAvLyBDYWxsZWQgZnJv
bSBmcm9udGVuZCAKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwpAQCAtMTI0LDcgKzEz
MCwxMCBAQCBwcml2YXRlOgogICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1bWVudGlu
Z0FnZW50czsKICAgICBQYWdlKiBtX3BhZ2U7CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1fc3RhdGU7
CisgICAgT3duUHRyPEV2ZW50c0NvbGxlY3Rvcj4gbV9ldmVudHNDb2xsZWN0b3I7CiAgICAgSW5z
cGVjdG9yRnJvbnRlbmQ6Ok5ldHdvcmsqIG1fZnJvbnRlbmQ7CisgICAgT3duUHRyPEluc3BlY3Rv
ckZyb250ZW5kOjpOZXR3b3JrPiBtX21vY2tGcm9udGVuZDsKKyAgICBPd25QdHI8SW5zcGVjdG9y
RnJvbnRlbmRQcm94eT4gbV9pbnNwZWN0b3JGcm9udGVuZFByb3h5OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9OZXR3b3JrTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvTmV0d29ya01hbmFnZXIuanMKaW5kZXggYTVhNTNjYi4uNWVlODE4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrTWFuYWdlci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtNYW5hZ2VyLmpzCkBA
IC0xNTAsNiArMTUwLDE4IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrRGlzcGF0Y2hlci5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX3VwZGF0ZVJlc291cmNlKHJlc291cmNlKTsKICAgICB9LAog
CisgICAgZG9tQ29udGVudEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUpCisgICAgeworICAgICAg
ICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZURPTUNvbnRlbnRUaW1lID0gdGltZTsKKyAg
ICB9LAorCisgICAgbG9hZEV2ZW50RmlyZWQ6IGZ1bmN0aW9uKHRpbWUpCisgICAgeworICAgICAg
ICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5uZXR3b3JrKQorICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnBhbmVscy5uZXR3b3JrLm1haW5SZXNvdXJjZUxvYWRUaW1lID0gdGltZTsKKyAgICB9LAor
CiAgICAgZGF0YVJlY2VpdmVkOiBmdW5jdGlvbihpZGVudGlmaWVyLCB0aW1lLCBkYXRhTGVuZ3Ro
LCBsZW5ndGhSZWNlaXZlZCkKICAgICB7CiAgICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX2lu
ZmxpZ2h0UmVzb3VyY2VzQnlJZFtpZGVudGlmaWVyXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggNTEwZjkzMS4uZGRjZmFhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAg
LTk4OSwxNSArOTg5LDEyIEBAIFdlYkluc3BlY3Rvci5zdGFydFVzZXJJbml0aWF0ZWREZWJ1Z2dp
bmcgPSBmdW5jdGlvbigpCiBXZWJJbnNwZWN0b3IuZG9tQ29udGVudEV2ZW50RmlyZWQgPSBmdW5j
dGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1ZGl0cy5tYWluUmVzb3VyY2VET01Db250
ZW50VGltZSA9IHRpbWU7Ci0gICAgaWYgKHRoaXMucGFuZWxzLm5ldHdvcmspCi0gICAgICAgIHRo
aXMucGFuZWxzLm5ldHdvcmsubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwogICAg
IHRoaXMubWFpblJlc291cmNlRE9NQ29udGVudFRpbWUgPSB0aW1lOwogfQogCiBXZWJJbnNwZWN0
b3IubG9hZEV2ZW50RmlyZWQgPSBmdW5jdGlvbih0aW1lKQogewogICAgIHRoaXMucGFuZWxzLmF1
ZGl0cy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7Ci0gICAgdGhpcy5wYW5lbHMubmV0d29y
ay5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7CiAgICAgdGhpcy5wYW5lbHMucmVzb3VyY2Vz
LmxvYWRFdmVudEZpcmVkKCk7CiAgICAgdGhpcy5tYWluUmVzb3VyY2VMb2FkVGltZSA9IHRpbWU7
CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>