<?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>40092</bug_id>
          
          <creation_ts>2010-06-02 17:25:37 -0700</creation_ts>
          <short_desc>spellcheck does not check pasted text</short_desc>
          <delta_ts>2010-12-12 22:07:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ddavidso</cc>
    
    <cc>dglazkov</cc>
    
    <cc>emerick</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>hbono</cc>
    
    <cc>jiapu.mail</cc>
    
    <cc>mitz</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>peter</cc>
    
    <cc>sam</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233519</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-06-02 17:25:37 -0700</bug_when>
    <thetext>For example, copy &quot;foo baz&quot; into your clipboard and paste it into a bugzilla comment.  &quot;foo&quot; doesn&apos;t get a red underline because it isn&apos;t checked.

This is similar to bug 37050.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233902</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-03 13:41:58 -0700</bug_when>
    <thetext>Interestingly, TextEdit on Mac OS X 10.5 has similar behavior - but that&apos;s not the case on 10.6 for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248118</commentid>
    <comment_count>2</comment_count>
      <attachid>60861</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-07-08 03:05:19 -0700</bug_when>
    <thetext>Created attachment 60861
A draft implementation (only for discussion)

Greetings,

I have quickly implemented an asynchronous spellchecker which uses [NSSpellChecker requestCheckingOfString:] so we can check the spellings (and grammar) of pasted text in the background on 10.6. Unfortunately, this change needs xcode 3.2 to compile it because it depends on GCD (Grand Central Dispatch). Even though this change does not include layout tests and is not ready for review, it may be good for starting a discussion to solve this issue. (I&apos;m writing a change for &lt;https://bugs.webkit.org/show_bug.cgi?id=41832&gt; to write a layout test for this issue.)

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251016</commentid>
    <comment_count>3</comment_count>
      <attachid>61480</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-07-14 01:19:49 -0700</bug_when>
    <thetext>Created attachment 61480
Another draft implementation

Greetings,

Even though nobody gave me any comments to my previous one, I have added a layout test to start a review process. Is it possible to review this change?

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251018</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 01:21:22 -0700</bug_when>
    <thetext>Attachment 61480 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/editing/Editor.cpp:1196:  Use 0 instead of NULL.  [readability/null] [5]
WebKit/mac/WebView/WebFrame.mm:1622:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 19 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>251022</commentid>
    <comment_count>5</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-14 01:29:09 -0700</bug_when>
    <thetext>Attachment 61480 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3528128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251025</commentid>
    <comment_count>6</comment_count>
      <attachid>61485</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-07-14 01:35:02 -0700</bug_when>
    <thetext>Created attachment 61485
Draft implementation #2

Sorry, my previous change causes a build break on GTK.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251026</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 01:36:51 -0700</bug_when>
    <thetext>Attachment 61485 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/editing/Editor.cpp:1198:  Use 0 instead of NULL.  [readability/null] [5]
WebKit/mac/WebView/WebFrame.mm:1622:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 19 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>251033</commentid>
    <comment_count>8</comment_count>
      <attachid>61488</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-07-14 01:47:59 -0700</bug_when>
    <thetext>Created attachment 61488
Draft implementation #3

Sorry for my annoying updates. I have fixed style issues in my previous change.

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251038</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 01:57:04 -0700</bug_when>
    <thetext>Attachment 61480 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3533064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251042</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 02:00:11 -0700</bug_when>
    <thetext>Attachment 61480 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3545048</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255425</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-23 09:33:16 -0700</bug_when>
    <thetext>IIRC Doug did the recent spell-checking work in WebKit and might want to see this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255431</commentid>
    <comment_count>12</comment_count>
    <who name="Douglas Davidson">ddavidso</who>
    <bug_when>2010-07-23 09:38:53 -0700</bug_when>
    <thetext>Yes, I&apos;m definitely interested in looking at this.  Unfortunately I will not be available until 8/13, but I would like to see an asynchronous implementation.  Jia Pu is also working in this area.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255438</commentid>
    <comment_count>13</comment_count>
      <attachid>61488</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-23 09:45:00 -0700</bug_when>
    <thetext>Comment on attachment 61488
Draft implementation #3

WebCore/editing/Editor.cpp:1172
 +      String text;
I would have put this &quot;get me the text I need to process&quot; block in its own function to make this one simpler.

WebCore/editing/Editor.cpp:1187
 +  Node* Editor::getSpellingNode(Node* node)
We don&apos;t use get in names in WebKit.

WebCore/editing/Editor.cpp:1236
 +      m_spellingNode = 0;
This could be a set or reset function given how you always set these both at once.  Maybe these need to be a struct held by the object?

WebCore/editing/Editor.cpp:1207
 +      if (node) {
Early return is almost always cleaner.

WebCore/editing/Editor.cpp:1220
 +              Position end(start);
We have a PositionIterator for this sort of thing.

WebCore/editing/Editor.cpp:1230
 +              String source(m_spellingText.substring(results[i].location, results[i].length));
Personally I tend to use = over assignment constructors myself.

WebCore/editing/Editor.h:70
 +          : type(DocumentMarker::Spelling), location(0), length(0) { }
Each assignment gets its own line.

WebCore/editing/Editor.h:350
 +      Node* getSpellingNode(Node*);
Again, no &quot;get&quot; functions in WebKit.

WebKit/mac/ChangeLog:31
 +  2010-07-14  Hironori Bono  &lt;hbono@chromium.org&gt;
Double ChangeLog entry!

WebKit/mac/WebCoreSupport/WebEditorClient.mm:827
 +  #if MAC_OS_X_VERSION_MAX_ALLOWED &gt;= MAC_OS_X_VERSION_10_6 &amp;&amp; NS_BLOCKS_AVAILABLE
NS_BLOCKS_AVAILABLE?

WebKit/mac/WebCoreSupport/WebEditorClient.mm:839
 +      [[NSSpellChecker sharedSpellChecker] requestCheckingOfString:text range:NSMakeRange(0, text.length()) types:NSTextCheckingAllSystemTypes options:0 inSpellDocumentWithTag:0 completionHandler:^(NSInteger sequenceNumber, NSArray *results, NSOrthography *orthography, NSInteger wordCount) {
Woh.  Please split this into multiple lines using local variables.

WebKit/mac/WebView/WebFrame.mm:1596
 +          switch ([[results objectAtIndex:i] resultType]) {
I would have put this switch into an inline function instead of inlining it here to make this loop easier to read.

WebKit/mac/WebView/WebFrame.mm:1614
 +  static Node* getSpellingNode(Frame* coreFrame)
No &quot;get&quot; in function names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258082</commentid>
    <comment_count>14</comment_count>
      <attachid>63034</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-07-30 00:27:11 -0700</bug_when>
    <thetext>Created attachment 63034
Draft implementation #4

Greetings Eric,

Thank you for your review and comments.
I have added the AsyncSpellCheckerController class to encapsulate some spellchecker-specific code and apply your comments. (I may miss some of them, though.)

(In reply to comment #13)
&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:827
&gt;  +  #if MAC_OS_X_VERSION_MAX_ALLOWED &gt;= MAC_OS_X_VERSION_10_6 &amp;&amp; NS_BLOCKS_AVAILABLE
&gt; NS_BLOCKS_AVAILABLE?

This define means we can use GCD (Grand Central Dispatch), which is required by [NSSpellChecker requestCheckingOfString:]. (Even though GCD is enabled by default on 10.6, we can disable it. So it may be safer to add this define in my code.)

It is definitely helpful to review the updated one and give me your comments?

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267757</commentid>
    <comment_count>15</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-08-22 22:17:51 -0700</bug_when>
    <thetext>ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270321</commentid>
    <comment_count>16</comment_count>
      <attachid>65679</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-08-26 23:00:06 -0700</bug_when>
    <thetext>Created attachment 65679
Draft implementation #5

Greetings,

Even though nobody reviewed my pervious change, I would like to update my change because my previous change does not compile any longer. Would it be possible to give me your comments?

Regards,

Hironori Bono</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272591</commentid>
    <comment_count>17</comment_count>
      <attachid>65679</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-31 19:50:21 -0700</bug_when>
    <thetext>Comment on attachment 65679
Draft implementation #5

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

&gt; WebCore/editing/Editor.cpp:321
&gt; +#if PLATFORM(MAC)
&gt; +    requestCheckingOfFocusedNodeText();
&gt; +#endif
I don&apos;t understand why this code has so many #if defs.  Should this code be in a Mac-specific file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272613</commentid>
    <comment_count>18</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-08-31 20:50:56 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; WebCore/editing/Editor.cpp:321
&gt; &gt; +#if PLATFORM(MAC)
&gt; &gt; +    requestCheckingOfFocusedNodeText();
&gt; &gt; +#endif
&gt; I don&apos;t understand why this code has so many #if defs.  Should this code be in a Mac-specific file?

Thank you for your comment.
In fact, most code under &quot;WebCore&quot; does not need #if defs. Nevertheless, I enclosed them with #if and #endif since this code needs special functions like [requestCheckingOfString:] or threads. Therefore, I&apos;m wondering if other platforms except Mac (and Chromium) would like to use this code. (The Chromium implementation is a little more complicated: it consists of a WebKit change and a Chromium change. So, I would like to send them with another change.)

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273830</commentid>
    <comment_count>19</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-09-03 01:12:16 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; I don&apos;t understand why this code has so many #if defs.  Should this code be in a Mac-specific file?

By the way, I&apos;m a little wondering about the intention of your comment. Would you like to fix this issue only by changing Mac-specific files, to fix this issue without using Mac-specific functions, or something else?

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273983</commentid>
    <comment_count>20</comment_count>
      <attachid>65679</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-03 09:56:42 -0700</bug_when>
    <thetext>Comment on attachment 65679
Draft implementation #5

Our usual approach would be to put in fewer ifdefs, and compile in more of the infrastructure for the feature even on platforms that don&apos;t have it yet.

Editor.h should not have all those PLATFORM(MAC) #if statements.

It’s also not good to add new classes to existing files. We probably want to add new source files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275576</commentid>
    <comment_count>21</comment_count>
      <attachid>65679</attachid>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-09-07 20:04:41 -0700</bug_when>
    <thetext>Comment on attachment 65679
Draft implementation #5

Greetings,

I would like to cancel this review request since Morita-san kindly takes over this bug.

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275692</commentid>
    <comment_count>22</comment_count>
      <attachid>66859</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-08 02:15:30 -0700</bug_when>
    <thetext>Created attachment 66859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275695</commentid>
    <comment_count>23</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-08 02:18:01 -0700</bug_when>
    <thetext>Hi Darin, thank you for reviewing!
As Bono-san mentioned, I&apos;m taking this patch over him.

&gt; 
&gt; Editor.h should not have all those PLATFORM(MAC) #if statements.
&gt; 
&gt; It’s also not good to add new classes to existing files. We probably want to add new source files.

Updated patch introduce SpellChecker class, which defined in separated files.
The patch also attempt to minimize ifdefs.
Could you take a look at it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275750</commentid>
    <comment_count>24</comment_count>
      <attachid>66879</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-08 04:33:44 -0700</bug_when>
    <thetext>Created attachment 66879
sync up to the latest tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275760</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-08 05:00:25 -0700</bug_when>
    <thetext>Attachment 66879 did not build on mac:
Build output: http://queues.webkit.org/results/3966293</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276264</commentid>
    <comment_count>26</comment_count>
      <attachid>66988</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-08 18:55:25 -0700</bug_when>
    <thetext>Created attachment 66988
An attempt to fix build on Loopard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276273</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-08 19:22:51 -0700</bug_when>
    <thetext>Attachment 66988 did not build on mac:
Build output: http://queues.webkit.org/results/3930286</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276296</commentid>
    <comment_count>28</comment_count>
      <attachid>66994</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-08 20:42:28 -0700</bug_when>
    <thetext>Created attachment 66994
Another attempt to fix build on Loopard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276394</commentid>
    <comment_count>29</comment_count>
      <attachid>67016</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-09 03:39:35 -0700</bug_when>
    <thetext>Created attachment 67016
Saved the buildbot delay</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276918</commentid>
    <comment_count>30</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-09 18:30:07 -0700</bug_when>
    <thetext>Long queue of windows bot prevents patches with new file from built successfully.
I&apos;d like to leave it to avoid making the queue longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292893</commentid>
    <comment_count>31</comment_count>
      <attachid>70518</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-12 02:36:16 -0700</bug_when>
    <thetext>Created attachment 70518
took care of textInput event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293321</commentid>
    <comment_count>32</comment_count>
      <attachid>70592</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-13 01:59:41 -0700</bug_when>
    <thetext>Created attachment 70592
Updated to lastest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293327</commentid>
    <comment_count>33</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-13 02:15:51 -0700</bug_when>
    <thetext>Attachment 70592 did not build on qt:
Build output: http://queues.webkit.org/results/4406004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293355</commentid>
    <comment_count>34</comment_count>
      <attachid>70599</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-13 04:41:19 -0700</bug_when>
    <thetext>Created attachment 70599
Fixing Qt WebKit2 build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297012</commentid>
    <comment_count>35</comment_count>
      <attachid>70599</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-20 14:04:27 -0700</bug_when>
    <thetext>Comment on attachment 70599
Fixing Qt WebKit2 build

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

This generally appears sane.  It would be nice if Doug or one of the Apple folks could comment on the Obj-C.  r- for the nits.

&gt; WebCore/dom/DocumentMarkerController.h:77
&gt; +void showDocumentMarkers(const WebCore::DocumentMarkerController*);

Why is this outside of WebCore?

&gt; WebCore/editing/Editor.cpp:3663
&gt; +static Node* findFirstMarkable(Node* node)

We didn&apos;t have this logic before?

&gt; WebCore/editing/SpellChecker.h:35
&gt; +struct SpellCheckingResult {

Structs rarely stay structs for long...

&gt; WebCore/editing/SpellChecker.h:48
&gt; +class SpellChecker {

Seems this should inherit from NonCopyable.

&gt; WebCore/editing/SpellChecker.h:53
&gt; +    bool isAsynchronousEnabled() const;

is &quot;Enabled&quot; needed here?

&gt; WebCore/editing/SpellChecker.h:54
&gt; +    bool isAsynchronousAvailableFor(Node*) const;

canCheckAsynchronously(node)?  I&apos;m not sure what this function does so my naming suggestions may make little sense.

&gt; WebCore/editing/SpellChecker.h:57
&gt; +    bool isCheckeable(Node* node) const;

isCheckable?  Also, &quot;node&quot; is not needed here.

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:954
&gt; +    RetainPtr&lt;NSArray&gt; _results;

Seems a bit odd, but I guess this is Objective c++?  Are destructors called for obj-c++?  Isn&apos;t there a new fancy obj-c2 way to do autoretain?

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:978
&gt; +- (WTF::Vector&lt;WebCore::SpellCheckingResult&gt;) _coreResults

Extra space &quot;lt&gt;) _coreR&quot;

&gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:995
&gt; +    for (size_t i = 0; i &lt; [results count]; ++i) {
&gt; +        NSTextCheckingType type = [[results objectAtIndex:i] resultType];
&gt; +        if (type &amp; NSTextCheckingTypeSpelling)
&gt; +            coreResults[i].type = DocumentMarker::Spelling;
&gt; +        else if (type &amp; NSTextCheckingTypeGrammar)
&gt; +            coreResults[i].type = DocumentMarker::Grammar;
&gt; +        else
&gt; +            coreResults[i].type = DocumentMarker::AllMarkers;
&gt; +
&gt; +        NSRange range = [[results objectAtIndex:i] range];
&gt; +        coreResults[i].location = range.location;
&gt; +        coreResults[i].length = range.length;
&gt; +    }

This feels like a function passed to a map.  Sadly I don&apos;t think obj-c has list comprehensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297015</commentid>
    <comment_count>36</comment_count>
    <who name="Douglas Davidson">ddavidso</who>
    <bug_when>2010-10-20 14:07:23 -0700</bug_when>
    <thetext>We&apos;ll need to look at this and see how it meshes with what we&apos;re doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297017</commentid>
    <comment_count>37</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-10-20 14:09:49 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; &gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:954
&gt; &gt; +    RetainPtr&lt;NSArray&gt; _results;
&gt; 
&gt; Seems a bit odd, but I guess this is Objective c++?  Are destructors called for obj-c++?

Yes.

&gt; Isn&apos;t there a new fancy obj-c2 way to do autoretain?

The fancy new Objective-C 2 way to do it would be to have property access handle the retain/release or to use garbage collection.

Using a RetainPtr is the right way to do it in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297389</commentid>
    <comment_count>38</comment_count>
      <attachid>71426</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-21 05:36:42 -0700</bug_when>
    <thetext>Created attachment 71426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297392</commentid>
    <comment_count>39</comment_count>
      <attachid>71427</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-21 05:59:41 -0700</bug_when>
    <thetext>Created attachment 71427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297394</commentid>
    <comment_count>40</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-21 06:00:24 -0700</bug_when>
    <thetext>Eric and Everybody, thanks for giving a review!
I update the patch to address Eric&apos;s point.

&gt; &gt; WebCore/dom/DocumentMarkerController.h:77
&gt; &gt; +void showDocumentMarkers(const WebCore::DocumentMarkerController*);
&gt; 
&gt; Why is this outside of WebCore?
It follows RenderObject.cpp:showRenderTree() style. 
The function is designed to be called from gdb, so be in global namespace matters.

&gt; 
&gt; &gt; WebCore/editing/Editor.cpp:3663
&gt; &gt; +static Node* findFirstMarkable(Node* node)
&gt; 
&gt; We didn&apos;t have this logic before?
Unfortunately, no. Other part of spellchecking is immediately done once
It finds a candidate to mark. So they need no extra traversing. 
But we need it because we mark them later.

&gt; 
&gt; &gt; WebCore/editing/SpellChecker.h:35
&gt; &gt; +struct SpellCheckingResult {
&gt; 
&gt; Structs rarely stay structs for long...
Agreed. Made it to a class.

&gt; 
&gt; &gt; WebCore/editing/SpellChecker.h:48
&gt; &gt; +class SpellChecker {
&gt; 
&gt; Seems this should inherit from NonCopyable.
Done.

&gt; 
&gt; &gt; WebCore/editing/SpellChecker.h:53
&gt; &gt; +    bool isAsynchronousEnabled() const;
&gt; 
&gt; is &quot;Enabled&quot; needed here?
I think so. It is asking EditorClient to the setting.

&gt; 
&gt; &gt; WebCore/editing/SpellChecker.h:54
&gt; &gt; +    bool isAsynchronousAvailableFor(Node*) const;
&gt; 
&gt; canCheckAsynchronously(node)?  I&apos;m not sure what this function does so my naming suggestions may make little sense.
Done. I agree that brief name is preferable.

&gt; 
&gt; &gt; WebCore/editing/SpellChecker.h:57
&gt; &gt; +    bool isCheckeable(Node* node) const;
&gt; 
&gt; isCheckable?  Also, &quot;node&quot; is not needed here.
Done.

&gt; 
&gt; &gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:954
&gt; &gt; +    RetainPtr&lt;NSArray&gt; _results;
&gt; 
&gt; Seems a bit odd, but I guess this is Objective c++?  Are destructors called for obj-c++?  Isn&apos;t there a new fancy obj-c2 way to do autoretain?
It looks OK, as Darin mentioned.

&gt; 
&gt; &gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:978
&gt; &gt; +- (WTF::Vector&lt;WebCore::SpellCheckingResult&gt;) _coreResults
&gt; 
&gt; Extra space &quot;lt&gt;) _coreR&quot;
Done.

&gt; 
&gt; &gt; WebKit/mac/WebCoreSupport/WebEditorClient.mm:995
&gt; &gt; +    for (size_t i = 0; i &lt; [results count]; ++i) {
&gt; &gt; +        NSTextCheckingType type = [[results objectAtIndex:i] resultType];
&gt; &gt; +        if (type &amp; NSTextCheckingTypeSpelling)
&gt; &gt; +            coreResults[i].type = DocumentMarker::Spelling;
&gt; &gt; +        else if (type &amp; NSTextCheckingTypeGrammar)
&gt; &gt; +            coreResults[i].type = DocumentMarker::Grammar;
&gt; &gt; +        else
&gt; &gt; +            coreResults[i].type = DocumentMarker::AllMarkers;
&gt; &gt; +
&gt; &gt; +        NSRange range = [[results objectAtIndex:i] range];
&gt; &gt; +        coreResults[i].location = range.location;
&gt; &gt; +        coreResults[i].length = range.length;
&gt; &gt; +    }
&gt; 
&gt; This feels like a function passed to a map.  Sadly I don&apos;t think obj-c has list comprehensions.
Agreed but there is no map() from NSArray to WTF::Vector.
So I factored out the logic  to make it more map()-like feeling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297395</commentid>
    <comment_count>41</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-21 06:02:39 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; We&apos;ll need to look at this and see how it meshes with what we&apos;re doing.
Hi Davidson!
Please take a look. Any feedback are appreciated.
I just this is not so large change. large chunks of the code is just a boilerplate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300532</commentid>
    <comment_count>42</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-10-27 13:55:34 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; (In reply to comment #36)
&gt; &gt; We&apos;ll need to look at this and see how it meshes with what we&apos;re doing.
&gt; Hi Davidson!
&gt; Please take a look. Any feedback are appreciated.
&gt; I just this is not so large change. large chunks of the code is just a boilerplate.

Since we don&apos;t do autocorrection for pasted text, this patch doesn&apos;t seem interfere with our recent work on autocorrection. But I&apos;d like to apply to apply this patch on 10.7, see if everything work together. I will let you know.

My other concern is racing condition when multiple threads call  [NSSpellChecker requestCheckingOfString:]. Is it possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300789</commentid>
    <comment_count>43</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-27 18:53:47 -0700</bug_when>
    <thetext>Hi Jia, thank you for taking a look! 

&gt; 
&gt; Since we don&apos;t do autocorrection for pasted text, this patch doesn&apos;t seem interfere with our recent work on autocorrection. But I&apos;d like to apply to apply this patch on 10.7, see if everything work together. I will let you know.

Hmm. on the other hand, we need this for chromium (with separate EditorClient  implementation)...
How about this? :
To land the patch, with the async check settings false.
And doing the experiments before landing it true (at 10.7 release?).
In this way, Chromium port can enable the feature 
with keeping other ports&apos; behavior unchanged at this time.
(I hope every ports to enable the flag at a certain timing. 
But it might need more experiments as you mentioned.)

In my feeling, what really matters here is introducing the async spellcheck API.
Without it, we cannot run spellchecking against larger chunks of text 
like copy-paste, dynamic @spellcheck attribute change, etc.
And for Chromium (sorry for mentioning a specific port again...),
A grammar check could be done by a separate process so async API is unavoidable.

&gt; 
&gt; My other concern is racing condition when multiple threads call  [NSSpellChecker requestCheckingOfString:]. Is it possible?

Since WebKit is single-threaded, [NSSpellChecker requestCheckingOfString:] is 
only called from the main thread.
Although NSSpellChecker looks to run the actual check logic on another (worker) thread,
it is managed by NSSpellChecker. So we wouldn&apos;t care about that.

A tricky part is that the passed completionHandler is called at the worker thread.
To void a race, We go back to the main thread using [NSRunLoop performSelector:].
We touch WebCore objects only on the main thread by doing so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300801</commentid>
    <comment_count>44</comment_count>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2010-10-27 19:05:14 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; Hi Jia, thank you for taking a look! 
&gt; 
&gt; &gt; 
&gt; &gt; Since we don&apos;t do autocorrection for pasted text, this patch doesn&apos;t seem interfere with our recent work on autocorrection. But I&apos;d like to apply to apply this patch on 10.7, see if everything work together. I will let you know.
&gt; 
&gt; Hmm. on the other hand, we need this for chromium (with separate EditorClient  implementation)...
&gt; How about this? :
&gt; To land the patch, with the async check settings false.
I just tried the patch. It seems play well with autocorrection on Mac. This is likely a desirable behavior on Mac as well, but I think we should land it with async set to false for now, just to be safe.

&gt; In my feeling, what really matters here is introducing the async spellcheck API.
&gt; Without it, we cannot run spellchecking against larger chunks of text 
&gt; like copy-paste, dynamic @spellcheck attribute change, etc.

Agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300817</commentid>
    <comment_count>45</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-27 19:28:26 -0700</bug_when>
    <thetext>Hi Jia,

&gt; I just tried the patch. It seems play well with autocorrection on Mac. This is likely a desirable behavior on Mac as well, but I think we should land it with async set to false for now, just to be safe.

Thank you for trying this!
So I&apos;ll disable the default settings and add LayoutTestController method to make it enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300986</commentid>
    <comment_count>46</comment_count>
      <attachid>72168</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-28 04:39:09 -0700</bug_when>
    <thetext>Created attachment 72168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300987</commentid>
    <comment_count>47</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-28 04:42:03 -0700</bug_when>
    <thetext>Updated the patch. It
- introduced Settings::m_asynchronousSpellCheckingEnabled, false as default.
- added a LayoutTestController API to enable it.
- removed EditorClient::isAsynchronousSpellCheckingEnabled(), replaced by settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300993</commentid>
    <comment_count>48</comment_count>
      <attachid>72170</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-28 04:47:27 -0700</bug_when>
    <thetext>Created attachment 72170
trying to make efl bot happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301017</commentid>
    <comment_count>49</comment_count>
      <attachid>72177</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-28 06:00:18 -0700</bug_when>
    <thetext>Created attachment 72177
resolving conflict</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301038</commentid>
    <comment_count>50</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-28 06:48:47 -0700</bug_when>
    <thetext>Attachment 72177 did not build on qt:
Build output: http://queues.webkit.org/results/4848049</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301098</commentid>
    <comment_count>51</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-28 09:14:37 -0700</bug_when>
    <thetext>Attachment 72177 did not build on chromium:
Build output: http://queues.webkit.org/results/4836056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301458</commentid>
    <comment_count>52</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-28 16:49:31 -0700</bug_when>
    <thetext>Attachment 72177 did not build on chromium:
Build output: http://queues.webkit.org/results/4873014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301529</commentid>
    <comment_count>53</comment_count>
      <attachid>72283</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-10-28 18:40:35 -0700</bug_when>
    <thetext>Created attachment 72283
trying to fix build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302988</commentid>
    <comment_count>54</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-11-01 15:27:38 -0700</bug_when>
    <thetext>Could anyone take a look ?
I think we got a consensus and the patch is ready to review.

Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307666</commentid>
    <comment_count>55</comment_count>
      <attachid>73564</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-11-10 18:03:03 -0800</bug_when>
    <thetext>Created attachment 73564
Updated to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310080</commentid>
    <comment_count>56</comment_count>
      <attachid>74074</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-11-16 18:39:49 -0800</bug_when>
    <thetext>Created attachment 74074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319318</commentid>
    <comment_count>57</comment_count>
      <attachid>76023</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-12-09 01:05:11 -0800</bug_when>
    <thetext>Created attachment 76023
Updated to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319819</commentid>
    <comment_count>58</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-12-09 17:33:12 -0800</bug_when>
    <thetext>Ojan, thank you reviewing!
Darin, Alexey, I&apos;ll land this if there is no objection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320938</commentid>
    <comment_count>59</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-12-12 22:07:04 -0800</bug_when>
    <thetext>Committed r73886: &lt;http://trac.webkit.org/changeset/73886&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60861</attachid>
            <date>2010-07-08 03:05:19 -0700</date>
            <delta_ts>2010-07-14 01:19:49 -0700</delta_ts>
            <desc>A draft implementation (only for discussion)</desc>
            <filename>issue40092-patch0.txt</filename>
            <type>text/plain</type>
            <size>17116</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2Mjc3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDctMDggIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW1wbGVtZW50IGFuIGFzeW5jaHJvbm91cyBzcGVsbC1jaGVja2VyIGFuZCB1c2UgaXQgd2hlbiBw
YXN0aW5nIHRleHQuCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDAwOTI+CisgICAgICAgIFRoaXMgY2hhbmdlIGNvbnNpc3RzIG9mIHR3byBwYXJ0czog
YWRkaW5nIEVkaXRvcjo6YWRkU3BlbGxpbmdNYXJrZXJzKCkKKyAgICAgICAgc28gY29tcGxldGlv
biBoYW5kbGVycyBjYW4gcmVuZGVyIHNwZWxsaW5nIChvciBncmFtbWFyKSBtYXJrZXJzLCBhbmQ7
CisJYWRkaW5nIHJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5kIGNhbGwgaXQg
d2hlbiBwYXN0aW5nIHRleHQKKwlzbyB3ZSBjYW4gc3BlbGxjaGVjayB0aGUgcGFzdGVkIHRleHQg
aW4gdGhlIGJhY2tncm91bmQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OkVkaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXF1ZXN0Q2hlY2tpbmdPZkZvY3Vz
ZWROb2RlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmdldFNwZWxsaW5nTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFkZFNwZWxsaW5nTWFya2Vycyk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1
bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQu
aDoKKwogMjAxMC0wNy0wNyAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNp
b24gNjI3NDIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC01
NjgsNiArNTY4LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjEzdHJ5REhUTUxQYXN0ZUV2CiBfX1pO
N1dlYkNvcmU2RWRpdG9yMTRzZXRDb21wb3NpdGlvbkVSS05TXzZTdHJpbmdFUktOM1dURjZWZWN0
b3JJTlNfMjBDb21wb3NpdGlvblVuZGVybGluZUVMbTBFRUVqagogX19aTjdXZWJDb3JlNkVkaXRv
cjE2cGFzdGVBc1BsYWluVGV4dEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMTdpbnNlcnRPcmRlcmVk
TGlzdEV2CitfX1pON1dlYkNvcmU2RWRpdG9yMThhZGRTcGVsbGluZ01hcmtlcnNFaVJLTjNXVEY2
VmVjdG9ySU5TXzE5U3BlbGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk43V2ViQ29yZTZFZGl0
b3IxOGNvbmZpcm1Db21wb3NpdGlvbkVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9y
MThjb25maXJtQ29tcG9zaXRpb25FdgogX19aTjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERp
cmVjdGlvbkVOU18xOVNlbGVjdGlvbkNvbnRyb2xsZXIxMEVEaXJlY3Rpb25FTlNfMTVUZXh0R3Jh
bnVsYXJpdHlFYmIKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCShyZXZpc2lvbiA2Mjc0MikKKysrIFdlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NDAsNiArOTQwLDcgQEAg
RWRpdG9yOjpFZGl0b3IoRnJhbWUqIGZyYW1lKQogICAgIC8vIFRoaXMgaXMgb2ZmIGJ5IGRlZmF1
bHQsIHNpbmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZpb3IgKHRoaXMgbWF0Y2hlcyBJ
RSBidXQgbm90IEZGKS4KICAgICAsIG1fc2hvdWxkU3R5bGVXaXRoQ1NTKGZhbHNlKQogICAgICwg
bV9raWxsUmluZyhuZXcgS2lsbFJpbmcpCisgICAgLCBtX3NwZWxsaW5nU2VxdWVuY2UoMCkKIHsg
CiB9CiAKQEAgLTEwNzMsMTIgKzEwNzQsMTcgQEAgdm9pZCBFZGl0b3I6OnBhc3RlKCkKICAgICBp
ZiAoIWNhblBhc3RlKCkpCiAgICAgICAgIHJldHVybjsKICAgICBEb2NMb2FkZXIqIGxvYWRlciA9
IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvY0xvYWRlcigpOworCiAgICAgbG9hZGVyLT5zZXRBbGxv
d1N0YWxlUmVzb3VyY2VzKHRydWUpOwogICAgIGlmIChtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+aXND
b250ZW50UmljaGx5RWRpdGFibGUoKSkKICAgICAgICAgcGFzdGVXaXRoUGFzdGVib2FyZChQYXN0
ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpLCB0cnVlKTsKICAgICBlbHNlCiAgICAgICAgIHBh
c3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2Fy
ZCgpKTsKICAgICBsb2FkZXItPnNldEFsbG93U3RhbGVSZXNvdXJjZXMoZmFsc2UpOworCisjaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyAgICByZXF1ZXN0Q2hlY2tpbmdP
ZkZvY3VzZWROb2RlVGV4dCgpOworI2VuZGlmCiB9CiAKICNlbmRpZgpAQCAtMTA5MCw2ICsxMDk2
LDcgQEAgdm9pZCBFZGl0b3I6OnBhc3RlQXNQbGFpblRleHQoKQogICAgIGlmICghY2FuUGFzdGUo
KSkKICAgICAgICAgcmV0dXJuOwogICAgIHBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZChQ
YXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2FyZCgpKTsKKyAgICByZXF1ZXN0Q2hlY2tpbmdPZkZv
Y3VzZWROb2RlVGV4dCgpOwogfQogCiB2b2lkIEVkaXRvcjo6cGVyZm9ybURlbGV0ZSgpCkBAIC0x
MTQ4LDYgKzExNTUsNzkgQEAgaW50IEVkaXRvcjo6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKQog
ICAgIHJldHVybiBjbGllbnQoKSA/IGNsaWVudCgpLT5zcGVsbENoZWNrZXJEb2N1bWVudFRhZygp
IDogMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oQ0hST01JVU0pCitib29s
IEVkaXRvcjo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCit7CisgICAgcmV0
dXJuIGNsaWVudCgpICYmIGNsaWVudCgpLT5pc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpyZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4
dCgpCit7CisgICAgaWYgKCFpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgfHwg
bV9zcGVsbGluZ05vZGUuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIE5vZGUqIGZvY3Vz
ZWROb2RlID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKTsKKyAgICBpZiAoIWZv
Y3VzZWROb2RlIHx8ICFmb2N1c2VkTm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgU3RyaW5nIHRleHQ7CisgICAgaWYgKGZvY3VzZWROb2RlLT5yZW5kZXJlcigpLT5pc1Rl
eHRGaWVsZCgpKQorICAgICAgICB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+
KGZvY3VzZWROb2RlKS0+dmFsdWUoKTsKKyAgICBlbHNlIGlmIChmb2N1c2VkTm9kZS0+cmVuZGVy
ZXIoKS0+aXNUZXh0QXJlYSgpKQorICAgICAgICB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRB
cmVhRWxlbWVudCo+KGZvY3VzZWROb2RlKS0+dmFsdWUoKTsKKyAgICBlbHNlCisgICAgICAgIHRl
eHQgPSBmb2N1c2VkTm9kZS0+dGV4dENvbnRlbnQoKTsKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fc3BlbGxpbmdOb2RlID0gZm9jdXNlZE5vZGU7Cisg
ICAgbV9zcGVsbGluZ1RleHQgPSB0ZXh0OworICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZygrK21fc3BlbGxpbmdTZXF1ZW5jZSwgdGV4dCk7Cit9CisKK05vZGUqIEVkaXRvcjo6
Z2V0U3BlbGxpbmdOb2RlKE5vZGUqIG5vZGUpCit7CisgICAgZm9yIChjb25zdCBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsgcmVuZGVyZXI7IHJlbmRlcmVyID0gcmVu
ZGVyZXItPmNoaWxkQXQoMCkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc1RleHQoKSkKKyAg
ICAgICAgICAgIHJldHVybiByZW5kZXJlci0+bm9kZSgpOworICAgIH0KKyAgICByZXR1cm4gTlVM
TDsKK30KKwordm9pZCBFZGl0b3I6OmFkZFNwZWxsaW5nTWFya2VycyhpbnQgc2VxdWVuY2UsIGNv
bnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykKK3sKKyAgICBpZiAoIW1f
c3BlbGxpbmdOb2RlLmdldCgpIHx8ICFtX3NwZWxsaW5nVGV4dC5sZW5ndGgoKSB8fCBtX3NwZWxs
aW5nU2VxdWVuY2UgIT0gc2VxdWVuY2UpCisgICAgICAgIHJldHVybjsKKworICAgIE5vZGUqIG5v
ZGUgPSBnZXRTcGVsbGluZ05vZGUobV9zcGVsbGluZ05vZGUuZ2V0KCkpOworICAgIGlmIChub2Rl
KSB7CisgICAgICAgIGludCBzdGFydE9mZnNldCA9IDA7CisgICAgICAgIFBvc2l0aW9uIHN0YXJ0
KG5vZGUsIDApOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJr
ZXI6OlNwZWxsaW5nICYmIHJlc3VsdHNbaV0udHlwZSAhPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1h
cikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgQVNTRVJUKHN0YXJ0
T2Zmc2V0IDw9IHJlc3VsdHNbaV0ubG9jYXRpb24pOworICAgICAgICAgICAgZm9yICg7IHN0YXJ0
T2Zmc2V0IDwgcmVzdWx0c1tpXS5sb2NhdGlvbjsgKytzdGFydE9mZnNldCkKKyAgICAgICAgICAg
ICAgICBzdGFydCA9IHN0YXJ0Lm5leHQoKTsKKworICAgICAgICAgICAgUG9zaXRpb24gZW5kKHN0
YXJ0KTsKKyAgICAgICAgICAgIGZvciAoaW50IGxlbmd0aCA9IDA7IGxlbmd0aCA8IHJlc3VsdHNb
aV0ubGVuZ3RoOyArK2xlbmd0aCkKKyAgICAgICAgICAgICAgICBlbmQgPSBlbmQubmV4dCgpOwor
CisgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlKFJhbmdlOjpjcmVhdGUobV9mcmFtZS0+
ZG9jdW1lbnQoKSwgc3RhcnQsIGVuZCkpOworICAgICAgICAgICAgU3RyaW5nIGRlc3RpbmF0aW9u
KHJhbmdlLT50ZXh0KCkpOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZShtX3NwZWxsaW5nVGV4
dC5zdWJzdHJpbmcocmVzdWx0c1tpXS5sb2NhdGlvbiwgcmVzdWx0c1tpXS5sZW5ndGgpKTsKKyAg
ICAgICAgICAgIGlmIChkZXN0aW5hdGlvbiA9PSBzb3VyY2UpCisgICAgICAgICAgICAgICAgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgpLCByZXN1bHRzW2ldLnR5cGUp
OworICAgICAgICB9CisgICAgfQorCisgICAgbV9zcGVsbGluZ05vZGUgPSAwOworICAgIG1fc3Bl
bGxpbmdUZXh0ID0gU3RyaW5nKCk7Cit9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpCiAKIHZvaWQgRWRpdG9yOjp1cHBlcmNhc2VXb3JkKCkKSW5kZXg6IFdlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHJldmlz
aW9uIDYyNzQyKQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJDbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCIKICNp
bmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAi
RWRpdEFjdGlvbi5oIgogI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvci5oIgogI2luY2x1ZGUgIkVk
aXRvckRlbGV0ZUFjdGlvbi5oIgpAQCAtNjQsNiArNjUsMTQgQEAgZW51bSBUcmlTdGF0ZSB7IEZh
bHNlVHJpU3RhdGUsIFRydWVUcmlTdAogZW51bSBFZGl0b3JDb21tYW5kU291cmNlIHsgQ29tbWFu
ZEZyb21NZW51T3JLZXlCaW5kaW5nLCBDb21tYW5kRnJvbURPTSwgQ29tbWFuZEZyb21ET01XaXRo
VXNlckludGVyZmFjZSB9OwogZW51bSBXcml0aW5nRGlyZWN0aW9uIHsgTmF0dXJhbFdyaXRpbmdE
aXJlY3Rpb24sIExlZnRUb1JpZ2h0V3JpdGluZ0RpcmVjdGlvbiwgUmlnaHRUb0xlZnRXcml0aW5n
RGlyZWN0aW9uIH07CiAKK3N0cnVjdCBTcGVsbENoZWNraW5nUmVzdWx0IHsKKyAgICBTcGVsbENo
ZWNraW5nUmVzdWx0KCkKKyAgICAgICAgOiB0eXBlKERvY3VtZW50TWFya2VyOjpTcGVsbGluZyks
IGxvY2F0aW9uKDApLCBsZW5ndGgoMCkgeyB9CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5
cGUgdHlwZTsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50IGxlbmd0aDsKK307CisKIGNsYXNz
IEVkaXRvciB7CiBwdWJsaWM6CiAgICAgRWRpdG9yKEZyYW1lKik7CkBAIC0yMjMsNiArMjMyLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFySW5S
YW5nZXMoYm9vbCBtYXJrU3BlbGxpbmcsIFJhbmdlKiBzcGVsbGluZ1JhbmdlLCBib29sIG1hcmtH
cmFtbWFyLCBSYW5nZSogZ3JhbW1hclJhbmdlLCBib29sIHBlcmZvcm1UZXh0Q2hlY2tpbmdSZXBs
YWNlbWVudHMpOwogICAgIHZvaWQgY2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcoY29uc3QgU3Ry
aW5nJiByZXBsYWNlZFN0cmluZyk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKENIUk9NSVVNKQorICAgIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCgpOworICAgIHZvaWQgYWRkU3BlbGxpbmdNYXJrZXJzKGludCwgY29uc3QgVmVjdG9yPFNwZWxs
Q2hlY2tpbmdSZXN1bHQ+Jik7CisjZW5kaWYKICAgICB2b2lkIGFkdmFuY2VUb05leHRNaXNzcGVs
bGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uID0gZmFsc2UpOwogICAgIHZvaWQgc2hvd1Nw
ZWxsaW5nR3Vlc3NQYW5lbCgpOwogICAgIGJvb2wgc3BlbGxpbmdQYW5lbElzU2hvd2luZygpOwpA
QCAtMzA3LDYgKzMyMCwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhD
U1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tpbGxSaW5nOwogCisjaWYgUExBVEZPUk0oTUFD
KSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyAgICBSZWZQdHI8Tm9kZT4gbV9zcGVsbGluZ05vZGU7
CisgICAgU3RyaW5nIG1fc3BlbGxpbmdUZXh0OworICAgIGludCBtX3NwZWxsaW5nU2VxdWVuY2U7
CisjZW5kaWYKKwogICAgIGJvb2wgY2FuRGVsZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKICAgICBi
b29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqKTsKICAgICBQYXNz
UmVmUHRyPENsaXBib2FyZD4gbmV3R2VuZXJhbENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xp
Y3kpOwpAQCAtMzI1LDYgKzM0NCwxMSBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IGxhc3RWaXNpYmxlUmFuZ2UoY29uc3QgU3RyaW5nJiwgYm9vbCBjYXNlRmxhZyk7CiAgICAgCiAg
ICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYgbmV3U2VsZWN0aW9uLCBib29sIGNsb3NlVHlwaW5nLCBib29sIGNsZWFyVHlwaW5nU3R5bGUp
OworCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyAgICB2b2lkIHJl
cXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCk7CisgICAgTm9kZSogZ2V0U3BlbGxpbmdO
b2RlKE5vZGUqKTsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRWRpdG9yOjpzZXRTdGFydE5l
d0tpbGxSaW5nU2VxdWVuY2UoYm9vbCBmbGFnKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJl
dmlzaW9uIDYyNzQyKQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzMiw4ICs0MzIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzcGVs
bGluZ1VJSXNTaG93aW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKSB7IH0KLQotCisjaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKGludCwgY29uc3QgU3RyaW5nJikgeyB9Cisj
ZW5kaWYKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgJKHJldmlzaW9uIDYyNzQyKQorKysgV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODQsNiArMTg0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
c3BlbGxpbmdVSUlzU2hvd2luZygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpID0gMDsKKyNpZiBQ
TEFURk9STShNQUMpIHx8IFBMQVRGT1JNKENIUk9NSVVNKQorICAgIHZpcnR1YWwgYm9vbCBpc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKKyNlbmRpZgog
fTsKIAogfQpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDYyNzc0KQorKysgV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNy0wOCAgSGlyb25vcmkgQm9ubyAgPGhib25v
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgYW4gYXN5bmNocm9ub3VzIHNwZWxsLWNoZWNrZXIgYW5kIHVzZSBp
dCB3aGVuIHBhc3RpbmcgdGV4dC4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDA5Mj4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50
Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQuIEFuIGVtcHR5IGZ1
bmN0aW9uIHRvIGF2b2lkIGEgYnVpbGQgYnJlYWsuCisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4gQW4gZW1wdHkgZnVuY3Rp
b24gdG8gYXZvaWQgYSBidWlsZCBicmVhay4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEwLTA3LTA3ICBab2x0YW4gSG9ydmF0aCAg
PHpvbHRhbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuLgpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHJldmlzaW9uIDYyNzQyKQorKysgV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQxOCw1ICs0MTgsMTYgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0
TWV0aG9kU3RhdAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViRWRpdG9yQ2xp
ZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKGludCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApJbmRleDogV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAko
cmV2aXNpb24gNjI3NDIpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAsOCBAQCBwcml2YXRl
OiAgICAKICAgICB2aXJ0dWFsIGJvb2wgc3BlbGxpbmdVSUlzU2hvd2luZygpOwogICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXZWJDb3JlOjpTdHJpbmcmLCBWZWN0b3I8
V2ViQ29yZTo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhpbnQsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwogCiAgICAgV2ViUGFnZSogbV9w
YWdlOwogfTsKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2Mjc3NCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDctMDggIEhpcm9ub3JpIEJv
bm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IGFuIGFzeW5jaHJvbm91cyBzcGVsbC1jaGVja2Vy
IGFuZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQuCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTI+CisgICAgICAgIFRoaXMgY2hhbmdlIHVzZXMg
W05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXSwgYSBuZXcKKyAgICAgICAg
TlNTcGVsbENoZWNrZXIgaW50ZXJmYWNlIGludHJvZHVjZWQgYnkgMTAuNiwgdG8gY2hlY2sgdGhl
IHBhc3RlZCB0ZXh0CisgICAgICAgIGluIHRoZSBiYWNrZ3JvdW5kLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQuIFJldHVybnMKKyAgICAgICAgdHJ1ZSB3
aGVuIHdlIGNhbiB1c2UgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOl0u
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKTogQWRk
ZWQuIENhbGxzCisgICAgICAgIFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZzpdIHRvIGNoZWNrIHRoZSB0ZXh0IGluIHRoZQorICAgICAgICBiYWNrZ3JvdW5kLiBXaGVuIGl0
IGZpbmlzaGVzLCBpdCBjYWxscyBbV2ViRnJhbWUgYWRkU3BlbGxpbmdNYXJrZXJzOl0gdG8KKyAg
ICAgICAgcmVuZGVyIHRoZSByZXN1bHRzLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBhZGRT
cGVsbGluZ01hcmtlcnM6cmVzdWx0czpdKTogQWRkZWQuIAorCiAyMDEwLTA3LTA3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxz
c29uLgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
CShyZXZpc2lvbiA2Mjc0MikKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V2ViQ29y
ZTo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhpbnQsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lz
dGVyQ29tbWFuZEZvclVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4s
IGJvb2wgaXNSZWRvKTsKICAgICBXZWJFZGl0b3JDbGllbnQoKTsKSW5kZXg6IFdlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA2Mjc0MikKKysr
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC04MjEsMyArODIxLDIzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2Vz
Rm9yV29yZCgKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wp
CiB7CiB9CisKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkKK3sKKyNpZiBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19P
U19YX1ZFUlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZBSUxBQkxFCisgICAgLy8gRW5hYmxlIGFz
eW5jaHJvbm91cyBzcGVsbC1jaGVja2luZyBvbmx5IHdoZW4gd2UgY2FuIHVzZQorICAgIC8vIFtO
U1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10uCisgICAgcmV0dXJuIHRydWU7
CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIFdlYkVkaXRvckNs
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcm
IHRleHQpCit7CisjaWYgTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1NfWF9W
RVJTSU9OXzEwXzYgJiYgTlNfQkxPQ0tTX0FWQUlMQUJMRQorICAgIFtbTlNTcGVsbENoZWNrZXIg
c2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzp0ZXh0IHJhbmdlOk5T
TWFrZVJhbmdlKDAsIHRleHQubGVuZ3RoKCkpIHR5cGVzOk5TVGV4dENoZWNraW5nQWxsU3lzdGVt
VHlwZXMgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6MCBjb21wbGV0aW9uSGFuZGxl
cjpeKE5TSW50ZWdlciBzZXF1ZW5jZU51bWJlciwgTlNBcnJheSAqcmVzdWx0cywgTlNPcnRob2dy
YXBoeSAqb3J0aG9ncmFwaHksIE5TSW50ZWdlciB3b3JkQ291bnQpIHsKKyAgICAgICAgW1ttX3dl
YlZpZXcgc2VsZWN0ZWRGcmFtZV0gYWRkU3BlbGxpbmdNYXJrZXJzOnNlcXVlbmNlIHJlc3VsdHM6
cmVzdWx0c107CisgICAgfV07CisjZW5kaWYKK30KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5oCShy
ZXZpc2lvbiA2Mjc0MikKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTMsNCArMjEzLDExIEBAIEBpbnRlcmZhY2UgV2ViRnJhbWUgOiBOU09iamVj
dAogICAgIGJyaWRnZSBiZXR3ZWVuIHRoZSBXZWJLaXQgYW5kIEphdmFTY3JpcHRDb3JlIEFQSXMu
CiAqLwogLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQ7CisKKy8qIQorICAgIEBt
ZXRob2QgYWRkU3BlbGxpbmdNYXJrZXJzCisgICAgQHBhcmFtIHNlcXVlbmNlIHRoZSBzZXF1ZW5j
ZSBudW1iZXIgcHJvdmlkZWQgZnJvbSBXZWJDb3JlLgorICAgIEBwYXJhbSByZXN1bHRzIGFuIGFy
cmF5IG9mIE5TVGV4dENoZWNraW5nUmVzdWx0IG9iamVjdHMuCisgKi8KKy0gKHZvaWQpYWRkU3Bl
bGxpbmdNYXJrZXJzOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0czsKIEBl
bmQKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJldmlzaW9uIDYyNzQyKQorKysgV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgyLDQgKzE1ODIs
MzMgQEAgLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQKICAgICByZXR1cm4gdG9H
bG9iYWxSZWYoY29yZUZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3Jt
YWxXb3JsZCgpKS0+Z2xvYmFsRXhlYygpKTsKIH0KIAorLSAodm9pZClhZGRTcGVsbGluZ01hcmtl
cnM6KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisjaWYgTUFDX09T
X1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1NfWF9WRVJTSU9OXzEwXzYgJiYgTlNfQkxP
Q0tTX0FWQUlMQUJMRQorICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBzaXplX3QgY291
bnQgPSBbcmVzdWx0cyBjb3VudF07CisgICAgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+IG1h
cmtlcnMoY291bnQpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewor
ICAgICAgICBOU1JhbmdlIHJhbmdlID0gW1tyZXN1bHRzIG9iamVjdEF0SW5kZXg6aV0gcmFuZ2Vd
OworICAgICAgICBzd2l0Y2ggKFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OmldIHJlc3VsdFR5cGVd
KSB7CisgICAgICAgIGNhc2UgTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc6CisgICAgICAgICAg
ICBtYXJrZXJzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmc7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyOgorICAgICAg
ICAgICAgbWFya2Vyc1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIG1hcmtlcnNbaV0udHlw
ZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgICAgbWFya2Vyc1tpXS5sb2NhdGlvbiA9IHJhbmdlLmxvY2F0aW9uOworICAg
ICAgICBtYXJrZXJzW2ldLmxlbmd0aCA9IHJhbmdlLmxlbmd0aDsKKyAgICB9CisgICAgY29yZUZy
YW1lLT5lZGl0b3IoKS0+YWRkU3BlbGxpbmdNYXJrZXJzKHNlcXVlbmNlLCBtYXJrZXJzKTsKKyNl
bmRpZgorfQorCiBAZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61480</attachid>
            <date>2010-07-14 01:19:49 -0700</date>
            <delta_ts>2010-07-14 01:35:02 -0700</delta_ts>
            <desc>Another draft implementation</desc>
            <filename>issue40092-patch1.txt</filename>
            <type>text/plain</type>
            <size>29935</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzI4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDctMTQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3aGVuIHBhc3Rp
bmcgdGV4dAorICAgICAgICBvbiBNYWMgT1MgMTAuNi4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5Mj4KKyAgICAgICAgVGhpcyBjaGFuZ2UgY29u
c2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0czoKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgdG8gRWRp
dG9yQ2xpZW50CisgICAgICAgICAgc28gYSBjbGllbnQgY2FuIGltcGxlbWVudCBhc3luY2hyb25v
dXMgc3BlbGxjaGVja2luZzsKKyAgICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgYWJvdmUgaW50ZXJm
YWNlcyBmb3IgTWFjIE9TIDEwLjY7CisgICAgICAgICogQWRkZWQgYWRkU3BlbGxpbmdNYXJrZXJz
KCkgdG8gRWRpdG9yIHNvIGEgY2xpZW50IGNhbiBhZGQgc3BlbGxpbmcgKG9yIGdyYW1tYXIpIG1h
cmtlcnMKKyAgICAgICAgKiBBZGRlZCByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4dCgp
IGFuZCBjYWxsIGl0IHdoZW4gcGFzdGluZyB0ZXh0IHNvIHdlIGNhbgorICAgICAgICAgIHNwZWxs
Y2hlY2sgdGhlIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLCBhbmQ7CisgICAgICAgICog
QWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCBoYXNTcGVsbGlu
Z01hcmtlcigpIHRvCisgICAgICAgICAgVGV4dElucHV0Q29udHJvbGxlciBzbyB3ZSBjYW4gd3Jp
dGUgYSBsYXlvdXQgdGVzdC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
RWRpdG9yKTogSW5pdGlhbGl6ZXMgdGhlIHZhcmlhYmxlcyB1c2VkIGJ5IGFzeW5jaHJvbm91cyBz
cGVsbGNoZWNraW5nLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0
KTogQ2FsbHMgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKS4KKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KTog
U3BlbGxjaGVja3MgdGhlIHRleHQgb2YgdGhlIGZvY3VzZWQKKyAgICAgICAgbm9kZSBpbiB0aGUg
YmFja2dyb3VuZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Z2V0U3BlbGxpbmdOb2RlKTog
UmV0cmlldmVzIGEgdGV4dCBub2RlIHVzZWQgYnkgc3BlbGxjaGVja2luZy4KKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6YWRkU3BlbGxpbmdNYXJrZXJzKTogQXBwbGllcyBzcGVsbGNoZWNraW5n
IHJlc3VsdHMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOiBBIHN0cnVjdCB0aGF0
IHNwZWNpZmllcyBhCisgICAgICAgIHNwZWxsY2hlY2tpbmcgcmVzdWx0LgorICAgICAgICAqIGxv
YWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50
Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQgYW4gZW1wdHkKKyAg
ICAgICAgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiBBZGRlZCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kCisgICAgICAgIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KCkuCisKIDIwMTAtMDctMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNp
b24gNjMyNzQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC01
NDksNiArNTQ5LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjEzdHJ5REhUTUxQYXN0ZUV2CiBfX1pO
N1dlYkNvcmU2RWRpdG9yMTRzZXRDb21wb3NpdGlvbkVSS05TXzZTdHJpbmdFUktOM1dURjZWZWN0
b3JJTlNfMjBDb21wb3NpdGlvblVuZGVybGluZUVMbTBFRUVqagogX19aTjdXZWJDb3JlNkVkaXRv
cjE2cGFzdGVBc1BsYWluVGV4dEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMTdpbnNlcnRPcmRlcmVk
TGlzdEV2CitfX1pON1dlYkNvcmU2RWRpdG9yMThhZGRTcGVsbGluZ01hcmtlcnNFaVJLTjNXVEY2
VmVjdG9ySU5TXzE5U3BlbGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk43V2ViQ29yZTZFZGl0
b3IxOGNvbmZpcm1Db21wb3NpdGlvbkVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9y
MThjb25maXJtQ29tcG9zaXRpb25FdgogX19aTjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERp
cmVjdGlvbkVOU18xOVNlbGVjdGlvbkNvbnRyb2xsZXIxMEVEaXJlY3Rpb25FTlNfMTVUZXh0R3Jh
bnVsYXJpdHlFYmIKQEAgLTYwNSw2ICs2MDYsNyBAQCBfX1pON1dlYkNvcmU3bnNDb2xvckVSS05T
XzVDb2xvckUKIF9fWk43V2ViQ29yZThEb2N1bWVudDExY3JlYXRlUmFuZ2VFdgogX19aTjdXZWJD
b3JlOERvY3VtZW50MTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5
cGVFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxM3N2Z0V4dGVuc2lvbnNFdgorX19aTjdXZWJDb3Jl
OERvY3VtZW50MTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmU4RG9jdW1l
bnQxNHNldEZvY3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFCiBfX1pON1dl
YkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaQogX19aTjdXZWJDb3JlOERvY3VtZW50
MTdnZXRGb2N1c2FibGVOb2Rlc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzROb2RlRUVF
TG0wRUVFCkBAIC04MTQsNiArODE2LDcgQEAgX19aTks3V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBj
dXJyZW50S2V5YgogX19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlMTJkYXRhYmFzZVBhdGhFdgog
X19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlMjRzaG91bGRTdG9wVGhyZWFkQWN0aXZpdHlFdgog
X19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlOWlzRW5hYmxlZEV2CitfX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3Q3Y2hpbGRBdEVqCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xv
c2luZ0xheWVyRXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRl
RU5TXzEwRmxvYXRQb2ludEViYgogX19aTks3V2ViQ29yZTEyUmVuZGVyV2lkZ2V0MTR3aW5kb3dD
bGlwUmVjdEV2CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQwLDYgKzk0MCw3IEBAIEVk
aXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0
LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUg
YnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKICAgICAsIG1f
a2lsbFJpbmcobmV3IEtpbGxSaW5nKQorICAgICwgbV9zcGVsbGluZ1NlcXVlbmNlKDApCiB7IAog
fQogCkBAIC0xMDkwLDYgKzEwOTEsOSBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCgp
CiAgICAgaWYgKCFjYW5QYXN0ZSgpKQogICAgICAgICByZXR1cm47CiAgICAgcGFzdGVBc1BsYWlu
VGV4dFdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCkpOworI2lm
IFBMQVRGT1JNKE1BQykKKyAgICByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4dCgpOwor
I2VuZGlmCiB9CiAKIHZvaWQgRWRpdG9yOjpwZXJmb3JtRGVsZXRlKCkKQEAgLTExNDgsNiArMTE1
Miw5MCBAQCBpbnQgRWRpdG9yOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpCiAgICAgcmV0dXJu
IGNsaWVudCgpID8gY2xpZW50KCktPnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgOiAwOwogfQog
CisjaWYgUExBVEZPUk0oTUFDKQorYm9vbCBFZGl0b3I6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBjbGllbnQoKSAmJiBjbGllbnQoKS0+aXNBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworfQorCit2b2lkIEVkaXRvcjo6cmVxdWVz
dENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKQoreworICAgIGlmICghaXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpIHx8IG1fc3BlbGxpbmdOb2RlLmdldCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBOb2RlKiBmb2N1c2VkTm9kZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmZv
Y3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2VkTm9kZSB8fCAhZm9jdXNlZE5vZGUtPnJlbmRl
cmVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyB0ZXh0OworICAgIGlmIChmb2N1
c2VkTm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0RmllbGQoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmb2N1c2VkTm9kZSktPnZhbHVlKCk7CisgICAgZWxz
ZSBpZiAoZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dEFyZWEoKSkKKyAgICAgICAgdGV4
dCA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihmb2N1c2VkTm9kZSktPnZhbHVl
KCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0gZm9jdXNlZE5vZGUtPnRleHRDb250ZW50KCk7
CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3NwZWxs
aW5nTm9kZSA9IGZvY3VzZWROb2RlOworICAgIG1fc3BlbGxpbmdUZXh0ID0gdGV4dDsKKyAgICBj
bGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKyttX3NwZWxsaW5nU2VxdWVuY2UsIHRl
eHQpOworfQorCitOb2RlKiBFZGl0b3I6OmdldFNwZWxsaW5nTm9kZShOb2RlKiBub2RlKQorewor
ICAgIC8vIFJldHJpZXZlIHRoZSBmaXJzdCAnI3RleHQnIG5vZGUgdXNlZCBieSByZW5kZXJlcnMu
IEZvciBhIDx0ZXh0YXJlYT4KKyAgICAvLyBlbGVtZW50LCBzcGVsbGNoZWNrZXJzIGFkZHMgc3Bl
bGxpbmcgbWFya2VycyB0byB0aGUgc2hhZG93IG5vZGUgdXNlZCBieQorICAgIC8vIHJlbmRlcmVy
cywgaS5lLiBhZGRpbmcgc3BlbGxpbmcgbWFya2VyIHRvIGEgRE9NIG5vZGUgZG9lcyBub3QgYWRk
IG1hcmtlcnMKKyAgICAvLyB0byB0aGUgbm9kZSB1c2VkIGJ5IHNwZWxsY2hlY2tlcnMuIFRoZXJl
Zm9yZSwgd2UgZGlyZWN0bHkgcmV0cmlldmUgdGhlCisgICAgLy8gc2hhZG93IG5vZGUgZnJvbSB0
aGUgZm9jdXNlZCBub2RlLgorICAgIGZvciAoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IG5vZGUtPnJlbmRlcmVyKCk7IHJlbmRlcmVyOyByZW5kZXJlciA9IHJlbmRlcmVyLT5jaGlsZEF0
KDApKSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1
cm4gcmVuZGVyZXItPm5vZGUoKTsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQg
RWRpdG9yOjphZGRTcGVsbGluZ01hcmtlcnMoaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3Bl
bGxDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFtX3NwZWxsaW5nTm9kZS5n
ZXQoKSB8fCAhbV9zcGVsbGluZ1RleHQubGVuZ3RoKCkgfHwgbV9zcGVsbGluZ1NlcXVlbmNlICE9
IHNlcXVlbmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBOb2RlKiBub2RlID0gZ2V0U3BlbGxp
bmdOb2RlKG1fc3BlbGxpbmdOb2RlLmdldCgpKTsKKyAgICBpZiAobm9kZSkgeworICAgICAgICBp
bnQgc3RhcnRPZmZzZXQgPSAwOworICAgICAgICBQb3NpdGlvbiBzdGFydChub2RlLCAwKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1bHRzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IERvY3VtZW50TWFya2VyOjpTcGVsbGluZyAm
JiByZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIC8vIFRvIGF2b2lkIG1vdmluZyB0aGUgcG9z
aXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUgZ2l2ZW4gcmVzdWx0cyBhcmUgc29ydGVkCisg
ICAgICAgICAgICAvLyB3aXRoIHN0YXJ0T2Zmc2V0IGFzIHRoZSBvbmVzIHJldHVybmVkIGJ5IFtO
U1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgICAgICAgICAgQVNT
RVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3VsdHNbaV0ubG9jYXRpb24pOworICAgICAgICAgICAgZm9y
ICg7IHN0YXJ0T2Zmc2V0IDwgcmVzdWx0c1tpXS5sb2NhdGlvbjsgKytzdGFydE9mZnNldCkKKyAg
ICAgICAgICAgICAgICBzdGFydCA9IHN0YXJ0Lm5leHQoKTsKKworICAgICAgICAgICAgUG9zaXRp
b24gZW5kKHN0YXJ0KTsKKyAgICAgICAgICAgIGZvciAoaW50IGxlbmd0aCA9IDA7IGxlbmd0aCA8
IHJlc3VsdHNbaV0ubGVuZ3RoOyArK2xlbmd0aCkKKyAgICAgICAgICAgICAgICBlbmQgPSBlbmQu
bmV4dCgpOworCisgICAgICAgICAgICAvLyBVc2VycyBvciBKYXZhU2NyaXB0IGFwcGxpY2F0aW9u
cyBjYW4gY2hhbmdlIHRleHQgd2hpbGUgc3BlbGwtY2hlY2tlcnMgY2hlY2tzCisgICAgICAgICAg
ICAvLyBpdHMgc3BlbGxpbmdzLiBUbyBhdm9pZCBhZGRpbmcgbWFya2VycyB0byB0aGUgd29yZHMg
bW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRp
b25zLCByZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhlIHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBh
cmUKKyAgICAgICAgICAgIC8vIHRoZW0gd2l0aCB0aGUgb3JpZ2luYWwgb25lcy4KKyAgICAgICAg
ICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UoUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgp
LCBzdGFydCwgZW5kKSk7CisgICAgICAgICAgICBTdHJpbmcgZGVzdGluYXRpb24ocmFuZ2UtPnRl
eHQoKSk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlKG1fc3BlbGxpbmdUZXh0LnN1YnN0cmlu
ZyhyZXN1bHRzW2ldLmxvY2F0aW9uLCByZXN1bHRzW2ldLmxlbmd0aCkpOworICAgICAgICAgICAg
aWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5hZGRNYXJrZXIocmFuZ2UuZ2V0KCksIHJlc3VsdHNbaV0udHlwZSk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBtX3NwZWxsaW5nTm9kZSA9IDA7CisgICAgbV9zcGVsbGluZ1RleHQg
PSBTdHJpbmcoKTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKIAogdm9p
ZCBFZGl0b3I6OnVwcGVyY2FzZVdvcmQoKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkocmV2aXNpb24gNjMyNzQp
CisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgogI2luY2x1ZGUgIkNv
bG9yLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9u
LmgiCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yRGVsZXRl
QWN0aW9uLmgiCkBAIC02NCw2ICs2NSwxNCBAQCBlbnVtIFRyaVN0YXRlIHsgRmFsc2VUcmlTdGF0
ZSwgVHJ1ZVRyaVN0CiBlbnVtIEVkaXRvckNvbW1hbmRTb3VyY2UgeyBDb21tYW5kRnJvbU1lbnVP
cktleUJpbmRpbmcsIENvbW1hbmRGcm9tRE9NLCBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJm
YWNlIH07CiBlbnVtIFdyaXRpbmdEaXJlY3Rpb24geyBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwg
TGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uLCBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24g
fTsKIAorc3RydWN0IFNwZWxsQ2hlY2tpbmdSZXN1bHQgeworICAgIFNwZWxsQ2hlY2tpbmdSZXN1
bHQoKQorICAgICAgICA6IHR5cGUoRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKSwgbG9jYXRpb24o
MCksIGxlbmd0aCgwKSB7IH0KKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlOwor
ICAgIGludCBsb2NhdGlvbjsKKyAgICBpbnQgbGVuZ3RoOworfTsKKwogY2xhc3MgRWRpdG9yIHsK
IHB1YmxpYzoKICAgICBFZGl0b3IoRnJhbWUqKTsKQEAgLTIyMyw2ICsyMzIsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhib29s
IG1hcmtTcGVsbGluZywgUmFuZ2UqIHNwZWxsaW5nUmFuZ2UsIGJvb2wgbWFya0dyYW1tYXIsIFJh
bmdlKiBncmFtbWFyUmFuZ2UsIGJvb2wgcGVyZm9ybVRleHRDaGVja2luZ1JlcGxhY2VtZW50cyk7
CiAgICAgdm9pZCBjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcmIHJlcGxh
Y2VkU3RyaW5nKTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIGlzQXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2b2lkIGFkZFNwZWxsaW5nTWFya2Vy
cyhpbnQsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYpOworI2VuZGlmCiAgICAg
dm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbiA9
IGZhbHNlKTsKICAgICB2b2lkIHNob3dTcGVsbGluZ0d1ZXNzUGFuZWwoKTsKICAgICBib29sIHNw
ZWxsaW5nUGFuZWxJc1Nob3dpbmcoKTsKQEAgLTMwNyw2ICszMjAsMTIgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAgIE93blB0cjxLaWxsUmluZz4gbV9raWxs
UmluZzsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBSZWZQdHI8Tm9kZT4gbV9zcGVsbGluZ05v
ZGU7CisgICAgU3RyaW5nIG1fc3BlbGxpbmdUZXh0OworICAgIGludCBtX3NwZWxsaW5nU2VxdWVu
Y2U7CisjZW5kaWYKKwogICAgIGJvb2wgY2FuRGVsZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKICAg
ICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqKTsKICAgICBQ
YXNzUmVmUHRyPENsaXBib2FyZD4gbmV3R2VuZXJhbENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQ
b2xpY3kpOwpAQCAtMzI1LDYgKzM0NCwxMSBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8UmFu
Z2U+IGxhc3RWaXNpYmxlUmFuZ2UoY29uc3QgU3RyaW5nJiwgYm9vbCBjYXNlRmxhZyk7CiAgICAg
CiAgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgbmV3U2VsZWN0aW9uLCBib29sIGNsb3NlVHlwaW5nLCBib29sIGNsZWFyVHlwaW5nU3R5
bGUpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1
c2VkTm9kZVRleHQoKTsKKyAgICBOb2RlKiBnZXRTcGVsbGluZ05vZGUoTm9kZSopOworI2VuZGlm
CiB9OwogCiBpbmxpbmUgdm9pZCBFZGl0b3I6OnNldFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShi
b29sIGZsYWcpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNjMyNzQpCisrKyBX
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDMyLDggKzQz
MiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1
dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0KKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVh
bCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0
IFN0cmluZyYpIHsgfQorI2VuZGlmCiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCklu
ZGV4OiBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYkNvcmUvcGFnZS9FZGl0
b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDYgKzE4NCwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFi
bGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKKyNlbmRpZgogfTsKIAog
fQpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDYzMjg1KQorKysgV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xNCAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgQVBJcyBhbmQgdXNlIGl0IHdoZW4gcGFz
dGluZyB0ZXh0CisgICAgICAgIG9uIE1hYyBPUyAxMC42LgorICAgICAgICA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyPgorICAgICAgICBUaGlzIGNoYW5nZSBj
b25zaXN0cyBvZiBzZXZlcmFsIHBhcnRzOgorICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBF
ZGl0b3JDbGllbnQKKyAgICAgICAgICBzbyBhIGNsaWVudCBjYW4gaW1wbGVtZW50IGFzeW5jaHJv
bm91cyBzcGVsbGNoZWNraW5nOworICAgICAgICAqIEltcGxlbWVudGVkIHRoZSBhYm92ZSBpbnRl
cmZhY2VzIGZvciBNYWMgT1MgMTAuNjsKKyAgICAgICAgKiBBZGRlZCBhZGRTcGVsbGluZ01hcmtl
cnMoKSB0byBFZGl0b3Igc28gYSBjbGllbnQgY2FuIGFkZCBzcGVsbGluZyAob3IgZ3JhbW1hcikg
bWFya2VycworICAgICAgICAqIEFkZGVkIHJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0
KCkgYW5kIGNhbGwgaXQgd2hlbiBwYXN0aW5nIHRleHQgc28gd2UgY2FuCisgICAgICAgICAgc3Bl
bGxjaGVjayB0aGUgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQsIGFuZDsKKyAgICAgICAg
KiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIGhhc1NwZWxs
aW5nTWFya2VyKCkgdG8KKyAgICAgICAgICBUZXh0SW5wdXRDb250cm9sbGVyIHNvIHdlIGNhbiB3
cml0ZSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6
OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEwLTA3LTEzICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MjAsNSArNDIwLDE2IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1
dE1ldGhvZFN0YXQKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkVkaXRvckNs
aWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKSW5kZXg6IFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJ
KHJldmlzaW9uIDYzMjc0KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDggQEAgcHJpdmF0
ZTogICAgCiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgVmVjdG9y
PFdlYkNvcmU6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1l
dGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoaW50LCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKIAogICAgIFdlYlBhZ2UqIG1f
cGFnZTsKIH07CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNjMyODUpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDEwLTA3LTE0ICBIaXJvbm9yaSBC
b25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyBBUElzIGFu
ZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQKKyAgICAgICAgb24gTWFjIE9TIDEwLjYuCisgICAg
ICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTI+CisgICAg
ICAgIFRoaXMgY2hhbmdlIGNvbnNpc3RzIG9mIHNldmVyYWwgcGFydHM6CisgICAgICAgICogQWRk
ZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZygpIHRvIEVkaXRvckNsaWVudAorICAgICAgICAgIHNvIGEgY2xpZW50IGNhbiBp
bXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmc7CisgICAgICAgICogSW1wbGVtZW50
ZWQgdGhlIGFib3ZlIGludGVyZmFjZXMgZm9yIE1hYyBPUyAxMC42OworICAgICAgICAqIEFkZGVk
IGFkZFNwZWxsaW5nTWFya2VycygpIHRvIEVkaXRvciBzbyBhIGNsaWVudCBjYW4gYWRkIHNwZWxs
aW5nIChvciBncmFtbWFyKSBtYXJrZXJzCisgICAgICAgICogQWRkZWQgcmVxdWVzdENoZWNraW5n
T2ZGb2N1c2VkTm9kZVRleHQoKSBhbmQgY2FsbCBpdCB3aGVuIHBhc3RpbmcgdGV4dCBzbyB3ZSBj
YW4KKyAgICAgICAgICBzcGVsbGNoZWNrIHRoZSBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3Vu
ZCwgYW5kOworICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoKSBhbmQgaGFzU3BlbGxpbmdNYXJrZXIoKSB0bworICAgICAgICAgIFRleHRJbnB1dENvbnRy
b2xsZXIgc28gd2UgY2FuIHdyaXRlIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCgpIGFuZAorICAgICAgICByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpLgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVk
aXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6IFJldHVybiBZ
RVMgb25seSBvbiAxMC42LgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyk6IENhbGxzIFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZzpdCisgICAgICAgIHRvIHNwZWxsY2hlY2sgdGhlIGdpdmVuIHRleHQgaW4gdGhlIGJhY2tncm91
bmQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5oOiBBZGRlZCBbYWRkU3BlbGxpbmdNYXJr
ZXJzOnJlc3VsdHM6XSBhbmQgW2hhc1NwZWxsaW5nTWFya2VyOmxlbmd0aDpdLgorICAgICAgICAq
IFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIGFkZFNwZWxsaW5nTWFy
a2VyczpyZXN1bHRzOl0pOiBDYWxscyBFZGl0b3I6OmFkZFNwZWxsaW5nTWFya2VycygpLgorICAg
ICAgICAoZ2V0U3BlbGxpbmdOb2RlKTogUmV0dXJucyB0aGUgdGV4dCBub2RlIHVzZWQgYnkgc3Bl
bGxjaGVja2luZy4KKyAgICAgICAgKC1bV2ViRnJhbWUgaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3Ro
Ol0pOiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNwZWNpZmllZCByZWdpb24gaGFzIGEKKyAgICAgICAg
c3BlbGxpbmcgbWFya2VyIGZvciBsYXlvdXQgdGV4dHMuCisKKzIwMTAtMDctMTQgIEhpcm9ub3Jp
IEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJM
IChPT1BTISkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAg
ICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLmg6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAg
ICAgICAgKC1bV2ViRnJhbWUgYWRkU3BlbGxpbmdNYXJrZXJzOnJlc3VsdHM6XSk6CisgICAgICAg
IChnZXRTcGVsbGluZ05vZGUpOgorICAgICAgICAoLVtXZWJGcmFtZSBoYXNTcGVsbGluZ01hcmtl
cjpsZW5ndGg6XSk6CisKIDIwMTAtMDctMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IFRpZ2VyIGJ1aWxkLgpJbmRleDogV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiA2MzI3NCkKKysrIFdl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyOCw2ICsxMjgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJ
c1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV2Vi
Q29yZTo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFdlYkNvcmU6OlN0
cmluZyYpOwogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZvclVuZG9PclJlZG8o
UGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4sIGJvb2wgaXNSZWRvKTsKICAgICBXZWJF
ZGl0b3JDbGllbnQoKTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MjEsMyArODIxLDIzIEBA
IHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2VzRm9yV29yZCgKIHZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiB7CiB9CisKK2Jvb2wgV2ViRWRpdG9y
Q2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKK3sKKyNpZiBNQUNf
T1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNiAmJiBOU19C
TE9DS1NfQVZBSUxBQkxFCisgICAgLy8gRW5hYmxlIGFzeW5jaHJvbm91cyBzcGVsbC1jaGVja2lu
ZyBvbmx5IHdoZW4gd2UgY2FuIGNvbXBpbGUgYW5kIHVzZQorICAgIC8vIFtOU1NwZWxsQ2hlY2tl
ciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQorewor
I2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82
ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6dGV4dCByYW5nZTpOU01ha2VSYW5nZSgw
LCB0ZXh0Lmxlbmd0aCgpKSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlv
bnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgY29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVn
ZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXkgKnJlc3VsdHMsIE5TT3J0aG9ncmFwaHkgKm9ydGhv
Z3JhcGh5LCBOU0ludGVnZXIgd29yZENvdW50KSB7CisgICAgICAgIFtbbV93ZWJWaWV3IHNlbGVj
dGVkRnJhbWVdIGFkZFNwZWxsaW5nTWFya2VyczpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdOwor
ICAgIH1dOworI2VuZGlmCit9CkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUuaAkocmV2aXNpb24gNjMy
NzQpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MjEzLDQgKzIxMywyMCBAQCBAaW50ZXJmYWNlIFdlYkZyYW1lIDogTlNPYmplY3QKICAgICBicmlk
Z2UgYmV0d2VlbiB0aGUgV2ViS2l0IGFuZCBKYXZhU2NyaXB0Q29yZSBBUElzLgogKi8KIC0gKEpT
R2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0OworCisvKiEKKyAgICBAbWV0aG9kIGFkZFNw
ZWxsaW5nTWFya2VycworICAgIEBwYXJhbSBzZXF1ZW5jZSB0aGUgc2VxdWVuY2UgbnVtYmVyIHBy
b3ZpZGVkIGZyb20gV2ViQ29yZS4KKyAgICBAcGFyYW0gcmVzdWx0cyBhbiBhcnJheSBvZiBOU1Rl
eHRDaGVja2luZ1Jlc3VsdCBvYmplY3RzLgorICovCistICh2b2lkKWFkZFNwZWxsaW5nTWFya2Vy
czooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkqKXJlc3VsdHM7CisKKy8qIQorICAgIEBt
ZXRob2QgaGFzU3BlbGxpbmdNYXJrZXIKKyAgICBAZGlzY3Vzc2lvbiB0aGlzIGZ1bmN0aW9uIGlz
IHVzZWQgb25seSBmb3IgbGF5b3V0IHRlc3RzLgorICAgIEBwYXJhbSBsb2NhdGlvbiB0aGUgb2Zm
c2V0IG9mIHRoZSByYW5nZSB0byBiZSBjaGVja2VkLgorICAgIEBwYXJhbSBsZW5ndGggdGhlIGxl
bmd0aCBvZiB0aGUgcmFuZ2UgdG8gYmUgY2hlY2tlZC4KKyAgICBAcmVzdWx0IHdoZXRoZXIgdGhl
cmUgaXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0aGUgZm9j
dXNlZCBub2RlLgorKi8KKy0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBs
ZW5ndGg6KGludClsZW5ndGg7CiBAZW5kCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZp
c2lvbiA2MzI3NCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTU4Miw0ICsxNTgyLDY3IEBAIC0gKEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxD
b250ZXh0CiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGNvcmVGcmFtZS0+c2NyaXB0KCktPmdsb2Jh
bE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSktPmdsb2JhbEV4ZWMoKSk7CiB9CiAKKy0g
KHZvaWQpYWRkU3BlbGxpbmdNYXJrZXJzOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSop
cmVzdWx0cworeworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hf
VkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKKyAgICBGcmFtZSogY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgc2l6ZV90IGNvdW50ID0gW3Jlc3VsdHMgY291bnRdOworICAgIFZlY3RvcjxT
cGVsbENoZWNraW5nUmVzdWx0PiBtYXJrZXJzKGNvdW50KTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgTlNSYW5nZSByYW5nZSA9IFtbcmVzdWx0cyBv
YmplY3RBdEluZGV4OmldIHJhbmdlXTsKKyAgICAgICAgc3dpdGNoIChbW3Jlc3VsdHMgb2JqZWN0
QXRJbmRleDppXSByZXN1bHRUeXBlXSkgeworICAgICAgICBjYXNlIE5TVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nOgorICAgICAgICAgICAgbWFya2Vyc1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6
OlNwZWxsaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTlNUZXh0Q2hlY2tp
bmdUeXBlR3JhbW1hcjoKKyAgICAgICAgICAgIG1hcmtlcnNbaV0udHlwZSA9IERvY3VtZW50TWFy
a2VyOjpHcmFtbWFyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBtYXJrZXJzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2VyczsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG1hcmtlcnNbaV0ubG9jYXRpb24g
PSByYW5nZS5sb2NhdGlvbjsKKyAgICAgICAgbWFya2Vyc1tpXS5sZW5ndGggPSByYW5nZS5sZW5n
dGg7CisgICAgfQorICAgIGNvcmVGcmFtZS0+ZWRpdG9yKCktPmFkZFNwZWxsaW5nTWFya2Vycyhz
ZXF1ZW5jZSwgbWFya2Vycyk7CisjZW5kaWYKK30KKworc3RhdGljIE5vZGUqIGdldFNwZWxsaW5n
Tm9kZShGcmFtZSogY29yZUZyYW1lKQoreworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gY29yZUZy
YW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUgfHwg
IWZvY3VzZWROb2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZv
ciAoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGZvY3VzZWROb2RlLT5yZW5kZXJlcigp
OyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJlci0+Y2hpbGRBdCgwKSkgeworICAgICAgICBp
ZiAocmVuZGVyZXItPmlzVGV4dCgpKQorCSAgICByZXR1cm4gcmVuZGVyZXItPm5vZGUoKTsKKyAg
ICB9CisgICAgcmV0dXJuIE5VTEw7Cit9CisKKy0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGlu
dClmcm9tIGxlbmd0aDooaW50KWxlbmd0aAoreworICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJp
dmF0ZS0+Y29yZUZyYW1lOworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICByZXR1cm4gTk87
CisKKyAgICBOb2RlKiBub2RlID0gZ2V0U3BlbGxpbmdOb2RlKGNvcmVGcmFtZSk7CisgICAgaWYg
KCFub2RlKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZz
ZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20pOworICAgIHVuc2lnbmVkIGludCBl
bmRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20gKyBsZW5ndGgpOworICAg
IFZlY3RvcjxEb2N1bWVudE1hcmtlcj4gbWFya2VycyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+
bWFya2Vyc0Zvck5vZGUobm9kZSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJz
LnNpemUoKTsgKytpKSB7CisgICAgICAgIERvY3VtZW50TWFya2VyIG1hcmtlciA9IG1hcmtlcnNb
aV07CisgICAgICAgIGlmIChtYXJrZXIuc3RhcnRPZmZzZXQgPD0gc3RhcnRPZmZzZXQgJiYgZW5k
T2Zmc2V0IDw9IG1hcmtlci5lbmRPZmZzZXQgJiYgbWFya2VyLnR5cGUgPT0gRG9jdW1lbnRNYXJr
ZXI6OlNwZWxsaW5nKQorICAgICAgICAgICAgcmV0dXJuIFlFUzsKKyAgICB9CisgICAgcmV0dXJu
IE5POworfQorCiBAZW5kCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MzI4NSkKKysrIFdlYktpdFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA3LTE0ICBI
aXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2lu
ZyBBUElzIGFuZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQKKyAgICAgICAgb24gTWFjIE9TIDEw
LjYuCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTI+CisgICAgICAgIFRoaXMgY2hhbmdlIGNvbnNpc3RzIG9mIHNldmVyYWwgcGFydHM6CisgICAg
ICAgICogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZygpIHRvIEVkaXRvckNsaWVudAorICAgICAgICAgIHNvIGEgY2xp
ZW50IGNhbiBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmc7CisgICAgICAgICog
SW1wbGVtZW50ZWQgdGhlIGFib3ZlIGludGVyZmFjZXMgZm9yIE1hYyBPUyAxMC42OworICAgICAg
ICAqIEFkZGVkIGFkZFNwZWxsaW5nTWFya2VycygpIHRvIEVkaXRvciBzbyBhIGNsaWVudCBjYW4g
YWRkIHNwZWxsaW5nIChvciBncmFtbWFyKSBtYXJrZXJzCisgICAgICAgICogQWRkZWQgcmVxdWVz
dENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKSBhbmQgY2FsbCBpdCB3aGVuIHBhc3RpbmcgdGV4
dCBzbyB3ZSBjYW4KKyAgICAgICAgICBzcGVsbGNoZWNrIHRoZSBwYXN0ZWQgdGV4dCBpbiB0aGUg
YmFja2dyb3VuZCwgYW5kOworICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKSBhbmQgaGFzU3BlbGxpbmdNYXJrZXIoKSB0bworICAgICAgICAgIFRleHRJ
bnB1dENvbnRyb2xsZXIgc28gd2UgY2FuIHdyaXRlIGEgbGF5b3V0IHRlc3QuCisgICAgICAgIAor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm06CisgICAg
ICAgICgrW1RleHRJbnB1dENvbnRyb2xsZXIgaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlw
dDpdKToKKyAgICAgICAgKCtbVGV4dElucHV0Q29udHJvbGxlciB3ZWJTY3JpcHROYW1lRm9yU2Vs
ZWN0b3I6XSk6CisgICAgICAgICgtW1RleHRJbnB1dENvbnRyb2xsZXIgaXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZF0pOgorICAgICAgICAoLVtUZXh0SW5wdXRDb250cm9sbGVyIGhh
c1NwZWxsaW5nTWFya2VyOmxlbmd0aDpdKToKKwogMjAxMC0wNy0xMyAgTWFjaWVqIFN0YWNob3dp
YWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJ
bmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIu
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0
Q29udHJvbGxlci5tCShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0JKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsx
NjksOSBAQCArIChCT09MKWlzU2VsZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6CiAgICAgICAg
ICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGNoYXJhY3RlckluZGV4Rm9yUG9pbnRYOlk6
KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcih2YWxpZEF0dHJpYnV0ZXNG
b3JNYXJrZWRUZXh0KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRy
aWJ1dGVkU3RyaW5nV2l0aFN0cmluZzopCi0gICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNl
bGVjdG9yKHNldElucHV0TWV0aG9kSGFuZGxlcjopKQorICAgICAgICAgICAgfHwgYVNlbGVjdG9y
ID09IEBzZWxlY3RvcihzZXRJbnB1dE1ldGhvZEhhbmRsZXI6KQorICAgICAgICAgICAgfHwgYVNl
bGVjdG9yID09IEBzZWxlY3Rvcihpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKQor
ICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihoYXNTcGVsbGluZ01hcmtlcjps
ZW5ndGg6KSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIHJldHVybiBZRVM7CiB9CkBAIC0xOTMs
NyArMTk1LDExIEBAICsgKE5TU3RyaW5nICopd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOigKICAg
ICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGF0dHJpYnV0ZWRTdHJpbmdXaXRoU3Ry
aW5nOikpCiAgICAgICAgIHJldHVybiBAIm1ha2VBdHRyaWJ1dGVkU3RyaW5nIjsgLy8ganVzdCBh
IGZhY3RvcnkgbWV0aG9kLCBkb2Vzbid0IGNhbGwgaW50byBOU1RleHRJbnB1dAogICAgIGVsc2Ug
aWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0SW5wdXRNZXRob2RIYW5kbGVyOikpCi0gICAg
ICAgIHJldHVybiBAInNldElucHV0TWV0aG9kSGFuZGxlciI7IAorICAgICAgICByZXR1cm4gQCJz
ZXRJbnB1dE1ldGhvZEhhbmRsZXIiOworICAgIGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IoaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBA
ImlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiOworICAgIGVsc2UgaWYgKGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IoaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOikpCisgICAgICAgIHJl
dHVybiBAImhhc1NwZWxsaW5nTWFya2VyIjsKIAogICAgIHJldHVybiBuaWw7CiB9CkBAIC00Mjcs
NCArNDMzLDE4IEBAIC0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXYKICAg
ICByZXR1cm4gWUVTOwogfQogCistIChCT09MKWlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQKK3sKKyNpZiBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZF
UlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZBSUxBQkxFCisgIHJldHVybiBZRVM7CisjZWxzZQor
ICByZXR1cm4gTk87CisjZW5kaWYKK30KKworLSAoQk9PTCloYXNTcGVsbGluZ01hcmtlcjooaW50
KWZyb20gbGVuZ3RoOihpbnQpbGVuZ3RoCit7CisgICAgcmV0dXJuIFtbd2ViVmlldyBtYWluRnJh
bWVdIGhhc1NwZWxsaW5nTWFya2VyOmZyb20gbGVuZ3RoOmxlbmd0aF07Cit9CisKIEBlbmQKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDYzMjg1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDctMTQgIEhpcm9ub3JpIEJvbm8gIDxoYm9u
b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3
aGVuIHBhc3RpbmcgdGV4dAorICAgICAgICBvbiBNYWMgT1MgMTAuNi4KKyAgICAgICAgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5Mj4KKyAgICAgICAgVGhpcyBj
aGFuZ2UgY29uc2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0czoKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KCkgdG8gRWRpdG9yQ2xpZW50CisgICAgICAgICAgc28gYSBjbGllbnQgY2FuIGltcGxlbWVudCBh
c3luY2hyb25vdXMgc3BlbGxjaGVja2luZzsKKyAgICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgYWJv
dmUgaW50ZXJmYWNlcyBmb3IgTWFjIE9TIDEwLjY7CisgICAgICAgICogQWRkZWQgYWRkU3BlbGxp
bmdNYXJrZXJzKCkgdG8gRWRpdG9yIHNvIGEgY2xpZW50IGNhbiBhZGQgc3BlbGxpbmcgKG9yIGdy
YW1tYXIpIG1hcmtlcnMKKyAgICAgICAgKiBBZGRlZCByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWRO
b2RlVGV4dCgpIGFuZCBjYWxsIGl0IHdoZW4gcGFzdGluZyB0ZXh0IHNvIHdlIGNhbgorICAgICAg
ICAgIHNwZWxsY2hlY2sgdGhlIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLCBhbmQ7Cisg
ICAgICAgICogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCBo
YXNTcGVsbGluZ01hcmtlcigpIHRvCisgICAgICAgICAgVGV4dElucHV0Q29udHJvbGxlciBzbyB3
ZSBjYW4gd3JpdGUgYSBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTA3LTEzICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggV2luZG93cyBjaGVja291dHMgYnkgc2hvcnRlbmluZyBwYXRocy4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0w
MDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAw
MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyB3
ZSBjYW4gY2hlY2sgdGhlIHNwZWxsaW5nIG9mIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5k
LiBJZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHRoZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VT
UycuIChPdGhlcndpc2UsIHRoaXMgdGVzdCBkb2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0
IG1hbnVhbGx5LCBwYXN0ZSBtaXNzcGVsbGVkIHdvcmRzIHRvIHRoZSA8dGV4dGFyZWE+IGVsZW1l
bnQgYW5kIHNlZSB0aGV5IGFyZSBtYXJrZWQgYXMgbWlzc3BlbGxlZC4KKworCitTVUNDRVNTCitT
VUNDRVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFz
dGVkLXRleHQtMDAxLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACis8aHRtbD4gCis8aGVhZD4KKzxzY3JpcHQg
c3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNj
cmlwdCIgPjwvc2NyaXB0PgorPHRpdGxlPkVkaXRpbmcgVGVzdDwvdGl0bGU+IAorPC9oZWFkPiAK
Kzxib2R5PgorPHA+VGhpcyB0ZXN0cyB3ZSBjYW4gY2hlY2sgdGhlIHNwZWxsaW5nIG9mIHBhc3Rl
ZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLiBJZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHRoZSBmb2xs
b3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VTUycuIChPdGhlcndpc2UsIHRoaXMgdGVzdCBkb2VzIG5v
dCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0IG1hbnVhbGx5LCBwYXN0ZSBtaXNzcGVsbGVkIHdvcmRz
IHRvIHRoZSAgJmx0O3RleHRhcmVhJmd0IGVsZW1lbnQgYW5kIHNlZSB0aGV5IGFyZSBtYXJrZWQg
YXMgbWlzc3BlbGxlZC48L3A+Cis8dGV4dGFyZWEgaWQ9InRlc3QiIGNvbHM9IjgwIiByb3dzPSIx
MCI+Zm9vIGJhciBiYXo8L3RleHRhcmVhPgorPHVsIGlkPSJjb25zb2xlIj48L3VsPgorPHNjcmlw
dCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Z1bmN0aW9u
IGxvZyhzdHIpIHsKKyAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7Cisg
ICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgIHZhciBj
b25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKKyAgIGNvbnNvbGUu
YXBwZW5kQ2hpbGQobGkpOworfQorCitmdW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KSB7CisgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgbG9nKCdTVUNDRVNTJyk7CisgICAgZWxzZQorICAgICAgICBs
b2coJ0ZBSUxFRCcpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKCF0ZXh0SW5w
dXRDb250cm9sbGVyLmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSkgeworICAg
ICAgICAvLyBXZSBqdXN0IG91dHB1dCB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBhbmQgZXhpdCBmb3Ig
cGxhdGZvcm1zIHRoYXQgZG9lcworICAgICAgICAvLyBub3Qgc3VwcG9ydCBhc3luY2hyb25vdXMg
c3BlbGwtY2hlY2tpbmcuCisgICAgICAgIGxvZygnU1VDQ0VTUycpOworICAgICAgICBsb2coJ1NV
Q0NFU1MnKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBDb3B5IHRoZSBvcmlnaW5hbCB0ZXh0
IGFuZCBwYXN0ZSBpdC4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5m
b2N1cygpOworICAgICAgICBleGVjU2VsZWN0QWxsQ29tbWFuZCgpOworICAgICAgICBleGVjQ29w
eUNvbW1hbmQoKTsKKyAgICAgICAgZXhlY1Bhc3RlQ29tbWFuZCgpOworCisgICAgICAgIC8vIExv
b3Agd2hpbGUgdGhlIGZpcnN0IHdvcmQgJ2ZvbycgaXMgbWFya2VkIGFzIG1pc3NwZWxsZWQuCisg
ICAgICAgIHdoaWxlICghdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcigwLCAz
KSk7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgJ2ZvbycgYW5kICdiYXonIGFyZSBtYXJrZWQgYXMg
bWlzc3BlbGxlZC4KKyAgICAgICAgbG9nUmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3Bl
bGxpbmdNYXJrZXIoMCwgMykpOworICAgICAgICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxl
ci5oYXNTcGVsbGluZ01hcmtlcig4LCAzKSk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61485</attachid>
            <date>2010-07-14 01:35:02 -0700</date>
            <delta_ts>2010-07-14 01:47:59 -0700</delta_ts>
            <desc>Draft implementation #2</desc>
            <filename>issue40092-patch2.txt</filename>
            <type>text/plain</type>
            <size>29921</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzI4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDctMTQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3aGVuIHBhc3Rp
bmcgdGV4dAorICAgICAgICBvbiBNYWMgT1MgMTAuNi4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5Mj4KKyAgICAgICAgVGhpcyBjaGFuZ2UgY29u
c2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0czoKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgdG8gRWRp
dG9yQ2xpZW50CisgICAgICAgICAgc28gYSBjbGllbnQgY2FuIGltcGxlbWVudCBhc3luY2hyb25v
dXMgc3BlbGxjaGVja2luZzsKKyAgICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgYWJvdmUgaW50ZXJm
YWNlcyBmb3IgTWFjIE9TIDEwLjY7CisgICAgICAgICogQWRkZWQgYWRkU3BlbGxpbmdNYXJrZXJz
KCkgdG8gRWRpdG9yIHNvIGEgY2xpZW50IGNhbiBhZGQgc3BlbGxpbmcgKG9yIGdyYW1tYXIpIG1h
cmtlcnMKKyAgICAgICAgKiBBZGRlZCByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4dCgp
IGFuZCBjYWxsIGl0IHdoZW4gcGFzdGluZyB0ZXh0IHNvIHdlIGNhbgorICAgICAgICAgIHNwZWxs
Y2hlY2sgdGhlIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLCBhbmQ7CisgICAgICAgICog
QWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCBoYXNTcGVsbGlu
Z01hcmtlcigpIHRvCisgICAgICAgICAgVGV4dElucHV0Q29udHJvbGxlciBzbyB3ZSBjYW4gd3Jp
dGUgYSBsYXlvdXQgdGVzdC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
RWRpdG9yKTogSW5pdGlhbGl6ZXMgdGhlIHZhcmlhYmxlcyB1c2VkIGJ5IGFzeW5jaHJvbm91cyBz
cGVsbGNoZWNraW5nLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0
KTogQ2FsbHMgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKS4KKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KTog
U3BlbGxjaGVja3MgdGhlIHRleHQgb2YgdGhlIGZvY3VzZWQKKyAgICAgICAgbm9kZSBpbiB0aGUg
YmFja2dyb3VuZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Z2V0U3BlbGxpbmdOb2RlKTog
UmV0cmlldmVzIGEgdGV4dCBub2RlIHVzZWQgYnkgc3BlbGxjaGVja2luZy4KKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6YWRkU3BlbGxpbmdNYXJrZXJzKTogQXBwbGllcyBzcGVsbGNoZWNraW5n
IHJlc3VsdHMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOiBBIHN0cnVjdCB0aGF0
IHNwZWNpZmllcyBhCisgICAgICAgIHNwZWxsY2hlY2tpbmcgcmVzdWx0LgorICAgICAgICAqIGxv
YWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50
Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQgYW4gZW1wdHkKKyAg
ICAgICAgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiBBZGRlZCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kCisgICAgICAgIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KCkuCisKIDIwMTAtMDctMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNp
b24gNjMyNzQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC01
NDksNiArNTQ5LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjEzdHJ5REhUTUxQYXN0ZUV2CiBfX1pO
N1dlYkNvcmU2RWRpdG9yMTRzZXRDb21wb3NpdGlvbkVSS05TXzZTdHJpbmdFUktOM1dURjZWZWN0
b3JJTlNfMjBDb21wb3NpdGlvblVuZGVybGluZUVMbTBFRUVqagogX19aTjdXZWJDb3JlNkVkaXRv
cjE2cGFzdGVBc1BsYWluVGV4dEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMTdpbnNlcnRPcmRlcmVk
TGlzdEV2CitfX1pON1dlYkNvcmU2RWRpdG9yMThhZGRTcGVsbGluZ01hcmtlcnNFaVJLTjNXVEY2
VmVjdG9ySU5TXzE5U3BlbGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk43V2ViQ29yZTZFZGl0
b3IxOGNvbmZpcm1Db21wb3NpdGlvbkVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9y
MThjb25maXJtQ29tcG9zaXRpb25FdgogX19aTjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERp
cmVjdGlvbkVOU18xOVNlbGVjdGlvbkNvbnRyb2xsZXIxMEVEaXJlY3Rpb25FTlNfMTVUZXh0R3Jh
bnVsYXJpdHlFYmIKQEAgLTYwNSw2ICs2MDYsNyBAQCBfX1pON1dlYkNvcmU3bnNDb2xvckVSS05T
XzVDb2xvckUKIF9fWk43V2ViQ29yZThEb2N1bWVudDExY3JlYXRlUmFuZ2VFdgogX19aTjdXZWJD
b3JlOERvY3VtZW50MTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5
cGVFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxM3N2Z0V4dGVuc2lvbnNFdgorX19aTjdXZWJDb3Jl
OERvY3VtZW50MTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmU4RG9jdW1l
bnQxNHNldEZvY3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFCiBfX1pON1dl
YkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaQogX19aTjdXZWJDb3JlOERvY3VtZW50
MTdnZXRGb2N1c2FibGVOb2Rlc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzROb2RlRUVF
TG0wRUVFCkBAIC04MTQsNiArODE2LDcgQEAgX19aTks3V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBj
dXJyZW50S2V5YgogX19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlMTJkYXRhYmFzZVBhdGhFdgog
X19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlMjRzaG91bGRTdG9wVGhyZWFkQWN0aXZpdHlFdgog
X19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlOWlzRW5hYmxlZEV2CitfX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3Q3Y2hpbGRBdEVqCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xv
c2luZ0xheWVyRXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRl
RU5TXzEwRmxvYXRQb2ludEViYgogX19aTks3V2ViQ29yZTEyUmVuZGVyV2lkZ2V0MTR3aW5kb3dD
bGlwUmVjdEV2CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQwLDYgKzk0MCw5IEBAIEVk
aXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0
LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUg
YnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKICAgICAsIG1f
a2lsbFJpbmcobmV3IEtpbGxSaW5nKQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIG1fc3BlbGxp
bmdTZXF1ZW5jZSgwKQorI2VuZGlmCiB7IAogfQogCkBAIC0xMDkwLDYgKzEwOTMsOSBAQCB2b2lk
IEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCgpCiAgICAgaWYgKCFjYW5QYXN0ZSgpKQogICAgICAg
ICByZXR1cm47CiAgICAgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQ6
OmdlbmVyYWxQYXN0ZWJvYXJkKCkpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXF1ZXN0Q2hl
Y2tpbmdPZkZvY3VzZWROb2RlVGV4dCgpOworI2VuZGlmCiB9CiAKIHZvaWQgRWRpdG9yOjpwZXJm
b3JtRGVsZXRlKCkKQEAgLTExNDgsNiArMTE1NCw5MCBAQCBpbnQgRWRpdG9yOjpzcGVsbENoZWNr
ZXJEb2N1bWVudFRhZygpCiAgICAgcmV0dXJuIGNsaWVudCgpID8gY2xpZW50KCktPnNwZWxsQ2hl
Y2tlckRvY3VtZW50VGFnKCkgOiAwOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQorYm9vbCBFZGl0
b3I6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBj
bGllbnQoKSAmJiBjbGllbnQoKS0+aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
OworfQorCit2b2lkIEVkaXRvcjo6cmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKQor
eworICAgIGlmICghaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHx8IG1fc3Bl
bGxpbmdOb2RlLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOb2RlKiBmb2N1c2VkTm9k
ZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2Vk
Tm9kZSB8fCAhZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IFN0cmluZyB0ZXh0OworICAgIGlmIChmb2N1c2VkTm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0Rmll
bGQoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmb2N1
c2VkTm9kZSktPnZhbHVlKCk7CisgICAgZWxzZSBpZiAoZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCkt
PmlzVGV4dEFyZWEoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVs
ZW1lbnQqPihmb2N1c2VkTm9kZSktPnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0g
Zm9jdXNlZE5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3NwZWxsaW5nTm9kZSA9IGZvY3VzZWROb2RlOworICAgIG1f
c3BlbGxpbmdUZXh0ID0gdGV4dDsKKyAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoKyttX3NwZWxsaW5nU2VxdWVuY2UsIHRleHQpOworfQorCitOb2RlKiBFZGl0b3I6OmdldFNw
ZWxsaW5nTm9kZShOb2RlKiBub2RlKQoreworICAgIC8vIFJldHJpZXZlIHRoZSBmaXJzdCAnI3Rl
eHQnIG5vZGUgdXNlZCBieSByZW5kZXJlcnMuIEZvciBhIDx0ZXh0YXJlYT4KKyAgICAvLyBlbGVt
ZW50LCBzcGVsbGNoZWNrZXJzIGFkZHMgc3BlbGxpbmcgbWFya2VycyB0byB0aGUgc2hhZG93IG5v
ZGUgdXNlZCBieQorICAgIC8vIHJlbmRlcmVycywgaS5lLiBhZGRpbmcgc3BlbGxpbmcgbWFya2Vy
IHRvIGEgRE9NIG5vZGUgZG9lcyBub3QgYWRkIG1hcmtlcnMKKyAgICAvLyB0byB0aGUgbm9kZSB1
c2VkIGJ5IHNwZWxsY2hlY2tlcnMuIFRoZXJlZm9yZSwgd2UgZGlyZWN0bHkgcmV0cmlldmUgdGhl
CisgICAgLy8gc2hhZG93IG5vZGUgZnJvbSB0aGUgZm9jdXNlZCBub2RlLgorICAgIGZvciAoY29u
c3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7IHJlbmRlcmVyOyBy
ZW5kZXJlciA9IHJlbmRlcmVyLT5jaGlsZEF0KDApKSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+
aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPm5vZGUoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIE5VTEw7Cit9CisKK3ZvaWQgRWRpdG9yOjphZGRTcGVsbGluZ01hcmtlcnMoaW50
IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCit7
CisgICAgaWYgKCFtX3NwZWxsaW5nTm9kZS5nZXQoKSB8fCAhbV9zcGVsbGluZ1RleHQubGVuZ3Ro
KCkgfHwgbV9zcGVsbGluZ1NlcXVlbmNlICE9IHNlcXVlbmNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBOb2RlKiBub2RlID0gZ2V0U3BlbGxpbmdOb2RlKG1fc3BlbGxpbmdOb2RlLmdldCgpKTsK
KyAgICBpZiAobm9kZSkgeworICAgICAgICBpbnQgc3RhcnRPZmZzZXQgPSAwOworICAgICAgICBQ
b3NpdGlvbiBzdGFydChub2RlLCAwKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBy
ZXN1bHRzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9
IERvY3VtZW50TWFya2VyOjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRN
YXJrZXI6OkdyYW1tYXIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IC8vIFRvIGF2b2lkIG1vdmluZyB0aGUgcG9zaXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUg
Z2l2ZW4gcmVzdWx0cyBhcmUgc29ydGVkCisgICAgICAgICAgICAvLyB3aXRoIHN0YXJ0T2Zmc2V0
IGFzIHRoZSBvbmVzIHJldHVybmVkIGJ5IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZzpdLgorICAgICAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3VsdHNbaV0u
bG9jYXRpb24pOworICAgICAgICAgICAgZm9yICg7IHN0YXJ0T2Zmc2V0IDwgcmVzdWx0c1tpXS5s
b2NhdGlvbjsgKytzdGFydE9mZnNldCkKKyAgICAgICAgICAgICAgICBzdGFydCA9IHN0YXJ0Lm5l
eHQoKTsKKworICAgICAgICAgICAgUG9zaXRpb24gZW5kKHN0YXJ0KTsKKyAgICAgICAgICAgIGZv
ciAoaW50IGxlbmd0aCA9IDA7IGxlbmd0aCA8IHJlc3VsdHNbaV0ubGVuZ3RoOyArK2xlbmd0aCkK
KyAgICAgICAgICAgICAgICBlbmQgPSBlbmQubmV4dCgpOworCisgICAgICAgICAgICAvLyBVc2Vy
cyBvciBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucyBjYW4gY2hhbmdlIHRleHQgd2hpbGUgc3BlbGwt
Y2hlY2tlcnMgY2hlY2tzCisgICAgICAgICAgICAvLyBpdHMgc3BlbGxpbmdzLiBUbyBhdm9pZCBh
ZGRpbmcgbWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAg
ICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhl
IHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUKKyAgICAgICAgICAgIC8vIHRoZW0gd2l0aCB0
aGUgb3JpZ2luYWwgb25lcy4KKyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UoUmFuZ2U6
OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKSk7CisgICAgICAgICAgICBT
dHJpbmcgZGVzdGluYXRpb24ocmFuZ2UtPnRleHQoKSk7CisgICAgICAgICAgICBTdHJpbmcgc291
cmNlKG1fc3BlbGxpbmdUZXh0LnN1YnN0cmluZyhyZXN1bHRzW2ldLmxvY2F0aW9uLCByZXN1bHRz
W2ldLmxlbmd0aCkpOworICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAg
ICAgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRNYXJrZXIocmFuZ2UuZ2V0KCks
IHJlc3VsdHNbaV0udHlwZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX3NwZWxsaW5nTm9k
ZSA9IDA7CisgICAgbV9zcGVsbGluZ1RleHQgPSBTdHJpbmcoKTsKK30KKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkKIAogdm9pZCBFZGl0b3I6OnVwcGVyY2FzZVdvcmQoKQpJbmRl
eDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNsaXBib2FyZEFj
Y2Vzc1BvbGljeS5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJr
ZXIuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9y
LmgiCiAjaW5jbHVkZSAiRWRpdG9yRGVsZXRlQWN0aW9uLmgiCkBAIC02NCw2ICs2NSwxNCBAQCBl
bnVtIFRyaVN0YXRlIHsgRmFsc2VUcmlTdGF0ZSwgVHJ1ZVRyaVN0CiBlbnVtIEVkaXRvckNvbW1h
bmRTb3VyY2UgeyBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcsIENvbW1hbmRGcm9tRE9NLCBD
b21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlIH07CiBlbnVtIFdyaXRpbmdEaXJlY3Rpb24g
eyBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwgTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uLCBS
aWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24gfTsKIAorc3RydWN0IFNwZWxsQ2hlY2tpbmdSZXN1
bHQgeworICAgIFNwZWxsQ2hlY2tpbmdSZXN1bHQoKQorICAgICAgICA6IHR5cGUoRG9jdW1lbnRN
YXJrZXI6OlNwZWxsaW5nKSwgbG9jYXRpb24oMCksIGxlbmd0aCgwKSB7IH0KKyAgICBEb2N1bWVu
dE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlOworICAgIGludCBsb2NhdGlvbjsKKyAgICBpbnQgbGVu
Z3RoOworfTsKKwogY2xhc3MgRWRpdG9yIHsKIHB1YmxpYzoKICAgICBFZGl0b3IoRnJhbWUqKTsK
QEAgLTIyMyw2ICsyMzIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgbWFya0FsbE1pc3NwZWxsaW5n
c0FuZEJhZEdyYW1tYXJJblJhbmdlcyhib29sIG1hcmtTcGVsbGluZywgUmFuZ2UqIHNwZWxsaW5n
UmFuZ2UsIGJvb2wgbWFya0dyYW1tYXIsIFJhbmdlKiBncmFtbWFyUmFuZ2UsIGJvb2wgcGVyZm9y
bVRleHRDaGVja2luZ1JlcGxhY2VtZW50cyk7CiAgICAgdm9pZCBjaGFuZ2VCYWNrVG9SZXBsYWNl
ZFN0cmluZyhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKICNlbmRpZgorI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsK
KyAgICB2b2lkIGFkZFNwZWxsaW5nTWFya2VycyhpbnQsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNr
aW5nUmVzdWx0PiYpOworI2VuZGlmCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmco
Ym9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNob3dTcGVsbGlu
Z0d1ZXNzUGFuZWwoKTsKICAgICBib29sIHNwZWxsaW5nUGFuZWxJc1Nob3dpbmcoKTsKQEAgLTMw
Nyw2ICszMjAsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwog
ICAgIE93blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBSZWZQdHI8Tm9kZT4gbV9zcGVsbGluZ05vZGU7CisgICAgU3RyaW5nIG1fc3BlbGxpbmdUZXh0
OworICAgIGludCBtX3NwZWxsaW5nU2VxdWVuY2U7CisjZW5kaWYKKwogICAgIGJvb2wgY2FuRGVs
ZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0
ZWJvYXJkKFBhc3RlYm9hcmQqKTsKICAgICBQYXNzUmVmUHRyPENsaXBib2FyZD4gbmV3R2VuZXJh
bENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOwpAQCAtMzI1LDYgKzM0NCwxMSBAQCBw
cml2YXRlOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IGxhc3RWaXNpYmxlUmFuZ2UoY29uc3QgU3Ry
aW5nJiwgYm9vbCBjYXNlRmxhZyk7CiAgICAgCiAgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRl
ckNvbW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBib29sIGNsb3Nl
VHlwaW5nLCBib29sIGNsZWFyVHlwaW5nU3R5bGUpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHZvaWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKTsKKyAgICBOb2RlKiBnZXRT
cGVsbGluZ05vZGUoTm9kZSopOworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9pZCBFZGl0b3I6OnNl
dFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShib29sIGZsYWcpCkluZGV4OiBXZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDMyLDggKzQzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0KKyNp
ZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiB9OwogCiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkluZGV4OiBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiA2
MzI3NCkKKysrIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTg0LDYgKzE4NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1No
b3dpbmcoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0
cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0
cmluZyYpID0gMDsKKyNlbmRpZgogfTsKIAogfQpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzMjg1KQorKysgV2ViS2l0
Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xNCAg
SGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tp
bmcgQVBJcyBhbmQgdXNlIGl0IHdoZW4gcGFzdGluZyB0ZXh0CisgICAgICAgIG9uIE1hYyBPUyAx
MC42LgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MDkyPgorICAgICAgICBUaGlzIGNoYW5nZSBjb25zaXN0cyBvZiBzZXZlcmFsIHBhcnRzOgorICAg
ICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBFZGl0b3JDbGllbnQKKyAgICAgICAgICBzbyBhIGNs
aWVudCBjYW4gaW1wbGVtZW50IGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nOworICAgICAgICAq
IEltcGxlbWVudGVkIHRoZSBhYm92ZSBpbnRlcmZhY2VzIGZvciBNYWMgT1MgMTAuNjsKKyAgICAg
ICAgKiBBZGRlZCBhZGRTcGVsbGluZ01hcmtlcnMoKSB0byBFZGl0b3Igc28gYSBjbGllbnQgY2Fu
IGFkZCBzcGVsbGluZyAob3IgZ3JhbW1hcikgbWFya2VycworICAgICAgICAqIEFkZGVkIHJlcXVl
c3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5kIGNhbGwgaXQgd2hlbiBwYXN0aW5nIHRl
eHQgc28gd2UgY2FuCisgICAgICAgICAgc3BlbGxjaGVjayB0aGUgcGFzdGVkIHRleHQgaW4gdGhl
IGJhY2tncm91bmQsIGFuZDsKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgYW5kIGhhc1NwZWxsaW5nTWFya2VyKCkgdG8KKyAgICAgICAgICBUZXh0
SW5wdXRDb250cm9sbGVyIHNvIHdlIGNhbiB3cml0ZSBhIGxheW91dCB0ZXN0LgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorCiAyMDEwLTA3LTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsNSArNDIwLDE2IEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXQKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQs
IGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDYzMjc0KQorKysgV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzAsNiArMTMwLDggQEAgcHJpdmF0ZTogICAgCiAgICAgdmlydHVhbCBib29sIHNwZWxs
aW5nVUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgV2ViQ29yZTo6U3RyaW5nJiwgVmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mIGd1ZXNzZXMpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAg
dmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoaW50LCBjb25zdCBXZWJDb3JlOjpT
dHJpbmcmKTsKIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKIH07CkluZGV4OiBXZWJLaXQvbWFjL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNjMy
ODUpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5
IEBACisyMDEwLTA3LTE0ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3luY2hy
b25vdXMgc3BlbGxjaGVja2luZyBBUElzIGFuZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQKKyAg
ICAgICAgb24gTWFjIE9TIDEwLjYuCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTI+CisgICAgICAgIFRoaXMgY2hhbmdlIGNvbnNpc3RzIG9mIHNl
dmVyYWwgcGFydHM6CisgICAgICAgICogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCgpIGFuZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIHRvIEVkaXRvckNsaWVudAor
ICAgICAgICAgIHNvIGEgY2xpZW50IGNhbiBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsY2hl
Y2tpbmc7CisgICAgICAgICogSW1wbGVtZW50ZWQgdGhlIGFib3ZlIGludGVyZmFjZXMgZm9yIE1h
YyBPUyAxMC42OworICAgICAgICAqIEFkZGVkIGFkZFNwZWxsaW5nTWFya2VycygpIHRvIEVkaXRv
ciBzbyBhIGNsaWVudCBjYW4gYWRkIHNwZWxsaW5nIChvciBncmFtbWFyKSBtYXJrZXJzCisgICAg
ICAgICogQWRkZWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKSBhbmQgY2FsbCBp
dCB3aGVuIHBhc3RpbmcgdGV4dCBzbyB3ZSBjYW4KKyAgICAgICAgICBzcGVsbGNoZWNrIHRoZSBw
YXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZCwgYW5kOworICAgICAgICAqIEFkZGVkIGlzQXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgaGFzU3BlbGxpbmdNYXJrZXIoKSB0
bworICAgICAgICAgIFRleHRJbnB1dENvbnRyb2xsZXIgc28gd2UgY2FuIHdyaXRlIGEgbGF5b3V0
IHRlc3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRk
ZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZygpLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6IFJldHVybiBZRVMgb25seSBvbiAxMC42LgorICAgICAgICAoV2Vi
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6IENhbGxzIFtOU1NwZWxsQ2hl
Y2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdCisgICAgICAgIHRvIHNwZWxsY2hlY2sgdGhl
IGdpdmVuIHRleHQgaW4gdGhlIGJhY2tncm91bmQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFt
ZS5oOiBBZGRlZCBbYWRkU3BlbGxpbmdNYXJrZXJzOnJlc3VsdHM6XSBhbmQgW2hhc1NwZWxsaW5n
TWFya2VyOmxlbmd0aDpdLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAg
ICgtW1dlYkZyYW1lIGFkZFNwZWxsaW5nTWFya2VyczpyZXN1bHRzOl0pOiBDYWxscyBFZGl0b3I6
OmFkZFNwZWxsaW5nTWFya2VycygpLgorICAgICAgICAoZ2V0U3BlbGxpbmdOb2RlKTogUmV0dXJu
cyB0aGUgdGV4dCBub2RlIHVzZWQgYnkgc3BlbGxjaGVja2luZy4KKyAgICAgICAgKC1bV2ViRnJh
bWUgaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOl0pOiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNwZWNp
ZmllZCByZWdpb24gaGFzIGEKKyAgICAgICAgc3BlbGxpbmcgbWFya2VyIGZvciBsYXlvdXQgdGV4
dHMuCisKKzIwMTAtMDctMTQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNo
b3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLmg6CisgICAgICAg
ICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgYWRkU3BlbGxpbmdN
YXJrZXJzOnJlc3VsdHM6XSk6CisgICAgICAgIChnZXRTcGVsbGluZ05vZGUpOgorICAgICAgICAo
LVtXZWJGcmFtZSBoYXNTcGVsbGluZ01hcmtlcjpsZW5ndGg6XSk6CisKIDIwMTAtMDctMTMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFRpZ2Vy
IGJ1aWxkLgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V2Vi
Q29yZTo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhpbnQsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwogcHJpdmF0ZToKICAgICB2b2lkIHJl
Z2lzdGVyQ29tbWFuZEZvclVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFu
ZD4sIGJvb2wgaXNSZWRvKTsKICAgICBXZWJFZGl0b3JDbGllbnQoKTsKSW5kZXg6IFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA2MzI3NCkK
KysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC04MjEsMyArODIxLDIzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVz
c2VzRm9yV29yZCgKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wpCiB7CiB9CisKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkKK3sKKyNpZiBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1B
Q19PU19YX1ZFUlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZBSUxBQkxFCisgICAgLy8gRW5hYmxl
IGFzeW5jaHJvbm91cyBzcGVsbC1jaGVja2luZyBvbmx5IHdoZW4gd2UgY2FuIGNvbXBpbGUgYW5k
IHVzZQorICAgIC8vIFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgor
ICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwor
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKGludCBzZXF1ZW5j
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9X
RUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKKyAgICBb
W05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmc6dGV4dCByYW5nZTpOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKSB0eXBlczpOU1RleHRD
aGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAg
Y29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXkgKnJl
c3VsdHMsIE5TT3J0aG9ncmFwaHkgKm9ydGhvZ3JhcGh5LCBOU0ludGVnZXIgd29yZENvdW50KSB7
CisgICAgICAgIFtbbV93ZWJWaWV3IHNlbGVjdGVkRnJhbWVdIGFkZFNwZWxsaW5nTWFya2Vyczpz
ZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdOworICAgIH1dOworI2VuZGlmCit9CkluZGV4OiBXZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUuaAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDQgKzIxMywyMCBAQCBAaW50ZXJmYWNlIFdl
YkZyYW1lIDogTlNPYmplY3QKICAgICBicmlkZ2UgYmV0d2VlbiB0aGUgV2ViS2l0IGFuZCBKYXZh
U2NyaXB0Q29yZSBBUElzLgogKi8KIC0gKEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0
OworCisvKiEKKyAgICBAbWV0aG9kIGFkZFNwZWxsaW5nTWFya2VycworICAgIEBwYXJhbSBzZXF1
ZW5jZSB0aGUgc2VxdWVuY2UgbnVtYmVyIHByb3ZpZGVkIGZyb20gV2ViQ29yZS4KKyAgICBAcGFy
YW0gcmVzdWx0cyBhbiBhcnJheSBvZiBOU1RleHRDaGVja2luZ1Jlc3VsdCBvYmplY3RzLgorICov
CistICh2b2lkKWFkZFNwZWxsaW5nTWFya2VyczooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJy
YXkqKXJlc3VsdHM7CisKKy8qIQorICAgIEBtZXRob2QgaGFzU3BlbGxpbmdNYXJrZXIKKyAgICBA
ZGlzY3Vzc2lvbiB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgb25seSBmb3IgbGF5b3V0IHRlc3RzLgor
ICAgIEBwYXJhbSBsb2NhdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSByYW5nZSB0byBiZSBjaGVja2Vk
LgorICAgIEBwYXJhbSBsZW5ndGggdGhlIGxlbmd0aCBvZiB0aGUgcmFuZ2UgdG8gYmUgY2hlY2tl
ZC4KKyAgICBAcmVzdWx0IHdoZXRoZXIgdGhlcmUgaXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhl
IHNwZWNpZmllZCByYW5nZSBvZiB0aGUgZm9jdXNlZCBub2RlLgorKi8KKy0gKEJPT0wpaGFzU3Bl
bGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7CiBAZW5kCkluZGV4
OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU4Miw0ICsxNTgyLDY3IEBAIC0g
KEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0CiAgICAgcmV0dXJuIHRvR2xvYmFsUmVm
KGNvcmVGcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQo
KSktPmdsb2JhbEV4ZWMoKSk7CiB9CiAKKy0gKHZvaWQpYWRkU3BlbGxpbmdNYXJrZXJzOihpbnQp
c2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0cworeworI2lmIE1BQ19PU19YX1ZFUlNJ
T05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJ
TEFCTEUKKyAgICBGcmFtZSogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBp
ZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90IGNvdW50ID0gW3Jl
c3VsdHMgY291bnRdOworICAgIFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiBtYXJrZXJzKGNv
dW50KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAg
TlNSYW5nZSByYW5nZSA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OmldIHJhbmdlXTsKKyAgICAg
ICAgc3dpdGNoIChbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSByZXN1bHRUeXBlXSkgeworICAg
ICAgICBjYXNlIE5TVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOgorICAgICAgICAgICAgbWFya2Vy
c1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjoKKyAgICAgICAgICAgIG1h
cmtlcnNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBtYXJrZXJzW2ldLnR5cGUgPSBEb2N1
bWVudE1hcmtlcjo6QWxsTWFya2VyczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgICAgIG1hcmtlcnNbaV0ubG9jYXRpb24gPSByYW5nZS5sb2NhdGlvbjsKKyAgICAgICAgbWFy
a2Vyc1tpXS5sZW5ndGggPSByYW5nZS5sZW5ndGg7CisgICAgfQorICAgIGNvcmVGcmFtZS0+ZWRp
dG9yKCktPmFkZFNwZWxsaW5nTWFya2VycyhzZXF1ZW5jZSwgbWFya2Vycyk7CisjZW5kaWYKK30K
Kworc3RhdGljIE5vZGUqIGdldFNwZWxsaW5nTm9kZShGcmFtZSogY29yZUZyYW1lKQoreworICAg
IE5vZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgp
OworICAgIGlmICghZm9jdXNlZE5vZGUgfHwgIWZvY3VzZWROb2RlLT5yZW5kZXJlcigpKQorICAg
ICAgICByZXR1cm4gTlVMTDsKKworICAgIGZvciAoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IGZvY3VzZWROb2RlLT5yZW5kZXJlcigpOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJl
ci0+Y2hpbGRBdCgwKSkgeworICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpKQorCSAgICBy
ZXR1cm4gcmVuZGVyZXItPm5vZGUoKTsKKyAgICB9CisgICAgcmV0dXJuIE5VTEw7Cit9CisKKy0g
KEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClmcm9tIGxlbmd0aDooaW50KWxlbmd0aAorewor
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGlmICghY29y
ZUZyYW1lKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICBOb2RlKiBub2RlID0gZ2V0U3BlbGxp
bmdOb2RlKGNvcmVGcmFtZSk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTk87CisK
KyAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+
KGZyb20pOworICAgIHVuc2lnbmVkIGludCBlbmRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBpbnQ+KGZyb20gKyBsZW5ndGgpOworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4gbWFya2Vy
cyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2Vyc0Zvck5vZGUobm9kZSk7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIERvY3Vt
ZW50TWFya2VyIG1hcmtlciA9IG1hcmtlcnNbaV07CisgICAgICAgIGlmIChtYXJrZXIuc3RhcnRP
ZmZzZXQgPD0gc3RhcnRPZmZzZXQgJiYgZW5kT2Zmc2V0IDw9IG1hcmtlci5lbmRPZmZzZXQgJiYg
bWFya2VyLnR5cGUgPT0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKQorICAgICAgICAgICAgcmV0
dXJuIFlFUzsKKyAgICB9CisgICAgcmV0dXJuIE5POworfQorCiBAZW5kCkluZGV4OiBXZWJLaXRU
b29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA2MzI4NSkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI2IEBACisyMDEwLTA3LTE0ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyBBUElzIGFuZCB1c2UgaXQgd2hlbiBwYXN0aW5n
IHRleHQKKyAgICAgICAgb24gTWFjIE9TIDEwLjYuCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTI+CisgICAgICAgIFRoaXMgY2hhbmdlIGNvbnNp
c3RzIG9mIHNldmVyYWwgcGFydHM6CisgICAgICAgICogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpIGFuZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIHRvIEVkaXRv
ckNsaWVudAorICAgICAgICAgIHNvIGEgY2xpZW50IGNhbiBpbXBsZW1lbnQgYXN5bmNocm9ub3Vz
IHNwZWxsY2hlY2tpbmc7CisgICAgICAgICogSW1wbGVtZW50ZWQgdGhlIGFib3ZlIGludGVyZmFj
ZXMgZm9yIE1hYyBPUyAxMC42OworICAgICAgICAqIEFkZGVkIGFkZFNwZWxsaW5nTWFya2Vycygp
IHRvIEVkaXRvciBzbyBhIGNsaWVudCBjYW4gYWRkIHNwZWxsaW5nIChvciBncmFtbWFyKSBtYXJr
ZXJzCisgICAgICAgICogQWRkZWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKSBh
bmQgY2FsbCBpdCB3aGVuIHBhc3RpbmcgdGV4dCBzbyB3ZSBjYW4KKyAgICAgICAgICBzcGVsbGNo
ZWNrIHRoZSBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZCwgYW5kOworICAgICAgICAqIEFk
ZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgaGFzU3BlbGxpbmdN
YXJrZXIoKSB0bworICAgICAgICAgIFRleHRJbnB1dENvbnRyb2xsZXIgc28gd2UgY2FuIHdyaXRl
IGEgbGF5b3V0IHRlc3QuCisgICAgICAgIAorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9U
ZXh0SW5wdXRDb250cm9sbGVyLm06CisgICAgICAgICgrW1RleHRJbnB1dENvbnRyb2xsZXIgaXNT
ZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDpdKToKKyAgICAgICAgKCtbVGV4dElucHV0Q29u
dHJvbGxlciB3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6XSk6CisgICAgICAgICgtW1RleHRJbnB1
dENvbnRyb2xsZXIgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZF0pOgorICAgICAg
ICAoLVtUZXh0SW5wdXRDb250cm9sbGVyIGhhc1NwZWxsaW5nTWFya2VyOmxlbmd0aDpdKToKKwog
MjAxMC0wNy0xMyAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCShyZXZpc2lvbiA2MzI3NCkK
KysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0J
KHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksOSBAQCArIChCT09MKWlzU2VsZWN0b3JFeGNs
dWRlZEZyb21XZWJTY3JpcHQ6CiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9y
KGNoYXJhY3RlckluZGV4Rm9yUG9pbnRYOlk6KQogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09
IEBzZWxlY3Rvcih2YWxpZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0KQogICAgICAgICAgICAgfHwg
YVNlbGVjdG9yID09IEBzZWxlY3RvcihhdHRyaWJ1dGVkU3RyaW5nV2l0aFN0cmluZzopCi0gICAg
ICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHNldElucHV0TWV0aG9kSGFuZGxlcjop
KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzZXRJbnB1dE1ldGhvZEhh
bmRsZXI6KQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihpc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKQorICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBz
ZWxlY3RvcihoYXNTcGVsbGluZ01hcmtlcjpsZW5ndGg6KSkKICAgICAgICAgcmV0dXJuIE5POwog
ICAgIHJldHVybiBZRVM7CiB9CkBAIC0xOTQsNiArMTk2LDEwIEBAICsgKE5TU3RyaW5nICopd2Vi
U2NyaXB0TmFtZUZvclNlbGVjdG9yOigKICAgICAgICAgcmV0dXJuIEAibWFrZUF0dHJpYnV0ZWRT
dHJpbmciOyAvLyBqdXN0IGEgZmFjdG9yeSBtZXRob2QsIGRvZXNuJ3QgY2FsbCBpbnRvIE5TVGV4
dElucHV0CiAgICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihzZXRJbnB1dE1ldGhv
ZEhhbmRsZXI6KSkKICAgICAgICAgcmV0dXJuIEAic2V0SW5wdXRNZXRob2RIYW5kbGVyIjsgCisg
ICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3Rvcihpc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKSkKKyAgICAgICAgcmV0dXJuIEAiaXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCI7CisgICAgZWxzZSBpZiAoYVNlbGVjdG9yID09IEBzZWxlY3RvcihoYXNTcGVs
bGluZ01hcmtlcjpsZW5ndGg6KSkKKyAgICAgICAgcmV0dXJuIEAiaGFzU3BlbGxpbmdNYXJrZXIi
OwogCiAgICAgcmV0dXJuIG5pbDsKIH0KQEAgLTQyNyw0ICs0MzMsMTggQEAgLSAoQk9PTClpbnRl
cnByZXRLZXlFdmVudHM6KE5TQXJyYXkgKilldgogICAgIHJldHVybiBZRVM7CiB9CiAKKy0gKEJP
T0wpaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZAoreworI2lmIE1BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19B
VkFJTEFCTEUKKyAgcmV0dXJuIFlFUzsKKyNlbHNlCisgIHJldHVybiBOTzsKKyNlbmRpZgorfQor
CistIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpZnJvbSBsZW5ndGg6KGludClsZW5ndGgK
K3sKKyAgICByZXR1cm4gW1t3ZWJWaWV3IG1haW5GcmFtZV0gaGFzU3BlbGxpbmdNYXJrZXI6ZnJv
bSBsZW5ndGg6bGVuZ3RoXTsKK30KKwogQGVuZApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjMyODUpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAor
MjAxMC0wNy0xNCAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYXN5bmNocm9ub3Vz
IHNwZWxsY2hlY2tpbmcgQVBJcyBhbmQgdXNlIGl0IHdoZW4gcGFzdGluZyB0ZXh0CisgICAgICAg
IG9uIE1hYyBPUyAxMC42LgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQwMDkyPgorICAgICAgICBUaGlzIGNoYW5nZSBjb25zaXN0cyBvZiBzZXZlcmFs
IHBhcnRzOgorICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoKSBhbmQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBFZGl0b3JDbGllbnQKKyAgICAg
ICAgICBzbyBhIGNsaWVudCBjYW4gaW1wbGVtZW50IGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5n
OworICAgICAgICAqIEltcGxlbWVudGVkIHRoZSBhYm92ZSBpbnRlcmZhY2VzIGZvciBNYWMgT1Mg
MTAuNjsKKyAgICAgICAgKiBBZGRlZCBhZGRTcGVsbGluZ01hcmtlcnMoKSB0byBFZGl0b3Igc28g
YSBjbGllbnQgY2FuIGFkZCBzcGVsbGluZyAob3IgZ3JhbW1hcikgbWFya2VycworICAgICAgICAq
IEFkZGVkIHJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5kIGNhbGwgaXQgd2hl
biBwYXN0aW5nIHRleHQgc28gd2UgY2FuCisgICAgICAgICAgc3BlbGxjaGVjayB0aGUgcGFzdGVk
IHRleHQgaW4gdGhlIGJhY2tncm91bmQsIGFuZDsKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIGhhc1NwZWxsaW5nTWFya2VyKCkgdG8KKyAg
ICAgICAgICBUZXh0SW5wdXRDb250cm9sbGVyIHNvIHdlIGNhbiB3cml0ZSBhIGxheW91dCB0ZXN0
LgorCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAw
MS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbDogQWRkZWQuCisKIDIwMTAtMDctMTMgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBXaW5kb3dzIGNo
ZWNrb3V0cyBieSBzaG9ydGVuaW5nIHBhdGhzLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0
LTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIHdlIGNhbiBjaGVjayB0aGUgc3BlbGxpbmcg
b2YgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQuIElmIHRoaXMgdGVzdCBzdWNjZWVkcywg
dGhlIGZvbGxvd2luZyBsaXN0IHNob3dzICdTVUNDRVNTJy4gKE90aGVyd2lzZSwgdGhpcyB0ZXN0
IGRvZXMgbm90IHN0b3AgZm9yZXZlci4pIFRvIHRlc3QgbWFudWFsbHksIHBhc3RlIG1pc3NwZWxs
ZWQgd29yZHMgdG8gdGhlIDx0ZXh0YXJlYT4gZWxlbWVudCBhbmQgc2VlIHRoZXkgYXJlIG1hcmtl
ZCBhcyBtaXNzcGVsbGVkLgorCisKK1NVQ0NFU1MKK1NVQ0NFU1MKSW5kZXg6IExheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRl
eHQtMDAxLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NTEgQEAKKzxodG1sPiAKKzxoZWFkPgorPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+Cis8dGl0bGU+
RWRpdGluZyBUZXN0PC90aXRsZT4gCis8L2hlYWQ+IAorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHdl
IGNhbiBjaGVjayB0aGUgc3BlbGxpbmcgb2YgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQu
IElmIHRoaXMgdGVzdCBzdWNjZWVkcywgdGhlIGZvbGxvd2luZyBsaXN0IHNob3dzICdTVUNDRVNT
Jy4gKE90aGVyd2lzZSwgdGhpcyB0ZXN0IGRvZXMgbm90IHN0b3AgZm9yZXZlci4pIFRvIHRlc3Qg
bWFudWFsbHksIHBhc3RlIG1pc3NwZWxsZWQgd29yZHMgdG8gdGhlICAmbHQ7dGV4dGFyZWEmZ3Qg
ZWxlbWVudCBhbmQgc2VlIHRoZXkgYXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLjwvcD4KKzx0ZXh0
YXJlYSBpZD0idGVzdCIgY29scz0iODAiIHJvd3M9IjEwIj5mb28gYmFyIGJhejwvdGV4dGFyZWE+
Cis8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+Cis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVuY3Rpb24gbG9nKHN0cikgeworICAgdmFyIGxpID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpOworICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7Cit9CisKK2Z1
bmN0aW9uIGxvZ1Jlc3VsdChyZXN1bHQpIHsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICBsb2co
J1NVQ0NFU1MnKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygnRkFJTEVEJyk7Cit9CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKKyAgICBpZiAoIXRleHRJbnB1dENvbnRyb2xsZXIuaXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZAorICAgICAgICB8fCAhdGV4dElucHV0Q29udHJvbGxlci5p
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkpIHsKKyAgICAgICAgLy8gV2UganVz
dCBvdXRwdXQgdGhlIGV4cGVjdGVkIHJlc3VsdHMgYW5kIGV4aXQgZm9yIHBsYXRmb3JtcyB0aGF0
IGRvZXMKKyAgICAgICAgLy8gbm90IHN1cHBvcnQgYXN5bmNocm9ub3VzIHNwZWxsLWNoZWNraW5n
LgorICAgICAgICBsb2coJ1NVQ0NFU1MnKTsKKyAgICAgICAgbG9nKCdTVUNDRVNTJyk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgLy8gQ29weSB0aGUgb3JpZ2luYWwgdGV4dCBhbmQgcGFzdGUgaXQu
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikuZm9jdXMoKTsKKyAgICAg
ICAgZXhlY1NlbGVjdEFsbENvbW1hbmQoKTsKKyAgICAgICAgZXhlY0NvcHlDb21tYW5kKCk7Cisg
ICAgICAgIGV4ZWNQYXN0ZUNvbW1hbmQoKTsKKworICAgICAgICAvLyBMb29wIHdoaWxlIHRoZSBm
aXJzdCB3b3JkICdmb28nIGlzIG1hcmtlZCBhcyBtaXNzcGVsbGVkLgorICAgICAgICB3aGlsZSAo
IXRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMCwgMykpOworCisgICAgICAg
IC8vIENoZWNrIGlmICdmb28nIGFuZCAnYmF6JyBhcmUgbWFya2VkIGFzIG1pc3NwZWxsZWQuCisg
ICAgICAgIGxvZ1Jlc3VsdCh0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAs
IDMpKTsKKyAgICAgICAgbG9nUmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdN
YXJrZXIoOCwgMykpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61488</attachid>
            <date>2010-07-14 01:47:59 -0700</date>
            <delta_ts>2010-07-30 00:27:11 -0700</delta_ts>
            <desc>Draft implementation #3</desc>
            <filename>issue40092-patch3.txt</filename>
            <type>text/plain</type>
            <size>29919</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzI4NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDctMTQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3aGVuIHBhc3Rp
bmcgdGV4dAorICAgICAgICBvbiBNYWMgT1MgMTAuNi4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5Mj4KKyAgICAgICAgVGhpcyBjaGFuZ2UgY29u
c2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0czoKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgdG8gRWRp
dG9yQ2xpZW50CisgICAgICAgICAgc28gYSBjbGllbnQgY2FuIGltcGxlbWVudCBhc3luY2hyb25v
dXMgc3BlbGxjaGVja2luZzsKKyAgICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgYWJvdmUgaW50ZXJm
YWNlcyBmb3IgTWFjIE9TIDEwLjY7CisgICAgICAgICogQWRkZWQgYWRkU3BlbGxpbmdNYXJrZXJz
KCkgdG8gRWRpdG9yIHNvIGEgY2xpZW50IGNhbiBhZGQgc3BlbGxpbmcgKG9yIGdyYW1tYXIpIG1h
cmtlcnMKKyAgICAgICAgKiBBZGRlZCByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4dCgp
IGFuZCBjYWxsIGl0IHdoZW4gcGFzdGluZyB0ZXh0IHNvIHdlIGNhbgorICAgICAgICAgIHNwZWxs
Y2hlY2sgdGhlIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLCBhbmQ7CisgICAgICAgICog
QWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCBoYXNTcGVsbGlu
Z01hcmtlcigpIHRvCisgICAgICAgICAgVGV4dElucHV0Q29udHJvbGxlciBzbyB3ZSBjYW4gd3Jp
dGUgYSBsYXlvdXQgdGVzdC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
RWRpdG9yKTogSW5pdGlhbGl6ZXMgdGhlIHZhcmlhYmxlcyB1c2VkIGJ5IGFzeW5jaHJvbm91cyBz
cGVsbGNoZWNraW5nLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0
KTogQ2FsbHMgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKS4KKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KTog
U3BlbGxjaGVja3MgdGhlIHRleHQgb2YgdGhlIGZvY3VzZWQKKyAgICAgICAgbm9kZSBpbiB0aGUg
YmFja2dyb3VuZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Z2V0U3BlbGxpbmdOb2RlKTog
UmV0cmlldmVzIGEgdGV4dCBub2RlIHVzZWQgYnkgc3BlbGxjaGVja2luZy4KKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6YWRkU3BlbGxpbmdNYXJrZXJzKTogQXBwbGllcyBzcGVsbGNoZWNraW5n
IHJlc3VsdHMuCisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOiBBIHN0cnVjdCB0aGF0
IHNwZWNpZmllcyBhCisgICAgICAgIHNwZWxsY2hlY2tpbmcgcmVzdWx0LgorICAgICAgICAqIGxv
YWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50
Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQgYW4gZW1wdHkKKyAg
ICAgICAgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOiBBZGRlZCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kCisgICAgICAgIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KCkuCisKIDIwMTAtMDctMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNp
b24gNjMyNzQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC01
NDksNiArNTQ5LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjEzdHJ5REhUTUxQYXN0ZUV2CiBfX1pO
N1dlYkNvcmU2RWRpdG9yMTRzZXRDb21wb3NpdGlvbkVSS05TXzZTdHJpbmdFUktOM1dURjZWZWN0
b3JJTlNfMjBDb21wb3NpdGlvblVuZGVybGluZUVMbTBFRUVqagogX19aTjdXZWJDb3JlNkVkaXRv
cjE2cGFzdGVBc1BsYWluVGV4dEV2CiBfX1pON1dlYkNvcmU2RWRpdG9yMTdpbnNlcnRPcmRlcmVk
TGlzdEV2CitfX1pON1dlYkNvcmU2RWRpdG9yMThhZGRTcGVsbGluZ01hcmtlcnNFaVJLTjNXVEY2
VmVjdG9ySU5TXzE5U3BlbGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk43V2ViQ29yZTZFZGl0
b3IxOGNvbmZpcm1Db21wb3NpdGlvbkVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNvcmU2RWRpdG9y
MThjb25maXJtQ29tcG9zaXRpb25FdgogX19aTjdXZWJDb3JlNkVkaXRvcjE5ZGVsZXRlV2l0aERp
cmVjdGlvbkVOU18xOVNlbGVjdGlvbkNvbnRyb2xsZXIxMEVEaXJlY3Rpb25FTlNfMTVUZXh0R3Jh
bnVsYXJpdHlFYmIKQEAgLTYwNSw2ICs2MDYsNyBAQCBfX1pON1dlYkNvcmU3bnNDb2xvckVSS05T
XzVDb2xvckUKIF9fWk43V2ViQ29yZThEb2N1bWVudDExY3JlYXRlUmFuZ2VFdgogX19aTjdXZWJD
b3JlOERvY3VtZW50MTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5
cGVFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxM3N2Z0V4dGVuc2lvbnNFdgorX19aTjdXZWJDb3Jl
OERvY3VtZW50MTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmU4RG9jdW1l
bnQxNHNldEZvY3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFCiBfX1pON1dl
YkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaQogX19aTjdXZWJDb3JlOERvY3VtZW50
MTdnZXRGb2N1c2FibGVOb2Rlc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzROb2RlRUVF
TG0wRUVFCkBAIC04MTQsNiArODE2LDcgQEAgX19aTks3V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBj
dXJyZW50S2V5YgogX19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlMTJkYXRhYmFzZVBhdGhFdgog
X19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlMjRzaG91bGRTdG9wVGhyZWFkQWN0aXZpdHlFdgog
X19aTks3V2ViQ29yZTEySWNvbkRhdGFiYXNlOWlzRW5hYmxlZEV2CitfX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3Q3Y2hpbGRBdEVqCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xv
c2luZ0xheWVyRXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRl
RU5TXzEwRmxvYXRQb2ludEViYgogX19aTks3V2ViQ29yZTEyUmVuZGVyV2lkZ2V0MTR3aW5kb3dD
bGlwUmVjdEV2CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQwLDYgKzk0MCw5IEBAIEVk
aXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0
LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUg
YnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKICAgICAsIG1f
a2lsbFJpbmcobmV3IEtpbGxSaW5nKQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIG1fc3BlbGxp
bmdTZXF1ZW5jZSgwKQorI2VuZGlmCiB7IAogfQogCkBAIC0xMDkwLDYgKzEwOTMsOSBAQCB2b2lk
IEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCgpCiAgICAgaWYgKCFjYW5QYXN0ZSgpKQogICAgICAg
ICByZXR1cm47CiAgICAgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQ6
OmdlbmVyYWxQYXN0ZWJvYXJkKCkpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXF1ZXN0Q2hl
Y2tpbmdPZkZvY3VzZWROb2RlVGV4dCgpOworI2VuZGlmCiB9CiAKIHZvaWQgRWRpdG9yOjpwZXJm
b3JtRGVsZXRlKCkKQEAgLTExNDgsNiArMTE1NCw5MCBAQCBpbnQgRWRpdG9yOjpzcGVsbENoZWNr
ZXJEb2N1bWVudFRhZygpCiAgICAgcmV0dXJuIGNsaWVudCgpID8gY2xpZW50KCktPnNwZWxsQ2hl
Y2tlckRvY3VtZW50VGFnKCkgOiAwOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQorYm9vbCBFZGl0
b3I6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBj
bGllbnQoKSAmJiBjbGllbnQoKS0+aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
OworfQorCit2b2lkIEVkaXRvcjo6cmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKQor
eworICAgIGlmICghaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHx8IG1fc3Bl
bGxpbmdOb2RlLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBOb2RlKiBmb2N1c2VkTm9k
ZSA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFmb2N1c2Vk
Tm9kZSB8fCAhZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IFN0cmluZyB0ZXh0OworICAgIGlmIChmb2N1c2VkTm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0Rmll
bGQoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihmb2N1
c2VkTm9kZSktPnZhbHVlKCk7CisgICAgZWxzZSBpZiAoZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCkt
PmlzVGV4dEFyZWEoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVs
ZW1lbnQqPihmb2N1c2VkTm9kZSktPnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0g
Zm9jdXNlZE5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3NwZWxsaW5nTm9kZSA9IGZvY3VzZWROb2RlOworICAgIG1f
c3BlbGxpbmdUZXh0ID0gdGV4dDsKKyAgICBjbGllbnQoKS0+cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoKyttX3NwZWxsaW5nU2VxdWVuY2UsIHRleHQpOworfQorCitOb2RlKiBFZGl0b3I6OmdldFNw
ZWxsaW5nTm9kZShOb2RlKiBub2RlKQoreworICAgIC8vIFJldHJpZXZlIHRoZSBmaXJzdCAnI3Rl
eHQnIG5vZGUgdXNlZCBieSByZW5kZXJlcnMuIEZvciBhIDx0ZXh0YXJlYT4KKyAgICAvLyBlbGVt
ZW50LCBzcGVsbGNoZWNrZXJzIGFkZHMgc3BlbGxpbmcgbWFya2VycyB0byB0aGUgc2hhZG93IG5v
ZGUgdXNlZCBieQorICAgIC8vIHJlbmRlcmVycywgaS5lLiBhZGRpbmcgc3BlbGxpbmcgbWFya2Vy
IHRvIGEgRE9NIG5vZGUgZG9lcyBub3QgYWRkIG1hcmtlcnMKKyAgICAvLyB0byB0aGUgbm9kZSB1
c2VkIGJ5IHNwZWxsY2hlY2tlcnMuIFRoZXJlZm9yZSwgd2UgZGlyZWN0bHkgcmV0cmlldmUgdGhl
CisgICAgLy8gc2hhZG93IG5vZGUgZnJvbSB0aGUgZm9jdXNlZCBub2RlLgorICAgIGZvciAoY29u
c3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7IHJlbmRlcmVyOyBy
ZW5kZXJlciA9IHJlbmRlcmVyLT5jaGlsZEF0KDApKSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+
aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPm5vZGUoKTsKKyAgICB9Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgRWRpdG9yOjphZGRTcGVsbGluZ01hcmtlcnMoaW50IHNl
cXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCit7Cisg
ICAgaWYgKCFtX3NwZWxsaW5nTm9kZS5nZXQoKSB8fCAhbV9zcGVsbGluZ1RleHQubGVuZ3RoKCkg
fHwgbV9zcGVsbGluZ1NlcXVlbmNlICE9IHNlcXVlbmNlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBOb2RlKiBub2RlID0gZ2V0U3BlbGxpbmdOb2RlKG1fc3BlbGxpbmdOb2RlLmdldCgpKTsKKyAg
ICBpZiAobm9kZSkgeworICAgICAgICBpbnQgc3RhcnRPZmZzZXQgPSAwOworICAgICAgICBQb3Np
dGlvbiBzdGFydChub2RlLCAwKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1
bHRzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IERv
Y3VtZW50TWFya2VyOjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJr
ZXI6OkdyYW1tYXIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIC8v
IFRvIGF2b2lkIG1vdmluZyB0aGUgcG9zaXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUgZ2l2
ZW4gcmVzdWx0cyBhcmUgc29ydGVkCisgICAgICAgICAgICAvLyB3aXRoIHN0YXJ0T2Zmc2V0IGFz
IHRoZSBvbmVzIHJldHVybmVkIGJ5IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZzpdLgorICAgICAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3VsdHNbaV0ubG9j
YXRpb24pOworICAgICAgICAgICAgZm9yICg7IHN0YXJ0T2Zmc2V0IDwgcmVzdWx0c1tpXS5sb2Nh
dGlvbjsgKytzdGFydE9mZnNldCkKKyAgICAgICAgICAgICAgICBzdGFydCA9IHN0YXJ0Lm5leHQo
KTsKKworICAgICAgICAgICAgUG9zaXRpb24gZW5kKHN0YXJ0KTsKKyAgICAgICAgICAgIGZvciAo
aW50IGxlbmd0aCA9IDA7IGxlbmd0aCA8IHJlc3VsdHNbaV0ubGVuZ3RoOyArK2xlbmd0aCkKKyAg
ICAgICAgICAgICAgICBlbmQgPSBlbmQubmV4dCgpOworCisgICAgICAgICAgICAvLyBVc2VycyBv
ciBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucyBjYW4gY2hhbmdlIHRleHQgd2hpbGUgc3BlbGwtY2hl
Y2tlcnMgY2hlY2tzCisgICAgICAgICAgICAvLyBpdHMgc3BlbGxpbmdzLiBUbyBhdm9pZCBhZGRp
bmcgbWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgICAg
IC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhlIHNw
ZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUKKyAgICAgICAgICAgIC8vIHRoZW0gd2l0aCB0aGUg
b3JpZ2luYWwgb25lcy4KKyAgICAgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UoUmFuZ2U6OmNy
ZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKSk7CisgICAgICAgICAgICBTdHJp
bmcgZGVzdGluYXRpb24ocmFuZ2UtPnRleHQoKSk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNl
KG1fc3BlbGxpbmdUZXh0LnN1YnN0cmluZyhyZXN1bHRzW2ldLmxvY2F0aW9uLCByZXN1bHRzW2ld
Lmxlbmd0aCkpOworICAgICAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAg
ICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5hZGRNYXJrZXIocmFuZ2UuZ2V0KCksIHJl
c3VsdHNbaV0udHlwZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX3NwZWxsaW5nTm9kZSA9
IDA7CisgICAgbV9zcGVsbGluZ1RleHQgPSBTdHJpbmcoKTsKK30KKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkKIAogdm9pZCBFZGl0b3I6OnVwcGVyY2FzZVdvcmQoKQpJbmRleDog
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vz
c1BvbGljeS5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIu
aCIKICNpbmNsdWRlICJFZGl0QWN0aW9uLmgiCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yLmgi
CiAjaW5jbHVkZSAiRWRpdG9yRGVsZXRlQWN0aW9uLmgiCkBAIC02NCw2ICs2NSwxNCBAQCBlbnVt
IFRyaVN0YXRlIHsgRmFsc2VUcmlTdGF0ZSwgVHJ1ZVRyaVN0CiBlbnVtIEVkaXRvckNvbW1hbmRT
b3VyY2UgeyBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcsIENvbW1hbmRGcm9tRE9NLCBDb21t
YW5kRnJvbURPTVdpdGhVc2VySW50ZXJmYWNlIH07CiBlbnVtIFdyaXRpbmdEaXJlY3Rpb24geyBO
YXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwgTGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uLCBSaWdo
dFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24gfTsKIAorc3RydWN0IFNwZWxsQ2hlY2tpbmdSZXN1bHQg
eworICAgIFNwZWxsQ2hlY2tpbmdSZXN1bHQoKQorICAgICAgICA6IHR5cGUoRG9jdW1lbnRNYXJr
ZXI6OlNwZWxsaW5nKSwgbG9jYXRpb24oMCksIGxlbmd0aCgwKSB7IH0KKyAgICBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZSB0eXBlOworICAgIGludCBsb2NhdGlvbjsKKyAgICBpbnQgbGVuZ3Ro
OworfTsKKwogY2xhc3MgRWRpdG9yIHsKIHB1YmxpYzoKICAgICBFZGl0b3IoRnJhbWUqKTsKQEAg
LTIyMyw2ICsyMzIsMTAgQEAgcHVibGljOgogICAgIHZvaWQgbWFya0FsbE1pc3NwZWxsaW5nc0Fu
ZEJhZEdyYW1tYXJJblJhbmdlcyhib29sIG1hcmtTcGVsbGluZywgUmFuZ2UqIHNwZWxsaW5nUmFu
Z2UsIGJvb2wgbWFya0dyYW1tYXIsIFJhbmdlKiBncmFtbWFyUmFuZ2UsIGJvb2wgcGVyZm9ybVRl
eHRDaGVja2luZ1JlcGxhY2VtZW50cyk7CiAgICAgdm9pZCBjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0
cmluZyhjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nKTsKICNlbmRpZgorI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAg
ICB2b2lkIGFkZFNwZWxsaW5nTWFya2VycyhpbnQsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5n
UmVzdWx0PiYpOworI2VuZGlmCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9v
bCBzdGFydEJlZm9yZVNlbGVjdGlvbiA9IGZhbHNlKTsKICAgICB2b2lkIHNob3dTcGVsbGluZ0d1
ZXNzUGFuZWwoKTsKICAgICBib29sIHNwZWxsaW5nUGFuZWxJc1Nob3dpbmcoKTsKQEAgLTMwNyw2
ICszMjAsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAg
IE93blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBS
ZWZQdHI8Tm9kZT4gbV9zcGVsbGluZ05vZGU7CisgICAgU3RyaW5nIG1fc3BlbGxpbmdUZXh0Owor
ICAgIGludCBtX3NwZWxsaW5nU2VxdWVuY2U7CisjZW5kaWYKKwogICAgIGJvb2wgY2FuRGVsZXRl
UmFuZ2UoUmFuZ2UqKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqKTsKICAgICBQYXNzUmVmUHRyPENsaXBib2FyZD4gbmV3R2VuZXJhbENs
aXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kpOwpAQCAtMzI1LDYgKzM0NCwxMSBAQCBwcml2
YXRlOgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IGxhc3RWaXNpYmxlUmFuZ2UoY29uc3QgU3RyaW5n
JiwgYm9vbCBjYXNlRmxhZyk7CiAgICAgCiAgICAgdm9pZCBjaGFuZ2VTZWxlY3Rpb25BZnRlckNv
bW1hbmQoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBib29sIGNsb3NlVHlw
aW5nLCBib29sIGNsZWFyVHlwaW5nU3R5bGUpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKTsKKyAgICBOb2RlKiBnZXRTcGVs
bGluZ05vZGUoTm9kZSopOworI2VuZGlmCiB9OwogCiBpbmxpbmUgdm9pZCBFZGl0b3I6OnNldFN0
YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShib29sIGZsYWcpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29y
a2luZyBjb3B5KQpAQCAtNDMyLDggKzQzMiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IHNwZWxsaW5nVUlJc1Nob3dpbmcoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0KKyNpZiBQ
TEFURk9STShNQUMpCisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiB9OwogCiAjaWYg
RU5BQkxFKENPTlRFWFRfTUVOVVMpCkluZGV4OiBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiA2MzI3
NCkKKysrIFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg0
LDYgKzE4NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dp
bmcoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyNlbmRpZgogfTsKIAogfQpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzMjg1KQorKysgV2ViS2l0Mi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xNCAgSGly
b25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcg
QVBJcyBhbmQgdXNlIGl0IHdoZW4gcGFzdGluZyB0ZXh0CisgICAgICAgIG9uIE1hYyBPUyAxMC42
LgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDky
PgorICAgICAgICBUaGlzIGNoYW5nZSBjb25zaXN0cyBvZiBzZXZlcmFsIHBhcnRzOgorICAgICAg
ICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoKSB0byBFZGl0b3JDbGllbnQKKyAgICAgICAgICBzbyBhIGNsaWVu
dCBjYW4gaW1wbGVtZW50IGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nOworICAgICAgICAqIElt
cGxlbWVudGVkIHRoZSBhYm92ZSBpbnRlcmZhY2VzIGZvciBNYWMgT1MgMTAuNjsKKyAgICAgICAg
KiBBZGRlZCBhZGRTcGVsbGluZ01hcmtlcnMoKSB0byBFZGl0b3Igc28gYSBjbGllbnQgY2FuIGFk
ZCBzcGVsbGluZyAob3IgZ3JhbW1hcikgbWFya2VycworICAgICAgICAqIEFkZGVkIHJlcXVlc3RD
aGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5kIGNhbGwgaXQgd2hlbiBwYXN0aW5nIHRleHQg
c28gd2UgY2FuCisgICAgICAgICAgc3BlbGxjaGVjayB0aGUgcGFzdGVkIHRleHQgaW4gdGhlIGJh
Y2tncm91bmQsIGFuZDsKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgYW5kIGhhc1NwZWxsaW5nTWFya2VyKCkgdG8KKyAgICAgICAgICBUZXh0SW5w
dXRDb250cm9sbGVyIHNvIHdlIGNhbiB3cml0ZSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oOgorCiAyMDEwLTA3LTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCShy
ZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsNSArNDIwLDE2IEBAIHZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXQKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNv
bnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDYzMjc0KQorKysgV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzAsNiArMTMwLDggQEAgcHJpdmF0ZTogICAgCiAgICAgdmlydHVhbCBib29sIHNwZWxsaW5n
VUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
V2ViQ29yZTo6U3RyaW5nJiwgVmVjdG9yPFdlYkNvcmU6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmly
dHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoaW50LCBjb25zdCBXZWJDb3JlOjpTdHJp
bmcmKTsKIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKIH07CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNjMyODUp
CisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDEwLTA3LTE0ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3luY2hyb25v
dXMgc3BlbGxjaGVja2luZyBBUElzIGFuZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQKKyAgICAg
ICAgb24gTWFjIE9TIDEwLjYuCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwOTI+CisgICAgICAgIFRoaXMgY2hhbmdlIGNvbnNpc3RzIG9mIHNldmVy
YWwgcGFydHM6CisgICAgICAgICogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCgpIGFuZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIHRvIEVkaXRvckNsaWVudAorICAg
ICAgICAgIHNvIGEgY2xpZW50IGNhbiBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tp
bmc7CisgICAgICAgICogSW1wbGVtZW50ZWQgdGhlIGFib3ZlIGludGVyZmFjZXMgZm9yIE1hYyBP
UyAxMC42OworICAgICAgICAqIEFkZGVkIGFkZFNwZWxsaW5nTWFya2VycygpIHRvIEVkaXRvciBz
byBhIGNsaWVudCBjYW4gYWRkIHNwZWxsaW5nIChvciBncmFtbWFyKSBtYXJrZXJzCisgICAgICAg
ICogQWRkZWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKSBhbmQgY2FsbCBpdCB3
aGVuIHBhc3RpbmcgdGV4dCBzbyB3ZSBjYW4KKyAgICAgICAgICBzcGVsbGNoZWNrIHRoZSBwYXN0
ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZCwgYW5kOworICAgICAgICAqIEFkZGVkIGlzQXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgaGFzU3BlbGxpbmdNYXJrZXIoKSB0bwor
ICAgICAgICAgIFRleHRJbnB1dENvbnRyb2xsZXIgc28gd2UgY2FuIHdyaXRlIGEgbGF5b3V0IHRl
c3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDogQWRkZWQg
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZygpLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCk6IFJldHVybiBZRVMgb25seSBvbiAxMC42LgorICAgICAgICAoV2ViRWRp
dG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6IENhbGxzIFtOU1NwZWxsQ2hlY2tl
ciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdCisgICAgICAgIHRvIHNwZWxsY2hlY2sgdGhlIGdp
dmVuIHRleHQgaW4gdGhlIGJhY2tncm91bmQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5o
OiBBZGRlZCBbYWRkU3BlbGxpbmdNYXJrZXJzOnJlc3VsdHM6XSBhbmQgW2hhc1NwZWxsaW5nTWFy
a2VyOmxlbmd0aDpdLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgt
W1dlYkZyYW1lIGFkZFNwZWxsaW5nTWFya2VyczpyZXN1bHRzOl0pOiBDYWxscyBFZGl0b3I6OmFk
ZFNwZWxsaW5nTWFya2VycygpLgorICAgICAgICAoZ2V0U3BlbGxpbmdOb2RlKTogUmV0dXJucyB0
aGUgdGV4dCBub2RlIHVzZWQgYnkgc3BlbGxjaGVja2luZy4KKyAgICAgICAgKC1bV2ViRnJhbWUg
aGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOl0pOiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNwZWNpZmll
ZCByZWdpb24gaGFzIGEKKyAgICAgICAgc3BlbGxpbmcgbWFya2VyIGZvciBsYXlvdXQgdGV4dHMu
CisKKzIwMTAtMDctMTQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0
IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgYWRkU3BlbGxpbmdNYXJr
ZXJzOnJlc3VsdHM6XSk6CisgICAgICAgIChnZXRTcGVsbGluZ05vZGUpOgorICAgICAgICAoLVtX
ZWJGcmFtZSBoYXNTcGVsbGluZ01hcmtlcjpsZW5ndGg6XSk6CisKIDIwMTAtMDctMTMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFRpZ2VyIGJ1
aWxkLgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
CShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIHNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V2ViQ29y
ZTo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhpbnQsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lz
dGVyQ29tbWFuZEZvclVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4s
IGJvb2wgaXNSZWRvKTsKICAgICBXZWJFZGl0b3JDbGllbnQoKTsKSW5kZXg6IFdlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA2MzI3NCkKKysr
IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC04MjEsMyArODIxLDIzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2Vz
Rm9yV29yZCgKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wp
CiB7CiB9CisKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkKK3sKKyNpZiBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1BQ19P
U19YX1ZFUlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZBSUxBQkxFCisgICAgLy8gRW5hYmxlIGFz
eW5jaHJvbm91cyBzcGVsbC1jaGVja2luZyBvbmx5IHdoZW4gd2UgY2FuIGNvbXBpbGUgYW5kIHVz
ZQorICAgIC8vIFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAg
IHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKGludCBzZXF1ZW5jZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0KQoreworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQg
Pj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKKyAgICBbW05T
U3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6
dGV4dCByYW5nZTpOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKSB0eXBlczpOU1RleHRDaGVj
a2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgY29t
cGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIgc2VxdWVuY2VOdW1iZXIsIE5TQXJyYXkgKnJlc3Vs
dHMsIE5TT3J0aG9ncmFwaHkgKm9ydGhvZ3JhcGh5LCBOU0ludGVnZXIgd29yZENvdW50KSB7Cisg
ICAgICAgIFtbbV93ZWJWaWV3IHNlbGVjdGVkRnJhbWVdIGFkZFNwZWxsaW5nTWFya2VyczpzZXF1
ZW5jZSByZXN1bHRzOnJlc3VsdHNdOworICAgIH1dOworI2VuZGlmCit9CkluZGV4OiBXZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUuaAkocmV2aXNpb24gNjMyNzQpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDQgKzIxMywyMCBAQCBAaW50ZXJmYWNlIFdlYkZy
YW1lIDogTlNPYmplY3QKICAgICBicmlkZ2UgYmV0d2VlbiB0aGUgV2ViS2l0IGFuZCBKYXZhU2Ny
aXB0Q29yZSBBUElzLgogKi8KIC0gKEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0Owor
CisvKiEKKyAgICBAbWV0aG9kIGFkZFNwZWxsaW5nTWFya2VycworICAgIEBwYXJhbSBzZXF1ZW5j
ZSB0aGUgc2VxdWVuY2UgbnVtYmVyIHByb3ZpZGVkIGZyb20gV2ViQ29yZS4KKyAgICBAcGFyYW0g
cmVzdWx0cyBhbiBhcnJheSBvZiBOU1RleHRDaGVja2luZ1Jlc3VsdCBvYmplY3RzLgorICovCist
ICh2b2lkKWFkZFNwZWxsaW5nTWFya2VyczooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkq
KXJlc3VsdHM7CisKKy8qIQorICAgIEBtZXRob2QgaGFzU3BlbGxpbmdNYXJrZXIKKyAgICBAZGlz
Y3Vzc2lvbiB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgb25seSBmb3IgbGF5b3V0IHRlc3RzLgorICAg
IEBwYXJhbSBsb2NhdGlvbiB0aGUgb2Zmc2V0IG9mIHRoZSByYW5nZSB0byBiZSBjaGVja2VkLgor
ICAgIEBwYXJhbSBsZW5ndGggdGhlIGxlbmd0aCBvZiB0aGUgcmFuZ2UgdG8gYmUgY2hlY2tlZC4K
KyAgICBAcmVzdWx0IHdoZXRoZXIgdGhlcmUgaXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNw
ZWNpZmllZCByYW5nZSBvZiB0aGUgZm9jdXNlZCBub2RlLgorKi8KKy0gKEJPT0wpaGFzU3BlbGxp
bmdNYXJrZXI6KGludClsb2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7CiBAZW5kCkluZGV4OiBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiA2MzI3NCkKKysrIFdlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTU4Miw0ICsxNTgyLDY3IEBAIC0gKEpT
R2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0CiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGNv
cmVGcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkt
Pmdsb2JhbEV4ZWMoKSk7CiB9CiAKKy0gKHZvaWQpYWRkU3BlbGxpbmdNYXJrZXJzOihpbnQpc2Vx
dWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0cworeworI2lmIE1BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFC
TEUKKyAgICBGcmFtZSogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBpZiAo
IWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2l6ZV90IGNvdW50ID0gW3Jlc3Vs
dHMgY291bnRdOworICAgIFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiBtYXJrZXJzKGNvdW50
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgTlNS
YW5nZSByYW5nZSA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OmldIHJhbmdlXTsKKyAgICAgICAg
c3dpdGNoIChbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSByZXN1bHRUeXBlXSkgeworICAgICAg
ICBjYXNlIE5TVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nOgorICAgICAgICAgICAgbWFya2Vyc1tp
XS50eXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjoKKyAgICAgICAgICAgIG1hcmtl
cnNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBtYXJrZXJzW2ldLnR5cGUgPSBEb2N1bWVu
dE1hcmtlcjo6QWxsTWFya2VyczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIG1hcmtlcnNbaV0ubG9jYXRpb24gPSByYW5nZS5sb2NhdGlvbjsKKyAgICAgICAgbWFya2Vy
c1tpXS5sZW5ndGggPSByYW5nZS5sZW5ndGg7CisgICAgfQorICAgIGNvcmVGcmFtZS0+ZWRpdG9y
KCktPmFkZFNwZWxsaW5nTWFya2VycyhzZXF1ZW5jZSwgbWFya2Vycyk7CisjZW5kaWYKK30KKwor
c3RhdGljIE5vZGUqIGdldFNwZWxsaW5nTm9kZShGcmFtZSogY29yZUZyYW1lKQoreworICAgIE5v
ZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOwor
ICAgIGlmICghZm9jdXNlZE5vZGUgfHwgIWZvY3VzZWROb2RlLT5yZW5kZXJlcigpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIGZvciAoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGZv
Y3VzZWROb2RlLT5yZW5kZXJlcigpOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJlci0+Y2hp
bGRBdCgwKSkgeworICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpKQorICAgICAgICAgICAg
cmV0dXJuIHJlbmRlcmVyLT5ub2RlKCk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCistIChC
T09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpZnJvbSBsZW5ndGg6KGludClsZW5ndGgKK3sKKyAg
ICBGcmFtZSogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBpZiAoIWNvcmVG
cmFtZSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgTm9kZSogbm9kZSA9IGdldFNwZWxsaW5n
Tm9kZShjb3JlRnJhbWUpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIE5POworCisg
ICAgdW5zaWduZWQgaW50IHN0YXJ0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihm
cm9tKTsKKyAgICB1bnNpZ25lZCBpbnQgZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
aW50Pihmcm9tICsgbGVuZ3RoKTsKKyAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+IG1hcmtlcnMg
PSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPm1hcmtlcnNGb3JOb2RlKG5vZGUpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkgeworICAgICAgICBEb2N1bWVu
dE1hcmtlciBtYXJrZXIgPSBtYXJrZXJzW2ldOworICAgICAgICBpZiAobWFya2VyLnN0YXJ0T2Zm
c2V0IDw9IHN0YXJ0T2Zmc2V0ICYmIGVuZE9mZnNldCA8PSBtYXJrZXIuZW5kT2Zmc2V0ICYmIG1h
cmtlci50eXBlID09IERvY3VtZW50TWFya2VyOjpTcGVsbGluZykKKyAgICAgICAgICAgIHJldHVy
biBZRVM7CisgICAgfQorICAgIHJldHVybiBOTzsKK30KKwogQGVuZApJbmRleDogV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNp
b24gNjMyODUpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyNiBAQAorMjAxMC0wNy0xNCAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgQVBJcyBhbmQgdXNlIGl0IHdoZW4gcGFzdGluZyB0
ZXh0CisgICAgICAgIG9uIE1hYyBPUyAxMC42LgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyPgorICAgICAgICBUaGlzIGNoYW5nZSBjb25zaXN0
cyBvZiBzZXZlcmFsIHBhcnRzOgorICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSBhbmQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBFZGl0b3JD
bGllbnQKKyAgICAgICAgICBzbyBhIGNsaWVudCBjYW4gaW1wbGVtZW50IGFzeW5jaHJvbm91cyBz
cGVsbGNoZWNraW5nOworICAgICAgICAqIEltcGxlbWVudGVkIHRoZSBhYm92ZSBpbnRlcmZhY2Vz
IGZvciBNYWMgT1MgMTAuNjsKKyAgICAgICAgKiBBZGRlZCBhZGRTcGVsbGluZ01hcmtlcnMoKSB0
byBFZGl0b3Igc28gYSBjbGllbnQgY2FuIGFkZCBzcGVsbGluZyAob3IgZ3JhbW1hcikgbWFya2Vy
cworICAgICAgICAqIEFkZGVkIHJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5k
IGNhbGwgaXQgd2hlbiBwYXN0aW5nIHRleHQgc28gd2UgY2FuCisgICAgICAgICAgc3BlbGxjaGVj
ayB0aGUgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQsIGFuZDsKKyAgICAgICAgKiBBZGRl
ZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIGhhc1NwZWxsaW5nTWFy
a2VyKCkgdG8KKyAgICAgICAgICBUZXh0SW5wdXRDb250cm9sbGVyIHNvIHdlIGNhbiB3cml0ZSBh
IGxheW91dCB0ZXN0LgorICAgICAgICAKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGV4
dElucHV0Q29udHJvbGxlci5tOgorICAgICAgICAoK1tUZXh0SW5wdXRDb250cm9sbGVyIGlzU2Vs
ZWN0b3JFeGNsdWRlZEZyb21XZWJTY3JpcHQ6XSk6CisgICAgICAgICgrW1RleHRJbnB1dENvbnRy
b2xsZXIgd2ViU2NyaXB0TmFtZUZvclNlbGVjdG9yOl0pOgorICAgICAgICAoLVtUZXh0SW5wdXRD
b250cm9sbGVyIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdKToKKyAgICAgICAg
KC1bVGV4dElucHV0Q29udHJvbGxlciBoYXNTcGVsbGluZ01hcmtlcjpsZW5ndGg6XSk6CisKIDIw
MTAtMDctMTMgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubQkocmV2aXNpb24gNjMyNzQpCisr
KyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjksNyArMTY5LDkgQEAgKyAoQk9PTClpc1NlbGVjdG9yRXhjbHVk
ZWRGcm9tV2ViU2NyaXB0OgogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3Rvcihj
aGFyYWN0ZXJJbmRleEZvclBvaW50WDpZOikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBA
c2VsZWN0b3IodmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dCkKICAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoYXR0cmlidXRlZFN0cmluZ1dpdGhTdHJpbmc6KQotICAgICAg
ICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzZXRJbnB1dE1ldGhvZEhhbmRsZXI6KSkK
KyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0SW5wdXRNZXRob2RIYW5k
bGVyOikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCkKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3IoaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOikpCiAgICAgICAgIHJldHVybiBOTzsKICAg
ICByZXR1cm4gWUVTOwogfQpAQCAtMTk0LDYgKzE5NiwxMCBAQCArIChOU1N0cmluZyAqKXdlYlNj
cmlwdE5hbWVGb3JTZWxlY3RvcjooCiAgICAgICAgIHJldHVybiBAIm1ha2VBdHRyaWJ1dGVkU3Ry
aW5nIjsgLy8ganVzdCBhIGZhY3RvcnkgbWV0aG9kLCBkb2Vzbid0IGNhbGwgaW50byBOU1RleHRJ
bnB1dAogICAgIGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0SW5wdXRNZXRob2RI
YW5kbGVyOikpCiAgICAgICAgIHJldHVybiBAInNldElucHV0TWV0aG9kSGFuZGxlciI7IAorICAg
IGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCkpCisgICAgICAgIHJldHVybiBAImlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQiOworICAgIGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaGFzU3BlbGxp
bmdNYXJrZXI6bGVuZ3RoOikpCisgICAgICAgIHJldHVybiBAImhhc1NwZWxsaW5nTWFya2VyIjsK
IAogICAgIHJldHVybiBuaWw7CiB9CkBAIC00MjcsNCArNDMzLDE4IEBAIC0gKEJPT0wpaW50ZXJw
cmV0S2V5RXZlbnRzOihOU0FycmF5ICopZXYKICAgICByZXR1cm4gWUVTOwogfQogCistIChCT09M
KWlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQKK3sKKyNpZiBNQUNfT1NfWF9WRVJT
SU9OX01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZB
SUxBQkxFCisgIHJldHVybiBZRVM7CisjZWxzZQorICByZXR1cm4gTk87CisjZW5kaWYKK30KKwor
LSAoQk9PTCloYXNTcGVsbGluZ01hcmtlcjooaW50KWZyb20gbGVuZ3RoOihpbnQpbGVuZ3RoCit7
CisgICAgcmV0dXJuIFtbd2ViVmlldyBtYWluRnJhbWVdIGhhc1NwZWxsaW5nTWFya2VyOmZyb20g
bGVuZ3RoOmxlbmd0aF07Cit9CisKIEBlbmQKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzMjg1KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MTAtMDctMTQgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFzeW5jaHJvbm91cyBz
cGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3aGVuIHBhc3RpbmcgdGV4dAorICAgICAgICBv
biBNYWMgT1MgMTAuNi4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDA5Mj4KKyAgICAgICAgVGhpcyBjaGFuZ2UgY29uc2lzdHMgb2Ygc2V2ZXJhbCBw
YXJ0czoKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkgYW5kIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgdG8gRWRpdG9yQ2xpZW50CisgICAgICAg
ICAgc28gYSBjbGllbnQgY2FuIGltcGxlbWVudCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZzsK
KyAgICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgYWJvdmUgaW50ZXJmYWNlcyBmb3IgTWFjIE9TIDEw
LjY7CisgICAgICAgICogQWRkZWQgYWRkU3BlbGxpbmdNYXJrZXJzKCkgdG8gRWRpdG9yIHNvIGEg
Y2xpZW50IGNhbiBhZGQgc3BlbGxpbmcgKG9yIGdyYW1tYXIpIG1hcmtlcnMKKyAgICAgICAgKiBB
ZGRlZCByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4dCgpIGFuZCBjYWxsIGl0IHdoZW4g
cGFzdGluZyB0ZXh0IHNvIHdlIGNhbgorICAgICAgICAgIHNwZWxsY2hlY2sgdGhlIHBhc3RlZCB0
ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLCBhbmQ7CisgICAgICAgICogQWRkZWQgaXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCBoYXNTcGVsbGluZ01hcmtlcigpIHRvCisgICAg
ICAgICAgVGV4dElucHV0Q29udHJvbGxlciBzbyB3ZSBjYW4gd3JpdGUgYSBsYXlvdXQgdGVzdC4K
KworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stcGFzdGVkLXRleHQtMDAxLmh0bWw6IEFkZGVkLgorCiAyMDEwLTA3LTEzICBCcmlhbiBXZWlu
c3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggV2luZG93cyBjaGVj
a291dHMgYnkgc2hvcnRlbmluZyBwYXRocy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0w
MDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyB3ZSBjYW4gY2hlY2sgdGhlIHNwZWxsaW5nIG9m
IHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLiBJZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHRo
ZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VTUycuIChPdGhlcndpc2UsIHRoaXMgdGVzdCBk
b2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0IG1hbnVhbGx5LCBwYXN0ZSBtaXNzcGVsbGVk
IHdvcmRzIHRvIHRoZSA8dGV4dGFyZWE+IGVsZW1lbnQgYW5kIHNlZSB0aGV5IGFyZSBtYXJrZWQg
YXMgbWlzc3BlbGxlZC4KKworCitTVUNDRVNTCitTVUNDRVNTCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0
LTAwMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUx
IEBACis8aHRtbD4gCis8aGVhZD4KKzxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9
IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorPHRpdGxlPkVk
aXRpbmcgVGVzdDwvdGl0bGU+IAorPC9oZWFkPiAKKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB3ZSBj
YW4gY2hlY2sgdGhlIHNwZWxsaW5nIG9mIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLiBJ
ZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHRoZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VTUycu
IChPdGhlcndpc2UsIHRoaXMgdGVzdCBkb2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0IG1h
bnVhbGx5LCBwYXN0ZSBtaXNzcGVsbGVkIHdvcmRzIHRvIHRoZSAgJmx0O3RleHRhcmVhJmd0IGVs
ZW1lbnQgYW5kIHNlZSB0aGV5IGFyZSBtYXJrZWQgYXMgbWlzc3BlbGxlZC48L3A+Cis8dGV4dGFy
ZWEgaWQ9InRlc3QiIGNvbHM9IjgwIiByb3dzPSIxMCI+Zm9vIGJhciBiYXo8L3RleHRhcmVhPgor
PHVsIGlkPSJjb25zb2xlIj48L3VsPgorPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Z1bmN0aW9uIGxvZyhzdHIpIHsKKyAgIHZhciBsaSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKTsKKyAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworfQorCitmdW5j
dGlvbiBsb2dSZXN1bHQocmVzdWx0KSB7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgbG9nKCdT
VUNDRVNTJyk7CisgICAgZWxzZQorICAgICAgICBsb2coJ0ZBSUxFRCcpOworfQorCitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCisgICAgaWYgKCF0ZXh0SW5wdXRDb250cm9sbGVyLmlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQKKyAgICAgICAgfHwgIXRleHRJbnB1dENvbnRyb2xsZXIuaXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpKSB7CisgICAgICAgIC8vIFdlIGp1c3Qg
b3V0cHV0IHRoZSBleHBlY3RlZCByZXN1bHRzIGFuZCBleGl0IGZvciBwbGF0Zm9ybXMgdGhhdCBk
b2VzCisgICAgICAgIC8vIG5vdCBzdXBwb3J0IGFzeW5jaHJvbm91cyBzcGVsbC1jaGVja2luZy4K
KyAgICAgICAgbG9nKCdTVUNDRVNTJyk7CisgICAgICAgIGxvZygnU1VDQ0VTUycpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIC8vIENvcHkgdGhlIG9yaWdpbmFsIHRleHQgYW5kIHBhc3RlIGl0Lgor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmZvY3VzKCk7CisgICAgICAg
IGV4ZWNTZWxlY3RBbGxDb21tYW5kKCk7CisgICAgICAgIGV4ZWNDb3B5Q29tbWFuZCgpOworICAg
ICAgICBleGVjUGFzdGVDb21tYW5kKCk7CisKKyAgICAgICAgLy8gTG9vcCB3aGlsZSB0aGUgZmly
c3Qgd29yZCAnZm9vJyBpcyBtYXJrZWQgYXMgbWlzc3BlbGxlZC4KKyAgICAgICAgd2hpbGUgKCF0
ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAsIDMpKTsKKworICAgICAgICAv
LyBDaGVjayBpZiAnZm9vJyBhbmQgJ2JheicgYXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLgorICAg
ICAgICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcigwLCAz
KSk7CisgICAgICAgIGxvZ1Jlc3VsdCh0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFy
a2VyKDgsIDMpKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="49525"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63034</attachid>
            <date>2010-07-30 00:27:11 -0700</date>
            <delta_ts>2010-08-26 23:00:06 -0700</delta_ts>
            <desc>Draft implementation #4</desc>
            <filename>issue40092-patch4.txt</filename>
            <type>text/plain</type>
            <size>31182</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDMzOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMDctMjkgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3aGVuIHBhc3Rp
bmcgdGV4dAorICAgICAgICBvbiBNYWMgT1MgWCAxMC42LgorICAgICAgICA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyPgorICAgICAgICBUaGlzIGNoYW5nZSBj
b25zaXN0cyBvZiBzZXZlcmFsIHBhcnRzOgorICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBF
ZGl0b3JDbGllbnQKKyAgICAgICAgICBzbyBhIGNsaWVudCBjYW4gaW1wbGVtZW50IGFzeW5jaHJv
bm91cyBzcGVsbGNoZWNraW5nOworICAgICAgICAqIEltcGxlbWVudGVkIHRoZSBhYm92ZSBpbnRl
cmZhY2VzIGZvciBNYWMgT1MgWCAxMC42OworICAgICAgICAqIEFkZGVkIGFkZFNwZWxsaW5nTWFy
a2VycygpIHRvIEVkaXRvciBzbyBhIGNsaWVudCBjYW4gYWRkIHNwZWxsaW5nIChvciBncmFtbWFy
KSBtYXJrZXJzCisgICAgICAgICogQWRkZWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRl
eHQoKSBhbmQgY2FsbCBpdCB3aGVuIHBhc3RpbmcgdGV4dCBzbyB3ZSBjYW4KKyAgICAgICAgICBz
cGVsbGNoZWNrIHRoZSBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZCwgYW5kOworICAgICAg
ICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgaGFzU3Bl
bGxpbmdNYXJrZXIoKSB0bworICAgICAgICAgIFRleHRJbnB1dENvbnRyb2xsZXIgc28gd2UgY2Fu
IHdyaXRlIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnBhc3RlQXNQbGFpblRleHQpOiBDYWxscyByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2Rl
VGV4dCgpLgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjpB
c3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIpOiBJbml0aWFsaXplcyB0aGUKKyAgICAgICAgc2Vx
dWVuY2UgbnVtYmVyIHVzZWQgZm9yIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nLgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjp+QXN5bmNTcGVsbENoZWNr
ZXJDb250cm9sbGVyKTogQWRkZWQgYW4gZW1wdHkKKyAgICAgICAgZGVzdHJ1Y3Rvci4KKyAgICAg
ICAgKFdlYkNvcmU6OkFzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxlcjo6aW5pdCk6IEluaXRpYWxp
emVzIHRoZSB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1NwZWxsQ2hlY2tlckNv
bnRyb2xsZXI6OmNsZWFyKTogQ2xlYW5zIHVwIHRoZSB2YXJpYWJsZXMuCisgICAgICAgIChXZWJD
b3JlOjpBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI6Om5vZGUpOiBSZXR1cm5zIHRoZSB0ZXh0
IG5vZGUgdXNlZCBieSBzcGVsbGNoZWNraW5nLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQpOiBTcGVsbGNoZWNrcyB0aGUg
dGV4dCBvZiB0aGUgZm9jdXNlZAorICAgICAgICBub2RlIGluIHRoZSBiYWNrZ3JvdW5kLgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjphZGRTcGVsbGluZ01hcmtlcnMpOiBBcHBsaWVzIHNwZWxs
Y2hlY2tpbmcgcmVzdWx0cy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6U3BlbGxDaGVja2luZ1Jlc3VsdCk6IEEgc3Ry
dWN0IHRoYXQgc3BlY2lmaWVzIGEKKyAgICAgICAgc3BlbGxjaGVja2luZyByZXN1bHQuCisgICAg
ICAgIChXZWJDb3JlOjpBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI6OnRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjpzdWJzdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjppc0J1c3kpOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjppc1ZhbGlkKToKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVk
aXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6IEFkZGVkIGFu
IGVtcHR5CisgICAgICAgIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKTogQWRkZWQgYW4gZW1wdHkgaW1w
bGVtZW50YXRpb24uCisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDogQWRkZWQgaXNBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZygpLgorCiAyMDEwLTA3LTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5leHAu
aW4JKHJldmlzaW9uIDY0MzMzKQorKysgV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBj
b3B5KQpAQCAtNjA5LDYgKzYwOSw3IEBAIF9fWk43V2ViQ29yZTZFZGl0b3IxM3RyeURIVE1MUGFz
dGVFdgogX19aTjdXZWJDb3JlNkVkaXRvcjE0c2V0Q29tcG9zaXRpb25FUktOU182U3RyaW5nRVJL
TjNXVEY2VmVjdG9ySU5TXzIwQ29tcG9zaXRpb25VbmRlcmxpbmVFTG0wRUVFamoKIF9fWk43V2Vi
Q29yZTZFZGl0b3IxNnBhc3RlQXNQbGFpblRleHRFdgogX19aTjdXZWJDb3JlNkVkaXRvcjE3aW5z
ZXJ0T3JkZXJlZExpc3RFdgorX19aTjdXZWJDb3JlNkVkaXRvcjE4YWRkU3BlbGxpbmdNYXJrZXJz
RWlSS04zV1RGNlZlY3RvcklOU18xOVNwZWxsQ2hlY2tpbmdSZXN1bHRFTG0wRUVFCiBfX1pON1dl
YkNvcmU2RWRpdG9yMThjb25maXJtQ29tcG9zaXRpb25FUktOU182U3RyaW5nRQogX19aTjdXZWJD
b3JlNkVkaXRvcjE4Y29uZmlybUNvbXBvc2l0aW9uRXYKIF9fWk43V2ViQ29yZTZFZGl0b3IxOWRl
bGV0ZVdpdGhEaXJlY3Rpb25FTlNfMTlTZWxlY3Rpb25Db250cm9sbGVyMTBFRGlyZWN0aW9uRU5T
XzE1VGV4dEdyYW51bGFyaXR5RWJiCkBAIC02NjUsNiArNjY2LDcgQEAgX19aTjdXZWJDb3JlN25z
Q29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxMWNyZWF0ZVJhbmdlRXYK
IF9fWk43V2ViQ29yZThEb2N1bWVudDEzcmVtb3ZlTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2Vy
MTBNYXJrZXJUeXBlRQogX19aTjdXZWJDb3JlOERvY3VtZW50MTNzdmdFeHRlbnNpb25zRXYKK19f
Wk43V2ViQ29yZThEb2N1bWVudDE0bWFya2Vyc0Zvck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJD
b3JlOERvY3VtZW50MTRzZXRGb2N1c2VkTm9kZUVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVF
RQogX19aTjdXZWJDb3JlOERvY3VtZW50MTZpc1BhZ2VCb3hWaXNpYmxlRWkKIF9fWk43V2ViQ29y
ZThEb2N1bWVudDE3Z2V0Rm9jdXNhYmxlTm9kZXNFUk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklO
U180Tm9kZUVFRUxtMEVFRQpAQCAtODc5LDYgKzg4MSw3IEBAIF9fWk5LN1dlYkNvcmUxMkV2ZW50
SGFuZGxlcjIwY3VycmVudEtleWIKIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTEyZGF0YWJh
c2VQYXRoRXYKIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTI0c2hvdWxkU3RvcFRocmVhZEFj
dGl2aXR5RXYKIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTlpc0VuYWJsZWRFdgorX19aTks3
V2ViQ29yZTEyUmVuZGVyT2JqZWN0N2NoaWxkQXRFagogX19aTks3V2ViQ29yZTEyUmVuZGVyT2Jq
ZWN0MTRlbmNsb3NpbmdMYXllckV2CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNWxvY2Fs
VG9BYnNvbHV0ZUVOU18xMEZsb2F0UG9pbnRFYmIKIF9fWk5LN1dlYkNvcmUxMlJlbmRlcldpZGdl
dDE0d2luZG93Q2xpcFJlY3RFdgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDY0MzMzKQor
KysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5
LDcgQEAKICNpbmNsdWRlICJNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBvc2l0aW9uSXRlcmF0
b3IuaCIKICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVy
QmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCkBAIC0xMDkxLDYgKzEwOTIsOSBAQCB2
b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCgpCiAgICAgaWYgKCFjYW5QYXN0ZSgpKQogICAg
ICAgICByZXR1cm47CiAgICAgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9h
cmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCkpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICByZXF1ZXN0
Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4dCgpOworI2VuZGlmCiB9CiAKIHZvaWQgRWRpdG9yOjpw
ZXJmb3JtRGVsZXRlKCkKQEAgLTExNDksNiArMTE1MywxMTQgQEAgaW50IEVkaXRvcjo6c3BlbGxD
aGVja2VyRG9jdW1lbnRUYWcoKQogICAgIHJldHVybiBjbGllbnQoKSA/IGNsaWVudCgpLT5zcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpIDogMDsKIH0KIAorI2lmIFBMQVRGT1JNKE1BQykKK0FzeW5j
U3BlbGxDaGVja2VyQ29udHJvbGxlcjo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyKCkKKyAg
ICA6IG1fc2VxdWVuY2UoMCkKK3sKK30KKworQXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjp+
QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyKCkKK3sKK30KKworaW50IEFzeW5jU3BlbGxDaGVj
a2VyQ29udHJvbGxlcjo6aW5pdChOb2RlKiBub2RlKQoreworICAgIGlmIChtX25vZGUuZ2V0KCkg
fHwgIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybiAtMTsKKworICAg
IFN0cmluZyB0ZXh0OworICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5pc1RleHRGaWVsZCgpKQor
ICAgICAgICB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUpLT52YWx1
ZSgpOworICAgIGVsc2UgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dEFyZWEoKSkKKyAgICAg
ICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihub2RlKS0+dmFsdWUo
KTsKKyAgICBlbHNlCisgICAgICAgIHRleHQgPSBub2RlLT50ZXh0Q29udGVudCgpOworICAgIGlm
ICghdGV4dC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgbV9ub2RlID0gbm9k
ZTsKKyAgICBtX3RleHQgPSB0ZXh0OworICAgIHJldHVybiArK21fc2VxdWVuY2U7Cit9CisKK3Zv
aWQgQXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjpjbGVhcigpCit7CisgICAgbV9ub2RlID0g
MDsKKyAgICBtX3RleHQgPSBTdHJpbmcoKTsKK30KKworTm9kZSogQXN5bmNTcGVsbENoZWNrZXJD
b250cm9sbGVyOjpub2RlKCkgY29uc3QKK3sKKyAgICAvLyBSZXRyaWV2ZSB0aGUgZmlyc3QgJyN0
ZXh0JyBub2RlIHVzZWQgYnkgcmVuZGVyZXJzLiBGb3IgYSA8dGV4dGFyZWE+CisgICAgLy8gZWxl
bWVudCwgYSBzcGVsbGNoZWNrZXIgZGlyZWN0bHkgYWRkcyBzcGVsbGluZyBtYXJrZXJzIHRvIHRo
ZSBzaGFkb3cgbm9kZXMKKyAgICAvLyB1c2VkIGJ5IHJlbmRlcmVycywgaS5lLiBhZGRpbmcgc3Bl
bGxpbmcgbWFya2VycyB0byBhIERPTSBub2RlIGRvZXMgbm90CisgICAgLy8gYWRkIG1hcmtlcnMg
dG8gdGhlIG5vZGUgdXNlZCBieSBzcGVsbGNoZWNrZXJzLiBUaGVyZWZvcmUsIHdlIGRpcmVjdGx5
CisgICAgLy8gcmV0cmlldmUgdGhlIHNoYWRvdyBub2RlIGZyb20gdGhlIERPTSBub2RlLgorICAg
IE5vZGUqIG5vZGUgPSBtX25vZGUuZ2V0KCk7CisgICAgZm9yIChjb25zdCBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsgcmVuZGVyZXI7IHJlbmRlcmVyID0gcmVuZGVy
ZXItPmNoaWxkQXQoMCkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc1RleHQoKSkKKyAgICAg
ICAgICAgIHJldHVybiByZW5kZXJlci0+bm9kZSgpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30K
KworYm9vbCBFZGl0b3I6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQorewor
ICAgIHJldHVybiBjbGllbnQoKSAmJiBjbGllbnQoKS0+aXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCgpOworfQorCit2b2lkIEVkaXRvcjo6cmVxdWVzdENoZWNraW5nT2ZGb2N1c2Vk
Tm9kZVRleHQoKQoreworICAgIGlmICghaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCgpIHx8IG1fYXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyLmlzQnVzeSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpbnQgc2VxdWVuY2UgPSBtX2FzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxl
ci5pbml0KG1fZnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkpOworICAgIGlmIChzZXF1
ZW5jZSA+IDApCisgICAgICAgIGNsaWVudCgpLT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhzZXF1
ZW5jZSwgbV9hc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIudGV4dCgpKTsKK30KKwordm9pZCBF
ZGl0b3I6OmFkZFNwZWxsaW5nTWFya2VycyhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVs
bENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykKK3sKKyAgICBpZiAoIW1fYXN5bmNTcGVsbENoZWNr
ZXJDb250cm9sbGVyLmlzVmFsaWQoc2VxdWVuY2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBO
b2RlKiBub2RlID0gbV9hc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIubm9kZSgpOworICAgIGlm
ICghbm9kZSkgeworICAgICAgICBtX2FzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxlci5jbGVhcigp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaW50IHN0YXJ0T2Zmc2V0ID0gMDsKKyAg
ICBQb3NpdGlvbkl0ZXJhdG9yIHN0YXJ0ID0gUG9zaXRpb24obm9kZSwgMCk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCByZXN1bHRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChyZXN1
bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nICYmIHJlc3VsdHNbaV0udHlw
ZSAhPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIC8vIFRvIGF2b2lkIG1vdmluZyB0aGUgcG9zaXRpb24gYmFja3dhcmQsIHdlIGFzc3Vt
ZSB0aGUgZ2l2ZW4gcmVzdWx0cyBhcmUgc29ydGVkIHdpdGgKKyAgICAgICAgLy8gc3RhcnRPZmZz
ZXQgYXMgdGhlIG9uZXMgcmV0dXJuZWQgYnkgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nOl0uCisgICAgICAgIEFTU0VSVChzdGFydE9mZnNldCA8PSByZXN1bHRzW2ldLmxv
Y2F0aW9uKTsKKyAgICAgICAgZm9yICg7IHN0YXJ0T2Zmc2V0IDwgcmVzdWx0c1tpXS5sb2NhdGlv
bjsgKytzdGFydE9mZnNldCkKKyAgICAgICAgICAgIHN0YXJ0LmluY3JlbWVudCgpOworCisgICAg
ICAgIFBvc2l0aW9uSXRlcmF0b3IgZW5kID0gc3RhcnQ7CisgICAgICAgIGZvciAoaW50IGxlbmd0
aCA9IDA7IGxlbmd0aCA8IHJlc3VsdHNbaV0ubGVuZ3RoOyArK2xlbmd0aCkKKyAgICAgICAgICAg
IGVuZC5pbmNyZW1lbnQoKTsKKworICAgICAgICAvLyBVc2VycyBvciBKYXZhU2NyaXB0IGFwcGxp
Y2F0aW9ucyBtYXkgY2hhbmdlIHRleHQgd2hpbGUgYSBzcGVsbC1jaGVja2VyIGNoZWNrcyBpdHMK
KyAgICAgICAgLy8gc3BlbGxpbmdzIGluIHRoZSBiYWNrZ3JvdW5kLiBUbyBhdm9pZCBhZGRpbmcg
bWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgLy8gSmF2
YVNjcmlwdCBhcHBsaWNhdGlvbnMsIHJldHJpZXZlIHRoZSB3b3JkcyBpbiB0aGUgc3BlY2lmaWVk
IHJlZ2lvbiBhbmQgY29tcGFyZSB0aGVtIHdpdGgKKyAgICAgICAgLy8gdGhlIG9yaWdpbmFsIG9u
ZXMuCisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fZnJhbWUt
PmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOworICAgICAgICBTdHJpbmcgZGVzdGluYXRpb24gPSBy
YW5nZS0+dGV4dCgpOworICAgICAgICBTdHJpbmcgc291cmNlID0gbV9hc3luY1NwZWxsQ2hlY2tl
ckNvbnRyb2xsZXIuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24sIHJlc3VsdHNbaV0ubGVu
Z3RoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAgICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPmFkZE1hcmtlcihyYW5nZS5nZXQoKSwgcmVzdWx0c1tpXS50eXBl
KTsKKyAgICB9CisKKyAgICBtX2FzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxlci5jbGVhcigpOwor
fQorI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJ
R0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQogCiB2b2lkIEVkaXRvcjo6dXBw
ZXJjYXNlV29yZCgpCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShyZXZpc2lvbiA2NDMzMykKKysrIFdlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5j
bHVkZSAiQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNs
dWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkVkaXRBY3Rpb24uaCIKICNpbmNsdWRl
ICJFZGl0aW5nQmVoYXZpb3IuaCIKICNpbmNsdWRlICJFZGl0b3JEZWxldGVBY3Rpb24uaCIKQEAg
LTY1LDYgKzY2LDQxIEBAIGVudW0gVHJpU3RhdGUgeyBGYWxzZVRyaVN0YXRlLCBUcnVlVHJpU3QK
IGVudW0gRWRpdG9yQ29tbWFuZFNvdXJjZSB7IENvbW1hbmRGcm9tTWVudU9yS2V5QmluZGluZywg
Q29tbWFuZEZyb21ET00sIENvbW1hbmRGcm9tRE9NV2l0aFVzZXJJbnRlcmZhY2UgfTsKIGVudW0g
V3JpdGluZ0RpcmVjdGlvbiB7IE5hdHVyYWxXcml0aW5nRGlyZWN0aW9uLCBMZWZ0VG9SaWdodFdy
aXRpbmdEaXJlY3Rpb24sIFJpZ2h0VG9MZWZ0V3JpdGluZ0RpcmVjdGlvbiB9OwogCisjaWYgUExB
VEZPUk0oTUFDKQorc3RydWN0IFNwZWxsQ2hlY2tpbmdSZXN1bHQgeworICAgIFNwZWxsQ2hlY2tp
bmdSZXN1bHQoKQorICAgICAgICA6IHR5cGUoRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKQorICAg
ICAgICAsIGxvY2F0aW9uKDApCisgICAgICAgICwgbGVuZ3RoKDApCisgICAgeworICAgIH0KKyAg
ICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlOworICAgIGludCBsb2NhdGlvbjsKKyAg
ICBpbnQgbGVuZ3RoOworfTsKKworY2xhc3MgQXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyIHsK
K3B1YmxpYzoKKyAgICBBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIoKTsKKyAgICB+QXN5bmNT
cGVsbENoZWNrZXJDb250cm9sbGVyKCk7CisKKyAgICBpbnQgaW5pdChOb2RlKiBub2RlKTsKKyAg
ICB2b2lkIGNsZWFyKCk7CisKKyAgICBOb2RlKiBub2RlKCkgY29uc3Q7CisgICAgU3RyaW5nIHRl
eHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0KKyAgICBTdHJpbmcgc3Vic3RyaW5nKGludCBs
b2NhdGlvbiwgaW50IGxlbmd0aCkgY29uc3QgeyByZXR1cm4gbV90ZXh0LnN1YnN0cmluZyhsb2Nh
dGlvbiwgbGVuZ3RoKTsgfQorCisgICAgYm9vbCBpc0J1c3koKSBjb25zdCB7IHJldHVybiAhIW1f
bm9kZS5nZXQoKTsgfQorICAgIGJvb2wgaXNWYWxpZChpbnQgc2VxdWVuY2UpIGNvbnN0IHsgcmV0
dXJuIG1fbm9kZS5nZXQoKSAmJiBtX3RleHQubGVuZ3RoKCkgJiYgbV9zZXF1ZW5jZSA9PSBzZXF1
ZW5jZTsgfQorCitwcml2YXRlOgorICAgIFJlZlB0cjxOb2RlPiBtX25vZGU7CisgICAgU3RyaW5n
IG1fdGV4dDsKKyAgICBpbnQgbV9zZXF1ZW5jZTsKK307CisjZW5kaWYKKwogY2xhc3MgRWRpdG9y
IHsKIHB1YmxpYzoKICAgICBFZGl0b3IoRnJhbWUqKTsKQEAgLTIyNCw2ICsyNjAsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgbWFya0FsbE1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXJJblJhbmdlcyhi
b29sIG1hcmtTcGVsbGluZywgUmFuZ2UqIHNwZWxsaW5nUmFuZ2UsIGJvb2wgbWFya0dyYW1tYXIs
IFJhbmdlKiBncmFtbWFyUmFuZ2UsIGJvb2wgcGVyZm9ybVRleHRDaGVja2luZ1JlcGxhY2VtZW50
cyk7CiAgICAgdm9pZCBjaGFuZ2VCYWNrVG9SZXBsYWNlZFN0cmluZyhjb25zdCBTdHJpbmcmIHJl
cGxhY2VkU3RyaW5nKTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIGlzQXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2b2lkIGFkZFNwZWxsaW5nTWFy
a2VycyhpbnQsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYpOworI2VuZGlmCiAg
ICAgdm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlv
biA9IGZhbHNlKTsKICAgICB2b2lkIHNob3dTcGVsbGluZ0d1ZXNzUGFuZWwoKTsKICAgICBib29s
IHNwZWxsaW5nUGFuZWxJc1Nob3dpbmcoKTsKQEAgLTMwOCw2ICszNDgsMTAgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAgIE93blB0cjxLaWxsUmluZz4gbV9r
aWxsUmluZzsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBBc3luY1NwZWxsQ2hlY2tlckNvbnRy
b2xsZXIgbV9hc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI7CisjZW5kaWYKKwogICAgIGJvb2wg
Y2FuRGVsZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdp
dGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqKTsKICAgICBQYXNzUmVmUHRyPENsaXBib2FyZD4gbmV3
R2VuZXJhbENsaXBib2FyZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3ksIEZyYW1lKik7CkBAIC0zMjYs
NiArMzcwLDEwIEBAIHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gbGFzdFZpc2libGVS
YW5nZShjb25zdCBTdHJpbmcmLCBib29sIGNhc2VGbGFnKTsKICAgICAKICAgICB2b2lkIGNoYW5n
ZVNlbGVjdGlvbkFmdGVyQ29tbWFuZChjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBuZXdTZWxlY3Rp
b24sIGJvb2wgY2xvc2VUeXBpbmcsIGJvb2wgY2xlYXJUeXBpbmdTdHlsZSk7CisKKyNpZiBQTEFU
Rk9STShNQUMpCisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4dCgpOwor
I2VuZGlmCiB9OwogCiBpbmxpbmUgdm9pZCBFZGl0b3I6OnNldFN0YXJ0TmV3S2lsbFJpbmdTZXF1
ZW5jZShib29sIGZsYWcpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gNjQzMzMp
CisrKyBXZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDM4
LDggKzQzOCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCkgeyB9Ci0KLQorI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJv
b2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKGludCwgY29uc3QgU3Ry
aW5nJikgeyB9CisjZW5kaWYKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKSW5kZXg6
IFdlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
RWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDY0MzMzKQorKysgV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNiArMTg1LDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmlu
Zz4mIGd1ZXNzZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3Rh
dGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFi
bGVkKSA9IDA7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKKyNlbmRpZgogfTsKIAog
fQpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDY0MzM5KQorKysgV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0yOSAgSGlyb25vcmkgQm9ubyAgPGhib25vQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgQVBJcyBhbmQgdXNlIGl0IHdoZW4gcGFz
dGluZyB0ZXh0CisgICAgICAgIG9uIE1hYyBPUyBYIDEwLjYuCisgICAgICAgIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTI+CisgICAgICAgIFRoaXMgY2hhbmdl
IGNvbnNpc3RzIG9mIHNldmVyYWwgcGFydHM6CisgICAgICAgICogQWRkZWQgaXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIHRv
IEVkaXRvckNsaWVudAorICAgICAgICAgIHNvIGEgY2xpZW50IGNhbiBpbXBsZW1lbnQgYXN5bmNo
cm9ub3VzIHNwZWxsY2hlY2tpbmc7CisgICAgICAgICogSW1wbGVtZW50ZWQgdGhlIGFib3ZlIGlu
dGVyZmFjZXMgZm9yIE1hYyBPUyBYIDEwLjY7CisgICAgICAgICogQWRkZWQgYWRkU3BlbGxpbmdN
YXJrZXJzKCkgdG8gRWRpdG9yIHNvIGEgY2xpZW50IGNhbiBhZGQgc3BlbGxpbmcgKG9yIGdyYW1t
YXIpIG1hcmtlcnMKKyAgICAgICAgKiBBZGRlZCByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2Rl
VGV4dCgpIGFuZCBjYWxsIGl0IHdoZW4gcGFzdGluZyB0ZXh0IHNvIHdlIGNhbgorICAgICAgICAg
IHNwZWxsY2hlY2sgdGhlIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLCBhbmQ7CisgICAg
ICAgICogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCBoYXNT
cGVsbGluZ01hcmtlcigpIHRvCisgICAgICAgICAgVGV4dElucHV0Q29udHJvbGxlciBzbyB3ZSBj
YW4gd3JpdGUgYSBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xp
ZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQgYW4gZW1wdHkg
ZnVuY3Rpb24uCisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcpOiBBZGRlZCBhbiBlbXB0eSBmdW5jdGlvbi4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEwLTA3LTI5ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0g
V2VpbmlnLgpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHJldmlzaW9uIDY0MzMzKQorKysgV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ0Myw0ICs0NDMsMTUgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9k
U3RhdAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojpp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKGludCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9u
IDY0MzMzKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDggQEAgcHJpdmF0ZTogICAgCiAg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYs
IFZlY3RvcjxXZWJDb3JlOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKGludCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CiAKICAgICBXZWJQYWdlKiBtX3BhZ2U7
CiB9OwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0MzM5KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwzNCBAQAorMjAxMC0wNy0yOSAgSGlyb25vcmkgQm9ubyAg
PGhib25vQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgQVBJcyBhbmQgdXNl
IGl0IHdoZW4gcGFzdGluZyB0ZXh0CisgICAgICAgIG9uIE1hYyBPUyBYIDEwLjYuCisgICAgICAg
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTI+CisgICAgICAg
IFRoaXMgY2hhbmdlIGNvbnNpc3RzIG9mIHNldmVyYWwgcGFydHM6CisgICAgICAgICogQWRkZWQg
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZygpIHRvIEVkaXRvckNsaWVudAorICAgICAgICAgIHNvIGEgY2xpZW50IGNhbiBpbXBs
ZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmc7CisgICAgICAgICogSW1wbGVtZW50ZWQg
dGhlIGFib3ZlIGludGVyZmFjZXMgZm9yIE1hYyBPUyBYIDEwLjY7CisgICAgICAgICogQWRkZWQg
YWRkU3BlbGxpbmdNYXJrZXJzKCkgdG8gRWRpdG9yIHNvIGEgY2xpZW50IGNhbiBhZGQgc3BlbGxp
bmcgKG9yIGdyYW1tYXIpIG1hcmtlcnMKKyAgICAgICAgKiBBZGRlZCByZXF1ZXN0Q2hlY2tpbmdP
ZkZvY3VzZWROb2RlVGV4dCgpIGFuZCBjYWxsIGl0IHdoZW4gcGFzdGluZyB0ZXh0IHNvIHdlIGNh
bgorICAgICAgICAgIHNwZWxsY2hlY2sgdGhlIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5k
LCBhbmQ7CisgICAgICAgICogQWRkZWQgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCgpIGFuZCBoYXNTcGVsbGluZ01hcmtlcigpIHRvCisgICAgICAgICAgVGV4dElucHV0Q29udHJv
bGxlciBzbyB3ZSBjYW4gd3JpdGUgYSBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgYW5kCisgICAgICAgIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkuCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRp
dG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogUmV0dXJuIFlF
UyBvbmx5IGlmIEdDRCBpcyBlbmFibGVkIG9uIE9TIFggMTAuNi4KKyAgICAgICAgKFdlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBDYWxscyBbTlNTcGVsbENoZWNrZXIg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6XQorICAgICAgICB0byBzcGVsbGNoZWNrIHRoZSBnaXZl
biB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUuaDog
QWRkZWQgW2FkZFNwZWxsaW5nTWFya2VyczpyZXN1bHRzOl0gYW5kIFtoYXNTcGVsbGluZ01hcmtl
cjpsZW5ndGg6XS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtX
ZWJGcmFtZSBhZGRTcGVsbGluZ01hcmtlcnM6cmVzdWx0czpdKTogQ2FsbHMgRWRpdG9yOjphZGRT
cGVsbGluZ01hcmtlcnMoKS4KKyAgICAgICAgKHNwZWxsQ2hlY2tpbmdOb2RlKTogQWRkZWQgYSBs
b2NhbCBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHRleHQgbm9kZSB1c2VkIGZvciBzcGVsbGNo
ZWNraW5nLgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZm9yIGxheW91dCB0ZXN0cy4K
KyAgICAgICAgKC1bV2ViRnJhbWUgaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOl0pOiBSZXR1cm5z
IHdoZXRoZXIgdGhlIHNwZWNpZmllZCByZWdpb24gaGFzIGEKKyAgICAgICAgc3BlbGxpbmcgbWFy
a2VyIGZvciBsYXlvdXQgdGV4dHMuCisKIDIwMTAtMDctMjYgIFN0ZXZlIEJsb2NrICA8c3RldmVi
bG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5k
ZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkocmV2aXNp
b24gNjQzMzMpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXZWJDb3JlOjpTdHJpbmcmLCBXVEY6OlZlY3Rv
cjxXZWJDb3JlOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKGlu
dCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CiBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJD
b21tYW5kRm9yVW5kb09yUmVkbyhQYXNzUmVmUHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPiwgYm9v
bCBpc1JlZG8pOwogICAgIFdlYkVkaXRvckNsaWVudCgpOwpJbmRleDogV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHJldmlzaW9uIDY0MzMzKQorKysgV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkK
QEAgLTgyOSwzICs4MjksMjYgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1l
dGhvZAogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsK
IH0KKworYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKQoreworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hf
VkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKKyAgICAvLyBFbmFibGUgYXN5bmNo
cm9ub3VzIHNwZWxsY2hlY2tpbmcgKGFuZCBncmFtbWFyIGNoZWNraW5nKSBvbmx5IHdoZW4gd2Ug
Y29tcGlsZSB0aGlzIGZpbGUgb24KKyAgICAvLyBNYWMgT1MgWCAxMC42IGFuZCB3ZSBjYW4gdXNl
IEdyYW5kIENlbnRyYWwgRGlzcGF0Y2ggYmVjYXVzZSB0aGV5IGFyZSByZXF1aXJlZCBieQorICAg
IC8vIFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgIHJldHVy
biB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKGludCBzZXF1ZW5jZSwgY29uc3Qg
U3RyaW5nJiB0ZXh0KQoreworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFD
X09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKKyAgICBOU1JhbmdlIHJh
bmdlID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgdm9pZCAoXmhhbmRsZXIp
KE5TSW50ZWdlciwgTlNBcnJheSosIE5TT3J0aG9ncmFwaHkqLCBOU0ludGVnZXIpID0gXihOU0lu
dGVnZXIsIE5TQXJyYXkqIHJlc3VsdHMsIE5TT3J0aG9ncmFwaHkqLCBOU0ludGVnZXIpIHsKKyAg
ICAgICAgW1ttX3dlYlZpZXcgc2VsZWN0ZWRGcmFtZV0gYWRkU3BlbGxpbmdNYXJrZXJzOnNlcXVl
bmNlIHJlc3VsdHM6cmVzdWx0c107CisgICAgfTsKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJl
ZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6dGV4dCByYW5nZTpyYW5nZSB0
eXBlczpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1l
bnRXaXRoVGFnOjAgY29tcGxldGlvbkhhbmRsZXI6aGFuZGxlcl07CisjZW5kaWYKK30KSW5kZXg6
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5oCShyZXZpc2lvbiA2NDMzMykKKysrIFdlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNCArMjEzLDIwIEBAIEBpbnRlcmZh
Y2UgV2ViRnJhbWUgOiBOU09iamVjdAogICAgIGJyaWRnZSBiZXR3ZWVuIHRoZSBXZWJLaXQgYW5k
IEphdmFTY3JpcHRDb3JlIEFQSXMuCiAqLwogLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENv
bnRleHQ7CisKKy8qIQorICAgIEBtZXRob2QgYWRkU3BlbGxpbmdNYXJrZXJzCisgICAgQHBhcmFt
IHNlcXVlbmNlIHRoZSBzZXF1ZW5jZSBudW1iZXIgcHJvdmlkZWQgZnJvbSBXZWJDb3JlLgorICAg
IEBwYXJhbSByZXN1bHRzIGFuIGFycmF5IG9mIE5TVGV4dENoZWNraW5nUmVzdWx0IG9iamVjdHMu
CisgKi8KKy0gKHZvaWQpYWRkU3BlbGxpbmdNYXJrZXJzOihpbnQpc2VxdWVuY2UgcmVzdWx0czoo
TlNBcnJheSopcmVzdWx0czsKKworLyohCisgICAgQG1ldGhvZCBoYXNTcGVsbGluZ01hcmtlcgor
ICAgIEBkaXNjdXNzaW9uIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbmx5IGZvciBsYXlvdXQgdGVz
dHMuCisgICAgQHBhcmFtIGxvY2F0aW9uIHRoZSBvZmZzZXQgb2YgdGhlIHJhbmdlIHRvIGJlIGNo
ZWNrZWQuCisgICAgQHBhcmFtIGxlbmd0aCB0aGUgbGVuZ3RoIG9mIHRoZSByYW5nZSB0byBiZSBj
aGVja2VkLgorICAgIEByZXN1bHQgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBp
biB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCisqLworLSAoQk9PTClo
YXNTcGVsbGluZ01hcmtlcjooaW50KWxvY2F0aW9uIGxlbmd0aDooaW50KWxlbmd0aDsKIEBlbmQK
SW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJldmlzaW9uIDY0MzMzKQorKysgV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgyLDQgKzE1ODIsNjQg
QEAgLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQKICAgICByZXR1cm4gdG9HbG9i
YWxSZWYoY29yZUZyYW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxX
b3JsZCgpKS0+Z2xvYmFsRXhlYygpKTsKIH0KIAorLSAodm9pZClhZGRTcGVsbGluZ01hcmtlcnM6
KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisjaWYgTUFDX09TX1hf
VkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1NfWF9WRVJTSU9OXzEwXzYgJiYgTlNfQkxPQ0tT
X0FWQUlMQUJMRQorICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwor
ICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBzaXplX3QgY291bnQg
PSBbcmVzdWx0cyBjb3VudF07CisgICAgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+IG1hcmtl
cnMoY291bnQpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAg
ICAgICBOU1RleHRDaGVja2luZ1R5cGUgdHlwZSA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4Omld
IHJlc3VsdFR5cGVdOworICAgICAgICBpZiAodHlwZSAmIE5TVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nKQorICAgICAgICAgICAgbWFya2Vyc1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxs
aW5nOworICAgICAgICBlbHNlIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcikK
KyAgICAgICAgICAgIG1hcmtlcnNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBtYXJrZXJzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtl
cjo6QWxsTWFya2VyczsKKworICAgICAgICBOU1JhbmdlIHJhbmdlID0gW1tyZXN1bHRzIG9iamVj
dEF0SW5kZXg6aV0gcmFuZ2VdOworICAgICAgICBtYXJrZXJzW2ldLmxvY2F0aW9uID0gcmFuZ2Uu
bG9jYXRpb247CisgICAgICAgIG1hcmtlcnNbaV0ubGVuZ3RoID0gcmFuZ2UubGVuZ3RoOworICAg
IH0KKyAgICBjb3JlRnJhbWUtPmVkaXRvcigpLT5hZGRTcGVsbGluZ01hcmtlcnMoc2VxdWVuY2Us
IG1hcmtlcnMpOworI2VuZGlmCit9CisKK3N0YXRpYyBOb2RlKiBzcGVsbENoZWNraW5nTm9kZShG
cmFtZSogY29yZUZyYW1lKQoreworICAgIE5vZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5k
b2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOworICAgIGlmICghZm9jdXNlZE5vZGUgfHwgIWZvY3Vz
ZWROb2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvciAoY29uc3Qg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGZvY3VzZWROb2RlLT5yZW5kZXJlcigpOyByZW5kZXJl
cjsgcmVuZGVyZXIgPSByZW5kZXJlci0+Y2hpbGRBdCgwKSkgeworICAgICAgICBpZiAocmVuZGVy
ZXItPmlzVGV4dCgpKQorICAgICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5ub2RlKCk7CisgICAg
fQorICAgIHJldHVybiAwOworfQorCistIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpZnJv
bSBsZW5ndGg6KGludClsZW5ndGgKK3sKKyAgICBGcmFtZSogY29yZUZyYW1lID0gX3ByaXZhdGUt
PmNvcmVGcmFtZTsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIE5POworCisg
ICAgTm9kZSogbm9kZSA9IHNwZWxsQ2hlY2tpbmdOb2RlKGNvcmVGcmFtZSk7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20pOworICAgIHVuc2lnbmVkIGludCBlbmRP
ZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20gKyBsZW5ndGgpOworICAgIFZl
Y3RvcjxEb2N1bWVudE1hcmtlcj4gbWFya2VycyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+bWFy
a2Vyc0Zvck5vZGUobm9kZSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIERvY3VtZW50TWFya2VyIG1hcmtlciA9IG1hcmtlcnNbaV07
CisgICAgICAgIGlmIChtYXJrZXIuc3RhcnRPZmZzZXQgPD0gc3RhcnRPZmZzZXQgJiYgZW5kT2Zm
c2V0IDw9IG1hcmtlci5lbmRPZmZzZXQgJiYgbWFya2VyLnR5cGUgPT0gRG9jdW1lbnRNYXJrZXI6
OlNwZWxsaW5nKQorICAgICAgICAgICAgcmV0dXJuIFlFUzsKKyAgICB9CisgICAgcmV0dXJuIE5P
OworfQorCiBAZW5kCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NDMzOSkKKysrIFdlYktpdFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA3LTI5ICBIaXJv
bm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyBB
UElzIGFuZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQKKyAgICAgICAgb24gTWFjIE9TIFggMTAu
Ni4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5
Mj4KKyAgICAgICAgVGhpcyBjaGFuZ2UgY29uc2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0czoKKyAgICAg
ICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKCkgdG8gRWRpdG9yQ2xpZW50CisgICAgICAgICAgc28gYSBjbGll
bnQgY2FuIGltcGxlbWVudCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZzsKKyAgICAgICAgKiBJ
bXBsZW1lbnRlZCB0aGUgYWJvdmUgaW50ZXJmYWNlcyBmb3IgTWFjIE9TIFggMTAuNjsKKyAgICAg
ICAgKiBBZGRlZCBhZGRTcGVsbGluZ01hcmtlcnMoKSB0byBFZGl0b3Igc28gYSBjbGllbnQgY2Fu
IGFkZCBzcGVsbGluZyAob3IgZ3JhbW1hcikgbWFya2VycworICAgICAgICAqIEFkZGVkIHJlcXVl
c3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5kIGNhbGwgaXQgd2hlbiBwYXN0aW5nIHRl
eHQgc28gd2UgY2FuCisgICAgICAgICAgc3BlbGxjaGVjayB0aGUgcGFzdGVkIHRleHQgaW4gdGhl
IGJhY2tncm91bmQsIGFuZDsKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgYW5kIGhhc1NwZWxsaW5nTWFya2VyKCkgdG8KKyAgICAgICAgICBUZXh0
SW5wdXRDb250cm9sbGVyIHNvIHdlIGNhbiB3cml0ZSBhIGxheW91dCB0ZXN0LgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubToKKyAgICAgICAgKCtb
VGV4dElucHV0Q29udHJvbGxlciBpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2NyaXB0Ol0pOgor
ICAgICAgICAoK1tUZXh0SW5wdXRDb250cm9sbGVyIHdlYlNjcmlwdE5hbWVGb3JTZWxlY3Rvcjpd
KToKKyAgICAgICAgKC1bVGV4dElucHV0Q29udHJvbGxlciBpc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkXSk6CisgICAgICAgICgtW1RleHRJbnB1dENvbnRyb2xsZXIgaGFzU3BlbGxp
bmdNYXJrZXI6bGVuZ3RoOl0pOgorCiAyMDEwLTA3LTI5ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFBsdWdpblRlc3QuY3BwCkluZGV4OiBXZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGV4dElucHV0Q29udHJvbGxlci5tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVy
Lm0JKHJldmlzaW9uIDY0MzMzKQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rl
eHRJbnB1dENvbnRyb2xsZXIubQkod29ya2luZyBjb3B5KQpAQCAtMTY5LDcgKzE2OSw5IEBAICsg
KEJPT0wpaXNTZWxlY3RvckV4Y2x1ZGVkRnJvbVdlYlNjcmlwdDoKICAgICAgICAgICAgIHx8IGFT
ZWxlY3RvciA9PSBAc2VsZWN0b3IoY2hhcmFjdGVySW5kZXhGb3JQb2ludFg6WTopCiAgICAgICAg
ICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKHZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRl
eHQpCiAgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGF0dHJpYnV0ZWRTdHJp
bmdXaXRoU3RyaW5nOikKLSAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0
SW5wdXRNZXRob2RIYW5kbGVyOikpCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVj
dG9yKHNldElucHV0TWV0aG9kSGFuZGxlcjopCisgICAgICAgICAgICB8fCBhU2VsZWN0b3IgPT0g
QHNlbGVjdG9yKGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpCisgICAgICAgICAg
ICB8fCBhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGhhc1NwZWxsaW5nTWFya2VyOmxlbmd0aDopKQog
ICAgICAgICByZXR1cm4gTk87CiAgICAgcmV0dXJuIFlFUzsKIH0KQEAgLTE5NCw2ICsxOTYsMTAg
QEAgKyAoTlNTdHJpbmcgKil3ZWJTY3JpcHROYW1lRm9yU2VsZWN0b3I6KAogICAgICAgICByZXR1
cm4gQCJtYWtlQXR0cmlidXRlZFN0cmluZyI7IC8vIGp1c3QgYSBmYWN0b3J5IG1ldGhvZCwgZG9l
c24ndCBjYWxsIGludG8gTlNUZXh0SW5wdXQKICAgICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNl
bGVjdG9yKHNldElucHV0TWV0aG9kSGFuZGxlcjopKQogICAgICAgICByZXR1cm4gQCJzZXRJbnB1
dE1ldGhvZEhhbmRsZXIiOyAKKyAgICBlbHNlIGlmIChhU2VsZWN0b3IgPT0gQHNlbGVjdG9yKGlz
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpKQorICAgICAgICByZXR1cm4gQCJpc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIjsKKyAgICBlbHNlIGlmIChhU2VsZWN0b3Ig
PT0gQHNlbGVjdG9yKGhhc1NwZWxsaW5nTWFya2VyOmxlbmd0aDopKQorICAgICAgICByZXR1cm4g
QCJoYXNTcGVsbGluZ01hcmtlciI7CiAKICAgICByZXR1cm4gbmlsOwogfQpAQCAtNDI3LDQgKzQz
MywxOCBAQCAtIChCT09MKWludGVycHJldEtleUV2ZW50czooTlNBcnJheSAqKWV2CiAgICAgcmV0
dXJuIFlFUzsKIH0KIAorLSAoQk9PTClpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
Cit7CisjaWYgTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1NfWF9WRVJTSU9O
XzEwXzYgJiYgTlNfQkxPQ0tTX0FWQUlMQUJMRQorICByZXR1cm4gWUVTOworI2Vsc2UKKyAgcmV0
dXJuIE5POworI2VuZGlmCit9CisKKy0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClmcm9t
IGxlbmd0aDooaW50KWxlbmd0aAoreworICAgIHJldHVybiBbW3dlYlZpZXcgbWFpbkZyYW1lXSBo
YXNTcGVsbGluZ01hcmtlcjpmcm9tIGxlbmd0aDpsZW5ndGhdOworfQorCiBAZW5kCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDMzOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA3LTI5ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyBBUElzIGFuZCB1c2UgaXQgd2hlbiBw
YXN0aW5nIHRleHQKKyAgICAgICAgb24gTWFjIE9TIFggMTAuNi4KKyAgICAgICAgPGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5Mj4KKyAgICAgICAgVGhpcyBjaGFu
Z2UgY29uc2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0czoKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkg
dG8gRWRpdG9yQ2xpZW50CisgICAgICAgICAgc28gYSBjbGllbnQgY2FuIGltcGxlbWVudCBhc3lu
Y2hyb25vdXMgc3BlbGxjaGVja2luZzsKKyAgICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgYWJvdmUg
aW50ZXJmYWNlcyBmb3IgTWFjIE9TIFggMTAuNjsKKyAgICAgICAgKiBBZGRlZCBhZGRTcGVsbGlu
Z01hcmtlcnMoKSB0byBFZGl0b3Igc28gYSBjbGllbnQgY2FuIGFkZCBzcGVsbGluZyAob3IgZ3Jh
bW1hcikgbWFya2VycworICAgICAgICAqIEFkZGVkIHJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5v
ZGVUZXh0KCkgYW5kIGNhbGwgaXQgd2hlbiBwYXN0aW5nIHRleHQgc28gd2UgY2FuCisgICAgICAg
ICAgc3BlbGxjaGVjayB0aGUgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQsIGFuZDsKKyAg
ICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIGhh
c1NwZWxsaW5nTWFya2VyKCkgdG8KKyAgICAgICAgICBUZXh0SW5wdXRDb250cm9sbGVyIHNvIHdl
IGNhbiB3cml0ZSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbDogQWRkZWQu
CisKIDIwMTAtMDctMjkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0
ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyB3ZSBjYW4gY2hlY2sgdGhlIHNw
ZWxsaW5nIG9mIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLiBJZiB0aGlzIHRlc3Qgc3Vj
Y2VlZHMsIHRoZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VTUycuIChPdGhlcndpc2UsIHRo
aXMgdGVzdCBkb2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0IG1hbnVhbGx5LCBwYXN0ZSBt
aXNzcGVsbGVkIHdvcmRzIHRvIHRoZSA8dGV4dGFyZWE+IGVsZW1lbnQgYW5kIHNlZSB0aGV5IGFy
ZSBtYXJrZWQgYXMgbWlzc3BlbGxlZC4KKworCitTVUNDRVNTCitTVUNDRVNTCkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBh
c3RlZC10ZXh0LTAwMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDUxIEBACis8aHRtbD4gCis8aGVhZD4KKzxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMg
bGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0Pgor
PHRpdGxlPkVkaXRpbmcgVGVzdDwvdGl0bGU+IAorPC9oZWFkPiAKKzxib2R5PgorPHA+VGhpcyB0
ZXN0cyB3ZSBjYW4gY2hlY2sgdGhlIHNwZWxsaW5nIG9mIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNr
Z3JvdW5kLiBJZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHRoZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAn
U1VDQ0VTUycuIChPdGhlcndpc2UsIHRoaXMgdGVzdCBkb2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBU
byB0ZXN0IG1hbnVhbGx5LCBwYXN0ZSBtaXNzcGVsbGVkIHdvcmRzIHRvIHRoZSAgJmx0O3RleHRh
cmVhJmd0IGVsZW1lbnQgYW5kIHNlZSB0aGV5IGFyZSBtYXJrZWQgYXMgbWlzc3BlbGxlZC48L3A+
Cis8dGV4dGFyZWEgaWQ9InRlc3QiIGNvbHM9IjgwIiByb3dzPSIxMCI+Zm9vIGJhciBiYXo8L3Rl
eHRhcmVhPgorPHVsIGlkPSJjb25zb2xlIj48L3VsPgorPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNj
cmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Z1bmN0aW9uIGxvZyhzdHIpIHsKKyAgIHZh
ciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CisgICBsaS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKKyAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOwor
fQorCitmdW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KSB7CisgICAgaWYgKHJlc3VsdCkKKyAgICAg
ICAgbG9nKCdTVUNDRVNTJyk7CisgICAgZWxzZQorICAgICAgICBsb2coJ0ZBSUxFRCcpOworfQor
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgaWYgKCF0ZXh0SW5wdXRDb250cm9sbGVyLmlzQXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQKKyAgICAgICAgfHwgIXRleHRJbnB1dENvbnRy
b2xsZXIuaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpKSB7CisgICAgICAgIC8v
IFdlIGp1c3Qgb3V0cHV0IHRoZSBleHBlY3RlZCByZXN1bHRzIGFuZCBleGl0IGZvciBwbGF0Zm9y
bXMgdGhhdCBkb2VzCisgICAgICAgIC8vIG5vdCBzdXBwb3J0IGFzeW5jaHJvbm91cyBzcGVsbC1j
aGVja2luZy4KKyAgICAgICAgbG9nKCdTVUNDRVNTJyk7CisgICAgICAgIGxvZygnU1VDQ0VTUycp
OworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIENvcHkgdGhlIG9yaWdpbmFsIHRleHQgYW5kIHBh
c3RlIGl0LgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmZvY3VzKCk7
CisgICAgICAgIGV4ZWNTZWxlY3RBbGxDb21tYW5kKCk7CisgICAgICAgIGV4ZWNDb3B5Q29tbWFu
ZCgpOworICAgICAgICBleGVjUGFzdGVDb21tYW5kKCk7CisKKyAgICAgICAgLy8gTG9vcCB3aGls
ZSB0aGUgZmlyc3Qgd29yZCAnZm9vJyBpcyBtYXJrZWQgYXMgbWlzc3BlbGxlZC4KKyAgICAgICAg
d2hpbGUgKCF0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAsIDMpKTsKKwor
ICAgICAgICAvLyBDaGVjayBpZiAnZm9vJyBhbmQgJ2JheicgYXJlIG1hcmtlZCBhcyBtaXNzcGVs
bGVkLgorICAgICAgICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01h
cmtlcigwLCAzKSk7CisgICAgICAgIGxvZ1Jlc3VsdCh0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1Nw
ZWxsaW5nTWFya2VyKDgsIDMpKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65679</attachid>
            <date>2010-08-26 23:00:06 -0700</date>
            <delta_ts>2010-09-08 02:15:23 -0700</delta_ts>
            <desc>Draft implementation #5</desc>
            <filename>issue40092-patch5.txt</filename>
            <type>text/plain</type>
            <size>32141</size>
            <attacher name="Hironori Bono">hbono</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjE4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTAtMDgtMjYgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3aGVuIHBhc3Rp
bmcgdGV4dAorICAgICAgICBvbiBNYWMgT1MgWCAxMC42LgorICAgICAgICA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyPgorICAgICAgICBUaGlzIGNoYW5nZSBj
b25zaXN0cyBvZiBzZXZlcmFsIHBhcnRzOgorICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBF
ZGl0b3JDbGllbnQKKyAgICAgICAgICBzbyBhIGNsaWVudCBjYW4gaW1wbGVtZW50IGFzeW5jaHJv
bm91cyBzcGVsbGNoZWNraW5nOworICAgICAgICAqIEltcGxlbWVudGVkIHRoZSBhYm92ZSBpbnRl
cmZhY2VzIGZvciBNYWMgT1MgWCAxMC42OworICAgICAgICAqIEFkZGVkIGFkZFNwZWxsaW5nTWFy
a2VycygpIHRvIEVkaXRvciBzbyBhIGNsaWVudCBjYW4gYWRkIHNwZWxsaW5nIChvciBncmFtbWFy
KSBtYXJrZXJzCisgICAgICAgICogQWRkZWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRl
eHQoKSBhbmQgY2FsbCBpdCB3aGVuIHBhc3RpbmcgdGV4dCBzbyB3ZSBjYW4KKyAgICAgICAgICBz
cGVsbGNoZWNrIHRoZSBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZCwgYW5kOworICAgICAg
ICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgaGFzU3Bl
bGxpbmdNYXJrZXIoKSB0bworICAgICAgICAgIFRleHRJbnB1dENvbnRyb2xsZXIgc28gd2UgY2Fu
IHdyaXRlIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5p
bjogRXhwb3J0cyBzeW1ib2xzIHVzZWQgYnkgV2ViRnJhbWUgYW5kIFdlYkVkaXRvckNsaWVudC4K
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OnBhc3RlQXNQbGFpblRleHQpOiBDYWxscyByZXF1ZXN0Q2hlY2tpbmdPZkZvY3VzZWROb2RlVGV4
dCgpLgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjpBc3lu
Y1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIpOiBJbml0aWFsaXplcyB0aGUKKyAgICAgICAgc2VxdWVu
Y2UgbnVtYmVyIHVzZWQgZm9yIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nLgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjp+QXN5bmNTcGVsbENoZWNrZXJD
b250cm9sbGVyKTogQWRkZWQgYW4gZW1wdHkKKyAgICAgICAgZGVzdHJ1Y3Rvci4KKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxlcjo6aW5pdCk6IEluaXRpYWxpemVz
IHRoZSB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpBc3luY1NwZWxsQ2hlY2tlckNvbnRy
b2xsZXI6OmNsZWFyKTogQ2xlYW5zIHVwIHRoZSB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3Jl
OjpBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI6Om5vZGUpOiBSZXR1cm5zIHRoZSB0ZXh0IG5v
ZGUgdXNlZCBieSBzcGVsbGNoZWNraW5nLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6cmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQpOiBTcGVsbGNoZWNrcyB0aGUgdGV4
dCBvZiB0aGUgZm9jdXNlZAorICAgICAgICBub2RlIGluIHRoZSBiYWNrZ3JvdW5kLgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjphZGRTcGVsbGluZ01hcmtlcnMpOiBBcHBsaWVzIHNwZWxsY2hl
Y2tpbmcgcmVzdWx0cy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6U3BlbGxDaGVja2luZ1Jlc3VsdCk6IEEgc3RydWN0
IHRoYXQgc3BlY2lmaWVzIGEKKyAgICAgICAgc3BlbGxjaGVja2luZyByZXN1bHQuCisgICAgICAg
IChXZWJDb3JlOjpBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI6OnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjpzdWJzdHJpbmcpOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjppc0J1c3kpOgorICAgICAg
ICAoV2ViQ29yZTo6QXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjppc1ZhbGlkKToKKyAgICAg
ICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRv
ckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6IEFkZGVkIGFuIGVt
cHR5CisgICAgICAgIGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0
b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKTogQWRkZWQgYW4gZW1wdHkgaW1wbGVt
ZW50YXRpb24uCisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDogQWRkZWQgaXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZygpLgorCiAyMDEwLTA4LTI2ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24g
NjYxNzEpCisrKyBXZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC00NjEs
NiArNDYxLDcgQEAgX19aTjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOUwogX19a
TjdXZWJDb3JlMjNSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYx
MFBhc3NSZWZQdHJJTlNfMTZEb2N1bWVudEZyYWdtZW50RUVFYmJiYmJOU18xMEVkaXRBY3Rpb25F
CiBfX1pON1dlYkNvcmUyM2NyZWF0ZUZyYWdtZW50RnJvbU5vZGVzRVBOU184RG9jdW1lbnRFUktO
M1dURjZWZWN0b3JJUE5TXzROb2RlRUxtMEVFRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0
eUxpc3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKK19fWk43V2ViQ29yZTI0RG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUy
NERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VOU18xNERvY3VtZW50TWFy
a2VyMTBNYXJrZXJUeXBlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIy
M3JlbmRlcmVkUmVjdHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVF
CiBfX1pON1dlYkNvcmUyNGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpY0V2CkBAIC02MTMsNiArNjE0
LDcgQEAgX19aTjdXZWJDb3JlNkVkaXRvcjE0c2V0Q29tcG9zaXRpb25FUktOMwogX19aTjdXZWJD
b3JlNkVkaXRvcjE1cGFzdGVBc0ZyYWdtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jdW1l
bnRGcmFnbWVudEVFRWJiCiBfX1pON1dlYkNvcmU2RWRpdG9yMTZwYXN0ZUFzUGxhaW5UZXh0RXYK
IF9fWk43V2ViQ29yZTZFZGl0b3IxN2luc2VydE9yZGVyZWRMaXN0RXYKK19fWk43V2ViQ29yZTZF
ZGl0b3IxOGFkZFNwZWxsaW5nTWFya2Vyc0VpUktOM1dURjZWZWN0b3JJTlNfMTlTcGVsbENoZWNr
aW5nUmVzdWx0RUxtMEVFRQogX19aTjdXZWJDb3JlNkVkaXRvcjE4Y29uZmlybUNvbXBvc2l0aW9u
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlNkVkaXRvcjE4Y29uZmlybUNvbXBvc2l0aW9u
RXYKIF9fWk43V2ViQ29yZTZFZGl0b3IxOWRlbGV0ZVdpdGhEaXJlY3Rpb25FTlNfMTlTZWxlY3Rp
b25Db250cm9sbGVyMTBFRGlyZWN0aW9uRU5TXzE1VGV4dEdyYW51bGFyaXR5RWJiCkBAIC04ODMs
NiArODg1LDcgQEAgX19aTks3V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBjdXJyZW50S2V5YgogX19a
Tks3V2ViQ29yZTEySWNvbkRhdGFiYXNlMTJkYXRhYmFzZVBhdGhFdgogX19aTks3V2ViQ29yZTEy
SWNvbkRhdGFiYXNlMjRzaG91bGRTdG9wVGhyZWFkQWN0aXZpdHlFdgogX19aTks3V2ViQ29yZTEy
SWNvbkRhdGFiYXNlOWlzRW5hYmxlZEV2CitfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3Q3Y2hp
bGRBdEVqCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xvc2luZ0xheWVyRXYKIF9f
Wk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRlRU5TXzEwRmxvYXRQb2lu
dEViYgogX19aTks3V2ViQ29yZTEyUmVuZGVyV2lkZ2V0MTR3aW5kb3dDbGlwUmVjdEV2CkluZGV4
OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjYxNzEpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgIk1vZGlmeVNl
bGVjdGlvbkxpc3RMZXZlbC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJv
YXJkLmgiCisjaW5jbHVkZSAiUG9zaXRpb25JdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbW92ZUZv
cm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRl
clBhcnQuaCIKQEAgLTMxNSw2ICszMTYsOSBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4
dChjb25zdCBTdHJpCiAgICAgICAgIHJldHVybjsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
ICAgICB0YXJnZXQtPmRpc3BhdGNoRXZlbnQoVGV4dEV2ZW50OjpjcmVhdGVGb3JQbGFpblRleHRQ
YXN0ZShtX2ZyYW1lLT5kb21XaW5kb3coKSwgcGFzdGluZ1RleHQsIHNtYXJ0UmVwbGFjZSksIGVj
KTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRl
eHQoKTsKKyNlbmRpZgogfQogCiB2b2lkIEVkaXRvcjo6cGFzdGVBc0ZyYWdtZW50KFBhc3NSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gcGFzdGluZ0ZyYWdtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwg
Ym9vbCBtYXRjaFN0eWxlKQpAQCAtMTIxMSw2ICsxMjE1LDExNCBAQCBpbnQgRWRpdG9yOjpzcGVs
bENoZWNrZXJEb2N1bWVudFRhZygpCiAgICAgcmV0dXJuIGNsaWVudCgpID8gY2xpZW50KCktPnNw
ZWxsQ2hlY2tlckRvY3VtZW50VGFnKCkgOiAwOwogfQogCisjaWYgUExBVEZPUk0oTUFDKQorQXN5
bmNTcGVsbENoZWNrZXJDb250cm9sbGVyOjpBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIoKQor
ICAgIDogbV9zZXF1ZW5jZSgwKQoreworfQorCitBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI6
On5Bc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIoKQoreworfQorCitpbnQgQXN5bmNTcGVsbENo
ZWNrZXJDb250cm9sbGVyOjppbml0KE5vZGUqIG5vZGUpCit7CisgICAgaWYgKG1fbm9kZS5nZXQo
KSB8fCAhbm9kZSB8fCAhbm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisg
ICAgU3RyaW5nIHRleHQ7CisgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkp
CisgICAgICAgIHRleHQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSktPnZh
bHVlKCk7CisgICAgZWxzZSBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0QXJlYSgpKQorICAg
ICAgICB0ZXh0ID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KG5vZGUpLT52YWx1
ZSgpOworICAgIGVsc2UKKyAgICAgICAgdGV4dCA9IG5vZGUtPnRleHRDb250ZW50KCk7CisgICAg
aWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBtX25vZGUgPSBu
b2RlOworICAgIG1fdGV4dCA9IHRleHQ7CisgICAgcmV0dXJuICsrbV9zZXF1ZW5jZTsKK30KKwor
dm9pZCBBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI6OmNsZWFyKCkKK3sKKyAgICBtX25vZGUg
PSAwOworICAgIG1fdGV4dCA9IFN0cmluZygpOworfQorCitOb2RlKiBBc3luY1NwZWxsQ2hlY2tl
ckNvbnRyb2xsZXI6Om5vZGUoKSBjb25zdAoreworICAgIC8vIFJldHJpZXZlIHRoZSBmaXJzdCAn
I3RleHQnIG5vZGUgdXNlZCBieSByZW5kZXJlcnMuIEZvciBhIDx0ZXh0YXJlYT4KKyAgICAvLyBl
bGVtZW50LCBhIHNwZWxsY2hlY2tlciBkaXJlY3RseSBhZGRzIHNwZWxsaW5nIG1hcmtlcnMgdG8g
dGhlIHNoYWRvdyBub2RlcworICAgIC8vIHVzZWQgYnkgcmVuZGVyZXJzLCBpLmUuIGFkZGluZyBz
cGVsbGluZyBtYXJrZXJzIHRvIGEgRE9NIG5vZGUgZG9lcyBub3QKKyAgICAvLyBhZGQgbWFya2Vy
cyB0byB0aGUgbm9kZSB1c2VkIGJ5IHNwZWxsY2hlY2tlcnMuIFRoZXJlZm9yZSwgd2UgZGlyZWN0
bHkKKyAgICAvLyByZXRyaWV2ZSB0aGUgc2hhZG93IG5vZGUgZnJvbSB0aGUgRE9NIG5vZGUuCisg
ICAgTm9kZSogbm9kZSA9IG1fbm9kZS5nZXQoKTsKKyAgICBmb3IgKGNvbnN0IFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5k
ZXJlci0+Y2hpbGRBdCgwKSkgeworICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpKQorICAg
ICAgICAgICAgcmV0dXJuIHJlbmRlcmVyLT5ub2RlKCk7CisgICAgfQorICAgIHJldHVybiAwOwor
fQorCitib29sIEVkaXRvcjo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCit7
CisgICAgcmV0dXJuIGNsaWVudCgpICYmIGNsaWVudCgpLT5pc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpyZXF1ZXN0Q2hlY2tpbmdPZkZvY3Vz
ZWROb2RlVGV4dCgpCit7CisgICAgaWYgKCFpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKCkgfHwgbV9hc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXIuaXNCdXN5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGludCBzZXF1ZW5jZSA9IG1fYXN5bmNTcGVsbENoZWNrZXJDb250cm9s
bGVyLmluaXQobV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSk7CisgICAgaWYgKHNl
cXVlbmNlID4gMCkKKyAgICAgICAgY2xpZW50KCktPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHNl
cXVlbmNlLCBtX2FzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxlci50ZXh0KCkpOworfQorCit2b2lk
IEVkaXRvcjo6YWRkU3BlbGxpbmdNYXJrZXJzKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFNw
ZWxsQ2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQoreworICAgIGlmICghbV9hc3luY1NwZWxsQ2hl
Y2tlckNvbnRyb2xsZXIuaXNWYWxpZChzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybjsKKworICAg
IE5vZGUqIG5vZGUgPSBtX2FzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxlci5ub2RlKCk7CisgICAg
aWYgKCFub2RlKSB7CisgICAgICAgIG1fYXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyLmNsZWFy
KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnQgc3RhcnRPZmZzZXQgPSAwOwor
ICAgIFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBQb3NpdGlvbihub2RlLCAwKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHJl
c3VsdHNbaV0udHlwZSAhPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50
eXBlICE9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgLy8gVG8gYXZvaWQgbW92aW5nIHRoZSBwb3NpdGlvbiBiYWNrd2FyZCwgd2UgYXNz
dW1lIHRoZSBnaXZlbiByZXN1bHRzIGFyZSBzb3J0ZWQgd2l0aAorICAgICAgICAvLyBzdGFydE9m
ZnNldCBhcyB0aGUgb25lcyByZXR1cm5lZCBieSBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmc6XS4KKyAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3VsdHNbaV0u
bG9jYXRpb24pOworICAgICAgICBmb3IgKDsgc3RhcnRPZmZzZXQgPCByZXN1bHRzW2ldLmxvY2F0
aW9uOyArK3N0YXJ0T2Zmc2V0KQorICAgICAgICAgICAgc3RhcnQuaW5jcmVtZW50KCk7CisKKyAg
ICAgICAgUG9zaXRpb25JdGVyYXRvciBlbmQgPSBzdGFydDsKKyAgICAgICAgZm9yIChpbnQgbGVu
Z3RoID0gMDsgbGVuZ3RoIDwgcmVzdWx0c1tpXS5sZW5ndGg7ICsrbGVuZ3RoKQorICAgICAgICAg
ICAgZW5kLmluY3JlbWVudCgpOworCisgICAgICAgIC8vIFVzZXJzIG9yIEphdmFTY3JpcHQgYXBw
bGljYXRpb25zIG1heSBjaGFuZ2UgdGV4dCB3aGlsZSBhIHNwZWxsLWNoZWNrZXIgY2hlY2tzIGl0
cworICAgICAgICAvLyBzcGVsbGluZ3MgaW4gdGhlIGJhY2tncm91bmQuIFRvIGF2b2lkIGFkZGlu
ZyBtYXJrZXJzIHRvIHRoZSB3b3JkcyBtb2RpZmllZCBieSB1c2VycyBvcgorICAgICAgICAvLyBK
YXZhU2NyaXB0IGFwcGxpY2F0aW9ucywgcmV0cmlldmUgdGhlIHdvcmRzIGluIHRoZSBzcGVjaWZp
ZWQgcmVnaW9uIGFuZCBjb21wYXJlIHRoZW0gd2l0aAorICAgICAgICAvLyB0aGUgb3JpZ2luYWwg
b25lcy4KKyAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9mcmFt
ZS0+ZG9jdW1lbnQoKSwgc3RhcnQsIGVuZCk7CisgICAgICAgIFN0cmluZyBkZXN0aW5hdGlvbiA9
IHJhbmdlLT50ZXh0KCk7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBtX2FzeW5jU3BlbGxDaGVj
a2VyQ29udHJvbGxlci5zdWJzdHJpbmcocmVzdWx0c1tpXS5sb2NhdGlvbiwgcmVzdWx0c1tpXS5s
ZW5ndGgpOworICAgICAgICBpZiAoZGVzdGluYXRpb24gPT0gc291cmNlKQorICAgICAgICAgICAg
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJrZXIocmFuZ2UuZ2V0KCksIHJl
c3VsdHNbaV0udHlwZSk7CisgICAgfQorCisgICAgbV9hc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xs
ZXIuY2xlYXIoKTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChC
VUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKIAogdm9p
ZCBFZGl0b3I6OnVwcGVyY2FzZVdvcmQoKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkocmV2aXNpb24gNjYxNzEp
CisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkNsaXBib2FyZEFjY2Vzc1BvbGljeS5oIgogI2luY2x1ZGUgIkNv
bG9yLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJFZGl0QWN0aW9u
LmgiCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yLmgiCiAjaW5jbHVkZSAiRWRpdG9yRGVsZXRl
QWN0aW9uLmgiCkBAIC02Niw2ICs2Nyw0MSBAQCBlbnVtIFRyaVN0YXRlIHsgRmFsc2VUcmlTdGF0
ZSwgVHJ1ZVRyaVN0CiBlbnVtIEVkaXRvckNvbW1hbmRTb3VyY2UgeyBDb21tYW5kRnJvbU1lbnVP
cktleUJpbmRpbmcsIENvbW1hbmRGcm9tRE9NLCBDb21tYW5kRnJvbURPTVdpdGhVc2VySW50ZXJm
YWNlIH07CiBlbnVtIFdyaXRpbmdEaXJlY3Rpb24geyBOYXR1cmFsV3JpdGluZ0RpcmVjdGlvbiwg
TGVmdFRvUmlnaHRXcml0aW5nRGlyZWN0aW9uLCBSaWdodFRvTGVmdFdyaXRpbmdEaXJlY3Rpb24g
fTsKIAorI2lmIFBMQVRGT1JNKE1BQykKK3N0cnVjdCBTcGVsbENoZWNraW5nUmVzdWx0IHsKKyAg
ICBTcGVsbENoZWNraW5nUmVzdWx0KCkKKyAgICAgICAgOiB0eXBlKERvY3VtZW50TWFya2VyOjpT
cGVsbGluZykKKyAgICAgICAgLCBsb2NhdGlvbigwKQorICAgICAgICAsIGxlbmd0aCgwKQorICAg
IHsKKyAgICB9CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZTsKKyAgICBpbnQg
bG9jYXRpb247CisgICAgaW50IGxlbmd0aDsKK307CisKK2NsYXNzIEFzeW5jU3BlbGxDaGVja2Vy
Q29udHJvbGxlciB7CitwdWJsaWM6CisgICAgQXN5bmNTcGVsbENoZWNrZXJDb250cm9sbGVyKCk7
CisgICAgfkFzeW5jU3BlbGxDaGVja2VyQ29udHJvbGxlcigpOworCisgICAgaW50IGluaXQoTm9k
ZSogbm9kZSk7CisgICAgdm9pZCBjbGVhcigpOworCisgICAgTm9kZSogbm9kZSgpIGNvbnN0Owor
ICAgIFN0cmluZyB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CisgICAgU3RyaW5nIHN1
YnN0cmluZyhpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dC5z
dWJzdHJpbmcobG9jYXRpb24sIGxlbmd0aCk7IH0KKworICAgIGJvb2wgaXNCdXN5KCkgY29uc3Qg
eyByZXR1cm4gISFtX25vZGUuZ2V0KCk7IH0KKyAgICBib29sIGlzVmFsaWQoaW50IHNlcXVlbmNl
KSBjb25zdCB7IHJldHVybiBtX25vZGUuZ2V0KCkgJiYgbV90ZXh0Lmxlbmd0aCgpICYmIG1fc2Vx
dWVuY2UgPT0gc2VxdWVuY2U7IH0KKworcHJpdmF0ZToKKyAgICBSZWZQdHI8Tm9kZT4gbV9ub2Rl
OworICAgIFN0cmluZyBtX3RleHQ7CisgICAgaW50IG1fc2VxdWVuY2U7Cit9OworI2VuZGlmCisK
IGNsYXNzIEVkaXRvciB7CiBwdWJsaWM6CiAgICAgRWRpdG9yKEZyYW1lKik7CkBAIC0yMjYsNiAr
MjYyLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtBbGxNaXNzcGVsbGluZ3NBbmRCYWRHcmFt
bWFySW5SYW5nZXMoYm9vbCBtYXJrU3BlbGxpbmcsIFJhbmdlKiBzcGVsbGluZ1JhbmdlLCBib29s
IG1hcmtHcmFtbWFyLCBSYW5nZSogZ3JhbW1hclJhbmdlLCBib29sIHBlcmZvcm1UZXh0Q2hlY2tp
bmdSZXBsYWNlbWVudHMpOwogICAgIHZvaWQgY2hhbmdlQmFja1RvUmVwbGFjZWRTdHJpbmcoY29u
c3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZyk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgdm9pZCBh
ZGRTcGVsbGluZ01hcmtlcnMoaW50LCBjb25zdCBWZWN0b3I8U3BlbGxDaGVja2luZ1Jlc3VsdD4m
KTsKKyNlbmRpZgogICAgIHZvaWQgYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRC
ZWZvcmVTZWxlY3Rpb24gPSBmYWxzZSk7CiAgICAgdm9pZCBzaG93U3BlbGxpbmdHdWVzc1BhbmVs
KCk7CiAgICAgYm9vbCBzcGVsbGluZ1BhbmVsSXNTaG93aW5nKCk7CkBAIC0zMTcsNiArMzU3LDkg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlOwog
ICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tp
bGxSaW5nOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBBc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xs
ZXIgbV9hc3luY1NwZWxsQ2hlY2tlckNvbnRyb2xsZXI7CisjZW5kaWYKIAogICAgIGJvb2wgY2Fu
RGVsZXRlUmFuZ2UoUmFuZ2UqKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQ
YXN0ZWJvYXJkKFBhc3RlYm9hcmQqKTsKQEAgLTMzNyw2ICszODAsOSBAQCBwcml2YXRlOgogICAg
IAogICAgIHZvaWQgY2hhbmdlU2VsZWN0aW9uQWZ0ZXJDb21tYW5kKGNvbnN0IFZpc2libGVTZWxl
Y3Rpb24mIG5ld1NlbGVjdGlvbiwgYm9vbCBjbG9zZVR5cGluZywgYm9vbCBjbGVhclR5cGluZ1N0
eWxlKTsKICAgICBOb2RlKiBmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0aW9uKCkgY29uc3Q7Cisj
aWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRl
eHQoKTsKKyNlbmRpZgogfTsKIAogaW5saW5lIHZvaWQgRWRpdG9yOjpzZXRTdGFydE5ld0tpbGxS
aW5nU2VxdWVuY2UoYm9vbCBmbGFnKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9u
IDY2MTcxKQorKysgV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2Nyw4ICs0NjcsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0KKyNpZiBQTEFURk9STShNQUMpCisgICAgdmly
dHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQsIGNv
bnN0IFN0cmluZyYpIHsgfQorI2VuZGlmCiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMp
CkluZGV4OiBXZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiA2NjE3MSkKKysrIFdlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDYgKzE4NCwxMCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3Rv
cjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1l
dGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wgZW5hYmxlZCkgPSAwOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2aXJ0dWFsIGJvb2wgaXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoaW50LCBjb25zdCBTdHJpbmcmKSA9IDA7CisjZW5kaWYK
IH07CiAKIH0KSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2NjE4MSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTAtMDgtMjYgIEhpcm9ub3JpIEJvbm8gIDxoYm9u
b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3
aGVuIHBhc3RpbmcgdGV4dAorICAgICAgICBvbiBNYWMgT1MgWCAxMC42LgorICAgICAgICA8aHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyPgorICAgICAgICBUaGlz
IGNoYW5nZSBjb25zaXN0cyBvZiBzZXZlcmFsIHBhcnRzOgorICAgICAgICAqIEFkZGVkIGlzQXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoKSB0byBFZGl0b3JDbGllbnQKKyAgICAgICAgICBzbyBhIGNsaWVudCBjYW4gaW1wbGVtZW50
IGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nOworICAgICAgICAqIEltcGxlbWVudGVkIHRoZSBh
Ym92ZSBpbnRlcmZhY2VzIGZvciBNYWMgT1MgWCAxMC42OworICAgICAgICAqIEFkZGVkIGFkZFNw
ZWxsaW5nTWFya2VycygpIHRvIEVkaXRvciBzbyBhIGNsaWVudCBjYW4gYWRkIHNwZWxsaW5nIChv
ciBncmFtbWFyKSBtYXJrZXJzCisgICAgICAgICogQWRkZWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1
c2VkTm9kZVRleHQoKSBhbmQgY2FsbCBpdCB3aGVuIHBhc3RpbmcgdGV4dCBzbyB3ZSBjYW4KKyAg
ICAgICAgICBzcGVsbGNoZWNrIHRoZSBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZCwgYW5k
OworICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBh
bmQgaGFzU3BlbGxpbmdNYXJrZXIoKSB0bworICAgICAgICAgIFRleHRJbnB1dENvbnRyb2xsZXIg
c28gd2UgY2FuIHdyaXRlIGEgbGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6IEFkZGVkIGFu
IGVtcHR5IGZ1bmN0aW9uLgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKTogQWRkZWQgYW4gZW1wdHkgZnVuY3Rpb24uCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxMC0wOC0y
NiAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBm
aXggdGhlIFF0IFdlYktpdDIgYnVpbGQuCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gNjYxNzEp
CisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDY5LDQgKzQ2OSwxNSBAQCB2b2lkIFdlYkVkaXRvckNsaWVu
dDo6c2V0SW5wdXRNZXRob2RTdGF0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBX
ZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoaW50LCBjb25zdCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAkocmV2aXNpb24gNjYxNzEpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzMSw2ICsxMzEsOCBA
QCBwcml2YXRlOiAgICAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
V1RGOjpTdHJpbmcmLCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5w
dXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKIAogICAgIFdlYlBhZ2UqIG1f
cGFnZTsKIH07CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNjYxODEpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEwLTA4LTI2ICBIaXJvbm9yaSBC
b25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyBBUElzIGFu
ZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQKKyAgICAgICAgb24gTWFjIE9TIFggMTAuNi4KKyAg
ICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5Mj4KKyAg
ICAgICAgVGhpcyBjaGFuZ2UgY29uc2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0czoKKyAgICAgICAgKiBB
ZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKCkgdG8gRWRpdG9yQ2xpZW50CisgICAgICAgICAgc28gYSBjbGllbnQgY2Fu
IGltcGxlbWVudCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZzsKKyAgICAgICAgKiBJbXBsZW1l
bnRlZCB0aGUgYWJvdmUgaW50ZXJmYWNlcyBmb3IgTWFjIE9TIFggMTAuNjsKKyAgICAgICAgKiBB
ZGRlZCBhZGRTcGVsbGluZ01hcmtlcnMoKSB0byBFZGl0b3Igc28gYSBjbGllbnQgY2FuIGFkZCBz
cGVsbGluZyAob3IgZ3JhbW1hcikgbWFya2VycworICAgICAgICAqIEFkZGVkIHJlcXVlc3RDaGVj
a2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5kIGNhbGwgaXQgd2hlbiBwYXN0aW5nIHRleHQgc28g
d2UgY2FuCisgICAgICAgICAgc3BlbGxjaGVjayB0aGUgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tn
cm91bmQsIGFuZDsKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCkgYW5kIGhhc1NwZWxsaW5nTWFya2VyKCkgdG8KKyAgICAgICAgICBUZXh0SW5wdXRD
b250cm9sbGVyIHNvIHdlIGNhbiB3cml0ZSBhIGxheW91dCB0ZXN0LgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6IEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSBhbmQKKyAgICAgICAgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKS4K
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChX
ZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOiBSZXR1
cm4gWUVTIG9ubHkgaWYgR0NEIGlzIGVuYWJsZWQgb24gT1MgWCAxMC42LgorICAgICAgICAoV2Vi
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6IENhbGxzIFtOU1NwZWxsQ2hl
Y2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdCisgICAgICAgIHRvIHNwZWxsY2hlY2sgdGhl
IGdpdmVuIHRleHQgaW4gdGhlIGJhY2tncm91bmQuCisgICAgICAgICogV2ViVmlldy9XZWJGcmFt
ZS5oOiBBZGRlZCBbYWRkU3BlbGxpbmdNYXJrZXJzOnJlc3VsdHM6XS4KKyAgICAgICAgKiBXZWJW
aWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoc3BlbGxDaGVja2luZ05vZGUpOiBBZGRlZCBhIGxv
Y2FsIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgdGV4dCBub2RlIHVzZWQgZm9yIHNwZWxsY2hl
Y2tpbmcuCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSBmb3IgbGF5b3V0IHRlc3RzLgor
ICAgICAgICAoLVtXZWJGcmFtZSBhZGRTcGVsbGluZ01hcmtlcnM6cmVzdWx0czpdKTogQ2FsbHMg
RWRpdG9yOjphZGRTcGVsbGluZ01hcmtlcnMoKS4KKyAgICAgICAgKC1bV2ViRnJhbWUgaGFzU3Bl
bGxpbmdNYXJrZXI6bGVuZ3RoOl0pOiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNwZWNpZmllZCByZWdp
b24gaGFzIGEKKyAgICAgICAgc3BlbGxpbmcgbWFya2VyIGZvciBsYXlvdXQgdGV4dHMuCisgICAg
ICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDogQWRkZWQgW2hhc1NwZWxsaW5nTWFya2Vy
Omxlbmd0aDpdLgorCiAyMDEwLTA4LTI2ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJldmVydCByNjYxMDMgc2luY2UgUXQgdGVz
dHMgYXJlIGZhaWxpbmcuCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgJKHJldmlzaW9uIDY2MTcxKQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJp
bmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1l
dGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoaW50LCBjb25zdCBXVEY6OlN0cmluZyYpOwogcHJpdmF0ZToKICAgICB2b2lkIHJl
Z2lzdGVyQ29tbWFuZEZvclVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFu
ZD4sIGJvb2wgaXNSZWRvKTsKICAgICBXZWJFZGl0b3JDbGllbnQoKTsKSW5kZXg6IFdlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShyZXZpc2lvbiA2NjE3MSkK
KysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5n
IGNvcHkpCkBAIC04MjksMyArODI5LDI2IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0
SW5wdXRNZXRob2QKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wpCiB7CiB9CisKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkKK3sKKyNpZiBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IE1B
Q19PU19YX1ZFUlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZBSUxBQkxFCisgICAgLy8gRW5hYmxl
IGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIChhbmQgZ3JhbW1hciBjaGVja2luZykgb25seSB3
aGVuIHdlIGNvbXBpbGUgdGhpcyBmaWxlIG9uCisgICAgLy8gTWFjIE9TIFggMTAuNiBhbmQgd2Ug
Y2FuIHVzZSBHcmFuZCBDZW50cmFsIERpc3BhdGNoIGJlY2F1c2UgdGhleSBhcmUgcmVxdWlyZWQg
YnkKKyAgICAvLyBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6XS4KKyAg
ICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3Zv
aWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhpbnQgc2VxdWVuY2Us
IGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyNpZiBNQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VE
ID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZBSUxBQkxFCisgICAgTlNS
YW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQubGVuZ3RoKCkpOworICAgIHZvaWQgKF5o
YW5kbGVyKShOU0ludGVnZXIsIE5TQXJyYXkqLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSA9
IF4oTlNJbnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2Vy
KSB7CisgICAgICAgIFtbbV93ZWJWaWV3IHNlbGVjdGVkRnJhbWVdIGFkZFNwZWxsaW5nTWFya2Vy
czpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdOworICAgIH07CisgICAgW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6
cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVs
bERvY3VtZW50V2l0aFRhZzowIGNvbXBsZXRpb25IYW5kbGVyOmhhbmRsZXJdOworI2VuZGlmCit9
CkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUuaAkocmV2aXNpb24gNjYxNzEpCisrKyBXZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjEzLDQgKzIxMywxMSBAQCBA
aW50ZXJmYWNlIFdlYkZyYW1lIDogTlNPYmplY3QKICAgICBicmlkZ2UgYmV0d2VlbiB0aGUgV2Vi
S2l0IGFuZCBKYXZhU2NyaXB0Q29yZSBBUElzLgogKi8KIC0gKEpTR2xvYmFsQ29udGV4dFJlZiln
bG9iYWxDb250ZXh0OworCisvKiEKKyAgICBAbWV0aG9kIGFkZFNwZWxsaW5nTWFya2VycworICAg
IEBwYXJhbSBzZXF1ZW5jZSB0aGUgc2VxdWVuY2UgbnVtYmVyIHByb3ZpZGVkIGZyb20gV2ViQ29y
ZS4KKyAgICBAcGFyYW0gcmVzdWx0cyBhbiBhcnJheSBvZiBOU1RleHRDaGVja2luZ1Jlc3VsdCBv
YmplY3RzLgorICovCistICh2b2lkKWFkZFNwZWxsaW5nTWFya2VyczooaW50KXNlcXVlbmNlIHJl
c3VsdHM6KE5TQXJyYXkqKXJlc3VsdHM7CiBAZW5kCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
CShyZXZpc2lvbiA2NjE3MSkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQkod29y
a2luZyBjb3B5KQpAQCAtMTM2Niw2ICsxMzY2LDQwIEBAIC0gKE5TU3RyaW5nKilfbGF5ZXJUcmVl
QXNUZXh0CiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+bGF5ZXJUcmVlQXNUZXh0KCk7CiB9CiAKK3N0
YXRpYyBOb2RlKiBzcGVsbENoZWNraW5nTm9kZShGcmFtZSogY29yZUZyYW1lKQoreworICAgIE5v
ZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOwor
ICAgIGlmICghZm9jdXNlZE5vZGUgfHwgIWZvY3VzZWROb2RlLT5yZW5kZXJlcigpKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIGZvciAoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGZv
Y3VzZWROb2RlLT5yZW5kZXJlcigpOyByZW5kZXJlcjsgcmVuZGVyZXIgPSByZW5kZXJlci0+Y2hp
bGRBdCgwKSkgeworICAgICAgICBpZiAocmVuZGVyZXItPmlzVGV4dCgpKQorICAgICAgICAgICAg
cmV0dXJuIHJlbmRlcmVyLT5ub2RlKCk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCistIChC
T09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpZnJvbSBsZW5ndGg6KGludClsZW5ndGgKK3sKKyAg
ICBGcmFtZSogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBpZiAoIWNvcmVG
cmFtZSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgTm9kZSogbm9kZSA9IHNwZWxsQ2hlY2tp
bmdOb2RlKGNvcmVGcmFtZSk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gTk87CisK
KyAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+
KGZyb20pOworICAgIHVuc2lnbmVkIGludCBlbmRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBpbnQ+KGZyb20gKyBsZW5ndGgpOworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4gbWFya2Vy
cyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzRm9yTm9kZShub2Rl
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlcnMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgRG9jdW1lbnRNYXJrZXIgbWFya2VyID0gbWFya2Vyc1tpXTsKKyAgICAgICAgaWYgKG1h
cmtlci5zdGFydE9mZnNldCA8PSBzdGFydE9mZnNldCAmJiBlbmRPZmZzZXQgPD0gbWFya2VyLmVu
ZE9mZnNldCAmJiBtYXJrZXIudHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAg
ICAgICAgICByZXR1cm4gWUVTOworICAgIH0KKyAgICByZXR1cm4gTk87Cit9CisKIEBlbmQKIAog
QGltcGxlbWVudGF0aW9uIFdlYkZyYW1lCkBAIC0xNjA4LDQgKzE2NDIsMzAgQEAgLSAoSlNHbG9i
YWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQKICAgICByZXR1cm4gdG9HbG9iYWxSZWYoY29yZUZy
YW1lLT5zY3JpcHQoKS0+Z2xvYmFsT2JqZWN0KG1haW5UaHJlYWROb3JtYWxXb3JsZCgpKS0+Z2xv
YmFsRXhlYygpKTsKIH0KIAorLSAodm9pZClhZGRTcGVsbGluZ01hcmtlcnM6KGludClzZXF1ZW5j
ZSByZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisjaWYgTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA+PSBNQUNfT1NfWF9WRVJTSU9OXzEwXzYgJiYgTlNfQkxPQ0tTX0FWQUlMQUJMRQor
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGlmICghY29y
ZUZyYW1lKQorICAgICAgICByZXR1cm47CisKKyAgICBzaXplX3QgY291bnQgPSBbcmVzdWx0cyBj
b3VudF07CisgICAgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+IG1hcmtlcnMoY291bnQpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICBOU1RleHRD
aGVja2luZ1R5cGUgdHlwZSA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OmldIHJlc3VsdFR5cGVd
OworICAgICAgICBpZiAodHlwZSAmIE5TVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nKQorICAgICAg
ICAgICAgbWFya2Vyc1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgICAg
ICBlbHNlIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcikKKyAgICAgICAgICAg
IG1hcmtlcnNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtYXJrZXJzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2Vy
czsKKworICAgICAgICBOU1JhbmdlIHJhbmdlID0gW1tyZXN1bHRzIG9iamVjdEF0SW5kZXg6aV0g
cmFuZ2VdOworICAgICAgICBtYXJrZXJzW2ldLmxvY2F0aW9uID0gcmFuZ2UubG9jYXRpb247Cisg
ICAgICAgIG1hcmtlcnNbaV0ubGVuZ3RoID0gcmFuZ2UubGVuZ3RoOworICAgIH0KKyAgICBjb3Jl
RnJhbWUtPmVkaXRvcigpLT5hZGRTcGVsbGluZ01hcmtlcnMoc2VxdWVuY2UsIG1hcmtlcnMpOwor
I2VuZGlmCit9CisKIEBlbmQKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgJ
KHJldmlzaW9uIDY2MTcxKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNCArMTQwLDcgQEAgQGludGVyZmFjZSBXZWJGcmFtZSAo
V2ViUHJpdmF0ZSkKIAogLSAoTlNTdHJpbmcqKV9sYXllclRyZWVBc1RleHQ7CiAKKy8vIFJldHVy
bnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUgc3BlY2lmaWVkIHJh
bmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCisvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZm9yIGxh
eW91dCB0ZXN0cy4KKy0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBsZW5n
dGg6KGludClsZW5ndGg7CiBAZW5kCkluZGV4OiBXZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NjE4MSkKKysrIFdlYktp
dFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA4
LTI2ICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhc3luY2hyb25vdXMgc3BlbGxj
aGVja2luZyBBUElzIGFuZCB1c2UgaXQgd2hlbiBwYXN0aW5nIHRleHQKKyAgICAgICAgb24gTWFj
IE9TIFggMTAuNi4KKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5Mj4KKyAgICAgICAgVGhpcyBjaGFuZ2UgY29uc2lzdHMgb2Ygc2V2ZXJhbCBwYXJ0
czoKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkg
YW5kIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgdG8gRWRpdG9yQ2xpZW50CisgICAgICAgICAg
c28gYSBjbGllbnQgY2FuIGltcGxlbWVudCBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZzsKKyAg
ICAgICAgKiBJbXBsZW1lbnRlZCB0aGUgYWJvdmUgaW50ZXJmYWNlcyBmb3IgTWFjIE9TIFggMTAu
NjsKKyAgICAgICAgKiBBZGRlZCBhZGRTcGVsbGluZ01hcmtlcnMoKSB0byBFZGl0b3Igc28gYSBj
bGllbnQgY2FuIGFkZCBzcGVsbGluZyAob3IgZ3JhbW1hcikgbWFya2VycworICAgICAgICAqIEFk
ZGVkIHJlcXVlc3RDaGVja2luZ09mRm9jdXNlZE5vZGVUZXh0KCkgYW5kIGNhbGwgaXQgd2hlbiBw
YXN0aW5nIHRleHQgc28gd2UgY2FuCisgICAgICAgICAgc3BlbGxjaGVjayB0aGUgcGFzdGVkIHRl
eHQgaW4gdGhlIGJhY2tncm91bmQsIGFuZDsKKyAgICAgICAgKiBBZGRlZCBpc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kIGhhc1NwZWxsaW5nTWFya2VyKCkgdG8KKyAgICAg
ICAgICBUZXh0SW5wdXRDb250cm9sbGVyIHNvIHdlIGNhbiB3cml0ZSBhIGxheW91dCB0ZXN0Lgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xsZXIubToKKyAg
ICAgICAgKCtbVGV4dElucHV0Q29udHJvbGxlciBpc1NlbGVjdG9yRXhjbHVkZWRGcm9tV2ViU2Ny
aXB0Ol0pOgorICAgICAgICAoK1tUZXh0SW5wdXRDb250cm9sbGVyIHdlYlNjcmlwdE5hbWVGb3JT
ZWxlY3RvcjpdKToKKyAgICAgICAgKC1bVGV4dElucHV0Q29udHJvbGxlciBpc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkXSk6CisgICAgICAgICgtW1RleHRJbnB1dENvbnRyb2xsZXIg
aGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOl0pOgorCiAyMDEwLTA4LTI1ICBKb24gSG9uZXljdXR0
ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgzMzQz
Mzg+IHJ1bi13ZWJraXQtdGVzdHMgc29tZXRpbWVzIGhhbmdzIHdoZW4gdXNpbmcKSW5kZXg6IFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXh0SW5wdXRDb250cm9sbGVyLm0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1RleHRJbnB1dENvbnRyb2xs
ZXIubQkocmV2aXNpb24gNjYxNzEpCisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGV4dElucHV0Q29udHJvbGxlci5tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW1wb3J0IDxBcHBLaXQvTlNJbnB1dE1hbmFnZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJEb2N1
bWVudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYkZyYW1lLmg+CisjaW1wb3J0IDxXZWJLaXQvV2Vi
RnJhbWVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVWaWV3Lmg+CiAjaW1wb3J0
IDxXZWJLaXQvV2ViSFRNTFZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViU2NyaXB0
T2JqZWN0Lmg+CkBAIC0xNjksNyArMTcwLDkgQEAgKyAoQk9PTClpc1NlbGVjdG9yRXhjbHVkZWRG
cm9tV2ViU2NyaXB0OgogICAgICAgICAgICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihjaGFy
YWN0ZXJJbmRleEZvclBvaW50WDpZOikKICAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2Vs
ZWN0b3IodmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dCkKICAgICAgICAgICAgIHx8IGFTZWxl
Y3RvciA9PSBAc2VsZWN0b3IoYXR0cmlidXRlZFN0cmluZ1dpdGhTdHJpbmc6KQotICAgICAgICAg
ICAgfHwgYVNlbGVjdG9yID09IEBzZWxlY3RvcihzZXRJbnB1dE1ldGhvZEhhbmRsZXI6KSkKKyAg
ICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0SW5wdXRNZXRob2RIYW5kbGVy
OikKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCkKKyAgICAgICAgICAgIHx8IGFTZWxlY3RvciA9PSBAc2VsZWN0
b3IoaGFzU3BlbGxpbmdNYXJrZXI6bGVuZ3RoOikpCiAgICAgICAgIHJldHVybiBOTzsKICAgICBy
ZXR1cm4gWUVTOwogfQpAQCAtMTk0LDYgKzE5NywxMCBAQCArIChOU1N0cmluZyAqKXdlYlNjcmlw
dE5hbWVGb3JTZWxlY3RvcjooCiAgICAgICAgIHJldHVybiBAIm1ha2VBdHRyaWJ1dGVkU3RyaW5n
IjsgLy8ganVzdCBhIGZhY3RvcnkgbWV0aG9kLCBkb2Vzbid0IGNhbGwgaW50byBOU1RleHRJbnB1
dAogICAgIGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3Ioc2V0SW5wdXRNZXRob2RIYW5k
bGVyOikpCiAgICAgICAgIHJldHVybiBAInNldElucHV0TWV0aG9kSGFuZGxlciI7IAorICAgIGVs
c2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCkpCisgICAgICAgIHJldHVybiBAImlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQiOworICAgIGVsc2UgaWYgKGFTZWxlY3RvciA9PSBAc2VsZWN0b3IoaGFzU3BlbGxpbmdN
YXJrZXI6bGVuZ3RoOikpCisgICAgICAgIHJldHVybiBAImhhc1NwZWxsaW5nTWFya2VyIjsKIAog
ICAgIHJldHVybiBuaWw7CiB9CkBAIC00MjcsNCArNDM0LDE4IEBAIC0gKEJPT0wpaW50ZXJwcmV0
S2V5RXZlbnRzOihOU0FycmF5ICopZXYKICAgICByZXR1cm4gWUVTOwogfQogCistIChCT09MKWlz
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQKK3sKKyNpZiBNQUNfT1NfWF9WRVJTSU9O
X01BWF9BTExPV0VEID49IE1BQ19PU19YX1ZFUlNJT05fMTBfNiAmJiBOU19CTE9DS1NfQVZBSUxB
QkxFCisgIHJldHVybiBZRVM7CisjZWxzZQorICByZXR1cm4gTk87CisjZW5kaWYKK30KKworLSAo
Qk9PTCloYXNTcGVsbGluZ01hcmtlcjooaW50KWZyb20gbGVuZ3RoOihpbnQpbGVuZ3RoCit7Cisg
ICAgcmV0dXJuIFtbd2ViVmlldyBtYWluRnJhbWVdIGhhc1NwZWxsaW5nTWFya2VyOmZyb20gbGVu
Z3RoOmxlbmd0aF07Cit9CisKIEBlbmQKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2MTgxKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAt
MDgtMjYgIEhpcm9ub3JpIEJvbm8gIDxoYm9ub0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFzeW5jaHJvbm91cyBzcGVs
bGNoZWNraW5nIEFQSXMgYW5kIHVzZSBpdCB3aGVuIHBhc3RpbmcgdGV4dAorICAgICAgICBvbiBN
YWMgT1MgWCAxMC42LgorICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMDkyPgorICAgICAgICBUaGlzIGNoYW5nZSBjb25zaXN0cyBvZiBzZXZlcmFsIHBh
cnRzOgorICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KSBhbmQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBFZGl0b3JDbGllbnQKKyAgICAgICAg
ICBzbyBhIGNsaWVudCBjYW4gaW1wbGVtZW50IGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nOwor
ICAgICAgICAqIEltcGxlbWVudGVkIHRoZSBhYm92ZSBpbnRlcmZhY2VzIGZvciBNYWMgT1MgWCAx
MC42OworICAgICAgICAqIEFkZGVkIGFkZFNwZWxsaW5nTWFya2VycygpIHRvIEVkaXRvciBzbyBh
IGNsaWVudCBjYW4gYWRkIHNwZWxsaW5nIChvciBncmFtbWFyKSBtYXJrZXJzCisgICAgICAgICog
QWRkZWQgcmVxdWVzdENoZWNraW5nT2ZGb2N1c2VkTm9kZVRleHQoKSBhbmQgY2FsbCBpdCB3aGVu
IHBhc3RpbmcgdGV4dCBzbyB3ZSBjYW4KKyAgICAgICAgICBzcGVsbGNoZWNrIHRoZSBwYXN0ZWQg
dGV4dCBpbiB0aGUgYmFja2dyb3VuZCwgYW5kOworICAgICAgICAqIEFkZGVkIGlzQXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBhbmQgaGFzU3BlbGxpbmdNYXJrZXIoKSB0bworICAg
ICAgICAgIFRleHRJbnB1dENvbnRyb2xsZXIgc28gd2UgY2FuIHdyaXRlIGEgbGF5b3V0IHRlc3Qu
CisKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAx
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sOiBBZGRlZC4KKwogMjAxMC0wOC0yNiAgRHVtaXRydSBE
YW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVwZGF0
aW5nIENocm9taXVtIGV4cGVjdGF0aW9ucy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0w
MDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyB3ZSBjYW4gY2hlY2sgdGhlIHNwZWxsaW5nIG9m
IHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLiBJZiB0aGlzIHRlc3Qgc3VjY2VlZHMsIHRo
ZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VTUycuIChPdGhlcndpc2UsIHRoaXMgdGVzdCBk
b2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0IG1hbnVhbGx5LCBwYXN0ZSBtaXNzcGVsbGVk
IHdvcmRzIHRvIHRoZSA8dGV4dGFyZWE+IGVsZW1lbnQgYW5kIHNlZSB0aGV5IGFyZSBtYXJrZWQg
YXMgbWlzc3BlbGxlZC4KKworCitTVUNDRVNTCitTVUNDRVNTCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0
LTAwMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUx
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0i
SmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+Cis8dGl0bGU+RWRp
dGluZyBUZXN0PC90aXRsZT4gCis8L2hlYWQ+IAorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHdlIGNh
biBjaGVjayB0aGUgc3BlbGxpbmcgb2YgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQuIElm
IHRoaXMgdGVzdCBzdWNjZWVkcywgdGhlIGZvbGxvd2luZyBsaXN0IHNob3dzICdTVUNDRVNTJy4g
KE90aGVyd2lzZSwgdGhpcyB0ZXN0IGRvZXMgbm90IHN0b3AgZm9yZXZlci4pIFRvIHRlc3QgbWFu
dWFsbHksIHBhc3RlIG1pc3NwZWxsZWQgd29yZHMgdG8gdGhlICAmbHQ7dGV4dGFyZWEmZ3QgZWxl
bWVudCBhbmQgc2VlIHRoZXkgYXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLjwvcD4KKzx0ZXh0YXJl
YSBpZD0idGVzdCIgY29scz0iODAiIHJvd3M9IjEwIj5mb28gYmFyIGJhejwvdGV4dGFyZWE+Cis8
dWwgaWQ9ImNvbnNvbGUiPjwvdWw+Cis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVuY3Rpb24gbG9nKHN0cikgeworICAgdmFyIGxpID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnbGknKTsKKyAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHN0cikpOworICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpOworICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7Cit9CisKK2Z1bmN0
aW9uIGxvZ1Jlc3VsdChyZXN1bHQpIHsKKyAgICBpZiAocmVzdWx0KQorICAgICAgICBsb2coJ1NV
Q0NFU1MnKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygnRkFJTEVEJyk7Cit9CisKK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisKKyAgICBpZiAoIXRleHRJbnB1dENvbnRyb2xsZXIuaXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZAorICAgICAgICB8fCAhdGV4dElucHV0Q29udHJvbGxlci5pc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkpIHsKKyAgICAgICAgLy8gV2UganVzdCBv
dXRwdXQgdGhlIGV4cGVjdGVkIHJlc3VsdHMgYW5kIGV4aXQgZm9yIHBsYXRmb3JtcyB0aGF0IGRv
ZXMKKyAgICAgICAgLy8gbm90IHN1cHBvcnQgYXN5bmNocm9ub3VzIHNwZWxsLWNoZWNraW5nLgor
ICAgICAgICBsb2coJ1NVQ0NFU1MnKTsKKyAgICAgICAgbG9nKCdTVUNDRVNTJyk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgLy8gQ29weSB0aGUgb3JpZ2luYWwgdGV4dCBhbmQgcGFzdGUgaXQuCisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0IikuZm9jdXMoKTsKKyAgICAgICAg
ZXhlY1NlbGVjdEFsbENvbW1hbmQoKTsKKyAgICAgICAgZXhlY0NvcHlDb21tYW5kKCk7CisgICAg
ICAgIGV4ZWNQYXN0ZUNvbW1hbmQoKTsKKworICAgICAgICAvLyBMb29wIHdoaWxlIHRoZSBmaXJz
dCB3b3JkICdmb28nIGlzIG1hcmtlZCBhcyBtaXNzcGVsbGVkLgorICAgICAgICB3aGlsZSAoIXRl
eHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMCwgMykpOworCisgICAgICAgIC8v
IENoZWNrIGlmICdmb28nIGFuZCAnYmF6JyBhcmUgbWFya2VkIGFzIG1pc3NwZWxsZWQuCisgICAg
ICAgIGxvZ1Jlc3VsdCh0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAsIDMp
KTsKKyAgICAgICAgbG9nUmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJr
ZXIoOCwgMykpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66859</attachid>
            <date>2010-09-08 02:15:30 -0700</date>
            <delta_ts>2010-09-08 04:33:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40092-20100908181528.patch</filename>
            <type>text/plain</type>
            <size>53360</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlN2QxOWEwOThhZjc2NjQyOGEzZjkxNTk4ZGEzNWU5N2MwZmFhYjVlLi4wYTgyNmM0
ZmQ2ZWFkZGFkYWNkZTc1NThmYTg1ZjMwYzYzMWNkZTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTA4ICBab2x0YW4g
SGVyY3plZyAgPHpoZXJjemVnQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGly
ayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNmE2MjBjNDZkYTE5OTAyMGY4ZjcyMWFlMjhjYjdkNzlhZGExODc1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10
ZXh0LTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIHdlIGNhbiBj
aGVjayB0aGUgc3BlbGxpbmcgb2YgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQuIElmIHRo
aXMgdGVzdCBzdWNjZWVkcywgdGhlIGZvbGxvd2luZyBsaXN0IHNob3dzICdTVUNDRVNTJy4gKE90
aGVyd2lzZSwgdGhpcyB0ZXN0IGRvZXMgbm90IHN0b3AgZm9yZXZlci4pIFRvIHRlc3QgbWFudWFs
bHksIHBhc3RlIG1pc3NwZWxsZWQgd29yZHMgdG8gdGhlIDx0ZXh0YXJlYT4gZWxlbWVudCBhbmQg
c2VlIHRoZXkgYXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLgorCisKK1NVQ0NFU1MKK1NVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0
ZWQtdGV4dC0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVj
ay1wYXN0ZWQtdGV4dC0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGY4NTg1NzRhOTg1N2VmMzY0Y2I4
MjA1Mzc3Y2EyYWM1NTViNDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCkBAIC0wLDAgKzEsNTAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJK
YXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKzx0aXRsZT5FZGl0
aW5nIFRlc3Q8L3RpdGxlPiAKKzwvaGVhZD4gCis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgd2UgY2Fu
IGNoZWNrIHRoZSBzcGVsbGluZyBvZiBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4gSWYg
dGhpcyB0ZXN0IHN1Y2NlZWRzLCB0aGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgJ1NVQ0NFU1MnLiAo
T3RoZXJ3aXNlLCB0aGlzIHRlc3QgZG9lcyBub3Qgc3RvcCBmb3JldmVyLikgVG8gdGVzdCBtYW51
YWxseSwgcGFzdGUgbWlzc3BlbGxlZCB3b3JkcyB0byB0aGUgICZsdDt0ZXh0YXJlYSZndCBlbGVt
ZW50IGFuZCBzZWUgdGhleSBhcmUgbWFya2VkIGFzIG1pc3NwZWxsZWQuPC9wPgorPHRleHRhcmVh
IGlkPSJ0ZXN0IiBjb2xzPSI4MCIgcm93cz0iMTAiPmZvbyBiYXIgYmF6PC90ZXh0YXJlYT4KKzx1
bCBpZD0iY29uc29sZSI+PC91bD4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBsb2coc3RyKSB7CisgICB2YXIgbGkgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoc3RyKSk7CisgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJyk7CisgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKK30KKworZnVuY3Rp
b24gbG9nUmVzdWx0KHJlc3VsdCkgeworICAgIGlmIChyZXN1bHQpCisgICAgICAgIGxvZygnU1VD
Q0VTUycpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCdGQUlMRUQnKTsKK30KKworZnVuY3Rpb24g
dmVyaWZ5KCkKK3sKKyAgICAvLyBMb29wIHdoaWxlIHRoZSBmaXJzdCB3b3JkICdmb28nIGlzIG1h
cmtlZCBhcyBtaXNzcGVsbGVkLgorICAgIGlmICghdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVs
bGluZ01hcmtlcigwLCAzKSkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KHZlcmlm
eSwgMCk7CisKKyAgICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01h
cmtlcigwLCAzKSk7CisgICAgbG9nUmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxp
bmdNYXJrZXIoOCwgMykpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
K30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisKKyAgICAvLyBDb3B5IHRoZSBvcmlnaW5hbCB0ZXh0IGFuZCBwYXN0ZSBpdC4K
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmZvY3VzKCk7CisgICAgZXhlY1Nl
bGVjdEFsbENvbW1hbmQoKTsKKyAgICBleGVjQ29weUNvbW1hbmQoKTsKKyAgICBleGVjUGFzdGVD
b21tYW5kKCk7CisKKyAgICB2ZXJpZnkoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CmluZGV4IGY5MGFkMjAyNTcxOWZmZjM4M2JiZTI4ZjdiZTM3NmNhZjdjNTdhZTIuLjk3
MGMwNWMyNDViNzQ3YzY2OGI1YjhlZWRhMzE2Y2RlODI5ZTIxNmUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI3NTgs
NiArMjc1OCw5IEBAIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJh
ZGl1c0RvdWJsZTA5Lmh0bWwgPSBJTUFHRQogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctdGV4dGFyZWEuaHRtbCA9IEZBSUwKIEJVR1dLNDE4MzIgOiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sID0gRkFJTAogCisvLyBOZWVkIHRvIGlt
cGxlbWVudCBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkKK0JVR1dLNDE0
MjMgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwgPSBU
SU1FT1VUCisKIC8vIEZsYWt5IHRlc3RzLgogQlVHNDQzNDUgTElOVVggOiBzdmcvem9vbS90ZXh0
L3pvb20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKIEJVRzQ0MzQ2IExJTlVYIDog
c3ZnL3pvb20vcGFnZS96b29tLWhpeGllLW1peGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDlhNWJmYTc5OGZmMGQ5MzUzNjIwNTMwZjNjYTMwMTI4
NDkwMzQ2MWIuLmY4NzczOWM3MDUyOWJhNmRhMzgyMDA5NDdlMWRkZWQ4OTg4MjViZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMDE3LDYgKzEwMTcsNyBAQCBlZGl0aW5nL3NwZWxs
aW5nL2lubGluZV9zcGVsbGluZ19tYXJrZXJzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1hdHRyaWJ1dGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRp
dGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCitlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKIGVkaXRpbmcvc3R5
bGUvNTA2NTkxMC5odG1sCiBlZGl0aW5nL3N0eWxlL2FwcGxlLXN0eWxlLWVkaXRhYmxlLW1peC5o
dG1sCiBlZGl0aW5nL3N0eWxlL2Jsb2NrLXN0eWxlLTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvU2tpcHBlZAppbmRleCBlZDE2ZGNkM2ExMjRjNmNjOGFiOWUwNmYxMDU1
MzFjNGVhZmNmMjg5Li45NDdiNDY2OWQyNDU0YjE5ODcyZTI3NzY1ZTEwZjU1ZmMxZTFkNDAyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTkxLDMgKzkxLDYg
QEAgZmFzdC90ZXh0L2h5cGhlbmF0ZS1sb2NhbGUuaHRtbAogIyBhcyB3ZWxsIGFzIHByZXN1bWFi
bHkgb3RoZXIgbGVvcGFyZCBpbnN0YWxscy4KICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTI3MQogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1zZWVrYWJsZS1z
dGFsbC5odG1sCisKKyMgQXZhaWxhYmxlIDEwLjYgb3IgbGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZAppbmRleCAwNGI4Mzg0MTBmNjBmODNjZGFlYzI0ZGFlZDJmYWVjZGE1MTI1MGY1
Li4xMGRiMTRhMDg5NjA4NGYwOTExMTcyMWVlMmVlZmU4MzViOWQ4ZTc0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZApAQCAtMjA2LDMgKzIwNiw2IEBAIGZhc3QvaGFybmVz
cy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCiAKICMgTG9hZGluZyBmYWlscyBvbiBUaWdlciB3aXRo
IGVycm9yIC0xMDEyIGFmdGVyIGFza2luZyBOU1VSTENvbm5lY3Rpb24gdG8gY29udGludWUgd2l0
aG91dCBjcmVkZW50aWFscy4KIGh0dHAvdGVzdHMvbWlzYy80MDEtYWx0ZXJuYXRpdmUtY29udGVu
dC5waHAKKworIyBBdmFpbGFibGUgb25seSAxMC42IG9yIGxhdGVyCitlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKaW5kZXggNDhmNGFmMGZmNmM0MTU2
MjVkYjllZjBiNmI1ZDIyYjc4NTMyY2YyOC4uMTczMWU3ZTI1M2FlN2I4Y2FlOGRkYzk4MjY3YjBj
ZjExMmEzNWRlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZApAQCAtMjIzLDYg
KzIyMyw3IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1pbi1wcmUuaHRtbAogZWRp
dGluZy9zZWxlY3Rpb24vdXNlci1kcmFnLWVsZW1lbnQtYW5kLXVzZXItc2VsZWN0LW5vbmUuaHRt
bAogZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxhcml0eS5odG1sCiBlZGl0aW5nL3NwZWxs
aW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLWRlbGV0ZVdvcmQu
aHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5o
dG1sCiBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtd29yZC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCAyYzMyYjRjNGU1NDI5ZGI2NmE5YjU2OGVjMTIyMTFlYmNmYzc0MmFl
Li44ODFjMjE3ODdjN2QwOWY3YjYyN2EwZjMxYjdhY2YxY2QyODVkZDJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKQEAgLTIyOTYsNiArMjI5Niw5IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmcuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAog
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiAKKyMgRWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIGlzIG5vdCBpbXBsZW1lbnRlZAorZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCisKICMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gIwogIyBmYWlsaW5nIGVkaXRpbmcvc3R5bGUgdGVzdHMKICMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBiNDNlNTJjNWVlMGE5YmM3
YmU2NzYyNmJlOTdmZDA4Yjk3NjYxNTMxLi4xYTA5NTgzMTAzYzY1NGZhMTY0NWM0Y2EyMTg5OGU3
Zjg3ZGQ2YmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODgzLDYgKzg4Myw5IEBA
IGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwKIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctdGV4dGFyZWEuaHRtbAogCisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVj
ay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorCiAjIEluZGV4ZWREQiBpcyBub3QgeWV0IGVuYWJsZWQu
CiBzdG9yYWdlL2luZGV4ZWRkYgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2N2IxZjk5MWExYzVmYTNhMDBjYjc1ZWMxZTk1OTQ4YWQ2
NWU2M2MuLjZkYzFkZWViYjA2MDhkZThhYTQ2NzI2YzA0NjY0YjRkOWJjM2E0Y2UgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTIgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVj
ayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAtIEludHJvZHVjZWQgU3BlbGxD
aGVja2VyIHRvIGVuY2Fwc3VsYXRlIGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2VyIHN0YXRlOgor
ICAgICAgICAgIHNlcXVlbmNlIGlkLCByZXF1ZXN0aW5nIHRleHQgYW5kIHRhcmdldCBub2RlLgor
ICAgICAgICAgIFRoaXMgaXMgZmlyc3Qgc3RlcCB0byBkZWNvbXBvc2Ugc3BlbGwtY2hlY2sgcmVs
YXRlZCBjb2RlIHRvIHNlcGFyYXRlIGNsYXNzLgorICAgICAgICAtIEFkZGVkIEVkaXRvckNsaWVu
dDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICAgIEVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBvcHRpb25hbGx5IHVzZQor
ICAgICAgICAgIGFzeW5jIHNwZWxsY2hlY2sgQVBJIG9uIHRoZSBwbGF0Zm9ybS4KKyAgICAgICAg
ICB0aGVzZSBBUElzIGFyZSB0b3VjaGVkIGJ5IFNwZWxsQ2hlY2tlci4KKyAgICAgICAgLSBVc2Vk
IFNwZWxsQ2hlY2tlciB0byBjaGVjayBwYXN0ZWQgdGVzdC4KKworICAgICAgICBUZXN0OiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKworICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0KTogVXNlZCBTcGVsbENoZWNrZXIgdG8gY2hlY2sg
Z2l2ZW4gdGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6RWRpdG9yKToKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzcGVsbENoZWNr
ZXIpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjppbml0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmNs
ZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RUZXh0
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzQXZh
aWxhYmxlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNCdXN5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmlzQ2hlY2tlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6IEFuIGFzeW5jIGNoZWNrIGVudHJ5cG9pbnQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKTogQ2FsbGVkIGJhY2sgZnJv
bSB0aGUgY2xpZW50IHRvIG5vdGlmeSB0aGUgcmVzdWx0LgorICAgICAgICAqIGVkaXRpbmcvU3Bl
bGxDaGVja2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3Vs
dDo6U3BlbGxDaGVja2luZ1Jlc3VsdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5o
OgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQpOiBBZGRlZAorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKTogQWRkZWQKKyAgICAgICAgKiBwYWdlL0Vk
aXRvckNsaWVudC5oOgorCiAyMDEwLTA5LTA4ICBab2x0YW4gSGVyY3plZyAgPHpoZXJjemVnQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
MWNhYWE5NTk5OWY0MDhiNDUzOGZlNmQ5MmU2ZWRkMjNjOTc1OGE4ZC4uOTcyYTVhZDc0MzA5NWU1
YmU3YzNkZDdjNzMxNGYzYmM4MDdmMWU3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMjcwLDYgKzEyNzAsOCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwIFwK
IAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmggXAogCVdlYkNvcmUvZWRpdGluZy9TbWFy
dFJlcGxhY2VJQ1UuY3BwIFwKKwlXZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCisJ
V2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRF
bGVtZW50Q29tbWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5k
LmggXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggNWU2YzZiM2M1MTZjMzQ2ZGFmOGI4YzY4NjYxMGIxYTkyMjM1OWQ1ZS4uM2I1ZjYzMTExYWNh
Nzc1MzNhMWNjZWRjMGJmN2M1OTc1MDdkNzk5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00NjEsNiArNDYxLDcgQEAg
X19aTjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU181RnJhbWVFagogX19aTjdX
ZWJDb3JlMjNSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYxMFBh
c3NSZWZQdHJJTlNfMTZEb2N1bWVudEZyYWdtZW50RUVFYmJiYmJOU18xMEVkaXRBY3Rpb25FCiBf
X1pON1dlYkNvcmUyM2NyZWF0ZUZyYWdtZW50RnJvbU5vZGVzRVBOU184RG9jdW1lbnRFUktOM1dU
RjZWZWN0b3JJUE5TXzROb2RlRUxtMEVFRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxp
c3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKK19fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUyNERv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2Vy
MTBNYXJrZXJUeXBlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxNG1h
cmtlcnNGb3JOb2RlRVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTBNYXJr
ZXJUeXBlRQpAQCAtODQyLDYgKzg0Myw3IEBAIF9fWk43V2ViQ29yZTltYWtlUmFuZ2VFUktOU18x
NVZpc2libGVQb3NpdGlvbkVTMl8KIF9fWk43V2ViQ29yZTlwYWdlQ2FjaGVFdgogX19aTjdXZWJD
b3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlZXFFUktOU18xOVJlc291
cmNlUmVxdWVzdEJhc2VFUzJfCitfX1pON1dlYkNvcmUxMlNwZWxsQ2hlY2tlcjhkaWRDaGVja0Vp
UktOM1dURjZWZWN0b3JJTlNfMTlTcGVsbENoZWNraW5nUmVzdWx0RUxtMEVFRQogX19aTkszSlND
OEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxPYmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0
Y3JlYXRlQ0ZTdHJpbmdFdgogX19aTks3V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNGI3NmEyYTU4NTEwMDE4YzUxOTI1NmNiYjdlOTNiOTYxMDg3NDkxNS4uODEyNjM3ZmY1
MTA3MTA4ODllZjJhMzkyOTBkOWY1NGIwMjBlODA3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEzOTYsNiArMTM5Niw4IEBA
CiAgICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2UuaCcsCiAgICAgICAgICAgICAnZWRp
dGluZy9TbWFydFJlcGxhY2VDRi5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBs
YWNlSUNVLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwJywKKyAg
ICAgICAgICAgICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5oJywKICAgICAgICAgICAgICdlZGl0aW5n
L1NwbGl0RWxlbWVudENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxl
bWVudENvbW1hbmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFu
ZC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KaW5kZXggMWFiYWFjMzJjZDMwZDIwMzcxNTFlNjQ1YTZhYmE5NjYwMWE4ODcwZC4uNGU5
Mjk2YmQ0ZTEyYTU4ODUyNWViMWRmZmZlMmFiN2Y3ODczNDc3ZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02MTAsNiArNjEwLDcg
QEAgU09VUkNFUyArPSBcCiAgICAgZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCBcCiAg
ICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU21h
cnRSZXBsYWNlSUNVLmNwcCBcCisgICAgZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKICAgICBl
ZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5v
ZGVDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1l
bnRDb21tYW5kLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBj
OTMxZGRjMmE2YjY2ZGNkMWI0ODhlNzExZWY5YzZkMjdjODMyOGRjLi42NGMwNjMxOWFjNDU2YmYz
YmMzYzRhZTUxYmQ1YmE5OWVhNDlmMTNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTM2NTY5LDYgKzM2NTY5LDYzIEBACiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNw
ZWxsQ2hlY2tlci5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BsaXRFbGVtZW50
Q29tbWFuZC5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMWI5ZWVhMmJkZWE1MTdiZWRk
NGM3NjdkMzg0OTY1Mjg1ZjZkM2M1Li5mYWQ5NjVmZGVkNTNjMzEyMzYzYzA1NzlkY2E2N2YzYzA5
YzUyN2VjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
Mjg1OCw2ICsyODU4LDggQEAKIAkJQTc3OTc5MjgwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VE
YXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi87IH07CiAJCUE3Nzk3
OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpT
SW1hZ2VEYXRhLmggKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9h
cmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4
NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi87IH07CisJCUE3OEZFMTNC
MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNw
ZWxsQ2hlY2tlci5jcHAgKi87IH07CisJCUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzk1NDYzRTBCNUM0QzgwMDA3
QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0g
Ki87IH07CiAJCUE3OTU0NjQzMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDY0MjBCNUM0Q0I0
MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovOyB9OwogCQlBN0FBNjZENjExQzVFRDZBMDAxRDhD
OEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0
b3IuY3BwICovOyB9OwpAQCAtODczMyw2ICs4NzM1LDggQEAKIAkJQTc3OTc5MjQwRDZCOUU2NDAw
Mzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3
OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlbGxDaGVja2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQw
IC8qIFNwZWxsQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IFNwZWxs
Q2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDYzRDBCNUM0Qzgw
MDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRHJhZ0RhdGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3OTU0NjQyMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmFnRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5kaWNhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzOTc3LDYgKzEzOTgxLDggQEAKIAkJ
CQk0QjZGQTZGMzBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmNwcCAqLywKIAkJCQk0
QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi8sCiAJCQkJNEI2RkE2
RjYwQzM5RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCAqLywKKwkJCQlBNzhGRTEz
OTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLywKKwkJCQlBNzhGRTEzQTEy
MzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi8sCiAJCQkJOTMzMDlEQzIwOTlFNjQ5
MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REMzMDk5
RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQzQw
OTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKQEAgLTE5ODcx
LDYgKzE5ODc3LDcgQEAKIAkJCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5w
dXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1MzVCQzk1MTIwMjBDRkYwMDM3RUM0NSAv
KiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NzhGOTIwMTFF
NEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4
dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNjA5OUU2NDkyMDA1NkU1
ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMjkwNyw2ICsyMjkxNCw3IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJBNzAwM0FBQkRB
IC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODVGMDEy
MkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg5ODc4NUY0MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBi
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDExNzI5MmM1MTRkMWUzZGEzMjA0ZjQ3
MDA3OWEzMDRjN2JmYWVjNTUuLjg2MjE0ZTNmZjhiYTg3YTFjMjg4MGE4ZDQ1OGI2YjExNGEyOWQy
NjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdW5k
LmgiCisjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1
ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMzE0LDkgKzMx
NSwxNCBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dChjb25zdCBTdHJpbmcmIHBhc3Rp
bmdUZXh0LCBib29sIHNtYXJ0UmVwbGFjZSkKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0
dXJuOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHRhcmdldC0+ZGlzcGF0Y2hFdmVu
dChUZXh0RXZlbnQ6OmNyZWF0ZUZvclBsYWluVGV4dFBhc3RlKG1fZnJhbWUtPmRvbVdpbmRvdygp
LCBwYXN0aW5nVGV4dCwgc21hcnRSZXBsYWNlKSwgZWMpOworICAgIHRhcmdldC0+ZGlzcGF0Y2hF
dmVudChUZXh0RXZlbnQ6OmNyZWF0ZUZvclBsYWluVGV4dFBhc3RlKG1fZnJhbWUtPmRvbVdpbmRv
dygpLCBwYXN0aW5nVGV4dCwgc21hcnRSZXBsYWNlKSwgZWMpOyAKKworICAgIE5vZGUqIG5vZGVU
b0NoZWNrID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKTsKKyAgICBpZiAobV9z
cGVsbENoZWNrZXItPmlzQXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKG5vZGVUb0NoZWNrKSkKKyAg
ICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zvcihub2RlVG9DaGVjayk7CiB9
CiAKKwogdm9pZCBFZGl0b3I6OnBhc3RlQXNGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IHBhc3RpbmdGcmFnbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0Y2hTdHls
ZSkKIHsKICAgICBOb2RlKiB0YXJnZXQgPSBmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0aW9uKCk7
CkBAIC0xMDUzLDYgKzEwNTksNyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSogZnJhbWUpCiAgICAg
Ly8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3JzIHdhbnQgdGhpcyBi
ZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwgbV9zaG91bGRTdHls
ZVdpdGhDU1MoZmFsc2UpCiAgICAgLCBtX2tpbGxSaW5nKGFkb3B0UHRyKG5ldyBLaWxsUmluZykp
CisgICAgLCBtX3NwZWxsQ2hlY2tlcihuZXcgU3BlbGxDaGVja2VyKGZyYW1lLT5wYWdlKCkgPyBm
cmFtZS0+cGFnZSgpLT5lZGl0b3JDbGllbnQoKSA6IDApKQogICAgICwgbV9jb3JyZWN0aW9uUGFu
ZWxUaW1lcih0aGlzLCAmRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKQogewogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDc4ZTg5YjQ4NWVhOTgyNzM2ZjI3NTg1M2VkYWYwNmYxNDIwY2UyMjIuLjRh
ZTA1MDJkMWI4NDE3Yzc5NDNhODQyOGFiMzg5M2Y1N2Q0YTM1MDEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTQ4
LDYgKzQ4LDcgQEAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEtpbGxSaW5nOwogY2xhc3Mg
UGFzdGVib2FyZDsKIGNsYXNzIFNpbXBsZUZvbnREYXRhOworY2xhc3MgU3BlbGxDaGVja2VyOwog
Y2xhc3MgVGV4dDsKIGNsYXNzIFRleHRFdmVudDsKIApAQCAtMjkzLDYgKzI5NCw3IEBAIHB1Ymxp
YzoKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqKTsKIAog
ICAgIEtpbGxSaW5nKiBraWxsUmluZygpIGNvbnN0IHsgcmV0dXJuIG1fa2lsbFJpbmcuZ2V0KCk7
IH0KKyAgICBTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Bl
bGxDaGVja2VyLmdldCgpOyB9CiAKICAgICBFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IoKSBjb25z
dDsKIApAQCAtMzMwLDYgKzMzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0
TmV3S2lsbFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAg
IE93blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKKyAgICBPd25QdHI8U3BlbGxDaGVja2VyPiBt
X3NwZWxsQ2hlY2tlcjsKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVwbGFjZWRCeUNv
cnJlY3Rpb247CiAgICAgU3RyaW5nIG1fc3RyaW5nVG9CZVJlcGxhY2VkQnlDb3JyZWN0aW9uOwog
ICAgIFRpbWVyPEVkaXRvcj4gbV9jb3JyZWN0aW9uUGFuZWxUaW1lcjsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hl
Y2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQxMjdiNzI5ZTRlNzc1ZGFhN2Q1MmQ0MjNiNWEyNTM3NTMx
ZjVkZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3Bw
CkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTcGVsbENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisj
aW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1l
bnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiUG9zaXRpb25JdGVyYXRvci5oIgor
I2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRWRpdG9yQ2xpZW50KiBj
bGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3JlcXVlc3RTZXF1ZW5jZSgw
KQoreworfQorCitTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIoKQoreworfQorCitib29sIFNw
ZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoaXNBc3lu
Y2hyb25vdXNBdmFpbGFibGVGb3Iobm9kZSkpOworCisgICAgU3RyaW5nIHRleHQ7CisgICAgaWYg
KG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkpCisgICAgICAgIHRleHQgPSBzdGF0aWNf
Y2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSktPnZhbHVlKCk7CisgICAgZWxzZSBpZiAobm9k
ZS0+cmVuZGVyZXIoKS0+aXNUZXh0QXJlYSgpKQorICAgICAgICB0ZXh0ID0gc3RhdGljX2Nhc3Q8
SFRNTFRleHRBcmVhRWxlbWVudCo+KG5vZGUpLT52YWx1ZSgpOworICAgIGVsc2UKKyAgICAgICAg
dGV4dCA9IG5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3ROb2RlID0gbm9kZTsKKyAgICBtX3Jl
cXVlc3RUZXh0ID0gdGV4dDsKKyAgICBtX3JlcXVlc3RTZXF1ZW5jZSsrOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpjbGVhclJlcXVlc3QoKQoreworICAgIG1f
cmVxdWVzdE5vZGUuY2xlYXIoKTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7Cit9CisK
K05vZGUqIFNwZWxsQ2hlY2tlcjo6cmVxdWVzdFRleHROb2RlKCkgY29uc3QKK3sKKyAgICAvLyBS
ZXRyaWV2ZSB0aGUgZmlyc3QgJyN0ZXh0JyBub2RlIHVzZWQgYnkgcmVuZGVyZXJzLiBGb3IgYSA8
dGV4dGFyZWE+CisgICAgLy8gZWxlbWVudCwgYSBzcGVsbGNoZWNrZXIgZGlyZWN0bHkgYWRkcyBz
cGVsbGluZyBtYXJrZXJzIHRvIHRoZSBzaGFkb3cgbm9kZXMKKyAgICAvLyB1c2VkIGJ5IHJlbmRl
cmVycywgaS5lLiBhZGRpbmcgc3BlbGxpbmcgbWFya2VycyB0byBhIERPTSBub2RlIGRvZXMgbm90
CisgICAgLy8gYWRkIG1hcmtlcnMgdG8gdGhlIG5vZGUgdXNlZCBieSBzcGVsbGNoZWNrZXJzLiBU
aGVyZWZvcmUsIHdlIGRpcmVjdGx5CisgICAgLy8gcmV0cmlldmUgdGhlIHNoYWRvdyBub2RlIGZy
b20gdGhlIERPTSBub2RlLgorICAgIE5vZGUqIG5vZGUgPSBtX3JlcXVlc3ROb2RlLmdldCgpOwor
ICAgIGZvciAoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7
IHJlbmRlcmVyOyByZW5kZXJlciA9IHJlbmRlcmVyLT5jaGlsZEF0KDApKSB7CisgICAgICAgIGlm
IChyZW5kZXJlci0+aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPm5vZGUo
KTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0FzeW5j
aHJvbm91c0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVu
dC0+aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworfQorCitib29sIFNwZWxs
Q2hlY2tlcjo6aXNBc3luY2hyb25vdXNBdmFpbGFibGVGb3IoTm9kZSogbm9kZSkgY29uc3QKK3sK
KyAgICByZXR1cm4gaXNDaGVja2VhYmxlKG5vZGUpICYmIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgp
ICYmICFpc0J1c3koKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQnVzeSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcmVxdWVzdE5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2Vy
Ojppc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0Tm9k
ZS5nZXQoKSAmJiBtX3JlcXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVlbmNlID09
IHNlcXVlbmNlOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVja2VhYmxlKE5vZGUqIG5v
ZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKTsKK30KKwor
dm9pZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQoreworICAg
IEFTU0VSVChpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihub2RlKSk7CisKKyAgICBpZiAoIWlu
aXRSZXF1ZXN0KG5vZGUpKQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQtPnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNlcXVlbmNlLCBtX3JlcXVlc3RUZXh0KTsK
K30KKwordm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVj
dG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQoreworICAgIGlmICghaXNWYWxpZChz
ZXF1ZW5jZSkpCisgICAgICAgIHJldHVybjsKKworICAgIE5vZGUqIG5vZGUgPSByZXF1ZXN0VGV4
dE5vZGUoKTsKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgY2xlYXJSZXF1ZXN0KCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnQgc3RhcnRPZmZzZXQgPSAwOworICAgIFBvc2l0
aW9uSXRlcmF0b3Igc3RhcnQgPSBQb3NpdGlvbihub2RlLCAwKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHJlc3VsdHNbaV0u
dHlwZSAhPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50eXBlICE9IERv
Y3VtZW50TWFya2VyOjpHcmFtbWFyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
Ly8gVG8gYXZvaWQgbW92aW5nIHRoZSBwb3NpdGlvbiBiYWNrd2FyZCwgd2UgYXNzdW1lIHRoZSBn
aXZlbiByZXN1bHRzIGFyZSBzb3J0ZWQgd2l0aAorICAgICAgICAvLyBzdGFydE9mZnNldCBhcyB0
aGUgb25lcyByZXR1cm5lZCBieSBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmc6XS4KKyAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3VsdHNbaV0ubG9jYXRpb24p
OworICAgICAgICBmb3IgKDsgc3RhcnRPZmZzZXQgPCByZXN1bHRzW2ldLmxvY2F0aW9uOyArK3N0
YXJ0T2Zmc2V0KQorICAgICAgICAgICAgc3RhcnQuaW5jcmVtZW50KCk7CisKKyAgICAgICAgUG9z
aXRpb25JdGVyYXRvciBlbmQgPSBzdGFydDsKKyAgICAgICAgZm9yIChpbnQgbGVuZ3RoID0gMDsg
bGVuZ3RoIDwgcmVzdWx0c1tpXS5sZW5ndGg7ICsrbGVuZ3RoKQorICAgICAgICAgICAgZW5kLmlu
Y3JlbWVudCgpOworCisgICAgICAgIC8vIFVzZXJzIG9yIEphdmFTY3JpcHQgYXBwbGljYXRpb25z
IG1heSBjaGFuZ2UgdGV4dCB3aGlsZSBhIHNwZWxsLWNoZWNrZXIgY2hlY2tzIGl0cworICAgICAg
ICAvLyBzcGVsbGluZ3MgaW4gdGhlIGJhY2tncm91bmQuIFRvIGF2b2lkIGFkZGluZyBtYXJrZXJz
IHRvIHRoZSB3b3JkcyBtb2RpZmllZCBieSB1c2VycyBvcgorICAgICAgICAvLyBKYXZhU2NyaXB0
IGFwcGxpY2F0aW9ucywgcmV0cmlldmUgdGhlIHdvcmRzIGluIHRoZSBzcGVjaWZpZWQgcmVnaW9u
IGFuZCBjb21wYXJlIHRoZW0gd2l0aAorICAgICAgICAvLyB0aGUgb3JpZ2luYWwgb25lcy4KKyAg
ICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQo
KSwgc3RhcnQsIGVuZCk7CisgICAgICAgIFN0cmluZyBkZXN0aW5hdGlvbiA9IHJhbmdlLT50ZXh0
KCk7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBtX3JlcXVlc3RUZXh0LnN1YnN0cmluZyhyZXN1
bHRzW2ldLmxvY2F0aW9uLCByZXN1bHRzW2ldLmxlbmd0aCk7CisgICAgICAgIGlmIChkZXN0aW5h
dGlvbiA9PSBzb3VyY2UpCisgICAgICAgICAgICBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCkt
PmFkZE1hcmtlcihyYW5nZS5nZXQoKSwgcmVzdWx0c1tpXS50eXBlKTsKKyAgICB9CisKKyAgICBj
bGVhclJlcXVlc3QoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVhNWJlOTZjZDEwYTEzMDZlY2ZiYjgyMTU3NGFjMjI1MTY4
MzhiYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApA
QCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU3BlbGxDaGVja2VyX2gKKyNkZWZp
bmUgU3BlbGxDaGVja2VyX2gKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRWRpdG9yQ2xpZW50OworCitzdHJ1Y3QgU3BlbGxDaGVja2luZ1Jl
c3VsdCB7CisgICAgU3BlbGxDaGVja2luZ1Jlc3VsdCgpCisgICAgICAgIDogdHlwZShEb2N1bWVu
dE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICwgbG9jYXRpb24oMCkKKyAgICAgICAgLCBsZW5n
dGgoMCkKKyAgICB7CisgICAgfQorCisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlw
ZTsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50IGxlbmd0aDsKK307CisKK2NsYXNzIFNwZWxs
Q2hlY2tlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2VyKEVkaXRvckNsaWVu
dCopOworICAgIH5TcGVsbENoZWNrZXIoKTsKKworICAgIGJvb2wgaXNBc3luY2hyb25vdXNFbmFi
bGVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihOb2RlKikg
Y29uc3Q7CisgICAgYm9vbCBpc0J1c3koKSBjb25zdDsKKyAgICBib29sIGlzVmFsaWQoaW50IHNl
cXVlbmNlKSBjb25zdDsKKyAgICBib29sIGlzQ2hlY2tlYWJsZShOb2RlKiBub2RlKSBjb25zdDsK
KyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKik7CisgICAgdm9pZCBkaWRDaGVjayhp
bnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYpOworCitwcml2
YXRlOgorICAgIGJvb2wgaW5pdFJlcXVlc3QoTm9kZSopOworICAgIHZvaWQgY2xlYXJSZXF1ZXN0
KCk7CisgICAgTm9kZSogcmVxdWVzdFRleHROb2RlKCkgY29uc3Q7CisKKyAgICBFZGl0b3JDbGll
bnQqIG1fY2xpZW50OworCisgICAgUmVmUHRyPE5vZGU+IG1fcmVxdWVzdE5vZGU7CisgICAgU3Ry
aW5nIG1fcmVxdWVzdFRleHQ7CisgICAgaW50IG1fcmVxdWVzdFNlcXVlbmNlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlbGxDaGVja2VyX2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgKaW5kZXggZDFlNDA2YzlkOTViMmE2MGVhMDVjZTJkMDIzYWRhYjhiMTI1YjgwNC4u
OTc5NjNhYWIzYjY2NTAzNzQ0YWYyZWU1OWFmODIzZjZiMGMzMWJlNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKQEAgLTQ3NSw4ICs0NzUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkgeyB9Ci0KLQorICAgIHZpcnR1YWwgYm9vbCBpc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBj
b25zdCBTdHJpbmcmKSB7IH0KIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAppbmRleCA0YTE5MmQ3NDFhMTI0MWQ4ZTE4OTc1OGEzYjkxMGE3OGUwNDZhZjk0Li4x
MmI5OTAzMDJhMzA1NmY5ZjJmNzc1ZGQ4MTI4Njc5MGI3MWFkMGRhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5o
CkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgS2V5Ym9hcmRFdmVu
dDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNz
IFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKQEAgLTE5Miw2ICsx
OTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1
dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0g
MDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDkwZGM1MzYyYmRkYTYzZjgxODkxZjQyNDc3Mzkz
YTM0MzIxZGU3MzIuLmM2MTZmOWNlMjVkYzMyYWQ1OGQyYzA5YWVjNDAyOTM2Y2Q2YjZjMjQgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8
bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAg
ICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogc3JjL0VkaXRvckNs
aWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6aXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wNyAgVG9ueSBDaGFu
ZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hl
ci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggYjA1YTU5MjZiZjcx
MTI4NjFjMjUzYTQ2YzIzNGE2ZDViN2UzMzVkNy4uM2Y3MDUzYjY5ZjNlMjY3MGFlYTg0NGZmOGUx
ZTRhNzU5YjBhZDhhNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKQEAg
LTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29u
c3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhlIGZvcm0gYXV0b2ZpbGwgcG9w
dXAgZm9yIHxub2RlfCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50IGFuZAogICAgIC8vIGl0
IGlzIGVtcHR5LiAgVGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3MgdGhlIHVwIG9yIGRvd24g
YXJyb3cgaW4gYQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZs
L0NoYW5nZUxvZwppbmRleCA1NGQ2NGUzMjkzZDZhMWVlMmE4ZjQxYzRjN2E0ZGY1MDRmZDk4MjZi
Li4xNmY2ZTlkMjYzMDM5NzI2YTUyOTUzNjJmYmNiNjdhM2NlZDk2N2YyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hl
Y2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1l
bW50YXRpb25zLgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRF
Zmw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wNiAgUnl1YW4gQ2hvaSAg
PHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXgu
CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
IGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCA5ZjYw
Y2ZiYWRiNDJmMDdmMTM2YmU3ZDRlNzljNDIwOTQ0MzhkMWIyLi40NDVmNmQyNTMwMDEwYjlhYmEz
MDM2NWY2NWU4YTFlODU3Mzk1YTAzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50RWZsLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFdURjo6VmVjdG9yPFN0cmluZz4m
IGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAg
dmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0
ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBkODE2MTRkMzNlZDljNjhhOTllMTRj
ODRiZDViOWY4YzZiNWVjNTk1Li42YWZmMmNlMjg3ODRhMmUxNGMyNmJhODQ4NTVhY2M0ZDFkYzVj
YjI1IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9y
cml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAg
QWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA3ICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4g
TG9wZXouCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRl
eCBmOWZmODJlMDBjNGEzMGY2NjJjMWRhMzNmYjNhNWE5MDExOWQzMDU5Li5mNjg4OGQ1YjUxOTk2
ZTQ2NzkwODYwMzQ2MzM3MTg3NTU4NjcyOGM3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTEzMiw2ICsxMzIsOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3Ry
aW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1
L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggOTg2YjAwZjlkMjNkOWIw
ZWNkNzk0YzRmZjRmZmJlMjU5YzY2Zjg1YS4uZjkwZGJkNTM3NDE2OTczNTQ5M2ExZTBlNjk0MTk2
YzlkMDY2MTdjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJL
aXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIK
KworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
Q2xpZW50SGFpa3U6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToK
KwogMjAxMC0wOC0wNiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+
CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmggYi9XZWJLaXQvaGFp
a3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAppbmRleCA1Y2JlYzI3MjIxM2Nj
NmNlOWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3Y2QxLi40MTM4ZmJlMDEyMjM1Y2NjMTUwNTYyMDYzYWY4
YWNhYzVmMGQ0MzQxIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50SGFpa3UuaApAQCAtMTEwLDYgKzExMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3Rv
cjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1l
dGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikg
e30KIAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDBiYTdkNjAyYjli
MWFhOWQ1MGQzMDliY2E2NjM0Njk2ZjI0ZjlmNzUuLmIzYTNkMzA4ZjFiMzYxYjQyMDgzZWYwMTIx
YmM0ZmNhY2RlYjM1ZTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMDggIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIK
KworICAgICAgICBJbXBsZW1lbnRlZCBhc3luYyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVkaXRv
ckNsaWVudC4KKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3BlbGxD
aGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXQorICAgICAgICB3aGljaCBpcyBhdmFpbGFi
bGUgb25seSBvbiBNYWMgT1MgMTAuNiBvciBsYXRlci4KKyAgICAgICAgCisgICAgICAgIE5vdGUg
dGhhdCBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGludm9r
ZQorICAgICAgICB0aGUgY2FsbGJhY2sgYmxvY2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRocmVh
ZCwgc28gd2UgbmVlZCB0bworICAgICAgICByZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFpbiB0
aHJlYWQgd2hlcmUgV2ViQ29yZSBpcyBydW5uaW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJwb3Nl
LCB3ZSBtYWRlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAgIAor
ICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAx
Lmh0bWwKKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTog
QWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdpdGhT
ZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVzdWx0czpdKTogQWRkZWQuCisgICAgICAgICgtW1dl
YkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAgKFdl
YkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEwLTA5LTA3ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1
bnQuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBm
ZTMzZTA1NDdmOWUzODRhZTRkMDEyZmQyNWUwNmZkNGM4ZjM3ZDE4Li5mYzlhZTQ3OTliZThjN2U1
MjE4ZmRkZDMxYTcxYTM0ODA3MTEyMjI5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8
V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVu
YWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29y
cmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxh
Y2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6
U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVh
bCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0g
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0MWNm
ZjY4MTU3ZGZjNWMzMDY5MTY1MTZhNDA3OGYxZDA0MzJjYWYzLi5mNTUyNTZmNjUwYWFhOTg4YmZj
MTcyNzQxM2M4MWJiNjI4MDQxMTRmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdh
Y3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9T
cGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgpAQCAtODc1LDMgKzg3Niw4MyBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KKworYm9vbCBXZWJFZGl0b3JD
bGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworI2lmIE1BQ19P
U19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JM
T0NLU19BVkFJTEFCTEUKKyAgICAvLyBFbmFibGUgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcg
KGFuZCBncmFtbWFyIGNoZWNraW5nKSBvbmx5IHdoZW4gd2UgY29tcGlsZSB0aGlzIGZpbGUgb24K
KyAgICAvLyBNYWMgT1MgWCAxMC42IGFuZCB3ZSBjYW4gdXNlIEdyYW5kIENlbnRyYWwgRGlzcGF0
Y2ggYmVjYXVzZSB0aGV5IGFyZSByZXF1aXJlZCBieQorICAgIC8vIFtOU1NwZWxsQ2hlY2tlciBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9X
RUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKK0BpbnRl
cmZhY2UgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0Cit7CisgICAgV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiBfc2VuZGVyOworICAgIGludCBfc2VxdWVuY2U7CisgICAgUmV0
YWluUHRyPE5TQXJyYXk+IF9yZXN1bHRzOworfQorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciopc2VuZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czoo
TlNBcnJheSopcmVzdWx0czsKKy0gKHZvaWQpcGVyZm9ybTsKKy0gKFdURjo6VmVjdG9yPFdlYkNv
cmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHM7CitAZW5kCisKK0BpbXBsZW1l
bnRhdGlvbiBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyCistIChpZClpbml0V2l0aFNlbmRl
cjooV2ViQ29yZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSBy
ZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAg
ICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX3NlbmRlciA9IHNlbmRlcjsK
KyAgICBfc2VxdWVuY2UgPSBzZXF1ZW5jZTsKKyAgICBfcmVzdWx0cyA9IHJlc3VsdHM7CisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcGVyZm9ybQoreworICAgIF9zZW5kZXItPmRpZENo
ZWNrKF9zZXF1ZW5jZSwgW3NlbGYgX2NvcmVSZXN1bHRzXSk7Cit9CisKKy0gKFdURjo6VmVjdG9y
PFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHMKK3sKKyAgICBOU0Fy
cmF5KiByZXN1bHRzID0gX3Jlc3VsdHMuZ2V0KCk7CisgICAgV1RGOjpWZWN0b3I8V2ViQ29yZTo6
U3BlbGxDaGVja2luZ1Jlc3VsdD4gY29yZVJlc3VsdHMoW3Jlc3VsdHMgY291bnRdKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgW3Jlc3VsdHMgY291bnRdOyArK2kpIHsKKyAgICAgICAg
TlNUZXh0Q2hlY2tpbmdUeXBlIHR5cGUgPSBbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSByZXN1
bHRUeXBlXTsKKyAgICAgICAgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZykK
KyAgICAgICAgICAgIGNvcmVSZXN1bHRzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxp
bmc7CisgICAgICAgIGVsc2UgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyKQor
ICAgICAgICAgICAgY29yZVJlc3VsdHNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFy
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb3JlUmVzdWx0c1tpXS50eXBlID0gRG9jdW1l
bnRNYXJrZXI6OkFsbE1hcmtlcnM7CisKKyAgICAgICAgTlNSYW5nZSByYW5nZSA9IFtbcmVzdWx0
cyBvYmplY3RBdEluZGV4OmldIHJhbmdlXTsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubG9jYXRp
b24gPSByYW5nZS5sb2NhdGlvbjsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubGVuZ3RoID0gcmFu
Z2UubGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVuZAor
I2VuZGlmCisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcm
IHRleHQpCit7CisjaWYgTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1NfWF9W
RVJTSU9OXzEwXzYgJiYgTlNfQkxPQ0tTX0FWQUlMQUJMRQorICAgIE5TUmFuZ2UgcmFuZ2UgPSBO
U01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICBOU1J1bkxvb3AqIGN1cnJlbnRMb29w
ID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07CisgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFy
ZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFuZ2Ug
dHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzowIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0cywgTlNPcnRob2dy
YXBoeSosIE5TSW50ZWdlcikgeworICAgICAgICAgICAgW2N1cnJlbnRMb29wIHBlcmZvcm1TZWxl
Y3RvcjpAc2VsZWN0b3IocGVyZm9ybSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGFyZ2V0OltbW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2NdIGluaXRXaXRo
U2VuZGVyOnNlbmRlciBzZXF1ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdIGF1dG9yZWxl
YXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDpuaWwgb3JkZXI6
MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0UnVuTG9vcE1vZGVdXTsK
KyAgICAgICAgfV07CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZVByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaApp
bmRleCA5Y2I2MjMyMzJiNGExYzNlNTM1YjMxZjZkNDlkNjc0MWJlZTcxOTJmLi43MDI5YWViOGMy
NjhhZjI5NDdhNzNmOTdiMDM0M2M4ZDU5MjJjNWM2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oCkBAIC0xNDYsNCArMTQ2LDcgQEAgdHlwZWRlZiBlbnVtIHsKIC8vIFJldHVybnMg
d2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUgc3BlY2lmaWVkIHJhbmdl
IG9mIHRoZSBmb2N1c2VkIG5vZGUuCiAtIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpbG9j
YXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwogCisvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMg
YSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0aGUgZm9jdXNlZCBu
b2RlLgorLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGZvciBsYXlvdXQgdGVzdHMuCistIChCT09M
KWhhc1NwZWxsaW5nTWFya2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwogQGVu
ZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggYzQ0ZTUzMmM0NzhiMDQzYmM2M2FiMTU3Mzk1N2NiNjdjZjBjY2YyYi4uZWMzYWZmMjk0
ZjEwZjcwNGJjNDk5ZTc3NmNkZjRjYTdjODY3MDVhNyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0No
YW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAt
MDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBj
aGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50UXQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKToKKwogMjAxMC0wOS0wNiAgRGllZ28gR29uemFsZXogIDxkaWVnb2hjZ0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IDdkOTlkMjIyZDgzNmYxMDdmNmEwM2U2N2E4
MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0NGI3NjdmZTQyOTVjMmIwYmFmMDljNzg1MWMwYmQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMDcsNiAr
MTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikg
e30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDRlMmY3OGMyZmY4OWM0
OWFiZDVjYjk3ZWYwNTY2YjM4NWFhYzMzMy4uMDFmZDNjMGZlZThmM2MwNTg2ZTg4ZTBiMjRkZGUx
NThkM2M5YmNhOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0wOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisg
ICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA3ICBCcmVudCBGdWxnaGFt
ICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVu
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggOGJl
NmRlOTBjMjFmNGUxOWVmYzJmZmZiM2E3YWRlNGNmZDQ4ZWUzMy4uZThiMzdjMmUxYjc3Nzg5ZjRk
YmY2YjNiOGVkMTQxZjA1MmUyOWU1NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCkBAIC0xMTEsNiArMTExLDggQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0
IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZwppbmRleCBlYTEwNmZlMjgxMzQxNmM1MmM5ODViODkzN2VmMTc5NjA2ODMzZjVlLi5mYjQ0MTkx
MzRlNDc3YWZlYjk4YjI4N2Q5NTU1YmEwNmMxMWUwYTY4IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRv
ZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0
aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcpOgorCiAyMDEwLTA4LTMxICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUBwYXJv
Z2EuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdp
bkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApp
bmRleCA5NDNmNTkxNzU2YzdmYmMwYzljMDRkZWI5NjUxNzZkMjVhYjI4MmE5Li40MzE1ZjY5ZDdh
NmVjNDFlYzc2YmVmYmMyMTZmYzQ5ZGQ4YjMwYWU0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysgYi9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAtOTgsNiArOTgsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwg
V1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30K
IAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQv
d3gvQ2hhbmdlTG9nIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCA3NTc5ODFmYjNlYjgwZTU4
ODRiNDI1OTFkOGQ1ZDJlM2FhZjViZTIzLi42Y2Q5MjI3NGZhZTE2NTY3OWRkYjBhOTdkMTU2ZGYx
YTU4MzQ1ZDRlIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93
eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAg
ICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYktpdFN1cHBv
cnQvRWRpdG9yQ2xpZW50V3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojpp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvckNsaWVudFd4OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMDgtMzEgIERh
dmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4
LmggYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCmluZGV4IGJlNWM5
OGFmMjk3ZGUxMGUyZjZlNTY2ODVmMmVmNjA2NmU5ZDJmZWYuLmJiZDFjZGVmYTVhNzA1ODYwOWEz
Yzk3NjExMWRjM2Y1MmY2NTNhNWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xp
ZW50V3guaApAQCAtMTEyLDYgKzExMiw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRN
ZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBj
b25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwZmY5
NjQ4NDkwMTZhYTRhNjg2Y2QyZWMyNDA3Nzk2OGQ1ZTI4YzZjLi4yZDc2MGVmOWFkZDhlNDdjYzVi
MmQ4ZDQyNWQ4MzcwMjgzMTRhN2MyIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA5LTA4ICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDky
CisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oOgorCiAyMDEwLTA5LTA3ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLCBhbm90aGVyIFF0IHJlbGVhc2UgYnVpbGQgZml4IGF0dGVt
cHQuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCmluZGV4IDM1N2M2NmYxZDZjNWM5YWNlNjQ1NGRhOGVhYjdjN2Q0YjQxNDg1
NzAuLjlkZDFhYTBjNmY1ZTBmMDhiNTQ1MzFmOTQ1YjE3ZGI1MWMxNjM3MjggMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisr
KyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CkBAIC00ODAsNiArNDgwLDE3IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBXZWJFZGl0b3JD
bGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJ
R0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9TTk9XX0xFT1BBUkQpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25Q
YW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmlu
ZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopCiB7CmRpZmYgLS1naXQgYS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggYzc1MjFm
NzhmMTI5YTAzMDY5NTZmNGQyYTJkZmUwZDU0YjgwZjg2Zi4uYzEwYjVjNDY5ZWY0NzBlNjI4Nzkz
N2FiYTZkOTU0MmJiOTNlNTJhOSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMxLDYgKzEzMSw5IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwg
VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJ
bnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7CisKICNpZiAh
ZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFS
RCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9p
ZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdC
b3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNj
ZXB0ZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66879</attachid>
            <date>2010-09-08 04:33:44 -0700</date>
            <delta_ts>2010-09-08 18:55:18 -0700</delta_ts>
            <desc>sync up to the latest tree</desc>
            <filename>bug-40092-20100908203342.patch</filename>
            <type>text/plain</type>
            <size>53545</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlN2QxOWEwOThhZjc2NjQyOGEzZjkxNTk4ZGEzNWU5N2MwZmFhYjVlLi4wYTgyNmM0
ZmQ2ZWFkZGFkYWNkZTc1NThmYTg1ZjMwYzYzMWNkZTRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTA4ICBab2x0YW4g
SGVyY3plZyAgPHpoZXJjemVnQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGly
ayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNmE2MjBjNDZkYTE5OTAyMGY4ZjcyMWFlMjhjYjdkNzlhZGExODc1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10
ZXh0LTAwMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIHdlIGNhbiBj
aGVjayB0aGUgc3BlbGxpbmcgb2YgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQuIElmIHRo
aXMgdGVzdCBzdWNjZWVkcywgdGhlIGZvbGxvd2luZyBsaXN0IHNob3dzICdTVUNDRVNTJy4gKE90
aGVyd2lzZSwgdGhpcyB0ZXN0IGRvZXMgbm90IHN0b3AgZm9yZXZlci4pIFRvIHRlc3QgbWFudWFs
bHksIHBhc3RlIG1pc3NwZWxsZWQgd29yZHMgdG8gdGhlIDx0ZXh0YXJlYT4gZWxlbWVudCBhbmQg
c2VlIHRoZXkgYXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLgorCisKK1NVQ0NFU1MKK1NVQ0NFU1MK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0
ZWQtdGV4dC0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVj
ay1wYXN0ZWQtdGV4dC0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGY4NTg1NzRhOTg1N2VmMzY0Y2I4
MjA1Mzc3Y2EyYWM1NTViNDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCkBAIC0wLDAgKzEsNTAg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJK
YXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKzx0aXRsZT5FZGl0
aW5nIFRlc3Q8L3RpdGxlPiAKKzwvaGVhZD4gCis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgd2UgY2Fu
IGNoZWNrIHRoZSBzcGVsbGluZyBvZiBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4gSWYg
dGhpcyB0ZXN0IHN1Y2NlZWRzLCB0aGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgJ1NVQ0NFU1MnLiAo
T3RoZXJ3aXNlLCB0aGlzIHRlc3QgZG9lcyBub3Qgc3RvcCBmb3JldmVyLikgVG8gdGVzdCBtYW51
YWxseSwgcGFzdGUgbWlzc3BlbGxlZCB3b3JkcyB0byB0aGUgICZsdDt0ZXh0YXJlYSZndCBlbGVt
ZW50IGFuZCBzZWUgdGhleSBhcmUgbWFya2VkIGFzIG1pc3NwZWxsZWQuPC9wPgorPHRleHRhcmVh
IGlkPSJ0ZXN0IiBjb2xzPSI4MCIgcm93cz0iMTAiPmZvbyBiYXIgYmF6PC90ZXh0YXJlYT4KKzx1
bCBpZD0iY29uc29sZSI+PC91bD4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBsb2coc3RyKSB7CisgICB2YXIgbGkgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOworICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoc3RyKSk7CisgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJyk7CisgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKK30KKworZnVuY3Rp
b24gbG9nUmVzdWx0KHJlc3VsdCkgeworICAgIGlmIChyZXN1bHQpCisgICAgICAgIGxvZygnU1VD
Q0VTUycpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCdGQUlMRUQnKTsKK30KKworZnVuY3Rpb24g
dmVyaWZ5KCkKK3sKKyAgICAvLyBMb29wIHdoaWxlIHRoZSBmaXJzdCB3b3JkICdmb28nIGlzIG1h
cmtlZCBhcyBtaXNzcGVsbGVkLgorICAgIGlmICghdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVs
bGluZ01hcmtlcigwLCAzKSkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KHZlcmlm
eSwgMCk7CisKKyAgICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01h
cmtlcigwLCAzKSk7CisgICAgbG9nUmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxp
bmdNYXJrZXIoOCwgMykpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
K30KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisKKyAgICAvLyBDb3B5IHRoZSBvcmlnaW5hbCB0ZXh0IGFuZCBwYXN0ZSBpdC4K
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmZvY3VzKCk7CisgICAgZXhlY1Nl
bGVjdEFsbENvbW1hbmQoKTsKKyAgICBleGVjQ29weUNvbW1hbmQoKTsKKyAgICBleGVjUGFzdGVD
b21tYW5kKCk7CisKKyAgICB2ZXJpZnkoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0CmluZGV4IGY5MGFkMjAyNTcxOWZmZjM4M2JiZTI4ZjdiZTM3NmNhZjdjNTdhZTIuLjk3
MGMwNWMyNDViNzQ3YzY2OGI1YjhlZWRhMzE2Y2RlODI5ZTIxNmUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI3NTgs
NiArMjc1OCw5IEBAIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJh
ZGl1c0RvdWJsZTA5Lmh0bWwgPSBJTUFHRQogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctdGV4dGFyZWEuaHRtbCA9IEZBSUwKIEJVR1dLNDE4MzIgOiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sID0gRkFJTAogCisvLyBOZWVkIHRvIGlt
cGxlbWVudCBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkKK0JVR1dLNDE0
MjMgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwgPSBU
SU1FT1VUCisKIC8vIEZsYWt5IHRlc3RzLgogQlVHNDQzNDUgTElOVVggOiBzdmcvem9vbS90ZXh0
L3pvb20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKIEJVRzQ0MzQ2IExJTlVYIDog
c3ZnL3pvb20vcGFnZS96b29tLWhpeGllLW1peGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDlhNWJmYTc5OGZmMGQ5MzUzNjIwNTMwZjNjYTMwMTI4
NDkwMzQ2MWIuLmY4NzczOWM3MDUyOWJhNmRhMzgyMDA5NDdlMWRkZWQ4OTg4MjViZTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0xMDE3LDYgKzEwMTcsNyBAQCBlZGl0aW5nL3NwZWxs
aW5nL2lubGluZV9zcGVsbGluZ19tYXJrZXJzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1hdHRyaWJ1dGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRp
dGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCitlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKIGVkaXRpbmcvc3R5
bGUvNTA2NTkxMC5odG1sCiBlZGl0aW5nL3N0eWxlL2FwcGxlLXN0eWxlLWVkaXRhYmxlLW1peC5o
dG1sCiBlZGl0aW5nL3N0eWxlL2Jsb2NrLXN0eWxlLTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvU2tpcHBlZAppbmRleCBlZDE2ZGNkM2ExMjRjNmNjOGFiOWUwNmYxMDU1
MzFjNGVhZmNmMjg5Li45NDdiNDY2OWQyNDU0YjE5ODcyZTI3NzY1ZTEwZjU1ZmMxZTFkNDAyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTkxLDMgKzkxLDYg
QEAgZmFzdC90ZXh0L2h5cGhlbmF0ZS1sb2NhbGUuaHRtbAogIyBhcyB3ZWxsIGFzIHByZXN1bWFi
bHkgb3RoZXIgbGVvcGFyZCBpbnN0YWxscy4KICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTI3MQogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1zZWVrYWJsZS1z
dGFsbC5odG1sCisKKyMgQXZhaWxhYmxlIDEwLjYgb3IgbGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZAppbmRleCAwNGI4Mzg0MTBmNjBmODNjZGFlYzI0ZGFlZDJmYWVjZGE1MTI1MGY1
Li4xMGRiMTRhMDg5NjA4NGYwOTExMTcyMWVlMmVlZmU4MzViOWQ4ZTc0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZApAQCAtMjA2LDMgKzIwNiw2IEBAIGZhc3QvaGFybmVz
cy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCiAKICMgTG9hZGluZyBmYWlscyBvbiBUaWdlciB3aXRo
IGVycm9yIC0xMDEyIGFmdGVyIGFza2luZyBOU1VSTENvbm5lY3Rpb24gdG8gY29udGludWUgd2l0
aG91dCBjcmVkZW50aWFscy4KIGh0dHAvdGVzdHMvbWlzYy80MDEtYWx0ZXJuYXRpdmUtY29udGVu
dC5waHAKKworIyBBdmFpbGFibGUgb25seSAxMC42IG9yIGxhdGVyCitlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKaW5kZXggNDhmNGFmMGZmNmM0MTU2
MjVkYjllZjBiNmI1ZDIyYjc4NTMyY2YyOC4uMTczMWU3ZTI1M2FlN2I4Y2FlOGRkYzk4MjY3YjBj
ZjExMmEzNWRlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZApAQCAtMjIzLDYg
KzIyMyw3IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1pbi1wcmUuaHRtbAogZWRp
dGluZy9zZWxlY3Rpb24vdXNlci1kcmFnLWVsZW1lbnQtYW5kLXVzZXItc2VsZWN0LW5vbmUuaHRt
bAogZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxhcml0eS5odG1sCiBlZGl0aW5nL3NwZWxs
aW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLWRlbGV0ZVdvcmQu
aHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5o
dG1sCiBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtd29yZC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCAyYzMyYjRjNGU1NDI5ZGI2NmE5YjU2OGVjMTIyMTFlYmNmYzc0MmFl
Li44ODFjMjE3ODdjN2QwOWY3YjYyN2EwZjMxYjdhY2YxY2QyODVkZDJmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKQEAgLTIyOTYsNiArMjI5Niw5IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmcuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAog
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiAKKyMgRWRpdG9yQ2xpZW50
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIGlzIG5vdCBpbXBsZW1lbnRlZAorZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCisKICMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gIwogIyBmYWlsaW5nIGVkaXRpbmcvc3R5bGUgdGVzdHMKICMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBiNDNlNTJjNWVlMGE5YmM3
YmU2NzYyNmJlOTdmZDA4Yjk3NjYxNTMxLi4xYTA5NTgzMTAzYzY1NGZhMTY0NWM0Y2EyMTg5OGU3
Zjg3ZGQ2YmFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtODgzLDYgKzg4Myw5IEBA
IGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwKIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctdGV4dGFyZWEuaHRtbAogCisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVj
ay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorCiAjIEluZGV4ZWREQiBpcyBub3QgeWV0IGVuYWJsZWQu
CiBzdG9yYWdlL2luZGV4ZWRkYgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZhMmM1Zjg0NDdmZjUwOWNmNjhhOWU2N2Y5NDk2ZjczOWJi
ZTY5OGYuLjgxZTBmNTRiNDQ4ZDA2MmNjMmFlMWM1MzQ4ZWY4N2ViNDNkNTM3NGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTIgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVj
ayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAtIEludHJvZHVjZWQgU3BlbGxD
aGVja2VyIHRvIGVuY2Fwc3VsYXRlIGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2VyIHN0YXRlOgor
ICAgICAgICAgIHNlcXVlbmNlIGlkLCByZXF1ZXN0aW5nIHRleHQgYW5kIHRhcmdldCBub2RlLgor
ICAgICAgICAgIFRoaXMgaXMgZmlyc3Qgc3RlcCB0byBkZWNvbXBvc2Ugc3BlbGwtY2hlY2sgcmVs
YXRlZCBjb2RlIHRvIHNlcGFyYXRlIGNsYXNzLgorICAgICAgICAtIEFkZGVkIEVkaXRvckNsaWVu
dDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICAgIEVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBvcHRpb25hbGx5IHVzZQor
ICAgICAgICAgIGFzeW5jIHNwZWxsY2hlY2sgQVBJIG9uIHRoZSBwbGF0Zm9ybS4KKyAgICAgICAg
ICB0aGVzZSBBUElzIGFyZSB0b3VjaGVkIGJ5IFNwZWxsQ2hlY2tlci4KKyAgICAgICAgLSBVc2Vk
IFNwZWxsQ2hlY2tlciB0byBjaGVjayBwYXN0ZWQgdGVzdC4KKworICAgICAgICBUZXN0OiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKworICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0KTogVXNlZCBTcGVsbENoZWNrZXIgdG8gY2hlY2sg
Z2l2ZW4gdGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6RWRpdG9yKToKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzcGVsbENoZWNr
ZXIpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjppbml0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmNs
ZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RUZXh0
Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzQXZh
aWxhYmxlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNCdXN5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmlzQ2hlY2tlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6IEFuIGFzeW5jIGNoZWNrIGVudHJ5cG9pbnQuCisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKTogQ2FsbGVkIGJhY2sgZnJv
bSB0aGUgY2xpZW50IHRvIG5vdGlmeSB0aGUgcmVzdWx0LgorICAgICAgICAqIGVkaXRpbmcvU3Bl
bGxDaGVja2VyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3Vs
dDo6U3BlbGxDaGVja2luZ1Jlc3VsdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5o
OgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQpOiBBZGRlZAorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKTogQWRkZWQKKyAgICAgICAgKiBwYWdlL0Vk
aXRvckNsaWVudC5oOgorCiAyMDEwLTA5LTA4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAw
ZjU3NDEzMjY5YWJjNGQzZmNlOWM4N2FhMTQyNzkwM2ZkNTUzODYwLi5jZmIwZDE5MjNhY2QzOWUx
N2FjYzkwZjQ0NjdhM2RlZmI0NjA4Y2I1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTEyNzAsNiArMTI3MCw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAgXAog
CVdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2UuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0
UmVwbGFjZUlDVS5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKKwlX
ZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdEVs
ZW1lbnRDb21tYW5kLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQu
aCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA1ZTZjNmIzYzUxNmMzNDZkYWY4YjhjNjg2NjEwYjFhOTIyMzU5ZDVlLi4zYjVmNjMxMTFhY2E3
NzUzM2ExY2NlZGMwYmY3YzU5NzUwN2Q3OTljIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTQ2MSw2ICs0NjEsNyBAQCBf
X1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzVGcmFtZUVqCiBfX1pON1dl
YkNvcmUyM1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kQzFFUE5TXzhEb2N1bWVudEVOM1dURjEwUGFz
c1JlZlB0cklOU18xNkRvY3VtZW50RnJhZ21lbnRFRUViYmJiYk5TXzEwRWRpdEFjdGlvbkUKIF9f
Wk43V2ViQ29yZTIzY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXNFUE5TXzhEb2N1bWVudEVSS04zV1RG
NlZlY3RvcklQTlNfNE5vZGVFTG0wRUVFCiBfX1pON1dlYkNvcmUyNEJpbmFyeVByb3BlcnR5TGlz
dFdyaXRlcjE3d3JpdGVQcm9wZXJ0eUxpc3RFdgorX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIxNG1hcmtlcnNGb3JOb2RlRVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTI0RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIx
ME1hcmtlclR5cGVFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFy
a2Vyc0Zvck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIyM3JlbmRlcmVkUmVjdHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtl
clR5cGVFCkBAIC04NDIsNiArODQzLDcgQEAgX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1
VmlzaWJsZVBvc2l0aW9uRVMyXwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNv
cmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmVlcUVSS05TXzE5UmVzb3Vy
Y2VSZXF1ZXN0QmFzZUVTMl8KK19fWk43V2ViQ29yZTEyU3BlbGxDaGVja2VyOGRpZENoZWNrRWlS
S04zV1RGNlZlY3RvcklOU18xOVNwZWxsQ2hlY2tpbmdSZXN1bHRFTG0wRUVFCiBfX1pOSzNKU0M4
QmluZGluZ3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRj
cmVhdGVDRlN0cmluZ0V2CiBfX1pOSzdXZWJDb3JlMTBGbG9hdFBvaW50Y3Y4X05TUG9pbnRFdgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBjNzU5Nzk0NmFkMGQ4OTk3NTEyYjg5ZjEyOGE2YjllZjdlNjIyMGE5Li41NDBhMThhMDQ5
NGRjOTBlYjU3NTNhZmMyYmI3ZDZhYWIyOThhZTM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTM5Niw2ICsxMzk2LDggQEAK
ICAgICAgICAgICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZS5oJywKICAgICAgICAgICAgICdlZGl0
aW5nL1NtYXJ0UmVwbGFjZUNGLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxh
Y2VJQ1UuY3BwJywKKyAgICAgICAgICAgICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAnLAorICAg
ICAgICAgICAgJ2VkaXRpbmcvU3BlbGxDaGVja2VyLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcv
U3BsaXRFbGVtZW50Q29tbWFuZC5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU3BsaXRFbGVt
ZW50Q29tbWFuZC5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5k
LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCBlYTZlOTAxNDVhNzYwNzFhZDYyYmZhMDUyN2RjYTdlODk5MTk4NzBlLi5jMzNi
Yzg1ZTg1ZjExZWRiYjdlZGY2MmFmYmUyNWM1Mjk5NDBhMjY4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTYxMCw2ICs2MTAsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwIFwKICAg
ICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TbWFy
dFJlcGxhY2VJQ1UuY3BwIFwKKyAgICBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgXAogICAgIGVk
aXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU3BsaXRUZXh0Tm9k
ZUNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVu
dENvbW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDA0
N2JkNDcyMjZkYTcwMTZkZWQ4NTI5OGQyOTYyZTE4NTYxYThhYWYuLjkzYjc0YzVmYjVhM2E0ZGU5
NWYyODgxNzEyNzI0OGE0ZTA5YjVjZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtMzY1NjUsNiArMzY1NjUsNjMgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
IAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3Bl
bGxDaGVja2VyLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2lu
MzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZWRpdGluZ1xTcGVsbENoZWNrZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdEVsZW1lbnRD
b21tYW5kLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1MjQzOWViOTdhZDIxZDBkMjE1
MDFhNDVkNWE3ZGZmMTViYTNjOGQuLjcyYWE1NWUwMzQ5YTMyMDQwZjRhOGEzOGVmMGM0MDg5MjAz
YTVmNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
ODYyLDYgKzI4NjIsOCBAQAogCQlBNzc5NzkyODBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURh
dGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3
OTc5MjQwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3OTc5
MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJ
bWFnZURhdGEuaCAqLzsgfTsKIAkJQTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2Fy
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg0
OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLzsgfTsKKwkJQTc4RkUxM0Ix
MjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3Bl
bGxDaGVja2VyLmNwcCAqLzsgfTsKKwkJQTc4RkUxM0MxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxs
Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3OTU0NjNFMEI1QzRDODAwMDdC
NDM4RiAvKiBEcmFnRGF0YU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3OTU0NjNEMEI1QzRDODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAq
LzsgfTsKIAkJQTc5NTQ2NDMwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OTU0NjQyMEI1QzRDQjQw
MDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi87IH07CiAJCUE3QUE2NkQ2MTFDNUVENkEwMDFEOEM4
QyAvKiBSZW5kZXJJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdBQTY2RDQxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRv
ci5jcHAgKi87IH07CkBAIC04NzQxLDYgKzg3NDMsOCBAQAogCQlBNzc5NzkyNDBENkI5RTY0MDAz
ODUxQjkgLyogSlNJbWFnZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNJbWFnZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzc5
NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpcGJvYXJkLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVsbENoZWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4RDAg
LyogU3BlbGxDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRG
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gU3BlbGxD
aGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OTU0NjNEMEI1QzRDODAw
MDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBEcmFnRGF0YU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERyYWdEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdBQTY2RDQxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJJbmRpY2F0b3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM5ODUsNiArMTM5ODksOCBAQAogCQkJ
CTRCNkZBNkYzMEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2UuY3BwICovLAogCQkJCTRC
NkZBNkYyMEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2UuaCAqLywKIAkJCQk0QjZGQTZG
NjBDMzlFNEExMDAwODcwMTEgLyogU21hcnRSZXBsYWNlQ0YuY3BwICovLAorCQkJCUE3OEZFMTM5
MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovLAorCQkJCUE3OEZFMTNBMTIz
NjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLywKIAkJCQk5MzMwOURDMjA5OUU2NDkx
MDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQzMwOTlF
NjQ5MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURDNDA5
OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwICovLApAQCAtMTk4ODIs
NiArMTk4ODgsNyBAQAogCQkJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1
dENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzUzNUJDOTUxMjAyMENGRjAwMzdFQzQ1IC8q
IFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3OEY5MjAxMUU0
RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzMzA5RTEyMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNDA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRUZXh0
Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE2MDk5RTY0OTIwMDU2RTU4
MSAvKiBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmggaW4gSGVhZGVycyAq
LywKQEAgLTIyNDMyLDYgKzIyNDM5LDcgQEAKIAkJCQk2MjZDREUwRTExNDA0MjRDMDAxRTVBNjgg
LyogU3BhdGlhbE5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU3OEY5MEIxMURE
RjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1MzVC
Qzk0MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQTc4RkUxM0IxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxMTA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVt
ZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxMzA5OUU2NDkyMDA1NkU1
ODEgLyogU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlF
MTUwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1h
bmQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDllNDFhNjI0ODdjMjE3M2Q1
MjVlZGQ5NTRjNTc4MTllNTM3YWEwN2QuLmVlZGFhYmIwMDM5MzI2YWNlNzQyODA2ZThhODExZDRl
YmUwNzgxMTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlNvdW5kLmgiCisjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgog
I2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMzE0
LDkgKzMxNSwxNCBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dChjb25zdCBTdHJpbmcm
IHBhc3RpbmdUZXh0LCBib29sIHNtYXJ0UmVwbGFjZSkKICAgICBpZiAoIXRhcmdldCkKICAgICAg
ICAgcmV0dXJuOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHRhcmdldC0+ZGlzcGF0
Y2hFdmVudChUZXh0RXZlbnQ6OmNyZWF0ZUZvclBsYWluVGV4dFBhc3RlKG1fZnJhbWUtPmRvbVdp
bmRvdygpLCBwYXN0aW5nVGV4dCwgc21hcnRSZXBsYWNlKSwgZWMpOworICAgIHRhcmdldC0+ZGlz
cGF0Y2hFdmVudChUZXh0RXZlbnQ6OmNyZWF0ZUZvclBsYWluVGV4dFBhc3RlKG1fZnJhbWUtPmRv
bVdpbmRvdygpLCBwYXN0aW5nVGV4dCwgc21hcnRSZXBsYWNlKSwgZWMpOyAKKworICAgIE5vZGUq
IG5vZGVUb0NoZWNrID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKTsKKyAgICBp
ZiAobV9zcGVsbENoZWNrZXItPmlzQXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKG5vZGVUb0NoZWNr
KSkKKyAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zvcihub2RlVG9DaGVj
ayk7CiB9CiAKKwogdm9pZCBFZGl0b3I6OnBhc3RlQXNGcmFnbWVudChQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IHBhc3RpbmdGcmFnbWVudCwgYm9vbCBzbWFydFJlcGxhY2UsIGJvb2wgbWF0
Y2hTdHlsZSkKIHsKICAgICBOb2RlKiB0YXJnZXQgPSBmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0
aW9uKCk7CkBAIC0xMDUzLDYgKzEwNTksNyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSogZnJhbWUp
CiAgICAgLy8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3JzIHdhbnQg
dGhpcyBiZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwgbV9zaG91
bGRTdHlsZVdpdGhDU1MoZmFsc2UpCiAgICAgLCBtX2tpbGxSaW5nKGFkb3B0UHRyKG5ldyBLaWxs
UmluZykpCisgICAgLCBtX3NwZWxsQ2hlY2tlcihuZXcgU3BlbGxDaGVja2VyKGZyYW1lLT5wYWdl
KCkgPyBmcmFtZS0+cGFnZSgpLT5lZGl0b3JDbGllbnQoKSA6IDApKQogICAgICwgbV9jb3JyZWN0
aW9uUGFuZWxUaW1lcih0aGlzLCAmRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKQog
ewogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCmluZGV4IDc4ZTg5YjQ4NWVhOTgyNzM2ZjI3NTg1M2VkYWYwNmYxNDIwY2Uy
MjIuLjRhZTA1MDJkMWI4NDE3Yzc5NDNhODQyOGFiMzg5M2Y1N2Q0YTM1MDEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgK
QEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEtpbGxSaW5nOwog
Y2xhc3MgUGFzdGVib2FyZDsKIGNsYXNzIFNpbXBsZUZvbnREYXRhOworY2xhc3MgU3BlbGxDaGVj
a2VyOwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRFdmVudDsKIApAQCAtMjkzLDYgKzI5NCw3IEBA
IHB1YmxpYzoKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQq
KTsKIAogICAgIEtpbGxSaW5nKiBraWxsUmluZygpIGNvbnN0IHsgcmV0dXJuIG1fa2lsbFJpbmcu
Z2V0KCk7IH0KKyAgICBTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlcigpIGNvbnN0IHsgcmV0dXJu
IG1fc3BlbGxDaGVja2VyLmdldCgpOyB9CiAKICAgICBFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3Io
KSBjb25zdDsKIApAQCAtMzMwLDYgKzMzMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3Vs
ZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NT
OwogICAgIE93blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKKyAgICBPd25QdHI8U3BlbGxDaGVj
a2VyPiBtX3NwZWxsQ2hlY2tlcjsKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVwbGFj
ZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5nIG1fc3RyaW5nVG9CZVJlcGxhY2VkQnlDb3JyZWN0
aW9uOwogICAgIFRpbWVyPEVkaXRvcj4gbV9jb3JyZWN0aW9uUGFuZWxUaW1lcjsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQxMjdiNzI5ZTRlNzc1ZGFhN2Q1MmQ0MjNiNWEy
NTM3NTMxZjVkZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50
LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0QXJl
YUVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiUG9zaXRpb25JdGVyYXRv
ci5oIgorI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRWRpdG9yQ2xp
ZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3JlcXVlc3RTZXF1
ZW5jZSgwKQoreworfQorCitTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIoKQoreworfQorCiti
b29sIFNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQo
aXNBc3luY2hyb25vdXNBdmFpbGFibGVGb3Iobm9kZSkpOworCisgICAgU3RyaW5nIHRleHQ7Cisg
ICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dEZpZWxkKCkpCisgICAgICAgIHRleHQgPSBz
dGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSktPnZhbHVlKCk7CisgICAgZWxzZSBp
ZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0QXJlYSgpKQorICAgICAgICB0ZXh0ID0gc3RhdGlj
X2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KG5vZGUpLT52YWx1ZSgpOworICAgIGVsc2UKKyAg
ICAgICAgdGV4dCA9IG5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3ROb2RlID0gbm9kZTsKKyAg
ICBtX3JlcXVlc3RUZXh0ID0gdGV4dDsKKyAgICBtX3JlcXVlc3RTZXF1ZW5jZSsrOworCisgICAg
cmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpjbGVhclJlcXVlc3QoKQorewor
ICAgIG1fcmVxdWVzdE5vZGUuY2xlYXIoKTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7
Cit9CisKK05vZGUqIFNwZWxsQ2hlY2tlcjo6cmVxdWVzdFRleHROb2RlKCkgY29uc3QKK3sKKyAg
ICAvLyBSZXRyaWV2ZSB0aGUgZmlyc3QgJyN0ZXh0JyBub2RlIHVzZWQgYnkgcmVuZGVyZXJzLiBG
b3IgYSA8dGV4dGFyZWE+CisgICAgLy8gZWxlbWVudCwgYSBzcGVsbGNoZWNrZXIgZGlyZWN0bHkg
YWRkcyBzcGVsbGluZyBtYXJrZXJzIHRvIHRoZSBzaGFkb3cgbm9kZXMKKyAgICAvLyB1c2VkIGJ5
IHJlbmRlcmVycywgaS5lLiBhZGRpbmcgc3BlbGxpbmcgbWFya2VycyB0byBhIERPTSBub2RlIGRv
ZXMgbm90CisgICAgLy8gYWRkIG1hcmtlcnMgdG8gdGhlIG5vZGUgdXNlZCBieSBzcGVsbGNoZWNr
ZXJzLiBUaGVyZWZvcmUsIHdlIGRpcmVjdGx5CisgICAgLy8gcmV0cmlldmUgdGhlIHNoYWRvdyBu
b2RlIGZyb20gdGhlIERPTSBub2RlLgorICAgIE5vZGUqIG5vZGUgPSBtX3JlcXVlc3ROb2RlLmdl
dCgpOworICAgIGZvciAoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUtPnJlbmRl
cmVyKCk7IHJlbmRlcmVyOyByZW5kZXJlciA9IHJlbmRlcmVyLT5jaGlsZEF0KDApKSB7CisgICAg
ICAgIGlmIChyZW5kZXJlci0+aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXIt
Pm5vZGUoKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjpp
c0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCAmJiBt
X2NsaWVudC0+aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworfQorCitib29s
IFNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNBdmFpbGFibGVGb3IoTm9kZSogbm9kZSkgY29u
c3QKK3sKKyAgICByZXR1cm4gaXNDaGVja2VhYmxlKG5vZGUpICYmIGlzQXN5bmNocm9ub3VzRW5h
YmxlZCgpICYmICFpc0J1c3koKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQnVzeSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdE5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wgU3BlbGxD
aGVja2VyOjppc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1
ZXN0Tm9kZS5nZXQoKSAmJiBtX3JlcXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVl
bmNlID09IHNlcXVlbmNlOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVja2VhYmxlKE5v
ZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKTsK
K30KKwordm9pZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQor
eworICAgIEFTU0VSVChpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihub2RlKSk7CisKKyAgICBp
ZiAoIWluaXRSZXF1ZXN0KG5vZGUpKQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQtPnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNlcXVlbmNlLCBtX3JlcXVlc3RU
ZXh0KTsKK30KKwordm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29u
c3QgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQoreworICAgIGlmICghaXNW
YWxpZChzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybjsKKworICAgIE5vZGUqIG5vZGUgPSByZXF1
ZXN0VGV4dE5vZGUoKTsKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgY2xlYXJSZXF1ZXN0KCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnQgc3RhcnRPZmZzZXQgPSAwOworICAg
IFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBQb3NpdGlvbihub2RlLCAwKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHJlc3Vs
dHNbaV0udHlwZSAhPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50eXBl
ICE9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgLy8gVG8gYXZvaWQgbW92aW5nIHRoZSBwb3NpdGlvbiBiYWNrd2FyZCwgd2UgYXNzdW1l
IHRoZSBnaXZlbiByZXN1bHRzIGFyZSBzb3J0ZWQgd2l0aAorICAgICAgICAvLyBzdGFydE9mZnNl
dCBhcyB0aGUgb25lcyByZXR1cm5lZCBieSBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmc6XS4KKyAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3VsdHNbaV0ubG9j
YXRpb24pOworICAgICAgICBmb3IgKDsgc3RhcnRPZmZzZXQgPCByZXN1bHRzW2ldLmxvY2F0aW9u
OyArK3N0YXJ0T2Zmc2V0KQorICAgICAgICAgICAgc3RhcnQuaW5jcmVtZW50KCk7CisKKyAgICAg
ICAgUG9zaXRpb25JdGVyYXRvciBlbmQgPSBzdGFydDsKKyAgICAgICAgZm9yIChpbnQgbGVuZ3Ro
ID0gMDsgbGVuZ3RoIDwgcmVzdWx0c1tpXS5sZW5ndGg7ICsrbGVuZ3RoKQorICAgICAgICAgICAg
ZW5kLmluY3JlbWVudCgpOworCisgICAgICAgIC8vIFVzZXJzIG9yIEphdmFTY3JpcHQgYXBwbGlj
YXRpb25zIG1heSBjaGFuZ2UgdGV4dCB3aGlsZSBhIHNwZWxsLWNoZWNrZXIgY2hlY2tzIGl0cwor
ICAgICAgICAvLyBzcGVsbGluZ3MgaW4gdGhlIGJhY2tncm91bmQuIFRvIGF2b2lkIGFkZGluZyBt
YXJrZXJzIHRvIHRoZSB3b3JkcyBtb2RpZmllZCBieSB1c2VycyBvcgorICAgICAgICAvLyBKYXZh
U2NyaXB0IGFwcGxpY2F0aW9ucywgcmV0cmlldmUgdGhlIHdvcmRzIGluIHRoZSBzcGVjaWZpZWQg
cmVnaW9uIGFuZCBjb21wYXJlIHRoZW0gd2l0aAorICAgICAgICAvLyB0aGUgb3JpZ2luYWwgb25l
cy4KKyAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9j
dW1lbnQoKSwgc3RhcnQsIGVuZCk7CisgICAgICAgIFN0cmluZyBkZXN0aW5hdGlvbiA9IHJhbmdl
LT50ZXh0KCk7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBtX3JlcXVlc3RUZXh0LnN1YnN0cmlu
ZyhyZXN1bHRzW2ldLmxvY2F0aW9uLCByZXN1bHRzW2ldLmxlbmd0aCk7CisgICAgICAgIGlmIChk
ZXN0aW5hdGlvbiA9PSBzb3VyY2UpCisgICAgICAgICAgICBub2RlLT5kb2N1bWVudCgpLT5tYXJr
ZXJzKCktPmFkZE1hcmtlcihyYW5nZS5nZXQoKSwgcmVzdWx0c1tpXS50eXBlKTsKKyAgICB9CisK
KyAgICBjbGVhclJlcXVlc3QoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9XZWJDb3JlL2VkaXRpbmcv
U3BlbGxDaGVja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVhNWJlOTZjZDEwYTEzMDZlY2ZiYjgyMTU3NGFj
MjI1MTY4MzhiYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU3BlbGxDaGVja2VyX2gK
KyNkZWZpbmUgU3BlbGxDaGVja2VyX2gKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWRpdG9yQ2xpZW50OworCitzdHJ1Y3QgU3BlbGxDaGVj
a2luZ1Jlc3VsdCB7CisgICAgU3BlbGxDaGVja2luZ1Jlc3VsdCgpCisgICAgICAgIDogdHlwZShE
b2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICwgbG9jYXRpb24oMCkKKyAgICAgICAg
LCBsZW5ndGgoMCkKKyAgICB7CisgICAgfQorCisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5
cGUgdHlwZTsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50IGxlbmd0aDsKK307CisKK2NsYXNz
IFNwZWxsQ2hlY2tlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2VyKEVkaXRv
ckNsaWVudCopOworICAgIH5TcGVsbENoZWNrZXIoKTsKKworICAgIGJvb2wgaXNBc3luY2hyb25v
dXNFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihO
b2RlKikgY29uc3Q7CisgICAgYm9vbCBpc0J1c3koKSBjb25zdDsKKyAgICBib29sIGlzVmFsaWQo
aW50IHNlcXVlbmNlKSBjb25zdDsKKyAgICBib29sIGlzQ2hlY2tlYWJsZShOb2RlKiBub2RlKSBj
b25zdDsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKik7CisgICAgdm9pZCBkaWRD
aGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYpOwor
Citwcml2YXRlOgorICAgIGJvb2wgaW5pdFJlcXVlc3QoTm9kZSopOworICAgIHZvaWQgY2xlYXJS
ZXF1ZXN0KCk7CisgICAgTm9kZSogcmVxdWVzdFRleHROb2RlKCkgY29uc3Q7CisKKyAgICBFZGl0
b3JDbGllbnQqIG1fY2xpZW50OworCisgICAgUmVmUHRyPE5vZGU+IG1fcmVxdWVzdE5vZGU7Cisg
ICAgU3RyaW5nIG1fcmVxdWVzdFRleHQ7CisgICAgaW50IG1fcmVxdWVzdFNlcXVlbmNlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlbGxDaGVja2VyX2gKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKaW5kZXggZDFlNDA2YzlkOTViMmE2MGVhMDVjZTJkMDIzYWRhYjhiMTI1
YjgwNC4uOTc5NjNhYWIzYjY2NTAzNzQ0YWYyZWU1OWFmODIzZjZiMGMzMWJlNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKQEAgLTQ3NSw4ICs0NzUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkgeyB9Ci0KLQorICAgIHZpcnR1YWwgYm9v
bCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBTdHJpbmcmKSB7IH0KIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaAppbmRleCA0YTE5MmQ3NDFhMTI0MWQ4ZTE4OTc1OGEzYjkxMGE3OGUwNDZh
Zjk0Li4xMmI5OTAzMDJhMzA1NmY5ZjJmNzc1ZGQ4MTI4Njc5MGI3MWFkMGRhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oCkBAIC01OSw2ICs1OSw3IEBAIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgS2V5Ym9h
cmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsK
IGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKQEAgLTE5
Miw2ICsxOTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmlu
ZyYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDkwZGM1MzYyYmRkYTYzZjgxODkxZjQy
NDc3MzkzYTM0MzIxZGU3MzIuLmM2MTZmOWNlMjVkYzMyYWQ1OGQyYzA5YWVjNDAyOTM2Y2Q2YjZj
MjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogc3JjL0Vk
aXRvckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6aXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wNyAgVG9u
eSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggYjA1YTU5
MjZiZjcxMTI4NjFjMjUzYTQ2YzIzNGE2ZDViN2UzMzVkNy4uM2Y3MDUzYjY5ZjNlMjY3MGFlYTg0
NGZmOGUxZTRhNzU5YjBhZDhhNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0
b3JDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmgKQEAgLTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhlIGZvcm0gYXV0b2Zp
bGwgcG9wdXAgZm9yIHxub2RlfCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50IGFuZAogICAg
IC8vIGl0IGlzIGVtcHR5LiAgVGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3MgdGhlIHVwIG9y
IGRvd24gYXJyb3cgaW4gYQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCA1NGQ2NGUzMjkzZDZhMWVlMmE4ZjQxYzRjN2E0ZGY1MDRm
ZDk4MjZiLi4xNmY2ZTlkMjYzMDM5NzI2YTUyOTUzNjJmYmNiNjdhM2NlZDk2N2YyIDEwMDY0NAot
LS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNw
ZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBp
bXBsZW1lbW50YXRpb25zLgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JD
bGllbnRFZmw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wNiAgUnl1YW4g
Q2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWls
ZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRl
eCA5ZjYwY2ZiYWRiNDJmMDdmMTM2YmU3ZDRlNzljNDIwOTQ0MzhkMWIyLi40NDVmNmQyNTMwMDEw
YjlhYmEzMDM2NWY2NWU4YTFlODU3Mzk1YTAzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFdURjo6VmVjdG9yPFN0
cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7
CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7
IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAog
cHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBjNzk4YjAyMjg0MzMyZjYw
ZGRlMGQ1ODVhNWY1ZTU0NGZhNWNhYWNlLi5mZDY0ZDFlM2U0NmZjZWYwOGFiNGUzNTg3NjI5ZmZj
NDE3Mjk4MjQyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAg
ICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaAppbmRleCBmOWZmODJlMDBjNGEzMGY2NjJjMWRhMzNmYjNhNWE5MDExOWQzMDU5
Li5mNjg4OGQ1YjUxOTk2ZTQ2NzkwODYwMzQ2MzM3MTg3NTU4NjcyOGM3IDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTEzMiw2ICsxMzIsOCBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXgg
OTg2YjAwZjlkMjNkOWIwZWNkNzk0YzRmZjRmZmJlMjU5YzY2Zjg1YS4uZjkwZGJkNTM3NDE2OTcz
NTQ5M2ExZTBlNjk0MTk2YzlkMDY2MTdjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAt
MDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBj
aGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKToKKwogMjAxMC0wOC0wNiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNs
b3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1
LmggYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAppbmRl
eCA1Y2JlYzI3MjIxM2NjNmNlOWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3Y2QxLi40MTM4ZmJlMDEyMjM1
Y2NjMTUwNTYyMDYzYWY4YWNhYzVmMGQ0MzQxIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaApAQCAtMTEwLDYgKzExMCw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1
dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwg
Y29uc3QgU3RyaW5nJikge30KIAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IDA5YmZkNjkwZTNjM2MyZDQ0OGE5ZWZlYjZkZWEyMzdmYTdlZTIxMWMuLjEwN2NmOTQzZWNl
ZDliOWVhNThjZDRhYjg0ZTkyMjZjM2M1NTEwZTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAt
MDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBj
aGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBhc3luYyBzcGVsbC1jaGVjayBB
UElzIG9uIFdlYkVkaXRvckNsaWVudC4KKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBhcmUg
dXNpbmcgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXQorICAgICAgICB3
aGljaCBpcyBhdmFpbGFibGUgb25seSBvbiBNYWMgT1MgMTAuNiBvciBsYXRlci4KKyAgICAgICAg
CisgICAgICAgIE5vdGUgdGhhdCBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJp
bmddIGNvdWxkIGludm9rZQorICAgICAgICB0aGUgY2FsbGJhY2sgYmxvY2sgb24gb24gb2YgdGhl
aXIgd29ya2VyIHRocmVhZCwgc28gd2UgbmVlZCB0bworICAgICAgICByZXR1cm4gdGhlIHJlc3Vs
dCB0byB0aGUgbWFpbiB0aHJlYWQgd2hlcmUgV2ViQ29yZSBpcyBydW5uaW5nLgorICAgICAgICBG
b3IgdGhhdCBwdXJwb3NlLCB3ZSBtYWRlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgY2xh
c3MuCisgICAgICAgIAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2st
cGFzdGVkLXRleHQtMDAxLmh0bWwKKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNw
b25kZXIgaW5pdFdpdGhTZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVzdWx0czpdKTogQWRkZWQu
CisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEwLTA5LTA4
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVyLXN0YW1w
ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAppbmRleCBmZTMzZTA1NDdmOWUzODRhZTRkMDEyZmQyNWUwNmZkNGM4ZjM3ZDE4Li5m
YzlhZTQ3OTliZThjN2U1MjE4ZmRkZDMxYTcxYTM0ODA3MTEyMjI5IDEwMDY0NAotLS0gYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5n
JiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsK
ICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJp
bmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9y
Kik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0
aW9uQWNjZXB0ZWQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbQppbmRleCA0MWNmZjY4MTU3ZGZjNWMzMDY5MTY1MTZhNDA3OGYxZDA0MzJjYWYzLi5mNTUy
NTZmNjUwYWFhOTg4YmZjMTcyNzQxM2M4MWJiNjI4MDQxMTRmIDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlclR5cGlu
Z0dlc3R1cmVJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMu
aD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgpAQCAtODc1LDMgKzg3
Niw4MyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQog
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KKwor
Ym9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KQoreworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lP
Tl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKKyAgICAvLyBFbmFibGUgYXN5bmNocm9ub3Vz
IHNwZWxsY2hlY2tpbmcgKGFuZCBncmFtbWFyIGNoZWNraW5nKSBvbmx5IHdoZW4gd2UgY29tcGls
ZSB0aGlzIGZpbGUgb24KKyAgICAvLyBNYWMgT1MgWCAxMC42IGFuZCB3ZSBjYW4gdXNlIEdyYW5k
IENlbnRyYWwgRGlzcGF0Y2ggYmVjYXVzZSB0aGV5IGFyZSByZXF1aXJlZCBieQorICAgIC8vIFtO
U1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgIHJldHVybiB0cnVl
OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworI2lmIE1BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19B
VkFJTEFCTEUKK0BpbnRlcmZhY2UgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2Jq
ZWN0Cit7CisgICAgV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBfc2VuZGVyOworICAgIGludCBfc2Vx
dWVuY2U7CisgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9yZXN1bHRzOworfQorLSAoaWQpaW5pdFdp
dGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciopc2VuZGVyIHNlcXVlbmNlOihpbnQpc2Vx
dWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0czsKKy0gKHZvaWQpcGVyZm9ybTsKKy0gKFdU
Rjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHM7CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyCistIChp
ZClpbml0V2l0aFNlbmRlcjooV2ViQ29yZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6
KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX3Nl
bmRlciA9IHNlbmRlcjsKKyAgICBfc2VxdWVuY2UgPSBzZXF1ZW5jZTsKKyAgICBfcmVzdWx0cyA9
IHJlc3VsdHM7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcGVyZm9ybQoreworICAg
IF9zZW5kZXItPmRpZENoZWNrKF9zZXF1ZW5jZSwgW3NlbGYgX2NvcmVSZXN1bHRzXSk7Cit9CisK
Ky0gKFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3Vs
dHMKK3sKKyAgICBOU0FycmF5KiByZXN1bHRzID0gX3Jlc3VsdHMuZ2V0KCk7CisgICAgV1RGOjpW
ZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4gY29yZVJlc3VsdHMoW3Jlc3VsdHMg
Y291bnRdKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgW3Jlc3VsdHMgY291bnRdOyAr
K2kpIHsKKyAgICAgICAgTlNUZXh0Q2hlY2tpbmdUeXBlIHR5cGUgPSBbW3Jlc3VsdHMgb2JqZWN0
QXRJbmRleDppXSByZXN1bHRUeXBlXTsKKyAgICAgICAgaWYgKHR5cGUgJiBOU1RleHRDaGVja2lu
Z1R5cGVTcGVsbGluZykKKyAgICAgICAgICAgIGNvcmVSZXN1bHRzW2ldLnR5cGUgPSBEb2N1bWVu
dE1hcmtlcjo6U3BlbGxpbmc7CisgICAgICAgIGVsc2UgaWYgKHR5cGUgJiBOU1RleHRDaGVja2lu
Z1R5cGVHcmFtbWFyKQorICAgICAgICAgICAgY29yZVJlc3VsdHNbaV0udHlwZSA9IERvY3VtZW50
TWFya2VyOjpHcmFtbWFyOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb3JlUmVzdWx0c1tp
XS50eXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnM7CisKKyAgICAgICAgTlNSYW5nZSBy
YW5nZSA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OmldIHJhbmdlXTsKKyAgICAgICAgY29yZVJl
c3VsdHNbaV0ubG9jYXRpb24gPSByYW5nZS5sb2NhdGlvbjsKKyAgICAgICAgY29yZVJlc3VsdHNb
aV0ubGVuZ3RoID0gcmFuZ2UubGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiBjb3JlUmVzdWx0
czsKK30KKworQGVuZAorI2VuZGlmCisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNl
LCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisjaWYgTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dF
RCA+PSBNQUNfT1NfWF9WRVJTSU9OXzEwXzYgJiYgTlNfQkxPQ0tTX0FWQUlMQUJMRQorICAgIE5T
UmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICBOU1J1bkxv
b3AqIGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07CisgICAgW1tOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRl
eHQgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25z
OjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowIAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciwgTlNBcnJheSogcmVz
dWx0cywgTlNPcnRob2dyYXBoeSosIE5TSW50ZWdlcikgeworICAgICAgICAgICAgW2N1cnJlbnRM
b29wIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybSkgCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGFyZ2V0OltbW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIg
YWxsb2NdIGluaXRXaXRoU2VuZGVyOnNlbmRlciBzZXF1ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJl
c3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1
bWVudDpuaWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0
UnVuTG9vcE1vZGVdXTsKKyAgICAgICAgfV07CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZVByaXZhdGUuaAppbmRleCA5Y2I2MjMyMzJiNGExYzNlNTM1YjMxZjZkNDlkNjc0MWJlZTcx
OTJmLi43MDI5YWViOGMyNjhhZjI5NDdhNzNmOTdiMDM0M2M4ZDU5MjJjNWM2IDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCkBAIC0xNDYsNCArMTQ2LDcgQEAgdHlwZWRlZiBlbnVt
IHsKIC8vIFJldHVybnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUg
c3BlY2lmaWVkIHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCiAtIChCT09MKWhhc1NwZWxsaW5n
TWFya2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwogCisvLyBSZXR1cm5zIHdo
ZXRoZXIgdGhlcmUgaXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBv
ZiB0aGUgZm9jdXNlZCBub2RlLgorLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGZvciBsYXlvdXQg
dGVzdHMuCistIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihp
bnQpbGVuZ3RoOwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggYzQ0ZTUzMmM0NzhiMDQzYmM2M2FiMTU3Mzk1N2NiNjdjZjBj
Y2YyYi4uZWMzYWZmMjk0ZjEwZjcwNGJjNDk5ZTc3NmNkZjRjYTdjODY3MDVhNyAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxl
bWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5o
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OmlzQXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wNiAgRGllZ28gR29uemFsZXogIDxkaWVn
b2hjZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IDdkOTlkMjIyZDgz
NmYxMDdmNmEwM2U2N2E4MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0NGI3NjdmZTQyOTVjMmIw
YmFmMDljNzg1MWMwYmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRR
dC5oCkBAIC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAg
dmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwg
Y29uc3QgU3RyaW5nJikge30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
YWQ1YThlNDdhY2UyNDg0ZjA2NTE1YzhjMjU5Njk0M2FlZmIxNDZlNS4uNjNlOTU4OTY1YTgxYjVk
NDA5NzMzMDFlYThiNjg5YmM5YzhjMWFjNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0w
OCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRp
dG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAg
KFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQXR0ZW1wdGVkIFdp
bmRvdyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaAppbmRleCA4YmU2ZGU5MGMyMWY0ZTE5ZWZjMmZmZmIzYTdhZGU0Y2ZkNDhlZTMzLi5lOGIz
N2MyZTFiNzc3ODlmNGRiZjZiM2I4ZWQxNDFmMDUyZTI5ZTU3IDEwMDY0NAotLS0gYS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMSw2ICsxMTEsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tl
ciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcq
IG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCmluZGV4IGVhMTA2ZmUyODEzNDE2YzUyYzk4NWI4OTM3ZWYxNzk2MDY4
MzNmNWUuLmZiNDQxOTEzNGU0NzdhZmViOThiMjg3ZDk1NTViYTA2YzExZTBhNjggMTAwNjQ0Ci0t
LSBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1
YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMDgtMzEgIFBhdHJpY2sgR2Fuc3RlcmVy
ICA8cGFyb2dhQHBhcm9nYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hk
ZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50V2luQ0UuaCBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5oCmluZGV4IDk0M2Y1OTE3NTZjN2ZiYzBjOWMwNGRlYjk2NTE3NmQyNWFiMjgy
YTkuLjQzMTVmNjlkN2E2ZWM0MWVjNzZiZWZiYzIxNmZjNDlkZDhiMzBhZTQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCisrKyBiL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCkBAIC05OCw2ICs5
OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
V1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mKTsKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRN
ZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RG
OjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAt
LWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDc1
Nzk4MWZiM2ViODBlNTg4NGI0MjU5MWQ4ZDVkMmUzYWFmNWJlMjMuLjZjZDkyMjc0ZmFlMTY1Njc5
ZGRiMGE5N2QxNTZkZjFhNTgzNDVkNGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBN
T1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFz
dGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50V3g6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwog
MjAxMC0wOC0zMSAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
RWRpdG9yQ2xpZW50V3guaCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4
LmgKaW5kZXggYmU1Yzk4YWYyOTdkZTEwZTJmNmU1NjY4NWYyZWY2MDY2ZTlkMmZlZi4uYmJkMWNk
ZWZhNWE3MDU4NjA5YTNjOTc2MTExZGMzZjUyZjY1M2E1YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAorKysgYi9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9FZGl0b3JDbGllbnRXeC5oCkBAIC0xMTIsNiArMTEyLDggQEAgcHVibGljOgogICAgIAog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCBib29s
IGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENo
ZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBQYWdl
KiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDBmZjk2NDg0OTAxNmFhNGE2ODZjZDJlYzI0MDc3OTY4ZDVlMjhjNmMuLjJkNzYw
ZWY5YWRkOGU0N2NjNWIyZDhkNDI1ZDgzNzAyODMxNGE3YzIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAt
MDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBj
aGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMDktMDcgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGFub3RoZXIgUXQgcmVsZWFzZSBi
dWlsZCBmaXggYXR0ZW1wdC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggMzU3YzY2ZjFkNmM1YzlhY2U2NDU0ZGE4
ZWFiN2M3ZDRiNDE0ODU3MC4uOWRkMWFhMGM2ZjVlMGYwOGI1NDUzMWY5NDViMTdkYjUxYzE2Mzcy
OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKQEAgLTQ4MCw2ICs0ODAsMTcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCiti
b29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6
OlN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworCiAjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpz
aG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hP
ZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKikKIHsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAppbmRleCBjNzUyMWY3OGYxMjlhMDMwNjk1NmY0ZDJhMmRmZTBkNTRiODBmODZmLi5jMTBiNWM0
NjllZjQ3MGU2Mjg3OTM3YWJhNmQ5NTQyYmI5M2U1MmE5IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzEsNiArMTMx
LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
V1RGOjpTdHJpbmcmLCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5w
dXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJp
bmcmKTsKKwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAg
ICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3Jl
OjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29s
IGNvcnJlY3Rpb25BY2NlcHRlZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66988</attachid>
            <date>2010-09-08 18:55:25 -0700</date>
            <delta_ts>2010-09-08 20:42:21 -0700</delta_ts>
            <desc>An attempt to fix build on Loopard</desc>
            <filename>bug-40092-20100909105522.patch</filename>
            <type>text/plain</type>
            <size>53501</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZDY0ZTg5ZDZiMmQ4ZDA1NjcxNTA3OGU2Yzg4ZGNhNTllMzc0OWMwLi44ODhlMmE3
ZDBiY2NmNTAzOWRjZDBhZDQ1MGE2MDAzMTY2OTYzZDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTA4ICBGdW1pdG9z
aGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRl
eHQtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2YTYyMGM0NmRh
MTk5MDIwZjhmNzIxYWUyOGNiN2Q3OWFkYTE4NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdHMgd2UgY2FuIGNoZWNrIHRoZSBzcGVsbGlu
ZyBvZiBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4gSWYgdGhpcyB0ZXN0IHN1Y2NlZWRz
LCB0aGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgJ1NVQ0NFU1MnLiAoT3RoZXJ3aXNlLCB0aGlzIHRl
c3QgZG9lcyBub3Qgc3RvcCBmb3JldmVyLikgVG8gdGVzdCBtYW51YWxseSwgcGFzdGUgbWlzc3Bl
bGxlZCB3b3JkcyB0byB0aGUgPHRleHRhcmVhPiBlbGVtZW50IGFuZCBzZWUgdGhleSBhcmUgbWFy
a2VkIGFzIG1pc3NwZWxsZWQuCisKKworU1VDQ0VTUworU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAw
MS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcwZjg1ODU3NGE5ODU3ZWYzNjRjYjgyMDUzNzdjYTJhYzU1NWI0
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9
InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorPHRpdGxlPkVkaXRpbmcgVGVzdDwvdGl0bGU+
IAorPC9oZWFkPiAKKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB3ZSBjYW4gY2hlY2sgdGhlIHNwZWxs
aW5nIG9mIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLiBJZiB0aGlzIHRlc3Qgc3VjY2Vl
ZHMsIHRoZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VTUycuIChPdGhlcndpc2UsIHRoaXMg
dGVzdCBkb2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0IG1hbnVhbGx5LCBwYXN0ZSBtaXNz
cGVsbGVkIHdvcmRzIHRvIHRoZSAgJmx0O3RleHRhcmVhJmd0IGVsZW1lbnQgYW5kIHNlZSB0aGV5
IGFyZSBtYXJrZWQgYXMgbWlzc3BlbGxlZC48L3A+Cis8dGV4dGFyZWEgaWQ9InRlc3QiIGNvbHM9
IjgwIiByb3dzPSIxMCI+Zm9vIGJhciBiYXo8L3RleHRhcmVhPgorPHVsIGlkPSJjb25zb2xlIj48
L3VsPgorPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KK2Z1bmN0aW9uIGxvZyhzdHIpIHsKKyAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2xpJyk7CisgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIp
KTsKKyAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsK
KyAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworfQorCitmdW5jdGlvbiBsb2dSZXN1bHQocmVz
dWx0KSB7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgbG9nKCdTVUNDRVNTJyk7CisgICAgZWxz
ZQorICAgICAgICBsb2coJ0ZBSUxFRCcpOworfQorCitmdW5jdGlvbiB2ZXJpZnkoKQoreworICAg
IC8vIExvb3Agd2hpbGUgdGhlIGZpcnN0IHdvcmQgJ2ZvbycgaXMgbWFya2VkIGFzIG1pc3NwZWxs
ZWQuCisgICAgaWYgKCF0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAsIDMp
KQorICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQodmVyaWZ5LCAwKTsKKworICAgIGxv
Z1Jlc3VsdCh0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAsIDMpKTsKKyAg
ICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcig4LCAzKSk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAg
IC8vIENvcHkgdGhlIG9yaWdpbmFsIHRleHQgYW5kIHBhc3RlIGl0LgorICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXN0IikuZm9jdXMoKTsKKyAgICBleGVjU2VsZWN0QWxsQ29tbWFuZCgp
OworICAgIGV4ZWNDb3B5Q29tbWFuZCgpOworICAgIGV4ZWNQYXN0ZUNvbW1hbmQoKTsKKworICAg
IHZlcmlmeSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNmJk
YjA2YzUzNTJmZTVjNDBlNmM5ZjYwYjg1MDhkNjAyMDMzMTU0OS4uODIzOGMxNzFhOWI5MzYwZjRk
YmM3NDUzMGMwNGU1OWMxYjAwNGY2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjc1NCw2ICsyNzU0LDkgQEAgQlVH
V0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDkuaHRt
bCA9IElNQUdFCiBCVUdXSzQxODMyIDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJl
YS5odG1sID0gRkFJTAogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29u
dGVudGVkaXRhYmxlLmh0bWwgPSBGQUlMCiAKKy8vIE5lZWQgdG8gaW1wbGVtZW50IEVkaXRvckNs
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKQorQlVHV0s0MTQyMyA6IGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbCA9IFRJTUVPVVQKKwogLy8gRmxh
a3kgdGVzdHMuCiBCVUc0NDM0NSBMSU5VWCA6IHN2Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhl
ZC0wMDkueG1sID0gSU1BR0UgUEFTUwogQlVHNDQzNDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pv
b20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKaW5kZXggMDk1MDhhNzA4ODc0ZTZkYTI0NTI0NTBiZWIxNzBjMTY5ZTZmMmNhYi4uZjY5YjY0
NDA4MDc0ZDQ4ODkyOWYwZjEyOGUxYTE5NTc3MDg1NzhhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKQEAgLTEwMTcsNiArMTAxNyw3IEBAIGVkaXRpbmcvc3BlbGxpbmcvaW5saW5lX3NwZWxs
aW5nX21hcmtlcnMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS5o
dG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAogZWRpdGluZy9zdHlsZS81MDY1OTEwLmh0bWwK
IGVkaXRpbmcvc3R5bGUvYXBwbGUtc3R5bGUtZWRpdGFibGUtbWl4Lmh0bWwKIGVkaXRpbmcvc3R5
bGUvYmxvY2stc3R5bGUtMDAxLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1sZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkCmluZGV4IGVkMTZkY2QzYTEyNGM2Y2M4YWI5ZTA2ZjEwNTUzMWM0ZWFmY2YyODkuLjk0
N2I0NjY5ZDI0NTRiMTk4NzJlMjc3NjVlMTBmNTVmYzFlMWQ0MDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZApAQCAtOTEsMyArOTEsNiBAQCBmYXN0L3RleHQvaHlw
aGVuYXRlLWxvY2FsZS5odG1sCiAjIGFzIHdlbGwgYXMgcHJlc3VtYWJseSBvdGhlciBsZW9wYXJk
IGluc3RhbGxzLgogIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1MjcxCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKKworIyBB
dmFpbGFibGUgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
ZC10ZXh0LTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCmluZGV4
IDA0YjgzODQxMGY2MGY4M2NkYWVjMjRkYWVkMmZhZWNkYTUxMjUwZjUuLjEwZGIxNGEwODk2MDg0
ZjA5MTExNzIxZWUyZWVmZTgzNWI5ZDhlNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy10aWdlci9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdl
ci9Ta2lwcGVkCkBAIC0yMDYsMyArMjA2LDYgQEAgZmFzdC9oYXJuZXNzL3Nob3ctbW9kYWwtZGlh
bG9nLmh0bWwKIAogIyBMb2FkaW5nIGZhaWxzIG9uIFRpZ2VyIHdpdGggZXJyb3IgLTEwMTIgYWZ0
ZXIgYXNraW5nIE5TVVJMQ29ubmVjdGlvbiB0byBjb250aW51ZSB3aXRob3V0IGNyZWRlbnRpYWxz
LgogaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50LnBocAorCisjIEF2YWls
YWJsZSBvbmx5IDEwLjYgb3IgbGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0
ZWQtdGV4dC0wMDEuaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvU2tpcHBlZAppbmRleCAxZWNhZGEzZTIyZDcwMWQwYjhjYzE3MjE3NGU0Njg0
MDdhZjE2M2Q0Li5lYjNlYTRmODdmZWU0ZGViNzExMjNhOTIzNDEwMjMwZDZiMGFiMjg2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0yMzMsNiArMjMzLDcgQEAgZWRpdGlu
Zy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWluLXByZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi91
c2VyLWRyYWctZWxlbWVudC1hbmQtdXNlci1zZWxlY3Qtbm9uZS5odG1sCiBlZGl0aW5nL3NlbGVj
dGlvbi93b3JkLWdyYW51bGFyaXR5Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51
LXN1Z2dlc3Rpb25zLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4
dC0wMDEuaHRtbAogZWRpdGluZy91bmRvL3VuZG8tZGVsZXRlV29yZC5odG1sCiBlZGl0aW5nL3Vu
ZG8vdW5kby1zbWFydC1kZWxldGUtcmV2ZXJzZWQtc2VsZWN0aW9uLmh0bWwKIGVkaXRpbmcvdW5k
by91bmRvLXNtYXJ0LWRlbGV0ZS13b3JkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IDcxZmEyYmQxZmZmZGY3NmY1ZmJkYzMwOGU1MTZhYTVmYzdkMTg2MTQuLjllMzVmZThlZTFjY2M0
NTY1MGY5ZjFiMzFkNWZlYjk3NzZkMTc5MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAt
MjI5Niw2ICsyMjk2LDkgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy5odG1sCiBlZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKCkgaXMgbm90IGltcGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjIGZh
aWxpbmcgZWRpdGluZy9zdHlsZSB0ZXN0cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IGI0M2U1MmM1ZWUwYTliYzdiZTY3NjI2YmU5N2ZkMDhi
OTc2NjE1MzEuLjFhMDk1ODMxMDNjNjU0ZmExNjQ1YzRjYTIxODk4ZTdmODdkZDZiYWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04ODMsNiArODgzLDkgQEAgZWRpdGluZy9zcGVsbGlu
Zy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJl
YS5odG1sCiAKKyMgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIGlzIG5v
dCBpbXBsZW1lbnRlZAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAw
MS5odG1sCisKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhl
ZGRiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDZlNjU3ZTY4Yzk1NWU5MmVmY2UzMmE0MzFjYzVlYWFiOGNiZTMwNi4uMDE3M2FiNDFh
YjVhMTJiMTUwYWY0MmVkNjlmZDIyOGNkYzE3ODhiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMC0wOS0w
OCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgorCisgICAgICAgIC0gSW50cm9kdWNlZCBTcGVsbENoZWNrZXIgdG8gZW5jYXBz
dWxhdGUgYXN5bmNocm9ub3VzIHNwZWxsIGNoZWNrZXIgc3RhdGU6CisgICAgICAgICAgc2VxdWVu
Y2UgaWQsIHJlcXVlc3RpbmcgdGV4dCBhbmQgdGFyZ2V0IG5vZGUuCisgICAgICAgICAgVGhpcyBp
cyBmaXJzdCBzdGVwIHRvIGRlY29tcG9zZSBzcGVsbC1jaGVjayByZWxhdGVkIGNvZGUgdG8gc2Vw
YXJhdGUgY2xhc3MuCisgICAgICAgIC0gQWRkZWQgRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kCisgICAgICAgICAgRWRpdG9yQ2xpZW50OjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZygpIHRvIG9wdGlvbmFsbHkgdXNlCisgICAgICAgICAgYXN5bmMg
c3BlbGxjaGVjayBBUEkgb24gdGhlIHBsYXRmb3JtLgorICAgICAgICAgIHRoZXNlIEFQSXMgYXJl
IHRvdWNoZWQgYnkgU3BlbGxDaGVja2VyLgorICAgICAgICAtIFVzZWQgU3BlbGxDaGVja2VyIHRv
IGNoZWNrIHBhc3RlZCB0ZXN0LgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3Rl
QXNQbGFpblRleHQpOiBVc2VkIFNwZWxsQ2hlY2tlciB0byBjaGVjayBnaXZlbiB0ZXh0LgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpFZGl0b3IpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNwZWxsQ2hlY2tlcik6CisgICAgICAgICog
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlcjo6U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
flNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6cmVxdWVzdFRleHROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNBdmFpbGFibGVGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0J1c3kpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlbGxDaGVja2VyOjppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
aXNDaGVja2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6cmVxdWVzdENo
ZWNraW5nRm9yKTogQW4gYXN5bmMgY2hlY2sgZW50cnlwb2ludC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2spOiBDYWxsZWQgYmFjayBmcm9tIHRoZSBjbGllbnQgdG8g
bm90aWZ5IHRoZSByZXN1bHQuCisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5n
UmVzdWx0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOiBBZGRlZAorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisK
IDIwMTAtMDktMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgyOTczNjVmMmRlZThkOTVjM2E0ZGIz
NDIwZWJkNTFjZjJkM2IwNzcuLjMxMDNkZjQwMGIzNjIwNTU3MWQ1NzhmNjMwY2MyYjJkODhhNzUy
NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMTI3MCw2ICsxMjcwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0
UmVwbGFjZS5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2Vi
Q29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlX
ZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcv
U3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGZhNTZjYTIxZjQ0ZDdkZWJhYmY3
ZWU1N2NhNWYwMDlmOGE4MzgyZGEuLjU4MWRhMTMzYWJhNWZkMTkxODZhN2JjYTUwZTk0MTU3MDlj
NjA0MzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtNDYyLDYgKzQ2Miw3IEBAIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbkVQTlNfNUZyYW1lRWoKIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmRDMUVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jdW1lbnRG
cmFnbWVudEVFRWJiYmJiTlNfMTBFZGl0QWN0aW9uRQogX19aTjdXZWJDb3JlMjNjcmVhdGVGcmFn
bWVudEZyb21Ob2Rlc0VQTlNfOERvY3VtZW50RVJLTjNXVEY2VmVjdG9ySVBOU180Tm9kZUVMbTBF
RUUKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0ZVByb3BlcnR5
TGlzdEV2CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFya2Vyc0Zv
ck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIx
M3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKIF9fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVF
CiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zv
ck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKQEAgLTg0Myw2ICs4NDQs
NyBAQCBfX1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBf
X1pON1dlYkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNW
YWx1ZUUKIF9fWk43V2ViQ29yZWVxRVJLTlNfMTlSZXNvdXJjZVJlcXVlc3RCYXNlRVMyXworX19a
TjdXZWJDb3JlMTJTcGVsbENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9ySU5TXzE5U3Bl
bGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEy
Z2xvYmFsT2JqZWN0RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKIF9fWk5L
N1dlYkNvcmUxMEZsb2F0UG9pbnRjdjhfTlNQb2ludEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdlZTdhYjQ5M2RlOWIyNGUz
YjQ3ZWNkOWI2NmI2NWJkMjJiZWM0MzIuLjAxYTVlNjczOWRlMGNhYzhlYjNjNmI4Mjc4MDhhMWE2
ZTNjZjk3NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xMzk2LDYgKzEzOTYsOCBAQAogICAgICAgICAgICAgJ2VkaXRpbmcv
U21hcnRSZXBsYWNlLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlQ0YuY3Bw
JywKICAgICAgICAgICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAnLAorICAgICAgICAg
ICAgJ2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVs
bENoZWNrZXIuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNw
cCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgnLAogICAgICAg
ICAgICAgJ2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU1ZGY2NDRiYzFh
OTMyNzY4ZDAxNzIyZTg4Y2ExMzc4MzJiZWQ1NGIuLjdiNGVhZjg0NmRmNjcyNWUzYjQwOGMwOGM0
ODZjZDQ0YzFmNDc4NzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwpAQCAtNjEwLDYgKzYxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGVk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJp
YnV0ZUNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAorICAg
IGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdEVsZW1lbnRDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXAogICAgIGVk
aXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjU4ODU0OGU5OGM0YTFkMmFmNzZiNjNm
MTQ5NjY2NTk5OTFiMGE0Yi4uODJjYzAxZDJiN2JiNzZjYWQwYmZlMzIyNjFkZWI5ZDQ2MzE3YWYy
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNjU4NSw2ICszNjU4
NSw2MyBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVsbENoZWNrZXIuY3BwIg0KKwkJCQk+
DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwZWxsQ2hlY2tl
ci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIg0KIAkJCQk+DQog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNDZlYmIwOTc2NDk5YzE2MDgyZWRiZmQwMTIyOGNlNWYzMmI5NTQ1Ni4u
MmFiYWEyY2U0MDFlMGNmZjMwNzk2MWM2NGFhODgzYWQ5MjIwNmJiYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4NjIsNiArMjg2Miw4IEBACiAJCUE3
Nzk3OTI4MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNDBENkI5RTY0MDAzODUxQjkg
LyogSlNJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyog
SlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlB
Nzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAv
KiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlBNzhGRTEzQjEyMzY2QjEwMDBBQ0U4RDAgLyogU3Bl
bGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovOyB9Owor
CQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4
RDAgLyogU3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2M0Qw
QjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovOyB9OwogCQlBNzk1NDY0MzBCNUM0
Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNw
cCAqLzsgfTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FBNjZE
NDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLzsgfTsKQEAgLTg3NDQs
NiArODc0Niw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlRGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAv
KiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdl
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAx
RTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzhGRTEz
OTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVsbENoZWNrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdEYXRhTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQz
OEYgLyogRHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RHJhZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FBNjZENDExQzVF
RDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMzk5MSw2ICsxMzk5NSw4IEBACiAJCQkJNEI2RkE2RjMwQzM5RTQ4QzAwMDg3
MDExIC8qIFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJNEI2RkE2RjIwQzM5RTQ4QzAwMDg3MDEx
IC8qIFNtYXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZBNkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBT
bWFydFJlcGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNw
ZWxsQ2hlY2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxs
Q2hlY2tlci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1l
bnRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRF
bGVtZW50Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0MDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxp
dFRleHROb2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0xOTg5Miw2ICsxOTg5OCw3IEBACiAJCQkJNzU3
OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc4RkUxM0MxMjM2NkIxMDAwQUNF
OEQwIC8qIFNwZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTIwOTlFNjQ5
MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250
YWluaW5nRWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI0NDQsNiArMjI0NTEs
NyBAQAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8q
IFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzhGRTEzQjEy
MzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
MzA5RTExMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTEzMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxNTA5OUU2NDkyMDA1NkU1ODEgLyog
U3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKaW5kZXggOWU0MWE2MjQ4N2MyMTczZDUyNWVkZDk1NGM1NzgxOWU1MzdhYTA3
ZC4uZWVkYWFiYjAwMzkzMjZhY2U3NDI4MDZlOGE4MTFkNGViZTA3ODExNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJT
cGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0zMTQsOSArMzE1LDE0IEBAIHZvaWQgRWRp
dG9yOjpwYXN0ZUFzUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgcGFzdGluZ1RleHQsIGJvb2wgc21h
cnRSZXBsYWNlKQogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KFRleHRFdmVudDo6Y3Jl
YXRlRm9yUGxhaW5UZXh0UGFzdGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHBhc3RpbmdUZXh0LCBz
bWFydFJlcGxhY2UpLCBlYyk7CisgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KFRleHRFdmVudDo6
Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHBhc3RpbmdUZXh0
LCBzbWFydFJlcGxhY2UpLCBlYyk7IAorCisgICAgTm9kZSogbm9kZVRvQ2hlY2sgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOworICAgIGlmIChtX3NwZWxsQ2hlY2tlci0+aXNB
c3luY2hyb25vdXNBdmFpbGFibGVGb3Iobm9kZVRvQ2hlY2spKQorICAgICAgICBtX3NwZWxsQ2hl
Y2tlci0+cmVxdWVzdENoZWNraW5nRm9yKG5vZGVUb0NoZWNrKTsKIH0KIAorCiB2b2lkIEVkaXRv
cjo6cGFzdGVBc0ZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcGFzdGluZ0Zy
YWdtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKQogewogICAgIE5vZGUq
IHRhcmdldCA9IGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKTsKQEAgLTEwNTMsNiArMTA1
OSw3IEBAIEVkaXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBi
eSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1h
dGNoZXMgSUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkK
ICAgICAsIG1fa2lsbFJpbmcoYWRvcHRQdHIobmV3IEtpbGxSaW5nKSkKKyAgICAsIG1fc3BlbGxD
aGVja2VyKG5ldyBTcGVsbENoZWNrZXIoZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVk
aXRvckNsaWVudCgpIDogMCkpCiAgICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyKHRoaXMsICZF
ZGl0b3I6OmNvcnJlY3Rpb25QYW5lbFRpbWVyRmlyZWQpCiB7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzhl
ODliNDg1ZWE5ODI3MzZmMjc1ODUzZWRhZjA2ZjE0MjBjZTIyMi4uNGFlMDUwMmQxYjg0MTdjNzk0
M2E4NDI4YWIzODkzZjU3ZDRhMzUwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFz
cyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xh
c3MgU2ltcGxlRm9udERhdGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0OwogY2xh
c3MgVGV4dEV2ZW50OwogCkBAIC0yOTMsNiArMjk0LDcgQEAgcHVibGljOgogICAgIFZpc2libGVT
ZWxlY3Rpb24gc2VsZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJpbmcqIGtp
bGxSaW5nKCkgY29uc3QgeyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNwZWxsQ2hl
Y2tlciogc3BlbGxDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIuZ2V0KCk7
IH0KIAogICAgIEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0zMzAsNiAr
MzMyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVl
bmNlOwogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5n
PiBtX2tpbGxSaW5nOworICAgIE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwog
ICAgIFJlZlB0cjxSYW5nZT4gbV9yYW5nZVRvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsKICAgICBT
dHJpbmcgbV9zdHJpbmdUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgVGltZXI8RWRpdG9y
PiBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ZDEyN2I3MjllNGU3NzVkYWE3ZDUyZDQyM2I1YTI1Mzc1MzFmNWRlCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTAsMCArMSwxNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tl
ci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik5vZGUuaCIKKyNpbmNsdWRlICJQb3NpdGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2Uu
aCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
cGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcihFZGl0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6IG1f
Y2xpZW50KGNsaWVudCkKKyAgICAsIG1fcmVxdWVzdFNlcXVlbmNlKDApCit7Cit9CisKK1NwZWxs
Q2hlY2tlcjo6flNwZWxsQ2hlY2tlcigpCit7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppbml0
UmVxdWVzdChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChpc0FzeW5jaHJvbm91c0F2YWlsYWJs
ZUZvcihub2RlKSk7CisKKyAgICBTdHJpbmcgdGV4dDsKKyAgICBpZiAobm9kZS0+cmVuZGVyZXIo
KS0+aXNUZXh0RmllbGQoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihub2RlKS0+dmFsdWUoKTsKKyAgICBlbHNlIGlmIChub2RlLT5yZW5kZXJlcigpLT5p
c1RleHRBcmVhKCkpCisgICAgICAgIHRleHQgPSBzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVt
ZW50Kj4obm9kZSktPnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0gbm9kZS0+dGV4
dENvbnRlbnQoKTsKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIG1fcmVxdWVzdE5vZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFRleHQgPSB0ZXh0
OworICAgIG1fcmVxdWVzdFNlcXVlbmNlKys7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBTcGVsbENoZWNrZXI6OmNsZWFyUmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0Tm9kZS5jbGVh
cigpOworICAgIG1fcmVxdWVzdFRleHQgPSBTdHJpbmcoKTsKK30KKworTm9kZSogU3BlbGxDaGVj
a2VyOjpyZXF1ZXN0VGV4dE5vZGUoKSBjb25zdAoreworICAgIC8vIFJldHJpZXZlIHRoZSBmaXJz
dCAnI3RleHQnIG5vZGUgdXNlZCBieSByZW5kZXJlcnMuIEZvciBhIDx0ZXh0YXJlYT4KKyAgICAv
LyBlbGVtZW50LCBhIHNwZWxsY2hlY2tlciBkaXJlY3RseSBhZGRzIHNwZWxsaW5nIG1hcmtlcnMg
dG8gdGhlIHNoYWRvdyBub2RlcworICAgIC8vIHVzZWQgYnkgcmVuZGVyZXJzLCBpLmUuIGFkZGlu
ZyBzcGVsbGluZyBtYXJrZXJzIHRvIGEgRE9NIG5vZGUgZG9lcyBub3QKKyAgICAvLyBhZGQgbWFy
a2VycyB0byB0aGUgbm9kZSB1c2VkIGJ5IHNwZWxsY2hlY2tlcnMuIFRoZXJlZm9yZSwgd2UgZGly
ZWN0bHkKKyAgICAvLyByZXRyaWV2ZSB0aGUgc2hhZG93IG5vZGUgZnJvbSB0aGUgRE9NIG5vZGUu
CisgICAgTm9kZSogbm9kZSA9IG1fcmVxdWVzdE5vZGUuZ2V0KCk7CisgICAgZm9yIChjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsgcmVuZGVyZXI7IHJlbmRl
cmVyID0gcmVuZGVyZXItPmNoaWxkQXQoMCkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc1Rl
eHQoKSkKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJlci0+bm9kZSgpOworICAgIH0KKyAgICBy
ZXR1cm4gMDsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5hYmxlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0FzeW5j
aHJvbm91c0F2YWlsYWJsZUZvcihOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBpc0No
ZWNrZWFibGUobm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgpOwor
fQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9y
ZXF1ZXN0Tm9kZS5nZXQoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzVmFsaWQoaW50IHNl
cXVlbmNlKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3ROb2RlLmdldCgpICYmIG1fcmVx
dWVzdFRleHQubGVuZ3RoKCkgJiYgbV9yZXF1ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7Cit9CisK
K2Jvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNrZWFibGUoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxsQ2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGlzQXN5bmNo
cm9ub3VzQXZhaWxhYmxlRm9yKG5vZGUpKTsKKworICAgIGlmICghaW5pdFJlcXVlc3Qobm9kZSkp
CisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
dGhpcywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1fcmVxdWVzdFRleHQpOworfQorCit2b2lkIFNwZWxs
Q2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVja2lu
Z1Jlc3VsdD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFpc1ZhbGlkKHNlcXVlbmNlKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTm9kZSogbm9kZSA9IHJlcXVlc3RUZXh0Tm9kZSgpOworICAgIGlm
ICghbm9kZSkgeworICAgICAgICBjbGVhclJlcXVlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGludCBzdGFydE9mZnNldCA9IDA7CisgICAgUG9zaXRpb25JdGVyYXRvciBzdGFy
dCA9IFBvc2l0aW9uKG5vZGUsIDApOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0
cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IERvY3VtZW50
TWFya2VyOjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6Okdy
YW1tYXIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBUbyBhdm9pZCBtb3Zp
bmcgdGhlIHBvc2l0aW9uIGJhY2t3YXJkLCB3ZSBhc3N1bWUgdGhlIGdpdmVuIHJlc3VsdHMgYXJl
IHNvcnRlZCB3aXRoCisgICAgICAgIC8vIHN0YXJ0T2Zmc2V0IGFzIHRoZSBvbmVzIHJldHVybmVk
IGJ5IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgICAgICBB
U1NFUlQoc3RhcnRPZmZzZXQgPD0gcmVzdWx0c1tpXS5sb2NhdGlvbik7CisgICAgICAgIGZvciAo
OyBzdGFydE9mZnNldCA8IHJlc3VsdHNbaV0ubG9jYXRpb247ICsrc3RhcnRPZmZzZXQpCisgICAg
ICAgICAgICBzdGFydC5pbmNyZW1lbnQoKTsKKworICAgICAgICBQb3NpdGlvbkl0ZXJhdG9yIGVu
ZCA9IHN0YXJ0OworICAgICAgICBmb3IgKGludCBsZW5ndGggPSAwOyBsZW5ndGggPCByZXN1bHRz
W2ldLmxlbmd0aDsgKytsZW5ndGgpCisgICAgICAgICAgICBlbmQuaW5jcmVtZW50KCk7CisKKyAg
ICAgICAgLy8gVXNlcnMgb3IgSmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMgbWF5IGNoYW5nZSB0ZXh0
IHdoaWxlIGEgc3BlbGwtY2hlY2tlciBjaGVja3MgaXRzCisgICAgICAgIC8vIHNwZWxsaW5ncyBp
biB0aGUgYmFja2dyb3VuZC4gVG8gYXZvaWQgYWRkaW5nIG1hcmtlcnMgdG8gdGhlIHdvcmRzIG1v
ZGlmaWVkIGJ5IHVzZXJzIG9yCisgICAgICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCBy
ZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhlIHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUgdGhl
bSB3aXRoCisgICAgICAgIC8vIHRoZSBvcmlnaW5hbCBvbmVzLgorICAgICAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKTsK
KyAgICAgICAgU3RyaW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3Ry
aW5nIHNvdXJjZSA9IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24s
IHJlc3VsdHNbaV0ubGVuZ3RoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkK
KyAgICAgICAgICAgIG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdl
LmdldCgpLCByZXN1bHRzW2ldLnR5cGUpOworICAgIH0KKworICAgIGNsZWFyUmVxdWVzdCgpOwor
fQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGlu
Zy9TcGVsbENoZWNrZXIuaCBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NWE1YmU5NmNkMTBhMTMwNmVjZmJiODIxNTc0YWMyMjUxNjgzOGJiCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBTcGVsbENoZWNrZXJfaAorI2RlZmluZSBTcGVsbENoZWNrZXJf
aAorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBFZGl0b3JDbGllbnQ7CisKK3N0cnVjdCBTcGVsbENoZWNraW5nUmVzdWx0IHsKKyAgICBTcGVs
bENoZWNraW5nUmVzdWx0KCkKKyAgICAgICAgOiB0eXBlKERvY3VtZW50TWFya2VyOjpTcGVsbGlu
ZykKKyAgICAgICAgLCBsb2NhdGlvbigwKQorICAgICAgICAsIGxlbmd0aCgwKQorICAgIHsKKyAg
ICB9CisKKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlOworICAgIGludCBsb2Nh
dGlvbjsKKyAgICBpbnQgbGVuZ3RoOworfTsKKworY2xhc3MgU3BlbGxDaGVja2VyIHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBTcGVsbENoZWNrZXIoRWRpdG9yQ2xpZW50Kik7CisgICAgflNwZWxs
Q2hlY2tlcigpOworCisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsKKyAg
ICBib29sIGlzQXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKE5vZGUqKSBjb25zdDsKKyAgICBib29s
IGlzQnVzeSgpIGNvbnN0OworICAgIGJvb2wgaXNWYWxpZChpbnQgc2VxdWVuY2UpIGNvbnN0Owor
ICAgIGJvb2wgaXNDaGVja2VhYmxlKE5vZGUqIG5vZGUpIGNvbnN0OworICAgIHZvaWQgcmVxdWVz
dENoZWNraW5nRm9yKE5vZGUqKTsKKyAgICB2b2lkIGRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29u
c3QgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBp
bml0UmVxdWVzdChOb2RlKik7CisgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKKyAgICBOb2RlKiBy
ZXF1ZXN0VGV4dE5vZGUoKSBjb25zdDsKKworICAgIEVkaXRvckNsaWVudCogbV9jbGllbnQ7CisK
KyAgICBSZWZQdHI8Tm9kZT4gbV9yZXF1ZXN0Tm9kZTsKKyAgICBTdHJpbmcgbV9yZXF1ZXN0VGV4
dDsKKyAgICBpbnQgbV9yZXF1ZXN0U2VxdWVuY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBTcGVsbENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBk
MWU0MDZjOWQ5NWIyYTYwZWEwNWNlMmQwMjNhZGFiOGIxMjViODA0Li45Nzk2M2FhYjNiNjY1MDM3
NDRhZjJlZTU5YWY4MjNmNmIwYzMxYmU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDc1LDgg
KzQ3NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
dElucHV0TWV0aG9kU3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sKSB7IH0KLQotCisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHsg
fQogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IDRh
MTkyZDc0MWExMjQxZDhlMTg5NzU4YTNiOTEwYTc4ZTA0NmFmOTQuLjEyYjk5MDMwMmEzMDU2Zjlm
MmY3NzVkZDgxMjg2NzkwYjcxYWQwZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTU5LDYgKzU5LDcg
QEAgY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTm9kZTsK
IGNsYXNzIFJhbmdlOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlv
bjsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIApAQCAtMTkyLDYgKzE5Myw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYjVlNjU0ZjFkOTJkZmIwYzVlZTFkY2UwMDM3NTM2MDZhZjIzMjkwYy4uMzc2
ZjM4MzdmZjdkYzFhMGEwMTYwNTJjNGZkNDQwN2QxMzc5MDkxNyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3Bl
bGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGlt
cGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggYjA1YTU5MjZiZjcxMTI4NjFj
MjUzYTQ2YzIzNGE2ZDViN2UzMzVkNy4uM2Y3MDUzYjY5ZjNlMjY3MGFlYTg0NGZmOGUxZTRhNzU5
YjBhZDhhNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKQEAgLTExMCw2
ICsxMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RG
OjpTdHJpbmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhlIGZvcm0gYXV0b2ZpbGwgcG9wdXAgZm9y
IHxub2RlfCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50IGFuZAogICAgIC8vIGl0IGlzIGVt
cHR5LiAgVGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3MgdGhlIHVwIG9yIGRvd24gYXJyb3cg
aW4gYQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwppbmRleCA5NzA5Yzk4NDNlZjA3ODgxYWYxNjdlZWQ4ZTJmYzhiNDg1OGJlMWQxLi5lMTM0
MTMyZDk4Mjg3ZDg4MmUxZTc5NjM3Zjc1Njg0ZTAzYTJhMDQ0IDEwMDY0NAotLS0gYS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9l
cyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRp
b25zLgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wOCAgUnl1YW4gQ2hvaSAgPHJ5dWFu
LmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYg
LS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCA5ZjYwY2ZiYWRi
NDJmMDdmMTM2YmU3ZDRlNzljNDIwOTQ0MzhkMWIyLi40NDVmNmQyNTMwMDEwYjlhYmEzMDM2NWY2
NWU4YTFlODU3Mzk1YTAzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFdURjo6VmVjdG9yPFN0cmluZz4mIGd1ZXNz
ZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVh
bCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAg
ICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cg
Yi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBjNzk4YjAyMjg0MzMyZjYwZGRlMGQ1ODVhNWY1
ZTU0NGZhNWNhYWNlLi5mZDY0ZDFlM2U0NmZjZWYwOGFiNGUzNTg3NjI5ZmZjNDE3Mjk4MjQyIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQg
c3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBNYXJpbyBTYW5jaGV6IFBy
YWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApp
bmRleCBmOWZmODJlMDBjNGEzMGY2NjJjMWRhMzNmYjNhNWE5MDExOWQzMDU5Li5mNjg4OGQ1YjUx
OTk2ZTQ2NzkwODYwMzQ2MzM3MTg3NTU4NjcyOGM3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTEzMiw2ICsxMzIsOCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6
U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hh
aWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggOTg2YjAwZjlkMjNk
OWIwZWNkNzk0YzRmZjRmZmJlMjU5YzY2Zjg1YS4uZjkwZGJkNTM3NDE2OTczNTQ5M2ExZTBlNjk0
MTk2YzlkMDY2MTdjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQg
dGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50SGFpa3U6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KToKKwogMjAxMC0wOC0wNiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5j
b20+CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmggYi9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAppbmRleCA1Y2JlYzI3MjIx
M2NjNmNlOWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3Y2QxLi40MTM4ZmJlMDEyMjM1Y2NjMTUwNTYyMDYz
YWY4YWNhYzVmMGQ0MzQxIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50SGFpa3UuaApAQCAtMTEwLDYgKzExMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5n
Jikge30KIAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDA5YmZkNjkw
ZTNjM2MyZDQ0OGE5ZWZlYjZkZWEyMzdmYTdlZTIxMWMuLjEwN2NmOTQzZWNlZDliOWVhNThjZDRh
Yjg0ZTkyMjZjM2M1NTEwZTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMDggIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQg
dGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTIKKworICAgICAgICBJbXBsZW1lbnRlZCBhc3luYyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVk
aXRvckNsaWVudC4KKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3Bl
bGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXQorICAgICAgICB3aGljaCBpcyBhdmFp
bGFibGUgb25seSBvbiBNYWMgT1MgMTAuNiBvciBsYXRlci4KKyAgICAgICAgCisgICAgICAgIE5v
dGUgdGhhdCBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGlu
dm9rZQorICAgICAgICB0aGUgY2FsbGJhY2sgYmxvY2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRo
cmVhZCwgc28gd2UgbmVlZCB0bworICAgICAgICByZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFp
biB0aHJlYWQgd2hlcmUgV2ViQ29yZSBpcyBydW5uaW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJw
b3NlLCB3ZSBtYWRlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAg
IAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQt
MDAxLmh0bWwKKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdp
dGhTZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVzdWx0czpdKTogQWRkZWQuCisgICAgICAgICgt
W1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAg
KFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEwLTA5LTA4ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRl
eCBmZTMzZTA1NDdmOWUzODRhZTRkMDEyZmQyNWUwNmZkNGM4ZjM3ZDE4Li5mYzlhZTQ3OTliZThj
N2U1MjE4ZmRkZDMxYTcxYTM0ODA3MTEyMjI5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0
b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93
Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJl
cGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdU
Rjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmly
dHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQp
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0
MWNmZjY4MTU3ZGZjNWMzMDY5MTY1MTZhNDA3OGYxZDA0MzJjYWYzLi5mNTUyNTZmNjUwYWFhOTg4
YmZjMTcyNzQxM2M4MWJiNjI4MDQxMTRmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9M
ZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRp
Y2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgpAQCAtODc1LDMgKzg3Niw4MyBAQCB2b2lk
IFdlYkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogdm9pZCBXZWJFZGl0
b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KKworYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworI2lmIE1B
Q19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5T
X0JMT0NLU19BVkFJTEFCTEUKKyAgICAvLyBFbmFibGUgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tp
bmcgKGFuZCBncmFtbWFyIGNoZWNraW5nKSBvbmx5IHdoZW4gd2UgY29tcGlsZSB0aGlzIGZpbGUg
b24KKyAgICAvLyBNYWMgT1MgWCAxMC42IGFuZCB3ZSBjYW4gdXNlIEdyYW5kIENlbnRyYWwgRGlz
cGF0Y2ggYmVjYXVzZSB0aGV5IGFyZSByZXF1aXJlZCBieQorICAgIC8vIFtOU1NwZWxsQ2hlY2tl
ciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworI2lmIE1BQ19PU19YX1ZFUlNJT05fTUFYX0FM
TE9XRUQgPj0gTUFDX09TX1hfVkVSU0lPTl8xMF82ICYmIE5TX0JMT0NLU19BVkFJTEFCTEUKK0Bp
bnRlcmZhY2UgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0Cit7CisgICAg
V2ViQ29yZTo6U3BlbGxDaGVja2VyKiBfc2VuZGVyOworICAgIGludCBfc2VxdWVuY2U7CisgICAg
UmV0YWluUHRyPE5TQXJyYXk+IF9yZXN1bHRzOworfQorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdl
YkNvcmU6OlNwZWxsQ2hlY2tlciopc2VuZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0
czooTlNBcnJheSopcmVzdWx0czsKKy0gKHZvaWQpcGVyZm9ybTsKKy0gKFdURjo6VmVjdG9yPFdl
YkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHM7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyCistIChpZClpbml0V2l0aFNl
bmRlcjooV2ViQ29yZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5j
ZSByZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsK
KyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX3NlbmRlciA9IHNlbmRl
cjsKKyAgICBfc2VxdWVuY2UgPSBzZXF1ZW5jZTsKKyAgICBfcmVzdWx0cyA9IHJlc3VsdHM7Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcGVyZm9ybQoreworICAgIF9zZW5kZXItPmRp
ZENoZWNrKF9zZXF1ZW5jZSwgW3NlbGYgX2NvcmVSZXN1bHRzXSk7Cit9CisKKy0gKFdURjo6VmVj
dG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHMKK3sKKyAgICBO
U0FycmF5KiByZXN1bHRzID0gX3Jlc3VsdHMuZ2V0KCk7CisgICAgV1RGOjpWZWN0b3I8V2ViQ29y
ZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4gY29yZVJlc3VsdHMoW3Jlc3VsdHMgY291bnRdKTsKKwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgW3Jlc3VsdHMgY291bnRdOyArK2kpIHsKKyAgICAg
ICAgTlNUZXh0Q2hlY2tpbmdUeXBlIHR5cGUgPSBbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSBy
ZXN1bHRUeXBlXTsKKyAgICAgICAgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGlu
ZykKKyAgICAgICAgICAgIGNvcmVSZXN1bHRzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtlcjo6U3Bl
bGxpbmc7CisgICAgICAgIGVsc2UgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFy
KQorICAgICAgICAgICAgY29yZVJlc3VsdHNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFt
bWFyOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb3JlUmVzdWx0c1tpXS50eXBlID0gRG9j
dW1lbnRNYXJrZXI6OkFsbE1hcmtlcnM7CisKKyAgICAgICAgTlNSYW5nZSByYW5nZSA9IFtbcmVz
dWx0cyBvYmplY3RBdEluZGV4OmldIHJhbmdlXTsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubG9j
YXRpb24gPSByYW5nZS5sb2NhdGlvbjsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubGVuZ3RoID0g
cmFuZ2UubGVuZ3RoOworICAgIH0KKworICAgIHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVu
ZAorI2VuZGlmCisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJp
bmcmIHRleHQpCit7CisjaWYgTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSBNQUNfT1Nf
WF9WRVJTSU9OXzEwXzYgJiYgTlNfQkxPQ0tTX0FWQUlMQUJMRQorICAgIE5TUmFuZ2UgcmFuZ2Ug
PSBOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICBOU1J1bkxvb3AqIGN1cnJlbnRM
b29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07CisgICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFu
Z2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzowIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0cywgTlNPcnRo
b2dyYXBoeSosIE5TSW50ZWdlcikgeworICAgICAgICAgICAgW2N1cnJlbnRMb29wIHBlcmZvcm1T
ZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGFyZ2V0OltbW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2NdIGluaXRX
aXRoU2VuZGVyOnNlbmRlciBzZXF1ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdIGF1dG9y
ZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDpuaWwgb3Jk
ZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0UnVuTG9vcE1vZGVd
XTsKKyAgICAgICAgfV07CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUu
aAppbmRleCA5Y2I2MjMyMzJiNGExYzNlNTM1YjMxZjZkNDlkNjc0MWJlZTcxOTJmLi43MDI5YWVi
OGMyNjhhZjI5NDdhNzNmOTdiMDM0M2M4ZDU5MjJjNWM2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lUHJpdmF0ZS5oCkBAIC0xNDYsNCArMTQ2LDcgQEAgdHlwZWRlZiBlbnVtIHsKIC8vIFJldHVy
bnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUgc3BlY2lmaWVkIHJh
bmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCiAtIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQp
bG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwogCisvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUg
aXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0aGUgZm9jdXNl
ZCBub2RlLgorLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGZvciBsYXlvdXQgdGVzdHMuCistIChC
T09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwog
QGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VM
b2cKaW5kZXggNmFkNGM2MTNhOGU0MzMzOTk0YjdmZTI0NTNkY2RiNDY0NmIzZTQxMC4uYmE5MmRj
ZDI4YjljYWYxODc3NGFlNmNiMDQyZGI3N2Y1NzAzOWRhMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5v
dCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKwogMjAxMC0wOS0wOCAgUGV0ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IDdkOTlkMjIyZDgzNmYxMDdmNmEwM2U2N2E4
MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0NGI3NjdmZTQyOTVjMmIwYmFmMDljNzg1MWMwYmQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMDcsNiAr
MTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikg
e30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOTFkMGI3ZmJiNGZiZmQ0
MjQwMjg3NTIxYjM5ODdkNzE0NDNlYmM4Ni4uMGJlMzU2MTE4MmEwZTc5NGI2ZmQzOTVmYmY0MjE2
NmE4ODU5ZWRjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0wOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisg
ICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBQZXRlciBLYXN0aW5n
ICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQsIGJ1aWxkIGZp
eC4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDhi
ZTZkZTkwYzIxZjRlMTllZmMyZmZmYjNhN2FkZTRjZmQ0OGVlMzMuLmU4YjM3YzJlMWI3Nzc4OWY0
ZGJmNmIzYjhlZDE0MWYwNTJlMjllNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaApAQCAtMTExLDYgKzExMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25z
dCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKaW5kZXggZWExMDZmZTI4MTM0MTZjNTJjOTg1Yjg5MzdlZjE3OTYwNjgzM2Y1ZS4uZmI0NDE5
MTM0ZTQ3N2FmZWI5OGIyODdkOTU1NWJhMDZjMTFlMGE2OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBk
b2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRh
dGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgor
ICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKwogMjAxMC0wOC0zMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFy
b2dhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
bi4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRX
aW5DRS5oIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgK
aW5kZXggOTQzZjU5MTc1NmM3ZmJjMGM5YzA0ZGViOTY1MTc2ZDI1YWIyODJhOS4uNDMxNWY2OWQ3
YTZlYzQxZWM3NmJlZmJjMjE2ZmM0OWRkOGIzMGFlNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYs
IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5w
dXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9
CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggNzU3OTgxZmIzZWI4MGU1
ODg0YjQyNTkxZDhkNWQyZTNhYWY1YmUyMy4uNmNkOTIyNzRmYWUxNjU2NzlkZGIwYTk3ZDE1NmRm
MWE1ODM0NWQ0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQv
d3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAg
ICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJLaXRTdXBw
b3J0L0VkaXRvckNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRXeDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA4LTMxICBE
YXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBX
ZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRX
eC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAppbmRleCBiZTVj
OThhZjI5N2RlMTBlMmY2ZTU2Njg1ZjJlZjYwNjZlOWQyZmVmLi5iYmQxY2RlZmE1YTcwNTg2MDlh
M2M5NzYxMTFkYzNmNTJmNjUzYTViIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNs
aWVudFd4LmgKQEAgLTExMiw2ICsxMTIsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2
b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwg
Y29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODU5
NDgxYTA3MDcxODQzMDQ1NjM1NzNjZDI5MzIyNTM2ZWM1Mjk5OS4uMGYwOTE2OWMzZGIyYjg0MWE3
M2RlYjU2ZmM5ZWQzZWUzNzA5OWMzNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0wOCAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5
MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaDoKKwogMjAxMC0wOS0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDM1N2M2NmYxZDZj
NWM5YWNlNjQ1NGRhOGVhYjdjN2Q0YjQxNDg1NzAuLjlkZDFhYTBjNmY1ZTBmMDhiNTQ1MzFmOTQ1
YjE3ZGI1MWMxNjM3MjggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00ODAsNiArNDgwLDE3IEBAIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKwog
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiB2b2lkIFdlYkVk
aXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVk
aXRvciopCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggYzc1MjFmNzhmMTI5YTAzMDY5NTZmNGQyYTJkZmUwZDU0Yjgw
Zjg2Zi4uYzEwYjVjNDY5ZWY0NzBlNjI4NzkzN2FiYTZkOTU0MmJiOTNlNTJhOSAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisr
KyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApA
QCAtMTMxLDYgKzEzMSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgVmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNv
bnN0IFdURjo6U3RyaW5nJik7CisKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6
OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0
cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0
aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66994</attachid>
            <date>2010-09-08 20:42:28 -0700</date>
            <delta_ts>2010-09-09 03:39:28 -0700</delta_ts>
            <desc>Another attempt to fix build on Loopard</desc>
            <filename>bug-40092-20100909124226.patch</filename>
            <type>text/plain</type>
            <size>53453</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZDY0ZTg5ZDZiMmQ4ZDA1NjcxNTA3OGU2Yzg4ZGNhNTllMzc0OWMwLi44ODhlMmE3
ZDBiY2NmNTAzOWRjZDBhZDQ1MGE2MDAzMTY2OTYzZDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTA4ICBGdW1pdG9z
aGkgVWthaSAgPHVrYWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRl
eHQtMDAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2YTYyMGM0NmRh
MTk5MDIwZjhmNzIxYWUyOGNiN2Q3OWFkYTE4NzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdHMgd2UgY2FuIGNoZWNrIHRoZSBzcGVsbGlu
ZyBvZiBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4gSWYgdGhpcyB0ZXN0IHN1Y2NlZWRz
LCB0aGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgJ1NVQ0NFU1MnLiAoT3RoZXJ3aXNlLCB0aGlzIHRl
c3QgZG9lcyBub3Qgc3RvcCBmb3JldmVyLikgVG8gdGVzdCBtYW51YWxseSwgcGFzdGUgbWlzc3Bl
bGxlZCB3b3JkcyB0byB0aGUgPHRleHRhcmVhPiBlbGVtZW50IGFuZCBzZWUgdGhleSBhcmUgbWFy
a2VkIGFzIG1pc3NwZWxsZWQuCisKKworU1VDQ0VTUworU1VDQ0VTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAw
MS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcwZjg1ODU3NGE5ODU3ZWYzNjRjYjgyMDUzNzdjYTJhYzU1NWI0
OGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPS4uL2VkaXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9
InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorPHRpdGxlPkVkaXRpbmcgVGVzdDwvdGl0bGU+
IAorPC9oZWFkPiAKKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB3ZSBjYW4gY2hlY2sgdGhlIHNwZWxs
aW5nIG9mIHBhc3RlZCB0ZXh0IGluIHRoZSBiYWNrZ3JvdW5kLiBJZiB0aGlzIHRlc3Qgc3VjY2Vl
ZHMsIHRoZSBmb2xsb3dpbmcgbGlzdCBzaG93cyAnU1VDQ0VTUycuIChPdGhlcndpc2UsIHRoaXMg
dGVzdCBkb2VzIG5vdCBzdG9wIGZvcmV2ZXIuKSBUbyB0ZXN0IG1hbnVhbGx5LCBwYXN0ZSBtaXNz
cGVsbGVkIHdvcmRzIHRvIHRoZSAgJmx0O3RleHRhcmVhJmd0IGVsZW1lbnQgYW5kIHNlZSB0aGV5
IGFyZSBtYXJrZWQgYXMgbWlzc3BlbGxlZC48L3A+Cis8dGV4dGFyZWEgaWQ9InRlc3QiIGNvbHM9
IjgwIiByb3dzPSIxMCI+Zm9vIGJhciBiYXo8L3RleHRhcmVhPgorPHVsIGlkPSJjb25zb2xlIj48
L3VsPgorPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KK2Z1bmN0aW9uIGxvZyhzdHIpIHsKKyAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2xpJyk7CisgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIp
KTsKKyAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsK
KyAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworfQorCitmdW5jdGlvbiBsb2dSZXN1bHQocmVz
dWx0KSB7CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgbG9nKCdTVUNDRVNTJyk7CisgICAgZWxz
ZQorICAgICAgICBsb2coJ0ZBSUxFRCcpOworfQorCitmdW5jdGlvbiB2ZXJpZnkoKQoreworICAg
IC8vIExvb3Agd2hpbGUgdGhlIGZpcnN0IHdvcmQgJ2ZvbycgaXMgbWFya2VkIGFzIG1pc3NwZWxs
ZWQuCisgICAgaWYgKCF0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAsIDMp
KQorICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQodmVyaWZ5LCAwKTsKKworICAgIGxv
Z1Jlc3VsdCh0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDAsIDMpKTsKKyAg
ICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcig4LCAzKSk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAg
IC8vIENvcHkgdGhlIG9yaWdpbmFsIHRleHQgYW5kIHBhc3RlIGl0LgorICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXN0IikuZm9jdXMoKTsKKyAgICBleGVjU2VsZWN0QWxsQ29tbWFuZCgp
OworICAgIGV4ZWNDb3B5Q29tbWFuZCgpOworICAgIGV4ZWNQYXN0ZUNvbW1hbmQoKTsKKworICAg
IHZlcmlmeSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNmJk
YjA2YzUzNTJmZTVjNDBlNmM5ZjYwYjg1MDhkNjAyMDMzMTU0OS4uODIzOGMxNzFhOWI5MzYwZjRk
YmM3NDUzMGMwNGU1OWMxYjAwNGY2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjc1NCw2ICsyNzU0LDkgQEAgQlVH
V0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDkuaHRt
bCA9IElNQUdFCiBCVUdXSzQxODMyIDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJl
YS5odG1sID0gRkFJTAogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29u
dGVudGVkaXRhYmxlLmh0bWwgPSBGQUlMCiAKKy8vIE5lZWQgdG8gaW1wbGVtZW50IEVkaXRvckNs
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKQorQlVHV0s0MTQyMyA6IGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbCA9IFRJTUVPVVQKKwogLy8gRmxh
a3kgdGVzdHMuCiBCVUc0NDM0NSBMSU5VWCA6IHN2Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhl
ZC0wMDkueG1sID0gSU1BR0UgUEFTUwogQlVHNDQzNDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pv
b20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKaW5kZXggMDk1MDhhNzA4ODc0ZTZkYTI0NTI0NTBiZWIxNzBjMTY5ZTZmMmNhYi4uZjY5YjY0
NDA4MDc0ZDQ4ODkyOWYwZjEyOGUxYTE5NTc3MDg1NzhhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKQEAgLTEwMTcsNiArMTAxNyw3IEBAIGVkaXRpbmcvc3BlbGxpbmcvaW5saW5lX3NwZWxs
aW5nX21hcmtlcnMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWF0dHJpYnV0ZS5o
dG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAogZWRpdGluZy9zdHlsZS81MDY1OTEwLmh0bWwK
IGVkaXRpbmcvc3R5bGUvYXBwbGUtc3R5bGUtZWRpdGFibGUtbWl4Lmh0bWwKIGVkaXRpbmcvc3R5
bGUvYmxvY2stc3R5bGUtMDAxLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1sZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkCmluZGV4IGVkMTZkY2QzYTEyNGM2Y2M4YWI5ZTA2ZjEwNTUzMWM0ZWFmY2YyODkuLjk0
N2I0NjY5ZDI0NTRiMTk4NzJlMjc3NjVlMTBmNTVmYzFlMWQ0MDIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZApAQCAtOTEsMyArOTEsNiBAQCBmYXN0L3RleHQvaHlw
aGVuYXRlLWxvY2FsZS5odG1sCiAjIGFzIHdlbGwgYXMgcHJlc3VtYWJseSBvdGhlciBsZW9wYXJk
IGluc3RhbGxzLgogIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM1MjcxCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKKworIyBB
dmFpbGFibGUgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
ZC10ZXh0LTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCmluZGV4
IDA0YjgzODQxMGY2MGY4M2NkYWVjMjRkYWVkMmZhZWNkYTUxMjUwZjUuLjEwZGIxNGEwODk2MDg0
ZjA5MTExNzIxZWUyZWVmZTgzNWI5ZDhlNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy10aWdlci9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdl
ci9Ta2lwcGVkCkBAIC0yMDYsMyArMjA2LDYgQEAgZmFzdC9oYXJuZXNzL3Nob3ctbW9kYWwtZGlh
bG9nLmh0bWwKIAogIyBMb2FkaW5nIGZhaWxzIG9uIFRpZ2VyIHdpdGggZXJyb3IgLTEwMTIgYWZ0
ZXIgYXNraW5nIE5TVVJMQ29ubmVjdGlvbiB0byBjb250aW51ZSB3aXRob3V0IGNyZWRlbnRpYWxz
LgogaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50LnBocAorCisjIEF2YWls
YWJsZSBvbmx5IDEwLjYgb3IgbGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0
ZWQtdGV4dC0wMDEuaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvU2tpcHBlZAppbmRleCAxZWNhZGEzZTIyZDcwMWQwYjhjYzE3MjE3NGU0Njg0
MDdhZjE2M2Q0Li5lYjNlYTRmODdmZWU0ZGViNzExMjNhOTIzNDEwMjMwZDZiMGFiMjg2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0yMzMsNiArMjMzLDcgQEAgZWRpdGlu
Zy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWluLXByZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi91
c2VyLWRyYWctZWxlbWVudC1hbmQtdXNlci1zZWxlY3Qtbm9uZS5odG1sCiBlZGl0aW5nL3NlbGVj
dGlvbi93b3JkLWdyYW51bGFyaXR5Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51
LXN1Z2dlc3Rpb25zLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4
dC0wMDEuaHRtbAogZWRpdGluZy91bmRvL3VuZG8tZGVsZXRlV29yZC5odG1sCiBlZGl0aW5nL3Vu
ZG8vdW5kby1zbWFydC1kZWxldGUtcmV2ZXJzZWQtc2VsZWN0aW9uLmh0bWwKIGVkaXRpbmcvdW5k
by91bmRvLXNtYXJ0LWRlbGV0ZS13b3JkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4
IDcxZmEyYmQxZmZmZGY3NmY1ZmJkYzMwOGU1MTZhYTVmYzdkMTg2MTQuLjllMzVmZThlZTFjY2M0
NTY1MGY5ZjFiMzFkNWZlYjk3NzZkMTc5MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAt
MjI5Niw2ICsyMjk2LDkgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy5odG1sCiBlZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKCkgaXMgbm90IGltcGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjIGZh
aWxpbmcgZWRpdGluZy9zdHlsZSB0ZXN0cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IGI0M2U1MmM1ZWUwYTliYzdiZTY3NjI2YmU5N2ZkMDhi
OTc2NjE1MzEuLjFhMDk1ODMxMDNjNjU0ZmExNjQ1YzRjYTIxODk4ZTdmODdkZDZiYWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC04ODMsNiArODgzLDkgQEAgZWRpdGluZy9zcGVsbGlu
Zy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJl
YS5odG1sCiAKKyMgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIGlzIG5v
dCBpbXBsZW1lbnRlZAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAw
MS5odG1sCisKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhl
ZGRiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZDZlNjU3ZTY4Yzk1NWU5MmVmY2UzMmE0MzFjYzVlYWFiOGNiZTMwNi4uMDE3M2FiNDFh
YjVhMTJiMTUwYWY0MmVkNjlmZDIyOGNkYzE3ODhiNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMC0wOS0w
OCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgorCisgICAgICAgIC0gSW50cm9kdWNlZCBTcGVsbENoZWNrZXIgdG8gZW5jYXBz
dWxhdGUgYXN5bmNocm9ub3VzIHNwZWxsIGNoZWNrZXIgc3RhdGU6CisgICAgICAgICAgc2VxdWVu
Y2UgaWQsIHJlcXVlc3RpbmcgdGV4dCBhbmQgdGFyZ2V0IG5vZGUuCisgICAgICAgICAgVGhpcyBp
cyBmaXJzdCBzdGVwIHRvIGRlY29tcG9zZSBzcGVsbC1jaGVjayByZWxhdGVkIGNvZGUgdG8gc2Vw
YXJhdGUgY2xhc3MuCisgICAgICAgIC0gQWRkZWQgRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgYW5kCisgICAgICAgICAgRWRpdG9yQ2xpZW50OjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZygpIHRvIG9wdGlvbmFsbHkgdXNlCisgICAgICAgICAgYXN5bmMg
c3BlbGxjaGVjayBBUEkgb24gdGhlIHBsYXRmb3JtLgorICAgICAgICAgIHRoZXNlIEFQSXMgYXJl
IHRvdWNoZWQgYnkgU3BlbGxDaGVja2VyLgorICAgICAgICAtIFVzZWQgU3BlbGxDaGVja2VyIHRv
IGNoZWNrIHBhc3RlZCB0ZXN0LgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3Rl
QXNQbGFpblRleHQpOiBVc2VkIFNwZWxsQ2hlY2tlciB0byBjaGVjayBnaXZlbiB0ZXh0LgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpFZGl0b3IpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNwZWxsQ2hlY2tlcik6CisgICAgICAgICog
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlcjo6U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
flNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6cmVxdWVzdFRleHROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNBdmFpbGFibGVGb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0J1c3kpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlbGxDaGVja2VyOjppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
aXNDaGVja2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6cmVxdWVzdENo
ZWNraW5nRm9yKTogQW4gYXN5bmMgY2hlY2sgZW50cnlwb2ludC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2spOiBDYWxsZWQgYmFjayBmcm9tIHRoZSBjbGllbnQgdG8g
bm90aWZ5IHRoZSByZXN1bHQuCisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5n
UmVzdWx0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOiBBZGRlZAorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisK
IDIwMTAtMDktMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgyOTczNjVmMmRlZThkOTVjM2E0ZGIz
NDIwZWJkNTFjZjJkM2IwNzcuLjMxMDNkZjQwMGIzNjIwNTU3MWQ1NzhmNjMwY2MyYjJkODhhNzUy
NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMTI3MCw2ICsxMjcwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlX
ZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0
UmVwbGFjZS5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2Vi
Q29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlX
ZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcv
U3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGZhNTZjYTIxZjQ0ZDdkZWJhYmY3
ZWU1N2NhNWYwMDlmOGE4MzgyZGEuLjU4MWRhMTMzYWJhNWZkMTkxODZhN2JjYTUwZTk0MTU3MDlj
NjA0MzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtNDYyLDYgKzQ2Miw3IEBAIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbkVQTlNfNUZyYW1lRWoKIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmRDMUVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jdW1lbnRG
cmFnbWVudEVFRWJiYmJiTlNfMTBFZGl0QWN0aW9uRQogX19aTjdXZWJDb3JlMjNjcmVhdGVGcmFn
bWVudEZyb21Ob2Rlc0VQTlNfOERvY3VtZW50RVJLTjNXVEY2VmVjdG9ySVBOU180Tm9kZUVMbTBF
RUUKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0ZVByb3BlcnR5
TGlzdEV2CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFya2Vyc0Zv
ck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIx
M3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKIF9fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVF
CiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zv
ck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKQEAgLTg0Myw2ICs4NDQs
NyBAQCBfX1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBf
X1pON1dlYkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNW
YWx1ZUUKIF9fWk43V2ViQ29yZWVxRVJLTlNfMTlSZXNvdXJjZVJlcXVlc3RCYXNlRVMyXworX19a
TjdXZWJDb3JlMTJTcGVsbENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9ySU5TXzE5U3Bl
bGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEy
Z2xvYmFsT2JqZWN0RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKIF9fWk5L
N1dlYkNvcmUxMEZsb2F0UG9pbnRjdjhfTlNQb2ludEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdlZTdhYjQ5M2RlOWIyNGUz
YjQ3ZWNkOWI2NmI2NWJkMjJiZWM0MzIuLjAxYTVlNjczOWRlMGNhYzhlYjNjNmI4Mjc4MDhhMWE2
ZTNjZjk3NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xMzk2LDYgKzEzOTYsOCBAQAogICAgICAgICAgICAgJ2VkaXRpbmcv
U21hcnRSZXBsYWNlLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlQ0YuY3Bw
JywKICAgICAgICAgICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAnLAorICAgICAgICAg
ICAgJ2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVs
bENoZWNrZXIuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNw
cCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgnLAogICAgICAg
ICAgICAgJ2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU1ZGY2NDRiYzFh
OTMyNzY4ZDAxNzIyZTg4Y2ExMzc4MzJiZWQ1NGIuLjdiNGVhZjg0NmRmNjcyNWUzYjQwOGMwOGM0
ODZjZDQ0YzFmNDc4NzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwpAQCAtNjEwLDYgKzYxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGVk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJp
YnV0ZUNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAorICAg
IGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdEVsZW1lbnRDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXAogICAgIGVk
aXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjU4ODU0OGU5OGM0YTFkMmFmNzZiNjNm
MTQ5NjY2NTk5OTFiMGE0Yi4uODJjYzAxZDJiN2JiNzZjYWQwYmZlMzIyNjFkZWI5ZDQ2MzE3YWYy
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNjU4NSw2ICszNjU4
NSw2MyBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVsbENoZWNrZXIuY3BwIg0KKwkJCQk+
DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwZWxsQ2hlY2tl
ci5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIg0KIAkJCQk+DQog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNDZlYmIwOTc2NDk5YzE2MDgyZWRiZmQwMTIyOGNlNWYzMmI5NTQ1Ni4u
MmFiYWEyY2U0MDFlMGNmZjMwNzk2MWM2NGFhODgzYWQ5MjIwNmJiYyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4NjIsNiArMjg2Miw4IEBACiAJCUE3
Nzk3OTI4MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNDBENkI5RTY0MDAzODUxQjkg
LyogSlNJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyog
SlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlB
Nzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAv
KiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlBNzhGRTEzQjEyMzY2QjEwMDBBQ0U4RDAgLyogU3Bl
bGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovOyB9Owor
CQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4
RDAgLyogU3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2M0Qw
QjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovOyB9OwogCQlBNzk1NDY0MzBCNUM0
Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNw
cCAqLzsgfTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FBNjZE
NDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLzsgfTsKQEAgLTg3NDQs
NiArODc0Niw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlRGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAv
KiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdl
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAx
RTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzhGRTEz
OTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVsbENoZWNrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdEYXRhTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQz
OEYgLyogRHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RHJhZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FBNjZENDExQzVF
RDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMzk5MSw2ICsxMzk5NSw4IEBACiAJCQkJNEI2RkE2RjMwQzM5RTQ4QzAwMDg3
MDExIC8qIFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJNEI2RkE2RjIwQzM5RTQ4QzAwMDg3MDEx
IC8qIFNtYXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZBNkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBT
bWFydFJlcGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNw
ZWxsQ2hlY2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxs
Q2hlY2tlci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1l
bnRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRF
bGVtZW50Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0MDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxp
dFRleHROb2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0xOTg5Miw2ICsxOTg5OCw3IEBACiAJCQkJNzU3
OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc4RkUxM0MxMjM2NkIxMDAwQUNF
OEQwIC8qIFNwZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTIwOTlFNjQ5
MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250
YWluaW5nRWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI0NDQsNiArMjI0NTEs
NyBAQAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8q
IFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzhGRTEzQjEy
MzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
MzA5RTExMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTEzMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxNTA5OUU2NDkyMDA1NkU1ODEgLyog
U3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKaW5kZXggOWU0MWE2MjQ4N2MyMTczZDUyNWVkZDk1NGM1NzgxOWU1MzdhYTA3
ZC4uZWVkYWFiYjAwMzkzMjZhY2U3NDI4MDZlOGE4MTFkNGViZTA3ODExNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJT
cGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0zMTQsOSArMzE1LDE0IEBAIHZvaWQgRWRp
dG9yOjpwYXN0ZUFzUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgcGFzdGluZ1RleHQsIGJvb2wgc21h
cnRSZXBsYWNlKQogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7Ci0gICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KFRleHRFdmVudDo6Y3Jl
YXRlRm9yUGxhaW5UZXh0UGFzdGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHBhc3RpbmdUZXh0LCBz
bWFydFJlcGxhY2UpLCBlYyk7CisgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KFRleHRFdmVudDo6
Y3JlYXRlRm9yUGxhaW5UZXh0UGFzdGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHBhc3RpbmdUZXh0
LCBzbWFydFJlcGxhY2UpLCBlYyk7IAorCisgICAgTm9kZSogbm9kZVRvQ2hlY2sgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOworICAgIGlmIChtX3NwZWxsQ2hlY2tlci0+aXNB
c3luY2hyb25vdXNBdmFpbGFibGVGb3Iobm9kZVRvQ2hlY2spKQorICAgICAgICBtX3NwZWxsQ2hl
Y2tlci0+cmVxdWVzdENoZWNraW5nRm9yKG5vZGVUb0NoZWNrKTsKIH0KIAorCiB2b2lkIEVkaXRv
cjo6cGFzdGVBc0ZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcGFzdGluZ0Zy
YWdtZW50LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKQogewogICAgIE5vZGUq
IHRhcmdldCA9IGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKTsKQEAgLTEwNTMsNiArMTA1
OSw3IEBAIEVkaXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBi
eSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1h
dGNoZXMgSUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkK
ICAgICAsIG1fa2lsbFJpbmcoYWRvcHRQdHIobmV3IEtpbGxSaW5nKSkKKyAgICAsIG1fc3BlbGxD
aGVja2VyKG5ldyBTcGVsbENoZWNrZXIoZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVk
aXRvckNsaWVudCgpIDogMCkpCiAgICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyKHRoaXMsICZF
ZGl0b3I6OmNvcnJlY3Rpb25QYW5lbFRpbWVyRmlyZWQpCiB7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzhl
ODliNDg1ZWE5ODI3MzZmMjc1ODUzZWRhZjA2ZjE0MjBjZTIyMi4uNGFlMDUwMmQxYjg0MTdjNzk0
M2E4NDI4YWIzODkzZjU3ZDRhMzUwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFz
cyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xh
c3MgU2ltcGxlRm9udERhdGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0OwogY2xh
c3MgVGV4dEV2ZW50OwogCkBAIC0yOTMsNiArMjk0LDcgQEAgcHVibGljOgogICAgIFZpc2libGVT
ZWxlY3Rpb24gc2VsZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJpbmcqIGtp
bGxSaW5nKCkgY29uc3QgeyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNwZWxsQ2hl
Y2tlciogc3BlbGxDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIuZ2V0KCk7
IH0KIAogICAgIEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0zMzAsNiAr
MzMyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVl
bmNlOwogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5n
PiBtX2tpbGxSaW5nOworICAgIE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwog
ICAgIFJlZlB0cjxSYW5nZT4gbV9yYW5nZVRvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsKICAgICBT
dHJpbmcgbV9zdHJpbmdUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgVGltZXI8RWRpdG9y
PiBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ZDEyN2I3MjllNGU3NzVkYWE3ZDUyZDQyM2I1YTI1Mzc1MzFmNWRlCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTAsMCArMSwxNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tl
ci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik5vZGUuaCIKKyNpbmNsdWRlICJQb3NpdGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2Uu
aCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitT
cGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcihFZGl0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6IG1f
Y2xpZW50KGNsaWVudCkKKyAgICAsIG1fcmVxdWVzdFNlcXVlbmNlKDApCit7Cit9CisKK1NwZWxs
Q2hlY2tlcjo6flNwZWxsQ2hlY2tlcigpCit7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppbml0
UmVxdWVzdChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChpc0FzeW5jaHJvbm91c0F2YWlsYWJs
ZUZvcihub2RlKSk7CisKKyAgICBTdHJpbmcgdGV4dDsKKyAgICBpZiAobm9kZS0+cmVuZGVyZXIo
KS0+aXNUZXh0RmllbGQoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihub2RlKS0+dmFsdWUoKTsKKyAgICBlbHNlIGlmIChub2RlLT5yZW5kZXJlcigpLT5p
c1RleHRBcmVhKCkpCisgICAgICAgIHRleHQgPSBzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVt
ZW50Kj4obm9kZSktPnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0gbm9kZS0+dGV4
dENvbnRlbnQoKTsKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIG1fcmVxdWVzdE5vZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFRleHQgPSB0ZXh0
OworICAgIG1fcmVxdWVzdFNlcXVlbmNlKys7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9p
ZCBTcGVsbENoZWNrZXI6OmNsZWFyUmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0Tm9kZS5jbGVh
cigpOworICAgIG1fcmVxdWVzdFRleHQgPSBTdHJpbmcoKTsKK30KKworTm9kZSogU3BlbGxDaGVj
a2VyOjpyZXF1ZXN0VGV4dE5vZGUoKSBjb25zdAoreworICAgIC8vIFJldHJpZXZlIHRoZSBmaXJz
dCAnI3RleHQnIG5vZGUgdXNlZCBieSByZW5kZXJlcnMuIEZvciBhIDx0ZXh0YXJlYT4KKyAgICAv
LyBlbGVtZW50LCBhIHNwZWxsY2hlY2tlciBkaXJlY3RseSBhZGRzIHNwZWxsaW5nIG1hcmtlcnMg
dG8gdGhlIHNoYWRvdyBub2RlcworICAgIC8vIHVzZWQgYnkgcmVuZGVyZXJzLCBpLmUuIGFkZGlu
ZyBzcGVsbGluZyBtYXJrZXJzIHRvIGEgRE9NIG5vZGUgZG9lcyBub3QKKyAgICAvLyBhZGQgbWFy
a2VycyB0byB0aGUgbm9kZSB1c2VkIGJ5IHNwZWxsY2hlY2tlcnMuIFRoZXJlZm9yZSwgd2UgZGly
ZWN0bHkKKyAgICAvLyByZXRyaWV2ZSB0aGUgc2hhZG93IG5vZGUgZnJvbSB0aGUgRE9NIG5vZGUu
CisgICAgTm9kZSogbm9kZSA9IG1fcmVxdWVzdE5vZGUuZ2V0KCk7CisgICAgZm9yIChjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsgcmVuZGVyZXI7IHJlbmRl
cmVyID0gcmVuZGVyZXItPmNoaWxkQXQoMCkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc1Rl
eHQoKSkKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJlci0+bm9kZSgpOworICAgIH0KKyAgICBy
ZXR1cm4gMDsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5hYmxlZCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0FzeW5j
aHJvbm91c0F2YWlsYWJsZUZvcihOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBpc0No
ZWNrZWFibGUobm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgpOwor
fQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9y
ZXF1ZXN0Tm9kZS5nZXQoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzVmFsaWQoaW50IHNl
cXVlbmNlKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3ROb2RlLmdldCgpICYmIG1fcmVx
dWVzdFRleHQubGVuZ3RoKCkgJiYgbV9yZXF1ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7Cit9CisK
K2Jvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNrZWFibGUoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxsQ2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGlzQXN5bmNo
cm9ub3VzQXZhaWxhYmxlRm9yKG5vZGUpKTsKKworICAgIGlmICghaW5pdFJlcXVlc3Qobm9kZSkp
CisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
dGhpcywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1fcmVxdWVzdFRleHQpOworfQorCit2b2lkIFNwZWxs
Q2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVja2lu
Z1Jlc3VsdD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFpc1ZhbGlkKHNlcXVlbmNlKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTm9kZSogbm9kZSA9IHJlcXVlc3RUZXh0Tm9kZSgpOworICAgIGlm
ICghbm9kZSkgeworICAgICAgICBjbGVhclJlcXVlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGludCBzdGFydE9mZnNldCA9IDA7CisgICAgUG9zaXRpb25JdGVyYXRvciBzdGFy
dCA9IFBvc2l0aW9uKG5vZGUsIDApOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0
cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IERvY3VtZW50
TWFya2VyOjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6Okdy
YW1tYXIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBUbyBhdm9pZCBtb3Zp
bmcgdGhlIHBvc2l0aW9uIGJhY2t3YXJkLCB3ZSBhc3N1bWUgdGhlIGdpdmVuIHJlc3VsdHMgYXJl
IHNvcnRlZCB3aXRoCisgICAgICAgIC8vIHN0YXJ0T2Zmc2V0IGFzIHRoZSBvbmVzIHJldHVybmVk
IGJ5IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgICAgICBB
U1NFUlQoc3RhcnRPZmZzZXQgPD0gcmVzdWx0c1tpXS5sb2NhdGlvbik7CisgICAgICAgIGZvciAo
OyBzdGFydE9mZnNldCA8IHJlc3VsdHNbaV0ubG9jYXRpb247ICsrc3RhcnRPZmZzZXQpCisgICAg
ICAgICAgICBzdGFydC5pbmNyZW1lbnQoKTsKKworICAgICAgICBQb3NpdGlvbkl0ZXJhdG9yIGVu
ZCA9IHN0YXJ0OworICAgICAgICBmb3IgKGludCBsZW5ndGggPSAwOyBsZW5ndGggPCByZXN1bHRz
W2ldLmxlbmd0aDsgKytsZW5ndGgpCisgICAgICAgICAgICBlbmQuaW5jcmVtZW50KCk7CisKKyAg
ICAgICAgLy8gVXNlcnMgb3IgSmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMgbWF5IGNoYW5nZSB0ZXh0
IHdoaWxlIGEgc3BlbGwtY2hlY2tlciBjaGVja3MgaXRzCisgICAgICAgIC8vIHNwZWxsaW5ncyBp
biB0aGUgYmFja2dyb3VuZC4gVG8gYXZvaWQgYWRkaW5nIG1hcmtlcnMgdG8gdGhlIHdvcmRzIG1v
ZGlmaWVkIGJ5IHVzZXJzIG9yCisgICAgICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCBy
ZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhlIHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUgdGhl
bSB3aXRoCisgICAgICAgIC8vIHRoZSBvcmlnaW5hbCBvbmVzLgorICAgICAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKTsK
KyAgICAgICAgU3RyaW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3Ry
aW5nIHNvdXJjZSA9IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24s
IHJlc3VsdHNbaV0ubGVuZ3RoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkK
KyAgICAgICAgICAgIG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdl
LmdldCgpLCByZXN1bHRzW2ldLnR5cGUpOworICAgIH0KKworICAgIGNsZWFyUmVxdWVzdCgpOwor
fQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGlu
Zy9TcGVsbENoZWNrZXIuaCBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41NWE1YmU5NmNkMTBhMTMwNmVjZmJiODIxNTc0YWMyMjUxNjgzOGJiCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBTcGVsbENoZWNrZXJfaAorI2RlZmluZSBTcGVsbENoZWNrZXJf
aAorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBFZGl0b3JDbGllbnQ7CisKK3N0cnVjdCBTcGVsbENoZWNraW5nUmVzdWx0IHsKKyAgICBTcGVs
bENoZWNraW5nUmVzdWx0KCkKKyAgICAgICAgOiB0eXBlKERvY3VtZW50TWFya2VyOjpTcGVsbGlu
ZykKKyAgICAgICAgLCBsb2NhdGlvbigwKQorICAgICAgICAsIGxlbmd0aCgwKQorICAgIHsKKyAg
ICB9CisKKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlOworICAgIGludCBsb2Nh
dGlvbjsKKyAgICBpbnQgbGVuZ3RoOworfTsKKworY2xhc3MgU3BlbGxDaGVja2VyIHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBTcGVsbENoZWNrZXIoRWRpdG9yQ2xpZW50Kik7CisgICAgflNwZWxs
Q2hlY2tlcigpOworCisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsKKyAg
ICBib29sIGlzQXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKE5vZGUqKSBjb25zdDsKKyAgICBib29s
IGlzQnVzeSgpIGNvbnN0OworICAgIGJvb2wgaXNWYWxpZChpbnQgc2VxdWVuY2UpIGNvbnN0Owor
ICAgIGJvb2wgaXNDaGVja2VhYmxlKE5vZGUqIG5vZGUpIGNvbnN0OworICAgIHZvaWQgcmVxdWVz
dENoZWNraW5nRm9yKE5vZGUqKTsKKyAgICB2b2lkIGRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29u
c3QgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBp
bml0UmVxdWVzdChOb2RlKik7CisgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKKyAgICBOb2RlKiBy
ZXF1ZXN0VGV4dE5vZGUoKSBjb25zdDsKKworICAgIEVkaXRvckNsaWVudCogbV9jbGllbnQ7CisK
KyAgICBSZWZQdHI8Tm9kZT4gbV9yZXF1ZXN0Tm9kZTsKKyAgICBTdHJpbmcgbV9yZXF1ZXN0VGV4
dDsKKyAgICBpbnQgbV9yZXF1ZXN0U2VxdWVuY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBTcGVsbENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBk
MWU0MDZjOWQ5NWIyYTYwZWEwNWNlMmQwMjNhZGFiOGIxMjViODA0Li45Nzk2M2FhYjNiNjY1MDM3
NDRhZjJlZTU5YWY4MjNmNmIwYzMxYmU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDc1LDgg
KzQ3NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
dElucHV0TWV0aG9kU3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sKSB7IH0KLQotCisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHsg
fQogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IDRh
MTkyZDc0MWExMjQxZDhlMTg5NzU4YTNiOTEwYTc4ZTA0NmFmOTQuLjEyYjk5MDMwMmEzMDU2Zjlm
MmY3NzVkZDgxMjg2NzkwYjcxYWQwZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTU5LDYgKzU5LDcg
QEAgY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTm9kZTsK
IGNsYXNzIFJhbmdlOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlv
bjsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIApAQCAtMTkyLDYgKzE5Myw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9y
PFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgPSAwOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggYjVlNjU0ZjFkOTJkZmIwYzVlZTFkY2UwMDM3NTM2MDZhZjIzMjkwYy4uMzc2
ZjM4MzdmZjdkYzFhMGEwMTYwNTJjNGZkNDQwN2QxMzc5MDkxNyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3Bl
bGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGlt
cGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggYjA1YTU5MjZiZjcxMTI4NjFj
MjUzYTQ2YzIzNGE2ZDViN2UzMzVkNy4uM2Y3MDUzYjY5ZjNlMjY3MGFlYTg0NGZmOGUxZTRhNzU5
YjBhZDhhNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKQEAgLTExMCw2
ICsxMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3Rh
dGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RG
OjpTdHJpbmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhlIGZvcm0gYXV0b2ZpbGwgcG9wdXAgZm9y
IHxub2RlfCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50IGFuZAogICAgIC8vIGl0IGlzIGVt
cHR5LiAgVGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3MgdGhlIHVwIG9yIGRvd24gYXJyb3cg
aW4gYQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwppbmRleCA5NzA5Yzk4NDNlZjA3ODgxYWYxNjdlZWQ4ZTJmYzhiNDg1OGJlMWQxLi5lMTM0
MTMyZDk4Mjg3ZDg4MmUxZTc5NjM3Zjc1Njg0ZTAzYTJhMDQ0IDEwMDY0NAotLS0gYS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9l
cyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRp
b25zLgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wOCAgUnl1YW4gQ2hvaSAgPHJ5dWFu
LmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRpZmYg
LS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCA5ZjYwY2ZiYWRi
NDJmMDdmMTM2YmU3ZDRlNzljNDIwOTQ0MzhkMWIyLi40NDVmNmQyNTMwMDEwYjlhYmEzMDM2NWY2
NWU4YTFlODU3Mzk1YTAzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFdURjo6VmVjdG9yPFN0cmluZz4mIGd1ZXNz
ZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVh
bCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAg
ICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cg
Yi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBjNzk4YjAyMjg0MzMyZjYwZGRlMGQ1ODVhNWY1
ZTU0NGZhNWNhYWNlLi5mZDY0ZDFlM2U0NmZjZWYwOGFiNGUzNTg3NjI5ZmZjNDE3Mjk4MjQyIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQg
c3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBNYXJpbyBTYW5jaGV6IFBy
YWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApp
bmRleCBmOWZmODJlMDBjNGEzMGY2NjJjMWRhMzNmYjNhNWE5MDExOWQzMDU5Li5mNjg4OGQ1YjUx
OTk2ZTQ2NzkwODYwMzQ2MzM3MTg3NTU4NjcyOGM3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTEzMiw2ICsxMzIsOCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6
U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hh
aWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggOTg2YjAwZjlkMjNk
OWIwZWNkNzk0YzRmZjRmZmJlMjU5YzY2Zjg1YS4uZjkwZGJkNTM3NDE2OTczNTQ5M2ExZTBlNjk0
MTk2YzlkMDY2MTdjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQg
dGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50SGFpa3U6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KToKKwogMjAxMC0wOC0wNiAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5j
b20+CiAKICAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgU2FtIFdlaW5pZwpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmggYi9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAppbmRleCA1Y2JlYzI3MjIx
M2NjNmNlOWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3Y2QxLi40MTM4ZmJlMDEyMjM1Y2NjMTUwNTYyMDYz
YWY4YWNhYzVmMGQ0MzQxIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50SGFpa3UuaApAQCAtMTEwLDYgKzExMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5n
Jikge30KIAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDA5YmZkNjkw
ZTNjM2MyZDQ0OGE5ZWZlYjZkZWEyMzdmYTdlZTIxMWMuLjEwN2NmOTQzZWNlZDliOWVhNThjZDRh
Yjg0ZTkyMjZjM2M1NTEwZTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDktMDggIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQg
dGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTIKKworICAgICAgICBJbXBsZW1lbnRlZCBhc3luYyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVk
aXRvckNsaWVudC4KKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3Bl
bGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXQorICAgICAgICB3aGljaCBpcyBhdmFp
bGFibGUgb25seSBvbiBNYWMgT1MgMTAuNiBvciBsYXRlci4KKyAgICAgICAgCisgICAgICAgIE5v
dGUgdGhhdCBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGlu
dm9rZQorICAgICAgICB0aGUgY2FsbGJhY2sgYmxvY2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRo
cmVhZCwgc28gd2UgbmVlZCB0bworICAgICAgICByZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFp
biB0aHJlYWQgd2hlcmUgV2ViQ29yZSBpcyBydW5uaW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJw
b3NlLCB3ZSBtYWRlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAg
IAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQt
MDAxLmh0bWwKKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdp
dGhTZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVzdWx0czpdKTogQWRkZWQuCisgICAgICAgICgt
W1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAg
KFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEwLTA5LTA4ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgRXJpYyBT
ZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRl
eCBmZTMzZTA1NDdmOWUzODRhZTRkMDEyZmQyNWUwNmZkNGM4ZjM3ZDE4Li5mYzlhZTQ3OTliZThj
N2U1MjE4ZmRkZDMxYTcxYTM0ODA3MTEyMjI5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0
b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNpZiAhZGVmaW5l
ZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93
Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJl
cGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdU
Rjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmly
dHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQp
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0
MWNmZjY4MTU3ZGZjNWMzMDY5MTY1MTZhNDA3OGYxZDA0MzJjYWYzLi5lNTE0Njc2ODU1YTg0MTI5
ZGQ3ZmE5ODQ0OWNmM2ZmNTNjYmZiZTNhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9M
ZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRp
Y2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQg
PHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgpAQCAtODc1LDMgKzg3Niw4MyBAQCB2b2lk
IFdlYkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogdm9pZCBXZWJFZGl0
b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KKworYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KQorICAgIC8vIEVuYWJsZSBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyAoYW5kIGdyYW1tYXIg
Y2hlY2tpbmcpIG9ubHkgd2hlbiB3ZSBjb21waWxlIHRoaXMgZmlsZSBvbgorICAgIC8vIE1hYyBP
UyBYIDEwLjYgYW5kIHdlIGNhbiB1c2UgR3JhbmQgQ2VudHJhbCBEaXNwYXRjaCBiZWNhdXNlIHRo
ZXkgYXJlIHJlcXVpcmVkIGJ5CisgICAgLy8gW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nOl0uCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsK
KyNlbmRpZgorfQorCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCitAaW50ZXJmYWNlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNw
b25kZXIgOiBOU09iamVjdAoreworICAgIFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogX3NlbmRlcjsK
KyAgICBpbnQgX3NlcXVlbmNlOworICAgIFJldGFpblB0cjxOU0FycmF5PiBfcmVzdWx0czsKK30K
Ky0gKGlkKWluaXRXaXRoU2VuZGVyOihXZWJDb3JlOjpTcGVsbENoZWNrZXIqKXNlbmRlciBzZXF1
ZW5jZTooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkqKXJlc3VsdHM7CistICh2b2lkKXBl
cmZvcm07CistIChXVEY6OlZlY3RvcjxXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0PikgX2Nv
cmVSZXN1bHRzOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViRWRpdG9yU3BlbGxDaGVja1Jl
c3BvbmRlcgorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciopc2Vu
ZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0cworewor
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4g
bmlsOworICAgIF9zZW5kZXIgPSBzZW5kZXI7CisgICAgX3NlcXVlbmNlID0gc2VxdWVuY2U7Cisg
ICAgX3Jlc3VsdHMgPSByZXN1bHRzOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXBl
cmZvcm0KK3sKKyAgICBfc2VuZGVyLT5kaWRDaGVjayhfc2VxdWVuY2UsIFtzZWxmIF9jb3JlUmVz
dWx0c10pOworfQorCistIChXVEY6OlZlY3RvcjxXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0
PikgX2NvcmVSZXN1bHRzCit7CisgICAgTlNBcnJheSogcmVzdWx0cyA9IF9yZXN1bHRzLmdldCgp
OworICAgIFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+IGNvcmVSZXN1
bHRzKFtyZXN1bHRzIGNvdW50XSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFtyZXN1
bHRzIGNvdW50XTsgKytpKSB7CisgICAgICAgIE5TVGV4dENoZWNraW5nVHlwZSB0eXBlID0gW1ty
ZXN1bHRzIG9iamVjdEF0SW5kZXg6aV0gcmVzdWx0VHlwZV07CisgICAgICAgIGlmICh0eXBlICYg
TlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCisgICAgICAgICAgICBjb3JlUmVzdWx0c1tpXS50
eXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgICAgICBlbHNlIGlmICh0eXBlICYg
TlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcikKKyAgICAgICAgICAgIGNvcmVSZXN1bHRzW2ldLnR5
cGUgPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y29yZVJlc3VsdHNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzOworCisgICAg
ICAgIE5TUmFuZ2UgcmFuZ2UgPSBbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSByYW5nZV07Cisg
ICAgICAgIGNvcmVSZXN1bHRzW2ldLmxvY2F0aW9uID0gcmFuZ2UubG9jYXRpb247CisgICAgICAg
IGNvcmVSZXN1bHRzW2ldLmxlbmd0aCA9IHJhbmdlLmxlbmd0aDsKKyAgICB9CisKKyAgICByZXR1
cm4gY29yZVJlc3VsdHM7Cit9CisKK0BlbmQKKyNlbmRpZgorCit2b2lkIFdlYkVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBzZW5kZXIs
IGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAgIE5TUmFu
Z2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICBOU1J1bkxvb3Aq
IGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07CisgICAgW1tOU1NwZWxs
Q2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQg
cmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAg
aW5TcGVsbERvY3VtZW50V2l0aFRhZzowIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0
cywgTlNPcnRob2dyYXBoeSosIE5TSW50ZWdlcikgeworICAgICAgICAgICAgW2N1cnJlbnRMb29w
IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybSkgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGFyZ2V0OltbW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxs
b2NdIGluaXRXaXRoU2VuZGVyOnNlbmRlciBzZXF1ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3Vs
dHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVu
dDpuaWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0UnVu
TG9vcE1vZGVdXTsKKyAgICAgICAgfV07CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZVByaXZhdGUuaAppbmRleCA5Y2I2MjMyMzJiNGExYzNlNTM1YjMxZjZkNDlkNjc0MWJlZTcxOTJm
Li43MDI5YWViOGMyNjhhZjI5NDdhNzNmOTdiMDM0M2M4ZDU5MjJjNWM2IDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lUHJpdmF0ZS5oCkBAIC0xNDYsNCArMTQ2LDcgQEAgdHlwZWRlZiBlbnVtIHsK
IC8vIFJldHVybnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUgc3Bl
Y2lmaWVkIHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCiAtIChCT09MKWhhc1NwZWxsaW5nTWFy
a2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwogCisvLyBSZXR1cm5zIHdoZXRo
ZXIgdGhlcmUgaXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0
aGUgZm9jdXNlZCBub2RlLgorLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGZvciBsYXlvdXQgdGVz
dHMuCistIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQp
bGVuZ3RoOwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9x
dC9DaGFuZ2VMb2cKaW5kZXggNmFkNGM2MTNhOGU0MzMzOTk0YjdmZTI0NTNkY2RiNDY0NmIzZTQx
MC4uYmE5MmRjZDI4YjljYWYxODc3NGFlNmNiMDQyZGI3N2Y1NzAzOWRhMyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVj
ayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVt
bnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wOCAgUGV0ZXIgS2FzdGluZyAgPHBrYXN0aW5n
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IDdkOTlkMjIyZDgzNmYxMDdm
NmEwM2U2N2E4MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0NGI3NjdmZTQyOTVjMmIwYmFmMDlj
Nzg1MWMwYmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCkBA
IC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9y
V29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3Qg
U3RyaW5nJikge30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOTFkMGI3
ZmJiNGZiZmQ0MjQwMjg3NTIxYjM5ODdkNzE0NDNlYmM4Ni4uMGJlMzU2MTE4MmEwZTc5NGI2ZmQz
OTVmYmY0MjE2NmE4ODU5ZWRjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0wOCAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3Rl
ZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkVk
aXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBQZXRl
ciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQs
IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
CmluZGV4IDhiZTZkZTkwYzIxZjRlMTllZmMyZmZmYjNhN2FkZTRjZmQ0OGVlMzMuLmU4YjM3YzJl
MWI3Nzc4OWY0ZGJmNmIzYjhlZDE0MWYwNTJlMjllNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTExLDYgKzExMSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93
ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKaW5kZXggZWExMDZmZTI4MTM0MTZjNTJjOTg1Yjg5MzdlZjE3OTYwNjgzM2Y1
ZS4uZmI0NDE5MTM0ZTQ3N2FmZWI5OGIyODdkOTU1NWJhMDZjMTFlMGE2OCAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3Bl
bGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGlt
cGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRX
aW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOC0zMSAgUGF0cmljayBHYW5zdGVyZXIgIDxw
YXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRXaW5DRS5oIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmgKaW5kZXggOTQzZjU5MTc1NmM3ZmJjMGM5YzA0ZGViOTY1MTc2ZDI1YWIyODJhOS4u
NDMxNWY2OWQ3YTZlYzQxZWM3NmJlZmJjMjE2ZmM0OWRkOGIzMGFlNCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTk4LDYgKzk4LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6
OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYpOwogICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggNzU3OTgx
ZmIzZWI4MGU1ODg0YjQyNTkxZDhkNWQyZTNhYWY1YmUyMy4uNmNkOTIyNzRmYWUxNjU2NzlkZGIw
YTk3ZDE1NmRmMWE1ODM0NWQ0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQg
dGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JD
bGllbnRXeDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEw
LTA4LTMxICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0
b3JDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaApp
bmRleCBiZTVjOThhZjI5N2RlMTBlMmY2ZTU2Njg1ZjJlZjYwNjZlOWQyZmVmLi5iYmQxY2RlZmE1
YTcwNTg2MDlhM2M5NzYxMTFkYzNmNTJmNjUzYTViIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmgKQEAgLTExMiw2ICsxMTIsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tl
ciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFBhZ2UqIG1f
cGFnZTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggODU5NDgxYTA3MDcxODQzMDQ1NjM1NzNjZDI5MzIyNTM2ZWM1Mjk5OS4uMGYwOTE2OWMz
ZGIyYjg0MWE3M2RlYjU2ZmM5ZWQzZWUzNzA5OWMzNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0w
OCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaDoKKwogMjAxMC0wOS0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDM1
N2M2NmYxZDZjNWM5YWNlNjQ1NGRhOGVhYjdjN2Q0YjQxNDg1NzAuLjlkZDFhYTBjNmY1ZTBmMDhi
NTQ1MzFmOTQ1YjE3ZGI1MWMxNjM3MjggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00ODAsNiArNDgwLDE3IEBA
IHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hl
Y2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKKwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiB2
b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcm
IHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdl
YkNvcmU6OkVkaXRvciopCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggYzc1MjFmNzhmMTI5YTAzMDY5NTZmNGQyYTJk
ZmUwZDU0YjgwZjg2Zi4uYzEwYjVjNDY5ZWY0NzBlNjI4NzkzN2FiYTZkOTU0MmJiOTNlNTJhOSAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaApAQCAtMTMxLDYgKzEzMSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgVmVjdG9yPFdURjo6U3RyaW5nPiYg
Z3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7CisKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9U
SUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVs
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBj
b25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBs
YWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21p
c3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67016</attachid>
            <date>2010-09-09 03:39:35 -0700</date>
            <delta_ts>2010-10-12 02:36:08 -0700</delta_ts>
            <desc>Saved the buildbot delay</desc>
            <filename>bug-40092-20100909193933.patch</filename>
            <type>text/plain</type>
            <size>53615</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkOTJmOTAwMTQ2YTEwZmZiZDY5MTA0MDkzMWQ3MmIwZDk0NTcwNTFjLi5kOGZhMTMz
MjZlNDM0ZGZjY2EwZTAyM2EwMjVmNzc3MDY3ODA5NTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtbGVvcGFyZC9T
a2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDEwLTA5LTA5ICBDc2FiYSBP
c3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB0eXBv
IGZpeCBhZnRlciByNjcwNjggYmFzZWQgb24gc3VnZ2VzdGlvbiBvZiBSZW7DoXRhIEhvZG92w6Fu
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBh
c3RlZC10ZXh0LTAwMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmE2
MjBjNDZkYTE5OTAyMGY4ZjcyMWFlMjhjYjdkNzlhZGExODc1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3RzIHdlIGNhbiBjaGVjayB0aGUg
c3BlbGxpbmcgb2YgcGFzdGVkIHRleHQgaW4gdGhlIGJhY2tncm91bmQuIElmIHRoaXMgdGVzdCBz
dWNjZWVkcywgdGhlIGZvbGxvd2luZyBsaXN0IHNob3dzICdTVUNDRVNTJy4gKE90aGVyd2lzZSwg
dGhpcyB0ZXN0IGRvZXMgbm90IHN0b3AgZm9yZXZlci4pIFRvIHRlc3QgbWFudWFsbHksIHBhc3Rl
IG1pc3NwZWxsZWQgd29yZHMgdG8gdGhlIDx0ZXh0YXJlYT4gZWxlbWVudCBhbmQgc2VlIHRoZXkg
YXJlIG1hcmtlZCBhcyBtaXNzcGVsbGVkLgorCisKK1NVQ0NFU1MKK1NVQ0NFU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0w
MDEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQt
dGV4dC0wMDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGY4NTg1NzRhOTg1N2VmMzY0Y2I4MjA1Mzc3Y2Ey
YWM1NTViNDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKzx0aXRsZT5FZGl0aW5nIFRlc3Q8
L3RpdGxlPiAKKzwvaGVhZD4gCis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgd2UgY2FuIGNoZWNrIHRo
ZSBzcGVsbGluZyBvZiBwYXN0ZWQgdGV4dCBpbiB0aGUgYmFja2dyb3VuZC4gSWYgdGhpcyB0ZXN0
IHN1Y2NlZWRzLCB0aGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgJ1NVQ0NFU1MnLiAoT3RoZXJ3aXNl
LCB0aGlzIHRlc3QgZG9lcyBub3Qgc3RvcCBmb3JldmVyLikgVG8gdGVzdCBtYW51YWxseSwgcGFz
dGUgbWlzc3BlbGxlZCB3b3JkcyB0byB0aGUgICZsdDt0ZXh0YXJlYSZndCBlbGVtZW50IGFuZCBz
ZWUgdGhleSBhcmUgbWFya2VkIGFzIG1pc3NwZWxsZWQuPC9wPgorPHRleHRhcmVhIGlkPSJ0ZXN0
IiBjb2xzPSI4MCIgcm93cz0iMTAiPmZvbyBiYXIgYmF6PC90ZXh0YXJlYT4KKzx1bCBpZD0iY29u
c29sZSI+PC91bD4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CitmdW5jdGlvbiBsb2coc3RyKSB7CisgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdsaScpOworICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoc3RyKSk7CisgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJyk7CisgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKK30KKworZnVuY3Rpb24gbG9nUmVz
dWx0KHJlc3VsdCkgeworICAgIGlmIChyZXN1bHQpCisgICAgICAgIGxvZygnU1VDQ0VTUycpOwor
ICAgIGVsc2UKKyAgICAgICAgbG9nKCdGQUlMRUQnKTsKK30KKworZnVuY3Rpb24gdmVyaWZ5KCkK
K3sKKyAgICAvLyBMb29wIHdoaWxlIHRoZSBmaXJzdCB3b3JkICdmb28nIGlzIG1hcmtlZCBhcyBt
aXNzcGVsbGVkLgorICAgIGlmICghdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtl
cigwLCAzKSkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KHZlcmlmeSwgMCk7CisK
KyAgICBsb2dSZXN1bHQodGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcigwLCAz
KSk7CisgICAgbG9nUmVzdWx0KHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIo
OCwgMykpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisKKyAgICAvLyBDb3B5IHRoZSBvcmlnaW5hbCB0ZXh0IGFuZCBwYXN0ZSBpdC4KKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpLmZvY3VzKCk7CisgICAgZXhlY1NlbGVjdEFsbENv
bW1hbmQoKTsKKyAgICBleGVjQ29weUNvbW1hbmQoKTsKKyAgICBleGVjUGFzdGVDb21tYW5kKCk7
CisKKyAgICB2ZXJpZnkoKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cmlu
ZGV4IDYzMjY4MDhmY2IyODhkMjVhMGM1ZmQ1M2MxNjI0YmMyNGIzZjI2ZWMuLmFiODdjZjU1MTdm
MzgwMGNiMjFiZTYzMGQ3MDUwNTA5NjEzYjcxYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI3NTQsNiArMjc1NCw5
IEBAIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1c0RvdWJs
ZTA5Lmh0bWwgPSBJTUFHRQogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
dGV4dGFyZWEuaHRtbCA9IEZBSUwKIEJVR1dLNDE4MzIgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLWNvbnRlbnRlZGl0YWJsZS5odG1sID0gRkFJTAogCisvLyBOZWVkIHRvIGltcGxlbWVudCBF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkKK0JVR1dLNDE0MjMgOiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwgPSBUSU1FT1VUCisK
IC8vIEZsYWt5IHRlc3RzLgogQlVHNDQzNDUgTElOVVggOiBzdmcvem9vbS90ZXh0L3pvb20taGl4
aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKIEJVRzQ0MzQ2IExJTlVYIDogc3ZnL3pvb20v
cGFnZS96b29tLWhpeGllLW1peGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCmluZGV4IDZkZTRjYzQzZTczMGMzZjk0YTM4ZDI0ODlkZGM3Mzg3OTE4NWYyZDku
LjVjZDAyMjk5NDA2ODAyNzJjZTY5MmM0NDAxZjAwYWM3MjEwMzBhNjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCkBAIC0xMDE4LDYgKzEwMTgsNyBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stYXR0cmlidXRlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVk
aXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAogZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1sCitlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKIGVkaXRpbmcvc3R5
bGUvNTA2NTkxMC5odG1sCiBlZGl0aW5nL3N0eWxlL2FwcGxlLXN0eWxlLWVkaXRhYmxlLW1peC5o
dG1sCiBlZGl0aW5nL3N0eWxlL2Jsb2NrLXN0eWxlLTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWxlb3BhcmQvU2tpcHBlZAppbmRleCBlZDE2ZGNkM2ExMjRjNmNjOGFiOWUwNmYxMDU1
MzFjNGVhZmNmMjg5Li45NDdiNDY2OWQyNDU0YjE5ODcyZTI3NzY1ZTEwZjU1ZmMxZTFkNDAyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTkxLDMgKzkxLDYg
QEAgZmFzdC90ZXh0L2h5cGhlbmF0ZS1sb2NhbGUuaHRtbAogIyBhcyB3ZWxsIGFzIHByZXN1bWFi
bHkgb3RoZXIgbGVvcGFyZCBpbnN0YWxscy4KICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNTI3MQogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1zZWVrYWJsZS1z
dGFsbC5odG1sCisKKyMgQXZhaWxhYmxlIDEwLjYgb3IgbGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZAppbmRleCAwNGI4Mzg0MTBmNjBmODNjZGFlYzI0ZGFlZDJmYWVjZGE1MTI1MGY1
Li4xMGRiMTRhMDg5NjA4NGYwOTExMTcyMWVlMmVlZmU4MzViOWQ4ZTc0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZApAQCAtMjA2LDMgKzIwNiw2IEBAIGZhc3QvaGFybmVz
cy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCiAKICMgTG9hZGluZyBmYWlscyBvbiBUaWdlciB3aXRo
IGVycm9yIC0xMDEyIGFmdGVyIGFza2luZyBOU1VSTENvbm5lY3Rpb24gdG8gY29udGludWUgd2l0
aG91dCBjcmVkZW50aWFscy4KIGh0dHAvdGVzdHMvbWlzYy80MDEtYWx0ZXJuYXRpdmUtY29udGVu
dC5waHAKKworIyBBdmFpbGFibGUgb25seSAxMC42IG9yIGxhdGVyCitlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKaW5kZXggOWJhODViNGJiNjJkNDZi
YmYzODFmNWIzMWYyMTdjZjMwNzFlZTkxNS4uMzU5ODAyOTIzNmM4M2VhZjQyMTE1NjhjZjI1NWYx
NTNjNjIwNWVmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZApAQCAtMjMzLDYg
KzIzMyw3IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1pbi1wcmUuaHRtbAogZWRp
dGluZy9zZWxlY3Rpb24vdXNlci1kcmFnLWVsZW1lbnQtYW5kLXVzZXItc2VsZWN0LW5vbmUuaHRt
bAogZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxhcml0eS5odG1sCiBlZGl0aW5nL3NwZWxs
aW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLWRlbGV0ZVdvcmQu
aHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5o
dG1sCiBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtd29yZC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCA5NmQ3OTNlYmM2YmU3MjdhMDE1ZmMxYjA1MGM3NTFiMDNhMzczYmJi
Li5jNmZkYzYzYjFjOTNiYjQ5NWQ4MjY5MTk4ZjBmYzFmYjc0ZjNhNmU2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKQEAgLTIyOTksNiArMjI5OSw5IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctdGV4dGFyZWEuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDU0MzUKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGlu
ZXMuaHRtbAogCisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBu
b3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0w
MDEuaHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5nL3N0
eWxlIHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKaW5kZXggYjQzZTUyYzVlZTBhOWJjN2JlNjc2MjZiZTk3ZmQwOGI5NzY2MTUzMS4uMWEwOTU4
MzEwM2M2NTRmYTE2NDVjNGNhMjE4OThlN2Y4N2RkNmJhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKQEAgLTg4Myw2ICs4ODMsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1z
dWdnZXN0aW9ucy5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJs
ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKIAorIyBFZGl0
b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgaXMgbm90IGltcGxlbWVudGVkCitl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKwogIyBJbmRl
eGVkREIgaXMgbm90IHlldCBlbmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkM2MxNzliOTIx
Y2EyZjYzOWFiNWNhNjI5MjgyMzhlZGJmNzY0YWZiLi5hOGIwMTQxM2UzYjI4OTkzZTdiYzQ5OWIw
OTY2MDE2NGRkYmVjZTcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAg
ICAgICAgLSBJbnRyb2R1Y2VkIFNwZWxsQ2hlY2tlciB0byBlbmNhcHN1bGF0ZSBhc3luY2hyb25v
dXMgc3BlbGwgY2hlY2tlciBzdGF0ZToKKyAgICAgICAgICBzZXF1ZW5jZSBpZCwgcmVxdWVzdGlu
ZyB0ZXh0IGFuZCB0YXJnZXQgbm9kZS4KKyAgICAgICAgICBUaGlzIGlzIGZpcnN0IHN0ZXAgdG8g
ZGVjb21wb3NlIHNwZWxsLWNoZWNrIHJlbGF0ZWQgY29kZSB0byBzZXBhcmF0ZSBjbGFzcy4KKyAg
ICAgICAgLSBBZGRlZCBFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKSBhbmQKKyAgICAgICAgICBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKCkgdG8gb3B0aW9uYWxseSB1c2UKKyAgICAgICAgICBhc3luYyBzcGVsbGNoZWNrIEFQSSBv
biB0aGUgcGxhdGZvcm0uCisgICAgICAgICAgdGhlc2UgQVBJcyBhcmUgdG91Y2hlZCBieSBTcGVs
bENoZWNrZXIuCisgICAgICAgIC0gVXNlZCBTcGVsbENoZWNrZXIgdG8gY2hlY2sgcGFzdGVkIHRl
c3QuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10
ZXh0LTAwMS5odG1sCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJD
b3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvRWRp
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCk6IFVz
ZWQgU3BlbGxDaGVja2VyIHRvIGNoZWNrIGdpdmVuIHRleHQuCisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OkVkaXRvcik6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6c3BlbGxDaGVja2VyKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hl
Y2tlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpTcGVsbENo
ZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjp+U3BlbGxDaGVja2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja2VyOjpjbGVhclJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U3BlbGxDaGVja2VyOjpyZXF1ZXN0VGV4dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjppc0FzeW5jaHJvbm91c0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjppc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6OmlzQnVzeSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6Omlz
VmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0NoZWNrZWFibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IpOiBBbiBh
c3luYyBjaGVjayBlbnRyeXBvaW50LgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpk
aWRDaGVjayk6IENhbGxlZCBiYWNrIGZyb20gdGhlIGNsaWVudCB0byBub3RpZnkgdGhlIHJlc3Vs
dC4KKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9y
Q2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQKKyAgICAg
ICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
IEFkZGVkCisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKwogMjAxMC0wOS0wOSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgyOTczNjVmMmRlZThkOTVjM2E0ZGIzNDIwZWJk
NTFjZjJkM2IwNzcuLjMxMDNkZjQwMGIzNjIwNTU3MWQ1NzhmNjMwY2MyYjJkODhhNzUyNTkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQpAQCAtMTI3MCw2ICsxMjcwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L2VkaXRpbmcvU21hcnRSZXBsYWNlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFj
ZS5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2ViQ29yZS9l
ZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIu
aCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlXZWJDb3Jl
L2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRU
ZXh0Tm9kZUNvbW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGZhNTZjYTIxZjQ0ZDdkZWJhYmY3ZWU1N2Nh
NWYwMDlmOGE4MzgyZGEuLjU4MWRhMTMzYWJhNWZkMTkxODZhN2JjYTUwZTk0MTU3MDljNjA0MzIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgpAQCAtNDYyLDYgKzQ2Miw3IEBAIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNl
bnRhdGlvbkVQTlNfNUZyYW1lRWoKIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmRDMUVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jdW1lbnRGcmFnbWVu
dEVFRWJiYmJiTlNfMTBFZGl0QWN0aW9uRQogX19aTjdXZWJDb3JlMjNjcmVhdGVGcmFnbWVudEZy
b21Ob2Rlc0VQTlNfOERvY3VtZW50RVJLTjNXVEY2VmVjdG9ySVBOU180Tm9kZUVMbTBFRUUKIF9f
Wk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0ZVByb3BlcnR5TGlzdEV2
CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFya2Vyc0Zvck5vZGVF
UE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92
ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKIF9fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pO
N1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zvck1hcmtl
cnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKQEAgLTg0Myw2ICs4NDQsNyBAQCBf
X1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBfX1pON1dl
YkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZWVxRVJLTlNfMTlSZXNvdXJjZVJlcXVlc3RCYXNlRVMyXworX19aTjdXZWJD
b3JlMTJTcGVsbENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9ySU5TXzE5U3BlbGxDaGVj
a2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEyZ2xvYmFs
T2JqZWN0RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKIF9fWk5LN1dlYkNv
cmUxMEZsb2F0UG9pbnRjdjhfTlNQb2ludEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdlZTdhYjQ5M2RlOWIyNGUzYjQ3ZWNk
OWI2NmI2NWJkMjJiZWM0MzIuLjAxYTVlNjczOWRlMGNhYzhlYjNjNmI4Mjc4MDhhMWE2ZTNjZjk3
NjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0xMzk2LDYgKzEzOTYsOCBAQAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRS
ZXBsYWNlLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlQ0YuY3BwJywKICAg
ICAgICAgICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAnLAorICAgICAgICAgICAgJ2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNr
ZXIuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCcsCiAg
ICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgnLAogICAgICAgICAgICAg
J2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDU1ZGY2NDRiYzFhOTMyNzY4
ZDAxNzIyZTg4Y2ExMzc4MzJiZWQ1NGIuLjdiNGVhZjg0NmRmNjcyNWUzYjQwOGMwOGM0ODZjZDQ0
YzFmNDc4NzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtNjEwLDYgKzYxMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGVkaXRpbmcv
U2VsZWN0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNv
bW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAorICAgIGVkaXRp
bmcvU3BlbGxDaGVja2VyLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNw
cCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcv
U3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjU4ODU0OGU5OGM0YTFkMmFmNzZiNjNmMTQ5NjY2
NTk5OTFiMGE0Yi4uODJjYzAxZDJiN2JiNzZjYWQwYmZlMzIyNjFkZWI5ZDQ2MzE3YWYyYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNjU4NSw2ICszNjU4NSw2MyBA
QAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVsbENoZWNrZXIuY3BwIg0KKwkJCQk+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwZWxsQ2hlY2tlci5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxlZGl0aW5nXFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIg0KIAkJCQk+DQogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNDZlYmIwOTc2NDk5YzE2MDgyZWRiZmQwMTIyOGNlNWYzMmI5NTQ1Ni4uMmFiYWEy
Y2U0MDFlMGNmZjMwNzk2MWM2NGFhODgzYWQ5MjIwNmJiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4NjIsNiArMjg2Miw4IEBACiAJCUE3Nzk3OTI4
MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNDBENkI5RTY0MDAzODUxQjkgLyogSlNJ
bWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFn
ZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlBNzg0OTQx
QjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlw
Ym9hcmQuY3BwICovOyB9OworCQlBNzhGRTEzQjEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVj
a2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovOyB9OworCQlBNzhG
RTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyog
U3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2M0QwQjVDNEM4
MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovOyB9OwogCQlBNzk1NDY0MzBCNUM0Q0I0MDA3
QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLzsg
fTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FBNjZENDExQzVF
RDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLzsgfTsKQEAgLTg3NDQsNiArODc0
Niw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlRGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0lt
YWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdlRGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0Eg
LyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
bGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzhGRTEzOTEyMzY2
QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZp
bGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVsbENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdEYXRhTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyog
RHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhZ0Rh
dGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FBNjZENDExQzVFRDZBMDAx
RDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xMzk5MSw2ICsxMzk5NSw4IEBACiAJCQkJNEI2RkE2RjMwQzM5RTQ4QzAwMDg3MDExIC8q
IFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJNEI2RkE2RjIwQzM5RTQ4QzAwMDg3MDExIC8qIFNt
YXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZBNkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBTbWFydFJl
cGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hl
Y2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tl
ci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21t
YW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50
Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0MDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdFRleHRO
b2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0xOTg5Miw2ICsxOTg5OCw3IEBACiAJCQkJNzU3OEY5MEQx
MURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc4RkUxM0MxMjM2NkIxMDAwQUNFOEQwIC8q
IFNwZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTIwOTlFNjQ5MjAwNTZF
NTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE0
MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250YWluaW5n
RWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI0NDQsNiArMjI0NTEsNyBAQAog
CQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVj
aElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzhGRTEzQjEyMzY2QjEw
MDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTEx
MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMzA5RTEzMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxNTA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRU
ZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAKaW5kZXggZDNiODM3NmRiYjVjYTRhYzdkNWZkYzdhNTEwY2E2Y2M2MWI0NGJhOS4uMmYw
NzQ2YTgxZWM1NjBmNGE1NDNjMTNmNmFmMWMzZTg1MTRiMTljYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAg
LTY1LDYgKzY1LDcgQEAKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJTcGVsbENo
ZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5j
bHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0zMTQsOSArMzE1LDE0IEBAIHZvaWQgRWRpdG9yOjpw
YXN0ZUFzUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgcGFzdGluZ1RleHQsIGJvb2wgc21hcnRSZXBs
YWNlKQogICAgIGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm47CiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KFRleHRFdmVudDo6Y3JlYXRlRm9y
UGxhaW5UZXh0UGFzdGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHBhc3RpbmdUZXh0LCBzbWFydFJl
cGxhY2UpLCBlYyk7CisgICAgdGFyZ2V0LT5kaXNwYXRjaEV2ZW50KFRleHRFdmVudDo6Y3JlYXRl
Rm9yUGxhaW5UZXh0UGFzdGUobV9mcmFtZS0+ZG9tV2luZG93KCksIHBhc3RpbmdUZXh0LCBzbWFy
dFJlcGxhY2UpLCBlYyk7IAorCisgICAgTm9kZSogbm9kZVRvQ2hlY2sgPSBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5mb2N1c2VkTm9kZSgpOworICAgIGlmIChtX3NwZWxsQ2hlY2tlci0+aXNBc3luY2hy
b25vdXNBdmFpbGFibGVGb3Iobm9kZVRvQ2hlY2spKQorICAgICAgICBtX3NwZWxsQ2hlY2tlci0+
cmVxdWVzdENoZWNraW5nRm9yKG5vZGVUb0NoZWNrKTsKIH0KIAorCiB2b2lkIEVkaXRvcjo6cGFz
dGVBc0ZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gcGFzdGluZ0ZyYWdtZW50
LCBib29sIHNtYXJ0UmVwbGFjZSwgYm9vbCBtYXRjaFN0eWxlKQogewogICAgIE5vZGUqIHRhcmdl
dCA9IGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKTsKQEAgLTEwNTMsNiArMTA1OSw3IEBA
IEVkaXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBieSBkZWZh
dWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNoZXMg
SUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKICAgICAs
IG1fa2lsbFJpbmcoYWRvcHRQdHIobmV3IEtpbGxSaW5nKSkKKyAgICAsIG1fc3BlbGxDaGVja2Vy
KG5ldyBTcGVsbENoZWNrZXIoZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVkaXRvckNs
aWVudCgpIDogMCkpCiAgICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyKHRoaXMsICZFZGl0b3I6
OmNvcnJlY3Rpb25QYW5lbFRpbWVyRmlyZWQpCiB7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzk1NTJiNDU2
YjlkMDM0YzRkYzRiYmVkYzM0NDUxMDk3OGE0MjZlNy4uNWI3NmYwODk5NDI1M2I5ZTdkZWNjNTNi
NjkxNTJmZDVmMGMwZDUzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisr
KyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFzcyBIaXRU
ZXN0UmVzdWx0OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xhc3MgU2lt
cGxlRm9udERhdGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4
dEV2ZW50OwogCkBAIC0yOTMsNiArMjk0LDcgQEAgcHVibGljOgogICAgIFZpc2libGVTZWxlY3Rp
b24gc2VsZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJpbmcqIGtpbGxSaW5n
KCkgY29uc3QgeyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNwZWxsQ2hlY2tlciog
c3BlbGxDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIuZ2V0KCk7IH0KIAog
ICAgIEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0zMzMsNiArMzM1LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlOwog
ICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tp
bGxSaW5nOworICAgIE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwogICAgIFJl
ZlB0cjxSYW5nZT4gbV9yYW5nZVRvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsKICAgICBTdHJpbmcg
bV9zdHJpbmdUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgVGltZXI8RWRpdG9yPiBtX2Nv
cnJlY3Rpb25QYW5lbFRpbWVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hl
Y2tlci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZDEyN2I3MjllNGU3NzVkYWE3ZDUyZDQyM2I1YTI1Mzc1MzFmNWRlCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTAsMCArMSwxNjkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlICJQb3NpdGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIKKyNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVsbENo
ZWNrZXI6OlNwZWxsQ2hlY2tlcihFZGl0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKKyAgICAsIG1fcmVxdWVzdFNlcXVlbmNlKDApCit7Cit9CisKK1NwZWxsQ2hlY2tl
cjo6flNwZWxsQ2hlY2tlcigpCit7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppbml0UmVxdWVz
dChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihu
b2RlKSk7CisKKyAgICBTdHJpbmcgdGV4dDsKKyAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNU
ZXh0RmllbGQoKSkKKyAgICAgICAgdGV4dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQq
Pihub2RlKS0+dmFsdWUoKTsKKyAgICBlbHNlIGlmIChub2RlLT5yZW5kZXJlcigpLT5pc1RleHRB
cmVhKCkpCisgICAgICAgIHRleHQgPSBzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4o
bm9kZSktPnZhbHVlKCk7CisgICAgZWxzZQorICAgICAgICB0ZXh0ID0gbm9kZS0+dGV4dENvbnRl
bnQoKTsKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIG1fcmVxdWVzdE5vZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFRleHQgPSB0ZXh0OworICAg
IG1fcmVxdWVzdFNlcXVlbmNlKys7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTcGVs
bENoZWNrZXI6OmNsZWFyUmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0Tm9kZS5jbGVhcigpOwor
ICAgIG1fcmVxdWVzdFRleHQgPSBTdHJpbmcoKTsKK30KKworTm9kZSogU3BlbGxDaGVja2VyOjpy
ZXF1ZXN0VGV4dE5vZGUoKSBjb25zdAoreworICAgIC8vIFJldHJpZXZlIHRoZSBmaXJzdCAnI3Rl
eHQnIG5vZGUgdXNlZCBieSByZW5kZXJlcnMuIEZvciBhIDx0ZXh0YXJlYT4KKyAgICAvLyBlbGVt
ZW50LCBhIHNwZWxsY2hlY2tlciBkaXJlY3RseSBhZGRzIHNwZWxsaW5nIG1hcmtlcnMgdG8gdGhl
IHNoYWRvdyBub2RlcworICAgIC8vIHVzZWQgYnkgcmVuZGVyZXJzLCBpLmUuIGFkZGluZyBzcGVs
bGluZyBtYXJrZXJzIHRvIGEgRE9NIG5vZGUgZG9lcyBub3QKKyAgICAvLyBhZGQgbWFya2VycyB0
byB0aGUgbm9kZSB1c2VkIGJ5IHNwZWxsY2hlY2tlcnMuIFRoZXJlZm9yZSwgd2UgZGlyZWN0bHkK
KyAgICAvLyByZXRyaWV2ZSB0aGUgc2hhZG93IG5vZGUgZnJvbSB0aGUgRE9NIG5vZGUuCisgICAg
Tm9kZSogbm9kZSA9IG1fcmVxdWVzdE5vZGUuZ2V0KCk7CisgICAgZm9yIChjb25zdCBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsgcmVuZGVyZXI7IHJlbmRlcmVyID0g
cmVuZGVyZXItPmNoaWxkQXQoMCkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyLT5pc1RleHQoKSkK
KyAgICAgICAgICAgIHJldHVybiByZW5kZXJlci0+bm9kZSgpOworICAgIH0KKyAgICByZXR1cm4g
MDsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5hYmxlZCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0FzeW5jaHJvbm91
c0F2YWlsYWJsZUZvcihOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBpc0NoZWNrZWFi
bGUobm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgpOworfQorCiti
b29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0
Tm9kZS5nZXQoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzVmFsaWQoaW50IHNlcXVlbmNl
KSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3ROb2RlLmdldCgpICYmIG1fcmVxdWVzdFRl
eHQubGVuZ3RoKCkgJiYgbV9yZXF1ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7Cit9CisKK2Jvb2wg
U3BlbGxDaGVja2VyOjppc0NoZWNrZWFibGUoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICByZXR1
cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxsQ2hlY2tlcjo6cmVx
dWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGlzQXN5bmNocm9ub3Vz
QXZhaWxhYmxlRm9yKG5vZGUpKTsKKworICAgIGlmICghaW5pdFJlcXVlc3Qobm9kZSkpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodGhpcywg
bV9yZXF1ZXN0U2VxdWVuY2UsIG1fcmVxdWVzdFRleHQpOworfQorCit2b2lkIFNwZWxsQ2hlY2tl
cjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVja2luZ1Jlc3Vs
dD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFpc1ZhbGlkKHNlcXVlbmNlKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgTm9kZSogbm9kZSA9IHJlcXVlc3RUZXh0Tm9kZSgpOworICAgIGlmICghbm9k
ZSkgeworICAgICAgICBjbGVhclJlcXVlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGludCBzdGFydE9mZnNldCA9IDA7CisgICAgUG9zaXRpb25JdGVyYXRvciBzdGFydCA9IFBv
c2l0aW9uKG5vZGUsIDApOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IERvY3VtZW50TWFya2Vy
OjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIp
CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBUbyBhdm9pZCBtb3ZpbmcgdGhl
IHBvc2l0aW9uIGJhY2t3YXJkLCB3ZSBhc3N1bWUgdGhlIGdpdmVuIHJlc3VsdHMgYXJlIHNvcnRl
ZCB3aXRoCisgICAgICAgIC8vIHN0YXJ0T2Zmc2V0IGFzIHRoZSBvbmVzIHJldHVybmVkIGJ5IFtO
U1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgICAgICBBU1NFUlQo
c3RhcnRPZmZzZXQgPD0gcmVzdWx0c1tpXS5sb2NhdGlvbik7CisgICAgICAgIGZvciAoOyBzdGFy
dE9mZnNldCA8IHJlc3VsdHNbaV0ubG9jYXRpb247ICsrc3RhcnRPZmZzZXQpCisgICAgICAgICAg
ICBzdGFydC5pbmNyZW1lbnQoKTsKKworICAgICAgICBQb3NpdGlvbkl0ZXJhdG9yIGVuZCA9IHN0
YXJ0OworICAgICAgICBmb3IgKGludCBsZW5ndGggPSAwOyBsZW5ndGggPCByZXN1bHRzW2ldLmxl
bmd0aDsgKytsZW5ndGgpCisgICAgICAgICAgICBlbmQuaW5jcmVtZW50KCk7CisKKyAgICAgICAg
Ly8gVXNlcnMgb3IgSmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMgbWF5IGNoYW5nZSB0ZXh0IHdoaWxl
IGEgc3BlbGwtY2hlY2tlciBjaGVja3MgaXRzCisgICAgICAgIC8vIHNwZWxsaW5ncyBpbiB0aGUg
YmFja2dyb3VuZC4gVG8gYXZvaWQgYWRkaW5nIG1hcmtlcnMgdG8gdGhlIHdvcmRzIG1vZGlmaWVk
IGJ5IHVzZXJzIG9yCisgICAgICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2
ZSB0aGUgd29yZHMgaW4gdGhlIHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUgdGhlbSB3aXRo
CisgICAgICAgIC8vIHRoZSBvcmlnaW5hbCBvbmVzLgorICAgICAgICBSZWZQdHI8UmFuZ2U+IHJh
bmdlID0gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKTsKKyAgICAg
ICAgU3RyaW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHNv
dXJjZSA9IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24sIHJlc3Vs
dHNbaV0ubGVuZ3RoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAg
ICAgICAgIG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgp
LCByZXN1bHRzW2ldLnR5cGUpOworICAgIH0KKworICAgIGNsZWFyUmVxdWVzdCgpOworfQorCisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TcGVs
bENoZWNrZXIuaCBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NWE1YmU5NmNkMTBhMTMwNmVjZmJiODIxNTc0YWMyMjUxNjgzOGJiCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBTcGVsbENoZWNrZXJfaAorI2RlZmluZSBTcGVsbENoZWNrZXJfaAorCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFZGl0
b3JDbGllbnQ7CisKK3N0cnVjdCBTcGVsbENoZWNraW5nUmVzdWx0IHsKKyAgICBTcGVsbENoZWNr
aW5nUmVzdWx0KCkKKyAgICAgICAgOiB0eXBlKERvY3VtZW50TWFya2VyOjpTcGVsbGluZykKKyAg
ICAgICAgLCBsb2NhdGlvbigwKQorICAgICAgICAsIGxlbmd0aCgwKQorICAgIHsKKyAgICB9CisK
KyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlOworICAgIGludCBsb2NhdGlvbjsK
KyAgICBpbnQgbGVuZ3RoOworfTsKKworY2xhc3MgU3BlbGxDaGVja2VyIHsKK3B1YmxpYzoKKyAg
ICBleHBsaWNpdCBTcGVsbENoZWNrZXIoRWRpdG9yQ2xpZW50Kik7CisgICAgflNwZWxsQ2hlY2tl
cigpOworCisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsKKyAgICBib29s
IGlzQXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKE5vZGUqKSBjb25zdDsKKyAgICBib29sIGlzQnVz
eSgpIGNvbnN0OworICAgIGJvb2wgaXNWYWxpZChpbnQgc2VxdWVuY2UpIGNvbnN0OworICAgIGJv
b2wgaXNDaGVja2VhYmxlKE5vZGUqIG5vZGUpIGNvbnN0OworICAgIHZvaWQgcmVxdWVzdENoZWNr
aW5nRm9yKE5vZGUqKTsKKyAgICB2b2lkIGRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVj
dG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+Jik7CisKK3ByaXZhdGU6CisgICAgYm9vbCBpbml0UmVx
dWVzdChOb2RlKik7CisgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKKyAgICBOb2RlKiByZXF1ZXN0
VGV4dE5vZGUoKSBjb25zdDsKKworICAgIEVkaXRvckNsaWVudCogbV9jbGllbnQ7CisKKyAgICBS
ZWZQdHI8Tm9kZT4gbV9yZXF1ZXN0Tm9kZTsKKyAgICBTdHJpbmcgbV9yZXF1ZXN0VGV4dDsKKyAg
ICBpbnQgbV9yZXF1ZXN0U2VxdWVuY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBTcGVsbENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBkMWU0MDZj
OWQ5NWIyYTYwZWEwNWNlMmQwMjNhZGFiOGIxMjViODA0Li45Nzk2M2FhYjNiNjY1MDM3NDRhZjJl
ZTU5YWY4MjNmNmIwYzMxYmU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDc1LDggKzQ3NSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3Ry
aW5nJiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sKSB7IH0KLQotCisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHsgfQogfTsK
IAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0Vk
aXRvckNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IDRhMTkyZDc0
MWExMjQxZDhlMTg5NzU4YTNiOTEwYTc4ZTA0NmFmOTQuLjEyYjk5MDMwMmEzMDU2ZjlmMmY3NzVk
ZDgxMjg2NzkwYjcxYWQwZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQu
aAorKysgYi9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xh
c3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTm9kZTsKIGNsYXNz
IFJhbmdlOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKIGNs
YXNzIFZpc2libGVQb3NpdGlvbjsKIApAQCAtMTkyLDYgKzE5Myw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmlu
Zz4mIGd1ZXNzZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3Rh
dGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFi
bGVkKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggMzU3Nzc5YjYyZDUyZmYzNWMwNTY5ZDE1NjFiODBlYTMwYzI3MjE5MS4uODNjNjgwZmY5
NjI0YzliYmFjODNjMmNhNGZmN2I2YzYzNGI2NTcxMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVj
ayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVt
bnRhdGlvbnMuCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAo
V2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggYjA1YTU5MjZiZjcxMTI4NjFjMjUzYTQ2
YzIzNGE2ZDViN2UzMzVkNy4uM2Y3MDUzYjY5ZjNlMjY3MGFlYTg0NGZmOGUxZTRhNzU5YjBhZDhh
NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKQEAgLTExMCw2ICsxMTAs
OCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJp
bmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhlIGZvcm0gYXV0b2ZpbGwgcG9wdXAgZm9yIHxub2Rl
fCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50IGFuZAogICAgIC8vIGl0IGlzIGVtcHR5LiAg
VGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3MgdGhlIHVwIG9yIGRvd24gYXJyb3cgaW4gYQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpp
bmRleCBjNzc4N2IzOGM0YTcwN2QyOWZiNzE1NmMzMzg2MGI4YmQ2ODBlZjJkLi45MjNiMTY2NTI2
ZDljYjQ3NDM2ZTk3ODQyMmI1YTBlY2YzNjQxMGI0IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL0No
YW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEw
LTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3Qg
Y2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgor
ICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcu
a2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggOWY2MGNmYmFkYjQy
ZjA3ZjEzNmJlN2Q0ZTc5YzQyMDk0NDM4ZDFiMi4uNDQ1ZjZkMjUzMDAxMGI5YWJhMzAzNjVmNjVl
OGExZTg1NzM5NWEwMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEVmbC5oCkBAIC0xMTMsNiArMTEzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2Vz
KTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwg
Ym9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAg
RXZhc19PYmplY3QgKm1fdmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYzc5OGIwMjI4NDMzMmY2MGRkZTBkNTg1YTVmNWU1
NDRmYTVjYWFjZS4uZmQ2NGQxZTNlNDZmY2VmMDhhYjRlMzU4NzYyOWZmYzQxNzI5ODI0MiAxMDA2
NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0
dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0wOCAgTWFyaW8gU2FuY2hleiBQcmFk
YSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJv
Ymluc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKaW5k
ZXggZjlmZjgyZTAwYzRhMzBmNjYyYzFkYTMzZmIzYTVhOTAxMTlkMzA1OS4uZjY4ODhkNWI1MTk5
NmU0Njc5MDg2MDM0NjMzNzE4NzU1ODY3MjhjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0xMzIsNiArMTMyLDggQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0
cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVs
bENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogICAgIHByaXZhdGU6CiAg
ICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCmluZGV4IDk4NmIwMGY5ZDIzZDli
MGVjZDc5NGM0ZmY0ZmZiZTI1OWM2NmY4NWEuLmY5MGRiZDUzNzQxNjk3MzU0OTNhMWUwZTY5NDE5
NmM5ZDA2NjE3YzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA5LTA4ICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDky
CisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudEhhaWt1Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEhhaWt1OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
CisKIDIwMTAtMDgtMDYgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IFNhbSBXZWluaWcKZGlmZiAtLWdpdCBhL1dl
YktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hh
aWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKaW5kZXggNWNiZWMyNzIyMTNj
YzZjZTllN2NhMTFkMGUwNWU2NTJjNmU3N2NkMS4uNDEzOGZiZTAxMjIzNWNjYzE1MDU2MjA2M2Fm
OGFjYWM1ZjBkNDM0MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEhhaWt1LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEhhaWt1LmgKQEAgLTExMCw2ICsxMTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0
b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYp
IHt9CiAKICAgICAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4MGE2YjMxMTA1
YzUxOTE2NDk2YjkxODRlMTk0MWQ3ZGJlNzdkMTZkLi4wNjViZGU5MDQyNDQzZDU3YzQzZGM0MzBl
ODQ0ZDZhOTVlODc4ZDgyIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEwLTA5LTA4ICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDky
CisKKyAgICAgICAgSW1wbGVtZW50ZWQgYXN5bmMgc3BlbGwtY2hlY2sgQVBJcyBvbiBXZWJFZGl0
b3JDbGllbnQuCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbnMgYXJlIHVzaW5nIFtOU1NwZWxs
Q2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10KKyAgICAgICAgd2hpY2ggaXMgYXZhaWxh
YmxlIG9ubHkgb24gTWFjIE9TIDEwLjYgb3IgbGF0ZXIuCisgICAgICAgIAorICAgICAgICBOb3Rl
IHRoYXQgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXSBjb3VsZCBpbnZv
a2UKKyAgICAgICAgdGhlIGNhbGxiYWNrIGJsb2NrIG9uIG9uIG9mIHRoZWlyIHdvcmtlciB0aHJl
YWQsIHNvIHdlIG5lZWQgdG8KKyAgICAgICAgcmV0dXJuIHRoZSByZXN1bHQgdG8gdGhlIG1haW4g
dGhyZWFkIHdoZXJlIFdlYkNvcmUgaXMgcnVubmluZy4KKyAgICAgICAgRm9yIHRoYXQgcHVycG9z
ZSwgd2UgbWFkZSBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGNsYXNzLgorICAgICAgICAK
KyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAw
MS5odG1sCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAg
ICAgKFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6
IEFkZGVkLgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGluaXRXaXRo
U2VuZGVyOldlYkNvcmU6OnNlcXVlbmNlOnJlc3VsdHM6XSk6IEFkZGVkLgorICAgICAgICAoLVtX
ZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIHBlcmZvcm1dKTogQWRkZWQuCisgICAgICAgIChX
ZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKTogQWRkZWQuCisgICAgICAg
ICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDoKKworMjAxMC0wOS0wOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5n
LgogCiAgICAgICAgIHNwZWxsaW5nIHVuZGVybGluZSBnZXRzIGxvc3Qgb24gYmFja3NwYWNlCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBmZTMzZTA1
NDdmOWUzODRhZTRkMDEyZmQyNWUwNmZkNGM4ZjM3ZDE4Li5mYzlhZTQ3OTliZThjN2U1MjE4ZmRk
ZDMxYTcxYTM0ODA3MTEyMjI5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKQEAgLTEzMCw2ICsxMzAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpT
dHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3Rh
dGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQp
OworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlv
blBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0MWNmZjY4MTU3
ZGZjNWMzMDY5MTY1MTZhNDA3OGYxZDA0MzJjYWYzLi5lNTE0Njc2ODU1YTg0MTI5ZGQ3ZmE5ODQ0
OWNmM2ZmNTNjYmZiZTNhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtNTksNiArNTksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJB
cmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9TcGVsbENo
ZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1bnRpbWUv
SW5pdGlhbGl6ZVRocmVhZGluZy5oPgpAQCAtODc1LDMgKzg3Niw4MyBAQCB2b2lkIFdlYkVkaXRv
ckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KKworYm9vbCBXZWJFZGl0b3JDbGllbnQ6
OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAgIC8v
IEVuYWJsZSBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyAoYW5kIGdyYW1tYXIgY2hlY2tpbmcp
IG9ubHkgd2hlbiB3ZSBjb21waWxlIHRoaXMgZmlsZSBvbgorICAgIC8vIE1hYyBPUyBYIDEwLjYg
YW5kIHdlIGNhbiB1c2UgR3JhbmQgQ2VudHJhbCBEaXNwYXRjaCBiZWNhdXNlIHRoZXkgYXJlIHJl
cXVpcmVkIGJ5CisgICAgLy8gW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
Ol0uCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgor
fQorCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpCitAaW50ZXJmYWNlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgOiBO
U09iamVjdAoreworICAgIFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogX3NlbmRlcjsKKyAgICBpbnQg
X3NlcXVlbmNlOworICAgIFJldGFpblB0cjxOU0FycmF5PiBfcmVzdWx0czsKK30KKy0gKGlkKWlu
aXRXaXRoU2VuZGVyOihXZWJDb3JlOjpTcGVsbENoZWNrZXIqKXNlbmRlciBzZXF1ZW5jZTooaW50
KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkqKXJlc3VsdHM7CistICh2b2lkKXBlcmZvcm07Cist
IChXVEY6OlZlY3RvcjxXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0PikgX2NvcmVSZXN1bHRz
OworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlcgor
LSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciopc2VuZGVyIHNlcXVl
bmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0cworeworICAgIHNlbGYg
PSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworICAg
IF9zZW5kZXIgPSBzZW5kZXI7CisgICAgX3NlcXVlbmNlID0gc2VxdWVuY2U7CisgICAgX3Jlc3Vs
dHMgPSByZXN1bHRzOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXBlcmZvcm0KK3sK
KyAgICBfc2VuZGVyLT5kaWRDaGVjayhfc2VxdWVuY2UsIFtzZWxmIF9jb3JlUmVzdWx0c10pOwor
fQorCistIChXVEY6OlZlY3RvcjxXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0PikgX2NvcmVS
ZXN1bHRzCit7CisgICAgTlNBcnJheSogcmVzdWx0cyA9IF9yZXN1bHRzLmdldCgpOworICAgIFdU
Rjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+IGNvcmVSZXN1bHRzKFtyZXN1
bHRzIGNvdW50XSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IFtyZXN1bHRzIGNvdW50
XTsgKytpKSB7CisgICAgICAgIE5TVGV4dENoZWNraW5nVHlwZSB0eXBlID0gW1tyZXN1bHRzIG9i
amVjdEF0SW5kZXg6aV0gcmVzdWx0VHlwZV07CisgICAgICAgIGlmICh0eXBlICYgTlNUZXh0Q2hl
Y2tpbmdUeXBlU3BlbGxpbmcpCisgICAgICAgICAgICBjb3JlUmVzdWx0c1tpXS50eXBlID0gRG9j
dW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgICAgICBlbHNlIGlmICh0eXBlICYgTlNUZXh0Q2hl
Y2tpbmdUeXBlR3JhbW1hcikKKyAgICAgICAgICAgIGNvcmVSZXN1bHRzW2ldLnR5cGUgPSBEb2N1
bWVudE1hcmtlcjo6R3JhbW1hcjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29yZVJlc3Vs
dHNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzOworCisgICAgICAgIE5TUmFu
Z2UgcmFuZ2UgPSBbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSByYW5nZV07CisgICAgICAgIGNv
cmVSZXN1bHRzW2ldLmxvY2F0aW9uID0gcmFuZ2UubG9jYXRpb247CisgICAgICAgIGNvcmVSZXN1
bHRzW2ldLmxlbmd0aCA9IHJhbmdlLmxlbmd0aDsKKyAgICB9CisKKyAgICByZXR1cm4gY29yZVJl
c3VsdHM7Cit9CisKK0BlbmQKKyNlbmRpZgorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBzZXF1
ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJ
R0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAgIE5TUmFuZ2UgcmFuZ2Ug
PSBOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICBOU1J1bkxvb3AqIGN1cnJlbnRM
b29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07CisgICAgW1tOU1NwZWxsQ2hlY2tlciBz
aGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFu
Z2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzowIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0cywgTlNPcnRo
b2dyYXBoeSosIE5TSW50ZWdlcikgeworICAgICAgICAgICAgW2N1cnJlbnRMb29wIHBlcmZvcm1T
ZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGFyZ2V0OltbW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2NdIGluaXRX
aXRoU2VuZGVyOnNlbmRlciBzZXF1ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdIGF1dG9y
ZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDpuaWwgb3Jk
ZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0UnVuTG9vcE1vZGVd
XTsKKyAgICAgICAgfV07CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUu
aAppbmRleCA5Y2I2MjMyMzJiNGExYzNlNTM1YjMxZjZkNDlkNjc0MWJlZTcxOTJmLi43MDI5YWVi
OGMyNjhhZjI5NDdhNzNmOTdiMDM0M2M4ZDU5MjJjNWM2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lUHJpdmF0ZS5oCkBAIC0xNDYsNCArMTQ2LDcgQEAgdHlwZWRlZiBlbnVtIHsKIC8vIFJldHVy
bnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUgc3BlY2lmaWVkIHJh
bmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCiAtIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQp
bG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwogCisvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUg
aXMgYSBzcGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0aGUgZm9jdXNl
ZCBub2RlLgorLy8gVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGZvciBsYXlvdXQgdGVzdHMuCistIChC
T09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwog
QGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VM
b2cKaW5kZXggNmFkNGM2MTNhOGU0MzMzOTk0YjdmZTI0NTNkY2RiNDY0NmIzZTQxMC4uYmE5MmRj
ZDI4YjljYWYxODc3NGFlNmNiMDQyZGI3N2Y1NzAzOWRhMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5v
dCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKwogMjAxMC0wOS0wOCAgUGV0ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCmRpZmYgLS1naXQgYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IDdkOTlkMjIyZDgzNmYxMDdmNmEwM2U2N2E4
MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0NGI3NjdmZTQyOTVjMmIwYmFmMDljNzg1MWMwYmQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisr
KyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMDcsNiAr
MTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikg
e30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOTFkMGI3ZmJiNGZiZmQ0
MjQwMjg3NTIxYjM5ODdkNzE0NDNlYmM4Ni4uMGJlMzU2MTE4MmEwZTc5NGI2ZmQzOTVmYmY0MjE2
NmE4ODU5ZWRjMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOS0wOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisg
ICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTA4ICBQZXRlciBLYXN0aW5n
ICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQsIGJ1aWxkIGZp
eC4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDhi
ZTZkZTkwYzIxZjRlMTllZmMyZmZmYjNhN2FkZTRjZmQ0OGVlMzMuLmU4YjM3YzJlMWI3Nzc4OWY0
ZGJmNmIzYjhlZDE0MWYwNTJlMjllNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaApAQCAtMTExLDYgKzExMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25z
dCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKaW5kZXggZWExMDZmZTI4MTM0MTZjNTJjOTg1Yjg5MzdlZjE3OTYwNjgzM2Y1ZS4uZmI0NDE5
MTM0ZTQ3N2FmZWI5OGIyODdkOTU1NWJhMDZjMTFlMGE2OCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBk
b2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRh
dGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgor
ICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKwogMjAxMC0wOC0zMSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAcGFy
b2dhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNl
bi4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRX
aW5DRS5oIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgK
aW5kZXggOTQzZjU5MTc1NmM3ZmJjMGM5YzA0ZGViOTY1MTc2ZDI1YWIyODJhOS4uNDMxNWY2OWQ3
YTZlYzQxZWM3NmJlZmJjMjE2ZmM0OWRkOGIzMGFlNCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYs
IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5w
dXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9
CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggNzU3OTgxZmIzZWI4MGU1
ODg0YjQyNTkxZDhkNWQyZTNhYWY1YmUyMy4uNmNkOTIyNzRmYWUxNjU2NzlkZGIwYTk3ZDE1NmRm
MWE1ODM0NWQ0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQv
d3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAg
ICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJLaXRTdXBw
b3J0L0VkaXRvckNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRXeDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA4LTMxICBE
YXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBX
ZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRX
eC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAppbmRleCBiZTVj
OThhZjI5N2RlMTBlMmY2ZTU2Njg1ZjJlZjYwNjZlOWQyZmVmLi5iYmQxY2RlZmE1YTcwNTg2MDlh
M2M5NzYxMTFkYzNmNTJmNjUzYTViIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNs
aWVudFd4LmgKQEAgLTExMiw2ICsxMTIsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2
b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwg
Y29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKZGlm
ZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODU5
NDgxYTA3MDcxODQzMDQ1NjM1NzNjZDI5MzIyNTM2ZWM1Mjk5OS4uMGYwOTE2OWMzZGIyYjg0MWE3
M2RlYjU2ZmM5ZWQzZWUzNzA5OWMzNyAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0wOS0wOCAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5
MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaDoKKwogMjAxMC0wOS0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDM1N2M2NmYxZDZj
NWM5YWNlNjQ1NGRhOGVhYjdjN2Q0YjQxNDg1NzAuLjlkZDFhYTBjNmY1ZTBmMDhiNTQ1MzFmOTQ1
YjE3ZGI1MWMxNjM3MjggMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00ODAsNiArNDgwLDE3IEBAIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKwog
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiB2b2lkIFdlYkVk
aXRvckNsaWVudDo6c2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVk
aXRvciopCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggYzc1MjFmNzhmMTI5YTAzMDY5NTZmNGQyYTJkZmUwZDU0Yjgw
Zjg2Zi4uYzEwYjVjNDY5ZWY0NzBlNjI4NzkzN2FiYTZkOTU0MmJiOTNlNTJhOSAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisr
KyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApA
QCAtMTMxLDYgKzEzMSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgVmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNv
bnN0IFdURjo6U3RyaW5nJik7CisKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6
OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0
cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0
aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70518</attachid>
            <date>2010-10-12 02:36:16 -0700</date>
            <delta_ts>2010-10-13 01:59:33 -0700</delta_ts>
            <desc>took care of textInput event</desc>
            <filename>bug-40092-20101012183613.patch</filename>
            <type>text/plain</type>
            <size>63769</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MzM4ODIwYWU4MGU2NDAwNmZjNDRhNjllNWRiZTZiNDBmM2IyMGY4Li5jMzAxNjY4
OGQ4YTk4NjdmOTU3MDFmYjhjMGM1ZDU5NWRiNGRhMzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0wNyAgTmlrb2xhcyBaaW1tZXJt
YW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNj
aHVsemUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10
ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
Y3JpcHQtdGVzdHMvc3BlbGxjaGVjay1wYXN0ZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODhhNTdlY2ZjNTE2
ZDNmZDgyNjAzNzdjNDY0ZTA3YmYwNzYzZmFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zY3JpcHQtdGVzdHMvc3BlbGxjaGVjay1wYXN0ZS5qcwpAQCAt
MCwwICsxLDk1IEBACisKK2Rlc2NyaXB0aW9uKCdGb3IgQnVnIDQwMDkyOiBTcGVsbCBjaGVja2lu
ZyBmb3IgcGFzdGVkIHRleHQuJyk7CisKK2xheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKwordmFyIHRlc3RSb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citk
b2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZSh0ZXN0Um9vdCwgZG9jdW1lbnQuYm9keS5maXJzdENo
aWxkKTsKKwordmFyIHRlc3RUZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRh
cmVhIik7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0VGV4dEFyZWEpOworCit2YXIgdGVzdElu
cHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK3Rlc3RJbnB1dC5zZXRBdHRy
aWJ1dGUoInR5cGUiLCAidGV4dCIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdElucHV0KTsK
KwordmFyIHRlc3RFZGl0YWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordGVz
dEVkaXRhYmxlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwgInRydWUiKTsKK3Rlc3RS
b290LmFwcGVuZENoaWxkKHRlc3RFZGl0YWJsZSk7CisKK3ZhciB0ZXN0U291cmNlUGxhaW4gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RTb3VyY2VQbGFpbi5pbm5lckhUTUwg
PSAiZm9vIGJhciI7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0U291cmNlUGxhaW4pOworCit2
YXIgdGVzdFNvdXJjZURlY29yYXRlZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
dGVzdFNvdXJjZURlY29yYXRlZC5pbm5lckhUTUwgPSAiZm88Yj5vIGJhPC9iPnIiOwordGVzdFJv
b3QuYXBwZW5kQ2hpbGQodGVzdFNvdXJjZURlY29yYXRlZCk7CisKK3ZhciBzZWwgPSB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCk7CisKK3ZhciB0ZXN0cyA9IFtdOworCitmdW5jdGlvbiBkb25lKCkKK3sK
KyAgICB2YXIgbmV4dCA9IHRlc3RzLnNoaWZ0KCk7CisgICAgaWYgKG5leHQpCisgICAgICAgIHJl
dHVybiB3aW5kb3cuc2V0VGltZW91dChuZXh0LCAwKTsKKyAgICB0ZXN0Um9vdC5zdHlsZS5kaXNw
bGF5ID0gIm5vbmUiOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30K
KworZnVuY3Rpb24gdmVyaWZ5TWFya2VyKG5vZGUsIGV4cGVjdGVkTWFya2VkKQoreworICAgIGlm
IChub2RlIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fCBub2RlIGluc3RhbmNlb2YgSFRN
TFRleHRBcmVhRWxlbWVudCkgeworICAgICAgICBub2RlLmZvY3VzKCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKG5vZGUpOworICAgIH0KKyAgICByZXR1cm4g
dGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcihleHBlY3RlZE1hcmtlZFswXSwg
ZXhwZWN0ZWRNYXJrZWRbMV0pOworfQorCitmdW5jdGlvbiBwYXN0ZUFuZFZlcmlmeShzb3VyY2Us
IGRlc3QsIGV4cGVjdGVkTWFya2VkKQoreworICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihzb3Vy
Y2UpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7CisgICAgaWYgKGRlc3QgaW5z
dGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IGRlc3QgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFF
bGVtZW50KSB7CisgICAgICAgIGRlc3QudmFsdWUgPSAiIjsKKyAgICAgICAgZGVzdC5mb2N1cygp
OworICAgIH0gZWxzZSB7CisgICAgICAgIGRlc3QuaW5uZXJIVE1MID0gIiI7CisgICAgICAgIHNl
bC5zZWxlY3RBbGxDaGlsZHJlbihkZXN0KTsKKyAgICB9CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIlBhc3RlIik7CisKKyAgICB2YXIgbnJldHJ5ID0gMTA7CisgICAgdmFyIG5zbGVlcCA9IDE7
CisgICAgZnVuY3Rpb24gdHJpYWwoKSB7IAorICAgICAgICB2YXIgdmVyaWZpZWQgPSB2ZXJpZnlN
YXJrZXIoZGVzdCwgZXhwZWN0ZWRNYXJrZWQpOworICAgICAgICBpZiAodmVyaWZpZWQpIHsKKyAg
ICAgICAgICAgIHRlc3RQYXNzZWQoZGVzdC50YWdOYW1lICsgIiBoYXMgYSBtYXJrZXIgb24gJyIg
KyBzb3VyY2UuaW5uZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG5yZXRyeS0tOworICAgICAgICBpZiAo
MCA9PSBucmV0cnkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZGVzdC50YWdOYW1lICsgIiBz
aG91bGQgaGF2ZSBhIG1hcmtlciBvbiBmb3IgJyIgKyBzb3VyY2UuaW5uZXJIVE1MICsgIiciKTsK
KyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgbnNsZWVwICo9IDI7CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRy
aWFsLCBuc2xlZXApOworICAgIH07CisgICAgdHJpYWwoKTsKK307CisKK3Rlc3RzLnB1c2goZnVu
Y3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdElucHV0LCBbMCwg
M10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3Vy
Y2VEZWNvcmF0ZWQsIHRlc3RJbnB1dCwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9u
KCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRlc3RUZXh0QXJlYSwgWzAsIDNd
KTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNl
RGVjb3JhdGVkLCB0ZXN0VGV4dEFyZWEsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlv
bigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0RWRpdGFibGUsIFswLCAz
XSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJj
ZURlY29yYXRlZCwgdGVzdEVkaXRhYmxlLCBbMCwgMl0pOyB9KTsgLy8gVG8gY2hlY2sgImZvIiBw
YXJ0IG9mIGZvby4KK2RvbmUoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBh
c3RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTNhODczMGI1MmYyNGVjNDQ1YmJlZWE0MjM1
ZjRmZDU4OGExYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitGb3Ig
QnVnIDQwMDkyOiBTcGVsbCBjaGVja2luZyBmb3IgcGFzdGVkIHRleHQuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1MgSU5QVVQgaGFzIGEgbWFya2VyIG9uICdmb28gYmFyJworUEFTUyBJ
TlBVVCBoYXMgYSBtYXJrZXIgb24gJ2ZvPGI+byBiYTwvYj5yJworUEFTUyBURVhUQVJFQSBoYXMg
YSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtlciBvbiAnZm88
Yj5vIGJhPC9iPnInCitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIERJ
ViBoYXMgYSBtYXJrZXIgb24gJ2ZvPGI+byBiYTwvYj5yJworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYWJh
MGMzNDU3MzQ1MzMzMDg1YzhkZTBkMWI4ZGVjMTFjMjA5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbApAQCAtMCww
ICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9qcy10ZXN0LXNlbGVjdGlvbi1zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDJjM2IzN2JiNjIzNTBmNjVm
MWVmNzJmYTMxYjRmMmIxMjg1NjFhMWQuLjljMGRhOGQ5ZjUyZDIwNzc4YjE0MmUzZWIxYjFjNDll
MDBlNTVjNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI3MTksNiArMjcxOSw5IEBAIEJVR1dLNDEzMTEgV0lOIExJ
TlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1c0RvdWJsZTA5Lmh0bWwgPSBJTUFHRQogQlVH
V0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbCA9IEZBSUwK
IEJVR1dLNDE4MzIgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5o
dG1sID0gRkFJTAogCisvLyBOZWVkIHRvIGltcGxlbWVudCBFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKCkKK0JVR1dLNDE0MjMgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stcGFzdGUuaHRtbCA9IFRJTUVPVVQKKwogLy8gRmxha3kgdGVzdHMuCiBCVUc0NDM0NSBMSU5V
WCA6IHN2Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhlZC0wMDkueG1sID0gSU1BR0UgUEFTUwog
QlVHNDQzNDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pvb20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9
IElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMzk4NzRkM2QzMWM5NGMx
MzE1NGExNTEyMzg3MzE2ZGJlNDJjMWEwNy4uMmEyMDk3YjkyYTAwMzU3NGZkOTkxMDMzOWJlODA2
NWNhMWNhOTcwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTEwMTgsNiArMTAxOCw3
IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1hdHRyaWJ1dGUuaHRtbAogZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy10ZXh0YXJlYS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFj
ZS1iZXR3ZWVuLWxpbmVzLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5o
dG1sCiBlZGl0aW5nL3N0eWxlLzUwNjU5MTAuaHRtbAogZWRpdGluZy9zdHlsZS9hcHBsZS1zdHls
ZS1lZGl0YWJsZS1taXguaHRtbAogZWRpdGluZy9zdHlsZS9ibG9jay1zdHlsZS0wMDEuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKaW5kZXggNWVlN2RmNGNlZjNm
ZTA0ODUwYmViNGQzMzZjYWZkNDYxZDdlNTYwNi4uMWJiZjYwMWQ4NjlhOGFjOGU4ODA2MTEwMTFl
N2I3ZjdmMTViNTA0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3Bh
cmQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVk
CkBAIC04NSw2ICs4NSw5IEBAIGZhc3QvdGV4dC9oeXBoZW5hdGUtbG9jYWxlLmh0bWwKICMgU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3MQogaHR0cC90ZXN0
cy9tZWRpYS92aWRlby1zZWVrYWJsZS1zdGFsbC5odG1sCiAKKyMgQXZhaWxhYmxlIDEwLjYgb3Ig
bGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJs
ZSB0ZXN0cyB3aGljaCBzdGFydGVkIGZhaWxpbmcgYWZ0ZXIgcjY2OTYxCiAjIEZhaWx1cmVzIGxv
b2sgbGlrZSBhbiB1bmRlcmx5aW5nIHBsYXRmb3JtIGlzc3VlCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTU0NgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIv
U2tpcHBlZAppbmRleCA5NzFlMDhiODY0MGJhNWIwYjNjNTJkY2E5NmI0ZWMzMzdkYzA3NjZkLi5m
MzZlNDhjY2IwZjNlZDc4MDE3ODQxNTQ5NmJmMjJmNWQ1MjY1ZWMzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZApAQCAtMjA3LDggKzIwNywxMiBAQCBmYXN0L2hhcm5lc3Mv
c2hvdy1tb2RhbC1kaWFsb2cuaHRtbAogIyBMb2FkaW5nIGZhaWxzIG9uIFRpZ2VyIHdpdGggZXJy
b3IgLTEwMTIgYWZ0ZXIgYXNraW5nIE5TVVJMQ29ubmVjdGlvbiB0byBjb250aW51ZSB3aXRob3V0
IGNyZWRlbnRpYWxzLgogaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50LnBo
cAogCisKICMgRGlzYWJsZSBzcGVsbGluZyB0ZXN0cyBmb3IgYXV0b2NvcnJlY3Rpb24gcGFuZWwK
IGVkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tZGVsZXRlLmh0bWwKIGVkaXRpbmcvc3Bl
bGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLXBhc3RlLmh0bWwK
IGVkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLmh0bWwK
LWVkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tc2ltcGxlLmh0bWwKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCitlZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXNpbXBsZS5o
dG1sCisKKyMgQXZhaWxhYmxlIG9ubHkgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRl
eCA4MThiYzliOGM1ZTY5ZjM1YjJiMzYzYjgxOTExMDFjYzczODJlYWM3Li5hNDU5OWUzNGY1YWY0
MGY5NWRlYmFkZjBlM2FmMzZjOTIwMzMzNGNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9T
a2lwcGVkCkBAIC0yMTksNiArMjE5LDcgQEAgZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNr
LWluLXByZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi91c2VyLWRyYWctZWxlbWVudC1hbmQtdXNl
ci1zZWxlY3Qtbm9uZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi93b3JkLWdyYW51bGFyaXR5Lmh0
bWwKIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwKK2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCiBlZGl0aW5nL3VuZG8vdW5kby1kZWxl
dGVXb3JkLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS1yZXZlcnNlZC1zZWxl
Y3Rpb24uaHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXdvcmQuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKaW5kZXggYzEwYjQ3MTk5MGQ1NWEzMjU3NWFjZTkwODczMzc4OTM0
YjZmMjk1ZS4uNTFkMWU2NThlNWU0NjMxZGQzOTliODVmYWJiZjI0MzA2YjI4YTBkMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yMjY2LDYgKzIyNjYsOSBAQCBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1NDM1CiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3
ZWVuLWxpbmVzLmh0bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KCkgaXMgbm90IGltcGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUu
aHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5nL3N0eWxl
IHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQK
aW5kZXggMWY2ZmY5MzZiOTc5N2Q3OWRhMTE5NDNiZGYxMzY1M2I0YzkyOTk1OC4uODljMmY0Mzcx
YWRlYzhjMzMwOTlhZGZlM2VhYTRkZmQ5ZDJlYjQ2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKQEAgLTkwOCw2ICs5MDgsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFj
ZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVk
aXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAogCisj
IEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50
ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgSW5kZXhlZERC
IGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFjMGUwMmE1MWRiY2Ji
MWE0YTE1YjUwNTY5ZjVjMDU3ZWRjMjZkMi4uNzdiMmQzYjY4ZmRkMDI1YTZmMGExZmY5YWUyMGE5
NDQ3NDFlMzRjMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAg
IC0gSW50cm9kdWNlZCBTcGVsbENoZWNrZXIgY2xhc3MgdG8gZW5jYXBzdWxhdGUgYXN5bmNocm9u
b3VzIHNwZWxsCisgICAgICAgICAgY2hlY2tlciBzdGF0ZTogc2VxdWVuY2UgaWQsIHJlcXVlc3Rp
bmcgdGV4dCBhbmQgdGFyZ2V0IG5vZGUuCisgICAgICAgICAgVGhpcyBpcyBmaXJzdCBzdGVwIHRv
IGRlY29tcG9zZSBzcGVsbC1jaGVjayByZWxhdGVkIGNvZGUgdG8KKyAgICAgICAgICBhIHNlcGFy
YXRlIGNsYXNzLgorICAgICAgICAtIEFkZGVkIEVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICAgIEVkaXRvckNsaWVudDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoKSB0byBvcHRpb25hbGx5IHVzZSBhc3luYworICAgICAgICAgIHNw
ZWxsY2hlY2sgQVBJIG9uIHRoZSBwbGF0Zm9ybS4gIHRoZXNlIEFQSXMgYXJlIHRvdWNoZWQgYnkK
KyAgICAgICAgICBTcGVsbENoZWNrZXIuCisgICAgICAgIC0gVXNlZCBTcGVsbENoZWNrZXIgdG8g
Y2hlY2sgcGFzdGVkIHRlc3QuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKTogaW1wbGVtZW50YXRpb24gb2Ygc2hvd0RvY3Vt
ZW50TWFya2VycygpCisgICAgICAgIChzaG93RG9jdW1lbnRNYXJrZXJzKTogQWRkZWQgYW4gZGVi
dWcgdXRpbGl0eSBzaW1pbGFyIHRvIHNob3dSZW5kZXJUcmVlKCkKKyAgICAgICAgKiBkb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmg6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6c2V0T2Zmc2V0SW5MZWFm
Tm9kZSk6IEEgc2V0dGVyIGZvciBQb3NpdGlvbkl0ZXJhdG9yOjptX29mZnNldEluQW5jaG9yLgor
ICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZy
YWdtZW50KTogQWRkZWQgYSBjaGVja2luZyByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpFZGl0b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TWFya2FibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9y
KTogRXh0ZW5kZWQgdG8gc3VwcG9ydCBtb3JlIGJyb2FkZXIgY2FzZS4KKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzcGVsbENoZWNrZXIpOgor
ICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVs
bENoZWNrZXI6On5TcGVsbENoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2Vy
Ojppbml0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmNsZWFyUmVx
dWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzQXZh
aWxhYmxlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNCdXN5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmlzQ2hlY2tlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkSXRl
cmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAg
ICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5nUmVzdWx0KToKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBh
Z2UvRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMTAtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IDcyYWI2NDdiMzcxNGMyN2ExZmZkZDUzOGZiZmRjMTUzMjBhYmVkYTIuLjc2NzVlMTU0
MGJmNzM0OWRjOTI2ZDk3NmExMjQ1MzMwMzk5YTQxYmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTMzNiw2ICsxMzM2
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNl
LmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5oIFwKIAlXZWJDb3JlL2VkaXRp
bmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5j
cHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBcCiAJV2ViQ29yZS9lZGl0aW5n
L1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50
Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IDY1ZDJhZTk0NDRhZjFmOTExNGY0ZTg1MTM4Y2JhZmQ3Y2RlMzMwZjcuLjM0OGQx
ZjE2ODY3MDVjN2M2OWVjZWEyNjY1ZjAwYTdjYTljNWYxOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDY3LDYgKzQ2
Nyw3IEBAIF9fWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfNUZyYW1lRWoK
IF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmRDMUVQTlNfOERvY3VtZW50RU4z
V1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jdW1lbnRGcmFnbWVudEVFRWJiYmJiTlNfMTBFZGl0QWN0
aW9uRQogX19aTjdXZWJDb3JlMjNjcmVhdGVGcmFnbWVudEZyb21Ob2Rlc0VQTlNfOERvY3VtZW50
RVJLTjNXVEY2VmVjdG9ySVBOU180Tm9kZUVMbTBFRUUKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJv
cGVydHlMaXN0V3JpdGVyMTd3cml0ZVByb3BlcnR5TGlzdEV2CitfX1pON1dlYkNvcmUyNERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlcjE0bWFya2Vyc0Zvck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJD
b3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVu
dE1hcmtlcjEwTWFya2VyVHlwZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFy
a2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtl
cjEwTWFya2VyVHlwZUUKQEAgLTg1Myw2ICs4NTQsNyBAQCBfX1pON1dlYkNvcmU5Zm9udENhY2hl
RXYKIF9fWk43V2ViQ29yZTltYWtlUmFuZ2VFUktOU18xNVZpc2libGVQb3NpdGlvbkVTMl8KIF9f
Wk43V2ViQ29yZTlwYWdlQ2FjaGVFdgogX19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1Zh
bHVlRQorX19aTjdXZWJDb3JlMTJTcGVsbENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9y
SU5TXzE5U3BlbGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9v
dE9iamVjdDEyZ2xvYmFsT2JqZWN0RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5n
RXYKIF9fWk5LN1dlYkNvcmUxMEZsb2F0UG9pbnRjdjhfTlNQb2ludEV2CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMzNjdjZWUz
OTg3ZjRmYzcxNTUwMzc3NWIwMzJlZTljNWFlYjMzNTQuLmM3NzcxNTBhY2RiNmUwMzU4OWQ1Yzlk
ODBmOTI2YTZmMTY3ZDIxYmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNDI2LDYgKzE0MjYsOCBAQAogICAgICAgICAgICAg
J2VkaXRpbmcvU21hcnRSZXBsYWNlLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBs
YWNlQ0YuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAnLAor
ICAgICAgICAgICAgJ2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnZWRp
dGluZy9TcGVsbENoZWNrZXIuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRD
b21tYW5kLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgn
LAogICAgICAgICAgICAgJ2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwJywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDQw
OTIxZTQ5OGM3ZDdjNzhkYzYyNGJiODAzOTJlNjE5Y2E1MjQyMTkuLjhiODc5MDg1NjIzZmEyN2E3
OTk2MDY0NDY3ZDdiMTZlYjlkNzU1OGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8K
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODA4LDYgKzgwOCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIGVkaXRpbmcvU2V0
Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5j
cHAgXAorICAgIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdEVs
ZW1lbnRDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAg
XAogICAgIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjU0NmEwOWE2Mzk5Mzhk
NmNkNjc1N2QyNTQ3NmE2NGI3NjdlMTFmYi4uY2UxYWU0YmNiZjJiYTQ0MzkwZTZmMjI0ZTA3ODMz
NWQ1NWFjNWQ4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNzEz
NSw2ICszNzEzNSwxMTQgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmgi
DQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxl
ZGl0aW5nXFNwZWxsQ2hlY2tlci5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQor
CQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAiDQorCQkJCT4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFs
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BsaXRUZXh0Tm9kZUNv
bnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTRiM2NhMjI2ZmQ4MTU1MmMy
Y2UyMWRlMzRjNDBjZDYxNDZkNDg4Mi4uNTdmZDgwMWFkODczYThkODgyOWVhMDM0YjUxZWQ4ZTUz
NTZjYmM5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTMwMDksNiArMzAwOSw4IEBACiAJCUE3Nzk3OTI4MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdl
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
Nzc5NzkyNDBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5
NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBK
U0ltYWdlRGF0YS5oICovOyB9OwogCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJv
YXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlBNzhGRTEz
QjEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBT
cGVsbENoZWNrZXIuY3BwICovOyB9OworCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3Bl
bGxDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAw
N0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1t
ICovOyB9OwogCQlBNzk1NDY0MzBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENC
NDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLzsgfTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4
QzhDIC8qIFJlbmRlckluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0FBNjZENDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNh
dG9yLmNwcCAqLzsgfTsKQEAgLTkwNTYsNiArOTA1OCw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQw
MDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0ltYWdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0ltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThE
MCAvKiBTcGVsbENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVs
bENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4
MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERyYWdEYXRhTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBN0FBNjZENDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDQzOSw2ICsxNDQ0Myw4IEBACiAJ
CQkJNEI2RkE2RjMwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJ
NEI2RkE2RjIwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZB
NkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUx
MzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0Ex
MjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0
OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5
OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0
MDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0yMDU2
MCw2ICsyMDU2Niw3IEBACiAJCQkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElu
cHV0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUg
LyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDEx
RTRFMzI4MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTc4RkUxM0MxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzMDlFMTIwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRl
eHROb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZF
NTgxIC8qIFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjMxNzQsNiArMjMxODEsNyBAQAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2
OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUz
NUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlBNzhGRTEzQjEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTExMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVs
ZW1lbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTEzMDk5RTY0OTIwMDU2
RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMw
OUUxNTA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCmluZGV4IDJiN2ZkODVkN2ZlY2QyZmJjOGM4ZDNlMmM5NTU2ZWE3ZTk5OTkyOGYuLjhj
NTZiNTRjZDViYmMyNTdkOGU4NTIxN2I5ZTk2NDA2ODdhNzE4OTggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcApAQCAtNTI0LDQgKzUyNCwzMiBAQCB2b2lkIERvY3Vt
ZW50TWFya2VyQ29udHJvbGxlcjo6c2V0TWFya2Vyc0FjdGl2ZShOb2RlKiBub2RlLCB1bnNpZ25l
ZCBzdGFydE9mZnNldAogICAgICAgICBub2RlLT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAK
KworI2lmbmRlZiBOREVCVUcKK3ZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpzaG93TWFy
a2VycygpIGNvbnN0Cit7CisgICAgZnByaW50ZihzdGRlcnIsICIlZCBub2RlcyBoYXZlIG1hcmtl
cnM6XG4iLCBtX21hcmtlcnMuc2l6ZSgpKTsKKyAgICBNYXJrZXJNYXA6OmNvbnN0X2l0ZXJhdG9y
IGVuZCA9IG1fbWFya2Vycy5lbmQoKTsKKyAgICBmb3IgKE1hcmtlck1hcDo6Y29uc3RfaXRlcmF0
b3Igbm9kZUl0ZXJhdG9yID0gbV9tYXJrZXJzLmJlZ2luKCk7IG5vZGVJdGVyYXRvciAhPSBlbmQ7
ICsrbm9kZUl0ZXJhdG9yKSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBub2RlSXRlcmF0b3ItPmZp
cnN0LmdldCgpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVwIiwgbm9kZSk7CisgICAgICAg
IE1hcmtlck1hcFZlY3RvclBhaXIqIHZlY3RvclBhaXIgPSBub2RlSXRlcmF0b3ItPnNlY29uZDsK
KyAgICAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiYgbWFya2VycyA9IHZlY3RvclBhaXItPmZp
cnN0OworICAgICAgICB1bnNpZ25lZCBtYXJrZXJDb3VudCA9IG1hcmtlcnMuc2l6ZSgpOworICAg
ICAgICBmb3IgKHVuc2lnbmVkIG1hcmtlckluZGV4ID0gMDsgbWFya2VySW5kZXggPCBtYXJrZXJD
b3VudDsgKyttYXJrZXJJbmRleCkKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICVkOlsl
ZDolZF0oJWQpIiwgbWFya2Vyc1ttYXJrZXJJbmRleF0udHlwZSwgbWFya2Vyc1ttYXJrZXJJbmRl
eF0uc3RhcnRPZmZzZXQsIG1hcmtlcnNbbWFya2VySW5kZXhdLmVuZE9mZnNldCwgbWFya2Vyc1tt
YXJrZXJJbmRleF0uYWN0aXZlTWF0Y2gpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7
CisgICAgfQorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCisjaWZuZGVm
IE5ERUJVRwordm9pZCBzaG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoY29udHJvbGxlcikKKyAg
ICAgICAgY29udHJvbGxlci0+c2hvd01hcmtlcnMoKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuaAppbmRleCA4OTIxYmFhYzU5ZGFlYTlkNzMzZDFmODM3ZjAz
NmNmNjZjMjlmNzVjLi4zNDEwZTdmZjMzZGU0YTJhOWJkM2I5Y2VkYjUzOThmNzMxY2YwOTA3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaApAQCAtNjEsNiArNjEsMTAgQEAg
cHVibGljOgogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4gbWFya2Vyc0Zvck5vZGUoTm9kZSop
OwogICAgIFZlY3RvcjxJbnRSZWN0PiByZW5kZXJlZFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKIAorI2lmbmRl
ZiBOREVCVUcKKyAgICB2b2lkIHNob3dNYXJrZXJzKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxWZWN0b3I8RG9jdW1lbnRNYXJrZXI+LCBWZWN0b3I8
SW50UmVjdD4gPiBNYXJrZXJNYXBWZWN0b3JQYWlyOwogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQ
dHI8Tm9kZT4sIE1hcmtlck1hcFZlY3RvclBhaXIqPiBNYXJrZXJNYXA7CkBAIC02OSw0ICs3Myw4
IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2lmbmRlZiBOREVCVUcK
K3ZvaWQgc2hvd0RvY3VtZW50TWFya2Vycyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIqKTsKKyNlbmRpZgorCiAjZW5kaWYgLy8gRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwIGIvV2ViQ29y
ZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKaW5kZXggZDJjM2EzZjBjZjRlMGYwM2I0MGRiNTQ2
ZDk5YWYxMTAyY2Q1MTQ3Ni4uNDJjYzUxMzcxMjY3Njk5NmU0YmI2OGQxOTViNGM0YWIyZmVmYWJl
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKKysrIGIvV2Vi
Q29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKQEAgLTk4LDYgKzk4LDEzIEBAIHZvaWQgUG9z
aXRpb25JdGVyYXRvcjo6ZGVjcmVtZW50KCkKICAgICB9CiB9CiAKK3ZvaWQgUG9zaXRpb25JdGVy
YXRvcjo6c2V0T2Zmc2V0SW5MZWFmTm9kZShpbnQgb2Zmc2V0KQoreworICAgIEFTU0VSVCghbV9h
bmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpOworICAgIEFTU0VSVCgwIDw9IG9mZnNldCAmJiBv
ZmZzZXQgPD0gbGFzdE9mZnNldEZvckVkaXRpbmcobV9hbmNob3JOb2RlKSk7CisgICAgbV9vZmZz
ZXRJbkFuY2hvciA9IG9mZnNldDsKK30KKwogYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjphdFN0YXJ0
KCkgY29uc3QKIHsKICAgICBpZiAoIW1fYW5jaG9yTm9kZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaCBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaApp
bmRleCA3YWY4OTc3NTkxZDE2YzI5NzkzMTg5MGViZDFhZTA2OWMyZDQ3ZjM2Li4wODMyOWJiMTVj
ZDNlNTIxMDA0NjI5MzU4OGFiN2FhYmQzMGZlNGY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmgKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCkBA
IC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVy
biBtX2FuY2hvck5vZGU7IH0KICAgICBpbnQgb2Zmc2V0SW5MZWFmTm9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fb2Zmc2V0SW5BbmNob3I7IH0KKyAgICB2b2lkIHNldE9mZnNldEluTGVhZk5vZGUoaW50
IG9mZnNldCk7CiAKICAgICBib29sIGF0U3RhcnQoKSBjb25zdDsKICAgICBib29sIGF0RW5kKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGVlMTUyMzc5ZTE1NWIzZDRiMGI3Nzk4ZDY1MjBhZTFl
MTBmOGQ3NTcuLjU5ZGU2YTcxNTc2ZDMyZTUxMzAxYzFhMzE3MGE3MjdhOGYyMTQyNDcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCkBAIC02NSw5ICs2NSwxMSBAQAogI2luY2x1ZGUgIlJlbW92ZUZvcm1hdENvbW1h
bmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIK
KyNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTb3VuZC5oIgor
I2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJU
ZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTM3OCw2ICszODAsMTAg
QEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxE
b2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICAKICAgICBhcHBseUNvbW1hbmQoUmVwbGFj
ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmcmFnbWVudCwg
c2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgbWF0Y2hTdHlsZSkpOwogICAgIHJldmVh
bFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbigpOworCisgICAgTm9kZSogbm9kZVRvQ2hl
Y2sgPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpOworICAgIGlm
IChtX3NwZWxsQ2hlY2tlci0+aXNBc3luY2hyb25vdXNBdmFpbGFibGVGb3Iobm9kZVRvQ2hlY2sp
KQorICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKG5vZGVUb0NoZWNr
KTsKIH0KIAogdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJp
bmcmIHRleHQsIGJvb2wgc2VsZWN0UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKQpAQCAt
MTA4Myw2ICsxMDg5LDcgQEAgRWRpdG9yOjpFZGl0b3IoRnJhbWUqIGZyYW1lKQogICAgIC8vIFRo
aXMgaXMgb2ZmIGJ5IGRlZmF1bHQsIHNpbmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZp
b3IgKHRoaXMgbWF0Y2hlcyBJRSBidXQgbm90IEZGKS4KICAgICAsIG1fc2hvdWxkU3R5bGVXaXRo
Q1NTKGZhbHNlKQogICAgICwgbV9raWxsUmluZyhhZG9wdFB0cihuZXcgS2lsbFJpbmcpKQorICAg
ICwgbV9zcGVsbENoZWNrZXIobmV3IFNwZWxsQ2hlY2tlcihmcmFtZS0+cGFnZSgpID8gZnJhbWUt
PnBhZ2UoKS0+ZWRpdG9yQ2xpZW50KCkgOiAwKSkKICAgICAsIG1fY29ycmVjdGlvblBhbmVsVGlt
ZXIodGhpcywgJkVkaXRvcjo6Y29ycmVjdGlvblBhbmVsVGltZXJGaXJlZCkKICAgICAsIG1fYXJl
TWFya2VkVGV4dE1hdGNoZXNIaWdobGlnaHRlZChmYWxzZSkKIHsKQEAgLTM2MTUsMTIgKzM2MjIs
MjkgQEAgdm9pZCBFZGl0b3I6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBib28KICAgICByZXNwb25kVG9DaGFuZ2VkU2VsZWN0
aW9uKG9sZFNlbGVjdGlvbik7CiB9CiAKK3N0YXRpYyBOb2RlKiBmaW5kRmlyc3RNYXJrYWJsZShO
b2RlKiBub2RlKQoreworICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgIGlmICghbm9kZS0+cmVu
ZGVyZXIoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpZiAobm9kZS0+cmVuZGVy
ZXIoKS0+aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgaWYgKG5v
ZGUtPnJlbmRlcmVyKCktPmlzVGV4dENvbnRyb2woKSkKKyAgICAgICAgICAgIG5vZGUgPSB0b1Jl
bmRlclRleHRDb250cm9sKG5vZGUtPnJlbmRlcmVyKCkpLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRl
eCgxKS5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+Zmly
c3RDaGlsZCgpKQorICAgICAgICAgICAgbm9kZSA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCk7CisgICAgfQor
CisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgRWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxs
aW5nTWFya2VyRm9yKGludCBmcm9tLCBpbnQgbGVuZ3RoKSBjb25zdAogewotICAgIE5vZGUqIG5v
ZGUgPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKS5ub2RlKCk7Ci0gICAgaWYgKCFub2Rl
IHx8ICFub2RlLT5yZW5kZXJlcigpKQorICAgIE5vZGUqIG5vZGUgPSBmaW5kRmlyc3RNYXJrYWJs
ZShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKS5ub2RlKCkpOworICAgIGlmICghbm9kZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpLT5pc1Rl
eHQoKSk7CiAKICAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZCBpbnQ+KGZyb20pOwogICAgIHVuc2lnbmVkIGludCBlbmRPZmZzZXQgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZCBpbnQ+KGZyb20gKyBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDk5ZDZmZTZmYzQw
MmEwNzBjMWQ0ZGJiNDBhZmQxMzgxMzcwNmM4ZTYuLmViNTZiMjBiNzZlNmUxY2RhZTMzNDRlYTgx
NDY1MTFhZWUzNTEzNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysg
Yi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgSGl0VGVz
dFJlc3VsdDsKIGNsYXNzIEtpbGxSaW5nOwogY2xhc3MgUGFzdGVib2FyZDsKIGNsYXNzIFNpbXBs
ZUZvbnREYXRhOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRF
dmVudDsKIApAQCAtMjk5LDYgKzMwMCw3IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlU2VsZWN0aW9u
IHNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqKTsKIAogICAgIEtpbGxSaW5nKiBraWxsUmluZygp
IGNvbnN0IHsgcmV0dXJuIG1fa2lsbFJpbmcuZ2V0KCk7IH0KKyAgICBTcGVsbENoZWNrZXIqIHNw
ZWxsQ2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fc3BlbGxDaGVja2VyLmdldCgpOyB9CiAKICAg
ICBFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IoKSBjb25zdDsKIApAQCAtMzc3LDYgKzM3OSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZTsKICAg
ICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAgIE93blB0cjxLaWxsUmluZz4gbV9raWxs
UmluZzsKKyAgICBPd25QdHI8U3BlbGxDaGVja2VyPiBtX3NwZWxsQ2hlY2tlcjsKICAgICBSZWZQ
dHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5nIG1f
c3RyaW5nVG9CZVJlcGxhY2VkQnlDb3JyZWN0aW9uOwogICAgIFRpbWVyPEVkaXRvcj4gbV9jb3Jy
ZWN0aW9uUGFuZWxUaW1lcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc0
YzVmZWU2YzY2NWFkYmU2OTU2NzllMjczNTliYmM5OGNjOGIxZgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0wLDAgKzEsMTczIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKKwor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgi
CisjaW5jbHVkZSAiUG9zaXRpb25JdGVyYXRvci5oIgorI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVk
ZSAiaHRtbGVkaXRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVsbENoZWNrZXI6
OlNwZWxsQ2hlY2tlcihFZGl0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVu
dCkKKyAgICAsIG1fcmVxdWVzdFNlcXVlbmNlKDApCit7Cit9CisKK1NwZWxsQ2hlY2tlcjo6flNw
ZWxsQ2hlY2tlcigpCit7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppbml0UmVxdWVzdChOb2Rl
KiBub2RlKQoreworICAgIEFTU0VSVChpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihub2RlKSk7
CisKKyAgICBTdHJpbmcgdGV4dCA9IG5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0
Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3ROb2RlID0g
bm9kZTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gdGV4dDsKKyAgICBtX3JlcXVlc3RTZXF1ZW5jZSsr
OworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpjbGVhclJlcXVl
c3QoKQoreworICAgIG1fcmVxdWVzdE5vZGUuY2xlYXIoKTsKKyAgICBtX3JlcXVlc3RUZXh0ID0g
U3RyaW5nKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0FzeW5jaHJvbm91c0VuYWJsZWQo
KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2NsaWVudC0+aXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNBc3lu
Y2hyb25vdXNBdmFpbGFibGVGb3IoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXND
aGVja2VhYmxlKG5vZGUpICYmIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpICYmICFpc0J1c3koKTsK
K30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQnVzeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cmVxdWVzdE5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc1ZhbGlkKGludCBz
ZXF1ZW5jZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBtX3Jl
cXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOworfQor
Citib29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVja2VhYmxlKE5vZGUqIG5vZGUpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKTsKK30KKwordm9pZCBTcGVsbENoZWNr
ZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChpc0FzeW5j
aHJvbm91c0F2YWlsYWJsZUZvcihub2RlKSk7CisKKyAgICBpZiAoIWluaXRSZXF1ZXN0KG5vZGUp
KQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQtPnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KHRoaXMsIG1fcmVxdWVzdFNlcXVlbmNlLCBtX3JlcXVlc3RUZXh0KTsKK30KKworc3RhdGljIGJv
b2wgZm9yd2FyZEl0ZXJhdG9yKFBvc2l0aW9uSXRlcmF0b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFu
Y2UpCit7CisgICAgaW50IHJlbWFpbmluZyA9IGRpc3RhbmNlOworICAgIHdoaWxlICghaXRlcmF0
b3IuYXRFbmQoKSkgeworICAgICAgICBpZiAoaXRlcmF0b3Iubm9kZSgpLT5pc0NoYXJhY3RlckRh
dGFOb2RlKCkpIHsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBsYXN0T2Zmc2V0Rm9yRWRpdGlu
ZyhpdGVyYXRvci5ub2RlKCkpOworICAgICAgICAgICAgaW50IGxhc3QgPSBsZW5ndGggLSBpdGVy
YXRvci5vZmZzZXRJbkxlYWZOb2RlKCk7CisgICAgICAgICAgICBpZiAocmVtYWluaW5nIDwgbGFz
dCkgeworICAgICAgICAgICAgICAgIGl0ZXJhdG9yLnNldE9mZnNldEluTGVhZk5vZGUoaXRlcmF0
b3Iub2Zmc2V0SW5MZWFmTm9kZSgpICsgcmVtYWluaW5nKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVtYWluaW5nIC09IGxhc3Q7
CisgICAgICAgICAgICBpdGVyYXRvci5zZXRPZmZzZXRJbkxlYWZOb2RlKGl0ZXJhdG9yLm9mZnNl
dEluTGVhZk5vZGUoKSArIGxhc3QpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IuaW5j
cmVtZW50KCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOyAgICAKK30KKwordm9pZCBTcGVs
bENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFNwZWxsQ2hlY2tp
bmdSZXN1bHQ+JiByZXN1bHRzKQoreworICAgIGlmICghaXNWYWxpZChzZXF1ZW5jZSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghbV9yZXF1ZXN0Tm9kZS0+cmVuZGVyZXIoKSkgeworICAg
ICAgICBjbGVhclJlcXVlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGludCBz
dGFydE9mZnNldCA9IDA7CisgICAgUG9zaXRpb25JdGVyYXRvciBzdGFydCA9IFBvc2l0aW9uKG1f
cmVxdWVzdE5vZGUsIDApOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IERvY3VtZW50TWFya2Vy
OjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIp
CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBUbyBhdm9pZCBtb3ZpbmcgdGhl
IHBvc2l0aW9uIGJhY2t3YXJkLCB3ZSBhc3N1bWUgdGhlIGdpdmVuIHJlc3VsdHMgYXJlIHNvcnRl
ZCB3aXRoCisgICAgICAgIC8vIHN0YXJ0T2Zmc2V0IGFzIHRoZSBvbmVzIHJldHVybmVkIGJ5IFtO
U1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgICAgICBBU1NFUlQo
c3RhcnRPZmZzZXQgPD0gcmVzdWx0c1tpXS5sb2NhdGlvbik7CisgICAgICAgIGlmICghZm9yd2Fy
ZEl0ZXJhdG9yKHN0YXJ0LCByZXN1bHRzW2ldLmxvY2F0aW9uIC0gc3RhcnRPZmZzZXQpKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIFBvc2l0aW9uSXRlcmF0b3IgZW5kID0gc3RhcnQ7Cisg
ICAgICAgIGlmICghZm9yd2FyZEl0ZXJhdG9yKGVuZCwgcmVzdWx0c1tpXS5sZW5ndGgpKQorICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gVXNlcnMgb3IgSmF2YVNjcmlwdCBhcHBsaWNh
dGlvbnMgbWF5IGNoYW5nZSB0ZXh0IHdoaWxlIGEgc3BlbGwtY2hlY2tlciBjaGVja3MgaXRzCisg
ICAgICAgIC8vIHNwZWxsaW5ncyBpbiB0aGUgYmFja2dyb3VuZC4gVG8gYXZvaWQgYWRkaW5nIG1h
cmtlcnMgdG8gdGhlIHdvcmRzIG1vZGlmaWVkIGJ5IHVzZXJzIG9yCisgICAgICAgIC8vIEphdmFT
Y3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhlIHNwZWNpZmllZCBy
ZWdpb24gYW5kIGNvbXBhcmUgdGhlbSB3aXRoCisgICAgICAgIC8vIHRoZSBvcmlnaW5hbCBvbmVz
LgorICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShtX3JlcXVlc3RO
b2RlLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKTsKKyAgICAgICAgLy8gRklYTUU6IFVzZSB0ZXh0
Q29udGVudCgpIGNvbXBhdGlibGUgc3RyaW5nIGNvbnZlcnNpb24uCisgICAgICAgIFN0cmluZyBk
ZXN0aW5hdGlvbiA9IHJhbmdlLT50ZXh0KCk7CisgICAgICAgIFN0cmluZyBzb3VyY2UgPSBtX3Jl
cXVlc3RUZXh0LnN1YnN0cmluZyhyZXN1bHRzW2ldLmxvY2F0aW9uLCByZXN1bHRzW2ldLmxlbmd0
aCk7CisgICAgICAgIGlmIChkZXN0aW5hdGlvbiA9PSBzb3VyY2UpCisgICAgICAgICAgICBtX3Jl
cXVlc3ROb2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihyYW5nZS5nZXQoKSwg
cmVzdWx0c1tpXS50eXBlKTsKKworICAgICAgICBzdGFydE9mZnNldCA9IHJlc3VsdHNbaV0ubG9j
YXRpb247CisgICAgfQorCisgICAgY2xlYXJSZXF1ZXN0KCk7Cit9CisKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIGIv
V2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMjY0MTZhMjQ0MDQ1
NTc5Y2Q5NDZhYmY3N2JiOTgxMDkyZGQ2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFNwZWxsQ2hlY2tlcl9oCisjZGVmaW5lIFNwZWxsQ2hlY2tlcl9oCisKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVkaXRvckNsaWVudDsKKwor
c3RydWN0IFNwZWxsQ2hlY2tpbmdSZXN1bHQgeworICAgIFNwZWxsQ2hlY2tpbmdSZXN1bHQoKQor
ICAgICAgICA6IHR5cGUoRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKQorICAgICAgICAsIGxvY2F0
aW9uKDApCisgICAgICAgICwgbGVuZ3RoKDApCisgICAgeworICAgIH0KKworICAgIERvY3VtZW50
TWFya2VyOjpNYXJrZXJUeXBlIHR5cGU7CisgICAgaW50IGxvY2F0aW9uOworICAgIGludCBsZW5n
dGg7Cit9OworCitjbGFzcyBTcGVsbENoZWNrZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFNw
ZWxsQ2hlY2tlcihFZGl0b3JDbGllbnQqKTsKKyAgICB+U3BlbGxDaGVja2VyKCk7CisKKyAgICBi
b29sIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpIGNvbnN0OworICAgIGJvb2wgaXNBc3luY2hyb25v
dXNBdmFpbGFibGVGb3IoTm9kZSopIGNvbnN0OworICAgIGJvb2wgaXNCdXN5KCkgY29uc3Q7Cisg
ICAgYm9vbCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3Q7CisgICAgYm9vbCBpc0NoZWNrZWFi
bGUoTm9kZSogbm9kZSkgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdGb3IoTm9kZSop
OworICAgIHZvaWQgZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVj
a2luZ1Jlc3VsdD4mKTsKKworcHJpdmF0ZToKKyAgICBib29sIGluaXRSZXF1ZXN0KE5vZGUqKTsK
KyAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworCisgICAgRWRpdG9yQ2xpZW50KiBtX2NsaWVudDsK
KworICAgIFJlZlB0cjxOb2RlPiBtX3JlcXVlc3ROb2RlOworICAgIFN0cmluZyBtX3JlcXVlc3RU
ZXh0OworICAgIGludCBtX3JlcXVlc3RTZXF1ZW5jZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFNwZWxsQ2hlY2tlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IGZkMjAyNTgzNzBiYjlhM2FjNWM4YWIyNTY0YmY3ZjQ4ODIxMDc4ZjguLjNjM2RiOTljMDgyMzgx
Njk2OGRhMDA1ZDUyMGI3ODIzMThmMmI4YzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00ODAs
OCArNDgwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChj
b25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2V0SW5wdXRNZXRob2RTdGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wpIHsgfQotCi0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikg
eyB9CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXgg
OTdiMDkwMjVjYzQ1MzdlMmEzZWJkOWM3NWEyMTAyMDM5NGVmZTA5ZS4uZDgyNDBiYWYwOTI3Nzgy
ZjhlZWE4N2Q3OWVmYjEyNzFmNzEyOTdmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0VkaXRv
ckNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtNjUsNiArNjUs
NyBAQCBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOb2Rl
OwogY2xhc3MgUmFuZ2U7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBWaXNpYmxlU2VsZWN0
aW9uOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCkBAIC0yMDEsNiArMjAyLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0
b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSA9IDA7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA3MDA1MjM4ZmMyMjA5NzNmMDRiN2U2YjE2ZDdmM2JkYmY5Y2Y2OGUyLi5m
MTRkNjRjYmQ5NzAxYTU4MDhkNTRlNTMyMjM0YjQ0N2FmZTMyM2UzIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBz
cGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIg
aW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMDcgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2Vx
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5Lgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCBiMDVhNTkyNmJmNzExMjg2
MWMyNTNhNDZjMjM0YTZkNWI3ZTMzNWQ3Li4zZjcwNTNiNjlmM2UyNjcwYWVhODQ0ZmY4ZTFlNGE3
NTliMGFkOGE2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTEw
LDYgKzExMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBX
VEY6OlN0cmluZyYpIHt9CiAKICAgICAvLyBTaG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBm
b3IgfG5vZGV8IGlmIGl0IGlzIGFuIEhUTUxJbnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMg
ZW1wdHkuICBUaGlzIGlzIGNhbGxlZCB3aGVuIHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJv
dyBpbiBhCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCmluZGV4IDViNDIzMGRlZTQ2N2Y4MDljMzk3OGQwY2FhYTdkM2MxZDFmYjQxZTcuLjIz
YjZhNTAwMzU3MTgxM2M4YjU3YTUzYjVhNWU4ZjlhZDBjNTJiMzIgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9lZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBk
b2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRh
dGlvbnMuCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjppc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTA2ICBSeXVhbiBDaG9pICA8cnl1
YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVz
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggOWY2
MGNmYmFkYjQyZjA3ZjEzNmJlN2Q0ZTc5YzQyMDk0NDM4ZDFiMi4uNDQ1ZjZkMjUzMDAxMGI5YWJh
MzAzNjVmNjVlOGExZTg1NzM5NWEwMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCkBAIC0xMTMsNiArMTEzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBXVEY6OlZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAg
IHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZh
dGU6CiAgICAgRXZhc19PYmplY3QgKm1fdmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNjIwZGQ0NTEzMjM2YTAwZDE5NGVi
Y2I3MmU4ZWRiYWE2ZmZiY2NjMS4uYjdlZjMyYWYyMzgxNTljNzBiZTFkYmUwYzM2NzNkNzFlMTkw
MzE1NSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAg
IEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzQXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0wNyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgK
aW5kZXggZjlmZjgyZTAwYzRhMzBmNjYyYzFkYTMzZmIzYTVhOTAxMTlkMzA1OS4uZjY4ODhkNWI1
MTk5NmU0Njc5MDg2MDM0NjMzNzE4NzU1ODY3MjhjNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0xMzIsNiArMTMyLDggQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6
OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogICAgIHByaXZhdGU6
CiAgICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC9o
YWlrdS9DaGFuZ2VMb2cgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCmluZGV4IGQ1NWNlNzFlMzYx
NmRjYTMzNTIxMzM5MDIwYzVjNWNmZjQwOWZlODMuLmQ4NGNkMWZhNTZmMWM3MzQ3NmM2OWJkYmEz
MzNlMDNjYWQyMmQ3M2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVk
IHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvckNsaWVudEhhaWt1Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEhhaWt1OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyk6CisKIDIwMTAtMDktMjggIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmggYi9XZWJLaXQvaGFpa3Uv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAppbmRleCA1Y2JlYzI3MjIxM2NjNmNl
OWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3Y2QxLi40MTM4ZmJlMDEyMjM1Y2NjMTUwNTYyMDYzYWY4YWNh
YzVmMGQ0MzQxIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50SGFpa3UuaApAQCAtMTEwLDYgKzExMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxT
dHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhv
ZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wg
ZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30K
IAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ0MjBiZWYzMjA1MGI1
YzljMDAxZmQ1NWNiY2I0NDllOTM0MWQ0NWEuLjAzOTZhMjMxM2Y0ZDE3NmZlNTZiNzUwYTQwYWNi
ZDZhNDFkMzNkNzYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKwor
ICAgICAgICBBZGRlZCBhc3luY2hyb25vdXMgc3BlbGwgY2hlY2tpbmcgQVBJIHRvIFdlYkVkaXRv
ckNsaWVudCB1c2luZworICAgICAgICAtW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nXS4KKyAgICAgICAgTm90ZSB0aGF0IFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIg
aXMgYSBzbWFsbCBjbGFzcyB0byByZWNlaXZlCisgICAgICAgIHJlcXVlc3RlZCBzcGVsbC1jaGVj
a2luZyByZXN1bHQuCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToK
KyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCk6CisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdpdGhT
ZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVzdWx0czpdKToKKyAgICAgICAgKC1bV2ViRWRpdG9y
U3BlbGxDaGVja1Jlc3BvbmRlciBwZXJmb3JtXSk6CisgICAgICAgICgtW1dlYkVkaXRvclNwZWxs
Q2hlY2tSZXNwb25kZXIgV1RGOjpXZWJDb3JlOjpdKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQ
cml2YXRlLmg6CisKIDIwMTAtMTAtMDUgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KQEAgLTgzNCw2
ICs4NTUsMzIgQEAKIAogMjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBz
cGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEltcGxlbWVudGVk
IGFzeW5jIHNwZWxsLWNoZWNrIEFQSXMgb24gV2ViRWRpdG9yQ2xpZW50LgorICAgICAgICBUaGUg
aW1wbGVtZW50YXRpb25zIGFyZSB1c2luZyBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmddCisgICAgICAgIHdoaWNoIGlzIGF2YWlsYWJsZSBvbmx5IG9uIE1hYyBPUyAxMC42
IG9yIGxhdGVyLgorICAgICAgICAKKyAgICAgICAgTm90ZSB0aGF0IFtOU1NwZWxsQ2hlY2tlciBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10gY291bGQgaW52b2tlCisgICAgICAgIHRoZSBjYWxsYmFj
ayBibG9jayBvbiBvbiBvZiB0aGVpciB3b3JrZXIgdGhyZWFkLCBzbyB3ZSBuZWVkIHRvCisgICAg
ICAgIHJldHVybiB0aGUgcmVzdWx0IHRvIHRoZSBtYWluIHRocmVhZCB3aGVyZSBXZWJDb3JlIGlz
IHJ1bm5pbmcuCisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG1hZGUgV2ViRWRpdG9yU3Bl
bGxDaGVja1Jlc3BvbmRlciBjbGFzcy4KKyAgICAgICAgCisgICAgICAgIFRlc3Q6IGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorICAgICAgICAKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6Omlz
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKC1bV2Vi
RWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBpbml0V2l0aFNlbmRlcjpXZWJDb3JlOjpzZXF1ZW5j
ZTpyZXN1bHRzOl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3Bv
bmRlciBwZXJmb3JtXSk6IEFkZGVkLgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyk6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQcml2
YXRlLmg6CisKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KIAogICAgICAgICBzcGVsbGluZyB1
bmRlcmxpbmUgZ2V0cyBsb3N0IG9uIGJhY2tzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggYWQzMjRiOWZhMzlkNjUwMDRkY2QxNzVlN2YxMmY5
NmY3MTg1M2RiYy4uYzQxMmVmOWM5ZDQ0MTMzYmVkNjcwZTViZmNiYjAyNjhkOGUzZjBkYiAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzIsNiAr
MTMyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAg
dmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdU
Rjo6U3RyaW5nJik7CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcm
IHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdl
YkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVs
KGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMmJmMzI1OWY0YTIyYWI2ODYxZDY5ZDEzNjNiNzNjMTNl
ODE4MjhmNi4uNmM3NjEzNmY1Y2Q0Y2Q4YjZiMTIyMTlhNDgzZjg1ZDU1YjgyZDcxMCAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTYzLDYgKzYz
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1T
dHJpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3BlbGxDaGVja2VyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNv
cmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4K
QEAgLTkzMiwzICs5MzMsODMgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1l
dGhvZFN0YXRlKCkKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wpCiB7CiB9CisKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkKK3sKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICAvLyBFbmFibGUgYXN5bmNocm9ub3VzIHNw
ZWxsY2hlY2tpbmcgKGFuZCBncmFtbWFyIGNoZWNraW5nKSBvbmx5IHdoZW4gd2UgY29tcGlsZSB0
aGlzIGZpbGUgb24KKyAgICAvLyBNYWMgT1MgWCAxMC42IGFuZCB3ZSBjYW4gdXNlIEdyYW5kIENl
bnRyYWwgRGlzcGF0Y2ggYmVjYXVzZSB0aGV5IGFyZSByZXF1aXJlZCBieQorICAgIC8vIFtOU1Nw
ZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgIHJldHVybiB0cnVlOwor
I2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorQGludGVyZmFj
ZSBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIDogTlNPYmplY3QKK3sKKyAgICBXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqIF9zZW5kZXI7CisgICAgaW50IF9zZXF1ZW5jZTsKKyAgICBSZXRhaW5Q
dHI8TlNBcnJheT4gX3Jlc3VsdHM7Cit9CistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29yZTo6
U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0Fy
cmF5KilyZXN1bHRzOworLSAodm9pZClwZXJmb3JtOworLSAoV1RGOjpWZWN0b3I8V2ViQ29yZTo6
U3BlbGxDaGVja2luZ1Jlc3VsdD4pIF9jb3JlUmVzdWx0czsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIKKy0gKGlkKWluaXRXaXRoU2VuZGVyOihX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqKXNlbmRlciBzZXF1ZW5jZTooaW50KXNlcXVlbmNlIHJlc3Vs
dHM6KE5TQXJyYXkqKXJlc3VsdHMKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlm
ICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBfc2VuZGVyID0gc2VuZGVyOworICAg
IF9zZXF1ZW5jZSA9IHNlcXVlbmNlOworICAgIF9yZXN1bHRzID0gcmVzdWx0czsKKyAgICByZXR1
cm4gc2VsZjsKK30KKworLSAodm9pZClwZXJmb3JtCit7CisgICAgX3NlbmRlci0+ZGlkQ2hlY2so
X3NlcXVlbmNlLCBbc2VsZiBfY29yZVJlc3VsdHNdKTsKK30KKworLSAoV1RGOjpWZWN0b3I8V2Vi
Q29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4pIF9jb3JlUmVzdWx0cworeworICAgIE5TQXJyYXkq
IHJlc3VsdHMgPSBfcmVzdWx0cy5nZXQoKTsKKyAgICBXVEY6OlZlY3RvcjxXZWJDb3JlOjpTcGVs
bENoZWNraW5nUmVzdWx0PiBjb3JlUmVzdWx0cyhbcmVzdWx0cyBjb3VudF0pOworCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBbcmVzdWx0cyBjb3VudF07ICsraSkgeworICAgICAgICBOU1Rl
eHRDaGVja2luZ1R5cGUgdHlwZSA9IFtbcmVzdWx0cyBvYmplY3RBdEluZGV4OmldIHJlc3VsdFR5
cGVdOworICAgICAgICBpZiAodHlwZSAmIE5TVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nKQorICAg
ICAgICAgICAgY29yZVJlc3VsdHNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpTcGVsbGluZzsK
KyAgICAgICAgZWxzZSBpZiAodHlwZSAmIE5TVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpCisgICAg
ICAgICAgICBjb3JlUmVzdWx0c1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXI7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvcmVSZXN1bHRzW2ldLnR5cGUgPSBEb2N1bWVudE1h
cmtlcjo6QWxsTWFya2VyczsKKworICAgICAgICBOU1JhbmdlIHJhbmdlID0gW1tyZXN1bHRzIG9i
amVjdEF0SW5kZXg6aV0gcmFuZ2VdOworICAgICAgICBjb3JlUmVzdWx0c1tpXS5sb2NhdGlvbiA9
IHJhbmdlLmxvY2F0aW9uOworICAgICAgICBjb3JlUmVzdWx0c1tpXS5sZW5ndGggPSByYW5nZS5s
ZW5ndGg7CisgICAgfQorCisgICAgcmV0dXJuIGNvcmVSZXN1bHRzOworfQorCitAZW5kCisjZW5k
aWYKKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciogc2VuZGVyLCBpbnQgc2VxdWVuY2UsIGNvbnN0IFN0cmluZyYgdGV4
dCkKK3sKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkKKyAgICBOU1JhbmdlIHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5s
ZW5ndGgoKSk7CisgICAgTlNSdW5Mb29wKiBjdXJyZW50TG9vcCA9IFtOU1J1bkxvb3AgY3VycmVu
dFJ1bkxvb3BdOworICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZzp0ZXh0IHJhbmdlOnJhbmdlIHR5cGVzOk5TVGV4dENoZWNraW5n
QWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGluU3BlbGxEb2N1bWVudFdpdGhUYWc6MCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXI6XihO
U0ludGVnZXIsIE5TQXJyYXkqIHJlc3VsdHMsIE5TT3J0aG9ncmFwaHkqLCBOU0ludGVnZXIpIHsK
KyAgICAgICAgICAgIFtjdXJyZW50TG9vcCBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHBlcmZv
cm0pIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDpbW1tXZWJFZGl0
b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBpbml0V2l0aFNlbmRlcjpzZW5kZXIgc2VxdWVu
Y2U6c2VxdWVuY2UgcmVzdWx0czpyZXN1bHRzXSBhdXRvcmVsZWFzZV0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJndW1lbnQ6bmlsIG9yZGVyOjAgbW9kZXM6W05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0Ok5TRGVmYXVsdFJ1bkxvb3BNb2RlXV07CisgICAgICAgIH1dOworI2VuZGlm
Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmggYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKaW5kZXggOWNiNjIzMjMyYjRhMWMz
ZTUzNWIzMWY2ZDQ5ZDY3NDFiZWU3MTkyZi4uNzAyOWFlYjhjMjY4YWYyOTQ3YTczZjk3YjAzNDNj
OGQ1OTIyYzVjNiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0
ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaApAQCAtMTQ2LDQg
KzE0Niw3IEBAIHR5cGVkZWYgZW51bSB7CiAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMgYSBz
cGVsbGluZyBtYXJrZXIgaW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0aGUgZm9jdXNlZCBub2Rl
LgogLSAoQk9PTCloYXNTcGVsbGluZ01hcmtlcjooaW50KWxvY2F0aW9uIGxlbmd0aDooaW50KWxl
bmd0aDsKIAorLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGlzIGEgc3BlbGxpbmcgbWFya2VyIGlu
IHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhlIGZvY3VzZWQgbm9kZS4KKy8vIFRoaXMgZnVuY3Rp
b24gaXMgb25seSBmb3IgbGF5b3V0IHRlc3RzLgorLSAoQk9PTCloYXNTcGVsbGluZ01hcmtlcjoo
aW50KWxvY2F0aW9uIGxlbmd0aDooaW50KWxlbmd0aDsKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDg1NWQwYjJmODgyZTBh
N2QzOTU5NWY5M2FlODg0YmU4YmVlMTgxNmEuLmFmNzJmODEzNjZiYzU4NmU0ZmE3M2FiNWJjY2E3
MjY0NDhjMDk4YzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAg
ICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0
Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFF0OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMDcg
IEtlaXRoIEt5eml2YXQgIDxrZWl0aC5reXppdmF0QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmgKaW5kZXggN2Q5OWQyMjJkODM2ZjEwN2Y2YTAzZTY3YTgyNTMxNWFjNTVhZTNiZi4u
NmRmOWRmNmNjMDQ0Yjc2N2ZlNDI5NWMyYjBiYWYwOWM3ODUxYzBiZCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTEwNyw2ICsxMDcsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3Rv
cjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJs
ZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7fQogCiAgICAgYm9vbCBp
c0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9X
ZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBlODA3MTRhNmI1NjM4NTI0MjUzMjg0OTAxY2NkOGI3
YzU5ZGFkMzc3Li5iZDY5YzE4MWUwMDdhZjMxODEzYmNmZTIzOTAzY2UzMTRjMGNmZGU4IDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1
YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMDQgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0QGFw
cGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50IGFuIGFzc2VydGlvbiBmYWlsdXJlIHdoZW4gdHJ5
aW5nIHRvIGNyZWF0ZSBhIHByb3RlY3Rpb24gc3BhY2UKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDhiZTZkZTkwYzIxZjRlMTllZmMyZmZmYjNhN2Fk
ZTRjZmQ0OGVlMzMuLmU4YjM3YzJlMWI3Nzc4OWY0ZGJmNmIzYjhlZDE0MWYwNTJlMjllNTcgMTAw
NjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysr
IGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTExLDYg
KzExMSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAg
IHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZh
dGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL0No
YW5nZUxvZyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggYzg1ZjkwMjIwZTVlMjNkOWIx
MGZkYTBkYTdjY2Y1ZTlkNjM5NWFiMy4uYzU4ZTA5MWU1ZjA2NzlkNTRjNTYzMGFhN2YxNWVlMjU5
ZDc3ODI4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKwor
ICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0
OjpFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0wOS0yOCAg
SmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50V2luQ0UuaCBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRXaW5DRS5oCmluZGV4IDBhZDBhMTk1MDAyNjY3NDI3NzczNmExNjAwMGI4Y2I4MmI3
ZjBkNmIuLjk5MGFmODE3MGNlYjRlMjVmMDNhYWVlN2ZlMmY0NWI2NjA4YTNmZTkgMTAwNjQ0Ci0t
LSBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCisrKyBi
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCkBAIC05OCw2
ICs5OCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5w
dXRNZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3Qg
V1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlm
ZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4
IGFiYmM4N2I4Nzk5ZmE3OWIwYmU2YzU5ZWU1ZGU1YTc4MzQyYzY4NzMuLmRiZGFkZjY3OWY2MTRj
ZWIyZDBiMDgyYWFkMWQ3NjJhZWM2ZWM1ZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEy
ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sg
cGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAg
ICAgICogV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yQ2xpZW50V3g6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToK
KwogMjAxMC0wOS0yOCAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
RWRpdG9yQ2xpZW50V3guaAppbmRleCBiZTVjOThhZjI5N2RlMTBlMmY2ZTU2Njg1ZjJlZjYwNjZl
OWQyZmVmLi5iYmQxY2RlZmE1YTcwNTg2MDlhM2M5NzYxMTFkYzNmNTJmNjUzYTViIDEwMDY0NAot
LS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKQEAgLTExMiw2ICsxMTIsOCBAQCBw
dWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdl
YkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2
YXRlOgogICAgIFBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTU2MDAwYTdlNzVkMjcyZmNmZTE5MmFjYTA4ZDZlNWQw
NmQ1ZTY0Zi4uNzFmNjExODQxZWVlNzZmMmE2Y2Q2ZWExNTk1NGYwNDRjN2I1MGI2NyAxMDA2NDQK
LS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNo
ZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVt
ZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxMC0xMC0wNiAgSmVzc2llIEJl
cmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3Vs
bGl2YW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCmluZGV4IDIzNWY1Y2UzMWNkYmZjZjUwYjY5ODZjNjBkNjY1ZjljNTgx
ZTFiNmUuLmY3OGY3MjgwNTIwMjM5ZGJiODdkNDZhNjcwNWZlNWM0MzQ0NzFiODEgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCkBAIC00MDIsNCArNDAyLDMzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1l
dGhvZFN0YXRlKGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKKworI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0NvcnJlY3Rp
b25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0
cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmlu
ZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpc21pc3NDb3JyZWN0aW9uUGFu
ZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNGIxZjk5Yzc3ZjIwZjg0YWY4ZGExMjRlZTAy
NWUxYjQwNTg5YzJhMS4uMDk3MjFhMjdkMjdlNTI3ZWZlNTI5OTc1NWEwZWZiNmIxYTIwMTkzZSAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaApAQCAtMTMzLDggKzEzMywxMyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBn
ZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKworICAgIHZpcnR1YWwg
Ym9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwg
Y29uc3QgV1RGOjpTdHJpbmcmKTsKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJl
Y3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNl
ZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlz
bWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CiAgICAgdmlydHVh
bCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70592</attachid>
            <date>2010-10-13 01:59:41 -0700</date>
            <delta_ts>2010-10-13 04:41:12 -0700</delta_ts>
            <desc>Updated to lastest</desc>
            <filename>bug-40092-20101013175939.patch</filename>
            <type>text/plain</type>
            <size>63738</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNjhmMmUxMzYxMWMwODc1ODlhOTdhMGUxNmJkZjk4MmU0MDQyNWJhLi41MmU0MGE5
NmM4OWQzNmIzZGFlNjExZmIxMzUzOGFjYzA2MDNkN2I3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0xMiAgQ3NhYmEgT3N6dHJvZ29u
w6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBRdCBz
cGVjaWZpYyBleHBlY3RlZCBmaWxlIGFmdGVyIHI2OTUxNy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3Rl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU4OGE1N2VjZmM1MTZkM2ZkODI2MDM3N2M0NjRlMDdiZjA3NjNmYWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10
ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzCkBAIC0wLDAgKzEsOTUgQEAKKworZGVzY3JpcHRpb24o
J0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4nKTsKKworbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit2YXIgdGVzdFJvb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRl
c3RSb290LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCit2YXIgdGVzdFRleHRBcmVhID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxk
KHRlc3RUZXh0QXJlYSk7CisKK3ZhciB0ZXN0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOwordGVzdElucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsICJ0ZXh0Iik7Cit0ZXN0
Um9vdC5hcHBlbmRDaGlsZCh0ZXN0SW5wdXQpOworCit2YXIgdGVzdEVkaXRhYmxlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0RWRpdGFibGUuc2V0QXR0cmlidXRlKCJjb250
ZW50RWRpdGFibGUiLCAidHJ1ZSIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdEVkaXRhYmxl
KTsKKwordmFyIHRlc3RTb3VyY2VQbGFpbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwordGVzdFNvdXJjZVBsYWluLmlubmVySFRNTCA9ICJmb28gYmFyIjsKK3Rlc3RSb290LmFwcGVu
ZENoaWxkKHRlc3RTb3VyY2VQbGFpbik7CisKK3ZhciB0ZXN0U291cmNlRGVjb3JhdGVkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlRGVjb3JhdGVkLmlubmVySFRN
TCA9ICJmbzxiPm8gYmE8L2I+ciI7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0U291cmNlRGVj
b3JhdGVkKTsKKwordmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKwordmFyIHRlc3Rz
ID0gW107CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIHZhciBuZXh0ID0gdGVzdHMuc2hpZnQo
KTsKKyAgICBpZiAobmV4dCkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KG5leHQs
IDApOworICAgIHRlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB2ZXJpZnlNYXJrZXIobm9k
ZSwgZXhwZWN0ZWRNYXJrZWQpCit7CisgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MSW5wdXRF
bGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAg
IG5vZGUuZm9jdXMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZWwuc2VsZWN0QWxsQ2hpbGRy
ZW4obm9kZSk7CisgICAgfQorICAgIHJldHVybiB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxs
aW5nTWFya2VyKGV4cGVjdGVkTWFya2VkWzBdLCBleHBlY3RlZE1hcmtlZFsxXSk7Cit9CisKK2Z1
bmN0aW9uIHBhc3RlQW5kVmVyaWZ5KHNvdXJjZSwgZGVzdCwgZXhwZWN0ZWRNYXJrZWQpCit7Cisg
ICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKHNvdXJjZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkNvcHkiKTsKKyAgICBpZiAoZGVzdCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwg
ZGVzdCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgZGVzdC52YWx1
ZSA9ICIiOworICAgICAgICBkZXN0LmZvY3VzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVz
dC5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRlc3QpOwor
ICAgIH0KKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKKworICAgIHZhciBucmV0
cnkgPSAxMDsKKyAgICB2YXIgbnNsZWVwID0gMTsKKyAgICBmdW5jdGlvbiB0cmlhbCgpIHsgCisg
ICAgICAgIHZhciB2ZXJpZmllZCA9IHZlcmlmeU1hcmtlcihkZXN0LCBleHBlY3RlZE1hcmtlZCk7
CisgICAgICAgIGlmICh2ZXJpZmllZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChkZXN0LnRh
Z05hbWUgKyAiIGhhcyBhIG1hcmtlciBvbiAnIiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOwor
ICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgbnJldHJ5LS07CisgICAgICAgIGlmICgwID09IG5yZXRyeSkgeworICAgICAgICAgICAg
dGVzdEZhaWxlZChkZXN0LnRhZ05hbWUgKyAiIHNob3VsZCBoYXZlIGEgbWFya2VyIG9uIGZvciAn
IiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuc2xlZXAgKj0gMjsK
KyAgICAgICAgd2luZG93LnNldFRpbWVvdXQodHJpYWwsIG5zbGVlcCk7CisgICAgfTsKKyAgICB0
cmlhbCgpOworfTsKKwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVz
dFNvdXJjZVBsYWluLCB0ZXN0SW5wdXQsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlv
bigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdElucHV0LCBbMCwg
M10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3Vy
Y2VQbGFpbiwgdGVzdFRleHRBcmVhLCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24o
KSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RUZXh0QXJlYSwgWzAs
IDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291
cmNlUGxhaW4sIHRlc3RFZGl0YWJsZSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9u
KCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0RWRpdGFibGUsIFsw
LCAyXSk7IH0pOyAvLyBUbyBjaGVjayAiZm8iIHBhcnQgb2YgZm9vLgorZG9uZSgpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVlM2E4NzMwYjUyZjI0ZWM0NDViYmVlYTQyMzVmNGZkNTg4YTFiYjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZv
ciBwYXN0ZWQgdGV4dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBJTlBVVCBoYXMg
YSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5v
IGJhPC9iPnInCitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1Mg
VEVYVEFSRUEgaGFzIGEgbWFya2VyIG9uICdmbzxiPm8gYmE8L2I+cicKK1BBU1MgRElWIGhhcyBh
IG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJh
PC9iPnInCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LXBhc3RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJhYmEwYzM0NTczNDUzMzMwODVjOGRlMGQxYjhkZWMx
MWMyMDk4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNo
YXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L3NwZWxsY2hlY2stcGFzdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKaW5kZXggZDcwODU2ZWJhYTQ5ZmNhMjk0ZGJmMmY4NjE5NTUzYWZjMTNlMmEzMy4uZWY2
NGQ3MzQ2ZDJkNDhkMzE1ZTY3M2JmZDU0MjE3YjA0YTc3MjVmOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjcxMSw2
ICsyNzExLDkgQEAgQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFk
aXVzRG91YmxlMDkuaHRtbCA9IElNQUdFCiBCVUdXSzQxODMyIDogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy10ZXh0YXJlYS5odG1sID0gRkFJTAogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwgPSBGQUlMCiAKKy8vIE5lZWQgdG8gaW1w
bGVtZW50IEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKQorQlVHV0s0MTQy
MyA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sID0gVElNRU9VVAorCiAv
LyBGbGFreSB0ZXN0cy4KIEJVRzQ0MzQ1IExJTlVYIDogc3ZnL3pvb20vdGV4dC96b29tLWhpeGll
LW1peGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCiBCVUc0NDM0NiBMSU5VWCA6IHN2Zy96b29tL3Bh
Z2Uvem9vbS1oaXhpZS1taXhlZC0wMDkueG1sID0gSU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAppbmRleCA1N2M1NDhiZWRlOWUzOTM2ZWE1OWU0ZDk2YjQwZWY0ZTRkZjhiOWZkLi43
MTAxYTRhNWU1ZjliZjIyMmYyY2YxZWIyNGFkNGNhNjM1ODBkNjU2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZApAQCAtMTAxOCw2ICsxMDE4LDcgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLWF0dHJpYnV0ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0
YWJsZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbAorZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvc3R5bGUvNTA2NTkxMC5o
dG1sCiBlZGl0aW5nL3N0eWxlL2FwcGxlLXN0eWxlLWVkaXRhYmxlLW1peC5odG1sCiBlZGl0aW5n
L3N0eWxlL2Jsb2NrLXN0eWxlLTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3Bh
cmQvU2tpcHBlZAppbmRleCA0NzVkZmZjYmM1OGUzYWQ4NzAxMDE5NDM3ODg0Y2JjODUxMDEyNDc5
Li5jMzAxOGRhN2Y3NzczMmJkYjEwOGIyMGI2YWMyNTNlOGY4MDkwZTZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTg1LDYgKzg1LDkgQEAgZmFzdC90ZXh0
L2h5cGhlbmF0ZS1sb2NhbGUuaHRtbAogIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM1MjcxCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxs
Lmh0bWwKIAorIyBBdmFpbGFibGUgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlLmh0bWwKKwogIyBEaXNhYmxlIHRlc3RzIHdoaWNoIHN0YXJ0ZWQgZmFpbGlu
ZyBhZnRlciByNjY5NjEKICMgRmFpbHVyZXMgbG9vayBsaWtlIGFuIHVuZGVybHlpbmcgcGxhdGZv
cm0gaXNzdWUKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTQ2
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCmluZGV4IDEwMzllYzhhM2Y4NGY2
NTBmODQ3ZDgwNjkwMjdmMzM1Mjc1ZmU1MTYuLmJmNTEwMWIxOWJmNDBmNjJmYjBlYWVlNDk1NWRj
YjBlYTIyYmIwMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCkBAIC0y
MDcsOCArMjA3LDExIEBAIGZhc3QvaGFybmVzcy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCiAjIExv
YWRpbmcgZmFpbHMgb24gVGlnZXIgd2l0aCBlcnJvciAtMTAxMiBhZnRlciBhc2tpbmcgTlNVUkxD
b25uZWN0aW9uIHRvIGNvbnRpbnVlIHdpdGhvdXQgY3JlZGVudGlhbHMuCiBodHRwL3Rlc3RzL21p
c2MvNDAxLWFsdGVybmF0aXZlLWNvbnRlbnQucGhwCiAKKwogIyBEaXNhYmxlIHNwZWxsaW5nIHRl
c3RzIGZvciBhdXRvY29ycmVjdGlvbiBwYW5lbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxp
bmcvYXV0b2NvcnJlY3Rpb24tZGVsZXRlLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS1hZnRlci1wYXN0ZS5odG1sCiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRl
cmxpbmUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24t
c2ltcGxlLmh0bWwKKyMgQXZhaWxhYmxlIG9ubHkgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBl
ZAppbmRleCBkNDA2OWE5MDZlZDA0ZWE3OGQ3NzBjMmM0NWRlNGJmYWM3MzM5YWFjLi43Y2Y2NDcz
NGNiNmY3YjJiZWJlZDk3OWE2YzJlMTlmYjZlOTQ3MGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9Ta2lwcGVkCkBAIC0yMTUsNiArMjE1LDcgQEAgZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxl
LWNsaWNrLWluLXByZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi91c2VyLWRyYWctZWxlbWVudC1h
bmQtdXNlci1zZWxlY3Qtbm9uZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi93b3JkLWdyYW51bGFy
aXR5Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwK
K2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCiBlZGl0aW5nL3VuZG8vdW5k
by1kZWxldGVXb3JkLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS1yZXZlcnNl
ZC1zZWxlY3Rpb24uaHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXdvcmQuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggYTliNThlNGYwNzIxNTBjMmY0MmU2NmVhNTVl
MzRlMjI5NDM4ZmRmNi4uNzE5OGM5OWQ0ZjYwYjM3NTY2OTJmYjlkMDgxNDhkNWRjNzg0ODgzZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yMjU5LDYgKzIyNTksOSBAQCBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1NDM1CiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFj
ZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKCkgaXMgbm90IGltcGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2st
cGFzdGUuaHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5n
L3N0eWxlIHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKaW5kZXggMzI5MzNiZjU1YTU4MjQ2NWE3NzcyMjdjZWM4NTU0N2RlNDI4NjBjMS4uNzIx
NDM5MmE2ZWVmNDlkYzNhZTNjOTkwOGE5NWE0YTBiNjVmOGE4YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKQEAgLTkwNiw2ICs5MDYsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJh
Y2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29u
dGVudGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRt
bAogCisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1w
bGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgSW5k
ZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYzMzU3MDVm
NjJmNmMxZTVkMmFhMWQ2NjgzZWU3ZThkNzUxMjUwZC4uNzkzNzFmOTYzMDExZDg1MjE3NTA1OWU4
MWIxMzAwODY5YWNiZTZiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisg
ICAgICAgIC0gSW50cm9kdWNlZCBTcGVsbENoZWNrZXIgY2xhc3MgdG8gZW5jYXBzdWxhdGUgYXN5
bmNocm9ub3VzIHNwZWxsCisgICAgICAgICAgY2hlY2tlciBzdGF0ZTogc2VxdWVuY2UgaWQsIHJl
cXVlc3RpbmcgdGV4dCBhbmQgdGFyZ2V0IG5vZGUuCisgICAgICAgICAgVGhpcyBpcyBmaXJzdCBz
dGVwIHRvIGRlY29tcG9zZSBzcGVsbC1jaGVjayByZWxhdGVkIGNvZGUgdG8KKyAgICAgICAgICBh
IHNlcGFyYXRlIGNsYXNzLgorICAgICAgICAtIEFkZGVkIEVkaXRvckNsaWVudDo6aXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICAgIEVkaXRvckNsaWVudDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBvcHRpb25hbGx5IHVzZSBhc3luYworICAgICAg
ICAgIHNwZWxsY2hlY2sgQVBJIG9uIHRoZSBwbGF0Zm9ybS4gIHRoZXNlIEFQSXMgYXJlIHRvdWNo
ZWQgYnkKKyAgICAgICAgICBTcGVsbENoZWNrZXIuCisgICAgICAgIC0gVXNlZCBTcGVsbENoZWNr
ZXIgdG8gY2hlY2sgcGFzdGVkIHRlc3QuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKTogaW1wbGVtZW50YXRpb24gb2Ygc2hv
d0RvY3VtZW50TWFya2VycygpCisgICAgICAgIChzaG93RG9jdW1lbnRNYXJrZXJzKTogQWRkZWQg
YW4gZGVidWcgdXRpbGl0eSBzaW1pbGFyIHRvIHNob3dSZW5kZXJUcmVlKCkKKyAgICAgICAgKiBk
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6c2V0T2Zmc2V0
SW5MZWFmTm9kZSk6IEEgc2V0dGVyIGZvciBQb3NpdGlvbkl0ZXJhdG9yOjptX29mZnNldEluQW5j
aG9yLgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KTogQWRkZWQgYSBjaGVja2luZyByZXF1ZXN0LgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpFZGl0b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TWFya2FibGUp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFy
a2VyRm9yKTogRXh0ZW5kZWQgdG8gc3VwcG9ydCBtb3JlIGJyb2FkZXIgY2FzZS4KKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzcGVsbENoZWNr
ZXIpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjppbml0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmNs
ZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9u
b3VzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9u
b3VzQXZhaWxhYmxlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNCdXN5
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQ2hlY2tlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpmb3J3
YXJkSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6
CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5nUmVzdWx0KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNs
aWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAg
ICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMTAtMTEgIEVyaWMgVWhyaGFuZSAgPGVy
aWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEdW1pdHJ1IERhbmlsaXVj
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggYzYyOWE3YzE2NjE1ODU2NDY5NzcxZjNmNDM4YWQzMWNlMDY5ZjVkYi4uOGJl
NGQ3N2Y2ZWYyMThkZjEyNjliNzZlYmIyNGJkYTNmYmM4MzllNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzM2LDYg
KzEzMzYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJl
cGxhY2UuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmggXAogCVdlYkNvcmUv
ZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwIFwKKwlXZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIFwKIAlXZWJDb3JlL2Vk
aXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdEVs
ZW1lbnRDb21tYW5kLmggXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5j
cHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggZTBhNmFmMTNhNjYxMGEzNTM3NmU5ZDIxMGM1NGRmNTQ3YzJjMjIwYy4u
MDdiYWE4ODU4YjVjMGFlYmJlMWI5NWRmZGQzNzkxNzk5YWRkMjdlNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00Njks
NiArNDY5LDcgQEAgX19aTjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU181RnJh
bWVFagogX19aTjdXZWJDb3JlMjNSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1l
bnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZEb2N1bWVudEZyYWdtZW50RUVFYmJiYmJOU18xMEVk
aXRBY3Rpb25FCiBfX1pON1dlYkNvcmUyM2NyZWF0ZUZyYWdtZW50RnJvbU5vZGVzRVBOU184RG9j
dW1lbnRFUktOM1dURjZWZWN0b3JJUE5TXzROb2RlRUxtMEVFRQogX19aTjdXZWJDb3JlMjRCaW5h
cnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKK19fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pO
N1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VOU18xNERv
Y3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIxNG1hcmtlcnNGb3JOb2RlRVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0VOU18xNERvY3VtZW50
TWFya2VyMTBNYXJrZXJUeXBlRQpAQCAtODU5LDYgKzg2MCw3IEBAIF9fWk43V2ViQ29yZTlmb250
Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlND
N0pTVmFsdWVFCitfX1pON1dlYkNvcmUxMlNwZWxsQ2hlY2tlcjhkaWRDaGVja0VpUktOM1dURjZW
ZWN0b3JJTlNfMTlTcGVsbENoZWNraW5nUmVzdWx0RUxtMEVFRQogX19aTkszSlNDOEJpbmRpbmdz
MTBSb290T2JqZWN0MTJnbG9iYWxPYmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZT
dHJpbmdFdgogX19aTks3V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMmI0
MDZhMzQ5MGI1NjM5MTE5N2RkZWFlOWVmN2E1YzFiMjc5ZjJhNC4uNzg2ZGY3NGZmYzBhNWEwZmZi
NWNmMmI1ZDg1M2NiYjNlYzcyMDYwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE0MjYsNiArMTQyNiw4IEBACiAgICAgICAg
ICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2UuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TbWFy
dFJlcGxhY2VDRi5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNw
cCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwJywKKyAgICAgICAgICAg
ICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxl
bWVudENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1h
bmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggOWIxYzUzNGE0MDA2ZDhjYWY0MTg5MGFmZjQyZDI5YjI1ZTQyYzZiYS4uNjk0ZGUzNGJlYzkw
YjIxMmM2YmUzOTVlN2FiYzA4NzkyZTFiNjk3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04MDgsNiArODA4LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCBcCiAgICAgZWRpdGlu
Zy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU21hcnRSZXBsYWNl
SUNVLmNwcCBcCisgICAgZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKICAgICBlZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5k
LmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5k
LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxN2FlOTBhNzc2
MjQ5MmJkNzgxODNjZjlhMTliOGMyYTIxYTMyYTc1Li5jMjQ2ZWQ0ZDg3MGViY2MwNzgwODY3YzA0
ZTUwMDljNTg3NGFlNGIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTQ3NDg1LDYgKzQ3NDg1LDExNCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVsbENoZWNr
ZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCINCisJCQkJ
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50
ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdFRleHRO
b2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NGQzYWNhMGYxNzhl
ZWMyOGU4ZGNkZWRhZDNkNTFkZmNjMThlNGE0Li5hN2JkZjViYzI4NTAxMmJlYzIyODk2NmZiNDU1
ZjQyMDZiMTIwNTM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzAwNyw2ICszMDA3LDggQEAKIAkJQTc3OTc5MjgwRDZCOUU2NDAwMzg1MUI5IC8qIEpT
SW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi87IH07CiAJ
CUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5
IC8qIEpTSW1hZ2VEYXRhLmggKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3QSAvKiBD
bGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi87IH07CisJCUE3
OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQw
IC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CisJCUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAv
KiBTcGVsbENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzk1NDYzRTBCNUM0
QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFN
YWMubW0gKi87IH07CiAJCUE3OTU0NjQzMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDY0MjBC
NUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovOyB9OwogCQlBN0FBNjZENjExQzVFRDZB
MDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJ
bmRpY2F0b3IuY3BwICovOyB9OwpAQCAtOTA1Miw2ICs5MDU0LDggQEAKIAkJQTc3OTc5MjQwRDZC
OUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENo
ZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlbGxDaGVj
a2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4RkUxM0ExMjM2NkIxMDAw
QUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9
IFNwZWxsQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDYzRDBC
NUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRHJhZ0RhdGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3OTU0NjQyMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmFnRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5kaWNh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDMzLDYgKzE0NDM3LDgg
QEAKIAkJCQk0QjZGQTZGMzBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmNwcCAqLywK
IAkJCQk0QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi8sCiAJCQkJ
NEI2RkE2RjYwQzM5RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCAqLywKKwkJCQlB
NzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLywKKwkJCQlBNzhG
RTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi8sCiAJCQkJOTMzMDlEQzIw
OTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
REMzMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmggKi8sCiAJCQkJOTMz
MDlEQzQwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKQEAg
LTIwNTUzLDYgKzIwNTU5LDcgQEAKIAkJCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1MzVCQzk1MTIwMjBDRkYwMDM3
RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NzhG
OTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQwOTlFNjQ5MjAwNTZFNTgxIC8qIFNw
bGl0VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNjA5OUU2NDky
MDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMzE2NSw2ICsyMzE3Miw3IEBACiAJCQkJNjI2Q0RFMEUxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NzhG
OTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3NTM1QkM5NDEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNr
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTEwOTlFNjQ5MjAwNTZFNTgxIC8qIFNw
bGl0RWxlbWVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTMwOTlFNjQ5
MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzMzA5RTE1MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1l
bnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAKaW5kZXggMmI3ZmQ4NWQ3ZmVjZDJmYmM4YzhkM2UyYzk1NTZlYTdlOTk5OTI4
Zi4uOGM1NmI1NGNkNWJiYzI1N2Q4ZTg1MjE3YjllOTY0MDY4N2E3MTg5OCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC01MjQsNCArNTI0LDMyIEBAIHZvaWQg
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpzZXRNYXJrZXJzQWN0aXZlKE5vZGUqIG5vZGUsIHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0CiAgICAgICAgIG5vZGUtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsK
IH0KIAorCisjaWZuZGVmIE5ERUJVRwordm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnNo
b3dNYXJrZXJzKCkgY29uc3QKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVkIG5vZGVzIGhhdmUg
bWFya2VyczpcbiIsIG1fbWFya2Vycy5zaXplKCkpOworICAgIE1hcmtlck1hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9tYXJrZXJzLmVuZCgpOworICAgIGZvciAoTWFya2VyTWFwOjpjb25zdF9p
dGVyYXRvciBub2RlSXRlcmF0b3IgPSBtX21hcmtlcnMuYmVnaW4oKTsgbm9kZUl0ZXJhdG9yICE9
IGVuZDsgKytub2RlSXRlcmF0b3IpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG5vZGVJdGVyYXRv
ci0+Zmlyc3QuZ2V0KCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXAiLCBub2RlKTsKKyAg
ICAgICAgTWFya2VyTWFwVmVjdG9yUGFpciogdmVjdG9yUGFpciA9IG5vZGVJdGVyYXRvci0+c2Vj
b25kOworICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+JiBtYXJrZXJzID0gdmVjdG9yUGFp
ci0+Zmlyc3Q7CisgICAgICAgIHVuc2lnbmVkIG1hcmtlckNvdW50ID0gbWFya2Vycy5zaXplKCk7
CisgICAgICAgIGZvciAodW5zaWduZWQgbWFya2VySW5kZXggPSAwOyBtYXJrZXJJbmRleCA8IG1h
cmtlckNvdW50OyArK21hcmtlckluZGV4KQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIg
JWQ6WyVkOiVkXSglZCkiLCBtYXJrZXJzW21hcmtlckluZGV4XS50eXBlLCBtYXJrZXJzW21hcmtl
ckluZGV4XS5zdGFydE9mZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRleF0uZW5kT2Zmc2V0LCBtYXJr
ZXJzW21hcmtlckluZGV4XS5hY3RpdmVNYXRjaCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
XG4iKTsKKyAgICB9Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKKyNp
Zm5kZWYgTkRFQlVHCit2b2lkIHNob3dEb2N1bWVudE1hcmtlcnMoY29uc3QgV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmIChjb250cm9sbGVy
KQorICAgICAgICBjb250cm9sbGVyLT5zaG93TWFya2VycygpOworfQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDg5MjFiYWFjNTlkYWVhOWQ3MzNkMWY4
MzdmMDM2Y2Y2NmMyOWY3NWMuLjM0MTBlN2ZmMzNkZTRhMmE5YmQzYjljZWRiNTM5OGY3MzFjZjA5
MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCisr
KyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCkBAIC02MSw2ICs2MSwx
MCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBtYXJrZXJzRm9yTm9kZShO
b2RlKik7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNGb3JNYXJrZXJzKERvY3Vt
ZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMpOwogCisj
aWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd01hcmtlcnMoKSBjb25zdDsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFZlY3RvcjxEb2N1bWVudE1hcmtlcj4sIFZl
Y3RvcjxJbnRSZWN0PiA+IE1hcmtlck1hcFZlY3RvclBhaXI7CiAgICAgdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxOb2RlPiwgTWFya2VyTWFwVmVjdG9yUGFpcio+IE1hcmtlck1hcDsKQEAgLTY5LDQg
KzczLDggQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjaWZuZGVmIE5E
RUJVRwordm9pZCBzaG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlciopOworI2VuZGlmCisKICNlbmRpZiAvLyBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAgYi9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCBkMmMzYTNmMGNmNGUwZjAzYjQw
ZGI1NDZkOTlhZjExMDJjZDUxNDc2Li40MmNjNTEzNzEyNjc2OTk2ZTRiYjY4ZDE5NWI0YzRhYjJm
ZWZhYmVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtOTgsNiArOTgsMTMgQEAgdm9p
ZCBQb3NpdGlvbkl0ZXJhdG9yOjpkZWNyZW1lbnQoKQogICAgIH0KIH0KIAordm9pZCBQb3NpdGlv
bkl0ZXJhdG9yOjpzZXRPZmZzZXRJbkxlYWZOb2RlKGludCBvZmZzZXQpCit7CisgICAgQVNTRVJU
KCFtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSk7CisgICAgQVNTRVJUKDAgPD0gb2Zmc2V0
ICYmIG9mZnNldCA8PSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpKTsKKyAgICBt
X29mZnNldEluQW5jaG9yID0gb2Zmc2V0OworfQorCiBib29sIFBvc2l0aW9uSXRlcmF0b3I6OmF0
U3RhcnQoKSBjb25zdAogewogICAgIGlmICghbV9hbmNob3JOb2RlKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRv
ci5oCmluZGV4IDdhZjg5Nzc1OTFkMTZjMjk3OTMxODkwZWJkMWFlMDY5YzJkNDdmMzYuLjA4MzI5
YmIxNWNkM2U1MjEwMDQ2MjkzNTg4YWI3YWFiZDMwZmU0ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9y
LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYW5jaG9yTm9kZTsgfQogICAgIGludCBvZmZzZXRJbkxlYWZOb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9vZmZzZXRJbkFuY2hvcjsgfQorICAgIHZvaWQgc2V0T2Zmc2V0SW5MZWFmTm9k
ZShpbnQgb2Zmc2V0KTsKIAogICAgIGJvb2wgYXRTdGFydCgpIGNvbnN0OwogICAgIGJvb2wgYXRF
bmQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYjQxZjhlODVlMTU2ODNiYzVkOWQ2MmQ2NWNl
MjJiMmYwNWFlN2I2OC4uYmUxODE5Y2YyODAzNzYxZjBjMzUxYWRiNjY3MWM2NGQ4OGM5YTY3NyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKQEAgLTY1LDkgKzY1LDExIEBACiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFy
dC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdW5k
LmgiCisjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1
ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMzc4LDYgKzM4
MCwxMCBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIAogICAgIGFwcGx5Q29tbWFuZChS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIGZyYWdt
ZW50LCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCBtYXRjaFN0eWxlKSk7CiAgICAg
cmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CisKKyAgICBOb2RlKiBub2Rl
VG9DaGVjayA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7Cisg
ICAgaWYgKG1fc3BlbGxDaGVja2VyLT5pc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihub2RlVG9D
aGVjaykpCisgICAgICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3Iobm9kZVRv
Q2hlY2spOwogfQogCiB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2Up
CkBAIC0xMDgzLDYgKzEwODksNyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSogZnJhbWUpCiAgICAg
Ly8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3JzIHdhbnQgdGhpcyBi
ZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwgbV9zaG91bGRTdHls
ZVdpdGhDU1MoZmFsc2UpCiAgICAgLCBtX2tpbGxSaW5nKGFkb3B0UHRyKG5ldyBLaWxsUmluZykp
CisgICAgLCBtX3NwZWxsQ2hlY2tlcihuZXcgU3BlbGxDaGVja2VyKGZyYW1lLT5wYWdlKCkgPyBm
cmFtZS0+cGFnZSgpLT5lZGl0b3JDbGllbnQoKSA6IDApKQogICAgICwgbV9jb3JyZWN0aW9uUGFu
ZWxUaW1lcih0aGlzLCAmRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKQogICAgICwg
bV9hcmVNYXJrZWRUZXh0TWF0Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogewpAQCAtMzY1MywxMiAr
MzY2MCwyOSBAQCB2b2lkIEVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGJvbwogICAgIHJlc3BvbmRUb0NoYW5nZWRT
ZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKIH0KIAorc3RhdGljIE5vZGUqIGZpbmRGaXJzdE1hcmth
YmxlKE5vZGUqIG5vZGUpCit7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgaWYgKCFub2Rl
LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChub2RlLT5y
ZW5kZXJlcigpLT5pc1RleHQoKSkKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICBp
ZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0Q29udHJvbCgpKQorICAgICAgICAgICAgbm9kZSA9
IHRvUmVuZGVyVGV4dENvbnRyb2wobm9kZS0+cmVuZGVyZXIoKSktPnZpc2libGVQb3NpdGlvbkZv
ckluZGV4KDEpLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgICAgICBlbHNlIGlmIChub2Rl
LT5maXJzdENoaWxkKCkpCisgICAgICAgICAgICBub2RlID0gbm9kZS0+Zmlyc3RDaGlsZCgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBFZGl0b3I6OnNlbGVjdGlvblN0YXJ0SGFz
U3BlbGxpbmdNYXJrZXJGb3IoaW50IGZyb20sIGludCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgTm9k
ZSogbm9kZSA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKTsKLSAgICBpZiAo
IW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgTm9kZSogbm9kZSA9IGZpbmRGaXJzdE1h
cmthYmxlKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKSk7CisgICAgaWYgKCFu
b2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQVNTRVJUKG5vZGUtPnJlbmRlcmVyKCkt
PmlzVGV4dCgpKTsKIAogICAgIHVuc2lnbmVkIGludCBzdGFydE9mZnNldCA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkIGludD4oZnJvbSk7CiAgICAgdW5zaWduZWQgaW50IGVuZE9mZnNldCA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGludD4oZnJvbSArIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggOTI4NjYy
Y2ZiMDkwY2YwNGM0YmUzYmU1MTllODRjZmZmZWNmYTQzMy4uMGFmYzE2NjZlZjcwYzBhMWIyODM5
NWM1YmRmMDA2YTU0NzIwMDIyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBI
aXRUZXN0UmVzdWx0OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xhc3Mg
U2ltcGxlRm9udERhdGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0OwogY2xhc3Mg
VGV4dEV2ZW50OwogCkBAIC0yOTksNiArMzAwLDcgQEAgcHVibGljOgogICAgIFZpc2libGVTZWxl
Y3Rpb24gc2VsZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJpbmcqIGtpbGxS
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNwZWxsQ2hlY2tl
ciogc3BlbGxDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIuZ2V0KCk7IH0K
IAogICAgIEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0zNzcsNiArMzc5
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNl
OwogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBt
X2tpbGxSaW5nOworICAgIE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwogICAg
IFJlZlB0cjxSYW5nZT4gbV9yYW5nZVRvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsKICAgICBTdHJp
bmcgbV9zdHJpbmdUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5nIG1fY29ycmVj
dGlvblJlcGxhY2VtZW50U3RyaW5nOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NzRjNWZlZTZjNjY1YWRiZTY5NTY3OWUyNzM1OWJiYzk4Y2M4YjFmCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTAsMCArMSwxNzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIk5v
ZGUuaCIKKyNpbmNsdWRlICJQb3NpdGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIK
KyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNp
bmNsdWRlICJodG1sZWRpdGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWxsQ2hl
Y2tlcjo6U3BlbGxDaGVja2VyKEVkaXRvckNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV9yZXF1ZXN0U2VxdWVuY2UoMCkKK3sKK30KKworU3BlbGxDaGVja2Vy
Ojp+U3BlbGxDaGVja2VyKCkKK3sKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0
KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGlzQXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKG5v
ZGUpKTsKKworICAgIFN0cmluZyB0ZXh0ID0gbm9kZS0+dGV4dENvbnRlbnQoKTsKKyAgICBpZiAo
IXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fcmVxdWVzdE5v
ZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFRleHQgPSB0ZXh0OworICAgIG1fcmVxdWVzdFNlcXVl
bmNlKys7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTcGVsbENoZWNrZXI6OmNsZWFy
UmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0Tm9kZS5jbGVhcigpOworICAgIG1fcmVxdWVzdFRl
eHQgPSBTdHJpbmcoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5h
YmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjpp
c0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVy
biBpc0NoZWNrZWFibGUobm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVz
eSgpOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzVmFsaWQo
aW50IHNlcXVlbmNlKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3ROb2RlLmdldCgpICYm
IG1fcmVxdWVzdFRleHQubGVuZ3RoKCkgJiYgbV9yZXF1ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7
Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNrZWFibGUoTm9kZSogbm9kZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxs
Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGlz
QXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKG5vZGUpKTsKKworICAgIGlmICghaW5pdFJlcXVlc3Qo
bm9kZSkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcodGhpcywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1fcmVxdWVzdFRleHQpOworfQorCitzdGF0
aWMgYm9vbCBmb3J3YXJkSXRlcmF0b3IoUG9zaXRpb25JdGVyYXRvciYgaXRlcmF0b3IsIGludCBk
aXN0YW5jZSkKK3sKKyAgICBpbnQgcmVtYWluaW5nID0gZGlzdGFuY2U7CisgICAgd2hpbGUgKCFp
dGVyYXRvci5hdEVuZCgpKSB7CisgICAgICAgIGlmIChpdGVyYXRvci5ub2RlKCktPmlzQ2hhcmFj
dGVyRGF0YU5vZGUoKSkgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IGxhc3RPZmZzZXRGb3JF
ZGl0aW5nKGl0ZXJhdG9yLm5vZGUoKSk7CisgICAgICAgICAgICBpbnQgbGFzdCA9IGxlbmd0aCAt
IGl0ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKTsKKyAgICAgICAgICAgIGlmIChyZW1haW5pbmcg
PCBsYXN0KSB7CisgICAgICAgICAgICAgICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5MZWFmTm9kZShp
dGVyYXRvci5vZmZzZXRJbkxlYWZOb2RlKCkgKyByZW1haW5pbmcpOworICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZW1haW5pbmcgLT0g
bGFzdDsKKyAgICAgICAgICAgIGl0ZXJhdG9yLnNldE9mZnNldEluTGVhZk5vZGUoaXRlcmF0b3Iu
b2Zmc2V0SW5MZWFmTm9kZSgpICsgbGFzdCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRv
ci5pbmNyZW1lbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7ICAgIAorfQorCit2b2lk
IFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxD
aGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFpc1ZhbGlkKHNlcXVlbmNlKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3ROb2RlLT5yZW5kZXJlcigpKSB7
CisgICAgICAgIGNsZWFyUmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aW50IHN0YXJ0T2Zmc2V0ID0gMDsKKyAgICBQb3NpdGlvbkl0ZXJhdG9yIHN0YXJ0ID0gUG9zaXRp
b24obV9yZXF1ZXN0Tm9kZSwgMCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1bHRz
LnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChyZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRN
YXJrZXI6OlNwZWxsaW5nICYmIHJlc3VsdHNbaV0udHlwZSAhPSBEb2N1bWVudE1hcmtlcjo6R3Jh
bW1hcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIFRvIGF2b2lkIG1vdmlu
ZyB0aGUgcG9zaXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUgZ2l2ZW4gcmVzdWx0cyBhcmUg
c29ydGVkIHdpdGgKKyAgICAgICAgLy8gc3RhcnRPZmZzZXQgYXMgdGhlIG9uZXMgcmV0dXJuZWQg
YnkgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOl0uCisgICAgICAgIEFT
U0VSVChzdGFydE9mZnNldCA8PSByZXN1bHRzW2ldLmxvY2F0aW9uKTsKKyAgICAgICAgaWYgKCFm
b3J3YXJkSXRlcmF0b3Ioc3RhcnQsIHJlc3VsdHNbaV0ubG9jYXRpb24gLSBzdGFydE9mZnNldCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgUG9zaXRpb25JdGVyYXRvciBlbmQgPSBzdGFy
dDsKKyAgICAgICAgaWYgKCFmb3J3YXJkSXRlcmF0b3IoZW5kLCByZXN1bHRzW2ldLmxlbmd0aCkp
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBVc2VycyBvciBKYXZhU2NyaXB0IGFw
cGxpY2F0aW9ucyBtYXkgY2hhbmdlIHRleHQgd2hpbGUgYSBzcGVsbC1jaGVja2VyIGNoZWNrcyBp
dHMKKyAgICAgICAgLy8gc3BlbGxpbmdzIGluIHRoZSBiYWNrZ3JvdW5kLiBUbyBhdm9pZCBhZGRp
bmcgbWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgLy8g
SmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMsIHJldHJpZXZlIHRoZSB3b3JkcyBpbiB0aGUgc3BlY2lm
aWVkIHJlZ2lvbiBhbmQgY29tcGFyZSB0aGVtIHdpdGgKKyAgICAgICAgLy8gdGhlIG9yaWdpbmFs
IG9uZXMuCisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fcmVx
dWVzdE5vZGUtPmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOworICAgICAgICAvLyBGSVhNRTogVXNl
IHRleHRDb250ZW50KCkgY29tcGF0aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KKyAgICAgICAgU3Ry
aW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9
IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24sIHJlc3VsdHNbaV0u
bGVuZ3RoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAgICAgICAg
IG1fcmVxdWVzdE5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdl
dCgpLCByZXN1bHRzW2ldLnR5cGUpOworCisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gcmVzdWx0c1tp
XS5sb2NhdGlvbjsKKyAgICB9CisKKyAgICBjbGVhclJlcXVlc3QoKTsKK30KKworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmggYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUyNjQxNmEy
NDQwNDU1NzljZDk0NmFiZjc3YmI5ODEwOTJkZDZmMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgU3BlbGxDaGVja2VyX2gKKyNkZWZpbmUgU3BlbGxDaGVja2VyX2gKKworI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWRpdG9yQ2xpZW50
OworCitzdHJ1Y3QgU3BlbGxDaGVja2luZ1Jlc3VsdCB7CisgICAgU3BlbGxDaGVja2luZ1Jlc3Vs
dCgpCisgICAgICAgIDogdHlwZShEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICwg
bG9jYXRpb24oMCkKKyAgICAgICAgLCBsZW5ndGgoMCkKKyAgICB7CisgICAgfQorCisgICAgRG9j
dW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZTsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50
IGxlbmd0aDsKK307CisKK2NsYXNzIFNwZWxsQ2hlY2tlciB7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgU3BlbGxDaGVja2VyKEVkaXRvckNsaWVudCopOworICAgIH5TcGVsbENoZWNrZXIoKTsKKwor
ICAgIGJvb2wgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0FzeW5j
aHJvbm91c0F2YWlsYWJsZUZvcihOb2RlKikgY29uc3Q7CisgICAgYm9vbCBpc0J1c3koKSBjb25z
dDsKKyAgICBib29sIGlzVmFsaWQoaW50IHNlcXVlbmNlKSBjb25zdDsKKyAgICBib29sIGlzQ2hl
Y2tlYWJsZShOb2RlKiBub2RlKSBjb25zdDsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihO
b2RlKik7CisgICAgdm9pZCBkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVs
bENoZWNraW5nUmVzdWx0PiYpOworCitwcml2YXRlOgorICAgIGJvb2wgaW5pdFJlcXVlc3QoTm9k
ZSopOworICAgIHZvaWQgY2xlYXJSZXF1ZXN0KCk7CisKKyAgICBFZGl0b3JDbGllbnQqIG1fY2xp
ZW50OworCisgICAgUmVmUHRyPE5vZGU+IG1fcmVxdWVzdE5vZGU7CisgICAgU3RyaW5nIG1fcmVx
dWVzdFRleHQ7CisgICAgaW50IG1fcmVxdWVzdFNlcXVlbmNlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlbGxDaGVja2VyX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggZmQyMDI1ODM3MGJiOWEzYWM1YzhhYjI1NjRiZjdmNDg4MjEwNzhmOC4uM2MzZGI5OWMw
ODIzODE2OTY4ZGEwMDVkNTIwYjc4MjMxOGYyYjhjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTQ4MCw4ICs0ODAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCkgeyB9Ci0KLQorICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJp
bmcmKSB7IH0KIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApp
bmRleCA5N2IwOTAyNWNjNDUzN2UyYTNlYmQ5Yzc1YTIxMDIwMzk0ZWZlMDllLi5kODI0MGJhZjA5
Mjc3ODJmOGVlYTg3ZDc5ZWZiMTI3MWY3MTI5N2ZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
RWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC02NSw2
ICs2NSw3IEBAIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNz
IE5vZGU7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFZpc2libGVT
ZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKQEAgLTIwMSw2ICsyMDIsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
IFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJ
bnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0
YXRlKGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDExNjhmZTZiN2NkNzcwMzBlNGU4YTc5NWI5OTNiZTg4NThkZDNh
MGYuLmIwYjJmMmM2MTI1ZWY0ODc0ODdkYmJiNGMzMWEzZDQ5ZDU0YzE3ZmQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQg
c3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwu
aDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6aXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0xMSAgRGFuaWVsIENoZW5nICA8ZGNo
ZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCBiMDVhNTkyNmJmNzExMjg2MWMy
NTNhNDZjMjM0YTZkNWI3ZTMzNWQ3Li4zZjcwNTNiNjlmM2UyNjcwYWVhODQ0ZmY4ZTFlNGE3NTli
MGFkOGE2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTEwLDYg
KzExMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RG
OjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
dElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0
ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6
OlN0cmluZyYpIHt9CiAKICAgICAvLyBTaG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBmb3Ig
fG5vZGV8IGlmIGl0IGlzIGFuIEhUTUxJbnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMgZW1w
dHkuICBUaGlzIGlzIGNhbGxlZCB3aGVuIHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJvdyBp
biBhCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IDFjMTQzYTIwZGYzZDcwOWU0ZjAzMTc0NGFmNjRkZGFlODI0MWRhZmMuLjhiNzRk
YWIxODkzNTU5YWFkNzRmNDBmYjJhMDU5MTQwNjQwMzdiZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlv
bnMuCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjppc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTA3ICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21l
cy4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IDlm
NjBjZmJhZGI0MmYwN2YxMzZiZTdkNGU3OWM0MjA5NDQzOGQxYjIuLjQ0NWY2ZDI1MzAwMTBiOWFi
YTMwMzY1ZjY1ZThhMWU4NTczOTVhMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3RyaW5n
PiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdl
YkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2
YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDkyZWJjZTY2YWQwNjVmOWYyM2U1
YzlmODY0MWFhMTcxYzZjYmQ2MGYuLjNlOTFhMmViOTNkOWQxMzE1NDM1YzcxNGU1NTdmYzNkMGRm
ZmQ5ZTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAg
ICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojppc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMDkgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5o
CmluZGV4IGY5ZmY4MmUwMGM0YTMwZjY2MmMxZGEzM2ZiM2E1YTkwMTE5ZDMwNTkuLmY2ODg4ZDVi
NTE5OTZlNDY3OTA4NjAzNDYzMzcxODc1NTg2NzI4YzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtMTMyLDYgKzEzMiw4IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKICAgICBwcml2YXRl
OgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQv
aGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCBkNTVjZTcxZTM2
MTZkY2EzMzUyMTMzOTAyMGM1YzVjZmY0MDlmZTgzLi5kODRjZDFmYTU2ZjFjNzM0NzZjNjliZGJh
MzMzZTAzY2FkMjJkNzNiIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3Rl
ZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1Lmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRIYWlrdTo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRIYWlrdTo6cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcpOgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKaW5kZXggNWNiZWMyNzIyMTNjYzZj
ZTllN2NhMTFkMGUwNWU2NTJjNmU3N2NkMS4uNDEzOGZiZTAxMjIzNWNjYzE1MDU2MjA2M2FmOGFj
YWM1ZjBkNDM0MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEhhaWt1LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEhhaWt1LmgKQEAgLTExMCw2ICsxMTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9
CiAKICAgICAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkMThkMzE1NDAzYTY1
YWE2MmQ3MWMyYmQ4OThkM2E4NzE5NzRhZjI5Li44OGMzYjVhMmJiNTUxN2ZlMjlmZDM4NDIzYjcx
MzZmNDgxMWRmNGZhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgYXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSB0byBXZWJFZGl0
b3JDbGllbnQgdXNpbmcKKyAgICAgICAgLVtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZ10uCisgICAgICAgIE5vdGUgdGhhdCBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVy
IGlzIGEgc21hbGwgY2xhc3MgdG8gcmVjZWl2ZQorICAgICAgICByZXF1ZXN0ZWQgc3BlbGwtY2hl
Y2tpbmcgcmVzdWx0LgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGluaXRXaXRo
U2VuZGVyOldlYkNvcmU6OnNlcXVlbmNlOnJlc3VsdHM6XSk6CisgICAgICAgICgtW1dlYkVkaXRv
clNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVs
bENoZWNrUmVzcG9uZGVyIFdURjo6V2ViQ29yZTo6XSk6CisgICAgICAgIChXZWJFZGl0b3JDbGll
bnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oOgorCiAyMDEwLTEwLTExICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkBAIC05MjEsNiArOTQy
LDMyIEBACiAKIDIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBhc3lu
YyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVkaXRvckNsaWVudC4KKyAgICAgICAgVGhlIGltcGxl
bWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nXQorICAgICAgICB3aGljaCBpcyBhdmFpbGFibGUgb25seSBvbiBNYWMgT1MgMTAuNiBvciBs
YXRlci4KKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCBbTlNTcGVsbENoZWNrZXIgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGludm9rZQorICAgICAgICB0aGUgY2FsbGJhY2sgYmxv
Y2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRocmVhZCwgc28gd2UgbmVlZCB0bworICAgICAgICBy
ZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFpbiB0aHJlYWQgd2hlcmUgV2ViQ29yZSBpcyBydW5u
aW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJwb3NlLCB3ZSBtYWRlIFdlYkVkaXRvclNwZWxsQ2hl
Y2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAgIAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKyAgICAgICAgCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRv
clNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdpdGhTZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVz
dWx0czpdKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIg
cGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5o
OgorCisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgc3BlbGxpbmcgdW5kZXJs
aW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCmluZGV4IGFkMzI0YjlmYTM5ZDY1MDA0ZGNkMTc1ZTdmMTJmOTZmNzE4
NTNkYmMuLmM0MTJlZjljOWQ0NDEzM2JlZDY3MGU1YmZjYmIwMjY4ZDhlM2YwZGIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMyLDYgKzEzMiw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAg
ICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3Jl
OjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29s
IGNvcnJlY3Rpb25BY2NlcHRlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tCmluZGV4IDJiZjMyNTlmNGEyMmFiNjg2MWQ2OWQxMzYzYjczYzEzZTgxODI4
ZjYuLjZjNzYxMzZmNWNkNGNkOGI2YjEyMjE5YTQ4M2Y4NWQ1NWI4MmQ3MTAgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02Myw2ICs2Myw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5n
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9V
c2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CkBAIC05
MzIsMyArOTMzLDgzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKQog
ewogfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCgpCit7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAgLy8gRW5hYmxlIGFzeW5jaHJvbm91cyBzcGVsbGNo
ZWNraW5nIChhbmQgZ3JhbW1hciBjaGVja2luZykgb25seSB3aGVuIHdlIGNvbXBpbGUgdGhpcyBm
aWxlIG9uCisgICAgLy8gTWFjIE9TIFggMTAuNiBhbmQgd2UgY2FuIHVzZSBHcmFuZCBDZW50cmFs
IERpc3BhdGNoIGJlY2F1c2UgdGhleSBhcmUgcmVxdWlyZWQgYnkKKyAgICAvLyBbTlNTcGVsbENo
ZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6XS4KKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKK0BpbnRlcmZhY2UgV2Vi
RWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0Cit7CisgICAgV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiBfc2VuZGVyOworICAgIGludCBfc2VxdWVuY2U7CisgICAgUmV0YWluUHRyPE5T
QXJyYXk+IF9yZXN1bHRzOworfQorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciopc2VuZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSop
cmVzdWx0czsKKy0gKHZvaWQpcGVyZm9ybTsKKy0gKFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxs
Q2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHM7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
ZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyCistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihO
U0FycmF5KilyZXN1bHRzCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNl
bGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX3NlbmRlciA9IHNlbmRlcjsKKyAgICBfc2Vx
dWVuY2UgPSBzZXF1ZW5jZTsKKyAgICBfcmVzdWx0cyA9IHJlc3VsdHM7CisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKHZvaWQpcGVyZm9ybQoreworICAgIF9zZW5kZXItPmRpZENoZWNrKF9zZXF1
ZW5jZSwgW3NlbGYgX2NvcmVSZXN1bHRzXSk7Cit9CisKKy0gKFdURjo6VmVjdG9yPFdlYkNvcmU6
OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHMKK3sKKyAgICBOU0FycmF5KiByZXN1
bHRzID0gX3Jlc3VsdHMuZ2V0KCk7CisgICAgV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVj
a2luZ1Jlc3VsdD4gY29yZVJlc3VsdHMoW3Jlc3VsdHMgY291bnRdKTsKKworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgW3Jlc3VsdHMgY291bnRdOyArK2kpIHsKKyAgICAgICAgTlNUZXh0Q2hl
Y2tpbmdUeXBlIHR5cGUgPSBbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSByZXN1bHRUeXBlXTsK
KyAgICAgICAgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZykKKyAgICAgICAg
ICAgIGNvcmVSZXN1bHRzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmc7CisgICAg
ICAgIGVsc2UgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAgICAg
ICAgY29yZVJlc3VsdHNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBjb3JlUmVzdWx0c1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6
OkFsbE1hcmtlcnM7CisKKyAgICAgICAgTlNSYW5nZSByYW5nZSA9IFtbcmVzdWx0cyBvYmplY3RB
dEluZGV4OmldIHJhbmdlXTsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubG9jYXRpb24gPSByYW5n
ZS5sb2NhdGlvbjsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubGVuZ3RoID0gcmFuZ2UubGVuZ3Ro
OworICAgIH0KKworICAgIHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVuZAorI2VuZGlmCisK
K3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7
CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpCisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQubGVuZ3Ro
KCkpOworICAgIE5TUnVuTG9vcCogY3VycmVudExvb3AgPSBbTlNSdW5Mb29wIGN1cnJlbnRSdW5M
b29wXTsKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmc6dGV4dCByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5
c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJbnRl
Z2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7CisgICAg
ICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtKSAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9yU3Bl
bGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNlOnNl
cXVlbmNlIHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOworICAgICAgICB9XTsKKyNlbmRpZgorfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCmluZGV4IGIwY2IwZjMzZjhjOWVlZTE1YmE0
YzIxMzJlN2QwOGQzMzZmZmJjMWYuLjA0ODVmNjg0YzYyNzJhYjZmYzNhYTMzYzVhZmYwYjdiZWI4
YjcyYmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKQEAgLTE0Miw0ICsxNDIs
NyBAQCB0eXBlZGVmIGVudW0gewogLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGlzIGEgc3BlbGxp
bmcgbWFya2VyIGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhlIGZvY3VzZWQgbm9kZS4KIC0g
KEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7
CiAKKy8vIFJldHVybnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUg
c3BlY2lmaWVkIHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCisvLyBUaGlzIGZ1bmN0aW9uIGlz
IG9ubHkgZm9yIGxheW91dCB0ZXN0cy4KKy0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludCls
b2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7CiBAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBjMjUyYjdlYjg5NWFhMzJhNGJh
Yzg1YmQxNDVjMWNkNDcwM2I2ODU4Li5jNTI1M2EyMTRlOGJjZDJjOGI3OTY0NGMzOGRiOGM0YzAy
YTExMjlhIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAg
IEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRRdDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTA4ICBIdWkg
SHVhbmcgIDxodWkuMi5odWFuZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmlu
ZGV4IDdkOTlkMjIyZDgzNmYxMDdmNmEwM2U2N2E4MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0
NGI3NjdmZTQyOTVjMmIwYmFmMDljNzg1MWMwYmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggZjFhMzNkNmJlNzZlN2Q0YWI5NTBiM2RlM2ViMTg5NzBlOWE3ZjJhZS4u
ZWY1ZjBhMDRlYjI1NjVmODA1MGVjNWZlNDZmNzc3MzFjNDU5YzU0NyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNr
IGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1u
dGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorCiAyMDEwLTEwLTExICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggd2luZG93cyBidWlsZCBmYWlsdXJlLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggOGJlNmRlOTBjMjFm
NGUxOWVmYzJmZmZiM2E3YWRlNGNmZDQ4ZWUzMy4uZThiMzdjMmUxYjc3Nzg5ZjRkYmY2YjNiOGVk
MTQxZjA1MmUyOWU1NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCkBAIC0xMTEsNiArMTExLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3Ry
aW5nJikge30KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCBj
ODVmOTAyMjBlNWUyM2Q5YjEwZmRhMGRhN2NjZjVlOWQ2Mzk1YWIzLi5jNThlMDkxZTVmMDY3OWQ1
NGM1NjMwYWE3ZjE1ZWUyNTlkNzc4MjgwIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0x
MC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNo
ZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggMGFkMGExOTUwMDI2Njc0Mjc3
NzM2YTE2MDAwYjhjYjgyYjdmMGQ2Yi4uOTkwYWY4MTcwY2ViNGUyNWYwM2FhZWU3ZmUyZjQ1YjY2
MDhhM2ZlOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiYpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmll
dyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93
eC9DaGFuZ2VMb2cKaW5kZXggYWJiYzg3Yjg3OTlmYTc5YjBiZTZjNTllZTVkZTVhNzgzNDJjNjg3
My4uZGJkYWRmNjc5ZjYxNGNlYjJkMGIwODJhYWQxZDc2MmFlYzZlYzVlYyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVj
ayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVt
bnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAt
LWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmggYi9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCmluZGV4IGJlNWM5OGFmMjk3ZGUxMGUy
ZjZlNTY2ODVmMmVmNjA2NmU5ZDJmZWYuLmJiZDFjZGVmYTVhNzA1ODYwOWEzYzk3NjExMWRjM2Y1
MmY2NTNhNWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVu
dFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaApAQCAt
MTEyLDYgKzExMiw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxZDRmNzIzNDljOTE5YTE5
MjRhMTA0MTI1NGJiMjFkYTBhNWIxZjdhLi43ZWI1YTBlNTUxMDZlNGE3ZmY3ODBkNmE4OWUxZGU2
YmI1NTQwODkwIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9y
cml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAg
QWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0
b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEw
LTEwLTExICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlciBvZiB0aGUgcGFzdC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggNTg1MmRmMTZi
YjRhN2ZlOTllMmUzYjkwYmRhZGVjYTZkNWYwNDg2NC4uMjViZWI0ZDYxMzY2ZmQ2NWIwYzgwMjk1
NGY1NWVhMWE5MTBmZmY5YSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQwMSw0ICs0MDEsMzMgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBXVEY6OlN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK3ZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6
RWRpdG9yKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkVkaXRvckNs
aWVudDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNTaG93
aW5nQ29ycmVjdGlvblBhbmVsKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA0
YjFmOTljNzdmMjBmODRhZjhkYTEyNGVlMDI1ZTFiNDA1ODljMmExLi4wOTcyMWEyN2QyN2U1Mjdl
ZmU1Mjk5NzU1YTBlZmI2YjFhMjAxOTNlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzMsOCArMTMzLDEzIEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
IFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpOworCisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpOworCiAjaWYgUExB
VEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJ
TERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQog
ICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3Iq
KTsKKwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVj
dGlvbkFjY2VwdGVkKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVs
KCk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70599</attachid>
            <date>2010-10-13 04:41:19 -0700</date>
            <delta_ts>2010-10-21 05:36:35 -0700</delta_ts>
            <desc>Fixing Qt WebKit2 build</desc>
            <filename>bug-40092-20101013204117.patch</filename>
            <type>text/plain</type>
            <size>63755</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNjhmMmUxMzYxMWMwODc1ODlhOTdhMGUxNmJkZjk4MmU0MDQyNWJhLi41MmU0MGE5
NmM4OWQzNmIzZGFlNjExZmIxMzUzOGFjYzA2MDNkN2I3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0xMiAgQ3NhYmEgT3N6dHJvZ29u
w6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBRdCBz
cGVjaWZpYyBleHBlY3RlZCBmaWxlIGFmdGVyIHI2OTUxNy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3Rl
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU4OGE1N2VjZmM1MTZkM2ZkODI2MDM3N2M0NjRlMDdiZjA3NjNmYWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10
ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzCkBAIC0wLDAgKzEsOTUgQEAKKworZGVzY3JpcHRpb24o
J0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4nKTsKKworbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit2YXIgdGVzdFJvb3QgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRl
c3RSb290LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCit2YXIgdGVzdFRleHRBcmVhID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxk
KHRlc3RUZXh0QXJlYSk7CisKK3ZhciB0ZXN0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpbnB1dCIpOwordGVzdElucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsICJ0ZXh0Iik7Cit0ZXN0
Um9vdC5hcHBlbmRDaGlsZCh0ZXN0SW5wdXQpOworCit2YXIgdGVzdEVkaXRhYmxlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0RWRpdGFibGUuc2V0QXR0cmlidXRlKCJjb250
ZW50RWRpdGFibGUiLCAidHJ1ZSIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdEVkaXRhYmxl
KTsKKwordmFyIHRlc3RTb3VyY2VQbGFpbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwordGVzdFNvdXJjZVBsYWluLmlubmVySFRNTCA9ICJmb28gYmFyIjsKK3Rlc3RSb290LmFwcGVu
ZENoaWxkKHRlc3RTb3VyY2VQbGFpbik7CisKK3ZhciB0ZXN0U291cmNlRGVjb3JhdGVkID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlRGVjb3JhdGVkLmlubmVySFRN
TCA9ICJmbzxiPm8gYmE8L2I+ciI7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0U291cmNlRGVj
b3JhdGVkKTsKKwordmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKwordmFyIHRlc3Rz
ID0gW107CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIHZhciBuZXh0ID0gdGVzdHMuc2hpZnQo
KTsKKyAgICBpZiAobmV4dCkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KG5leHQs
IDApOworICAgIHRlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB2ZXJpZnlNYXJrZXIobm9k
ZSwgZXhwZWN0ZWRNYXJrZWQpCit7CisgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MSW5wdXRF
bGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAg
IG5vZGUuZm9jdXMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZWwuc2VsZWN0QWxsQ2hpbGRy
ZW4obm9kZSk7CisgICAgfQorICAgIHJldHVybiB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxs
aW5nTWFya2VyKGV4cGVjdGVkTWFya2VkWzBdLCBleHBlY3RlZE1hcmtlZFsxXSk7Cit9CisKK2Z1
bmN0aW9uIHBhc3RlQW5kVmVyaWZ5KHNvdXJjZSwgZGVzdCwgZXhwZWN0ZWRNYXJrZWQpCit7Cisg
ICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKHNvdXJjZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoIkNvcHkiKTsKKyAgICBpZiAoZGVzdCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwg
ZGVzdCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgZGVzdC52YWx1
ZSA9ICIiOworICAgICAgICBkZXN0LmZvY3VzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVz
dC5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRlc3QpOwor
ICAgIH0KKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKKworICAgIHZhciBucmV0
cnkgPSAxMDsKKyAgICB2YXIgbnNsZWVwID0gMTsKKyAgICBmdW5jdGlvbiB0cmlhbCgpIHsgCisg
ICAgICAgIHZhciB2ZXJpZmllZCA9IHZlcmlmeU1hcmtlcihkZXN0LCBleHBlY3RlZE1hcmtlZCk7
CisgICAgICAgIGlmICh2ZXJpZmllZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChkZXN0LnRh
Z05hbWUgKyAiIGhhcyBhIG1hcmtlciBvbiAnIiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOwor
ICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgbnJldHJ5LS07CisgICAgICAgIGlmICgwID09IG5yZXRyeSkgeworICAgICAgICAgICAg
dGVzdEZhaWxlZChkZXN0LnRhZ05hbWUgKyAiIHNob3VsZCBoYXZlIGEgbWFya2VyIG9uIGZvciAn
IiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuc2xlZXAgKj0gMjsK
KyAgICAgICAgd2luZG93LnNldFRpbWVvdXQodHJpYWwsIG5zbGVlcCk7CisgICAgfTsKKyAgICB0
cmlhbCgpOworfTsKKwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVz
dFNvdXJjZVBsYWluLCB0ZXN0SW5wdXQsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlv
bigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdElucHV0LCBbMCwg
M10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3Vy
Y2VQbGFpbiwgdGVzdFRleHRBcmVhLCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24o
KSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RUZXh0QXJlYSwgWzAs
IDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291
cmNlUGxhaW4sIHRlc3RFZGl0YWJsZSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9u
KCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0RWRpdGFibGUsIFsw
LCAyXSk7IH0pOyAvLyBUbyBjaGVjayAiZm8iIHBhcnQgb2YgZm9vLgorZG9uZSgpOworCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVlM2E4NzMwYjUyZjI0ZWM0NDViYmVlYTQyMzVmNGZkNTg4YTFiYjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZv
ciBwYXN0ZWQgdGV4dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBJTlBVVCBoYXMg
YSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5v
IGJhPC9iPnInCitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1Mg
VEVYVEFSRUEgaGFzIGEgbWFya2VyIG9uICdmbzxiPm8gYmE8L2I+cicKK1BBU1MgRElWIGhhcyBh
IG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJh
PC9iPnInCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LXBhc3RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJhYmEwYzM0NTczNDUzMzMwODVjOGRlMGQxYjhkZWMx
MWMyMDk4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNo
YXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L3NwZWxsY2hlY2stcGFzdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQKaW5kZXggZDcwODU2ZWJhYTQ5ZmNhMjk0ZGJmMmY4NjE5NTUzYWZjMTNlMmEzMy4uZWY2
NGQ3MzQ2ZDJkNDhkMzE1ZTY3M2JmZDU0MjE3YjA0YTc3MjVmOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjcxMSw2
ICsyNzExLDkgQEAgQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFk
aXVzRG91YmxlMDkuaHRtbCA9IElNQUdFCiBCVUdXSzQxODMyIDogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy10ZXh0YXJlYS5odG1sID0gRkFJTAogQlVHV0s0MTgzMiA6IGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwgPSBGQUlMCiAKKy8vIE5lZWQgdG8gaW1w
bGVtZW50IEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKQorQlVHV0s0MTQy
MyA6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sID0gVElNRU9VVAorCiAv
LyBGbGFreSB0ZXN0cy4KIEJVRzQ0MzQ1IExJTlVYIDogc3ZnL3pvb20vdGV4dC96b29tLWhpeGll
LW1peGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCiBCVUc0NDM0NiBMSU5VWCA6IHN2Zy96b29tL3Bh
Z2Uvem9vbS1oaXhpZS1taXhlZC0wMDkueG1sID0gSU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAppbmRleCA1N2M1NDhiZWRlOWUzOTM2ZWE1OWU0ZDk2YjQwZWY0ZTRkZjhiOWZkLi43
MTAxYTRhNWU1ZjliZjIyMmYyY2YxZWIyNGFkNGNhNjM1ODBkNjU2IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZApAQCAtMTAxOCw2ICsxMDE4LDcgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLWF0dHJpYnV0ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0
YWJsZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbAorZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvc3R5bGUvNTA2NTkxMC5o
dG1sCiBlZGl0aW5nL3N0eWxlL2FwcGxlLXN0eWxlLWVkaXRhYmxlLW1peC5odG1sCiBlZGl0aW5n
L3N0eWxlL2Jsb2NrLXN0eWxlLTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3Bh
cmQvU2tpcHBlZAppbmRleCA0NzVkZmZjYmM1OGUzYWQ4NzAxMDE5NDM3ODg0Y2JjODUxMDEyNDc5
Li5jMzAxOGRhN2Y3NzczMmJkYjEwOGIyMGI2YWMyNTNlOGY4MDkwZTZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTg1LDYgKzg1LDkgQEAgZmFzdC90ZXh0
L2h5cGhlbmF0ZS1sb2NhbGUuaHRtbAogIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM1MjcxCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxs
Lmh0bWwKIAorIyBBdmFpbGFibGUgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlLmh0bWwKKwogIyBEaXNhYmxlIHRlc3RzIHdoaWNoIHN0YXJ0ZWQgZmFpbGlu
ZyBhZnRlciByNjY5NjEKICMgRmFpbHVyZXMgbG9vayBsaWtlIGFuIHVuZGVybHlpbmcgcGxhdGZv
cm0gaXNzdWUKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTQ2
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCmluZGV4IDEwMzllYzhhM2Y4NGY2
NTBmODQ3ZDgwNjkwMjdmMzM1Mjc1ZmU1MTYuLmJmNTEwMWIxOWJmNDBmNjJmYjBlYWVlNDk1NWRj
YjBlYTIyYmIwMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCkBAIC0y
MDcsOCArMjA3LDExIEBAIGZhc3QvaGFybmVzcy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCiAjIExv
YWRpbmcgZmFpbHMgb24gVGlnZXIgd2l0aCBlcnJvciAtMTAxMiBhZnRlciBhc2tpbmcgTlNVUkxD
b25uZWN0aW9uIHRvIGNvbnRpbnVlIHdpdGhvdXQgY3JlZGVudGlhbHMuCiBodHRwL3Rlc3RzL21p
c2MvNDAxLWFsdGVybmF0aXZlLWNvbnRlbnQucGhwCiAKKwogIyBEaXNhYmxlIHNwZWxsaW5nIHRl
c3RzIGZvciBhdXRvY29ycmVjdGlvbiBwYW5lbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxp
bmcvYXV0b2NvcnJlY3Rpb24tZGVsZXRlLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5nLXVuZGVybGluZS1hZnRlci1wYXN0ZS5odG1sCiBw
bGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRl
cmxpbmUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24t
c2ltcGxlLmh0bWwKKyMgQXZhaWxhYmxlIG9ubHkgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBl
ZAppbmRleCBkNDA2OWE5MDZlZDA0ZWE3OGQ3NzBjMmM0NWRlNGJmYWM3MzM5YWFjLi43Y2Y2NDcz
NGNiNmY3YjJiZWJlZDk3OWE2YzJlMTlmYjZlOTQ3MGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9Ta2lwcGVkCkBAIC0yMTUsNiArMjE1LDcgQEAgZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxl
LWNsaWNrLWluLXByZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi91c2VyLWRyYWctZWxlbWVudC1h
bmQtdXNlci1zZWxlY3Qtbm9uZS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi93b3JkLWdyYW51bGFy
aXR5Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwK
K2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCiBlZGl0aW5nL3VuZG8vdW5k
by1kZWxldGVXb3JkLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS1yZXZlcnNl
ZC1zZWxlY3Rpb24uaHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXdvcmQuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggYTliNThlNGYwNzIxNTBjMmY0MmU2NmVhNTVl
MzRlMjI5NDM4ZmRmNi4uNzE5OGM5OWQ0ZjYwYjM3NTY2OTJmYjlkMDgxNDhkNWRjNzg0ODgzZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yMjU5LDYgKzIyNTksOSBAQCBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1NDM1CiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFj
ZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKCkgaXMgbm90IGltcGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2st
cGFzdGUuaHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5n
L3N0eWxlIHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKaW5kZXggMzI5MzNiZjU1YTU4MjQ2NWE3NzcyMjdjZWM4NTU0N2RlNDI4NjBjMS4uNzIx
NDM5MmE2ZWVmNDlkYzNhZTNjOTkwOGE5NWE0YTBiNjVmOGE4YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKQEAgLTkwNiw2ICs5MDYsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJh
Y2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29u
dGVudGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRt
bAogCisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1w
bGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgSW5k
ZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGYzMzU3MDVm
NjJmNmMxZTVkMmFhMWQ2NjgzZWU3ZThkNzUxMjUwZC4uNzkzNzFmOTYzMDExZDg1MjE3NTA1OWU4
MWIxMzAwODY5YWNiZTZiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisg
ICAgICAgIC0gSW50cm9kdWNlZCBTcGVsbENoZWNrZXIgY2xhc3MgdG8gZW5jYXBzdWxhdGUgYXN5
bmNocm9ub3VzIHNwZWxsCisgICAgICAgICAgY2hlY2tlciBzdGF0ZTogc2VxdWVuY2UgaWQsIHJl
cXVlc3RpbmcgdGV4dCBhbmQgdGFyZ2V0IG5vZGUuCisgICAgICAgICAgVGhpcyBpcyBmaXJzdCBz
dGVwIHRvIGRlY29tcG9zZSBzcGVsbC1jaGVjayByZWxhdGVkIGNvZGUgdG8KKyAgICAgICAgICBh
IHNlcGFyYXRlIGNsYXNzLgorICAgICAgICAtIEFkZGVkIEVkaXRvckNsaWVudDo6aXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGFuZAorICAgICAgICAgIEVkaXRvckNsaWVudDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSB0byBvcHRpb25hbGx5IHVzZSBhc3luYworICAgICAg
ICAgIHNwZWxsY2hlY2sgQVBJIG9uIHRoZSBwbGF0Zm9ybS4gIHRoZXNlIEFQSXMgYXJlIHRvdWNo
ZWQgYnkKKyAgICAgICAgICBTcGVsbENoZWNrZXIuCisgICAgICAgIC0gVXNlZCBTcGVsbENoZWNr
ZXIgdG8gY2hlY2sgcGFzdGVkIHRlc3QuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAg
ICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKTogaW1wbGVtZW50YXRpb24gb2Ygc2hv
d0RvY3VtZW50TWFya2VycygpCisgICAgICAgIChzaG93RG9jdW1lbnRNYXJrZXJzKTogQWRkZWQg
YW4gZGVidWcgdXRpbGl0eSBzaW1pbGFyIHRvIHNob3dSZW5kZXJUcmVlKCkKKyAgICAgICAgKiBk
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6c2V0T2Zmc2V0
SW5MZWFmTm9kZSk6IEEgc2V0dGVyIGZvciBQb3NpdGlvbkl0ZXJhdG9yOjptX29mZnNldEluQW5j
aG9yLgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KTogQWRkZWQgYSBjaGVja2luZyByZXF1ZXN0LgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpFZGl0b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TWFya2FibGUp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFy
a2VyRm9yKTogRXh0ZW5kZWQgdG8gc3VwcG9ydCBtb3JlIGJyb2FkZXIgY2FzZS4KKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzcGVsbENoZWNr
ZXIpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjppbml0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmNs
ZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9u
b3VzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9u
b3VzQXZhaWxhYmxlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNCdXN5
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQ2hlY2tlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpmb3J3
YXJkSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6
CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5nUmVzdWx0KToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNs
aWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpFbXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAg
ICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMTAtMTEgIEVyaWMgVWhyaGFuZSAgPGVy
aWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEdW1pdHJ1IERhbmlsaXVj
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggYzYyOWE3YzE2NjE1ODU2NDY5NzcxZjNmNDM4YWQzMWNlMDY5ZjVkYi4uOGJl
NGQ3N2Y2ZWYyMThkZjEyNjliNzZlYmIyNGJkYTNmYmM4MzllNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzM2LDYg
KzEzMzYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJl
cGxhY2UuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmggXAogCVdlYkNvcmUv
ZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwIFwKKwlXZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIFwKIAlXZWJDb3JlL2Vk
aXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdEVs
ZW1lbnRDb21tYW5kLmggXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5j
cHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggZTBhNmFmMTNhNjYxMGEzNTM3NmU5ZDIxMGM1NGRmNTQ3YzJjMjIwYy4u
MDdiYWE4ODU4YjVjMGFlYmJlMWI5NWRmZGQzNzkxNzk5YWRkMjdlNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00Njks
NiArNDY5LDcgQEAgX19aTjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU181RnJh
bWVFagogX19aTjdXZWJDb3JlMjNSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1l
bnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZEb2N1bWVudEZyYWdtZW50RUVFYmJiYmJOU18xMEVk
aXRBY3Rpb25FCiBfX1pON1dlYkNvcmUyM2NyZWF0ZUZyYWdtZW50RnJvbU5vZGVzRVBOU184RG9j
dW1lbnRFUktOM1dURjZWZWN0b3JJUE5TXzROb2RlRUxtMEVFRQogX19aTjdXZWJDb3JlMjRCaW5h
cnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKK19fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pO
N1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VOU18xNERv
Y3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIxNG1hcmtlcnNGb3JOb2RlRVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0VOU18xNERvY3VtZW50
TWFya2VyMTBNYXJrZXJUeXBlRQpAQCAtODU5LDYgKzg2MCw3IEBAIF9fWk43V2ViQ29yZTlmb250
Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlND
N0pTVmFsdWVFCitfX1pON1dlYkNvcmUxMlNwZWxsQ2hlY2tlcjhkaWRDaGVja0VpUktOM1dURjZW
ZWN0b3JJTlNfMTlTcGVsbENoZWNraW5nUmVzdWx0RUxtMEVFRQogX19aTkszSlNDOEJpbmRpbmdz
MTBSb290T2JqZWN0MTJnbG9iYWxPYmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZT
dHJpbmdFdgogX19aTks3V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMmI0
MDZhMzQ5MGI1NjM5MTE5N2RkZWFlOWVmN2E1YzFiMjc5ZjJhNC4uNzg2ZGY3NGZmYzBhNWEwZmZi
NWNmMmI1ZDg1M2NiYjNlYzcyMDYwMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE0MjYsNiArMTQyNiw4IEBACiAgICAgICAg
ICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2UuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TbWFy
dFJlcGxhY2VDRi5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNw
cCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwJywKKyAgICAgICAgICAg
ICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxl
bWVudENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1h
bmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5k
ZXggOWIxYzUzNGE0MDA2ZDhjYWY0MTg5MGFmZjQyZDI5YjI1ZTQyYzZiYS4uNjk0ZGUzNGJlYzkw
YjIxMmM2YmUzOTVlN2FiYzA4NzkyZTFiNjk3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04MDgsNiArODA4LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCBcCiAgICAgZWRpdGlu
Zy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU21hcnRSZXBsYWNl
SUNVLmNwcCBcCisgICAgZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKICAgICBlZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5k
LmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5k
LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxN2FlOTBhNzc2
MjQ5MmJkNzgxODNjZjlhMTliOGMyYTIxYTMyYTc1Li5jMjQ2ZWQ0ZDg3MGViY2MwNzgwODY3YzA0
ZTUwMDljNTg3NGFlNGIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTQ3NDg1LDYgKzQ3NDg1LDExNCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVsbENoZWNr
ZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCINCisJCQkJ
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50
ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdFRleHRO
b2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NGQzYWNhMGYxNzhl
ZWMyOGU4ZGNkZWRhZDNkNTFkZmNjMThlNGE0Li5hN2JkZjViYzI4NTAxMmJlYzIyODk2NmZiNDU1
ZjQyMDZiMTIwNTM0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzAwNyw2ICszMDA3LDggQEAKIAkJQTc3OTc5MjgwRDZCOUU2NDAwMzg1MUI5IC8qIEpT
SW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi87IH07CiAJ
CUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5
IC8qIEpTSW1hZ2VEYXRhLmggKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3QSAvKiBD
bGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi87IH07CisJCUE3
OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQw
IC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CisJCUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAv
KiBTcGVsbENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzk1NDYzRTBCNUM0
QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFN
YWMubW0gKi87IH07CiAJCUE3OTU0NjQzMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDY0MjBC
NUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovOyB9OwogCQlBN0FBNjZENjExQzVFRDZB
MDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJ
bmRpY2F0b3IuY3BwICovOyB9OwpAQCAtOTA1Miw2ICs5MDU0LDggQEAKIAkJQTc3OTc5MjQwRDZC
OUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENo
ZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlbGxDaGVj
a2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4RkUxM0ExMjM2NkIxMDAw
QUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9
IFNwZWxsQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDYzRDBC
NUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRHJhZ0RhdGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3OTU0NjQyMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmFnRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5kaWNh
dG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDMzLDYgKzE0NDM3LDgg
QEAKIAkJCQk0QjZGQTZGMzBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmNwcCAqLywK
IAkJCQk0QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi8sCiAJCQkJ
NEI2RkE2RjYwQzM5RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCAqLywKKwkJCQlB
NzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLywKKwkJCQlBNzhG
RTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi8sCiAJCQkJOTMzMDlEQzIw
OTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5
REMzMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmggKi8sCiAJCQkJOTMz
MDlEQzQwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKQEAg
LTIwNTUzLDYgKzIwNTU5LDcgQEAKIAkJCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1MzVCQzk1MTIwMjBDRkYwMDM3
RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NzhG
OTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQwOTlFNjQ5MjAwNTZFNTgxIC8qIFNw
bGl0VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNjA5OUU2NDky
MDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMzE2NSw2ICsyMzE3Miw3IEBACiAJCQkJNjI2Q0RFMEUxMTQwNDI0QzAw
MUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NzhG
OTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3NTM1QkM5NDEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNr
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTEwOTlFNjQ5MjAwNTZFNTgxIC8qIFNw
bGl0RWxlbWVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTMwOTlFNjQ5
MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzMzA5RTE1MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1l
bnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAKaW5kZXggMmI3ZmQ4NWQ3ZmVjZDJmYmM4YzhkM2UyYzk1NTZlYTdlOTk5OTI4
Zi4uOGM1NmI1NGNkNWJiYzI1N2Q4ZTg1MjE3YjllOTY0MDY4N2E3MTg5OCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC01MjQsNCArNTI0LDMyIEBAIHZvaWQg
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpzZXRNYXJrZXJzQWN0aXZlKE5vZGUqIG5vZGUsIHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0CiAgICAgICAgIG5vZGUtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsK
IH0KIAorCisjaWZuZGVmIE5ERUJVRwordm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnNo
b3dNYXJrZXJzKCkgY29uc3QKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVkIG5vZGVzIGhhdmUg
bWFya2VyczpcbiIsIG1fbWFya2Vycy5zaXplKCkpOworICAgIE1hcmtlck1hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9tYXJrZXJzLmVuZCgpOworICAgIGZvciAoTWFya2VyTWFwOjpjb25zdF9p
dGVyYXRvciBub2RlSXRlcmF0b3IgPSBtX21hcmtlcnMuYmVnaW4oKTsgbm9kZUl0ZXJhdG9yICE9
IGVuZDsgKytub2RlSXRlcmF0b3IpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG5vZGVJdGVyYXRv
ci0+Zmlyc3QuZ2V0KCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXAiLCBub2RlKTsKKyAg
ICAgICAgTWFya2VyTWFwVmVjdG9yUGFpciogdmVjdG9yUGFpciA9IG5vZGVJdGVyYXRvci0+c2Vj
b25kOworICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+JiBtYXJrZXJzID0gdmVjdG9yUGFp
ci0+Zmlyc3Q7CisgICAgICAgIHVuc2lnbmVkIG1hcmtlckNvdW50ID0gbWFya2Vycy5zaXplKCk7
CisgICAgICAgIGZvciAodW5zaWduZWQgbWFya2VySW5kZXggPSAwOyBtYXJrZXJJbmRleCA8IG1h
cmtlckNvdW50OyArK21hcmtlckluZGV4KQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIg
JWQ6WyVkOiVkXSglZCkiLCBtYXJrZXJzW21hcmtlckluZGV4XS50eXBlLCBtYXJrZXJzW21hcmtl
ckluZGV4XS5zdGFydE9mZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRleF0uZW5kT2Zmc2V0LCBtYXJr
ZXJzW21hcmtlckluZGV4XS5hY3RpdmVNYXRjaCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
XG4iKTsKKyAgICB9Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKKyNp
Zm5kZWYgTkRFQlVHCit2b2lkIHNob3dEb2N1bWVudE1hcmtlcnMoY29uc3QgV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmIChjb250cm9sbGVy
KQorICAgICAgICBjb250cm9sbGVyLT5zaG93TWFya2VycygpOworfQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDg5MjFiYWFjNTlkYWVhOWQ3MzNkMWY4
MzdmMDM2Y2Y2NmMyOWY3NWMuLjM0MTBlN2ZmMzNkZTRhMmE5YmQzYjljZWRiNTM5OGY3MzFjZjA5
MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCisr
KyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCkBAIC02MSw2ICs2MSwx
MCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBtYXJrZXJzRm9yTm9kZShO
b2RlKik7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNGb3JNYXJrZXJzKERvY3Vt
ZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMpOwogCisj
aWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd01hcmtlcnMoKSBjb25zdDsKKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFZlY3RvcjxEb2N1bWVudE1hcmtlcj4sIFZl
Y3RvcjxJbnRSZWN0PiA+IE1hcmtlck1hcFZlY3RvclBhaXI7CiAgICAgdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxOb2RlPiwgTWFya2VyTWFwVmVjdG9yUGFpcio+IE1hcmtlck1hcDsKQEAgLTY5LDQg
KzczLDggQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjaWZuZGVmIE5E
RUJVRwordm9pZCBzaG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlciopOworI2VuZGlmCisKICNlbmRpZiAvLyBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAgYi9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCBkMmMzYTNmMGNmNGUwZjAzYjQw
ZGI1NDZkOTlhZjExMDJjZDUxNDc2Li40MmNjNTEzNzEyNjc2OTk2ZTRiYjY4ZDE5NWI0YzRhYjJm
ZWZhYmVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtOTgsNiArOTgsMTMgQEAgdm9p
ZCBQb3NpdGlvbkl0ZXJhdG9yOjpkZWNyZW1lbnQoKQogICAgIH0KIH0KIAordm9pZCBQb3NpdGlv
bkl0ZXJhdG9yOjpzZXRPZmZzZXRJbkxlYWZOb2RlKGludCBvZmZzZXQpCit7CisgICAgQVNTRVJU
KCFtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSk7CisgICAgQVNTRVJUKDAgPD0gb2Zmc2V0
ICYmIG9mZnNldCA8PSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpKTsKKyAgICBt
X29mZnNldEluQW5jaG9yID0gb2Zmc2V0OworfQorCiBib29sIFBvc2l0aW9uSXRlcmF0b3I6OmF0
U3RhcnQoKSBjb25zdAogewogICAgIGlmICghbV9hbmNob3JOb2RlKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRv
ci5oCmluZGV4IDdhZjg5Nzc1OTFkMTZjMjk3OTMxODkwZWJkMWFlMDY5YzJkNDdmMzYuLjA4MzI5
YmIxNWNkM2U1MjEwMDQ2MjkzNTg4YWI3YWFiZDMwZmU0ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9y
LmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYW5jaG9yTm9kZTsgfQogICAgIGludCBvZmZzZXRJbkxlYWZOb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9vZmZzZXRJbkFuY2hvcjsgfQorICAgIHZvaWQgc2V0T2Zmc2V0SW5MZWFmTm9k
ZShpbnQgb2Zmc2V0KTsKIAogICAgIGJvb2wgYXRTdGFydCgpIGNvbnN0OwogICAgIGJvb2wgYXRF
bmQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggYjQxZjhlODVlMTU2ODNiYzVkOWQ2MmQ2NWNl
MjJiMmYwNWFlN2I2OC4uYmUxODE5Y2YyODAzNzYxZjBjMzUxYWRiNjY3MWM2NGQ4OGM5YTY3NyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKQEAgLTY1LDkgKzY1LDExIEBACiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0
Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFy
dC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdW5k
LmgiCisjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1
ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMzc4LDYgKzM4
MCwxMCBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIAogICAgIGFwcGx5Q29tbWFuZChS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIGZyYWdt
ZW50LCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCBtYXRjaFN0eWxlKSk7CiAgICAg
cmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CisKKyAgICBOb2RlKiBub2Rl
VG9DaGVjayA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7Cisg
ICAgaWYgKG1fc3BlbGxDaGVja2VyLT5pc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihub2RlVG9D
aGVjaykpCisgICAgICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3Iobm9kZVRv
Q2hlY2spOwogfQogCiB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2Up
CkBAIC0xMDgzLDYgKzEwODksNyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSogZnJhbWUpCiAgICAg
Ly8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3JzIHdhbnQgdGhpcyBi
ZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwgbV9zaG91bGRTdHls
ZVdpdGhDU1MoZmFsc2UpCiAgICAgLCBtX2tpbGxSaW5nKGFkb3B0UHRyKG5ldyBLaWxsUmluZykp
CisgICAgLCBtX3NwZWxsQ2hlY2tlcihuZXcgU3BlbGxDaGVja2VyKGZyYW1lLT5wYWdlKCkgPyBm
cmFtZS0+cGFnZSgpLT5lZGl0b3JDbGllbnQoKSA6IDApKQogICAgICwgbV9jb3JyZWN0aW9uUGFu
ZWxUaW1lcih0aGlzLCAmRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKQogICAgICwg
bV9hcmVNYXJrZWRUZXh0TWF0Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogewpAQCAtMzY1MywxMiAr
MzY2MCwyOSBAQCB2b2lkIEVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBW
aXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGJvbwogICAgIHJlc3BvbmRUb0NoYW5nZWRT
ZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKIH0KIAorc3RhdGljIE5vZGUqIGZpbmRGaXJzdE1hcmth
YmxlKE5vZGUqIG5vZGUpCit7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgaWYgKCFub2Rl
LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChub2RlLT5y
ZW5kZXJlcigpLT5pc1RleHQoKSkKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICBp
ZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0Q29udHJvbCgpKQorICAgICAgICAgICAgbm9kZSA9
IHRvUmVuZGVyVGV4dENvbnRyb2wobm9kZS0+cmVuZGVyZXIoKSktPnZpc2libGVQb3NpdGlvbkZv
ckluZGV4KDEpLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgICAgICBlbHNlIGlmIChub2Rl
LT5maXJzdENoaWxkKCkpCisgICAgICAgICAgICBub2RlID0gbm9kZS0+Zmlyc3RDaGlsZCgpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBFZGl0b3I6OnNlbGVjdGlvblN0YXJ0SGFz
U3BlbGxpbmdNYXJrZXJGb3IoaW50IGZyb20sIGludCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgTm9k
ZSogbm9kZSA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKTsKLSAgICBpZiAo
IW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgTm9kZSogbm9kZSA9IGZpbmRGaXJzdE1h
cmthYmxlKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKSk7CisgICAgaWYgKCFu
b2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQVNTRVJUKG5vZGUtPnJlbmRlcmVyKCkt
PmlzVGV4dCgpKTsKIAogICAgIHVuc2lnbmVkIGludCBzdGFydE9mZnNldCA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkIGludD4oZnJvbSk7CiAgICAgdW5zaWduZWQgaW50IGVuZE9mZnNldCA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGludD4oZnJvbSArIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggOTI4NjYy
Y2ZiMDkwY2YwNGM0YmUzYmU1MTllODRjZmZmZWNmYTQzMy4uMGFmYzE2NjZlZjcwYzBhMWIyODM5
NWM1YmRmMDA2YTU0NzIwMDIyYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBI
aXRUZXN0UmVzdWx0OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xhc3Mg
U2ltcGxlRm9udERhdGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0OwogY2xhc3Mg
VGV4dEV2ZW50OwogCkBAIC0yOTksNiArMzAwLDcgQEAgcHVibGljOgogICAgIFZpc2libGVTZWxl
Y3Rpb24gc2VsZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJpbmcqIGtpbGxS
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNwZWxsQ2hlY2tl
ciogc3BlbGxDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIuZ2V0KCk7IH0K
IAogICAgIEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0zNzcsNiArMzc5
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNl
OwogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBt
X2tpbGxSaW5nOworICAgIE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwogICAg
IFJlZlB0cjxSYW5nZT4gbV9yYW5nZVRvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsKICAgICBTdHJp
bmcgbV9zdHJpbmdUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5nIG1fY29ycmVj
dGlvblJlcGxhY2VtZW50U3RyaW5nOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NzRjNWZlZTZjNjY1YWRiZTY5NTY3OWUyNzM1OWJiYzk4Y2M4YjFmCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTAsMCArMSwxNzMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIk5v
ZGUuaCIKKyNpbmNsdWRlICJQb3NpdGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIK
KyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNp
bmNsdWRlICJodG1sZWRpdGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NwZWxsQ2hl
Y2tlcjo6U3BlbGxDaGVja2VyKEVkaXRvckNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV9yZXF1ZXN0U2VxdWVuY2UoMCkKK3sKK30KKworU3BlbGxDaGVja2Vy
Ojp+U3BlbGxDaGVja2VyKCkKK3sKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0
KE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGlzQXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKG5v
ZGUpKTsKKworICAgIFN0cmluZyB0ZXh0ID0gbm9kZS0+dGV4dENvbnRlbnQoKTsKKyAgICBpZiAo
IXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fcmVxdWVzdE5v
ZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFRleHQgPSB0ZXh0OworICAgIG1fcmVxdWVzdFNlcXVl
bmNlKys7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTcGVsbENoZWNrZXI6OmNsZWFy
UmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0Tm9kZS5jbGVhcigpOworICAgIG1fcmVxdWVzdFRl
eHQgPSBTdHJpbmcoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5h
YmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50ICYmIG1fY2xpZW50LT5pc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjpp
c0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVy
biBpc0NoZWNrZWFibGUobm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVz
eSgpOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzVmFsaWQo
aW50IHNlcXVlbmNlKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3ROb2RlLmdldCgpICYm
IG1fcmVxdWVzdFRleHQubGVuZ3RoKCkgJiYgbV9yZXF1ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7
Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNrZWFibGUoTm9kZSogbm9kZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxs
Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGlz
QXN5bmNocm9ub3VzQXZhaWxhYmxlRm9yKG5vZGUpKTsKKworICAgIGlmICghaW5pdFJlcXVlc3Qo
bm9kZSkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcodGhpcywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1fcmVxdWVzdFRleHQpOworfQorCitzdGF0
aWMgYm9vbCBmb3J3YXJkSXRlcmF0b3IoUG9zaXRpb25JdGVyYXRvciYgaXRlcmF0b3IsIGludCBk
aXN0YW5jZSkKK3sKKyAgICBpbnQgcmVtYWluaW5nID0gZGlzdGFuY2U7CisgICAgd2hpbGUgKCFp
dGVyYXRvci5hdEVuZCgpKSB7CisgICAgICAgIGlmIChpdGVyYXRvci5ub2RlKCktPmlzQ2hhcmFj
dGVyRGF0YU5vZGUoKSkgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IGxhc3RPZmZzZXRGb3JF
ZGl0aW5nKGl0ZXJhdG9yLm5vZGUoKSk7CisgICAgICAgICAgICBpbnQgbGFzdCA9IGxlbmd0aCAt
IGl0ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKTsKKyAgICAgICAgICAgIGlmIChyZW1haW5pbmcg
PCBsYXN0KSB7CisgICAgICAgICAgICAgICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5MZWFmTm9kZShp
dGVyYXRvci5vZmZzZXRJbkxlYWZOb2RlKCkgKyByZW1haW5pbmcpOworICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZW1haW5pbmcgLT0g
bGFzdDsKKyAgICAgICAgICAgIGl0ZXJhdG9yLnNldE9mZnNldEluTGVhZk5vZGUoaXRlcmF0b3Iu
b2Zmc2V0SW5MZWFmTm9kZSgpICsgbGFzdCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRv
ci5pbmNyZW1lbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7ICAgIAorfQorCit2b2lk
IFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxD
aGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFpc1ZhbGlkKHNlcXVlbmNlKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3ROb2RlLT5yZW5kZXJlcigpKSB7
CisgICAgICAgIGNsZWFyUmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aW50IHN0YXJ0T2Zmc2V0ID0gMDsKKyAgICBQb3NpdGlvbkl0ZXJhdG9yIHN0YXJ0ID0gUG9zaXRp
b24obV9yZXF1ZXN0Tm9kZSwgMCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1bHRz
LnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChyZXN1bHRzW2ldLnR5cGUgIT0gRG9jdW1lbnRN
YXJrZXI6OlNwZWxsaW5nICYmIHJlc3VsdHNbaV0udHlwZSAhPSBEb2N1bWVudE1hcmtlcjo6R3Jh
bW1hcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIFRvIGF2b2lkIG1vdmlu
ZyB0aGUgcG9zaXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUgZ2l2ZW4gcmVzdWx0cyBhcmUg
c29ydGVkIHdpdGgKKyAgICAgICAgLy8gc3RhcnRPZmZzZXQgYXMgdGhlIG9uZXMgcmV0dXJuZWQg
YnkgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOl0uCisgICAgICAgIEFT
U0VSVChzdGFydE9mZnNldCA8PSByZXN1bHRzW2ldLmxvY2F0aW9uKTsKKyAgICAgICAgaWYgKCFm
b3J3YXJkSXRlcmF0b3Ioc3RhcnQsIHJlc3VsdHNbaV0ubG9jYXRpb24gLSBzdGFydE9mZnNldCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgUG9zaXRpb25JdGVyYXRvciBlbmQgPSBzdGFy
dDsKKyAgICAgICAgaWYgKCFmb3J3YXJkSXRlcmF0b3IoZW5kLCByZXN1bHRzW2ldLmxlbmd0aCkp
CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBVc2VycyBvciBKYXZhU2NyaXB0IGFw
cGxpY2F0aW9ucyBtYXkgY2hhbmdlIHRleHQgd2hpbGUgYSBzcGVsbC1jaGVja2VyIGNoZWNrcyBp
dHMKKyAgICAgICAgLy8gc3BlbGxpbmdzIGluIHRoZSBiYWNrZ3JvdW5kLiBUbyBhdm9pZCBhZGRp
bmcgbWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgLy8g
SmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMsIHJldHJpZXZlIHRoZSB3b3JkcyBpbiB0aGUgc3BlY2lm
aWVkIHJlZ2lvbiBhbmQgY29tcGFyZSB0aGVtIHdpdGgKKyAgICAgICAgLy8gdGhlIG9yaWdpbmFs
IG9uZXMuCisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fcmVx
dWVzdE5vZGUtPmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOworICAgICAgICAvLyBGSVhNRTogVXNl
IHRleHRDb250ZW50KCkgY29tcGF0aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KKyAgICAgICAgU3Ry
aW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9
IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24sIHJlc3VsdHNbaV0u
bGVuZ3RoKTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAgICAgICAg
IG1fcmVxdWVzdE5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdl
dCgpLCByZXN1bHRzW2ldLnR5cGUpOworCisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gcmVzdWx0c1tp
XS5sb2NhdGlvbjsKKyAgICB9CisKKyAgICBjbGVhclJlcXVlc3QoKTsKK30KKworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmggYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWUyNjQxNmEy
NDQwNDU1NzljZDk0NmFiZjc3YmI5ODEwOTJkZDZmMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgU3BlbGxDaGVja2VyX2gKKyNkZWZpbmUgU3BlbGxDaGVja2VyX2gKKworI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWRpdG9yQ2xpZW50
OworCitzdHJ1Y3QgU3BlbGxDaGVja2luZ1Jlc3VsdCB7CisgICAgU3BlbGxDaGVja2luZ1Jlc3Vs
dCgpCisgICAgICAgIDogdHlwZShEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpCisgICAgICAgICwg
bG9jYXRpb24oMCkKKyAgICAgICAgLCBsZW5ndGgoMCkKKyAgICB7CisgICAgfQorCisgICAgRG9j
dW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZTsKKyAgICBpbnQgbG9jYXRpb247CisgICAgaW50
IGxlbmd0aDsKK307CisKK2NsYXNzIFNwZWxsQ2hlY2tlciB7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgU3BlbGxDaGVja2VyKEVkaXRvckNsaWVudCopOworICAgIH5TcGVsbENoZWNrZXIoKTsKKwor
ICAgIGJvb2wgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0FzeW5j
aHJvbm91c0F2YWlsYWJsZUZvcihOb2RlKikgY29uc3Q7CisgICAgYm9vbCBpc0J1c3koKSBjb25z
dDsKKyAgICBib29sIGlzVmFsaWQoaW50IHNlcXVlbmNlKSBjb25zdDsKKyAgICBib29sIGlzQ2hl
Y2tlYWJsZShOb2RlKiBub2RlKSBjb25zdDsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihO
b2RlKik7CisgICAgdm9pZCBkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVs
bENoZWNraW5nUmVzdWx0PiYpOworCitwcml2YXRlOgorICAgIGJvb2wgaW5pdFJlcXVlc3QoTm9k
ZSopOworICAgIHZvaWQgY2xlYXJSZXF1ZXN0KCk7CisKKyAgICBFZGl0b3JDbGllbnQqIG1fY2xp
ZW50OworCisgICAgUmVmUHRyPE5vZGU+IG1fcmVxdWVzdE5vZGU7CisgICAgU3RyaW5nIG1fcmVx
dWVzdFRleHQ7CisgICAgaW50IG1fcmVxdWVzdFNlcXVlbmNlOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlbGxDaGVja2VyX2gKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
aW5kZXggZmQyMDI1ODM3MGJiOWEzYWM1YzhhYjI1NjRiZjdmNDg4MjEwNzhmOC4uM2MzZGI5OWMw
ODIzODE2OTY4ZGEwMDVkNTIwYjc4MjMxOGYyYjhjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTQ4MCw4ICs0ODAsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCkgeyB9Ci0KLQorICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJp
bmcmKSB7IH0KIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApp
bmRleCA5N2IwOTAyNWNjNDUzN2UyYTNlYmQ5Yzc1YTIxMDIwMzk0ZWZlMDllLi5kODI0MGJhZjA5
Mjc3ODJmOGVlYTg3ZDc5ZWZiMTI3MWY3MTI5N2ZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
RWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC02NSw2
ICs2NSw3IEBAIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNz
IE5vZGU7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFZpc2libGVT
ZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKQEAgLTIwMSw2ICsyMDIsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
IFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJ
bnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0
YXRlKGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCmluZGV4IDExNjhmZTZiN2NkNzcwMzBlNGU4YTc5NWI5OTNiZTg4NThkZDNh
MGYuLmIwYjJmMmM2MTI1ZWY0ODc0ODdkYmJiNGMzMWEzZDQ5ZDU0YzE3ZmQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQg
c3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwu
aDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6aXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0xMSAgRGFuaWVsIENoZW5nICA8ZGNo
ZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCBiMDVhNTkyNmJmNzExMjg2MWMy
NTNhNDZjMjM0YTZkNWI3ZTMzNWQ3Li4zZjcwNTNiNjlmM2UyNjcwYWVhODQ0ZmY4ZTFlNGE3NTli
MGFkOGE2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTEwLDYg
KzExMCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RG
OjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
dElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0
ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6
OlN0cmluZyYpIHt9CiAKICAgICAvLyBTaG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBmb3Ig
fG5vZGV8IGlmIGl0IGlzIGFuIEhUTUxJbnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMgZW1w
dHkuICBUaGlzIGlzIGNhbGxlZCB3aGVuIHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJvdyBp
biBhCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IDFjMTQzYTIwZGYzZDcwOWU0ZjAzMTc0NGFmNjRkZGFlODI0MWRhZmMuLjhiNzRk
YWIxODkzNTU5YWFkNzRmNDBmYjJhMDU5MTQwNjQwMzdiZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlv
bnMuCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjppc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTA3ICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21l
cy4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IDlm
NjBjZmJhZGI0MmYwN2YxMzZiZTdkNGU3OWM0MjA5NDQzOGQxYjIuLjQ0NWY2ZDI1MzAwMTBiOWFi
YTMwMzY1ZjY1ZThhMWU4NTczOTVhMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3RyaW5n
PiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdl
YkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2
YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDkyZWJjZTY2YWQwNjVmOWYyM2U1
YzlmODY0MWFhMTcxYzZjYmQ2MGYuLjNlOTFhMmViOTNkOWQxMzE1NDM1YzcxNGU1NTdmYzNkMGRm
ZmQ5ZTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAg
ICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojppc0Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMDkgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5o
CmluZGV4IGY5ZmY4MmUwMGM0YTMwZjY2MmMxZGEzM2ZiM2E1YTkwMTE5ZDMwNTkuLmY2ODg4ZDVi
NTE5OTZlNDY3OTA4NjAzNDYzMzcxODc1NTg2NzI4YzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtMTMyLDYgKzEzMiw4IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAgICAgdmlydHVhbCBi
b29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6
U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKICAgICBwcml2YXRl
OgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQv
aGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCBkNTVjZTcxZTM2
MTZkY2EzMzUyMTMzOTAyMGM1YzVjZmY0MDlmZTgzLi5kODRjZDFmYTU2ZjFjNzM0NzZjNjliZGJh
MzMzZTAzY2FkMjJkNzNiIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3Rl
ZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1Lmg6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3JDbGllbnRIYWlrdTo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRIYWlrdTo6cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcpOgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKaW5kZXggNWNiZWMyNzIyMTNjYzZj
ZTllN2NhMTFkMGUwNWU2NTJjNmU3N2NkMS4uNDEzOGZiZTAxMjIzNWNjYzE1MDU2MjA2M2FmOGFj
YWM1ZjBkNDM0MSAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEhhaWt1LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEhhaWt1LmgKQEAgLTExMCw2ICsxMTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpOworICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9
CiAKICAgICAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkMThkMzE1NDAzYTY1
YWE2MmQ3MWMyYmQ4OThkM2E4NzE5NzRhZjI5Li44OGMzYjVhMmJiNTUxN2ZlMjlmZDM4NDIzYjcx
MzZmNDgxMWRmNGZhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgYXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSB0byBXZWJFZGl0
b3JDbGllbnQgdXNpbmcKKyAgICAgICAgLVtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZ10uCisgICAgICAgIE5vdGUgdGhhdCBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVy
IGlzIGEgc21hbGwgY2xhc3MgdG8gcmVjZWl2ZQorICAgICAgICByZXF1ZXN0ZWQgc3BlbGwtY2hl
Y2tpbmcgcmVzdWx0LgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGluaXRXaXRo
U2VuZGVyOldlYkNvcmU6OnNlcXVlbmNlOnJlc3VsdHM6XSk6CisgICAgICAgICgtW1dlYkVkaXRv
clNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVs
bENoZWNrUmVzcG9uZGVyIFdURjo6V2ViQ29yZTo6XSk6CisgICAgICAgIChXZWJFZGl0b3JDbGll
bnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oOgorCiAyMDEwLTEwLTExICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkBAIC05MjEsNiArOTQy
LDMyIEBACiAKIDIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBJbXBsZW1lbnRlZCBhc3lu
YyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVkaXRvckNsaWVudC4KKyAgICAgICAgVGhlIGltcGxl
bWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nXQorICAgICAgICB3aGljaCBpcyBhdmFpbGFibGUgb25seSBvbiBNYWMgT1MgMTAuNiBvciBs
YXRlci4KKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCBbTlNTcGVsbENoZWNrZXIgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGludm9rZQorICAgICAgICB0aGUgY2FsbGJhY2sgYmxv
Y2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRocmVhZCwgc28gd2UgbmVlZCB0bworICAgICAgICBy
ZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFpbiB0aHJlYWQgd2hlcmUgV2ViQ29yZSBpcyBydW5u
aW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJwb3NlLCB3ZSBtYWRlIFdlYkVkaXRvclNwZWxsQ2hl
Y2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAgIAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKyAgICAgICAgCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRv
clNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdpdGhTZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVz
dWx0czpdKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIg
cGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5o
OgorCisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgc3BlbGxpbmcgdW5kZXJs
aW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCmluZGV4IGFkMzI0YjlmYTM5ZDY1MDA0ZGNkMTc1ZTdmMTJmOTZmNzE4
NTNkYmMuLmM0MTJlZjljOWQ0NDEzM2JlZDY3MGU1YmZjYmIwMjY4ZDhlM2YwZGIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMyLDYgKzEzMiw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RG
OjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAg
ICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBs
YWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3Jl
OjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29s
IGNvcnJlY3Rpb25BY2NlcHRlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50Lm1tCmluZGV4IDJiZjMyNTlmNGEyMmFiNjg2MWQ2OWQxMzYzYjczYzEzZTgxODI4
ZjYuLjZjNzYxMzZmNWNkNGNkOGI2YjEyMjE5YTQ4M2Y4NWQ1NWI4MmQ3MTAgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02Myw2ICs2Myw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5n
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9V
c2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CkBAIC05
MzIsMyArOTMzLDgzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKQog
ewogfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCgpCit7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAgLy8gRW5hYmxlIGFzeW5jaHJvbm91cyBzcGVsbGNo
ZWNraW5nIChhbmQgZ3JhbW1hciBjaGVja2luZykgb25seSB3aGVuIHdlIGNvbXBpbGUgdGhpcyBm
aWxlIG9uCisgICAgLy8gTWFjIE9TIFggMTAuNiBhbmQgd2UgY2FuIHVzZSBHcmFuZCBDZW50cmFs
IERpc3BhdGNoIGJlY2F1c2UgdGhleSBhcmUgcmVxdWlyZWQgYnkKKyAgICAvLyBbTlNTcGVsbENo
ZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6XS4KKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKK0BpbnRlcmZhY2UgV2Vi
RWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0Cit7CisgICAgV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiBfc2VuZGVyOworICAgIGludCBfc2VxdWVuY2U7CisgICAgUmV0YWluUHRyPE5T
QXJyYXk+IF9yZXN1bHRzOworfQorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciopc2VuZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSop
cmVzdWx0czsKKy0gKHZvaWQpcGVyZm9ybTsKKy0gKFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxs
Q2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHM7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
ZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyCistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihO
U0FycmF5KilyZXN1bHRzCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNl
bGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX3NlbmRlciA9IHNlbmRlcjsKKyAgICBfc2Vx
dWVuY2UgPSBzZXF1ZW5jZTsKKyAgICBfcmVzdWx0cyA9IHJlc3VsdHM7CisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKHZvaWQpcGVyZm9ybQoreworICAgIF9zZW5kZXItPmRpZENoZWNrKF9zZXF1
ZW5jZSwgW3NlbGYgX2NvcmVSZXN1bHRzXSk7Cit9CisKKy0gKFdURjo6VmVjdG9yPFdlYkNvcmU6
OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHMKK3sKKyAgICBOU0FycmF5KiByZXN1
bHRzID0gX3Jlc3VsdHMuZ2V0KCk7CisgICAgV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVj
a2luZ1Jlc3VsdD4gY29yZVJlc3VsdHMoW3Jlc3VsdHMgY291bnRdKTsKKworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgW3Jlc3VsdHMgY291bnRdOyArK2kpIHsKKyAgICAgICAgTlNUZXh0Q2hl
Y2tpbmdUeXBlIHR5cGUgPSBbW3Jlc3VsdHMgb2JqZWN0QXRJbmRleDppXSByZXN1bHRUeXBlXTsK
KyAgICAgICAgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZykKKyAgICAgICAg
ICAgIGNvcmVSZXN1bHRzW2ldLnR5cGUgPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmc7CisgICAg
ICAgIGVsc2UgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAgICAg
ICAgY29yZVJlc3VsdHNbaV0udHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBjb3JlUmVzdWx0c1tpXS50eXBlID0gRG9jdW1lbnRNYXJrZXI6
OkFsbE1hcmtlcnM7CisKKyAgICAgICAgTlNSYW5nZSByYW5nZSA9IFtbcmVzdWx0cyBvYmplY3RB
dEluZGV4OmldIHJhbmdlXTsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubG9jYXRpb24gPSByYW5n
ZS5sb2NhdGlvbjsKKyAgICAgICAgY29yZVJlc3VsdHNbaV0ubGVuZ3RoID0gcmFuZ2UubGVuZ3Ro
OworICAgIH0KKworICAgIHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVuZAorI2VuZGlmCisK
K3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7
CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpCisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQubGVuZ3Ro
KCkpOworICAgIE5TUnVuTG9vcCogY3VycmVudExvb3AgPSBbTlNSdW5Mb29wIGN1cnJlbnRSdW5M
b29wXTsKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmc6dGV4dCByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5
c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJbnRl
Z2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7CisgICAg
ICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtKSAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9yU3Bl
bGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNlOnNl
cXVlbmNlIHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOworICAgICAgICB9XTsKKyNlbmRpZgorfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCmluZGV4IGIwY2IwZjMzZjhjOWVlZTE1YmE0
YzIxMzJlN2QwOGQzMzZmZmJjMWYuLjA0ODVmNjg0YzYyNzJhYjZmYzNhYTMzYzVhZmYwYjdiZWI4
YjcyYmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKQEAgLTE0Miw0ICsxNDIs
NyBAQCB0eXBlZGVmIGVudW0gewogLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGlzIGEgc3BlbGxp
bmcgbWFya2VyIGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhlIGZvY3VzZWQgbm9kZS4KIC0g
KEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7
CiAKKy8vIFJldHVybnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUg
c3BlY2lmaWVkIHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCisvLyBUaGlzIGZ1bmN0aW9uIGlz
IG9ubHkgZm9yIGxheW91dCB0ZXN0cy4KKy0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludCls
b2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7CiBAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
Q2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBjMjUyYjdlYjg5NWFhMzJhNGJh
Yzg1YmQxNDVjMWNkNDcwM2I2ODU4Li5jNTI1M2EyMTRlOGJjZDJjOGI3OTY0NGMzOGRiOGM0YzAy
YTExMjlhIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1v
cnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAg
IEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRRdDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTA4ICBIdWkg
SHVhbmcgIDxodWkuMi5odWFuZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gSGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmlu
ZGV4IDdkOTlkMjIyZDgzNmYxMDdmNmEwM2U2N2E4MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0
NGI3NjdmZTQyOTVjMmIwYmFmMDljNzg1MWMwYmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggZjFhMzNkNmJlNzZlN2Q0YWI5NTBiM2RlM2ViMTg5NzBlOWE3ZjJhZS4u
ZWY1ZjBhMDRlYjI1NjVmODA1MGVjNWZlNDZmNzc3MzFjNDU5YzU0NyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNr
IGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1u
dGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorCiAyMDEwLTEwLTExICBTaGluaWNoaXJvIEhhbWFqaSAgPGhhbWFqaUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggd2luZG93cyBidWlsZCBmYWlsdXJlLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggOGJlNmRlOTBjMjFm
NGUxOWVmYzJmZmZiM2E3YWRlNGNmZDQ4ZWUzMy4uZThiMzdjMmUxYjc3Nzg5ZjRkYmY2YjNiOGVk
MTQxZjA1MmUyOWU1NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCkBAIC0xMTEsNiArMTExLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3Ry
aW5nJikge30KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCBj
ODVmOTAyMjBlNWUyM2Q5YjEwZmRhMGRhN2NjZjVlOWQ2Mzk1YWIzLi5jNThlMDkxZTVmMDY3OWQ1
NGM1NjMwYWE3ZjE1ZWUyNTlkNzc4MjgwIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0x
MC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNo
ZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggMGFkMGExOTUwMDI2Njc0Mjc3
NzM2YTE2MDAwYjhjYjgyYjdmMGQ2Yi4uOTkwYWY4MTcwY2ViNGUyNWYwM2FhZWU3ZmUyZjQ1YjY2
MDhhM2ZlOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRH
dWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiYpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgYm9vbCBp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmll
dyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93
eC9DaGFuZ2VMb2cKaW5kZXggYWJiYzg3Yjg3OTlmYTc5YjBiZTZjNTllZTVkZTVhNzgzNDJjNjg3
My4uZGJkYWRmNjc5ZjYxNGNlYjJkMGIwODJhYWQxZDc2MmFlYzZlYzVlYyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVj
ayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVt
bnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAt
LWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmggYi9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCmluZGV4IGJlNWM5OGFmMjk3ZGUxMGUy
ZjZlNTY2ODVmMmVmNjA2NmU5ZDJmZWYuLmJiZDFjZGVmYTVhNzA1ODYwOWEzYzk3NjExMWRjM2Y1
MmY2NTNhNWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVu
dFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaApAQCAt
MTEyLDYgKzExMiw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxZDRmNzIzNDljOTE5YTE5
MjRhMTA0MTI1NGJiMjFkYTBhNWIxZjdhLi43ZWI1YTBlNTUxMDZlNGE3ZmY3ODBkNmE4OWUxZGU2
YmI1NTQwODkwIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9y
cml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAg
QWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0
b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEw
LTEwLTExICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlciBvZiB0aGUgcGFzdC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggNTg1MmRmMTZi
YjRhN2ZlOTllMmUzYjkwYmRhZGVjYTZkNWYwNDg2NC4uZTNiZTJlMTJmNzYwZjdlN2E1Yjk4MWJk
MDg2NGRhMWM1ZTVmNjc5ZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQwMSw0ICs0MDEsMzMgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBXVEY6OlN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
CisjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19M
RU9QQVJEKQordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdU
Rjo6U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50
U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVj
dGlvbkFjY2VwdGVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViRWRp
dG9yQ2xpZW50Ojppc1Nob3dpbmdDb3JyZWN0aW9uUGFuZWwoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCmluZGV4IDRiMWY5OWM3N2YyMGY4NGFmOGRhMTI0ZWUwMjVlMWI0MDU4OWMyYTEu
LjA5NzIxYTI3ZDI3ZTUyN2VmZTUyOTk3NTVhMGVmYjZiMWEyMDE5M2UgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTEz
Myw4ICsxMzMsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwg
dm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1
dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3Ry
aW5nJik7CisKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VS
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcs
IFdlYkNvcmU6OkVkaXRvciopOworCiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0aW9u
UGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwogICAgIHZpcnR1YWwgYm9vbCBpc1Nob3dp
bmdDb3JyZWN0aW9uUGFuZWwoKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71426</attachid>
            <date>2010-10-21 05:36:42 -0700</date>
            <delta_ts>2010-10-21 05:59:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40092-20101021213640.patch</filename>
            <type>text/plain</type>
            <size>64117</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMzBkZjhkOWQxYjViMjE5MzZlOTFjNGE1YzQ3MDYwYjM3MzNkODA3Li4xYzIwZDFm
MTVlYzVhNDcwZDRmMGU5M2QxMzFjOTljY2ZjNTU4ZGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0yMSAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSBzb21lIHRlc3Rz
IGFmdGVyIHI3MDE3MC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNmE4
NTAwNTE3ZGZjYzg2N2M4OWE4ZGVhZTYxYjVmMWNlYjg2MGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3Rl
LmpzCkBAIC0wLDAgKzEsOTUgQEAKKworZGVzY3JpcHRpb24oJ0ZvciBCdWcgNDAwOTI6IFNwZWxs
IGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4nKTsKKworbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworCit2YXIgdGVzdFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKK2RvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRlc3RSb290LCBkb2N1bWVudC5ib2R5
LmZpcnN0Q2hpbGQpOworCit2YXIgdGVzdFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidGV4dGFyZWEiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RUZXh0QXJlYSk7CisKK3Zh
ciB0ZXN0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwordGVzdElucHV0
LnNldEF0dHJpYnV0ZSgidHlwZSIsICJ0ZXh0Iik7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0
SW5wdXQpOworCit2YXIgdGVzdEVkaXRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Cit0ZXN0RWRpdGFibGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1ZSIp
OwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdEVkaXRhYmxlKTsKKwordmFyIHRlc3RTb3VyY2VQ
bGFpbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordGVzdFNvdXJjZVBsYWluLmlu
bmVySFRNTCA9ICJmb28gYmFyIjsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RTb3VyY2VQbGFp
bik7CisKK3ZhciB0ZXN0U291cmNlRGVjb3JhdGVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7Cit0ZXN0U291cmNlRGVjb3JhdGVkLmlubmVySFRNTCA9ICJmbzxiPm8gYmE8L2I+ciI7
Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0U291cmNlRGVjb3JhdGVkKTsKKwordmFyIHNlbCA9
IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKwordmFyIHRlc3RzID0gW107CisKK2Z1bmN0aW9uIGRv
bmUoKQoreworICAgIHZhciBuZXh0ID0gdGVzdHMuc2hpZnQoKTsKKyAgICBpZiAobmV4dCkKKyAg
ICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KG5leHQsIDApOworICAgIHRlc3RSb290LnN0
eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworfQorCitmdW5jdGlvbiB2ZXJpZnlNYXJrZXIobm9kZSwgZXhwZWN0ZWRNYXJrZWQpCit7
CisgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IG5vZGUgaW5zdGFu
Y2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAgIG5vZGUuZm9jdXMoKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBzZWwuc2VsZWN0QWxsQ2hpbGRyZW4obm9kZSk7CisgICAgfQorICAg
IHJldHVybiBsYXlvdXRUZXN0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcihleHBlY3RlZE1h
cmtlZFswXSwgZXhwZWN0ZWRNYXJrZWRbMV0pOworfQorCitmdW5jdGlvbiBwYXN0ZUFuZFZlcmlm
eShzb3VyY2UsIGRlc3QsIGV4cGVjdGVkTWFya2VkKQoreworICAgIHNlbC5zZWxlY3RBbGxDaGls
ZHJlbihzb3VyY2UpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7CisgICAgaWYg
KGRlc3QgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IGRlc3QgaW5zdGFuY2VvZiBIVE1M
VGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAgIGRlc3QudmFsdWUgPSAiIjsKKyAgICAgICAgZGVz
dC5mb2N1cygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlc3QuaW5uZXJIVE1MID0gIiI7Cisg
ICAgICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihkZXN0KTsKKyAgICB9CisgICAgZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICB2YXIgbnJldHJ5ID0gMTA7CisgICAgdmFyIG5z
bGVlcCA9IDE7CisgICAgZnVuY3Rpb24gdHJpYWwoKSB7IAorICAgICAgICB2YXIgdmVyaWZpZWQg
PSB2ZXJpZnlNYXJrZXIoZGVzdCwgZXhwZWN0ZWRNYXJrZWQpOworICAgICAgICBpZiAodmVyaWZp
ZWQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoZGVzdC50YWdOYW1lICsgIiBoYXMgYSBtYXJr
ZXIgb24gJyIgKyBzb3VyY2UuaW5uZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAgIGRvbmUoKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG5yZXRyeS0tOworICAg
ICAgICBpZiAoMCA9PSBucmV0cnkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZGVzdC50YWdO
YW1lICsgIiBzaG91bGQgaGF2ZSBhIG1hcmtlciBvbiBmb3IgJyIgKyBzb3VyY2UuaW5uZXJIVE1M
ICsgIiciKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgbnNsZWVwICo9IDI7CisgICAgICAgIHdpbmRvdy5zZXRU
aW1lb3V0KHRyaWFsLCBuc2xlZXApOworICAgIH07CisgICAgdHJpYWwoKTsKK307CisKK3Rlc3Rz
LnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdElu
cHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5
KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RJbnB1dCwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNo
KGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRlc3RUZXh0QXJl
YSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0
ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0VGV4dEFyZWEsIFswLCAzXSk7IH0pOwordGVzdHMucHVz
aChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0RWRpdGFi
bGUsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnko
dGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdEVkaXRhYmxlLCBbMCwgMl0pOyB9KTsgLy8gVG8gY2hl
Y2sgImZvIiBwYXJ0IG9mIGZvby4KK2RvbmUoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stcGFzdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTNhODczMGI1MmYyNGVjNDQ1
YmJlZWE0MjM1ZjRmZDU4OGExYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitGb3IgQnVnIDQwMDkyOiBTcGVsbCBjaGVja2luZyBmb3IgcGFzdGVkIHRleHQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSU5QVVQgaGFzIGEgbWFya2VyIG9uICdmb28gYmFy
JworUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24gJ2ZvPGI+byBiYTwvYj5yJworUEFTUyBURVhU
QVJFQSBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtl
ciBvbiAnZm88Yj5vIGJhPC9iPnInCitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXIn
CitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ2ZvPGI+byBiYTwvYj5yJworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiYWJhMGMzNDU3MzQ1MzMzMDg1YzhkZTBkMWI4ZGVjMTFjMjA5OGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRt
bApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXNlbGVjdGlvbi1zaGFyZWQuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDJjOTBhNWY1
ZGU4YjAwYWM2ZGZkZjJiZmYxODM1MGFmMDE5MGNiNWQuLjUwM2NiNTMwMTk4NWQ1N2Q2MzdiNTRm
YjMyNjRhZDY1Yjg0N2MxMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI2OTEsNiArMjY5MSw5IEBAIEJVR1dLNDEz
MTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1c0RvdWJsZTA3Lmh0bWwgPSBJ
TUFHRQogQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91
YmxlMDguaHRtbCA9IElNQUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9i
b3JkZXJSYWRpdXNEb3VibGUwOS5odG1sID0gSU1BR0UKIAorLy8gTmVlZCB0byBpbXBsZW1lbnQg
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpCitCVUdXSzQxNDIzIDogZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwgPSBUSU1FT1VUCisKIC8vIEZsYWt5
IHRlc3RzLgogQlVHNDQzNDUgTElOVVggOiBzdmcvem9vbS90ZXh0L3pvb20taGl4aWUtbWl4ZWQt
MDA5LnhtbCA9IElNQUdFIFBBU1MKIEJVRzQ0MzQ2IExJTlVYIDogc3ZnL3pvb20vcGFnZS96b29t
LWhpeGllLW1peGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CmluZGV4IDIzNzQxZWM1MmY1OWQ1ZWVlNTVkYmZkNzJkYjkyNjA4NmVjOGRmZGQuLmEwOTdmNGI0
NzZiY2I5ZjM1ZmYyNzJmNWY2Yjk2MDE4ZmU5MjU1NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC05ODAsNiArOTgwLDcgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLWF0dHJp
YnV0ZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNvbnRlbnRlZGl0YWJsZS5odG1s
CiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0bWwKIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbAorZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvc3R5bGUvNTA2NTkxMC5odG1sCiBlZGl0
aW5nL3N0eWxlL2FwcGxlLXN0eWxlLWVkaXRhYmxlLW1peC5odG1sCiBlZGl0aW5nL3N0eWxlL2Js
b2NrLXN0eWxlLTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
bGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBl
ZAppbmRleCAzZDc2ZWIyMDdmNGYwMzg5M2U4OWFhZGUyNzZlYWM5ZGIyNTE1ZDczLi4yM2RjNzZi
YjNmZjc4N2I5MmJmZDI2NTcwMWJkYmYxYmM2N2E5NzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTg1LDYgKzg1LDkgQEAgZmFzdC90ZXh0L2h5cGhlbmF0
ZS1sb2NhbGUuaHRtbAogIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM1MjcxCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwKIAor
IyBBdmFpbGFibGUgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBh
c3RlLmh0bWwKKwogIyBEaXNhYmxlIHRlc3RzIHdoaWNoIHN0YXJ0ZWQgZmFpbGluZyBhZnRlciBy
NjY5NjEKICMgRmFpbHVyZXMgbG9vayBsaWtlIGFuIHVuZGVybHlpbmcgcGxhdGZvcm0gaXNzdWUK
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTQ2CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCmluZGV4IGEwOTcxM2ZmZTkxOTFlNDBmOGU3Mjhk
N2QzYjlhYzA0ZmQ3NDUyNjAuLmY3MGFjY2EyZDVkMGJkYWMxNTEwNmUzZTRiZjJkMTVhOTNiNzFk
OTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCkBAIC0yMDQsNiArMjA0
LDkgQEAgZmFzdC9oYXJuZXNzL3Nob3ctbW9kYWwtZGlhbG9nLmh0bWwKICMgTG9hZGluZyBmYWls
cyBvbiBUaWdlciB3aXRoIGVycm9yIC0xMDEyIGFmdGVyIGFza2luZyBOU1VSTENvbm5lY3Rpb24g
dG8gY29udGludWUgd2l0aG91dCBjcmVkZW50aWFscy4KIGh0dHAvdGVzdHMvbWlzYy80MDEtYWx0
ZXJuYXRpdmUtY29udGVudC5waHAKIAorIyBBdmFpbGFibGUgb25seSAxMC42IG9yIGxhdGVyCitl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjIERpc2FibGUgc3BlbGxp
bmcgdGVzdHMgZm9yIGF1dG9jb3JyZWN0aW9uIHBhbmVsCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9z
cGVsbGluZy9hdXRvY29ycmVjdGlvbi1kZWxldGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
c3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLXBhc3RlLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRleCBiMjc2YjczOGVjOTA0YmVi
ZWNkZjA2NjU0MDU0ZWU0YzU4ZWFhODU4Li43NGQxNzdjZWUxZDQ4MjYxNDRlMTcyNWM2NGE4ZGU1
ODZlOWI2YjU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0yMTYsNiAr
MjE2LDcgQEAgZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWluLXByZS5odG1sCiBlZGl0
aW5nL3NlbGVjdGlvbi91c2VyLWRyYWctZWxlbWVudC1hbmQtdXNlci1zZWxlY3Qtbm9uZS5odG1s
CiBlZGl0aW5nL3NlbGVjdGlvbi93b3JkLWdyYW51bGFyaXR5Lmh0bWwKIGVkaXRpbmcvc3BlbGxp
bmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZS5odG1sCiBlZGl0aW5nL3VuZG8vdW5kby1kZWxldGVXb3JkLmh0bWwKIGVkaXRp
bmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS1yZXZlcnNlZC1zZWxlY3Rpb24uaHRtbAogZWRpdGlu
Zy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXdvcmQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
aW5kZXggZmUxODBiZDBiMTA1NmMzYTIyNmE0MmE3OTM0MTgwOTc4MmUyOTJmOS4uMGM3NmNmNWM5
NTc1ZGQyMmI0MzdiNTY5NWVjYTQ3N2E2MGVkY2Q3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CkBAIC0yMjQ0LDYgKzIyNDQsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVh
Lmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NDM1CiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIAor
IyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgaXMgbm90IGltcGxlbWVu
dGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5nL3N0eWxlIHRlc3RzCiAjID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggZDkyZmU2NmExODk4
MjQyMjRmMDA0ZDdmNDA0YWQ4OTEwZmVhYTUzNy4uMmI2YmVjNzc2NGI4MzBmMmJkMGY0N2ZmYTBm
ZWM1MmYzYTc3NThiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTkwMCw2ICs5MDAs
OSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0
bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAogCisjIEVkaXRvckNsaWVudDo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxl
ZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM3YjM5NzE3ZTZiNzBmMmE1NTNiZDdjNThkNzVmOTY0
NWQ0NzI4Ny4uOWUwZjczOGYwNDVlOTUwZjYwMWFhYzU1MDQ0MWU4ODQ2MTM1NDRjMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2MyBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNo
ZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIC0gSW50cm9kdWNlZCBTcGVs
bENoZWNrZXIgY2xhc3MgdG8gZW5jYXBzdWxhdGUgYXN5bmNocm9ub3VzIHNwZWxsCisgICAgICAg
ICAgY2hlY2tlciBzdGF0ZTogc2VxdWVuY2UgaWQsIHJlcXVlc3RpbmcgdGV4dCBhbmQgdGFyZ2V0
IG5vZGUuCisgICAgICAgICAgVGhpcyBpcyBmaXJzdCBzdGVwIHRvIGRlY29tcG9zZSBzcGVsbC1j
aGVjayByZWxhdGVkIGNvZGUgdG8KKyAgICAgICAgICBhIHNlcGFyYXRlIGNsYXNzLgorICAgICAg
ICAtIEFkZGVkIEVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCgpIGFuZAorICAgICAgICAgIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
KSB0byBvcHRpb25hbGx5IHVzZSBhc3luYworICAgICAgICAgIHNwZWxsY2hlY2sgQVBJIG9uIHRo
ZSBwbGF0Zm9ybS4gIHRoZXNlIEFQSXMgYXJlIHRvdWNoZWQgYnkKKyAgICAgICAgICBTcGVsbENo
ZWNrZXIuCisgICAgICAgIC0gVXNlZCBTcGVsbENoZWNrZXIgdG8gY2hlY2sgcGFzdGVkIHRlc3Qu
IFRleHQgdG8gY2hlY2sgaXMKKyAgICAgICAgICBjb2xsZWN0ZWQgZnJvbSB0aGUgc3VidHJlZSB1
bmRlciB0aGUgZWRpdGluZ1Jvb3QuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKTogaW1wbGVtZW50YXRpb24gb2Ygc2hvd0Rv
Y3VtZW50TWFya2VycygpCisgICAgICAgIChzaG93RG9jdW1lbnRNYXJrZXJzKTogQWRkZWQgYW4g
ZGVidWcgdXRpbGl0eSBzaW1pbGFyIHRvIHNob3dSZW5kZXJUcmVlKCkKKyAgICAgICAgKiBkb20v
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25JdGVyYXRvcjo6c2V0T2Zmc2V0SW5M
ZWFmTm9kZSk6IEEgc2V0dGVyIGZvciBQb3NpdGlvbkl0ZXJhdG9yOjptX29mZnNldEluQW5jaG9y
LgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0
aEZyYWdtZW50KTogQWRkZWQgYSBjaGVja2luZyByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpFZGl0b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TWFya2FibGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2Vy
Rm9yKTogRXh0ZW5kZWQgdG8gc3VwcG9ydCBtb3JlIGJyb2FkZXIgY2FzZS4KKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzcGVsbENoZWNrZXIp
OgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyOjppbml0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmNsZWFy
UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3Vz
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQXN5bmNocm9ub3Vz
QXZhaWxhYmxlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNCdXN5KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrZXI6OmlzQ2hlY2tlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVs
bENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJk
SXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6Cisg
ICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5nUmVzdWx0KToKKyAgICAgICAgKiBs
b2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVu
dDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAq
IHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMTAtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2Jp
bnNvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCmluZGV4IGIwNTcwNTEwYTE2MDUyZTRhYzg2ZDY3MGQ2NmE2ODcxYWQ1YWYyNTgu
LmJhNDAxMzhhZTQ5NmRhMzQxYTdiOGM5YjY3OGIzYWI2YzdjM2NhY2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTM0
NCw2ICsxMzQ0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2VkaXRpbmcvU21h
cnRSZXBsYWNlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5oIFwKIAlXZWJD
b3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBcCiAJV2ViQ29y
ZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3Bs
aXRFbGVtZW50Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1h
bmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDY5NDhkNjcyOWNkYTQ2YzZhYWI1YTBmZWYzMmVjNzY0YmIzMjdi
MWYuLmE3MzQ4OWMzNDMwODFkZTNhNGY5OTNlMGQ0ZjE5MDc5MmIzMzU1MmUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAt
NDg4LDYgKzQ4OCw3IEBAIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmRDMUVQ
TlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jCiBfX1pON1dlYkNvcmUyM292
ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjNjcmVh
dGVGcmFnbWVudEZyb21Ob2Rlc0VQTlNfOERvY3VtZW50RVJLTjNXVEY2VmVjdG9ySVBOU180Tm9k
ZUVMbTBFRUUKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0ZVBy
b3BlcnR5TGlzdEV2CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFy
a2Vyc0Zvck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKIF9f
Wk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNf
NE5vZGVFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIzcmVuZGVyZWRS
ZWN0c0Zvck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKQEAgLTg4Myw2
ICs4ODQsNyBAQCBfX1pON1dlYkNvcmU5Zm9udENhY2hlRXYKIF9fWk43V2ViQ29yZTltYWtlUmFu
Z2VFUktOU18xNVZpc2libGVQb3NpdGlvbkVTMl8KIF9fWk43V2ViQ29yZTlwYWdlQ2FjaGVFdgog
X19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTJTcGVs
bENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9ySU5TXzE5U3BlbGxDaGVja2luZ1Jlc3Vs
dEVMbTBFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEyZ2xvYmFsT2JqZWN0RXYK
IF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxMEZsb2F0
UG9pbnRjdjhfTlNQb2ludEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE2NmM0ZDFkN2JlNjZmMzQyYWY0ZDM4ZDNhOGEzMWE1
Y2Y5YjA0NDQuLjkxNTA2ODBiOTczZjBlZDNhNTJiNTFjMTcwOTE3YjJlYjFjMGNiNmEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xNDI2LDYgKzE0MjYsOCBAQAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlLmgn
LAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlQ0YuY3BwJywKICAgICAgICAgICAg
ICdlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAnLAorICAgICAgICAgICAgJ2VkaXRpbmcvU3Bl
bGxDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuaCcsCiAg
ICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCcsCiAgICAgICAgICAg
ICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcv
U3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGI3MzA2MWUxMmQ3YzUxZjIyNTJkYWM3N2Rm
MTY2ZDZlNzc2NWQyMDQuLjExYmM3MDc3OTY4NjM2NWY3OWQxYzFmZWYwMDhlNWUxNzE2NDk5Mzgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBy
bwpAQCAtODExLDYgKzgxMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGVkaXRpbmcvU2VsZWN0aW9u
Q29udHJvbGxlci5jcHAgXAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3Bw
IFwKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAorICAgIGVkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBcCiAgICAg
ZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU3BsaXRUZXh0
Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggMDY0MmEwYjNjM2Q1NGUyYjExYjdhNDhjYzcyNjMxYTExZWUyMjVm
Zi4uODM5YWRjNzliOTVlMGFjMDY3NzdiMTMzZGUwNGQ5ZTZhZTgyNmY3MyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00NzU5MSw2ICs0NzU5MSwxMTQgQEAKIAkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwZWxsQ2hlY2tlci5jcHAi
DQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4z
MiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wN
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkv
Pg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3Bs
aXRFbGVtZW50Q29tbWFuZC5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJ
CQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2lu
MzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJ
CQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGVkaXRpbmdcU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5o
Ig0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggYmM2MTJkZmZiMjk4YmI1MDBiM2Q5ODcwOTg3M2FkN2FlYWFmM2MyMS4u
Mzk3YWU4OWQ2MzlkNzRlNWYyNDRmYzczMWRlY2UwZGEzZmExNDE3NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMTEsNiArMzAxMSw4IEBACiAJCUE3
Nzk3OTI4MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNDBENkI5RTY0MDAzODUxQjkg
LyogSlNJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyog
SlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlB
Nzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAv
KiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlBNzhGRTEzQjEyMzY2QjEwMDBBQ0U4RDAgLyogU3Bl
bGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovOyB9Owor
CQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4
RDAgLyogU3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2M0Qw
QjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovOyB9OwogCQlBNzk1NDY0MzBCNUM0
Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNw
cCAqLzsgfTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FBNjZE
NDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLzsgfTsKQEAgLTkwNTcs
NiArOTA1OSw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlRGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAv
KiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdl
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAx
RTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzhGRTEz
OTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVsbENoZWNrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdEYXRhTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQz
OEYgLyogRHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RHJhZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FBNjZENDExQzVF
RDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNDQ0Nyw2ICsxNDQ1MSw4IEBACiAJCQkJNEI2RkE2RjMwQzM5RTQ4QzAwMDg3
MDExIC8qIFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJNEI2RkE2RjIwQzM5RTQ4QzAwMDg3MDEx
IC8qIFNtYXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZBNkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBT
bWFydFJlcGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNw
ZWxsQ2hlY2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxs
Q2hlY2tlci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1l
bnRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRF
bGVtZW50Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0MDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxp
dFRleHROb2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0yMDYwMSw2ICsyMDYwNyw3IEBACiAJCQkJNzU3
OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc4RkUxM0MxMjM2NkIxMDAwQUNF
OEQwIC8qIFNwZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTIwOTlFNjQ5
MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250
YWluaW5nRWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMyMDksNiArMjMyMTYs
NyBAQAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNo
SW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8q
IFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzhGRTEzQjEy
MzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
MzA5RTExMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTEzMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxNTA5OUU2NDkyMDA1NkU1ODEgLyog
U3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDJiN2ZkODVkN2Zl
Y2QyZmJjOGM4ZDNlMmM5NTU2ZWE3ZTk5OTkyOGYuLjhjNTZiNTRjZDViYmMyNTdkOGU4NTIxN2I5
ZTk2NDA2ODdhNzE4OTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNw
cApAQCAtNTI0LDQgKzUyNCwzMiBAQCB2b2lkIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6c2V0
TWFya2Vyc0FjdGl2ZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydE9mZnNldAogICAgICAgICBu
b2RlLT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAKKworI2lmbmRlZiBOREVCVUcKK3ZvaWQg
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpzaG93TWFya2VycygpIGNvbnN0Cit7CisgICAgZnBy
aW50ZihzdGRlcnIsICIlZCBub2RlcyBoYXZlIG1hcmtlcnM6XG4iLCBtX21hcmtlcnMuc2l6ZSgp
KTsKKyAgICBNYXJrZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fbWFya2Vycy5lbmQoKTsK
KyAgICBmb3IgKE1hcmtlck1hcDo6Y29uc3RfaXRlcmF0b3Igbm9kZUl0ZXJhdG9yID0gbV9tYXJr
ZXJzLmJlZ2luKCk7IG5vZGVJdGVyYXRvciAhPSBlbmQ7ICsrbm9kZUl0ZXJhdG9yKSB7CisgICAg
ICAgIE5vZGUqIG5vZGUgPSBub2RlSXRlcmF0b3ItPmZpcnN0LmdldCgpOworICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIiVwIiwgbm9kZSk7CisgICAgICAgIE1hcmtlck1hcFZlY3RvclBhaXIqIHZl
Y3RvclBhaXIgPSBub2RlSXRlcmF0b3ItPnNlY29uZDsKKyAgICAgICAgVmVjdG9yPERvY3VtZW50
TWFya2VyPiYgbWFya2VycyA9IHZlY3RvclBhaXItPmZpcnN0OworICAgICAgICB1bnNpZ25lZCBt
YXJrZXJDb3VudCA9IG1hcmtlcnMuc2l6ZSgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIG1hcmtl
ckluZGV4ID0gMDsgbWFya2VySW5kZXggPCBtYXJrZXJDb3VudDsgKyttYXJrZXJJbmRleCkKKyAg
ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICVkOlslZDolZF0oJWQpIiwgbWFya2Vyc1ttYXJr
ZXJJbmRleF0udHlwZSwgbWFya2Vyc1ttYXJrZXJJbmRleF0uc3RhcnRPZmZzZXQsIG1hcmtlcnNb
bWFya2VySW5kZXhdLmVuZE9mZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRleF0uYWN0aXZlTWF0Y2gp
OworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisgICAgfQorfQorI2VuZGlmCisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworCisjaWZuZGVmIE5ERUJVRwordm9pZCBzaG93RG9jdW1l
bnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlciogY29udHJv
bGxlcikKK3sKKyAgICBpZiAoY29udHJvbGxlcikKKyAgICAgICAgY29udHJvbGxlci0+c2hvd01h
cmtlcnMoKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaApp
bmRleCA4OTIxYmFhYzU5ZGFlYTlkNzMzZDFmODM3ZjAzNmNmNjZjMjlmNzVjLi4zNDEwZTdmZjMz
ZGU0YTJhOWJkM2I5Y2VkYjUzOThmNzMxY2YwOTA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuaApAQCAtNjEsNiArNjEsMTAgQEAgcHVibGljOgogICAgIFZlY3RvcjxEb2N1
bWVudE1hcmtlcj4gbWFya2Vyc0Zvck5vZGUoTm9kZSopOwogICAgIFZlY3RvcjxJbnRSZWN0PiBy
ZW5kZXJlZFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSA9IERvY3Vt
ZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKIAorI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dN
YXJrZXJzKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB0eXBlZGVmIHN0ZDo6cGFp
cjxWZWN0b3I8RG9jdW1lbnRNYXJrZXI+LCBWZWN0b3I8SW50UmVjdD4gPiBNYXJrZXJNYXBWZWN0
b3JQYWlyOwogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8Tm9kZT4sIE1hcmtlck1hcFZlY3Rv
clBhaXIqPiBNYXJrZXJNYXA7CkBAIC02OSw0ICs3Myw4IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgc2hvd0RvY3VtZW50TWFya2Vy
cyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIqKTsKKyNlbmRpZgorCiAj
ZW5kaWYgLy8gRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5j
cHAKaW5kZXggZDJjM2EzZjBjZjRlMGYwM2I0MGRiNTQ2ZDk5YWYxMTAyY2Q1MTQ3Ni4uNDJjYzUx
MzcxMjY3Njk5NmU0YmI2OGQxOTViNGM0YWIyZmVmYWJlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vUG9zaXRpb25JdGVyYXRvci5jcHAKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRv
ci5jcHAKQEAgLTk4LDYgKzk4LDEzIEBAIHZvaWQgUG9zaXRpb25JdGVyYXRvcjo6ZGVjcmVtZW50
KCkKICAgICB9CiB9CiAKK3ZvaWQgUG9zaXRpb25JdGVyYXRvcjo6c2V0T2Zmc2V0SW5MZWFmTm9k
ZShpbnQgb2Zmc2V0KQoreworICAgIEFTU0VSVCghbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVz
KCkpOworICAgIEFTU0VSVCgwIDw9IG9mZnNldCAmJiBvZmZzZXQgPD0gbGFzdE9mZnNldEZvckVk
aXRpbmcobV9hbmNob3JOb2RlKSk7CisgICAgbV9vZmZzZXRJbkFuY2hvciA9IG9mZnNldDsKK30K
KwogYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjphdFN0YXJ0KCkgY29uc3QKIHsKICAgICBpZiAoIW1f
YW5jaG9yTm9kZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaCBi
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAppbmRleCA3YWY4OTc3NTkxZDE2YzI5Nzkz
MTg5MGViZDFhZTA2OWMyZDQ3ZjM2Li4wODMyOWJiMTVjZDNlNTIxMDA0NjI5MzU4OGFiN2FhYmQz
MGZlNGY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKKysrIGIv
V2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoK
IAogICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX2FuY2hvck5vZGU7IH0KICAgICBp
bnQgb2Zmc2V0SW5MZWFmTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0SW5BbmNob3I7IH0K
KyAgICB2b2lkIHNldE9mZnNldEluTGVhZk5vZGUoaW50IG9mZnNldCk7CiAKICAgICBib29sIGF0
U3RhcnQoKSBjb25zdDsKICAgICBib29sIGF0RW5kKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4
IDdiM2QwNTUyYTJiZmI2NzJjMDdiNzhkNTRkNzBmMDJmMGZlMGQ3N2UuLmY1YmU0YjU4MjQyNGEw
MWZlOThkYjMzY2ZiMzUxNTNhZDJiODE1OTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02NSw5ICs2NSwx
MSBAQAogI2luY2x1ZGUgIlJlbW92ZUZvcm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJC
bG9jay5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0Q29u
dHJvbC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTb3VuZC5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5o
IgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJU
ZXh0SXRlcmF0b3IuaCIKQEAgLTM4Miw2ICszODQsMTAgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VT
ZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVu
dCwKICAgICAKICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmcmFnbWVudCwgc2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0
UmVwbGFjZSwgbWF0Y2hTdHlsZSkpOwogICAgIHJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09w
ZXJhdGlvbigpOworCisgICAgTm9kZSogbm9kZVRvQ2hlY2sgPSBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpOworICAgIGlmIChtX3NwZWxsQ2hlY2tlci0+aXNBc3lu
Y2hyb25vdXNBdmFpbGFibGVGb3Iobm9kZVRvQ2hlY2spKQorICAgICAgICBtX3NwZWxsQ2hlY2tl
ci0+cmVxdWVzdENoZWNraW5nRm9yKG5vZGVUb0NoZWNrKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJl
cGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVw
bGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKQpAQCAtMTA1Niw2ICsxMDYyLDcgQEAgRWRpdG9y
OjpFZGl0b3IoRnJhbWUqIGZyYW1lKQogICAgIC8vIFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQsIHNp
bmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZpb3IgKHRoaXMgbWF0Y2hlcyBJRSBidXQg
bm90IEZGKS4KICAgICAsIG1fc2hvdWxkU3R5bGVXaXRoQ1NTKGZhbHNlKQogICAgICwgbV9raWxs
UmluZyhhZG9wdFB0cihuZXcgS2lsbFJpbmcpKQorICAgICwgbV9zcGVsbENoZWNrZXIobmV3IFNw
ZWxsQ2hlY2tlcihmcmFtZS0+cGFnZSgpID8gZnJhbWUtPnBhZ2UoKS0+ZWRpdG9yQ2xpZW50KCkg
OiAwKSkKICAgICAsIG1fY29ycmVjdGlvblBhbmVsVGltZXIodGhpcywgJkVkaXRvcjo6Y29ycmVj
dGlvblBhbmVsVGltZXJGaXJlZCkKICAgICAsIG1fYXJlTWFya2VkVGV4dE1hdGNoZXNIaWdobGln
aHRlZChmYWxzZSkKIHsKQEAgLTM2MjgsMTIgKzM2MzUsMjkgQEAgdm9pZCBFZGl0b3I6OnJlc3Bv
bmRUb0NoYW5nZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9u
LCBib28KICAgICByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKG9sZFNlbGVjdGlvbik7CiB9CiAK
K3N0YXRpYyBOb2RlKiBmaW5kRmlyc3RNYXJrYWJsZShOb2RlKiBub2RlKQoreworICAgIHdoaWxl
IChub2RlKSB7CisgICAgICAgIGlmICghbm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJl
dHVybiAwOworICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpCisgICAgICAg
ICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dENv
bnRyb2woKSkKKyAgICAgICAgICAgIG5vZGUgPSB0b1JlbmRlclRleHRDb250cm9sKG5vZGUtPnJl
bmRlcmVyKCkpLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleCgxKS5kZWVwRXF1aXZhbGVudCgpLm5v
ZGUoKTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+Zmlyc3RDaGlsZCgpKQorICAgICAgICAgICAg
bm9kZSA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbm9k
ZSA9IG5vZGUtPm5leHRTaWJsaW5nKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIGJv
b2wgRWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKGludCBmcm9tLCBp
bnQgbGVuZ3RoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSBtX2ZyYW1lLT5zZWxlY3Rpb24o
KS0+c3RhcnQoKS5ub2RlKCk7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpKQor
ICAgIE5vZGUqIG5vZGUgPSBmaW5kRmlyc3RNYXJrYWJsZShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+
c3RhcnQoKS5ub2RlKCkpOworICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpLT5pc1RleHQoKSk7CiAKICAgICB1bnNpZ25lZCBp
bnQgc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20pOwogICAgIHVu
c2lnbmVkIGludCBlbmRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20gKyBs
ZW5ndGgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCmluZGV4IGRmMmU5NDczMWFjZDI1OTI3M2I2ZDRmMWU4MzNmYWZjNjE3
ZGRiMDEuLmZlZWU4YzRiZTNlY2RhOTE0NjM2ZWViOTU5NmFlN2U4NWY3MDg1MTAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmgKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEtpbGxSaW5n
OwogY2xhc3MgUGFzdGVib2FyZDsKIGNsYXNzIFNpbXBsZUZvbnREYXRhOworY2xhc3MgU3BlbGxD
aGVja2VyOwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRFdmVudDsKIApAQCAtMjk4LDYgKzI5OSw3
IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbkZvckNvbW1hbmQoRXZl
bnQqKTsKIAogICAgIEtpbGxSaW5nKiBraWxsUmluZygpIGNvbnN0IHsgcmV0dXJuIG1fa2lsbFJp
bmcuZ2V0KCk7IH0KKyAgICBTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlcigpIGNvbnN0IHsgcmV0
dXJuIG1fc3BlbGxDaGVja2VyLmdldCgpOyB9CiAKICAgICBFZGl0aW5nQmVoYXZpb3IgYmVoYXZp
b3IoKSBjb25zdDsKIApAQCAtMzc2LDYgKzM3OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3No
b3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRo
Q1NTOwogICAgIE93blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKKyAgICBPd25QdHI8U3BlbGxD
aGVja2VyPiBtX3NwZWxsQ2hlY2tlcjsKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVw
bGFjZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5nIG1fc3RyaW5nVG9CZVJlcGxhY2VkQnlDb3Jy
ZWN0aW9uOwogICAgIFN0cmluZyBtX2NvcnJlY3Rpb25SZXBsYWNlbWVudFN0cmluZzsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5n
L1NwZWxsQ2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmI3MDkwYWE0ZWY5NTYwMTViMWU4MTQxOGUy
NTEwNDM4NGQ2MTNjYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xp
ZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxUZXh0
QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiUG9zaXRpb25JdGVy
YXRvci5oIgorI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcihFZGl0b3JDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcmVxdWVzdFNlcXVl
bmNlKDApCit7Cit9CisKK1NwZWxsQ2hlY2tlcjo6flNwZWxsQ2hlY2tlcigpCit7Cit9CisKK2Jv
b2wgU3BlbGxDaGVja2VyOjppbml0UmVxdWVzdChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChp
c0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihub2RlKSk7CisKKyAgICBTdHJpbmcgdGV4dCA9IG5v
ZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3ROb2RlID0gbm9kZTsKKyAgICBtX3JlcXVlc3RUZXh0
ID0gdGV4dDsKKyAgICBtX3JlcXVlc3RTZXF1ZW5jZSsrOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpjbGVhclJlcXVlc3QoKQoreworICAgIG1fcmVxdWVzdE5v
ZGUuY2xlYXIoKTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7Cit9CisKK2Jvb2wgU3Bl
bGxDaGVja2VyOjppc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBt
X2NsaWVudCAmJiBtX2NsaWVudC0+aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
OworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNBdmFpbGFibGVGb3IoTm9k
ZSogbm9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDaGVja2VhYmxlKG5vZGUpICYmIGlzQXN5
bmNocm9ub3VzRW5hYmxlZCgpICYmICFpc0J1c3koKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6
OmlzQnVzeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdE5vZGUuZ2V0KCk7Cit9CisK
K2Jvb2wgU3BlbGxDaGVja2VyOjppc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBtX3JlcXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1f
cmVxdWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXND
aGVja2VhYmxlKE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+
cmVuZGVyZXIoKTsKK30KKwordm9pZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihO
b2RlKiBub2RlKQoreworICAgIEFTU0VSVChpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZvcihub2Rl
KSk7CisKKyAgICBpZiAoIWluaXRSZXF1ZXN0KG5vZGUpKQorICAgICAgICByZXR1cm47CisgICAg
bV9jbGllbnQtPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNlcXVlbmNl
LCBtX3JlcXVlc3RUZXh0KTsKK30KKworc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJhdG9yKFBvc2l0
aW9uSXRlcmF0b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFuY2UpCit7CisgICAgaW50IHJlbWFpbmlu
ZyA9IGRpc3RhbmNlOworICAgIHdoaWxlICghaXRlcmF0b3IuYXRFbmQoKSkgeworICAgICAgICBp
ZiAoaXRlcmF0b3Iubm9kZSgpLT5pc0NoYXJhY3RlckRhdGFOb2RlKCkpIHsKKyAgICAgICAgICAg
IGludCBsZW5ndGggPSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhpdGVyYXRvci5ub2RlKCkpOworICAg
ICAgICAgICAgaW50IGxhc3QgPSBsZW5ndGggLSBpdGVyYXRvci5vZmZzZXRJbkxlYWZOb2RlKCk7
CisgICAgICAgICAgICBpZiAocmVtYWluaW5nIDwgbGFzdCkgeworICAgICAgICAgICAgICAgIGl0
ZXJhdG9yLnNldE9mZnNldEluTGVhZk5vZGUoaXRlcmF0b3Iub2Zmc2V0SW5MZWFmTm9kZSgpICsg
cmVtYWluaW5nKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgcmVtYWluaW5nIC09IGxhc3Q7CisgICAgICAgICAgICBpdGVyYXRvci5z
ZXRPZmZzZXRJbkxlYWZOb2RlKGl0ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKSArIGxhc3QpOwor
ICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IuaW5jcmVtZW50KCk7CisgICAgfQorCisgICAg
cmV0dXJuIGZhbHNlOyAgICAKK30KKwordm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBz
ZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQorewor
ICAgIGlmICghaXNWYWxpZChzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
bV9yZXF1ZXN0Tm9kZS0+cmVuZGVyZXIoKSkgeworICAgICAgICBjbGVhclJlcXVlc3QoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGludCBzdGFydE9mZnNldCA9IDA7CisgICAgUG9z
aXRpb25JdGVyYXRvciBzdGFydCA9IFBvc2l0aW9uKG1fcmVxdWVzdE5vZGUsIDApOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAo
cmVzdWx0c1tpXS50eXBlKCkgIT0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nICYmIHJlc3VsdHNb
aV0udHlwZSgpICE9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgLy8gVG8gYXZvaWQgbW92aW5nIHRoZSBwb3NpdGlvbiBiYWNrd2FyZCwg
d2UgYXNzdW1lIHRoZSBnaXZlbiByZXN1bHRzIGFyZSBzb3J0ZWQgd2l0aAorICAgICAgICAvLyBz
dGFydE9mZnNldCBhcyB0aGUgb25lcyByZXR1cm5lZCBieSBbTlNTcGVsbENoZWNrZXIgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmc6XS4KKyAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3Vs
dHNbaV0ubG9jYXRpb24oKSk7CisgICAgICAgIGlmICghZm9yd2FyZEl0ZXJhdG9yKHN0YXJ0LCBy
ZXN1bHRzW2ldLmxvY2F0aW9uKCkgLSBzdGFydE9mZnNldCkpCisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgUG9zaXRpb25JdGVyYXRvciBlbmQgPSBzdGFydDsKKyAgICAgICAgaWYgKCFmb3J3
YXJkSXRlcmF0b3IoZW5kLCByZXN1bHRzW2ldLmxlbmd0aCgpKSkKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIC8vIFVzZXJzIG9yIEphdmFTY3JpcHQgYXBwbGljYXRpb25zIG1heSBjaGFu
Z2UgdGV4dCB3aGlsZSBhIHNwZWxsLWNoZWNrZXIgY2hlY2tzIGl0cworICAgICAgICAvLyBzcGVs
bGluZ3MgaW4gdGhlIGJhY2tncm91bmQuIFRvIGF2b2lkIGFkZGluZyBtYXJrZXJzIHRvIHRoZSB3
b3JkcyBtb2RpZmllZCBieSB1c2VycyBvcgorICAgICAgICAvLyBKYXZhU2NyaXB0IGFwcGxpY2F0
aW9ucywgcmV0cmlldmUgdGhlIHdvcmRzIGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGFuZCBjb21w
YXJlIHRoZW0gd2l0aAorICAgICAgICAvLyB0aGUgb3JpZ2luYWwgb25lcy4KKyAgICAgICAgUmVm
UHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9yZXF1ZXN0Tm9kZS0+ZG9jdW1lbnQo
KSwgc3RhcnQsIGVuZCk7CisgICAgICAgIC8vIEZJWE1FOiBVc2UgdGV4dENvbnRlbnQoKSBjb21w
YXRpYmxlIHN0cmluZyBjb252ZXJzaW9uLgorICAgICAgICBTdHJpbmcgZGVzdGluYXRpb24gPSBy
YW5nZS0+dGV4dCgpOworICAgICAgICBTdHJpbmcgc291cmNlID0gbV9yZXF1ZXN0VGV4dC5zdWJz
dHJpbmcocmVzdWx0c1tpXS5sb2NhdGlvbigpLCByZXN1bHRzW2ldLmxlbmd0aCgpKTsKKyAgICAg
ICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAgICAgICAgIG1fcmVxdWVzdE5vZGUt
PmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgpLCByZXN1bHRzW2ld
LnR5cGUoKSk7CisKKyAgICAgICAgc3RhcnRPZmZzZXQgPSByZXN1bHRzW2ldLmxvY2F0aW9uKCk7
CisgICAgfQorCisgICAgY2xlYXJSZXF1ZXN0KCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIGIvV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiZGU1ZDU2MTFmZWQzZTYzZGUz
YTgxMzQ0MGYwZDZkYjIyZmZiYmUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2VkaXRpbmcv
U3BlbGxDaGVja2VyLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFNwZWxs
Q2hlY2tlcl9oCisjZGVmaW5lIFNwZWxsQ2hlY2tlcl9oCisKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEVkaXRvckNsaWVudDsKKworY2xhc3MgU3BlbGxDaGVja2luZ1Jlc3VsdCB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2luZ1Jlc3VsdChEb2N1bWVudE1hcmtlcjo6TWFy
a2VyVHlwZSB0eXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nLCBpbnQgbG9jYXRpb24gPSAw
LCBpbnQgbGVuZ3RoID0gMCkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBtX2xv
Y2F0aW9uKGxvY2F0aW9uKQorICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICB7CisgICAg
fQorCisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfSAKKyAgICBpbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9u
OyB9CisgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKK3ByaXZh
dGU6CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgbV90eXBlOworICAgIGludCBtX2xv
Y2F0aW9uOworICAgIGludCBtX2xlbmd0aDsKK307CisKK2NsYXNzIFNwZWxsQ2hlY2tlciA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2VyKEVk
aXRvckNsaWVudCopOworICAgIH5TcGVsbENoZWNrZXIoKTsKKworICAgIGJvb2wgaXNBc3luY2hy
b25vdXNFbmFibGVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0F2YWlsYWJsZUZv
cihOb2RlKikgY29uc3Q7CisgICAgYm9vbCBpc0J1c3koKSBjb25zdDsKKyAgICBib29sIGlzVmFs
aWQoaW50IHNlcXVlbmNlKSBjb25zdDsKKyAgICBib29sIGlzQ2hlY2tlYWJsZShOb2RlKiBub2Rl
KSBjb25zdDsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKik7CisgICAgdm9pZCBk
aWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYp
OworCitwcml2YXRlOgorICAgIGJvb2wgaW5pdFJlcXVlc3QoTm9kZSopOworICAgIHZvaWQgY2xl
YXJSZXF1ZXN0KCk7CisKKyAgICBFZGl0b3JDbGllbnQqIG1fY2xpZW50OworCisgICAgUmVmUHRy
PE5vZGU+IG1fcmVxdWVzdE5vZGU7CisgICAgU3RyaW5nIG1fcmVxdWVzdFRleHQ7CisgICAgaW50
IG1fcmVxdWVzdFNlcXVlbmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gU3BlbGxDaGVja2VyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZmQyMDI1ODM3MGJi
OWEzYWM1YzhhYjI1NjRiZjdmNDg4MjEwNzhmOC4uM2MzZGI5OWMwODIzODE2OTY4ZGEwMDVkNTIw
Yjc4MjMxOGYyYjhjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgK
KysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQ4MCw4ICs0ODAsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
IFZlY3RvcjxTdHJpbmc+JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhv
ZFN0YXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkg
eyB9Ci0KLQorICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7IH0KIH07CiAKICNp
ZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FZGl0b3JD
bGllbnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCA5N2IwOTAyNWNjNDUz
N2UyYTNlYmQ5Yzc1YTIxMDIwMzk0ZWZlMDllLi5kODI0MGJhZjA5Mjc3ODJmOGVlYTg3ZDc5ZWZi
MTI3MWY3MTI5N2ZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysr
IGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIEhU
TUxFbGVtZW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5n
ZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBW
aXNpYmxlUG9zaXRpb247CiAKQEAgLTIwMSw2ICsyMDIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBn
dWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENo
ZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGJkMmZhYTgzNzgxZmEzMWE1ZDdmZDIyNjRiYTdiYTU4M2JiMmFmZGMuLmJlZGFmMzNmODY1NmE1
N2QyYjk2ZWU3OWUxNzNkMjA5MDdhMTQ1M2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9l
cyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRp
b25zLgorCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuaDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50SW1wbDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKToKKwogMjAxMC0xMC0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFp
bC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjcwMTY1LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCBiMDVhNTkyNmJmNzExMjg2MWMyNTNh
NDZjMjM0YTZkNWI3ZTMzNWQ3Li4zZjcwNTNiNjlmM2UyNjcwYWVhODQ0ZmY4ZTFlNGE3NTliMGFk
OGE2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTEwLDYgKzEx
MCw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpW
ZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CiAKICAgICAvLyBTaG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBmb3IgfG5v
ZGV8IGlmIGl0IGlzIGFuIEhUTUxJbnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMgZW1wdHku
ICBUaGlzIGlzIGNhbGxlZCB3aGVuIHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJvdyBpbiBh
CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CmluZGV4IDE3OTU2NDU5Y2UzM2Q5NGY3OTRiZTViMGYyNWQ5MDQ0ODY2NjE0OTYuLmRiYWZjODY3
MjQxNjE1MWY0NTBiNzJlMzA5NzEwOGNkNjM1NWRkYTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5v
dCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMu
CisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjppc0FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTE5ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hv
aUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAt
LWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmggYi9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IDlmNjBjZmJhZGI0
MmYwN2YxMzZiZTdkNGU3OWM0MjA5NDQzOGQxYjIuLjQ0NWY2ZDI1MzAwMTBiOWFiYTMwMzY1ZjY1
ZThhMWU4NTczOTVhMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50RWZsLmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRFZmwuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nl
cyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAg
IEV2YXNfT2JqZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGNkZTA0YzkwOWE0NzgxYzI2YTc2MGRhZmQ5Zjdj
ZjkwNTJlMDdlY2YuLjkzNDk2ZDVhMjlkMzNmMmIwZjFmN2E1ZDYyNTc2YzcwNzg4YjM1MzIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBz
dHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjAgIFBoaWxpcHBlIE5vcm1hbmQg
IDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgg
Yi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IGY5ZmY4
MmUwMGM0YTMwZjY2MmMxZGEzM2ZiM2E1YTkwMTE5ZDMwNTkuLmY2ODg4ZDViNTE5OTZlNDY3OTA4
NjAzNDYzMzcxODc1NTg2NzI4YzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaApAQCAtMTMyLDYgKzEzMiw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBX
VEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAgICAgdmlydHVhbCBib29sIGlzQXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2Vy
KiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKICAgICBwcml2YXRlOgogICAgICAgICBX
ZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdl
TG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCBkNTVjZTcxZTM2MTZkY2EzMzUyMTMz
OTAyMGM1YzVjZmY0MDlmZTgzLi5kODRjZDFmYTU2ZjFjNzM0NzZjNjliZGJhMzMzZTAzY2FkMjJk
NzNiIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAg
ICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEhhaWt1Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRI
YWlrdTo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3JDbGllbnRIYWlrdTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEw
LTA5LTI4ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEhhaWt1LmgKaW5kZXggNWNiZWMyNzIyMTNjYzZjZTllN2NhMTFkMGUw
NWU2NTJjNmU3N2NkMS4uNDEzOGZiZTAxMjIzNWNjYzE1MDU2MjA2M2FmOGFjYWM1ZjBkNDM0MSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1
LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgK
QEAgLTExMCw2ICsxMTAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vl
c3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwor
ICAgICAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgp
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CiAKICAgICAgICAg
Ym9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4ZjFlYTQyNTljM2Y5Y2EwNTZhNTQ0OTI0
YTY5MDZhZDIxYWIxNDc4Li5hNDk1NzBmZmIxMTA4YmJmZDA0YzVjNTFiMDAwNjc5MjY1YzM4NDA5
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0
YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRk
ZWQgYXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSB0byBXZWJFZGl0b3JDbGllbnQgdXNp
bmcKKyAgICAgICAgLVtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10uCisg
ICAgICAgIE5vdGUgdGhhdCBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGlzIGEgc21hbGwg
Y2xhc3MgdG8gcmVjZWl2ZQorICAgICAgICByZXF1ZXN0ZWQgc3BlbGwtY2hlY2tpbmcgcmVzdWx0
LgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChX
ZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAg
ICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGluaXRXaXRoU2VuZGVyOldlYkNv
cmU6OnNlcXVlbmNlOnJlc3VsdHM6XSk6CisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tS
ZXNwb25kZXIgcGVyZm9ybV0pOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9u
ZGVyIFdURjo6V2ViQ29yZTo6XSk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgor
CiAyMDEwLTEwLTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCkBAIC0xMTQ0LDYgKzExNjUsMzIgQEAK
IAogMjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAorICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRv
ZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEltcGxlbWVudGVkIGFzeW5jIHNwZWxs
LWNoZWNrIEFQSXMgb24gV2ViRWRpdG9yQ2xpZW50LgorICAgICAgICBUaGUgaW1wbGVtZW50YXRp
b25zIGFyZSB1c2luZyBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddCisg
ICAgICAgIHdoaWNoIGlzIGF2YWlsYWJsZSBvbmx5IG9uIE1hYyBPUyAxMC42IG9yIGxhdGVyLgor
ICAgICAgICAKKyAgICAgICAgTm90ZSB0aGF0IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZ10gY291bGQgaW52b2tlCisgICAgICAgIHRoZSBjYWxsYmFjayBibG9jayBvbiBv
biBvZiB0aGVpciB3b3JrZXIgdGhyZWFkLCBzbyB3ZSBuZWVkIHRvCisgICAgICAgIHJldHVybiB0
aGUgcmVzdWx0IHRvIHRoZSBtYWluIHRocmVhZCB3aGVyZSBXZWJDb3JlIGlzIHJ1bm5pbmcuCisg
ICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG1hZGUgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3Bv
bmRlciBjbGFzcy4KKyAgICAgICAgCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxD
aGVja1Jlc3BvbmRlciBpbml0V2l0aFNlbmRlcjpXZWJDb3JlOjpzZXF1ZW5jZTpyZXN1bHRzOl0p
OiBBZGRlZC4KKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBwZXJmb3Jt
XSk6IEFkZGVkLgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmg6CisKKzIw
MTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKICAgICAgICAg
UmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KIAogICAgICAgICBzcGVsbGluZyB1bmRlcmxpbmUgZ2V0
cyBsb3N0IG9uIGJhY2tzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmgKaW5kZXggYWQzMjRiOWZhMzlkNjUwMDRkY2QxNzVlN2YxMmY5NmY3MTg1M2RiYy4u
YzQxMmVmOWM5ZDQ0MTMzYmVkNjcwZTViZmNiYjAyNjhkOGUzZjBkYiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzIsNiArMTMyLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmlu
ZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7
CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0
dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJv
dW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRv
ciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVj
dGlvbkFjY2VwdGVkKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW0KaW5kZXggMmJmMzI1OWY0YTIyYWI2ODYxZDY5ZDEzNjNiNzNjMTNlODE4MjhmNi4uODI5
YTE4Y2VlNmE0NTEwNmY0OGVhNDcxYzE0ZDA3Y2MyM2UwZjBmZiAxMDA2NDQKLS0tIGEvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTYzLDYgKzYzLDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvU3BlbGxDaGVja2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJUeXBp
bmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFz
Lmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KQEAgLTkzMiwzICs5
MzMsODUgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkK
IHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiB7CiB9CisK
K2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkKK3sKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkKKyAgICAvLyBFbmFibGUgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcg
KGFuZCBncmFtbWFyIGNoZWNraW5nKSBvbmx5IHdoZW4gd2UgY29tcGlsZSB0aGlzIGZpbGUgb24K
KyAgICAvLyBNYWMgT1MgWCAxMC42IGFuZCB3ZSBjYW4gdXNlIEdyYW5kIENlbnRyYWwgRGlzcGF0
Y2ggYmVjYXVzZSB0aGV5IGFyZSByZXF1aXJlZCBieQorICAgIC8vIFtOU1NwZWxsQ2hlY2tlciBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VS
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorQGludGVyZmFjZSBXZWJFZGl0b3JT
cGVsbENoZWNrUmVzcG9uZGVyIDogTlNPYmplY3QKK3sKKyAgICBXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqIF9zZW5kZXI7CisgICAgaW50IF9zZXF1ZW5jZTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4g
X3Jlc3VsdHM7Cit9CistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29yZTo6U3BlbGxDaGVja2Vy
KilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0FycmF5KilyZXN1bHRz
OworLSAodm9pZClwZXJmb3JtOworLSAoV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2lu
Z1Jlc3VsdD4pIF9jb3JlUmVzdWx0czsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkVkaXRv
clNwZWxsQ2hlY2tSZXNwb25kZXIKKy0gKGlkKWluaXRXaXRoU2VuZGVyOihXZWJDb3JlOjpTcGVs
bENoZWNrZXIqKXNlbmRlciBzZXF1ZW5jZTooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkq
KXJlc3VsdHMKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKyAgICBfc2VuZGVyID0gc2VuZGVyOworICAgIF9zZXF1ZW5jZSA9
IHNlcXVlbmNlOworICAgIF9yZXN1bHRzID0gcmVzdWx0czsKKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAodm9pZClwZXJmb3JtCit7CisgICAgX3NlbmRlci0+ZGlkQ2hlY2soX3NlcXVlbmNlLCBb
c2VsZiBfY29yZVJlc3VsdHNdKTsKK30KKworc3RhdGljIFNwZWxsQ2hlY2tpbmdSZXN1bHQgdG9D
b3JlU3BlbGxpbmdSZXN1bHQoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCkKK3sKKyAgICBO
U1RleHRDaGVja2luZ1R5cGUgdHlwZSA9IFtyZXN1bHQgcmVzdWx0VHlwZV07CisgICAgTlNSYW5n
ZSByYW5nZSA9IFtyZXN1bHQgcmFuZ2VdOworICAgIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBl
IGNvcmVUeXBlOworICAgIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCisg
ICAgICAgIGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgIGVsc2UgaWYg
KHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAgICBjb3JlVHlwZSA9IERv
Y3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgIGVsc2UKKyAgICAgICAgY29yZVR5cGUgPSBEb2N1
bWVudE1hcmtlcjo6QWxsTWFya2VyczsKKworICAgIHJldHVybiBTcGVsbENoZWNraW5nUmVzdWx0
KGNvcmVUeXBlLCByYW5nZS5sb2NhdGlvbiwgcmFuZ2UubGVuZ3RoKTsKK30KKworLSAoV1RGOjpW
ZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4pX2NvcmVSZXN1bHRzCit7CisgICAg
V1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4gY29yZVJlc3VsdHM7Cisg
ICAgY29yZVJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KFtfcmVzdWx0cy5nZXQoKSBjb3VudF0pOwor
ICAgIGZvciAoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCBpbiBfcmVzdWx0cy5nZXQoKSkK
KyAgICAgICAgY29yZVJlc3VsdHMuYXBwZW5kKHRvQ29yZVNwZWxsaW5nUmVzdWx0KHJlc3VsdCkp
OworICAgIHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVuZAorI2VuZGlmCisKK3ZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisjaWYgIWRl
ZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQp
CisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQubGVuZ3RoKCkpOworICAg
IE5TUnVuTG9vcCogY3VycmVudExvb3AgPSBbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXTsKKyAg
ICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmc6dGV4dCByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVz
IG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJbnRlZ2VyLCBOU0Fy
cmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7CisgICAgICAgICAgICBb
Y3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtKSAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9yU3BlbGxDaGVja1Jl
c3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNlOnNlcXVlbmNlIHJl
c3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpO
U0RlZmF1bHRSdW5Mb29wTW9kZV1dOworICAgICAgICB9XTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lUHJpdmF0ZS5oCmluZGV4IGIwY2IwZjMzZjhjOWVlZTE1YmE0YzIxMzJlN2Qw
OGQzMzZmZmJjMWYuLjA0ODVmNjg0YzYyNzJhYjZmYzNhYTMzYzVhZmYwYjdiZWI4YjcyYmEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAorKysgYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKQEAgLTE0Miw0ICsxNDIsNyBAQCB0eXBl
ZGVmIGVudW0gewogLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGlzIGEgc3BlbGxpbmcgbWFya2Vy
IGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhlIGZvY3VzZWQgbm9kZS4KIC0gKEJPT0wpaGFz
U3BlbGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7CiAKKy8vIFJl
dHVybnMgd2hldGhlciB0aGVyZSBpcyBhIHNwZWxsaW5nIG1hcmtlciBpbiB0aGUgc3BlY2lmaWVk
IHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5vZGUuCisvLyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgZm9y
IGxheW91dCB0ZXN0cy4KKy0gKEJPT0wpaGFzU3BlbGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBs
ZW5ndGg6KGludClsZW5ndGg7CiBAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9n
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBjMWJmNjY0ZWIxMTljMGMyYzhmZmZiYWVjNjFm
MGY5MTQ3Mjk4ZTYzLi40ODdlMTM3ODRlZTI3OWVhOWQ5MTE5MDBjMzNjMDZjNzQwNTRmYmZjIDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0
dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRR
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTIwICBMdWl6IEFnb3N0aW5p
ICA8bHVpei5hZ29zdGluaUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFu
dG9uaW8gR29tZXMuCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmlu
ZGV4IDdkOTlkMjIyZDgzNmYxMDdmNmEwM2U2N2E4MjUzMTVhYzU1YWUzYmYuLjZkZjlkZjZjYzA0
NGI3NjdmZTQyOTVjMmIwYmFmMDljNzg1MWMwYmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMDcsNiArMTA3LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYg
Z3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2
aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggMGY0YzMyY2Q5ZmQ3ZGY2NjQzYTAxNjc5NjVjMmE1NDM2NWY5YzVjNy4u
ZDY1NWQ3MDMyYTBhNGJiYTQ4ZDAxNjg5ZDA1N2IwYTk4YzE2NDI3MCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNr
IGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1u
dGF0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorCiAyMDEwLTEwLTIwICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA4YmU2ZGU5MGMyMWY0ZTE5ZWZjMmZmZmIzYTdh
ZGU0Y2ZkNDhlZTMzLi5lOGIzN2MyZTFiNzc3ODlmNGRiZjZiM2I4ZWQxNDFmMDUyZTI5ZTU3IDEw
MDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisr
KyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMSw2
ICsxMTEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdl
YkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2
YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDhkOTliNWMwZTY2MDkzMjc3
Mzc2OTllYWUxNmVlNzA2YTY2MjE2MjguLjYwODBmMzI2MGJkNDZiMjkzMzlkZjM0MmQ0MGY5ZGJi
ZDc0ZjAxNTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xp
ZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMTUg
IE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50V2luQ0UuaAppbmRleCAwYWQwYTE5NTAwMjY2NzQyNzc3MzZhMTYwMDBiOGNi
ODJiN2YwZDZiLi45OTBhZjgxNzBjZWI0ZTI1ZjAzYWFlZTdmZTJmNDViNjYwOGEzZmU5IDEwMDY0
NAotLS0gYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAor
KysgYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAt
OTgsNiArOTgsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+Jik7CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNv
bnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7
CmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpp
bmRleCBiN2VjMWY2NTRlMzQ0YjExZjhhZmQ5NWFkN2FmZjlkOTQ2Mjk1ODc4Li5iMWQxMzUwOGFi
ZjQxNmNmZGY1ZDdlYmQ1YmVmM2Y3YWI3MmM3MmYxIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0x
MC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNo
ZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKwor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudFd4Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyk6CisKIDIwMTAtMTAtMTMgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaCBiL1dlYktpdC93eC9XZWJLaXRT
dXBwb3J0L0VkaXRvckNsaWVudFd4LmgKaW5kZXggYmU1Yzk4YWYyOTdkZTEwZTJmNmU1NjY4NWYy
ZWY2MDY2ZTlkMmZlZi4uYmJkMWNkZWZhNWE3MDU4NjA5YTNjOTc2MTExZGMzZjUyZjY1M2E1YiAx
MDA2NDQKLS0tIGEvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAorKysg
Yi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCkBAIC0xMTIsNiArMTEy
LDggQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxl
ZCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30K
IAogcHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI1Yjk0NTJmZDM4Y2QyNDMxYzE3YTI4MTJj
ZjBiZmYzN2U2ZTdhNDIuLjNmOTAzOGMyNzkyZmRjODQzYTE0MzIzMGY1MWFmMmEzZmNkNDEyMWMg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
c3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHVi
IGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6
aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTAtMTAtMTQgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlcXVpcmUgdGhl
IHBsdWdpbiB0byBhbHdheXMgdXNlIHRoZSBzYW1lIE5QUCBzdHJ1Y3Qgd2UgZ2F2ZSBpdApkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAppbmRleCA1ODUyZGYxNmJiNGE3ZmU5OWUyZTNiOTBiZGFkZWNhNmQ1ZjA0ODY0Li5lM2Jl
MmUxMmY3NjBmN2U3YTViOTgxYmQwODY0ZGExYzVlNWY2NzllIDEwMDY0NAotLS0gYS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDAx
LDQgKzQwMSwzMyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50Ojpp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCisKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCit2b2lkIFdlYkVkaXRvckNsaWVudDo6c2hvd0Nv
cnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBs
YWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6
OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpc21pc3NDb3JyZWN0
aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYK
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNGIxZjk5Yzc3ZjIwZjg0YWY4ZGEx
MjRlZTAyNWUxYjQwNTg5YzJhMS4uMDk3MjFhMjdkMjdlNTI3ZWZlNTI5OTc1NWEwZWZiNmIxYTIw
MTkzZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaApAQCAtMTMzLDggKzEzMywxMyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vl
c3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKworICAgIHZp
cnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hv
d0NvcnJlY3Rpb25QYW5lbChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZS
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5n
JiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CisKICAgICB2aXJ0dWFsIHZv
aWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CiAgICAg
dmlydHVhbCBib29sIGlzU2hvd2luZ0NvcnJlY3Rpb25QYW5lbCgpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71427</attachid>
            <date>2010-10-21 05:59:41 -0700</date>
            <delta_ts>2010-10-28 04:39:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40092-20101021215939.patch</filename>
            <type>text/plain</type>
            <size>64059</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZWI0NDJkNWQwMWI1NWQ1MmFlNjE3ZmZiOTIwYTNlMzFlOTQzNGFlLi4wZjZjYThk
M2JlZjE5ZjFmOWQyZjRhN2JmN2MwZjQ4MmQ1ODE0MTQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0yMSAgU2hlcmlmZiBCb3QgIDx3
ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjcwMjI1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
Y3JpcHQtdGVzdHMvc3BlbGxjaGVjay1wYXN0ZS5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA2YTg1
MDA1MTdkZmNjODY3Yzg5YThkZWFlNjFiNWYxY2ViODYwZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUu
anMKQEAgLTAsMCArMSw5NSBAQAorCitkZXNjcmlwdGlvbignRm9yIEJ1ZyA0MDA5MjogU3BlbGwg
Y2hlY2tpbmcgZm9yIHBhc3RlZCB0ZXh0LicpOworCitsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisKK3ZhciB0ZXN0Um9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRp
diIpOworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodGVzdFJvb3QsIGRvY3VtZW50LmJvZHku
Zmlyc3RDaGlsZCk7CisKK3ZhciB0ZXN0VGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJ0ZXh0YXJlYSIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFRleHRBcmVhKTsKKwordmFy
IHRlc3RJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cit0ZXN0SW5wdXQu
c2V0QXR0cmlidXRlKCJ0eXBlIiwgInRleHQiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RJ
bnB1dCk7CisKK3ZhciB0ZXN0RWRpdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK3Rlc3RFZGl0YWJsZS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIsICJ0cnVlIik7
Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0RWRpdGFibGUpOworCit2YXIgdGVzdFNvdXJjZVBs
YWluID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlUGxhaW4uaW5u
ZXJIVE1MID0gImZvbyBiYXIiOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFNvdXJjZVBsYWlu
KTsKKwordmFyIHRlc3RTb3VyY2VEZWNvcmF0ZWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKK3Rlc3RTb3VyY2VEZWNvcmF0ZWQuaW5uZXJIVE1MID0gImZvPGI+byBiYTwvYj5yIjsK
K3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RTb3VyY2VEZWNvcmF0ZWQpOworCit2YXIgc2VsID0g
d2luZG93LmdldFNlbGVjdGlvbigpOworCit2YXIgdGVzdHMgPSBbXTsKKworZnVuY3Rpb24gZG9u
ZSgpCit7CisgICAgdmFyIG5leHQgPSB0ZXN0cy5zaGlmdCgpOworICAgIGlmIChuZXh0KQorICAg
ICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQobmV4dCwgMCk7CisgICAgdGVzdFJvb3Quc3R5
bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeU1hcmtlcihub2RlLCBleHBlY3RlZE1hcmtlZCkKK3sK
KyAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgbm9kZSBpbnN0YW5j
ZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgbm9kZS5mb2N1cygpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihub2RlKTsKKyAgICB9CisgICAg
cmV0dXJuIGxheW91dFRlc3RDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKGV4cGVjdGVkTWFy
a2VkWzBdLCBleHBlY3RlZE1hcmtlZFsxXSk7Cit9CisKK2Z1bmN0aW9uIHBhc3RlQW5kVmVyaWZ5
KHNvdXJjZSwgZGVzdCwgZXhwZWN0ZWRNYXJrZWQpCit7CisgICAgc2VsLnNlbGVjdEFsbENoaWxk
cmVuKHNvdXJjZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKKyAgICBpZiAo
ZGVzdCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgZGVzdCBpbnN0YW5jZW9mIEhUTUxU
ZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgZGVzdC52YWx1ZSA9ICIiOworICAgICAgICBkZXN0
LmZvY3VzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVzdC5pbm5lckhUTUwgPSAiIjsKKyAg
ICAgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRlc3QpOworICAgIH0KKyAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgiUGFzdGUiKTsKKworICAgIHZhciBucmV0cnkgPSAxMDsKKyAgICB2YXIgbnNs
ZWVwID0gMTsKKyAgICBmdW5jdGlvbiB0cmlhbCgpIHsgCisgICAgICAgIHZhciB2ZXJpZmllZCA9
IHZlcmlmeU1hcmtlcihkZXN0LCBleHBlY3RlZE1hcmtlZCk7CisgICAgICAgIGlmICh2ZXJpZmll
ZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChkZXN0LnRhZ05hbWUgKyAiIGhhcyBhIG1hcmtl
ciBvbiAnIiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOworICAgICAgICAgICAgZG9uZSgpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbnJldHJ5LS07CisgICAg
ICAgIGlmICgwID09IG5yZXRyeSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZChkZXN0LnRhZ05h
bWUgKyAiIHNob3VsZCBoYXZlIGEgbWFya2VyIG9uIGZvciAnIiArIHNvdXJjZS5pbm5lckhUTUwg
KyAiJyIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBuc2xlZXAgKj0gMjsKKyAgICAgICAgd2luZG93LnNldFRp
bWVvdXQodHJpYWwsIG5zbGVlcCk7CisgICAgfTsKKyAgICB0cmlhbCgpOworfTsKKwordGVzdHMu
cHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0SW5w
dXQsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnko
dGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdElucHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2go
ZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdFRleHRBcmVh
LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRl
c3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RUZXh0QXJlYSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNo
KGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRlc3RFZGl0YWJs
ZSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0
ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0RWRpdGFibGUsIFswLCAyXSk7IH0pOyAvLyBUbyBjaGVj
ayAiZm8iIHBhcnQgb2YgZm9vLgorZG9uZSgpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVj
ay1wYXN0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlM2E4NzMwYjUyZjI0ZWM0NDVi
YmVlYTQyMzVmNGZkNTg4YTFiYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUg
QEAKK0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXIn
CitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCitQQVNTIFRFWFRB
UkVBIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1MgVEVYVEFSRUEgaGFzIGEgbWFya2Vy
IG9uICdmbzxiPm8gYmE8L2I+cicKK1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicK
K1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmJhYmEwYzM0NTczNDUzMzMwODVjOGRlMGQxYjhkZWMxMWMyMDk4ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1s
CkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggMmM5MGE1ZjVk
ZThiMDBhYzZkZmRmMmJmZjE4MzUwYWYwMTkwY2I1ZC4uNTAzY2I1MzAxOTg1ZDU3ZDYzN2I1NGZi
MzI2NGFkNjViODQ3YzEzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjY5MSw2ICsyNjkxLDkgQEAgQlVHV0s0MTMx
MSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDcuaHRtbCA9IElN
QUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3Vi
bGUwOC5odG1sID0gSU1BR0UKIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2Jv
cmRlclJhZGl1c0RvdWJsZTA5Lmh0bWwgPSBJTUFHRQogCisvLyBOZWVkIHRvIGltcGxlbWVudCBF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkKK0JVR1dLNDE0MjMgOiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbCA9IFRJTUVPVVQKKwogLy8gRmxha3kg
dGVzdHMuCiBCVUc0NDM0NSBMSU5VWCA6IHN2Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhlZC0w
MDkueG1sID0gSU1BR0UgUEFTUwogQlVHNDQzNDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pvb20t
aGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
aW5kZXggNjFlMGM3NjQ4YTU5YmNiOWU5YWZjNGE5N2ZkZTRiNTlhNzhlMThmZS4uNWM5ZDI0M2Q0
OWQxZjRjZjczNzc2M2ZiNGZhM2I5MWIxNDQ3MDE4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKQEAgLTk4MCw2ICs5ODAsNyBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXR0cmli
dXRlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwK
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1sCitlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGUuaHRtbAogZWRpdGluZy9zdHlsZS81MDY1OTEwLmh0bWwKIGVkaXRp
bmcvc3R5bGUvYXBwbGUtc3R5bGUtZWRpdGFibGUtbWl4Lmh0bWwKIGVkaXRpbmcvc3R5bGUvYmxv
Y2stc3R5bGUtMDAxLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1s
ZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVk
CmluZGV4IDNkNzZlYjIwN2Y0ZjAzODkzZTg5YWFkZTI3NmVhYzlkYjI1MTVkNzMuLjIzZGM3NmJi
M2ZmNzg3YjkyYmZkMjY1NzAxYmRiZjFiYzY3YTk3MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvU2tpcHBlZApAQCAtODUsNiArODUsOSBAQCBmYXN0L3RleHQvaHlwaGVuYXRl
LWxvY2FsZS5odG1sCiAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzUyNzEKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tc2Vla2FibGUtc3RhbGwuaHRtbAogCisj
IEF2YWlsYWJsZSAxMC42IG9yIGxhdGVyCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFz
dGUuaHRtbAorCiAjIERpc2FibGUgdGVzdHMgd2hpY2ggc3RhcnRlZCBmYWlsaW5nIGFmdGVyIHI2
Njk2MQogIyBGYWlsdXJlcyBsb29rIGxpa2UgYW4gdW5kZXJseWluZyBwbGF0Zm9ybSBpc3N1ZQog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU1NDYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKaW5kZXggYTA5NzEzZmZlOTE5MWU0MGY4ZTcyOGQ3
ZDNiOWFjMDRmZDc0NTI2MC4uZjcwYWNjYTJkNWQwYmRhYzE1MTA2ZTNlNGJmMmQxNWE5M2I3MWQ5
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKQEAgLTIwNCw2ICsyMDQs
OSBAQCBmYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cuaHRtbAogIyBMb2FkaW5nIGZhaWxz
IG9uIFRpZ2VyIHdpdGggZXJyb3IgLTEwMTIgYWZ0ZXIgYXNraW5nIE5TVVJMQ29ubmVjdGlvbiB0
byBjb250aW51ZSB3aXRob3V0IGNyZWRlbnRpYWxzLgogaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRl
cm5hdGl2ZS1jb250ZW50LnBocAogCisjIEF2YWlsYWJsZSBvbmx5IDEwLjYgb3IgbGF0ZXIKK2Vk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJsZSBzcGVsbGlu
ZyB0ZXN0cyBmb3IgYXV0b2NvcnJlY3Rpb24gcGFuZWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3Nw
ZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWRlbGV0ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9z
cGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItcGFzdGUuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCmluZGV4IGIyNzZiNzM4ZWM5MDRiZWJl
Y2RmMDY2NTQwNTRlZTRjNThlYWE4NTguLjc0ZDE3N2NlZTFkNDgyNjE0NGUxNzI1YzY0YThkZTU4
NmU5YjZiNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKQEAgLTIxNiw2ICsy
MTYsNyBAQCBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2staW4tcHJlLmh0bWwKIGVkaXRp
bmcvc2VsZWN0aW9uL3VzZXItZHJhZy1lbGVtZW50LWFuZC11c2VyLXNlbGVjdC1ub25lLmh0bWwK
IGVkaXRpbmcvc2VsZWN0aW9uL3dvcmQtZ3JhbnVsYXJpdHkuaHRtbAogZWRpdGluZy9zcGVsbGlu
Zy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLWRlbGV0ZVdvcmQuaHRtbAogZWRpdGlu
Zy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5odG1sCiBlZGl0aW5n
L3VuZG8vdW5kby1zbWFydC1kZWxldGUtd29yZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApp
bmRleCBmZTE4MGJkMGIxMDU2YzNhMjI2YTQyYTc5MzQxODA5NzgyZTI5MmY5Li4wYzc2Y2Y1Yzk1
NzVkZDIyYjQzN2I1Njk1ZWNhNDc3YTYwZWRjZDdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
QEAgLTIyNDQsNiArMjI0NCw5IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEu
aHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU0MzUKIGVk
aXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbAogCisj
IEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50
ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwogIyBmYWlsaW5nIGVkaXRpbmcvc3R5bGUgdGVzdHMKICMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBkOTJmZTY2YTE4OTgy
NDIyNGYwMDRkN2Y0MDRhZDg5MTBmZWFhNTM3Li4yYjZiZWM3NzY0YjgzMGYyYmQwZjQ3ZmZhMGZl
YzUyZjNhNzc1OGI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTAwLDYgKzkwMCw5
IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRt
bAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiAKKyMgRWRpdG9yQ2xpZW50OjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZygpIGlzIG5vdCBpbXBsZW1lbnRlZAorZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKwogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVk
Lgogc3RvcmFnZS9pbmRleGVkZGIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMzcwZWMxYmM1ZGM3NDM0ZmY2NDFhMjJlNWU5MmQwYTU5
YmJiNTg0Li4wNmIwOWNlZjE4ZmI3ODEyY2MzZWE2YzQ3OTQ2ZjBjMTljYTFkY2RhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDYzIEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hl
Y2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgLSBJbnRyb2R1Y2VkIFNwZWxs
Q2hlY2tlciBjbGFzcyB0byBlbmNhcHN1bGF0ZSBhc3luY2hyb25vdXMgc3BlbGwKKyAgICAgICAg
ICBjaGVja2VyIHN0YXRlOiBzZXF1ZW5jZSBpZCwgcmVxdWVzdGluZyB0ZXh0IGFuZCB0YXJnZXQg
bm9kZS4KKyAgICAgICAgICBUaGlzIGlzIGZpcnN0IHN0ZXAgdG8gZGVjb21wb3NlIHNwZWxsLWNo
ZWNrIHJlbGF0ZWQgY29kZSB0bworICAgICAgICAgIGEgc2VwYXJhdGUgY2xhc3MuCisgICAgICAg
IC0gQWRkZWQgRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkgYW5kCisgICAgICAgICAgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygp
IHRvIG9wdGlvbmFsbHkgdXNlIGFzeW5jCisgICAgICAgICAgc3BlbGxjaGVjayBBUEkgb24gdGhl
IHBsYXRmb3JtLiAgdGhlc2UgQVBJcyBhcmUgdG91Y2hlZCBieQorICAgICAgICAgIFNwZWxsQ2hl
Y2tlci4KKyAgICAgICAgLSBVc2VkIFNwZWxsQ2hlY2tlciB0byBjaGVjayBwYXN0ZWQgdGVzdC4g
VGV4dCB0byBjaGVjayBpcworICAgICAgICAgIGNvbGxlY3RlZCBmcm9tIHRoZSBzdWJ0cmVlIHVu
ZGVyIHRoZSBlZGl0aW5nUm9vdC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsY2hlY2stcGFzdGUuaHRtbAorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyQ29udHJvbGxlcjo6c2hvd01hcmtlcnMpOiBpbXBsZW1lbnRhdGlvbiBvZiBzaG93RG9j
dW1lbnRNYXJrZXJzKCkKKyAgICAgICAgKHNob3dEb2N1bWVudE1hcmtlcnMpOiBBZGRlZCBhbiBk
ZWJ1ZyB1dGlsaXR5IHNpbWlsYXIgdG8gc2hvd1JlbmRlclRyZWUoKQorICAgICAgICAqIGRvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpzZXRPZmZzZXRJbkxl
YWZOb2RlKTogQSBzZXR0ZXIgZm9yIFBvc2l0aW9uSXRlcmF0b3I6Om1fb2Zmc2V0SW5BbmNob3Iu
CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0Vk
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQpOiBBZGRlZCBhIGNoZWNraW5nIHJlcXVlc3QuCisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OkVkaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpmaW5kRmlyc3RNYXJrYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJG
b3IpOiBFeHRlbmRlZCB0byBzdXBwb3J0IG1vcmUgYnJvYWRlciBjYXNlLgorICAgICAgICAqIGVk
aXRpbmcvRWRpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNwZWxsQ2hlY2tlcik6
CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNwZWxsQ2hlY2tlcjo6U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlcjo6flNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNr
ZXI6OmluaXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJS
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNB
dmFpbGFibGVGb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0J1c3kpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc1ZhbGlkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlcjo6aXNDaGVja2VhYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmZvcndhcmRJ
dGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAg
ICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50
Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkVtcHR5RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgICog
cGFnZS9FZGl0b3JDbGllbnQuaDoKKwogMjAxMC0xMC0yMSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1
cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KaW5kZXggYmUxMWI3OWI3ZTZkNjU1ZTI4YTdiNjRmYjY2ODEzZWQ1MzgzMWRjYS4uOWE2YzYw
NTM5YjMzMzQ0OWJjZTU5OTQ0YThlMDJlYzg5NzAxZWFjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzQyLDYgKzEz
NDIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxh
Y2UuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmggXAogCVdlYkNvcmUvZWRp
dGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwIFwKKwlXZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIFwKIAlXZWJDb3JlL2VkaXRp
bmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1l
bnRDb21tYW5kLmggXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggNjk0OGQ2NzI5Y2RhNDZjNmFhYjVhMGZlZjMyZWM3NjRiYjMyN2IxZi4uYTcz
NDg5YzM0MzA4MWRlM2E0Zjk5M2UwZDRmMTkwNzkyYjMzNTUyZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00ODgsNiAr
NDg4LDcgQEAgX19aTjdXZWJDb3JlMjNSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9j
dW1lbnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZEb2MKIF9fWk43V2ViQ29yZTIzb3ZlcnJpZGVE
ZWZhdWx0TGFuZ3VhZ2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyM2NyZWF0ZUZyYWdt
ZW50RnJvbU5vZGVzRVBOU184RG9jdW1lbnRFUktOM1dURjZWZWN0b3JJUE5TXzROb2RlRUxtMEVF
RQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRlUHJvcGVydHlM
aXN0RXYKK19fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9y
Tm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEz
cmVtb3ZlTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRQogX19aTjdXZWJD
b3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxNG1hcmtlcnNGb3JOb2RlRVBOU180Tm9kZUUK
IF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9y
TWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRQpAQCAtODgzLDYgKzg4NCw3
IEBAIF9fWk43V2ViQ29yZTlmb250Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05T
XzE1VmlzaWJsZVBvc2l0aW9uRVMyXwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dl
YkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxMlNwZWxsQ2hlY2tl
cjhkaWRDaGVja0VpUktOM1dURjZWZWN0b3JJTlNfMTlTcGVsbENoZWNraW5nUmVzdWx0RUxtMEVF
RQogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxPYmplY3RFdgogX19aTksz
V1RGNlN0cmluZzE0Y3JlYXRlQ0ZTdHJpbmdFdgogX19aTks3V2ViQ29yZTEwRmxvYXRQb2ludGN2
OF9OU1BvaW50RXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMGE3OGQ5ZTUxM2I2YmI2MmNiM2FkNjlmMGFiNmVlYWI1NzcwNjQz
Ny4uYWRmOGQyNDkxMTFjNDcyYjhhZmE1Yzk5ZmZlYzZhZDFkMTIxN2UxMiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE0MjAs
NiArMTQyMCw4IEBACiAgICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2UuaCcsCiAgICAg
ICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2VDRi5jcHAnLAogICAgICAgICAgICAgJ2VkaXRp
bmcvU21hcnRSZXBsYWNlSUNVLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwJywKKyAgICAgICAgICAgICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5oJywKICAgICAgICAg
ICAgICdlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0
aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdFRl
eHROb2RlQ29tbWFuZC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggOWMwOTE4OGUxNzg2ZGE1NzNiMGFlMDViNmQzZDZkM2Y5
NGYzZmU1Ny4uZGQ4MTkzYmMwZTMwMjdjYmQzZGZhNDU1NTMzN2I0ZmU2ZDJkYjRjYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04
MDksNiArODA5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZWRpdGluZy9TZWxlY3Rpb25Db250cm9s
bGVyLmNwcCBcCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgXAogICAg
IGVkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisgICAgZWRpdGluZy9TcGVsbENoZWNrZXIu
Y3BwIFwKICAgICBlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5n
L1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29u
dGFpbmluZ0VsZW1lbnRDb21tYW5kLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCA2ZDg2M2MyZTAyODk5YjRiYzA5MjZjZjNhMTIzZjNiNGVjYTJmYTFkLi44ZDk0
YzA3Y2NjYzA3Njc4NTkxOGMwN2FmNWIyMjJhNjI0ZTc5ZjFkIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ3NTkxLDYgKzQ3NTkxLDExNCBAQAogCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZWRpdGluZ1xTcGVsbENoZWNrZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmNwcCINCisJCQkJ
Pg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50
ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdEVsZW1l
bnRDb21tYW5kLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2lu
MzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29s
DQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZWRpdGluZ1xTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgiDQogCQkJ
CT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4N2Q4OTI4ODU0MTYxOTY1NDVmNTk2OTYyNDJiMGQyZGUwM2IzZjQ1Li43NGE1M2Ey
ZDVlZWUyMzU2YWY3Mzg4ZmRkZWY4ZjlkNzkyZWE5ODQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAyMiw2ICszMDIyLDggQEAKIAkJQTc3OTc5Mjgw
RDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0lt
YWdlRGF0YS5jcHAgKi87IH07CiAJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdl
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3
OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi87IH07CiAJCUE3ODQ5NDFC
MEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBi
b2FyZC5jcHAgKi87IH07CisJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNr
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4
RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CisJCUE3OEZF
MTNDMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBT
cGVsbENoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBNzk1NDYzRTBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDYzRDBCNUM0Qzgw
MDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi87IH07CiAJCUE3OTU0NjQzMEI1QzRDQjQwMDdC
NDM4RiAvKiBEcmFnRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovOyB9
OwogCQlBN0FBNjZENjExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ0MTFDNUVE
NkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuY3BwICovOyB9OwpAQCAtOTA4Myw2ICs5MDg1
LDggQEAKIAkJQTc3OTc5MjQwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1h
Z2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAv
KiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENs
aXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTM5MTIzNjZC
MTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU3BlbGxDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmls
ZUVuY29kaW5nID0gNDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0RhdGFNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OTU0NjQyMEI1QzRDQjQwMDdCNDM4RiAvKiBE
cmFnRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmFnRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QUE2NkQ0MTFDNUVENkEwMDFE
OEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVuZGVySW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE0NDkyLDYgKzE0NDk2LDggQEAKIAkJCQk0QjZGQTZGMzBDMzlFNDhDMDAwODcwMTEgLyog
U21hcnRSZXBsYWNlLmNwcCAqLywKIAkJCQk0QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21h
cnRSZXBsYWNlLmggKi8sCiAJCQkJNEI2RkE2RjYwQzM5RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVw
bGFjZUNGLmNwcCAqLywKKwkJCQlBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVj
a2VyLmNwcCAqLywKKwkJCQlBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2Vy
LmggKi8sCiAJCQkJOTMzMDlEQzIwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1h
bmQuY3BwICovLAogCQkJCTkzMzA5REMzMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRD
b21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQzQwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5v
ZGVDb21tYW5kLmNwcCAqLywKQEAgLTIwNjQ3LDYgKzIwNjUzLDcgQEAKIAkJCQk3NTc4RjkwRDEx
RERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc1MzVCQzk1MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBI
ZWFkZXJzICovLAogCQkJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExp
c3RlbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyog
U3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1
ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQw
OTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzMwOUUxNjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdF
bGVtZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzI2Nyw2ICsyMzI3NCw3IEBACiAJ
CQkJNjI2Q0RFMEUxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTc1NzhGOTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTM1QkM5NDEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3OEZFMTNCMTIzNjZCMTAw
MEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTEw
OTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTMzMDlFMTMwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTE1MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRl
eHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKaW5kZXggMmI3ZmQ4NWQ3ZmVjZDJmYmM4
YzhkM2UyYzk1NTZlYTdlOTk5OTI4Zi4uOGM1NmI1NGNkNWJiYzI1N2Q4ZTg1MjE3YjllOTY0MDY4
N2E3MTg5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC01
MjQsNCArNTI0LDMyIEBAIHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpzZXRNYXJrZXJz
QWN0aXZlKE5vZGUqIG5vZGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0CiAgICAgICAgIG5vZGUtPnJl
bmRlcmVyKCktPnJlcGFpbnQoKTsKIH0KIAorCisjaWZuZGVmIE5ERUJVRwordm9pZCBEb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKCkgY29uc3QKK3sKKyAgICBmcHJpbnRmKHN0
ZGVyciwgIiVkIG5vZGVzIGhhdmUgbWFya2VyczpcbiIsIG1fbWFya2Vycy5zaXplKCkpOworICAg
IE1hcmtlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9tYXJrZXJzLmVuZCgpOworICAgIGZv
ciAoTWFya2VyTWFwOjpjb25zdF9pdGVyYXRvciBub2RlSXRlcmF0b3IgPSBtX21hcmtlcnMuYmVn
aW4oKTsgbm9kZUl0ZXJhdG9yICE9IGVuZDsgKytub2RlSXRlcmF0b3IpIHsKKyAgICAgICAgTm9k
ZSogbm9kZSA9IG5vZGVJdGVyYXRvci0+Zmlyc3QuZ2V0KCk7CisgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiJXAiLCBub2RlKTsKKyAgICAgICAgTWFya2VyTWFwVmVjdG9yUGFpciogdmVjdG9yUGFp
ciA9IG5vZGVJdGVyYXRvci0+c2Vjb25kOworICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+
JiBtYXJrZXJzID0gdmVjdG9yUGFpci0+Zmlyc3Q7CisgICAgICAgIHVuc2lnbmVkIG1hcmtlckNv
dW50ID0gbWFya2Vycy5zaXplKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgbWFya2VySW5kZXgg
PSAwOyBtYXJrZXJJbmRleCA8IG1hcmtlckNvdW50OyArK21hcmtlckluZGV4KQorICAgICAgICAg
ICAgZnByaW50ZihzdGRlcnIsICIgJWQ6WyVkOiVkXSglZCkiLCBtYXJrZXJzW21hcmtlckluZGV4
XS50eXBlLCBtYXJrZXJzW21hcmtlckluZGV4XS5zdGFydE9mZnNldCwgbWFya2Vyc1ttYXJrZXJJ
bmRleF0uZW5kT2Zmc2V0LCBtYXJrZXJzW21hcmtlckluZGV4XS5hY3RpdmVNYXRjaCk7CisgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICB9Cit9CisjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisKKyNpZm5kZWYgTkRFQlVHCit2b2lkIHNob3dEb2N1bWVudE1hcmtl
cnMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKiBjb250cm9sbGVyKQor
eworICAgIGlmIChjb250cm9sbGVyKQorICAgICAgICBjb250cm9sbGVyLT5zaG93TWFya2Vycygp
OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDg5
MjFiYWFjNTlkYWVhOWQ3MzNkMWY4MzdmMDM2Y2Y2NmMyOWY3NWMuLjM0MTBlN2ZmMzNkZTRhMmE5
YmQzYjljZWRiNTM5OGY3MzFjZjA5MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJv
bGxlci5oCkBAIC02MSw2ICs2MSwxMCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPERvY3VtZW50TWFy
a2VyPiBtYXJrZXJzRm9yTm9kZShOb2RlKik7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlbmRlcmVk
UmVjdHNGb3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJr
ZXI6OkFsbE1hcmtlcnMpOwogCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd01hcmtlcnMo
KSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFZlY3Rv
cjxEb2N1bWVudE1hcmtlcj4sIFZlY3RvcjxJbnRSZWN0PiA+IE1hcmtlck1hcFZlY3RvclBhaXI7
CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxOb2RlPiwgTWFya2VyTWFwVmVjdG9yUGFpcio+
IE1hcmtlck1hcDsKQEAgLTY5LDQgKzczLDggQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCisjaWZuZGVmIE5ERUJVRwordm9pZCBzaG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0
IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlciopOworI2VuZGlmCisKICNlbmRpZiAv
LyBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9z
aXRpb25JdGVyYXRvci5jcHAgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRl
eCBkMmMzYTNmMGNmNGUwZjAzYjQwZGI1NDZkOTlhZjExMDJjZDUxNDc2Li40MmNjNTEzNzEyNjc2
OTk2ZTRiYjY4ZDE5NWI0YzRhYjJmZWZhYmVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbkl0ZXJhdG9yLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApA
QCAtOTgsNiArOTgsMTMgQEAgdm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjpkZWNyZW1lbnQoKQogICAg
IH0KIH0KIAordm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjpzZXRPZmZzZXRJbkxlYWZOb2RlKGludCBv
ZmZzZXQpCit7CisgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSk7Cisg
ICAgQVNTRVJUKDAgPD0gb2Zmc2V0ICYmIG9mZnNldCA8PSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyht
X2FuY2hvck5vZGUpKTsKKyAgICBtX29mZnNldEluQW5jaG9yID0gb2Zmc2V0OworfQorCiBib29s
IFBvc2l0aW9uSXRlcmF0b3I6OmF0U3RhcnQoKSBjb25zdAogewogICAgIGlmICghbV9hbmNob3JO
b2RlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oIGIvV2ViQ29y
ZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCmluZGV4IDdhZjg5Nzc1OTFkMTZjMjk3OTMxODkwZWJk
MWFlMDY5YzJkNDdmMzYuLjA4MzI5YmIxNWNkM2U1MjEwMDQ2MjkzNTg4YWI3YWFiZDMwZmU0ZjYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAorKysgYi9XZWJDb3Jl
L2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAg
Tm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5jaG9yTm9kZTsgfQogICAgIGludCBvZmZz
ZXRJbkxlYWZOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXRJbkFuY2hvcjsgfQorICAgIHZv
aWQgc2V0T2Zmc2V0SW5MZWFmTm9kZShpbnQgb2Zmc2V0KTsKIAogICAgIGJvb2wgYXRTdGFydCgp
IGNvbnN0OwogICAgIGJvb2wgYXRFbmQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggN2IzZDA1
NTJhMmJmYjY3MmMwN2I3OGQ1NGQ3MGYwMmYwZmUwZDc3ZS4uYWQzY2RkOTc5NTQzY2RhZWI0MzYz
MWI4Zjc4YmJiMDg5ZDg3M2RmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY1LDkgKzY1LDExIEBACiAj
aW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgi
CiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgi
CiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNvdW5kLmgiCisjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5j
bHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgpAQCAtMzgyLDYgKzM4NCwxMCBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlv
bldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAg
IAogICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKG1fZnJh
bWUtPmRvY3VtZW50KCksIGZyYWdtZW50LCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNl
LCBtYXRjaFN0eWxlKSk7CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9u
KCk7CisKKyAgICBOb2RlKiBub2RlVG9DaGVjayA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5yb290
RWRpdGFibGVFbGVtZW50KCk7CisgICAgaWYgKG1fc3BlbGxDaGVja2VyLT5jYW5DaGVja0FzeW5j
aHJvbm91c2x5KG5vZGVUb0NoZWNrKSkKKyAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RD
aGVja2luZ0Zvcihub2RlVG9DaGVjayk7CiB9CiAKIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0
aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBi
b29sIHNtYXJ0UmVwbGFjZSkKQEAgLTEwNTYsNiArMTA2Miw3IEBAIEVkaXRvcjo6RWRpdG9yKEZy
YW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVk
aXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUgYnV0IG5vdCBGRikuCiAg
ICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKICAgICAsIG1fa2lsbFJpbmcoYWRvcHRQ
dHIobmV3IEtpbGxSaW5nKSkKKyAgICAsIG1fc3BlbGxDaGVja2VyKG5ldyBTcGVsbENoZWNrZXIo
ZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVkaXRvckNsaWVudCgpIDogMCkpCiAgICAg
LCBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyKHRoaXMsICZFZGl0b3I6OmNvcnJlY3Rpb25QYW5lbFRp
bWVyRmlyZWQpCiAgICAgLCBtX2FyZU1hcmtlZFRleHRNYXRjaGVzSGlnaGxpZ2h0ZWQoZmFsc2Up
CiB7CkBAIC0zNjI4LDEyICszNjM1LDI5IEBAIHZvaWQgRWRpdG9yOjpyZXNwb25kVG9DaGFuZ2Vk
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNlbGVjdGlvbiwgYm9vCiAgICAg
cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihvbGRTZWxlY3Rpb24pOwogfQogCitzdGF0aWMgTm9k
ZSogZmluZEZpcnN0TWFya2FibGUoTm9kZSogbm9kZSkKK3sKKyAgICB3aGlsZSAobm9kZSkgewor
ICAgICAgICBpZiAoIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dCgpKQorICAgICAgICAgICAgcmV0dXJu
IG5vZGU7CisgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5pc1RleHRDb250cm9sKCkpCisg
ICAgICAgICAgICBub2RlID0gdG9SZW5kZXJUZXh0Q29udHJvbChub2RlLT5yZW5kZXJlcigpKS0+
dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoMSkuZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCk7CisgICAg
ICAgIGVsc2UgaWYgKG5vZGUtPmZpcnN0Q2hpbGQoKSkKKyAgICAgICAgICAgIG5vZGUgPSBub2Rl
LT5maXJzdENoaWxkKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5u
ZXh0U2libGluZygpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBib29sIEVkaXRvcjo6
c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcihpbnQgZnJvbSwgaW50IGxlbmd0aCkg
Y29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gbV9mcmFtZS0+c2VsZWN0aW9uKCktPnN0YXJ0KCku
bm9kZSgpOwotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVuZGVyZXIoKSkKKyAgICBOb2RlKiBu
b2RlID0gZmluZEZpcnN0TWFya2FibGUobV9mcmFtZS0+c2VsZWN0aW9uKCktPnN0YXJ0KCkubm9k
ZSgpKTsKKyAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBBU1NFUlQo
bm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpOwogCiAgICAgdW5zaWduZWQgaW50IHN0YXJ0T2Zm
c2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihmcm9tKTsKICAgICB1bnNpZ25lZCBpbnQg
ZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihmcm9tICsgbGVuZ3RoKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuaAppbmRleCBkZjJlOTQ3MzFhY2QyNTkyNzNiNmQ0ZjFlODMzZmFmYzYxN2RkYjAxLi5mZWVl
OGM0YmUzZWNkYTkxNDYzNmVlYjk1OTZhZTdlODVmNzA4NTEwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC01Myw2
ICs1Myw3IEBAIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBLaWxsUmluZzsKIGNsYXNzIFBh
c3RlYm9hcmQ7CiBjbGFzcyBTaW1wbGVGb250RGF0YTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNs
YXNzIFRleHQ7CiBjbGFzcyBUZXh0RXZlbnQ7CiAKQEAgLTI5OCw2ICsyOTksNyBAQCBwdWJsaWM6
CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JDb21tYW5kKEV2ZW50Kik7CiAKICAg
ICBLaWxsUmluZyoga2lsbFJpbmcoKSBjb25zdCB7IHJldHVybiBtX2tpbGxSaW5nLmdldCgpOyB9
CisgICAgU3BlbGxDaGVja2VyKiBzcGVsbENoZWNrZXIoKSBjb25zdCB7IHJldHVybiBtX3NwZWxs
Q2hlY2tlci5nZXQoKTsgfQogCiAgICAgRWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9yKCkgY29uc3Q7
CiAKQEAgLTM3Niw2ICszNzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRTdGFydE5l
d0tpbGxSaW5nU2VxdWVuY2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0eWxlV2l0aENTUzsKICAgICBP
d25QdHI8S2lsbFJpbmc+IG1fa2lsbFJpbmc7CisgICAgT3duUHRyPFNwZWxsQ2hlY2tlcj4gbV9z
cGVsbENoZWNrZXI7CiAgICAgUmVmUHRyPFJhbmdlPiBtX3JhbmdlVG9CZVJlcGxhY2VkQnlDb3Jy
ZWN0aW9uOwogICAgIFN0cmluZyBtX3N0cmluZ1RvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsKICAg
ICBTdHJpbmcgbV9jb3JyZWN0aW9uUmVwbGFjZW1lbnRTdHJpbmc7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMyZWJiNmZlMGFlZGI3OWVjZTJhMDIwMzVmYjg4NTU5OGVkOGZm
ODAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApA
QCAtMCwwICsxLDE3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiU3BlbGxDaGVja2VyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50
LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlBvc2l0aW9uSXRlcmF0b3IuaCIKKyNp
bmNsdWRlICJSYW5nZS5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlRl
eHRJdGVyYXRvci5oIgorI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRWRpdG9yQ2xpZW50KiBjbGllbnQp
CisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3JlcXVlc3RTZXF1ZW5jZSgwKQorewor
fQorCitTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIoKQoreworfQorCitib29sIFNwZWxsQ2hl
Y2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoY2FuQ2hlY2tBc3lu
Y2hyb25vdXNseShub2RlKSk7CisKKyAgICBTdHJpbmcgdGV4dCA9IG5vZGUtPnRleHRDb250ZW50
KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBtX3JlcXVlc3ROb2RlID0gbm9kZTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gdGV4dDsKKyAgICBt
X3JlcXVlc3RTZXF1ZW5jZSsrOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU3BlbGxD
aGVja2VyOjpjbGVhclJlcXVlc3QoKQoreworICAgIG1fcmVxdWVzdE5vZGUuY2xlYXIoKTsKKyAg
ICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0Fz
eW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudCAmJiBtX2Ns
aWVudC0+aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworfQorCitib29sIFNw
ZWxsQ2hlY2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseShOb2RlKiBub2RlKSBjb25zdAorewor
ICAgIHJldHVybiBpc0NoZWNrYWJsZShub2RlKSAmJiBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSAm
JiAhaXNCdXN5KCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0J1c3koKSBjb25zdAorewor
ICAgIHJldHVybiBtX3JlcXVlc3ROb2RlLmdldCgpOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6
aXNWYWxpZChpbnQgc2VxdWVuY2UpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdE5vZGUu
Z2V0KCkgJiYgbV9yZXF1ZXN0VGV4dC5sZW5ndGgoKSAmJiBtX3JlcXVlc3RTZXF1ZW5jZSA9PSBz
ZXF1ZW5jZTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQ2hlY2thYmxlKE5vZGUqIG5vZGUp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKTsKK30KKwordm9p
ZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQoreworICAgIEFT
U0VSVChjYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGUpKTsKKworICAgIGlmICghaW5pdFJlcXVl
c3Qobm9kZSkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcodGhpcywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1fcmVxdWVzdFRleHQpOworfQorCitz
dGF0aWMgYm9vbCBmb3J3YXJkSXRlcmF0b3IoUG9zaXRpb25JdGVyYXRvciYgaXRlcmF0b3IsIGlu
dCBkaXN0YW5jZSkKK3sKKyAgICBpbnQgcmVtYWluaW5nID0gZGlzdGFuY2U7CisgICAgd2hpbGUg
KCFpdGVyYXRvci5hdEVuZCgpKSB7CisgICAgICAgIGlmIChpdGVyYXRvci5ub2RlKCktPmlzQ2hh
cmFjdGVyRGF0YU5vZGUoKSkgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IGxhc3RPZmZzZXRG
b3JFZGl0aW5nKGl0ZXJhdG9yLm5vZGUoKSk7CisgICAgICAgICAgICBpbnQgbGFzdCA9IGxlbmd0
aCAtIGl0ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKTsKKyAgICAgICAgICAgIGlmIChyZW1haW5p
bmcgPCBsYXN0KSB7CisgICAgICAgICAgICAgICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5MZWFmTm9k
ZShpdGVyYXRvci5vZmZzZXRJbkxlYWZOb2RlKCkgKyByZW1haW5pbmcpOworICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZW1haW5pbmcg
LT0gbGFzdDsKKyAgICAgICAgICAgIGl0ZXJhdG9yLnNldE9mZnNldEluTGVhZk5vZGUoaXRlcmF0
b3Iub2Zmc2V0SW5MZWFmTm9kZSgpICsgbGFzdCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVy
YXRvci5pbmNyZW1lbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7ICAgIAorfQorCit2
b2lkIFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3Bl
bGxDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFpc1ZhbGlkKHNlcXVlbmNl
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3ROb2RlLT5yZW5kZXJlcigp
KSB7CisgICAgICAgIGNsZWFyUmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaW50IHN0YXJ0T2Zmc2V0ID0gMDsKKyAgICBQb3NpdGlvbkl0ZXJhdG9yIHN0YXJ0ID0gUG9z
aXRpb24obV9yZXF1ZXN0Tm9kZSwgMCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1
bHRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChyZXN1bHRzW2ldLnR5cGUoKSAhPSBEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50eXBlKCkgIT0gRG9jdW1lbnRNYXJr
ZXI6OkdyYW1tYXIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBUbyBhdm9p
ZCBtb3ZpbmcgdGhlIHBvc2l0aW9uIGJhY2t3YXJkLCB3ZSBhc3N1bWUgdGhlIGdpdmVuIHJlc3Vs
dHMgYXJlIHNvcnRlZCB3aXRoCisgICAgICAgIC8vIHN0YXJ0T2Zmc2V0IGFzIHRoZSBvbmVzIHJl
dHVybmVkIGJ5IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAg
ICAgICBBU1NFUlQoc3RhcnRPZmZzZXQgPD0gcmVzdWx0c1tpXS5sb2NhdGlvbigpKTsKKyAgICAg
ICAgaWYgKCFmb3J3YXJkSXRlcmF0b3Ioc3RhcnQsIHJlc3VsdHNbaV0ubG9jYXRpb24oKSAtIHN0
YXJ0T2Zmc2V0KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBQb3NpdGlvbkl0ZXJhdG9y
IGVuZCA9IHN0YXJ0OworICAgICAgICBpZiAoIWZvcndhcmRJdGVyYXRvcihlbmQsIHJlc3VsdHNb
aV0ubGVuZ3RoKCkpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gVXNlcnMgb3Ig
SmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMgbWF5IGNoYW5nZSB0ZXh0IHdoaWxlIGEgc3BlbGwtY2hl
Y2tlciBjaGVja3MgaXRzCisgICAgICAgIC8vIHNwZWxsaW5ncyBpbiB0aGUgYmFja2dyb3VuZC4g
VG8gYXZvaWQgYWRkaW5nIG1hcmtlcnMgdG8gdGhlIHdvcmRzIG1vZGlmaWVkIGJ5IHVzZXJzIG9y
CisgICAgICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2ZSB0aGUgd29yZHMg
aW4gdGhlIHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUgdGhlbSB3aXRoCisgICAgICAgIC8v
IHRoZSBvcmlnaW5hbCBvbmVzLgorICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6
OmNyZWF0ZShtX3JlcXVlc3ROb2RlLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKTsKKyAgICAgICAg
Ly8gRklYTUU6IFVzZSB0ZXh0Q29udGVudCgpIGNvbXBhdGlibGUgc3RyaW5nIGNvbnZlcnNpb24u
CisgICAgICAgIFN0cmluZyBkZXN0aW5hdGlvbiA9IHJhbmdlLT50ZXh0KCk7CisgICAgICAgIFN0
cmluZyBzb3VyY2UgPSBtX3JlcXVlc3RUZXh0LnN1YnN0cmluZyhyZXN1bHRzW2ldLmxvY2F0aW9u
KCksIHJlc3VsdHNbaV0ubGVuZ3RoKCkpOworICAgICAgICBpZiAoZGVzdGluYXRpb24gPT0gc291
cmNlKQorICAgICAgICAgICAgbV9yZXF1ZXN0Tm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5h
ZGRNYXJrZXIocmFuZ2UuZ2V0KCksIHJlc3VsdHNbaV0udHlwZSgpKTsKKworICAgICAgICBzdGFy
dE9mZnNldCA9IHJlc3VsdHNbaV0ubG9jYXRpb24oKTsKKyAgICB9CisKKyAgICBjbGVhclJlcXVl
c3QoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmggYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGJlNGZkNjUyZWRkNTQ1YjNjNTI2Y2RhODUyYjBlODE4N2VhYTA0NAotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtMCwwICsx
LDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgU3BlbGxDaGVja2VyX2gKKyNkZWZpbmUgU3BlbGxD
aGVja2VyX2gKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWRpdG9yQ2xpZW50OworCitj
bGFzcyBTcGVsbENoZWNraW5nUmVzdWx0IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVsbENo
ZWNraW5nUmVzdWx0KERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIHR5cGUgPSBEb2N1bWVudE1h
cmtlcjo6U3BlbGxpbmcsIGludCBsb2NhdGlvbiA9IDAsIGludCBsZW5ndGggPSAwKQorICAgICAg
ICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAg
ICwgbV9sZW5ndGgobGVuZ3RoKQorICAgIHsKKyAgICB9CisKKyAgICBEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9IAorICAgIGludCBsb2Nh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9jYXRpb247IH0KKyAgICBpbnQgbGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKworcHJpdmF0ZToKKyAgICBEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZSBtX3R5cGU7CisgICAgaW50IG1fbG9jYXRpb247CisgICAgaW50IG1fbGVuZ3Ro
OworfTsKKworY2xhc3MgU3BlbGxDaGVja2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBTcGVsbENoZWNrZXIoRWRpdG9yQ2xpZW50Kik7CisgICAgflNwZWxs
Q2hlY2tlcigpOworCisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsKKyAg
ICBib29sIGNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSopIGNvbnN0OworICAgIGJvb2wgaXNC
dXN5KCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3Q7CisgICAg
Ym9vbCBpc0NoZWNrYWJsZShOb2RlKikgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdG
b3IoTm9kZSopOworICAgIHZvaWQgZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8
U3BlbGxDaGVja2luZ1Jlc3VsdD4mKTsKKworcHJpdmF0ZToKKyAgICBib29sIGluaXRSZXF1ZXN0
KE5vZGUqKTsKKyAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworCisgICAgRWRpdG9yQ2xpZW50KiBt
X2NsaWVudDsKKworICAgIFJlZlB0cjxOb2RlPiBtX3JlcXVlc3ROb2RlOworICAgIFN0cmluZyBt
X3JlcXVlc3RUZXh0OworICAgIGludCBtX3JlcXVlc3RTZXF1ZW5jZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwZWxsQ2hlY2tlcl9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IGZkMjAyNTgzNzBiYjlhM2FjNWM4YWIyNTY0YmY3ZjQ4ODIxMDc4ZjguLjNjM2Ri
OTljMDgyMzgxNjk2OGRhMDA1ZDUyMGI3ODIzMThmMmI4YzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CkBAIC00ODAsOCArNDgwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0KKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3Qg
U3RyaW5nJikgeyB9CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgKaW5kZXggOTdiMDkwMjVjYzQ1MzdlMmEzZWJkOWM3NWEyMTAyMDM5NGVmZTA5ZS4uZDgyNDBi
YWYwOTI3NzgyZjhlZWE4N2Q3OWVmYjEyNzFmNzEyOTdmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAt
NjUsNiArNjUsNyBAQCBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBj
bGFzcyBOb2RlOwogY2xhc3MgUmFuZ2U7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBWaXNp
YmxlU2VsZWN0aW9uOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCkBAIC0yMDEsNiArMjAyLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2V0SW5wdXRNZXRob2RTdGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRo
b2RTdGF0ZShib29sIGVuYWJsZWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSA9IDA7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAwMGZhMzZkNDk2OTJhNDRjNDM4ZTZkZWE1MDY3ZDI3NjQw
MjVhNTc2Li4xMDJiMTNiOTY1MjVlYTJmY2IyNDhkNzFlMWE0NmE0NDg5ZGNkN2U5IDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFk
ZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKworICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJ
bXBsLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmlzQXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBs
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjEgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1p
a2hhdHNreS4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggYjA1YTU5
MjZiZjcxMTI4NjFjMjUzYTQ2YzIzNGE2ZDViN2UzMzVkNy4uM2Y3MDUzYjY5ZjNlMjY3MGFlYTg0
NGZmOGUxZTRhNzU5YjBhZDhhNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0
b3JDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmgKQEAgLTExMCw2ICsxMTAsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhlIGZvcm0gYXV0b2Zp
bGwgcG9wdXAgZm9yIHxub2RlfCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50IGFuZAogICAg
IC8vIGl0IGlzIGVtcHR5LiAgVGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3MgdGhlIHVwIG9y
IGRvd24gYXJyb3cgaW4gYQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCAxNzk1NjQ1OWNlMzNkOTRmNzk0YmU1YjBmMjVkOTA0NDg2
NjYxNDk2Li5kYmFmYzg2NzI0MTYxNTFmNDUwYjcyZTMwOTcxMDhjZDYzNTVkZGE1IDEwMDY0NAot
LS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNw
ZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgc3R1YiBp
bXBsZW1lbW50YXRpb25zLgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JD
bGllbnRFZmw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0xOSAgUnl1YW4g
Q2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApp
bmRleCA5ZjYwY2ZiYWRiNDJmMDdmMTM2YmU3ZDRlNzljNDIwOTQ0MzhkMWIyLi40NDVmNmQyNTMw
MDEwYjlhYmEzMDM2NWY2NWU4YTFlODU3Mzk1YTAzIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFdURjo6VmVjdG9y
PFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxl
ZCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30K
IAogcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBjZGUwNGM5MDlhNDc4
MWMyNmE3NjBkYWZkOWY3Y2Y5MDUyZTA3ZWNmLi45MzQ5NmQ1YTI5ZDMzZjJiMGYxZjdhNWQ2MjU3
NmM3MDc4OGIzNTMyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTIwICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuaAppbmRleCBmOWZmODJlMDBjNGEzMGY2NjJjMWRhMzNmYjNhNWE5MDExOWQzMDU5Li5mNjg4
OGQ1YjUxOTk2ZTQ2NzkwODYwMzQ2MzM3MTg3NTU4NjcyOGM3IDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTEzMiw2ICsxMzIsOCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgcHJp
dmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2hhaWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggZDU1Y2U3
MWUzNjE2ZGNhMzM1MjEzMzkwMjBjNWM1Y2ZmNDA5ZmU4My4uZDg0Y2QxZmE1NmYxYzczNDc2YzY5
YmRiYTMzM2UwM2NhZDIyZDczYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBw
YXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50SGFpa3U6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKwogMjAxMC0wOS0yOCAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaCBiL1dlYktpdC9o
YWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCmluZGV4IDVjYmVjMjcyMjEz
Y2M2Y2U5ZTdjYTExZDBlMDVlNjUyYzZlNzdjZDEuLjQxMzhmYmUwMTIyMzVjY2MxNTA1NjIwNjNh
ZjhhY2FjNWYwZDQzNDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRIYWlrdS5oCisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRIYWlrdS5oCkBAIC0xMTAsNiArMTEwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBlbmFibGVkKTsKKyAgICAgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcm
KSB7fQogCiAgICAgICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOGYxZWE0MjU5
YzNmOWNhMDU2YTU0NDkyNGE2OTA2YWQyMWFiMTQ3OC4uYTQ5NTcwZmZiMTEwOGJiZmQwNGM1YzUx
YjAwMDY3OTI2NWMzODQwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0xMC0xMiAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5
MgorCisgICAgICAgIEFkZGVkIGFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZyBBUEkgdG8gV2Vi
RWRpdG9yQ2xpZW50IHVzaW5nCisgICAgICAgIC1bTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmddLgorICAgICAgICBOb3RlIHRoYXQgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3Bv
bmRlciBpcyBhIHNtYWxsIGNsYXNzIHRvIHJlY2VpdmUKKyAgICAgICAgcmVxdWVzdGVkIHNwZWxs
LWNoZWNraW5nIHJlc3VsdC4KKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKToKKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBpbml0
V2l0aFNlbmRlcjpXZWJDb3JlOjpzZXF1ZW5jZTpyZXN1bHRzOl0pOgorICAgICAgICAoLVtXZWJF
ZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIHBlcmZvcm1dKToKKyAgICAgICAgKC1bV2ViRWRpdG9y
U3BlbGxDaGVja1Jlc3BvbmRlciBXVEY6OldlYkNvcmU6Ol0pOgorICAgICAgICAoV2ViRWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgICogV2ViVmlldy9XZWJG
cmFtZVByaXZhdGUuaDoKKwogMjAxMC0xMC0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpAQCAtMTE0
NCw2ICsxMTY1LDMyIEBACiAKIDIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBJbXBsZW1l
bnRlZCBhc3luYyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVkaXRvckNsaWVudC4KKyAgICAgICAg
VGhlIGltcGxlbWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nXQorICAgICAgICB3aGljaCBpcyBhdmFpbGFibGUgb25seSBvbiBNYWMgT1Mg
MTAuNiBvciBsYXRlci4KKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCBbTlNTcGVsbENoZWNr
ZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGludm9rZQorICAgICAgICB0aGUgY2Fs
bGJhY2sgYmxvY2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRocmVhZCwgc28gd2UgbmVlZCB0bwor
ICAgICAgICByZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFpbiB0aHJlYWQgd2hlcmUgV2ViQ29y
ZSBpcyBydW5uaW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJwb3NlLCB3ZSBtYWRlIFdlYkVkaXRv
clNwZWxsQ2hlY2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAgIAorICAgICAgICBUZXN0OiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKyAgICAgICAgCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50
Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQuCisgICAgICAgICgt
W1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdpdGhTZW5kZXI6V2ViQ29yZTo6c2Vx
dWVuY2U6cmVzdWx0czpdKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tS
ZXNwb25kZXIgcGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
UHJpdmF0ZS5oOgorCisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUu
Y29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgc3BlbGxp
bmcgdW5kZXJsaW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGFkMzI0YjlmYTM5ZDY1MDA0ZGNkMTc1ZTdm
MTJmOTZmNzE4NTNkYmMuLmM0MTJlZjljOWQ0NDEzM2JlZDY3MGU1YmZjYmIwMjY4ZDhlM2YwZGIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
KysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMy
LDYgKzEzMiw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCBib29s
IGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25z
dCBXVEY6OlN0cmluZyYpOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xF
T1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3Ry
aW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5n
LCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25Q
YW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDJiZjMyNTlmNGEyMmFiNjg2MWQ2OWQxMzYzYjcz
YzEzZTgxODI4ZjYuLjgyOWExOGNlZTZhNDUxMDZmNDhlYTQ3MWMxNGQwN2NjMjNlMGYwZmYgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisr
KyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02Myw2
ICs2Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtU3RyaW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5n
Lmg+CkBAIC05MzIsMyArOTMzLDg1IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5w
dXRNZXRob2RTdGF0ZSgpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0
ZShib29sKQogewogfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpCit7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAgLy8gRW5hYmxlIGFzeW5jaHJvbm91
cyBzcGVsbGNoZWNraW5nIChhbmQgZ3JhbW1hciBjaGVja2luZykgb25seSB3aGVuIHdlIGNvbXBp
bGUgdGhpcyBmaWxlIG9uCisgICAgLy8gTWFjIE9TIFggMTAuNiBhbmQgd2UgY2FuIHVzZSBHcmFu
ZCBDZW50cmFsIERpc3BhdGNoIGJlY2F1c2UgdGhleSBhcmUgcmVxdWlyZWQgYnkKKyAgICAvLyBb
TlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6XS4KKyAgICByZXR1cm4gdHJ1
ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKKyNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKK0BpbnRl
cmZhY2UgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0Cit7CisgICAgV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiBfc2VuZGVyOworICAgIGludCBfc2VxdWVuY2U7CisgICAgUmV0
YWluUHRyPE5TQXJyYXk+IF9yZXN1bHRzOworfQorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciopc2VuZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czoo
TlNBcnJheSopcmVzdWx0czsKKy0gKHZvaWQpcGVyZm9ybTsKKy0gKFdURjo6VmVjdG9yPFdlYkNv
cmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHM7CitAZW5kCisKK0BpbXBsZW1l
bnRhdGlvbiBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyCistIChpZClpbml0V2l0aFNlbmRl
cjooV2ViQ29yZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSBy
ZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAg
ICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX3NlbmRlciA9IHNlbmRlcjsK
KyAgICBfc2VxdWVuY2UgPSBzZXF1ZW5jZTsKKyAgICBfcmVzdWx0cyA9IHJlc3VsdHM7CisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcGVyZm9ybQoreworICAgIF9zZW5kZXItPmRpZENo
ZWNrKF9zZXF1ZW5jZSwgW3NlbGYgX2NvcmVSZXN1bHRzXSk7Cit9CisKK3N0YXRpYyBTcGVsbENo
ZWNraW5nUmVzdWx0IHRvQ29yZVNwZWxsaW5nUmVzdWx0KE5TVGV4dENoZWNraW5nUmVzdWx0KiBy
ZXN1bHQpCit7CisgICAgTlNUZXh0Q2hlY2tpbmdUeXBlIHR5cGUgPSBbcmVzdWx0IHJlc3VsdFR5
cGVdOworICAgIE5TUmFuZ2UgcmFuZ2UgPSBbcmVzdWx0IHJhbmdlXTsKKyAgICBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZSBjb3JlVHlwZTsKKyAgICBpZiAodHlwZSAmIE5TVGV4dENoZWNraW5n
VHlwZVNwZWxsaW5nKQorICAgICAgICBjb3JlVHlwZSA9IERvY3VtZW50TWFya2VyOjpTcGVsbGlu
ZzsKKyAgICBlbHNlIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcikKKyAgICAg
ICAgY29yZVR5cGUgPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcjsKKyAgICBlbHNlCisgICAgICAg
IGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnM7CisKKyAgICByZXR1cm4gU3Bl
bGxDaGVja2luZ1Jlc3VsdChjb3JlVHlwZSwgcmFuZ2UubG9jYXRpb24sIHJhbmdlLmxlbmd0aCk7
Cit9CisKKy0gKFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KV9jb3Jl
UmVzdWx0cworeworICAgIFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+
IGNvcmVSZXN1bHRzOworICAgIGNvcmVSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShbX3Jlc3VsdHMu
Z2V0KCkgY291bnRdKTsKKyAgICBmb3IgKE5TVGV4dENoZWNraW5nUmVzdWx0KiByZXN1bHQgaW4g
X3Jlc3VsdHMuZ2V0KCkpCisgICAgICAgIGNvcmVSZXN1bHRzLmFwcGVuZCh0b0NvcmVTcGVsbGlu
Z1Jlc3VsdChyZXN1bHQpKTsKKyAgICByZXR1cm4gY29yZVJlc3VsdHM7Cit9CisKK0BlbmQKKyNl
bmRpZgorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0
ZXh0KQoreworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKQorICAgIE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCB0ZXh0
Lmxlbmd0aCgpKTsKKyAgICBOU1J1bkxvb3AqIGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJy
ZW50UnVuTG9vcF07CisgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tp
bmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcjpe
KE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0cywgTlNPcnRob2dyYXBoeSosIE5TSW50ZWdlcikg
eworICAgICAgICAgICAgW2N1cnJlbnRMb29wIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocGVy
Zm9ybSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OltbW1dlYkVk
aXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2NdIGluaXRXaXRoU2VuZGVyOnNlbmRlciBzZXF1
ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDpuaWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBh
cnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0UnVuTG9vcE1vZGVdXTsKKyAgICAgICAgfV07CisjZW5k
aWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaCBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAppbmRleCBiMGNiMGYzM2Y4Yzll
ZWUxNWJhNGMyMTMyZTdkMDhkMzM2ZmZiYzFmLi4wNDg1ZjY4NGM2MjcyYWI2ZmMzYWEzM2M1YWZm
MGI3YmViOGI3MmJhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2
YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCkBAIC0xNDIs
NCArMTQyLDcgQEAgdHlwZWRlZiBlbnVtIHsKIC8vIFJldHVybnMgd2hldGhlciB0aGVyZSBpcyBh
IHNwZWxsaW5nIG1hcmtlciBpbiB0aGUgc3BlY2lmaWVkIHJhbmdlIG9mIHRoZSBmb2N1c2VkIG5v
ZGUuCiAtIChCT09MKWhhc1NwZWxsaW5nTWFya2VyOihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQp
bGVuZ3RoOwogCisvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMgYSBzcGVsbGluZyBtYXJrZXIg
aW4gdGhlIHNwZWNpZmllZCByYW5nZSBvZiB0aGUgZm9jdXNlZCBub2RlLgorLy8gVGhpcyBmdW5j
dGlvbiBpcyBvbmx5IGZvciBsYXlvdXQgdGVzdHMuCistIChCT09MKWhhc1NwZWxsaW5nTWFya2Vy
OihpbnQpbG9jYXRpb24gbGVuZ3RoOihpbnQpbGVuZ3RoOwogQGVuZApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYzFiZjY2NGViMTE5
YzBjMmM4ZmZmYmFlYzYxZjBmOTE0NzI5OGU2My4uNDg3ZTEzNzg0ZWUyNzllYTlkOTExOTAwYzMz
YzA2Yzc0MDU0ZmJmYyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKwor
ICAgICAgICBBZGRlZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
UXQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0y
MCAgTHVpeiBBZ29zdGluaSAgPGx1aXouYWdvc3RpbmlAb3BlbmJvc3NhLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50UXQuaAppbmRleCA3ZDk5ZDIyMmQ4MzZmMTA3ZjZhMDNlNjdhODI1MzE1YWM1NWFl
M2JmLi42ZGY5ZGY2Y2MwNDRiNzY3ZmU0Mjk1YzJiMGJhZjA5Yzc4NTFjMGJkIDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTA3LDYgKzEwNyw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwg
VmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wg
ZW5hYmxlZCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CiAKICAgICBi
b29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxv
ZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDBmNGMzMmNkOWZkN2RmNjY0M2EwMTY3OTY1
YzJhNTQzNjVmOWM1YzcuLmQ2NTVkNzAzMmEwYTRiYmE0OGQwMTY4OWQwNTdiMGE5OGMxNjQyNzAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRh
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRl
ZCBzdHViIGltcGxlbWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yMCAgRHVtaXRydSBEYW5pbGl1YyAgPGR1bWlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggOGJlNmRlOTBjMjFm
NGUxOWVmYzJmZmZiM2E3YWRlNGNmZDQ4ZWUzMy4uZThiMzdjMmUxYjc3Nzg5ZjRkYmY2YjNiOGVk
MTQxZjA1MmUyOWU1NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCkBAIC0xMTEsNiArMTExLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCk7CisgICAgdmlydHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3Ry
aW5nJikge30KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA4
ZDk5YjVjMGU2NjA5MzI3NzM3Njk5ZWFlMTZlZTcwNmE2NjIxNjI4Li42MDgwZjMyNjBiZDQ2YjI5
MzM5ZGYzNDJkNDBmOWRiYmQ3NGYwMTU0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2UvQ2hhbmdl
TG9nCisrKyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0x
MC0xMiAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNo
ZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIHN0dWIgaW1wbGVtZW1udGF0aW9ucy4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorCiAyMDEwLTEwLTE1ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBhL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggMGFkMGExOTUwMDI2Njc0
Mjc3NzM2YTE2MDAwYjhjYjgyYjdmMGQ2Yi4uOTkwYWY4MTcwY2ViNGUyNWYwM2FhZWU3ZmUyZjQ1
YjY2MDhhM2ZlOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFdpbkNFLmgKQEAgLTk4LDYgKzk4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBn
ZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgYm9v
bCBpc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxD
aGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2Vi
VmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dlYktp
dC93eC9DaGFuZ2VMb2cKaW5kZXggYjdlYzFmNjU0ZTM0NGIxMWY4YWZkOTVhZDdhZmY5ZDk0NjI5
NTg3OC4uYjFkMTM1MDhhYmY0MTZjZmRmNWQ3ZWJkNWJlZjNmN2FiNzJjNzJmMSAxMDA2NDQKLS0t
IGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTAtMTAtMTIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBzdHViIGltcGxl
bWVtbnRhdGlvbnMuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTEzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJh
cnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4K
ZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmggYi9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCmluZGV4IGJlNWM5OGFmMjk3
ZGUxMGUyZjZlNTY2ODVmMmVmNjA2NmU5ZDJmZWYuLmJiZDFjZGVmYTVhNzA1ODYwOWEzYzk3NjEx
MWRjM2Y1MmY2NTNhNWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRv
ckNsaWVudFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3gu
aApAQCAtMTEyLDYgKzExMiw4IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBX
VEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiNWY4MjI1NDRj
OTRmODViNzFlZTUzNjE0MWQyZDNiMjVjY2I2ZDNkLi41Y2U1MGJhMjQ2MDY2MDNhNzk1YTc2OTQ0
Y2Q5YjkxMjFiZmE2ZTk0IDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTEwLTEyICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAg
ICAgICAgQWRkZWQgc3R1YiBpbXBsZW1lbW50YXRpb25zLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgor
CiAyMDEwLTEwLTIxICBKdWhhIFNhdm9sYWluZW4gIDxqdWhhLnNhdm9sYWluZW5Ad2VlZ28uZmk+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYg
LS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCmluZGV4IDU4NTJkZjE2YmI0YTdmZTk5ZTJlM2I5MGJkYWRlY2E2ZDVmMDQ4NjQuLmUzYmUy
ZTEyZjc2MGY3ZTdhNWI5ODFiZDA4NjRkYTFjNWU1ZjY3OWUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00MDEs
NCArNDAxLDMzIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJv
b2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6Omlz
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQoreworICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzaG93Q29y
cmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxh
Y2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6
U3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6ZGlzbWlzc0NvcnJlY3Rp
b25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitib29sIFdlYkVkaXRvckNsaWVudDo6aXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA0YjFmOTljNzdmMjBmODRhZjhkYTEy
NGVlMDI1ZTFiNDA1ODljMmExLi4wOTcyMWEyN2QyN2U1MjdlZmU1Mjk5NzU1YTBlZmI2YjFhMjAx
OTNlIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oCkBAIC0xMzMsOCArMTMzLDEzIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworCisgICAgdmly
dHVhbCBib29sIGlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBXVEY6OlN0cmluZyYpOworCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93
Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJl
cGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKKwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNTaG93aW5nQ29ycmVjdGlvblBhbmVsKCk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72168</attachid>
            <date>2010-10-28 04:39:09 -0700</date>
            <delta_ts>2010-10-28 04:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40092-20101028203907.patch</filename>
            <type>text/plain</type>
            <size>78011</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlODA1NzUyNTY2NTIyYjNlMzg2ZDM3MjgxZTU3YjdhYWEzM2E4ZTU1Li5hM2E2OTVk
NWQwMTZmZWY3N2U5M2YxODM3MTdkYzA0MWNmNWFiMzA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0yNyAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hl
Y2stcGFzdGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9z
cGVsbGNoZWNrLXBhc3RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxM2QyYjA5NDZjMTFjMzYzMDA5YmU4ZDM3
ODE1ZmFjMTcxNTdhMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzCkBAIC0wLDAgKzEsOTggQEAK
KworZGVzY3JpcHRpb24oJ0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQg
dGV4dC4nKTsKKworbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit2YXIg
dGVzdFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHku
aW5zZXJ0QmVmb3JlKHRlc3RSb290LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCit2YXIg
dGVzdFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3Rlc3RS
b290LmFwcGVuZENoaWxkKHRlc3RUZXh0QXJlYSk7CisKK3ZhciB0ZXN0SW5wdXQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwordGVzdElucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIs
ICJ0ZXh0Iik7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0SW5wdXQpOworCit2YXIgdGVzdEVk
aXRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0RWRpdGFibGUuc2V0
QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1ZSIpOwordGVzdFJvb3QuYXBwZW5kQ2hp
bGQodGVzdEVkaXRhYmxlKTsKKwordmFyIHRlc3RTb3VyY2VQbGFpbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwordGVzdFNvdXJjZVBsYWluLmlubmVySFRNTCA9ICJmb28gYmFyIjsK
K3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RTb3VyY2VQbGFpbik7CisKK3ZhciB0ZXN0U291cmNl
RGVjb3JhdGVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlRGVj
b3JhdGVkLmlubmVySFRNTCA9ICJmbzxiPm8gYmE8L2I+ciI7Cit0ZXN0Um9vdC5hcHBlbmRDaGls
ZCh0ZXN0U291cmNlRGVjb3JhdGVkKTsKKwordmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKKwordmFyIHRlc3RzID0gW107CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIHZhciBuZXh0
ID0gdGVzdHMuc2hpZnQoKTsKKyAgICBpZiAobmV4dCkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5z
ZXRUaW1lb3V0KG5leHQsIDApOworICAgIHRlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB2
ZXJpZnlNYXJrZXIobm9kZSwgZXhwZWN0ZWRNYXJrZWQpCit7CisgICAgaWYgKG5vZGUgaW5zdGFu
Y2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVt
ZW50KSB7CisgICAgICAgIG5vZGUuZm9jdXMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZWwu
c2VsZWN0QWxsQ2hpbGRyZW4obm9kZSk7CisgICAgfQorICAgIHJldHVybiBsYXlvdXRUZXN0Q29u
dHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcihleHBlY3RlZE1hcmtlZFswXSwgZXhwZWN0ZWRNYXJr
ZWRbMV0pOworfQorCitmdW5jdGlvbiBwYXN0ZUFuZFZlcmlmeShzb3VyY2UsIGRlc3QsIGV4cGVj
dGVkTWFya2VkKQoreworICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihzb3VyY2UpOworICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7CisgICAgaWYgKGRlc3QgaW5zdGFuY2VvZiBIVE1M
SW5wdXRFbGVtZW50IHx8IGRlc3QgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7Cisg
ICAgICAgIGRlc3QudmFsdWUgPSAiIjsKKyAgICAgICAgZGVzdC5mb2N1cygpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGRlc3QuaW5uZXJIVE1MID0gIiI7CisgICAgICAgIHNlbC5zZWxlY3RBbGxD
aGlsZHJlbihkZXN0KTsKKyAgICB9CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7
CisKKyAgICB2YXIgbnJldHJ5ID0gMTA7CisgICAgdmFyIG5zbGVlcCA9IDE7CisgICAgZnVuY3Rp
b24gdHJpYWwoKSB7IAorICAgICAgICB2YXIgdmVyaWZpZWQgPSB2ZXJpZnlNYXJrZXIoZGVzdCwg
ZXhwZWN0ZWRNYXJrZWQpOworICAgICAgICBpZiAodmVyaWZpZWQpIHsKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoZGVzdC50YWdOYW1lICsgIiBoYXMgYSBtYXJrZXIgb24gJyIgKyBzb3VyY2UuaW5u
ZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIG5yZXRyeS0tOworICAgICAgICBpZiAoMCA9PSBucmV0cnkp
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZGVzdC50YWdOYW1lICsgIiBzaG91bGQgaGF2ZSBh
IG1hcmtlciBvbiBmb3IgJyIgKyBzb3VyY2UuaW5uZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAg
IGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgbnNsZWVwICo9IDI7CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRyaWFsLCBuc2xlZXAp
OworICAgIH07CisgICAgdHJpYWwoKTsKK307CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQodHJ1ZSk7CisKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVy
aWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdElucHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2go
ZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RJbnB1
dCwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0
ZXN0U291cmNlUGxhaW4sIHRlc3RUZXh0QXJlYSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1
bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0VGV4dEFy
ZWEsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnko
dGVzdFNvdXJjZVBsYWluLCB0ZXN0RWRpdGFibGUsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChm
dW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdEVkaXRh
YmxlLCBbMCwgMl0pOyB9KTsgLy8gVG8gY2hlY2sgImZvIiBwYXJ0IG9mIGZvby4KK2RvbmUoKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZTNhODczMGI1MmYyNGVjNDQ1YmJlZWE0MjM1ZjRmZDU4OGExYmI2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitGb3IgQnVnIDQwMDkyOiBTcGVsbCBjaGVj
a2luZyBmb3IgcGFzdGVkIHRleHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSU5Q
VVQgaGFzIGEgbWFya2VyIG9uICdmb28gYmFyJworUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24g
J2ZvPGI+byBiYTwvYj5yJworUEFTUyBURVhUQVJFQSBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXIn
CitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCitQQVNTIERJ
ViBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ2Zv
PGI+byBiYTwvYj5yJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYWJhMGMzNDU3MzQ1MzMzMDg1YzhkZTBk
MWI4ZGVjMTFjMjA5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXNlbGVj
dGlvbi1zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CmluZGV4IGVjNjRhZGYwNGU2YjcxZGRlMWM3YTRlYjhjNjExZDg1Y2VhYjdj
MWIuLjhhYmFhMzk0OTc2MjY5YzRmNDViNGZhZjYzMzJkNzIyMjc5NjYwYmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAg
LTI3MDIsNiArMjcwMiw5IEBAIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2Jv
cmRlclJhZGl1c0RvdWJsZTA3Lmh0bWwgPSBJTUFHRQogQlVHV0s0MTMxMSBXSU4gTElOVVggOiBm
YXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDguaHRtbCA9IElNQUdFCiBCVUdXSzQxMzEx
IFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUwOS5odG1sID0gSU1B
R0UKIAorLy8gTmVlZCB0byBpbXBsZW1lbnQgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZygpCitCVUdXSzQxNDIzIDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
Lmh0bWwgPSBUSU1FT1VUCisKIC8vIEZsYWt5IHRlc3RzLgogQlVHNDQzNDUgTElOVVggOiBzdmcv
em9vbS90ZXh0L3pvb20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKIEJVRzQ0MzQ2
IExJTlVYIDogc3ZnL3pvb20vcGFnZS96b29tLWhpeGllLW1peGVkLTAwOS54bWwgPSBJTUFHRSBQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDYyYzI5NWNlMDcyZjMyYTk0OGZkMzVi
OWNiZTM3ODkzMzEwOTczNDkuLjAzZmQzNDY5OWNhZDM2NmRiMTQzNzVlZGJjZjVlMjRjM2I1OWEw
OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC05ODEsNiArOTgxLDcgQEAgZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tz
cGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbGluZWJy
ZWFrLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCiBlZGl0aW5n
L3N0eWxlLzUwNjU5MTAuaHRtbAogZWRpdGluZy9zdHlsZS9hcHBsZS1zdHlsZS1lZGl0YWJsZS1t
aXguaHRtbAogZWRpdGluZy9zdHlsZS9ibG9jay1zdHlsZS0wMDEuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKaW5kZXggM2Q3NmViMjA3ZjRmMDM4OTNlODlhYWRl
Mjc2ZWFjOWRiMjUxNWQ3My4uMjNkYzc2YmIzZmY3ODdiOTJiZmQyNjU3MDFiZGJmMWJjNjdhOTcx
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCkBAIC04NSw2ICs4
NSw5IEBAIGZhc3QvdGV4dC9oeXBoZW5hdGUtbG9jYWxlLmh0bWwKICMgU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3MQogaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1zZWVrYWJsZS1zdGFsbC5odG1sCiAKKyMgQXZhaWxhYmxlIDEwLjYgb3IgbGF0ZXIKK2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJsZSB0ZXN0cyB3aGlj
aCBzdGFydGVkIGZhaWxpbmcgYWZ0ZXIgcjY2OTYxCiAjIEZhaWx1cmVzIGxvb2sgbGlrZSBhbiB1
bmRlcmx5aW5nIHBsYXRmb3JtIGlzc3VlCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTU0NgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRp
Z2VyL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAppbmRl
eCBhMDk3MTNmZmU5MTkxZTQwZjhlNzI4ZDdkM2I5YWMwNGZkNzQ1MjYwLi5mNzBhY2NhMmQ1ZDBi
ZGFjMTUxMDZlM2U0YmYyZDE1YTkzYjcxZDkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZApAQCAtMjA0LDYgKzIwNCw5IEBAIGZhc3QvaGFybmVzcy9zaG93LW1vZGFsLWRp
YWxvZy5odG1sCiAjIExvYWRpbmcgZmFpbHMgb24gVGlnZXIgd2l0aCBlcnJvciAtMTAxMiBhZnRl
ciBhc2tpbmcgTlNVUkxDb25uZWN0aW9uIHRvIGNvbnRpbnVlIHdpdGhvdXQgY3JlZGVudGlhbHMu
CiBodHRwL3Rlc3RzL21pc2MvNDAxLWFsdGVybmF0aXZlLWNvbnRlbnQucGhwCiAKKyMgQXZhaWxh
YmxlIG9ubHkgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
Lmh0bWwKKwogIyBEaXNhYmxlIHNwZWxsaW5nIHRlc3RzIGZvciBhdXRvY29ycmVjdGlvbiBwYW5l
bAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tZGVsZXRlLmh0
bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5n
LXVuZGVybGluZS1hZnRlci1wYXN0ZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBw
ZWQKaW5kZXggNzIxNmUxODVlYWIwYjQ1ODQ4ZTVhMjJiOGE0N2Y3ZTgyNzE0Y2ZjYy4uMWU4MjJi
M2ZhMzExZGIzYTZiNzZmYzAwNTQ3MDQxOWY2YTE1ZWU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvU2tpcHBlZApAQCAtMTY1LDYgKzE2NSw3IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBs
ZS1jbGljay1pbi1wcmUuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vdXNlci1kcmFnLWVsZW1lbnQt
YW5kLXVzZXItc2VsZWN0LW5vbmUuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxh
cml0eS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1s
CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAogZWRpdGluZy91bmRvL3Vu
ZG8tZGVsZXRlV29yZC5odG1sCiBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtcmV2ZXJz
ZWQtc2VsZWN0aW9uLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS13b3JkLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDRhYjE5YjFkZWZkMjBjZThiY2NmNzFmNmE2
NDQ1MGM4NDFhZDJkYTEuLmJiMmQzN2M5ODAyYjgyYjdmYzVlYzRlNjEzZjZiZmRjZjI5ZDIwOTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjI0NSw2ICsyMjQ1LDkgQEAgZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTQzNQogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3Bh
Y2UtYmV0d2Vlbi1saW5lcy5odG1sCiAKKyMgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZygpIGlzIG5vdCBpbXBsZW1lbnRlZAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LXBhc3RlLmh0bWwKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjIGZhaWxpbmcgZWRpdGlu
Zy9zdHlsZSB0ZXN0cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCmluZGV4IDI2ODVjOWYxMzEyNTExYjgxNTVlOGQ0MGJmMTA3MDQ4YmYzMTE2YzIuLmNj
NjA1MTM3ODI5NWUwYmE1NGFhYzA3ODU1M2UwN2MzZGE1OGNmYTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCkBAIC05MjAsNiArOTIwLDkgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1i
YWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNv
bnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0
bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgaXMgbm90IGlt
cGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjIElu
ZGV4ZWREQiBpcyBub3QgeWV0IGVuYWJsZWQuCiBzdG9yYWdlL2luZGV4ZWRkYgogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY2Y2FlMjA5
NmRmOGFhZDJiZmJmNDU1ZjFkYTZjNjkyNjI2YWQzMTIuLjhkNGNmZGJlMjI2YmUyYjA5YThkMzdj
NjAzMTBkMzczMDVhNjA1NjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKwor
ICAgICAgICAtIEludHJvZHVjZWQgU3BlbGxDaGVja2VyIGNsYXNzIHRvIGVuY2Fwc3VsYXRlIGFz
eW5jaHJvbm91cyBzcGVsbAorICAgICAgICAgIGNoZWNrZXIgc3RhdGU6IHNlcXVlbmNlIGlkLCBy
ZXF1ZXN0aW5nIHRleHQgYW5kIHRhcmdldCBub2RlLgorICAgICAgICAgIFRoaXMgaXMgYWxzbyB0
aGUgZmlyc3Qgc3RlcCB0byBkZWNvbXBvc2Ugc3BlbGwtY2hlY2sgcmVsYXRlZAorICAgICAgICAg
IGNvZGUgdG8gYSBzZXBhcmF0ZSBjbGFzcy4KKyAgICAgICAgLSBBZGRlZCBFZGl0b3JDbGllbnQ6
OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAKKyAgICAgICAgICB0byB1c2Ug
YXN5bmMgc3BlbGxjaGVjayBBUEkgb24gdGhlIHBsYXRmb3JtLgorICAgICAgICAgIFRoZXNlIEFQ
SXMgYXJlIHRvdWNoZWQgYnkgU3BlbGxDaGVja2VyLgorICAgICAgICAtIFVzZWQgU3BlbGxDaGVj
a2VyIHRvIGNoZWNrIGEgcGFzdGVkIHRlc3QuIFRleHQgdG8gY2hlY2sgaXMKKyAgICAgICAgICBj
b2xsZWN0ZWQgZnJvbSB0aGUgc3VidHJlZSB1bmRlciB0aGUgZWRpdGluZ1Jvb3QuCisgICAgICAg
IC0gQWRkZWQgU2V0dGluZzo6bV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCB0byBj
b250cm9sCisgICAgICAgICAgYXN5bmMgc3BlbGwgY2hlY2tpbmcuCisKKyAgICAgICAgVGVzdDog
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKToKKyAgICAg
ICAgKHNob3dEb2N1bWVudE1hcmtlcnMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpzZXRPZmZzZXRJbkxlYWZOb2RlKToKKyAgICAg
ICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OkVkaXRvcik6CisgICAgICAgIChXZWJDb3Jl
OjpmaW5kRmlyc3RNYXJrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGlv
blN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNwZWxsQ2hlY2tlcik6CisgICAgICAgICogZWRp
dGluZy9TcGVsbENoZWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hl
Y2tlcjo6U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6flNw
ZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseSk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQnVzeSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNrZXI6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpp
c0NoZWNrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVj
a2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkSXRlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgICogZWRpdGluZy9TcGVs
bENoZWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0
OjpTcGVsbENoZWNraW5nUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdS
ZXN1bHQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6bG9j
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6bGVuZ3RoKToK
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0
eUVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBhZ2Uv
RWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQpOgorCiAyMDEwLTEwLTI3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggOWRlYWNm
NDgzZTgxNWNhMDgyYzU1ZjEwODE1NmYyNTVkMTQ1Mzg5Zi4uMDFjNmM5ZDg0NDUzMmY5NjJiZDE1
ZDViMDcyMWI3M2JkYWI2ZDEwOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzQ1LDYgKzEzNDUsOCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwIFwKIAlXZWJD
b3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmggXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxh
Y2VJQ1UuY3BwIFwKKwlXZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCisJV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50
Q29tbWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmggXAog
CVdlYkNvcmUvZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMTNi
YTkyZDA1Yzg1MGUyZGUxMTQ2YThhODVkMGIyZDNkODUxNDExOC4uMTY0MTBhNjk3MGNlM2I3ZGIx
Mzg4NTBhMTVkYWFiZDFmMzBhN2U2MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC00ODgsNiArNDg4LDcgQEAgX19aTjdX
ZWJDb3JlMjNSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYxMFBh
c3NSZWZQdHJJTlNfMTZEb2MKIF9fWk43V2ViQ29yZTIzY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXNF
UE5TXzhEb2N1bWVudEVSS04zV1RGNlZlY3RvcklQTlNfNE5vZGVFTG0wRUVFCiBfX1pON1dlYkNv
cmUyM292ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKK19fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVF
CiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VO
U18xNERvY3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIxNG1hcmtlcnNGb3JOb2RlRVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0VOU18xNERv
Y3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRQpAQCAtODg4LDYgKzg4OSw3IEBAIF9fWk43V2ViQ29y
ZTlmb250Q2FjaGVFdgogX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0
aW9uRVMyXwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5dG9FbGVtZW50
RU4zSlNDN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxMlNwZWxsQ2hlY2tlcjhkaWRDaGVja0VpUktO
M1dURjZWZWN0b3JJTlNfMTlTcGVsbENoZWNraW5nUmVzdWx0RUxtMEVFRQogX19aTkszSlNDOEJp
bmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxPYmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3Jl
YXRlQ0ZTdHJpbmdFdgogX19aTks3V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggYzdkY2YxODJlNjQ3ZTYzODk4NGI3ZTE3OGJmNTY4NWFhNWYzNTlhMy4uZjlhN2M4NGNmM2Q4
MzFhMDQ1ZTZkMjlhMmQyZmFiMTQ2M2Y3MDYzOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE0MjcsNiArMTQyNyw4IEBACiAg
ICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2UuaCcsCiAgICAgICAgICAgICAnZWRpdGlu
Zy9TbWFydFJlcGxhY2VDRi5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNl
SUNVLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwJywKKyAgICAg
ICAgICAgICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxlbWVu
dENvbW1hbmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5j
cHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KaW5kZXggZDYxODExYmIxMWQ0MmI3NWE2YmFlM2UzNzkzN2M5OGUwOTQwNzdkMC4uMWE2ODM0
ZDFjNGZmMWM3YTNhNDllODBkMWU5YTM0OGVjZTRiMzhiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04MTEsNiArODExLDcgQEAg
U09VUkNFUyArPSBcCiAgICAgZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCBcCiAgICAg
ZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU21hcnRS
ZXBsYWNlSUNVLmNwcCBcCisgICAgZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKICAgICBlZGl0
aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVD
b21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRD
b21tYW5kLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0ZTI5
NWFlNzhhZmEyMGI4ZGQ1N2UwZGFmMjI5ZjA4NWYyYTE2ZDNkLi43YTcwYWFiMmJlZDUxYjcwMzM5
ODNkYTYyNzVlNmY1NzUyMmQ4OTNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTQ3ODc2LDYgKzQ3ODc2LDExNCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVs
bENoZWNrZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCIN
CisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
Ig0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0K
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxp
dFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2Y2YwMjYz
YTFlZjZhOTBjZjAxOTdmNDFhZTg1OTc2ZmFhNDFmMmVjLi5jYTY0YjYzMzkxNjNmZmU4YTQyYTYw
NDlhNTJiMzZlNDA0NDgxYmUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMzAzMiw2ICszMDMyLDggQEAKIAkJQTc3OTc5MjgwRDZCOUU2NDAwMzg1MUI5
IC8qIEpTSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi87
IH07CiAJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAw
Mzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3
QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi87IH07
CisJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RkUxMzkxMjM2NkIxMDAw
QUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CisJCUE3OEZFMTNDMTIzNjZCMTAwMEFD
RThEMCAvKiBTcGVsbENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzk1NDYz
RTBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJh
Z0RhdGFNYWMubW0gKi87IH07CiAJCUE3OTU0NjQzMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1
NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovOyB9OwogCQlBN0FBNjZENjEx
QzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBS
ZW5kZXJJbmRpY2F0b3IuY3BwICovOyB9OwpAQCAtOTEwMiw2ICs5MTA0LDggQEAKIAkJQTc3OTc5
MjQwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBT
cGVsbENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
bGxDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4RkUxM0ExMjM2
NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsg
cGF0aCA9IFNwZWxsQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1
NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0RhdGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3OTU0NjQyMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmFnRGF0YS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJ
bmRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
SW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTA4LDYgKzE0
NTEyLDggQEAKIAkJCQk0QjZGQTZGMzBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmNw
cCAqLywKIAkJCQk0QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi8s
CiAJCQkJNEI2RkE2RjYwQzM5RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCAqLywK
KwkJCQlBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLywKKwkJ
CQlBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi8sCiAJCQkJOTMz
MDlEQzIwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwICovLAogCQkJ
CTkzMzA5REMzMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEQzQwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKQEAgLTIwNjc1LDYgKzIwNjgxLDcgQEAKIAkJCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1MzVCQzk1MTIwMjBD
RkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVt
ZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQwOTlFNjQ5MjAwNTZFNTgx
IC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNjA5
OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yMzMwMyw2ICsyMzMxMCw3IEBACiAJCQkJNjI2Q0RFMEUxMTQw
NDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTc1NzhGOTBCMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3NTM1QkM5NDEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2Nr
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTEwOTlFNjQ5MjAwNTZFNTgx
IC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTMw
OTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMzA5RTE1MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29udGFpbmlu
Z0VsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAKaW5kZXggMmI3ZmQ4NWQ3ZmVjZDJmYmM4YzhkM2UyYzk1NTZlYTdl
OTk5OTI4Zi4uOGM1NmI1NGNkNWJiYzI1N2Q4ZTg1MjE3YjllOTY0MDY4N2E3MTg5OCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC01MjQsNCArNTI0LDMyIEBA
IHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpzZXRNYXJrZXJzQWN0aXZlKE5vZGUqIG5v
ZGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0CiAgICAgICAgIG5vZGUtPnJlbmRlcmVyKCktPnJlcGFp
bnQoKTsKIH0KIAorCisjaWZuZGVmIE5ERUJVRwordm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXI6OnNob3dNYXJrZXJzKCkgY29uc3QKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVkIG5vZGVz
IGhhdmUgbWFya2VyczpcbiIsIG1fbWFya2Vycy5zaXplKCkpOworICAgIE1hcmtlck1hcDo6Y29u
c3RfaXRlcmF0b3IgZW5kID0gbV9tYXJrZXJzLmVuZCgpOworICAgIGZvciAoTWFya2VyTWFwOjpj
b25zdF9pdGVyYXRvciBub2RlSXRlcmF0b3IgPSBtX21hcmtlcnMuYmVnaW4oKTsgbm9kZUl0ZXJh
dG9yICE9IGVuZDsgKytub2RlSXRlcmF0b3IpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG5vZGVJ
dGVyYXRvci0+Zmlyc3QuZ2V0KCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXAiLCBub2Rl
KTsKKyAgICAgICAgTWFya2VyTWFwVmVjdG9yUGFpciogdmVjdG9yUGFpciA9IG5vZGVJdGVyYXRv
ci0+c2Vjb25kOworICAgICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+JiBtYXJrZXJzID0gdmVj
dG9yUGFpci0+Zmlyc3Q7CisgICAgICAgIHVuc2lnbmVkIG1hcmtlckNvdW50ID0gbWFya2Vycy5z
aXplKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgbWFya2VySW5kZXggPSAwOyBtYXJrZXJJbmRl
eCA8IG1hcmtlckNvdW50OyArK21hcmtlckluZGV4KQorICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICIgJWQ6WyVkOiVkXSglZCkiLCBtYXJrZXJzW21hcmtlckluZGV4XS50eXBlLCBtYXJrZXJz
W21hcmtlckluZGV4XS5zdGFydE9mZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRleF0uZW5kT2Zmc2V0
LCBtYXJrZXJzW21hcmtlckluZGV4XS5hY3RpdmVNYXRjaCk7CisgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiXG4iKTsKKyAgICB9Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisKKyNpZm5kZWYgTkRFQlVHCit2b2lkIHNob3dEb2N1bWVudE1hcmtlcnMoY29uc3QgV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmIChjb250
cm9sbGVyKQorICAgICAgICBjb250cm9sbGVyLT5zaG93TWFya2VycygpOworfQorI2VuZGlmCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBiL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDg5MjFiYWFjNTlkYWVhOWQ3
MzNkMWY4MzdmMDM2Y2Y2NmMyOWY3NWMuLjM0MTBlN2ZmMzNkZTRhMmE5YmQzYjljZWRiNTM5OGY3
MzFjZjA5MDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCkBAIC02MSw2
ICs2MSwxMCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBtYXJrZXJzRm9y
Tm9kZShOb2RlKik7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNGb3JNYXJrZXJz
KERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMp
OwogCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgc2hvd01hcmtlcnMoKSBjb25zdDsKKyNlbmRp
ZgorCiBwcml2YXRlOgogICAgIHR5cGVkZWYgc3RkOjpwYWlyPFZlY3RvcjxEb2N1bWVudE1hcmtl
cj4sIFZlY3RvcjxJbnRSZWN0PiA+IE1hcmtlck1hcFZlY3RvclBhaXI7CiAgICAgdHlwZWRlZiBI
YXNoTWFwPFJlZlB0cjxOb2RlPiwgTWFya2VyTWFwVmVjdG9yUGFpcio+IE1hcmtlck1hcDsKQEAg
LTY5LDQgKzczLDggQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBzaG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3Vt
ZW50TWFya2VyQ29udHJvbGxlciopOworI2VuZGlmCisKICNlbmRpZiAvLyBEb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5j
cHAgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCBkMmMzYTNmMGNmNGUw
ZjAzYjQwZGI1NDZkOTlhZjExMDJjZDUxNDc2Li40MmNjNTEzNzEyNjc2OTk2ZTRiYjY4ZDE5NWI0
YzRhYjJmZWZhYmVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNw
cAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtOTgsNiArOTgsMTMg
QEAgdm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjpkZWNyZW1lbnQoKQogICAgIH0KIH0KIAordm9pZCBQ
b3NpdGlvbkl0ZXJhdG9yOjpzZXRPZmZzZXRJbkxlYWZOb2RlKGludCBvZmZzZXQpCit7CisgICAg
QVNTRVJUKCFtX2FuY2hvck5vZGUtPmhhc0NoaWxkTm9kZXMoKSk7CisgICAgQVNTRVJUKDAgPD0g
b2Zmc2V0ICYmIG9mZnNldCA8PSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpKTsK
KyAgICBtX29mZnNldEluQW5jaG9yID0gb2Zmc2V0OworfQorCiBib29sIFBvc2l0aW9uSXRlcmF0
b3I6OmF0U3RhcnQoKSBjb25zdAogewogICAgIGlmICghbV9hbmNob3JOb2RlKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oIGIvV2ViQ29yZS9kb20vUG9zaXRpb25J
dGVyYXRvci5oCmluZGV4IDdhZjg5Nzc1OTFkMTZjMjk3OTMxODkwZWJkMWFlMDY5YzJkNDdmMzYu
LjA4MzI5YmIxNWNkM2U1MjEwMDQ2MjkzNTg4YWI3YWFiZDMwZmU0ZjYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0
ZXJhdG9yLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYW5jaG9yTm9kZTsgfQogICAgIGludCBvZmZzZXRJbkxlYWZOb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9vZmZzZXRJbkFuY2hvcjsgfQorICAgIHZvaWQgc2V0T2Zmc2V0SW5M
ZWFmTm9kZShpbnQgb2Zmc2V0KTsKIAogICAgIGJvb2wgYXRTdGFydCgpIGNvbnN0OwogICAgIGJv
b2wgYXRFbmQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMmU1ODM4OWE0YjU5OWZmMzFjNWM1
ODQ4YjQ4OGRiOWU2MTIxYTBjOC4uOWU0NTQzNmE5MDhlOWMyZmE1YzFhNWQ2OGQ5NmY3NDQ0MmY1
YzAzYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY1LDkgKzY1LDExIEBACiAjaW5jbHVkZSAiUmVtb3Zl
Rm9ybWF0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyUGFydC5oIgorI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVw
bGFjZVNlbGVjdGlvbkNvbW1hbmQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlNvdW5kLmgiCisjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgog
I2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMzgy
LDYgKzM4NCwxMCBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQ
YXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIAogICAgIGFwcGx5Q29t
bWFuZChSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCks
IGZyYWdtZW50LCBzZWxlY3RSZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCBtYXRjaFN0eWxlKSk7
CiAgICAgcmV2ZWFsU2VsZWN0aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CisKKyAgICBOb2Rl
KiBub2RlVG9DaGVjayA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50
KCk7CisgICAgaWYgKG1fc3BlbGxDaGVja2VyLT5jYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGVU
b0NoZWNrKSkKKyAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zvcihub2Rl
VG9DaGVjayk7CiB9CiAKIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29u
c3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFj
ZSkKQEAgLTEwNTYsNiArMTA2Miw3IEBAIEVkaXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAg
ICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlz
IGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0
eWxlV2l0aENTUyhmYWxzZSkKICAgICAsIG1fa2lsbFJpbmcoYWRvcHRQdHIobmV3IEtpbGxSaW5n
KSkKKyAgICAsIG1fc3BlbGxDaGVja2VyKG5ldyBTcGVsbENoZWNrZXIoZnJhbWUsIGZyYW1lLT5w
YWdlKCkgPyBmcmFtZS0+cGFnZSgpLT5lZGl0b3JDbGllbnQoKSA6IDApKQogICAgICwgbV9jb3Jy
ZWN0aW9uUGFuZWxUaW1lcih0aGlzLCAmRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVk
KQogICAgICwgbV9hcmVNYXJrZWRUZXh0TWF0Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogewpAQCAt
MzYyOSwxMiArMzYzNiwyOSBAQCB2b2lkIEVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGJvbwogICAgIHJlc3BvbmRU
b0NoYW5nZWRTZWxlY3Rpb24ob2xkU2VsZWN0aW9uKTsKIH0KIAorc3RhdGljIE5vZGUqIGZpbmRG
aXJzdE1hcmthYmxlKE5vZGUqIG5vZGUpCit7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAg
aWYgKCFub2RlLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlm
IChub2RlLT5yZW5kZXJlcigpLT5pc1RleHQoKSkKKyAgICAgICAgICAgIHJldHVybiBub2RlOwor
ICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0Q29udHJvbCgpKQorICAgICAgICAg
ICAgbm9kZSA9IHRvUmVuZGVyVGV4dENvbnRyb2wobm9kZS0+cmVuZGVyZXIoKSktPnZpc2libGVQ
b3NpdGlvbkZvckluZGV4KDEpLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgICAgICBlbHNl
IGlmIChub2RlLT5maXJzdENoaWxkKCkpCisgICAgICAgICAgICBub2RlID0gbm9kZS0+Zmlyc3RD
aGlsZCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBub2RlID0gbm9kZS0+bmV4dFNpYmxp
bmcoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwogYm9vbCBFZGl0b3I6OnNlbGVjdGlv
blN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IoaW50IGZyb20sIGludCBsZW5ndGgpIGNvbnN0CiB7
Ci0gICAgTm9kZSogbm9kZSA9IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKTsK
LSAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgTm9kZSogbm9kZSA9IGZp
bmRGaXJzdE1hcmthYmxlKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKSk7Cisg
ICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQVNTRVJUKG5vZGUtPnJl
bmRlcmVyKCktPmlzVGV4dCgpKTsKIAogICAgIHVuc2lnbmVkIGludCBzdGFydE9mZnNldCA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZnJvbSk7CiAgICAgdW5zaWduZWQgaW50IGVuZE9mZnNl
dCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oZnJvbSArIGxlbmd0aCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5k
ZXggMGFkNDczNzgyZDNhNGY1YjRlN2MxNGQzY2U3NTBkZGI0ZTMyOTUyZS4uZjU0ZTc4NzhjNDI0
MWVmNDY5OTAzNmIxM2NlNmY4MGY0NjVkZGU5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNTMsNiArNTMsNyBA
QCBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJk
OwogY2xhc3MgU2ltcGxlRm9udERhdGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0
OwogY2xhc3MgVGV4dEV2ZW50OwogCkBAIC0yOTgsNiArMjk5LDcgQEAgcHVibGljOgogICAgIFZp
c2libGVTZWxlY3Rpb24gc2VsZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJp
bmcqIGtpbGxSaW5nKCkgY29uc3QgeyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNw
ZWxsQ2hlY2tlciogc3BlbGxDaGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIu
Z2V0KCk7IH0KIAogICAgIEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0z
NzYsNiArMzc4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmlu
Z1NlcXVlbmNlOwogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtp
bGxSaW5nPiBtX2tpbGxSaW5nOworICAgIE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVj
a2VyOwogICAgIFJlZlB0cjxSYW5nZT4gbV9yYW5nZVRvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsK
ICAgICBTdHJpbmcgbV9zdHJpbmdUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5n
IG1fY29ycmVjdGlvblJlcGxhY2VtZW50U3RyaW5nOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0
aW5nL1NwZWxsQ2hlY2tlci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xODA3NDc0Yjc1Mzg2YmU3NzIxZWM4ZGVlMzBkOTkzMDdiMTAxZTI2Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTAsMCAr
MSwxNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWxs
Q2hlY2tlci5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4
dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlBvc2l0aW9uSXRl
cmF0b3IuaCIKKyNpbmNsdWRlICJSYW5nZS5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgor
I2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVk
ZSAiaHRtbGVkaXRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVsbENoZWNrZXI6
OlNwZWxsQ2hlY2tlcihGcmFtZSogZnJhbWUsIEVkaXRvckNsaWVudCogY2xpZW50KQorICAgIDog
bV9mcmFtZShmcmFtZSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcmVxdWVzdFNl
cXVlbmNlKDApCit7Cit9CisKK1NwZWxsQ2hlY2tlcjo6flNwZWxsQ2hlY2tlcigpCit7Cit9CisK
K2Jvb2wgU3BlbGxDaGVja2VyOjppbml0UmVxdWVzdChOb2RlKiBub2RlKQoreworICAgIEFTU0VS
VChjYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGUpKTsKKworICAgIFN0cmluZyB0ZXh0ID0gbm9k
ZS0+dGV4dENvbnRlbnQoKTsKKyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIG1fcmVxdWVzdE5vZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFRleHQg
PSB0ZXh0OworICAgIG1fcmVxdWVzdFNlcXVlbmNlKys7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBTcGVsbENoZWNrZXI6OmNsZWFyUmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0Tm9k
ZS5jbGVhcigpOworICAgIG1fcmVxdWVzdFRleHQgPSBTdHJpbmcoKTsKK30KKworYm9vbCBTcGVs
bENoZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
ZnJhbWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+YXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmNhbkNoZWNrQXN5
bmNocm9ub3VzbHkoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDaGVja2FibGUo
bm9kZSkgJiYgaXNBc3luY2hyb25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgpOworfQorCitib29s
IFNwZWxsQ2hlY2tlcjo6aXNCdXN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0Tm9k
ZS5nZXQoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzVmFsaWQoaW50IHNlcXVlbmNlKSBj
b25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3ROb2RlLmdldCgpICYmIG1fcmVxdWVzdFRleHQu
bGVuZ3RoKCkgJiYgbV9yZXF1ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7Cit9CisKK2Jvb2wgU3Bl
bGxDaGVja2VyOjppc0NoZWNrYWJsZShOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBu
b2RlICYmIG5vZGUtPnJlbmRlcmVyKCk7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpyZXF1ZXN0
Q2hlY2tpbmdGb3IoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hyb25v
dXNseShub2RlKSk7CisKKyAgICBpZiAoIWluaXRSZXF1ZXN0KG5vZGUpKQorICAgICAgICByZXR1
cm47CisgICAgbV9jbGllbnQtPnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVz
dFNlcXVlbmNlLCBtX3JlcXVlc3RUZXh0KTsKK30KKworc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJh
dG9yKFBvc2l0aW9uSXRlcmF0b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFuY2UpCit7CisgICAgaW50
IHJlbWFpbmluZyA9IGRpc3RhbmNlOworICAgIHdoaWxlICghaXRlcmF0b3IuYXRFbmQoKSkgewor
ICAgICAgICBpZiAoaXRlcmF0b3Iubm9kZSgpLT5pc0NoYXJhY3RlckRhdGFOb2RlKCkpIHsKKyAg
ICAgICAgICAgIGludCBsZW5ndGggPSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhpdGVyYXRvci5ub2Rl
KCkpOworICAgICAgICAgICAgaW50IGxhc3QgPSBsZW5ndGggLSBpdGVyYXRvci5vZmZzZXRJbkxl
YWZOb2RlKCk7CisgICAgICAgICAgICBpZiAocmVtYWluaW5nIDwgbGFzdCkgeworICAgICAgICAg
ICAgICAgIGl0ZXJhdG9yLnNldE9mZnNldEluTGVhZk5vZGUoaXRlcmF0b3Iub2Zmc2V0SW5MZWFm
Tm9kZSgpICsgcmVtYWluaW5nKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgcmVtYWluaW5nIC09IGxhc3Q7CisgICAgICAgICAgICBp
dGVyYXRvci5zZXRPZmZzZXRJbkxlYWZOb2RlKGl0ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKSAr
IGxhc3QpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IuaW5jcmVtZW50KCk7CisgICAg
fQorCisgICAgcmV0dXJuIGZhbHNlOyAgICAKK30KKwordm9pZCBTcGVsbENoZWNrZXI6OmRpZENo
ZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+JiByZXN1
bHRzKQoreworICAgIGlmICghaXNWYWxpZChzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghbV9yZXF1ZXN0Tm9kZS0+cmVuZGVyZXIoKSkgeworICAgICAgICBjbGVhclJlcXVl
c3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGludCBzdGFydE9mZnNldCA9IDA7
CisgICAgUG9zaXRpb25JdGVyYXRvciBzdGFydCA9IFBvc2l0aW9uKG1fcmVxdWVzdE5vZGUsIDAp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7ICsraSkgeworICAg
ICAgICBpZiAocmVzdWx0c1tpXS50eXBlKCkgIT0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nICYm
IHJlc3VsdHNbaV0udHlwZSgpICE9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgLy8gVG8gYXZvaWQgbW92aW5nIHRoZSBwb3NpdGlvbiBi
YWNrd2FyZCwgd2UgYXNzdW1lIHRoZSBnaXZlbiByZXN1bHRzIGFyZSBzb3J0ZWQgd2l0aAorICAg
ICAgICAvLyBzdGFydE9mZnNldCBhcyB0aGUgb25lcyByZXR1cm5lZCBieSBbTlNTcGVsbENoZWNr
ZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6XS4KKyAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0
IDw9IHJlc3VsdHNbaV0ubG9jYXRpb24oKSk7CisgICAgICAgIGlmICghZm9yd2FyZEl0ZXJhdG9y
KHN0YXJ0LCByZXN1bHRzW2ldLmxvY2F0aW9uKCkgLSBzdGFydE9mZnNldCkpCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgUG9zaXRpb25JdGVyYXRvciBlbmQgPSBzdGFydDsKKyAgICAgICAg
aWYgKCFmb3J3YXJkSXRlcmF0b3IoZW5kLCByZXN1bHRzW2ldLmxlbmd0aCgpKSkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIC8vIFVzZXJzIG9yIEphdmFTY3JpcHQgYXBwbGljYXRpb25z
IG1heSBjaGFuZ2UgdGV4dCB3aGlsZSBhIHNwZWxsLWNoZWNrZXIgY2hlY2tzIGl0cworICAgICAg
ICAvLyBzcGVsbGluZ3MgaW4gdGhlIGJhY2tncm91bmQuIFRvIGF2b2lkIGFkZGluZyBtYXJrZXJz
IHRvIHRoZSB3b3JkcyBtb2RpZmllZCBieSB1c2VycyBvcgorICAgICAgICAvLyBKYXZhU2NyaXB0
IGFwcGxpY2F0aW9ucywgcmV0cmlldmUgdGhlIHdvcmRzIGluIHRoZSBzcGVjaWZpZWQgcmVnaW9u
IGFuZCBjb21wYXJlIHRoZW0gd2l0aAorICAgICAgICAvLyB0aGUgb3JpZ2luYWwgb25lcy4KKyAg
ICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9yZXF1ZXN0Tm9kZS0+
ZG9jdW1lbnQoKSwgc3RhcnQsIGVuZCk7CisgICAgICAgIC8vIEZJWE1FOiBVc2UgdGV4dENvbnRl
bnQoKSBjb21wYXRpYmxlIHN0cmluZyBjb252ZXJzaW9uLgorICAgICAgICBTdHJpbmcgZGVzdGlu
YXRpb24gPSByYW5nZS0+dGV4dCgpOworICAgICAgICBTdHJpbmcgc291cmNlID0gbV9yZXF1ZXN0
VGV4dC5zdWJzdHJpbmcocmVzdWx0c1tpXS5sb2NhdGlvbigpLCByZXN1bHRzW2ldLmxlbmd0aCgp
KTsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAgICAgICAgIG1fcmVx
dWVzdE5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgpLCBy
ZXN1bHRzW2ldLnR5cGUoKSk7CisKKyAgICAgICAgc3RhcnRPZmZzZXQgPSByZXN1bHRzW2ldLmxv
Y2F0aW9uKCk7CisgICAgfQorCisgICAgY2xlYXJSZXF1ZXN0KCk7Cit9CisKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5o
IGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MjJmMGUyMzMw
MDE2ZjgzZjY5MGE0MDBiMjJlZTEyNzljODlmODAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFNwZWxsQ2hlY2tlcl9oCisjZGVmaW5lIFNwZWxsQ2hlY2tlcl9oCisKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEVkaXRvckNsaWVudDsKK2NsYXNzIEZyYW1lOworCitjbGFzcyBTcGVs
bENoZWNraW5nUmVzdWx0IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVsbENoZWNraW5nUmVz
dWx0KERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIHR5cGUgPSBEb2N1bWVudE1hcmtlcjo6U3Bl
bGxpbmcsIGludCBsb2NhdGlvbiA9IDAsIGludCBsZW5ndGggPSAwKQorICAgICAgICA6IG1fdHlw
ZSh0eXBlKQorICAgICAgICAsIG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwgbV9sZW5n
dGgobGVuZ3RoKQorICAgIHsKKyAgICB9CisKKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9IAorICAgIGludCBsb2NhdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fbG9jYXRpb247IH0KKyAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9sZW5ndGg7IH0KKworcHJpdmF0ZToKKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlw
ZSBtX3R5cGU7CisgICAgaW50IG1fbG9jYXRpb247CisgICAgaW50IG1fbGVuZ3RoOworfTsKKwor
Y2xhc3MgU3BlbGxDaGVja2VyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBTcGVsbENoZWNrZXIoRnJhbWUqLCBFZGl0b3JDbGllbnQqKTsKKyAgICB+U3BlbGxD
aGVja2VyKCk7CisKKyAgICBib29sIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpIGNvbnN0OworICAg
IGJvb2wgY2FuQ2hlY2tBc3luY2hyb25vdXNseShOb2RlKikgY29uc3Q7CisgICAgYm9vbCBpc0J1
c3koKSBjb25zdDsKKyAgICBib29sIGlzVmFsaWQoaW50IHNlcXVlbmNlKSBjb25zdDsKKyAgICBi
b29sIGlzQ2hlY2thYmxlKE5vZGUqKSBjb25zdDsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0Zv
cihOb2RlKik7CisgICAgdm9pZCBkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxT
cGVsbENoZWNraW5nUmVzdWx0PiYpOworCitwcml2YXRlOgorICAgIGJvb2wgaW5pdFJlcXVlc3Qo
Tm9kZSopOworICAgIHZvaWQgY2xlYXJSZXF1ZXN0KCk7CisKKyAgICBGcmFtZSogbV9mcmFtZTsK
KyAgICBFZGl0b3JDbGllbnQqIG1fY2xpZW50OworCisgICAgUmVmUHRyPE5vZGU+IG1fcmVxdWVz
dE5vZGU7CisgICAgU3RyaW5nIG1fcmVxdWVzdFRleHQ7CisgICAgaW50IG1fcmVxdWVzdFNlcXVl
bmNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlbGxDaGVj
a2VyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggZWMzNzY2ODI5NWFhMTRiNjQ3MDlkMzJjNDM5
MmMzYWU3ZWQxYTc5NS4uM2QzMmRkNzg4ZGYxYzI4ZWJjMGYyMmJlZDIwODRkOWJkNjJhODcyMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTQ4MSw4ICs0ODEsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkgeyB9Ci0KLQorICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNv
bnN0IFN0cmluZyYpIHsgfQogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oCmluZGV4IDk3YjA5MDI1Y2M0NTM3ZTJhM2ViZDljNzVhMjEwMjAzOTRlZmUwOWUuLmI4
NWFhZTM2NDRlMjU1M2JlYjBlYzkzYWYzOTQ2Y2U0ODI5MDI0ZDAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9FZGl0b3JDbGllbnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgK
QEAgLTY1LDYgKzY1LDcgQEAgY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50
OwogY2xhc3MgTm9kZTsKIGNsYXNzIFJhbmdlOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3Mg
VmlzaWJsZVNlbGVjdGlvbjsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIApAQCAtMjAxLDYgKzIw
Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3Qg
U3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgPSAwOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggZmFjMzViZWM4ZmIyYWIzOWI3MzJkOGI3ODA0YTJmZjU1
NTViNzgxYy4uNTNjZTI5ZDczNWEyNmYwZWQ4N2YwMDRiNTkyMWQ0ZGQwODUwOTI3YSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCkBAIC0xNDUsNiArMTQ1LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2Up
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICwgbV9mdWxsU2NyZWVuQVBJRW5hYmxl
ZChmYWxzZSkKICNlbmRpZgorICAgICwgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZChmYWxzZSkKICAgICAsIG1fbWVtb3J5SW5mb0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2ludGVy
YWN0aXZlRm9ybVZhbGlkYXRpb24oZmFsc2UpCiAgICAgLCBtX3VzZVByZUhUTUw1UGFyc2VyUXVp
cmtzKGZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaAppbmRleCBiOGQ3YTMxODc3ZTQwMmYwNWU2OTg5MzAzYzMwODg2NmNl
Y2FkMDNiLi4zMGRkYzg2NWM4NmViOGI3YzU0ZDVlNGFkYTg5MTliOTlhOWQwNTI2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aApAQCAtMzE2LDYgKzMxNiw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBm
dWxsU2NyZWVuRW5hYmxlZCgpIGNvbnN0ICB7IHJldHVybiBtX2Z1bGxTY3JlZW5BUElFbmFibGVk
OyB9CiAjZW5kaWYKIAorICAgICAgICB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKGJvb2wgZmxhZykgeyBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0g
ZmxhZzsgfQorICAgICAgICBib29sIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkg
Y29uc3QgIHsgcmV0dXJuIG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ7IH0KKwog
ICAgICAgICB2b2lkIHNldE1lbW9yeUluZm9FbmFibGVkKGJvb2wgZmxhZykgeyBtX21lbW9yeUlu
Zm9FbmFibGVkID0gZmxhZzsgfQogICAgICAgICBib29sIG1lbW9yeUluZm9FbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9tZW1vcnlJbmZvRW5hYmxlZDsgfQogCkBAIC00MTgsNiArNDIxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAg
Ym9vbCBtX2Z1bGxTY3JlZW5BUElFbmFibGVkIDogMTsKICNlbmRpZgorICAgICAgICBib29sIG1f
YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6IDE7CiAgICAgICAgIGJvb2wgbV9tZW1v
cnlJbmZvRW5hYmxlZDogMTsKICAgICAgICAgYm9vbCBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRp
b246IDE7CiAgICAgICAgIGJvb2wgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrczogMTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGEyZDc1Mjk3ZTdmNTI5N2JjZDM4ZmM5NDZhZjNlYjBhOGNmODViYTAuLjk0MzNj
ODVmNzU3YmE2NGViYTFkYzVkZWFlNGIxMWUzMDJmMzY0Y2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxs
Y2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGlt
cGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmg6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToK
KwogMjAxMC0xMC0yNyAgRXJpYyBVaHJoYW5lICA8ZXJpY3VAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuaAppbmRleCBiMDVhNTkyNmJmNzExMjg2MWMyNTNhNDZjMjM0YTZkNWI3ZTMzNWQ3Li44
ZmU2MzU2NDUxNGQ1YWI1NzEyZDZlNjBkZjcxODUwZThlYTk3MDFhIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBn
dWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIq
LCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogICAgIC8vIFNob3dzIHRoZSBmb3JtIGF1
dG9maWxsIHBvcHVwIGZvciB8bm9kZXwgaWYgaXQgaXMgYW4gSFRNTElucHV0RWxlbWVudCBhbmQK
ICAgICAvLyBpdCBpcyBlbXB0eS4gIFRoaXMgaXMgY2FsbGVkIHdoZW4geW91IHByZXNzIHRoZSB1
cCBvciBkb3duIGFycm93IGluIGEKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIv
V2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZWQ3MjM1ZjMxMGU4ODY5NjgwNzhjM2RhNmVmNmUx
MWRjOGUzNWMwNC4uMmE3NjkyZjFiNDlmNjU5YTgyZjdmMTg5Y2Y0Y2ExZTkyZGJmYmRlYyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEg
c3R1YiBpbXBsZW1lbW50YXRpb24uCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUg
IDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggOWY2
MGNmYmFkYjQyZjA3ZjEzNmJlN2Q0ZTc5YzQyMDk0NDM4ZDFiMi4uZjE2ODdmN2IzZWI5ZDRiMTM0
NmI0NzExMTYxNzBkMDEyZTE4ZmNhMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5oCkBAIC0xMTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBXVEY6OlZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBFdmFzX09i
amVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCA1N2MzZTI3ZTJkMDNjN2VmNGNiYWRiMjZiNDI5YWU4MDUwNjFj
N2ViLi5jMjdmMDRhYWI4MTM4OTBiMWYxOGE3YWVmMjM3MWU0YjNkOWUxMmQ5IDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxs
Y2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGlt
cGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKToKKwogMjAxMC0xMC0yNyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKaW5kZXggZjlmZjgyZTAwYzRhMzBm
NjYyYzFkYTMzZmIzYTVhOTAxMTlkMzA1OS4uNTY4MDI3ZmE2YTAwNzY4YmYyZTkyMDFkOWFjOGQ4
MjdjYWJmMGExYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0
ay5oCkBAIC0xMzIsNiArMTMyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9y
PFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5w
dXRNZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0
ZShib29sIGVuYWJsZWQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9
CiAKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYg
LS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpp
bmRleCBlZDA2YjJjYmNjZTg1ZGIxMjk4ZWIzZTQ0Y2Y3YjEwMmViZmQ3ZGI5Li40YjE3NmUwYzdl
NzNlYzllMWY2YzVjYWI3NmVkZDJmZWJmNTc0MDBkIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3Uv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMg
bm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRp
b24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KToKKwogMjAxMC0xMC0yNiAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaCBiL1dlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCmluZGV4IDVjYmVjMjcyMjEzY2M2Y2U5
ZTdjYTExZDBlMDVlNjUyYzZlNzdjZDEuLmYzZjEwNWUzODhiNzFlYjM4NGIzMmY1N2I4NWM3OWMx
ZWY3MGEzYmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRIYWlrdS5oCisrKyBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRIYWlrdS5oCkBAIC0xMTAsNiArMTEwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0
cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBl
bmFibGVkKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30KIAogICAgICAgICBib29sIGlzRWRp
dGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ1OGRmNzgwZjA2NTMzNmQ0NzI4MzQ0ZDFmYmNiNWI3NThk
MjNkZDkuLmE1NDVmYjA4YzNmNzhjNmZmMDljMzM3N2VlOTkwOWViNGY2YjlkYWMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzYgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3Bl
bGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhc3luY2hy
b25vdXMgc3BlbGwgY2hlY2tpbmcgQVBJIHRvIFdlYkVkaXRvckNsaWVudCB1c2luZworICAgICAg
ICAtW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXS4KKyAgICAgICAgTm90
ZSB0aGF0IFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaXMgYSBzbWFsbCBjbGFzcyB0byBy
ZWNlaXZlCisgICAgICAgIHJlcXVlc3RlZCBzcGVsbC1jaGVja2luZyByZXN1bHQuIE5vdGUgdGhh
dCB0aGlzIGZlYXR1cmUgaXMKKyAgICAgICAgZGlzYWJsZWQgYXQgZGVmYXVsdC4KKyAgICAgICAg
CisgICAgICAgIEFsc28gYWRkZWQgW1dlYlByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkOl0gdG8gCisgICAgICAgIGVuYWJsZSB0aGUgZmVhdHVyZSBmcm9tIExh
eW91dFRlc3RDb250cm9sbGVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgor
ICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGluaXRXaXRoU2VuZGVyOldl
YkNvcmU6OnNlcXVlbmNlOnJlc3VsdHM6XSk6CisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hl
Y2tSZXNwb25kZXIgcGVyZm9ybV0pOgorICAgICAgICAodG9Db3JlU3BlbGxpbmdSZXN1bHQpOgor
ICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIFdURjo6V2ViQ29yZTo6XSk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDpdKToK
KyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXND
aGFuZ2VkTm90aWZpY2F0aW9uOl0pOgorCiAyMDEwLTEwLTI3ICBQcmF0aWsgU29sYW5raSAgPHBz
b2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KQEAg
LTEzNjIsNiArMTM5NSwzMiBAQAogCiAyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0
YUBnb29nbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgSW1w
bGVtZW50ZWQgYXN5bmMgc3BlbGwtY2hlY2sgQVBJcyBvbiBXZWJFZGl0b3JDbGllbnQuCisgICAg
ICAgIFRoZSBpbXBsZW1lbnRhdGlvbnMgYXJlIHVzaW5nIFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZ10KKyAgICAgICAgd2hpY2ggaXMgYXZhaWxhYmxlIG9ubHkgb24gTWFj
IE9TIDEwLjYgb3IgbGF0ZXIuCisgICAgICAgIAorICAgICAgICBOb3RlIHRoYXQgW05TU3BlbGxD
aGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXSBjb3VsZCBpbnZva2UKKyAgICAgICAgdGhl
IGNhbGxiYWNrIGJsb2NrIG9uIG9uIG9mIHRoZWlyIHdvcmtlciB0aHJlYWQsIHNvIHdlIG5lZWQg
dG8KKyAgICAgICAgcmV0dXJuIHRoZSByZXN1bHQgdG8gdGhlIG1haW4gdGhyZWFkIHdoZXJlIFdl
YkNvcmUgaXMgcnVubmluZy4KKyAgICAgICAgRm9yIHRoYXQgcHVycG9zZSwgd2UgbWFkZSBXZWJF
ZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGNsYXNzLgorICAgICAgICAKKyAgICAgICAgVGVzdDog
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlZC10ZXh0LTAwMS5odG1sCisgICAgICAg
IAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNs
aWVudDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6IEFkZGVkLgorICAgICAg
ICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGluaXRXaXRoU2VuZGVyOldlYkNvcmU6
OnNlcXVlbmNlOnJlc3VsdHM6XSk6IEFkZGVkLgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENo
ZWNrUmVzcG9uZGVyIHBlcmZvcm1dKTogQWRkZWQuCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKTogQWRkZWQuCisgICAgICAgICogV2ViVmlldy9XZWJG
cmFtZVByaXZhdGUuaDoKKworMjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgogCiAgICAgICAgIHNw
ZWxsaW5nIHVuZGVybGluZSBnZXRzIGxvc3Qgb24gYmFja3NwYWNlCmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCBhZDMyNGI5ZmEzOWQ2NTAwNGRjZDE3
NWU3ZjEyZjk2ZjcxODUzZGJjLi5lOTQwOGY3OTY4ZjA1OWM1N2E5NjM4NTNjYjk3Y2ZjZTNkZTdm
MDdlIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCisrKyBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAg
LTEzMiw2ICsxMzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2Vz
KTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQs
IGNvbnN0IFdURjo6U3RyaW5nJik7CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RG
OjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRT
dHJpbmcsIFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVj
dGlvblBhbmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMmJmMzI1OWY0YTIyYWI2ODYxZDY5ZDEz
NjNiNzNjMTNlODE4MjhmNi4uMGY5Y2U4MTljY2NmNDJiNzY2ZjA2ZDljMjUwMmIwNjA5OGY5NDE5
MSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAg
LTYzLDYgKzYzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1TdHJpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU3BlbGxDaGVja2VyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJl
YWRpbmcuaD4KQEAgLTkzMiwzICs5MzMsNzMgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndpbGxT
ZXRJbnB1dE1ldGhvZFN0YXRlKCkKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wpCiB7CiB9CisKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKK0BpbnRlcmZhY2UgV2ViRWRpdG9yU3BlbGxD
aGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0Cit7CisgICAgV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBf
c2VuZGVyOworICAgIGludCBfc2VxdWVuY2U7CisgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9yZXN1
bHRzOworfQorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciopc2Vu
ZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0czsKKy0g
KHZvaWQpcGVyZm9ybTsKKy0gKFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1
bHQ+KSBfY29yZVJlc3VsdHM7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXZWJFZGl0b3JTcGVs
bENoZWNrUmVzcG9uZGVyCistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29yZTo6U3BlbGxDaGVj
a2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0FycmF5KilyZXN1
bHRzCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAg
IHJldHVybiBuaWw7CisgICAgX3NlbmRlciA9IHNlbmRlcjsKKyAgICBfc2VxdWVuY2UgPSBzZXF1
ZW5jZTsKKyAgICBfcmVzdWx0cyA9IHJlc3VsdHM7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpcGVyZm9ybQoreworICAgIF9zZW5kZXItPmRpZENoZWNrKF9zZXF1ZW5jZSwgW3NlbGYg
X2NvcmVSZXN1bHRzXSk7Cit9CisKK3N0YXRpYyBTcGVsbENoZWNraW5nUmVzdWx0IHRvQ29yZVNw
ZWxsaW5nUmVzdWx0KE5TVGV4dENoZWNraW5nUmVzdWx0KiByZXN1bHQpCit7CisgICAgTlNUZXh0
Q2hlY2tpbmdUeXBlIHR5cGUgPSBbcmVzdWx0IHJlc3VsdFR5cGVdOworICAgIE5TUmFuZ2UgcmFu
Z2UgPSBbcmVzdWx0IHJhbmdlXTsKKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSBjb3Jl
VHlwZTsKKyAgICBpZiAodHlwZSAmIE5TVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nKQorICAgICAg
ICBjb3JlVHlwZSA9IERvY3VtZW50TWFya2VyOjpTcGVsbGluZzsKKyAgICBlbHNlIGlmICh0eXBl
ICYgTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcikKKyAgICAgICAgY29yZVR5cGUgPSBEb2N1bWVu
dE1hcmtlcjo6R3JhbW1hcjsKKyAgICBlbHNlCisgICAgICAgIGNvcmVUeXBlID0gRG9jdW1lbnRN
YXJrZXI6OkFsbE1hcmtlcnM7CisKKyAgICByZXR1cm4gU3BlbGxDaGVja2luZ1Jlc3VsdChjb3Jl
VHlwZSwgcmFuZ2UubG9jYXRpb24sIHJhbmdlLmxlbmd0aCk7Cit9CisKKy0gKFdURjo6VmVjdG9y
PFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KV9jb3JlUmVzdWx0cworeworICAgIFdURjo6
VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+IGNvcmVSZXN1bHRzOworICAgIGNv
cmVSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShbX3Jlc3VsdHMuZ2V0KCkgY291bnRdKTsKKyAgICBm
b3IgKE5TVGV4dENoZWNraW5nUmVzdWx0KiByZXN1bHQgaW4gX3Jlc3VsdHMuZ2V0KCkpCisgICAg
ICAgIGNvcmVSZXN1bHRzLmFwcGVuZCh0b0NvcmVTcGVsbGluZ1Jlc3VsdChyZXN1bHQpKTsKKyAg
ICByZXR1cm4gY29yZVJlc3VsdHM7Cit9CisKK0BlbmQKKyNlbmRpZgorCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiBz
ZW5kZXIsIGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworI2lmICFkZWZpbmVk
KEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAg
IE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCgpKTsKKyAgICBOU1J1
bkxvb3AqIGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF07CisgICAgW1tO
U1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJlcXVlc3RDaGVja2luZ09mU3RyaW5n
OnRleHQgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tpbmdBbGxTeXN0ZW1UeXBlcyBvcHRp
b25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcjpeKE5TSW50ZWdlciwgTlNBcnJheSog
cmVzdWx0cywgTlNPcnRob2dyYXBoeSosIE5TSW50ZWdlcikgeworICAgICAgICAgICAgW2N1cnJl
bnRMb29wIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybSkgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OltbW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25k
ZXIgYWxsb2NdIGluaXRXaXRoU2VuZGVyOnNlbmRlciBzZXF1ZW5jZTpzZXF1ZW5jZSByZXN1bHRz
OnJlc3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
cmd1bWVudDpuaWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNEZWZh
dWx0UnVuTG9vcE1vZGVdXTsKKyAgICAgICAgfV07CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZVByaXZhdGUuaAppbmRleCBiMGNiMGYzM2Y4YzllZWUxNWJhNGMyMTMyZTdkMDhkMzM2
ZmZiYzFmLi5jMzU2ZDJmMDg1MmNhZTFjMDU5M2JkYzI5ODJmNmM4Mzg0NTM5M2RiIDEwMDY0NAot
LS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysrIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCkBAIC0xNDEsNSArMTQxLDQgQEAgdHlwZWRlZiBl
bnVtIHsKIAogLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGlzIGEgc3BlbGxpbmcgbWFya2VyIGlu
IHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgdGhlIGZvY3VzZWQgbm9kZS4KIC0gKEJPT0wpaGFzU3Bl
bGxpbmdNYXJrZXI6KGludClsb2NhdGlvbiBsZW5ndGg6KGludClsZW5ndGg7Ci0KIEBlbmQKZGlm
ZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBjZDll
ZDhmMDBjOThmMWY5MjllNmY5ZGI3OWI5YzcwYTg0N2MzNDhkLi5mZjY5OTI1OWY3YjJkNzNmODBk
ODU2ZDI5OWFiOWM5Y2NjOWY3NjJkIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xMDAsNiArMTAwLDcgQEAKICNkZWZpbmUgV2ViS2l0UGFn
aW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFBhZ2luYXRlRHVy
aW5nTGF5b3V0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RE5TUHJlZmV0Y2hpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
RnVsbFNjcmVlbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RnVsbFNjcmVlbkVuYWJsZWQi
CisjZGVmaW5lIFdlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIgogI2RlZmluZSBX
ZWJLaXRNZW1vcnlJbmZvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZW1vcnlJbmZvRW5h
YmxlZCIKICNkZWZpbmUgV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eSBAIldlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCmluZGV4IGNjZmI2MzJjODE2NmI3MDg5MDE3OGQzYzljYjgxMmZjZjkzZmIz
YzcuLjc1MGIxMGY4NzAxZmNlOWNjZDg4OWZhM2IyMDY4ODdhMTdhZmIzZDcgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTM2OCw2ICszNjgsNyBAQCBzdGF0aWMgV2ViQ2Fj
aGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1bmRsZSh2b2lkKQogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZFByZWZl
cmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0
RE5TUHJlZmV0Y2hpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVuY2VLZXks
CisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdE1lbW9yeUluZm9FbmFibGVkUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRIeXBlcmxp
bmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVy
V2l0aEJvb2w6Tk9dLCAgIFdlYktpdFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzS2V5LApAQCAtMTQw
NCw2ICsxNDA1LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsK
ICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRGdWxsU2NyZWVuRW5hYmxl
ZFByZWZlcmVuY2VLZXldOwogfQogCistICh2b2lkKXNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9y
S2V5OldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07
Cit9CisKKy0gKEJPT0wpYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQKK3sKKyAgICBy
ZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiArICh2b2lkKXNldFdlYktpdExpbmtUaW1l
VmVyc2lvbjooaW50KXZlcnNpb24KIHsKICAgICBzZXRXZWJLaXRMaW5rVGltZVZlcnNpb24odmVy
c2lvbik7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXgg
NDdlNmQ3MTJkMjNiZDE2Y2Y4MzUzYmNmNTAwNGI3ZjQ3ZDk4M2I1ZC4uOGM5ZGQ1MzU2NzNkNjU0
NDg2ZGZjNTE2YmRmMjI4N2YzYTg4MzNjYyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaApAQCAtMjIzLDYgKzIyMyw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2Vi
UHJlZmVyZW5jZXNSZW1vdmVkTm90aWZpY2F0aW9uOwogLSAodm9pZClzZXRGdWxsU2NyZWVuRW5h
YmxlZDooQk9PTClmbGFnOwogLSAoQk9PTClmdWxsU2NyZWVuRW5hYmxlZDsKIAorLSAodm9pZClz
ZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnOworLSAoQk9PTClh
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDsKKwogLSAodm9pZClzZXRVc2VQcmVIVE1M
NVBhcnNlclF1aXJrczooQk9PTClmbGFnOwogLSAoQk9PTCl1c2VQcmVIVE1MNVBhcnNlclF1aXJr
czsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3NDU2ODk4YWJmOThhODJlODlhN2ZlNDNhNzk0
ODM5MTY0YTZjYzQ0Li4xNzE5MGYxZjJiODY3MGMwMWIyNDljYTNjYTgwZDFlNmI5ZmQxYWY0IDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTUwMCw2ICsxNTAwLDEwIEBAIHN0YXRpYyBib29sIGZh
c3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
ICAgIHNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChbcHJlZmVyZW5jZXMgZnVsbFNjcmVl
bkVuYWJsZWRdKTsKICNlbmRpZgorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAgIC8vIEFzeW5jaHJvbm91cyBzcGVsbCBj
aGVja2luZyBBUEkgaXMgYXZhaWxhYmxlIGZvciAxMC42IG9yIGxhdGVyLgorICAgIHNldHRpbmdz
LT5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgYXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdKTsKKyNlbmRpZgogICAgIHNldHRpbmdzLT5zZXRN
ZW1vcnlJbmZvRW5hYmxlZChbcHJlZmVyZW5jZXMgbWVtb3J5SW5mb0VuYWJsZWRdKTsKICAgICBz
ZXR0aW5ncy0+c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBoeXBlcmxp
bmtBdWRpdGluZ0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0VXNlUHJlSFRNTDVQYXJzZXJR
dWlya3MoW3NlbGYgX25lZWRzUHJlSFRNTDVQYXJzZXJRdWlya3NdKTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDM4OWY4NjQ2Yzc3
ZGVhZmFkNTBiMjEwNTQ2ZmY2ZTE0Y2QxYjFkZjIuLjJhNzU4OTBkY2YwY2M3ODg1ZGZjNGZjN2Ji
ODA5YWE3ZWZkN2FkYjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2Vi
S2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGll
bnRRdDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTI3ICBKb2NlbHluIFR1
cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5oCmluZGV4IDdkOTlkMjIyZDgzNmYxMDdmNmEwM2U2N2E4MjUzMTVhYzU1
YWUzYmYuLmJmNTQzMzRjYWM2MGIwY2QwMzVjOWRiOTNlOGRiOTRmYmYwZDMwNzYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMDcsNiArMTA3LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3Bl
bGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7fQogCiAgICAgYm9vbCBpc0VkaXRpbmco
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2lu
L0NoYW5nZUxvZwppbmRleCAzNTM5M2JhY2Y3ODNmZWY1NWZhMDE1NDdjNDM0YmI0NTI4NWY4Mjg1
Li4xMDZlNTEzNDlmNmFmZTIwZDA1MmUxOTljNTY5NTAzYzMzN2ZjZDhiIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hl
Y2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxl
bWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisK
IDIwMTAtMTAtMjYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmgKaW5kZXggOGJlNmRlOTBjMjFmNGUxOWVmYzJmZmZiM2E3YWRlNGNmZDQ4
ZWUzMy4uZGM5NmFiNDg5NjYxMmRmYjBmNDM0YmUwNTM4ZWMyNWNmMjRjMWM2YyAxMDA2NDQKLS0t
IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMTEsNiArMTExLDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2Vi
VmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luY2Uv
Q2hhbmdlTG9nCmluZGV4IGE3NzIzYWRjNjcwMDRkNWVkZmRhNTA2YTg3ODljODdkZjU5ZmVkY2Uu
LjM1ZjYyMjhlZDg3ZTQ3NmJhY2M0Mjg1MmMwMjhmZTJhM2Y3MTViYzYgMTAwNjQ0Ci0tLSBhL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxs
Y2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGlt
cGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdp
bkNFLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcpOgorCiAyMDEwLTEwLTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggYmU4NWIzZmE0MzM0
NTFkYjQ2NTlkZDQ1YzI0YzM5NWFhYTYzOTJiMC4uZDE2NGRlY2E5MWMwZjM0ODIzOWExNDA2YmQ0
Nzg2YWM4OGIwNjBmNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmgKQEAgLTEwMCw2ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8V1RG
OjpTdHJpbmc+Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1fd2Vi
VmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hhbmdl
TG9nCmluZGV4IDEzNDc0NmE3NzY4YjRjNzlhMDAzYTFlMGZmZmQyNThlM2JiZGNkMDEuLmIzOGMz
ZWE4YzY4MDljOTAzZjIwODEzNDM2YzlkZDZmYTk0OWM1MTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBu
b3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlv
bi4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaDoKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvckNsaWVudFd4OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIw
MTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaCBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRv
ckNsaWVudFd4LmgKaW5kZXggYmU1Yzk4YWYyOTdkZTEwZTJmNmU1NjY4NWYyZWY2MDY2ZTlkMmZl
Zi4uYTI2MmFkNTkxNDIyZjI0ZTY2OWVlMWE3Y2E1Y2U2ODRkMjRmMjkxYiAxMDA2NDQKLS0tIGEv
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAorKysgYi9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCkBAIC0xMTIsNiArMTEyLDcgQEAgcHVibGlj
OgogICAgIAogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFBhZ2UqIG1fcGFn
ZTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNThkYTA0NDg2ZTRkNzJkN2U3ZDAwMmY1YWQ5YjZkYTc3YzY3NTYxYy4uYjEzZjZiOWEzNDYz
NzM4OTU3Y2JmNjZhNWVlZDk2ZmNiYTljNTNkMSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0xMC0yOCAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBh
c3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisK
IDIwMTAtMTAtMjcgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBCdWls
ZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCmluZGV4IGNkZTliZThiZWUwOGNlYzRjN2VlZmI1ZjMxN2ZjNzkyOTA5
NmRjNmYuLjVhZDZjYWU0OTkxM2Q3YmJkN2NjZjdlMzA0MzQyNGJlYzdlZTI1ODUgMTAwNjQ0Ci0t
LSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCkBAIC00MDMsNCArNDAzLDkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBXVEY6OlN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNGIxZjk5Yzc3ZjIwZjg0YWY4ZGExMjRl
ZTAyNWUxYjQwNTg5YzJhMS4uYTg5Njc3NGY2OTIyMWEyNDEzYjViOTFiMmQzZWIxOWQ1MzMzYzNi
ZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaApAQCAtMTMzLDYgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2Vz
KTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQs
IGNvbnN0IFdURjo6U3RyaW5nJik7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVj
dGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlz
c0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggMmYwMjg5
OTY0MWQwNjRiMjViZjJhYTllMTdiYmRhM2IzMjEwZTdkOS4uZTYyNWU2MDIyMTA1MjcyMGMwNjU5
NzYwNTc5ZDFlNzZhMjMyZDZmNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEwLTEwLTI4ICBN
T1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFz
dGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMDkyCisKKyAgICAgICAgQWRkZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKKyAgICAgICAgdG8gY29udHJvbCB0aGUgc2V0dGlu
Zy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkQ2FsbGJhY2spOgor
ICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW06CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisKIDIwMTAt
MTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggODM2NTViZGQ2NTA2MmU5NTAyYzczMmU4MTNiMTVk
ZTMxZTI5MjZjYi4uZGZiY2RlYzkzZGJhODkyZmM2ZTkyM2JiMTQ2ZDAwNmJlNjUwMjFkZSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcApAQCAtMTQ4MCw2ICsxNDgwLDE2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFN0b3BQcm92
aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPCiAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1
ZVJlZiBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIExheW91dFRl
c3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xs
ZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4
dCwgYXJndW1lbnRzWzBdKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBzaG93V2ViSW5zcGVjdG9yQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlz
T2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNb
XSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBj
b250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdl
dFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMTk5NSw2ICsyMDA1LDcgQEAgSlNTdGF0aWNGdW5j
dGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsg
InNldFdpbmRvd0lzS2V5Iiwgc2V0V2luZG93SXNLZXlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIiwgc2V0SmF2YVNjcmlwdENhbkFj
Y2Vzc0NsaXBib2FyZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFhTU0F1ZGl0b3JF
bmFibGVkIiwgc2V0WFNTQXVkaXRvckVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7
ICJzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCIsIHNldEFzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2hvd1dlYklu
c3BlY3RvciIsIHNob3dXZWJJbnNwZWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0
ZXN0T25zY3JlZW4iLCB0ZXN0T25zY3JlZW5DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0
ZXN0UmVwYWludCIsIHRlc3RSZXBhaW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDI3NTE4Yjcw
ODA4ODY4ZGU0Y2E3MjYxMzRjNDYyYTllMDk3NGZlZTAuLjQ5ZDhjMDRjNDJlYWQ3N2U1ZGFiYjcx
OGE5MjJhMWYxZGNmZGI1ZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjcwLDYgKzI3MCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGdlb2xvY2F0aW9uUGVybWlzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25Q
ZXJtaXNzaW9uOyB9CiAKICAgICB2b2lkIHNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7
CisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKTsKICAg
ICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7
CiAgICAgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAxYTYxODdlYjRlZmQ2ZDU4ZTU3NTU1OGNjMTgwOTgx
NzBiNDY4NDdkLi40YzJhMzc5M2I4OGE2ODNkYjRkYTcyNTgxODllYWVmZWM2Nzg2Y2NlIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNjQsNiArMTY0LDcgQEAgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1l
dGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0IiwgJkxheW91dFRl
c3RDb250cm9sbGVyOjpzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QpOwog
ICAgIGJpbmRNZXRob2QoInNldFdpbmRvd0lzS2V5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRXaW5kb3dJc0tleSk7CiAgICAgYmluZE1ldGhvZCgic2V0WFNTQXVkaXRvckVuYWJsZWQiLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKTsKKyAgICBiaW5kTWV0
aG9kKCJzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOwogICAgIGJpbmRN
ZXRob2QoInNob3dXZWJJbnNwZWN0b3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJ
bnNwZWN0b3IpOwogICAgIGJpbmRNZXRob2QoInNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNs
aWNrIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25D
bGljayk7CiAgICAgYmluZE1ldGhvZCgic3VzcGVuZEFuaW1hdGlvbnMiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKTsKQEAgLTYxNyw2ICs2MTgsMTEgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWx3YXlzQWNjZXB0Q29va2llcyhjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW4KICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopCit7CisgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0aGlzLgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVj
dG9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBt
X3NoZWxsLT5zaG93RGV2VG9vbHMoKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDA0ZDk3ZWJl
MWMyN2FjYTU1MjRiMjkxNmJiNWY2YjA0MDJhNTJiYzMuLmYyZTUwOGJlNTZjN2Q2NjBlMzY1NWVm
MGU0OWY2ZTZiNWFjZmExNzQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtNzM1LDYgKzczNSwx
MSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVk
KGJvb2wgZW5hYmxlZCkKICAgICBnX29iamVjdF9zZXQod2ViU2V0dGluZ3MsICJlbmFibGUtZGV2
ZWxvcGVyLWV4dHJhcyIsIGVuYWJsZWQsIE5VTEwpOwogfQogCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHdl
YmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggZWZkZjU0YTJhOTEx
MjI2YTdkODQwOWY1NmE0NWE5ODNmYmRiMzY5Ny4uNzAzMWFiZjEzYmRkNTdjODUzNzQ5ZTNlMjBk
Y2RhOTg5ODQwMjU3NiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQpAQCAtNDYwLDYgKzQ2MCw3IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVm
YXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNlcyBzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRXZWJHTEVuYWJs
ZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrczpOT107
CisgICAgW3ByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOk5P
XTsKIAogICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0g
c2V0Q29va2llQWNjZXB0UG9saWN5Ok5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFp
bkRvY3VtZW50RG9tYWluXTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IGM1ZDVhOTA2OTU5OWJh
NGJjZmMyYWNhMzExYzdhM2E3NjVhYjVlMWQuLjVkZmUzMDg1Yjk2NTFjODAxOTk2MTJiYmFmYmI5
OGZjYjdkNWQ2ZGMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTcwOCw2ICs3MDgsMTEgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGVu
YWJsZWQpCiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZlcmVuY2VzXSBzZXREZXZlbG9w
ZXJFeHRyYXNFbmFibGVkOmVuYWJsZWRdOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7Cisg
ICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZlcmVuY2VzXSBzZXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZDplbmFibGVkXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIGluc3Bl
Y3Rvcl0gc2hvdzpuaWxdOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCBiMmMzODA3ZDA2ZmU1YTZjOGVi
MzEzNGFiZDhiYjAzY2JmYjFiNWJjLi4yOWY3NGEyZmJiYjNmYzZmNTc0OTgyZWJhNDY3NDkxODM5
MzhiNTVlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtMzgwLDYgKzM4MCwxMSBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wgZW5hYmxlZCkK
ICAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRp
bmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCBlbmFibGVkKTsKIH0KIAordm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkK
K3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAgIG1fZHJ0LT53ZWJQYWdlKCktPnNl
dHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkRldmVsb3BlckV4dHJhc0VuYWJs
ZWQsIHRydWUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggOWU4ZWQxZTY5NTdkN2Y3Y2E0ZmVh
ZDkxZDg3YjliNTZmYjQyMTQ1OS4uZDM2NjI1ZTU1YWQ2OGQwMjEzZmQyMTcwNzk2MTBmMjM3YjMy
YjM3OSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
TGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMTYyLDYgKzExNjIsMTEgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGVuYWJs
ZWQpCiAgICAgcHJlZnNQcml2YXRlLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGVuYWJsZWQp
OwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChib29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30K
Kwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAg
Q09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCBlZWZjNTg3ODFl
MGExZWFiY2QwZmQ4MTM4OTMyY2M0M2M0ZDc4NDdmLi5jOWY0M2YzOTU5NDczMjc1ZjY2YjFmN2I4
ODc5NzE5MmIzMGU2NDkyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAtNTI5LDMgKzUyOSw3IEBAIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGFnZVNpemVBbmRN
YXJnaW5zSW5QaXhlbHMoaW50IHBhCiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72170</attachid>
            <date>2010-10-28 04:47:27 -0700</date>
            <delta_ts>2010-10-28 06:00:08 -0700</delta_ts>
            <desc>trying to make efl bot happy</desc>
            <filename>bug-40092-20101028204725.patch</filename>
            <type>text/plain</type>
            <size>78055</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlODA1NzUyNTY2NTIyYjNlMzg2ZDM3MjgxZTU3YjdhYWEzM2E4ZTU1Li5hM2E2OTVk
NWQwMTZmZWY3N2U5M2YxODM3MTdkYzA0MWNmNWFiMzA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0yNyAgQW5keSBFc3RlcyAgPGFl
c3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hl
Y2stcGFzdGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9z
cGVsbGNoZWNrLXBhc3RlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxM2QyYjA5NDZjMTFjMzYzMDA5YmU4ZDM3
ODE1ZmFjMTcxNTdhMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzCkBAIC0wLDAgKzEsOTggQEAK
KworZGVzY3JpcHRpb24oJ0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQg
dGV4dC4nKTsKKworbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCit2YXIg
dGVzdFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHku
aW5zZXJ0QmVmb3JlKHRlc3RSb290LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCit2YXIg
dGVzdFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3Rlc3RS
b290LmFwcGVuZENoaWxkKHRlc3RUZXh0QXJlYSk7CisKK3ZhciB0ZXN0SW5wdXQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwordGVzdElucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIs
ICJ0ZXh0Iik7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0SW5wdXQpOworCit2YXIgdGVzdEVk
aXRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0RWRpdGFibGUuc2V0
QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1ZSIpOwordGVzdFJvb3QuYXBwZW5kQ2hp
bGQodGVzdEVkaXRhYmxlKTsKKwordmFyIHRlc3RTb3VyY2VQbGFpbiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwordGVzdFNvdXJjZVBsYWluLmlubmVySFRNTCA9ICJmb28gYmFyIjsK
K3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RTb3VyY2VQbGFpbik7CisKK3ZhciB0ZXN0U291cmNl
RGVjb3JhdGVkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlRGVj
b3JhdGVkLmlubmVySFRNTCA9ICJmbzxiPm8gYmE8L2I+ciI7Cit0ZXN0Um9vdC5hcHBlbmRDaGls
ZCh0ZXN0U291cmNlRGVjb3JhdGVkKTsKKwordmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKKwordmFyIHRlc3RzID0gW107CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIHZhciBuZXh0
ID0gdGVzdHMuc2hpZnQoKTsKKyAgICBpZiAobmV4dCkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5z
ZXRUaW1lb3V0KG5leHQsIDApOworICAgIHRlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB2
ZXJpZnlNYXJrZXIobm9kZSwgZXhwZWN0ZWRNYXJrZWQpCit7CisgICAgaWYgKG5vZGUgaW5zdGFu
Y2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IG5vZGUgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVt
ZW50KSB7CisgICAgICAgIG5vZGUuZm9jdXMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZWwu
c2VsZWN0QWxsQ2hpbGRyZW4obm9kZSk7CisgICAgfQorICAgIHJldHVybiBsYXlvdXRUZXN0Q29u
dHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcihleHBlY3RlZE1hcmtlZFswXSwgZXhwZWN0ZWRNYXJr
ZWRbMV0pOworfQorCitmdW5jdGlvbiBwYXN0ZUFuZFZlcmlmeShzb3VyY2UsIGRlc3QsIGV4cGVj
dGVkTWFya2VkKQoreworICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihzb3VyY2UpOworICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7CisgICAgaWYgKGRlc3QgaW5zdGFuY2VvZiBIVE1M
SW5wdXRFbGVtZW50IHx8IGRlc3QgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7Cisg
ICAgICAgIGRlc3QudmFsdWUgPSAiIjsKKyAgICAgICAgZGVzdC5mb2N1cygpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGRlc3QuaW5uZXJIVE1MID0gIiI7CisgICAgICAgIHNlbC5zZWxlY3RBbGxD
aGlsZHJlbihkZXN0KTsKKyAgICB9CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7
CisKKyAgICB2YXIgbnJldHJ5ID0gMTA7CisgICAgdmFyIG5zbGVlcCA9IDE7CisgICAgZnVuY3Rp
b24gdHJpYWwoKSB7IAorICAgICAgICB2YXIgdmVyaWZpZWQgPSB2ZXJpZnlNYXJrZXIoZGVzdCwg
ZXhwZWN0ZWRNYXJrZWQpOworICAgICAgICBpZiAodmVyaWZpZWQpIHsKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoZGVzdC50YWdOYW1lICsgIiBoYXMgYSBtYXJrZXIgb24gJyIgKyBzb3VyY2UuaW5u
ZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIG5yZXRyeS0tOworICAgICAgICBpZiAoMCA9PSBucmV0cnkp
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoZGVzdC50YWdOYW1lICsgIiBzaG91bGQgaGF2ZSBh
IG1hcmtlciBvbiBmb3IgJyIgKyBzb3VyY2UuaW5uZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAg
IGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgbnNsZWVwICo9IDI7CisgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHRyaWFsLCBuc2xlZXAp
OworICAgIH07CisgICAgdHJpYWwoKTsKK307CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQodHJ1ZSk7CisKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVy
aWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdElucHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2go
ZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RJbnB1
dCwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0
ZXN0U291cmNlUGxhaW4sIHRlc3RUZXh0QXJlYSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1
bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0VGV4dEFy
ZWEsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnko
dGVzdFNvdXJjZVBsYWluLCB0ZXN0RWRpdGFibGUsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChm
dW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdEVkaXRh
YmxlLCBbMCwgMl0pOyB9KTsgLy8gVG8gY2hlY2sgImZvIiBwYXJ0IG9mIGZvby4KK2RvbmUoKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZTNhODczMGI1MmYyNGVjNDQ1YmJlZWE0MjM1ZjRmZDU4OGExYmI2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitGb3IgQnVnIDQwMDkyOiBTcGVsbCBjaGVj
a2luZyBmb3IgcGFzdGVkIHRleHQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSU5Q
VVQgaGFzIGEgbWFya2VyIG9uICdmb28gYmFyJworUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24g
J2ZvPGI+byBiYTwvYj5yJworUEFTUyBURVhUQVJFQSBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXIn
CitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCitQQVNTIERJ
ViBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ2Zv
PGI+byBiYTwvYj5yJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYWJhMGMzNDU3MzQ1MzMzMDg1YzhkZTBk
MWI4ZGVjMTFjMjA5OGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXNlbGVj
dGlvbi1zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CmluZGV4IGVjNjRhZGYwNGU2YjcxZGRlMWM3YTRlYjhjNjExZDg1Y2VhYjdj
MWIuLjhhYmFhMzk0OTc2MjY5YzRmNDViNGZhZjYzMzJkNzIyMjc5NjYwYmEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAg
LTI3MDIsNiArMjcwMiw5IEBAIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2Jv
cmRlclJhZGl1c0RvdWJsZTA3Lmh0bWwgPSBJTUFHRQogQlVHV0s0MTMxMSBXSU4gTElOVVggOiBm
YXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDguaHRtbCA9IElNQUdFCiBCVUdXSzQxMzEx
IFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUwOS5odG1sID0gSU1B
R0UKIAorLy8gTmVlZCB0byBpbXBsZW1lbnQgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZygpCitCVUdXSzQxNDIzIDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
Lmh0bWwgPSBUSU1FT1VUCisKIC8vIEZsYWt5IHRlc3RzLgogQlVHNDQzNDUgTElOVVggOiBzdmcv
em9vbS90ZXh0L3pvb20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKIEJVRzQ0MzQ2
IExJTlVYIDogc3ZnL3pvb20vcGFnZS96b29tLWhpeGllLW1peGVkLTAwOS54bWwgPSBJTUFHRSBQ
QVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDYyYzI5NWNlMDcyZjMyYTk0OGZkMzVi
OWNiZTM3ODkzMzEwOTczNDkuLjAzZmQzNDY5OWNhZDM2NmRiMTQzNzVlZGJjZjVlMjRjM2I1OWEw
OTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC05ODEsNiArOTgxLDcgQEAgZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tz
cGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbGluZWJy
ZWFrLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCiBlZGl0aW5n
L3N0eWxlLzUwNjU5MTAuaHRtbAogZWRpdGluZy9zdHlsZS9hcHBsZS1zdHlsZS1lZGl0YWJsZS1t
aXguaHRtbAogZWRpdGluZy9zdHlsZS9ibG9jay1zdHlsZS0wMDEuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKaW5kZXggM2Q3NmViMjA3ZjRmMDM4OTNlODlhYWRl
Mjc2ZWFjOWRiMjUxNWQ3My4uMjNkYzc2YmIzZmY3ODdiOTJiZmQyNjU3MDFiZGJmMWJjNjdhOTcx
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCkBAIC04NSw2ICs4
NSw5IEBAIGZhc3QvdGV4dC9oeXBoZW5hdGUtbG9jYWxlLmh0bWwKICMgU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNTI3MQogaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1zZWVrYWJsZS1zdGFsbC5odG1sCiAKKyMgQXZhaWxhYmxlIDEwLjYgb3IgbGF0ZXIKK2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJsZSB0ZXN0cyB3aGlj
aCBzdGFydGVkIGZhaWxpbmcgYWZ0ZXIgcjY2OTYxCiAjIEZhaWx1cmVzIGxvb2sgbGlrZSBhbiB1
bmRlcmx5aW5nIHBsYXRmb3JtIGlzc3VlCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTU0NgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRp
Z2VyL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAppbmRl
eCBhMDk3MTNmZmU5MTkxZTQwZjhlNzI4ZDdkM2I5YWMwNGZkNzQ1MjYwLi5mNzBhY2NhMmQ1ZDBi
ZGFjMTUxMDZlM2U0YmYyZDE1YTkzYjcxZDkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGln
ZXIvU2tpcHBlZApAQCAtMjA0LDYgKzIwNCw5IEBAIGZhc3QvaGFybmVzcy9zaG93LW1vZGFsLWRp
YWxvZy5odG1sCiAjIExvYWRpbmcgZmFpbHMgb24gVGlnZXIgd2l0aCBlcnJvciAtMTAxMiBhZnRl
ciBhc2tpbmcgTlNVUkxDb25uZWN0aW9uIHRvIGNvbnRpbnVlIHdpdGhvdXQgY3JlZGVudGlhbHMu
CiBodHRwL3Rlc3RzL21pc2MvNDAxLWFsdGVybmF0aXZlLWNvbnRlbnQucGhwCiAKKyMgQXZhaWxh
YmxlIG9ubHkgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
Lmh0bWwKKwogIyBEaXNhYmxlIHNwZWxsaW5nIHRlc3RzIGZvciBhdXRvY29ycmVjdGlvbiBwYW5l
bAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tZGVsZXRlLmh0
bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLXJlbW92aW5n
LXVuZGVybGluZS1hZnRlci1wYXN0ZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBw
ZWQKaW5kZXggNzIxNmUxODVlYWIwYjQ1ODQ4ZTVhMjJiOGE0N2Y3ZTgyNzE0Y2ZjYy4uMWU4MjJi
M2ZhMzExZGIzYTZiNzZmYzAwNTQ3MDQxOWY2YTE1ZWU1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvU2tpcHBlZApAQCAtMTY1LDYgKzE2NSw3IEBAIGVkaXRpbmcvc2VsZWN0aW9uL3RyaXBs
ZS1jbGljay1pbi1wcmUuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vdXNlci1kcmFnLWVsZW1lbnQt
YW5kLXVzZXItc2VsZWN0LW5vbmUuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vd29yZC1ncmFudWxh
cml0eS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQtbWVudS1zdWdnZXN0aW9ucy5odG1s
CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAogZWRpdGluZy91bmRvL3Vu
ZG8tZGVsZXRlV29yZC5odG1sCiBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtcmV2ZXJz
ZWQtc2VsZWN0aW9uLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS13b3JkLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDRhYjE5YjFkZWZkMjBjZThiY2NmNzFmNmE2
NDQ1MGM4NDFhZDJkYTEuLmJiMmQzN2M5ODAyYjgyYjdmYzVlYzRlNjEzZjZiZmRjZjI5ZDIwOTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjI0NSw2ICsyMjQ1LDkgQEAgZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTQzNQogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3Bh
Y2UtYmV0d2Vlbi1saW5lcy5odG1sCiAKKyMgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZygpIGlzIG5vdCBpbXBsZW1lbnRlZAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LXBhc3RlLmh0bWwKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjIGZhaWxpbmcgZWRpdGlu
Zy9zdHlsZSB0ZXN0cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCmluZGV4IDI2ODVjOWYxMzEyNTExYjgxNTVlOGQ0MGJmMTA3MDQ4YmYzMTE2YzIuLmNj
NjA1MTM3ODI5NWUwYmE1NGFhYzA3ODU1M2UwN2MzZGE1OGNmYTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCkBAIC05MjAsNiArOTIwLDkgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1i
YWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWNv
bnRlbnRlZGl0YWJsZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXRleHRhcmVhLmh0
bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgaXMgbm90IGlt
cGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjIElu
ZGV4ZWREQiBpcyBub3QgeWV0IGVuYWJsZWQuCiBzdG9yYWdlL2luZGV4ZWRkYgogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA1OGIwNzIwODRmZGQ3ODRlNjc1MTgyMWZmMTE5OGQ3NTlkNjgxMzgwLi5jYTlkZTJjYjI3N2Zl
Njg1MjE0ZjVlNmEzODc1YjhjNDQzNDYxZThkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTkyMSw2ICs5MjEsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcAog
ICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9TbWFy
dFJlcGxhY2UuY3BwCisgICAgZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCiAgICAgZWRpdGluZy9T
cGxpdEVsZW1lbnRDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmNw
cApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBmNmNhZTIwOTZkZjhhYWQyYmZiZjQ1NWYxZGE2YzY5MjYyNmFkMzEyLi4yNmM3ZmMwMzgwOGU2
NzIwNTgzNGUyMWI1YTA0MWRhMDYyYTZkYjhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEwLTEwLTI4ICBN
T1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFz
dGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMDkyCisKKyAgICAgICAgLSBJbnRyb2R1Y2VkIFNwZWxsQ2hlY2tlciBjbGFzcyB0byBlbmNh
cHN1bGF0ZSBhc3luY2hyb25vdXMgc3BlbGwKKyAgICAgICAgICBjaGVja2VyIHN0YXRlOiBzZXF1
ZW5jZSBpZCwgcmVxdWVzdGluZyB0ZXh0IGFuZCB0YXJnZXQgbm9kZS4KKyAgICAgICAgICBUaGlz
IGlzIGFsc28gdGhlIGZpcnN0IHN0ZXAgdG8gZGVjb21wb3NlIHNwZWxsLWNoZWNrIHJlbGF0ZWQK
KyAgICAgICAgICBjb2RlIHRvIGEgc2VwYXJhdGUgY2xhc3MuCisgICAgICAgIC0gQWRkZWQgRWRp
dG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgCisgICAgICAg
ICAgdG8gdXNlIGFzeW5jIHNwZWxsY2hlY2sgQVBJIG9uIHRoZSBwbGF0Zm9ybS4KKyAgICAgICAg
ICBUaGVzZSBBUElzIGFyZSB0b3VjaGVkIGJ5IFNwZWxsQ2hlY2tlci4KKyAgICAgICAgLSBVc2Vk
IFNwZWxsQ2hlY2tlciB0byBjaGVjayBhIHBhc3RlZCB0ZXN0LiBUZXh0IHRvIGNoZWNrIGlzCisg
ICAgICAgICAgY29sbGVjdGVkIGZyb20gdGhlIHN1YnRyZWUgdW5kZXIgdGhlIGVkaXRpbmdSb290
LgorICAgICAgICAtIEFkZGVkIFNldHRpbmc6Om1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQgdG8gY29udHJvbAorICAgICAgICAgIGFzeW5jIHNwZWxsIGNoZWNraW5nLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2Vi
Q29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyOjpzaG93TWFya2Vycyk6CisgICAgICAgIChzaG93RG9jdW1lbnRNYXJr
ZXJzKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg6CisgICAgICAg
ICogZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb25J
dGVyYXRvcjo6c2V0T2Zmc2V0SW5MZWFmTm9kZSk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjpFZGl0b3IpOgorICAgICAgICAoV2ViQ29yZTo6ZmluZEZpcnN0TWFya2FibGUp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFy
a2VyRm9yKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpzcGVsbENoZWNrZXIpOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppbml0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmNsZWFyUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OmlzQXN5bmNocm9ub3VzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OmNhbkNoZWNrQXN5bmNocm9ub3VzbHkpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjppc0J1c3kpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc1ZhbGlk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNDaGVja2FibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IpOgorICAgICAgICAo
V2ViQ29yZTo6Zm9yd2FyZEl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tl
cjo6ZGlkQ2hlY2spOgorICAgICAgICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6U3BlbGxDaGVja2luZ1Jlc3Vs
dCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0Ojp0eXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OmxvY2F0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6Omxlbmd0aCk6CisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBwYWdlL0VkaXRvckNsaWVudC5oOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNl
dHRpbmdzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U2V0dGluZ3M6OmFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKwog
MjAxMC0xMC0yNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0g
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDlkZWFjZjQ4M2U4MTVjYTA4MmM1NWYxMDgx
NTZmMjU1ZDE0NTM4OWYuLjAxYzZjOWQ4NDQ1MzJmOTYyYmQxNWQ1YjA3MjFiNzNiZGFiNmQxMDgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtMTM0NSw2ICsxMzQ1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVw
bGFjZS5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2ViQ29y
ZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlXZWJD
b3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3Bs
aXRUZXh0Tm9kZUNvbW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDEzYmE5MmQwNWM4NTBlMmRlMTE0NmE4
YTg1ZDBiMmQzZDg1MTQxMTguLjE2NDEwYTY5NzBjZTNiN2RiMTM4ODUwYTE1ZGFhYmQxZjMwYTdl
NjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtNDg4LDYgKzQ4OCw3IEBAIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmRDMUVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jCiBf
X1pON1dlYkNvcmUyM2NyZWF0ZUZyYWdtZW50RnJvbU5vZGVzRVBOU184RG9jdW1lbnRFUktOM1dU
RjZWZWN0b3JJUE5TXzROb2RlRUxtMEVFRQogX19aTjdXZWJDb3JlMjNvdmVycmlkZURlZmF1bHRM
YW5ndWFnZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0
V3JpdGVyMTd3cml0ZVByb3BlcnR5TGlzdEV2CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2Vy
Q29udHJvbGxlcjE0bWFya2Vyc0Zvck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEw
TWFya2VyVHlwZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJr
ZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJv
bGxlcjIzcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2Vy
VHlwZUUKQEAgLTg4OCw2ICs4ODksNyBAQCBfX1pON1dlYkNvcmU5Zm9udENhY2hlRXYKIF9fWk43
V2ViQ29yZTltYWtlUmFuZ2VFUktOU18xNVZpc2libGVQb3NpdGlvbkVTMl8KIF9fWk43V2ViQ29y
ZTlwYWdlQ2FjaGVFdgogX19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQorX19a
TjdXZWJDb3JlMTJTcGVsbENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9ySU5TXzE5U3Bl
bGxDaGVja2luZ1Jlc3VsdEVMbTBFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEy
Z2xvYmFsT2JqZWN0RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKIF9fWk5L
N1dlYkNvcmUxMEZsb2F0UG9pbnRjdjhfTlNQb2ludEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGM3ZGNmMTgyZTY0N2U2Mzg5
ODRiN2UxNzhiZjU2ODVhYTVmMzU5YTMuLmY5YTdjODRjZjNkODMxYTA0NWU2ZDI5YTJkMmZhYjE0
NjNmNzA2MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0xNDI3LDYgKzE0MjcsOCBAQAogICAgICAgICAgICAgJ2VkaXRpbmcv
U21hcnRSZXBsYWNlLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlQ0YuY3Bw
JywKICAgICAgICAgICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAnLAorICAgICAgICAg
ICAgJ2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVs
bENoZWNrZXIuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNw
cCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgnLAogICAgICAg
ICAgICAgJ2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGQ2MTgxMWJiMTFk
NDJiNzVhNmJhZTNlMzc5MzdjOThlMDk0MDc3ZDAuLjFhNjgzNGQxYzRmZjFjN2EzYTQ5ZTgwZDFl
OWEzNDhlY2U0YjM4YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwpAQCAtODExLDYgKzgxMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGVk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAgXAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJp
YnV0ZUNvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAorICAg
IGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdEVsZW1lbnRDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXAogICAgIGVk
aXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNGUyOTVhZTc4YWZhMjBiOGRkNTdlMGRh
ZjIyOWYwODVmMmExNmQzZC4uN2E3MGFhYjJiZWQ1MWI3MDMzOTgzZGE2Mjc1ZTZmNTc1MjJkODkz
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00Nzg3Niw2ICs0Nzg3
NiwxMTQgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmlsZT4NCiAJCQk8Rmls
ZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmgiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNw
ZWxsQ2hlY2tlci5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGVkaXRpbmdcU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0K
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJv
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8Rmls
ZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdF
bGVtZW50Q29tbWFuZC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmNmMDI2M2ExZWY2YTkwY2YwMTk3ZjQxYWU4
NTk3NmZhYTQxZjJlYy4uY2E2NGI2MzM5MTYzZmZlOGE0MmE2MDQ5YTUyYjM2ZTQwNDQ4MWJlMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMzIsNiAr
MzAzMiw4IEBACiAJCUE3Nzk3OTI4MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNDBE
NkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkyOTBENkI5
RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0
YS5oICovOyB9OwogCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1
RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlBNzhGRTEzQjEyMzY2QjEw
MDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNr
ZXIuY3BwICovOyB9OworCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEz
QTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAwN0I0MzhGIC8q
IERyYWdEYXRhTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovOyB9Owog
CQlBNzk1NDY0MzBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhG
IC8qIERyYWdEYXRhLmNwcCAqLzsgfTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJl
bmRlckluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0FBNjZENDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAq
LzsgfTsKQEAgLTkxMDIsNiArOTEwNCw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAv
KiBKU0ltYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0ltYWdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTI1MEQ2
QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0ltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzg0
OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVsbENoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhG
IC8qIERyYWdEYXRhTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERyYWdEYXRhTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDY0
MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRHJhZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0FBNjZENDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDUwOCw2ICsxNDUxMiw4IEBACiAJCQkJNEI2RkE2
RjMwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJNEI2RkE2RjIw
QzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZBNkY2MEMzOUU0
QTEwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUxMzkxMjM2NkIx
MDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0ExMjM2NkIxMDAw
QUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0OTEwMDU2RTU4
MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5OUU2NDkxMDA1
NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0MDk5RTY0OTEw
MDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0yMDY3NSw2ICsyMDY4
MSw3IEBACiAJCQkJNzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNo
SW5wdXRDbGllbnRNb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBE
OTMzQzUgLyogU3BlZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc4RkUx
M0MxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTMzMDlFMTIwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29t
bWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZFNTgxIC8qIFNw
bGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjMzMDMsNiArMjMzMTAsNyBAQAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0
aWFsTmF2aWdhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBE
OTMzQzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAy
MENGRjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlBNzhGRTEzQjEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTExMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTEzMDk5RTY0OTIwMDU2RTU4MSAvKiBT
cGxpdFRleHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxNTA5OUU2
NDkyMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDJiN2ZkODVkN2ZlY2QyZmJjOGM4ZDNlMmM5NTU2ZWE3ZTk5OTkyOGYuLjhjNTZiNTRjZDVi
YmMyNTdkOGU4NTIxN2I5ZTk2NDA2ODdhNzE4OTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmNwcApAQCAtNTI0LDQgKzUyNCwzMiBAQCB2b2lkIERvY3VtZW50TWFya2Vy
Q29udHJvbGxlcjo6c2V0TWFya2Vyc0FjdGl2ZShOb2RlKiBub2RlLCB1bnNpZ25lZCBzdGFydE9m
ZnNldAogICAgICAgICBub2RlLT5yZW5kZXJlcigpLT5yZXBhaW50KCk7CiB9CiAKKworI2lmbmRl
ZiBOREVCVUcKK3ZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpzaG93TWFya2VycygpIGNv
bnN0Cit7CisgICAgZnByaW50ZihzdGRlcnIsICIlZCBub2RlcyBoYXZlIG1hcmtlcnM6XG4iLCBt
X21hcmtlcnMuc2l6ZSgpKTsKKyAgICBNYXJrZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1f
bWFya2Vycy5lbmQoKTsKKyAgICBmb3IgKE1hcmtlck1hcDo6Y29uc3RfaXRlcmF0b3Igbm9kZUl0
ZXJhdG9yID0gbV9tYXJrZXJzLmJlZ2luKCk7IG5vZGVJdGVyYXRvciAhPSBlbmQ7ICsrbm9kZUl0
ZXJhdG9yKSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBub2RlSXRlcmF0b3ItPmZpcnN0LmdldCgp
OworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVwIiwgbm9kZSk7CisgICAgICAgIE1hcmtlck1h
cFZlY3RvclBhaXIqIHZlY3RvclBhaXIgPSBub2RlSXRlcmF0b3ItPnNlY29uZDsKKyAgICAgICAg
VmVjdG9yPERvY3VtZW50TWFya2VyPiYgbWFya2VycyA9IHZlY3RvclBhaXItPmZpcnN0OworICAg
ICAgICB1bnNpZ25lZCBtYXJrZXJDb3VudCA9IG1hcmtlcnMuc2l6ZSgpOworICAgICAgICBmb3Ig
KHVuc2lnbmVkIG1hcmtlckluZGV4ID0gMDsgbWFya2VySW5kZXggPCBtYXJrZXJDb3VudDsgKytt
YXJrZXJJbmRleCkKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICVkOlslZDolZF0oJWQp
IiwgbWFya2Vyc1ttYXJrZXJJbmRleF0udHlwZSwgbWFya2Vyc1ttYXJrZXJJbmRleF0uc3RhcnRP
ZmZzZXQsIG1hcmtlcnNbbWFya2VySW5kZXhdLmVuZE9mZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRl
eF0uYWN0aXZlTWF0Y2gpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CisgICAgfQor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworCisjaWZuZGVmIE5ERUJVRwor
dm9pZCBzaG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29u
dHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAoY29udHJvbGxlcikKKyAgICAgICAgY29u
dHJvbGxlci0+c2hvd01hcmtlcnMoKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuaAppbmRleCA4OTIxYmFhYzU5ZGFlYTlkNzMzZDFmODM3ZjAzNmNmNjZjMjlm
NzVjLi4zNDEwZTdmZjMzZGU0YTJhOWJkM2I5Y2VkYjUzOThmNzMxY2YwOTA3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaApAQCAtNjEsNiArNjEsMTAgQEAgcHVibGljOgog
ICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4gbWFya2Vyc0Zvck5vZGUoTm9kZSopOwogICAgIFZl
Y3RvcjxJbnRSZWN0PiByZW5kZXJlZFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFy
a2VyVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKTsKIAorI2lmbmRlZiBOREVCVUcK
KyAgICB2b2lkIHNob3dNYXJrZXJzKCkgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICB0
eXBlZGVmIHN0ZDo6cGFpcjxWZWN0b3I8RG9jdW1lbnRNYXJrZXI+LCBWZWN0b3I8SW50UmVjdD4g
PiBNYXJrZXJNYXBWZWN0b3JQYWlyOwogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8Tm9kZT4s
IE1hcmtlck1hcFZlY3RvclBhaXIqPiBNYXJrZXJNYXA7CkBAIC02OSw0ICs3Myw4IEBAIHByaXZh
dGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgc2hv
d0RvY3VtZW50TWFya2Vycyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIq
KTsKKyNlbmRpZgorCiAjZW5kaWYgLy8gRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyX2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwIGIvV2ViQ29yZS9kb20vUG9z
aXRpb25JdGVyYXRvci5jcHAKaW5kZXggZDJjM2EzZjBjZjRlMGYwM2I0MGRiNTQ2ZDk5YWYxMTAy
Y2Q1MTQ3Ni4uNDJjYzUxMzcxMjY3Njk5NmU0YmI2OGQxOTViNGM0YWIyZmVmYWJlYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKKysrIGIvV2ViQ29yZS9kb20v
UG9zaXRpb25JdGVyYXRvci5jcHAKQEAgLTk4LDYgKzk4LDEzIEBAIHZvaWQgUG9zaXRpb25JdGVy
YXRvcjo6ZGVjcmVtZW50KCkKICAgICB9CiB9CiAKK3ZvaWQgUG9zaXRpb25JdGVyYXRvcjo6c2V0
T2Zmc2V0SW5MZWFmTm9kZShpbnQgb2Zmc2V0KQoreworICAgIEFTU0VSVCghbV9hbmNob3JOb2Rl
LT5oYXNDaGlsZE5vZGVzKCkpOworICAgIEFTU0VSVCgwIDw9IG9mZnNldCAmJiBvZmZzZXQgPD0g
bGFzdE9mZnNldEZvckVkaXRpbmcobV9hbmNob3JOb2RlKSk7CisgICAgbV9vZmZzZXRJbkFuY2hv
ciA9IG9mZnNldDsKK30KKwogYm9vbCBQb3NpdGlvbkl0ZXJhdG9yOjphdFN0YXJ0KCkgY29uc3QK
IHsKICAgICBpZiAoIW1fYW5jaG9yTm9kZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uSXRlcmF0b3IuaCBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaAppbmRleCA3YWY4
OTc3NTkxZDE2YzI5NzkzMTg5MGViZDFhZTA2OWMyZDQ3ZjM2Li4wODMyOWJiMTVjZDNlNTIxMDA0
NjI5MzU4OGFiN2FhYmQzMGZlNGY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0
ZXJhdG9yLmgKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKIAogICAgIE5vZGUqIG5vZGUoKSBjb25zdCB7IHJldHVybiBtX2FuY2hv
ck5vZGU7IH0KICAgICBpbnQgb2Zmc2V0SW5MZWFmTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zm
c2V0SW5BbmNob3I7IH0KKyAgICB2b2lkIHNldE9mZnNldEluTGVhZk5vZGUoaW50IG9mZnNldCk7
CiAKICAgICBib29sIGF0U3RhcnQoKSBjb25zdDsKICAgICBib29sIGF0RW5kKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuY3BwCmluZGV4IDJlNTgzODlhNGI1OTlmZjMxYzVjNTg0OGI0ODhkYjllNjEyMWEwYzgu
LjllNDU0MzZhOTA4ZTljMmZhNWMxYTVkNjhkOTZmNzQ0NDJmNWMwM2MgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
CkBAIC02NSw5ICs2NSwxMSBAQAogI2luY2x1ZGUgIlJlbW92ZUZvcm1hdENvbW1hbmQuaCIKICNp
bmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKKyNpbmNsdWRl
ICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTb3VuZC5oIgorI2luY2x1ZGUg
IlNwZWxsQ2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQu
aCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAgLTM4Miw2ICszODQsMTAgQEAgdm9pZCBF
ZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiBmcmFnbWVudCwKICAgICAKICAgICBhcHBseUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmcmFnbWVudCwgc2VsZWN0UmVw
bGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgbWF0Y2hTdHlsZSkpOwogICAgIHJldmVhbFNlbGVjdGlv
bkFmdGVyRWRpdGluZ09wZXJhdGlvbigpOworCisgICAgTm9kZSogbm9kZVRvQ2hlY2sgPSBtX2Zy
YW1lLT5zZWxlY3Rpb24oKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpOworICAgIGlmIChtX3NwZWxs
Q2hlY2tlci0+Y2FuQ2hlY2tBc3luY2hyb25vdXNseShub2RlVG9DaGVjaykpCisgICAgICAgIG1f
c3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3Iobm9kZVRvQ2hlY2spOwogfQogCiB2b2lk
IEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9v
bCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJlcGxhY2UpCkBAIC0xMDU2LDYgKzEwNjIs
NyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSogZnJhbWUpCiAgICAgLy8gVGhpcyBpcyBvZmYgYnkg
ZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3JzIHdhbnQgdGhpcyBiZWhhdmlvciAodGhpcyBtYXRj
aGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwgbV9zaG91bGRTdHlsZVdpdGhDU1MoZmFsc2UpCiAg
ICAgLCBtX2tpbGxSaW5nKGFkb3B0UHRyKG5ldyBLaWxsUmluZykpCisgICAgLCBtX3NwZWxsQ2hl
Y2tlcihuZXcgU3BlbGxDaGVja2VyKGZyYW1lLCBmcmFtZS0+cGFnZSgpID8gZnJhbWUtPnBhZ2Uo
KS0+ZWRpdG9yQ2xpZW50KCkgOiAwKSkKICAgICAsIG1fY29ycmVjdGlvblBhbmVsVGltZXIodGhp
cywgJkVkaXRvcjo6Y29ycmVjdGlvblBhbmVsVGltZXJGaXJlZCkKICAgICAsIG1fYXJlTWFya2Vk
VGV4dE1hdGNoZXNIaWdobGlnaHRlZChmYWxzZSkKIHsKQEAgLTM2MjksMTIgKzM2MzYsMjkgQEAg
dm9pZCBFZGl0b3I6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYgb2xkU2VsZWN0aW9uLCBib28KICAgICByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKG9s
ZFNlbGVjdGlvbik7CiB9CiAKK3N0YXRpYyBOb2RlKiBmaW5kRmlyc3RNYXJrYWJsZShOb2RlKiBu
b2RlKQoreworICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgIGlmICghbm9kZS0+cmVuZGVyZXIo
KSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+
aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gbm9kZTsKKyAgICAgICAgaWYgKG5vZGUtPnJl
bmRlcmVyKCktPmlzVGV4dENvbnRyb2woKSkKKyAgICAgICAgICAgIG5vZGUgPSB0b1JlbmRlclRl
eHRDb250cm9sKG5vZGUtPnJlbmRlcmVyKCkpLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleCgxKS5k
ZWVwRXF1aXZhbGVudCgpLm5vZGUoKTsKKyAgICAgICAgZWxzZSBpZiAobm9kZS0+Zmlyc3RDaGls
ZCgpKQorICAgICAgICAgICAgbm9kZSA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCk7CisgICAgfQorCisgICAg
cmV0dXJuIDA7Cit9CisKIGJvb2wgRWRpdG9yOjpzZWxlY3Rpb25TdGFydEhhc1NwZWxsaW5nTWFy
a2VyRm9yKGludCBmcm9tLCBpbnQgbGVuZ3RoKSBjb25zdAogewotICAgIE5vZGUqIG5vZGUgPSBt
X2ZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKS5ub2RlKCk7Ci0gICAgaWYgKCFub2RlIHx8ICFu
b2RlLT5yZW5kZXJlcigpKQorICAgIE5vZGUqIG5vZGUgPSBmaW5kRmlyc3RNYXJrYWJsZShtX2Zy
YW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKS5ub2RlKCkpOworICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIEFTU0VSVChub2RlLT5yZW5kZXJlcigpLT5pc1RleHQoKSk7
CiAKICAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBp
bnQ+KGZyb20pOwogICAgIHVuc2lnbmVkIGludCBlbmRPZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZCBpbnQ+KGZyb20gKyBsZW5ndGgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDBhZDQ3Mzc4MmQzYTRmNWI0
ZTdjMTRkM2NlNzUwZGRiNGUzMjk1MmUuLmY1NGU3ODc4YzQyNDFlZjQ2OTkwMzZiMTNjZTZmODBm
NDY1ZGRlOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTUzLDYgKzUzLDcgQEAgY2xhc3MgSGl0VGVzdFJlc3Vs
dDsKIGNsYXNzIEtpbGxSaW5nOwogY2xhc3MgUGFzdGVib2FyZDsKIGNsYXNzIFNpbXBsZUZvbnRE
YXRhOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgVGV4dDsKIGNsYXNzIFRleHRFdmVudDsK
IApAQCAtMjk4LDYgKzI5OSw3IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVj
dGlvbkZvckNvbW1hbmQoRXZlbnQqKTsKIAogICAgIEtpbGxSaW5nKiBraWxsUmluZygpIGNvbnN0
IHsgcmV0dXJuIG1fa2lsbFJpbmcuZ2V0KCk7IH0KKyAgICBTcGVsbENoZWNrZXIqIHNwZWxsQ2hl
Y2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fc3BlbGxDaGVja2VyLmdldCgpOyB9CiAKICAgICBFZGl0
aW5nQmVoYXZpb3IgYmVoYXZpb3IoKSBjb25zdDsKIApAQCAtMzc2LDYgKzM3OCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZTsKICAgICBib29s
IG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAgIE93blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsK
KyAgICBPd25QdHI8U3BlbGxDaGVja2VyPiBtX3NwZWxsQ2hlY2tlcjsKICAgICBSZWZQdHI8UmFu
Z2U+IG1fcmFuZ2VUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5nIG1fc3RyaW5n
VG9CZVJlcGxhY2VkQnlDb3JyZWN0aW9uOwogICAgIFN0cmluZyBtX2NvcnJlY3Rpb25SZXBsYWNl
bWVudFN0cmluZzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3Bw
IGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgwNzQ3NGI3
NTM4NmJlNzcyMWVjOGRlZTMwZDk5MzA3YjEwMWUyNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKKworI2luY2x1
ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisj
aW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQb3NpdGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAi
UmFuZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5o
IgorI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUq
IGZyYW1lLCBFZGl0b3JDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAg
LCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3JlcXVlc3RTZXF1ZW5jZSgwKQoreworfQorCitT
cGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIoKQoreworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6
aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hyb25v
dXNseShub2RlKSk7CisKKyAgICBTdHJpbmcgdGV4dCA9IG5vZGUtPnRleHRDb250ZW50KCk7Cisg
ICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3Jl
cXVlc3ROb2RlID0gbm9kZTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gdGV4dDsKKyAgICBtX3JlcXVl
c3RTZXF1ZW5jZSsrOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2Vy
OjpjbGVhclJlcXVlc3QoKQoreworICAgIG1fcmVxdWVzdE5vZGUuY2xlYXIoKTsKKyAgICBtX3Jl
cXVlc3RUZXh0ID0gU3RyaW5nKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0FzeW5jaHJv
bm91c0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZyYW1lLT5zZXR0aW5ncygpICYm
IG1fZnJhbWUtPnNldHRpbmdzKCktPmFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7
Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjpjYW5DaGVja0FzeW5jaHJvbm91c2x5KE5vZGUqIG5v
ZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2hlY2thYmxlKG5vZGUpICYmIGlzQXN5bmNocm9u
b3VzRW5hYmxlZCgpICYmICFpc0J1c3koKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQnVz
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdE5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wg
U3BlbGxDaGVja2VyOjppc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBtX3JlcXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVz
dFNlcXVlbmNlID09IHNlcXVlbmNlOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVja2Fi
bGUoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJl
cigpOworfQorCit2b2lkIFNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqIG5v
ZGUpCit7CisgICAgQVNTRVJUKGNhbkNoZWNrQXN5bmNocm9ub3VzbHkobm9kZSkpOworCisgICAg
aWYgKCFpbml0UmVxdWVzdChub2RlKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LT5y
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0
VGV4dCk7Cit9CisKK3N0YXRpYyBib29sIGZvcndhcmRJdGVyYXRvcihQb3NpdGlvbkl0ZXJhdG9y
JiBpdGVyYXRvciwgaW50IGRpc3RhbmNlKQoreworICAgIGludCByZW1haW5pbmcgPSBkaXN0YW5j
ZTsKKyAgICB3aGlsZSAoIWl0ZXJhdG9yLmF0RW5kKCkpIHsKKyAgICAgICAgaWYgKGl0ZXJhdG9y
Lm5vZGUoKS0+aXNDaGFyYWN0ZXJEYXRhTm9kZSgpKSB7CisgICAgICAgICAgICBpbnQgbGVuZ3Ro
ID0gbGFzdE9mZnNldEZvckVkaXRpbmcoaXRlcmF0b3Iubm9kZSgpKTsKKyAgICAgICAgICAgIGlu
dCBsYXN0ID0gbGVuZ3RoIC0gaXRlcmF0b3Iub2Zmc2V0SW5MZWFmTm9kZSgpOworICAgICAgICAg
ICAgaWYgKHJlbWFpbmluZyA8IGxhc3QpIHsKKyAgICAgICAgICAgICAgICBpdGVyYXRvci5zZXRP
ZmZzZXRJbkxlYWZOb2RlKGl0ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKSArIHJlbWFpbmluZyk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHJlbWFpbmluZyAtPSBsYXN0OworICAgICAgICAgICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5M
ZWFmTm9kZShpdGVyYXRvci5vZmZzZXRJbkxlYWZOb2RlKCkgKyBsYXN0KTsKKyAgICAgICAgfQor
CisgICAgICAgIGl0ZXJhdG9yLmluY3JlbWVudCgpOworICAgIH0KKworICAgIHJldHVybiBmYWxz
ZTsgICAgCit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNv
bnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykKK3sKKyAgICBpZiAoIWlz
VmFsaWQoc2VxdWVuY2UpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fcmVxdWVzdE5v
ZGUtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgY2xlYXJSZXF1ZXN0KCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpbnQgc3RhcnRPZmZzZXQgPSAwOworICAgIFBvc2l0aW9uSXRlcmF0
b3Igc3RhcnQgPSBQb3NpdGlvbihtX3JlcXVlc3ROb2RlLCAwKTsKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHJlc3VsdHNbaV0u
dHlwZSgpICE9IERvY3VtZW50TWFya2VyOjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUoKSAh
PSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIC8vIFRvIGF2b2lkIG1vdmluZyB0aGUgcG9zaXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0
aGUgZ2l2ZW4gcmVzdWx0cyBhcmUgc29ydGVkIHdpdGgKKyAgICAgICAgLy8gc3RhcnRPZmZzZXQg
YXMgdGhlIG9uZXMgcmV0dXJuZWQgYnkgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nOl0uCisgICAgICAgIEFTU0VSVChzdGFydE9mZnNldCA8PSByZXN1bHRzW2ldLmxvY2F0
aW9uKCkpOworICAgICAgICBpZiAoIWZvcndhcmRJdGVyYXRvcihzdGFydCwgcmVzdWx0c1tpXS5s
b2NhdGlvbigpIC0gc3RhcnRPZmZzZXQpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFBv
c2l0aW9uSXRlcmF0b3IgZW5kID0gc3RhcnQ7CisgICAgICAgIGlmICghZm9yd2FyZEl0ZXJhdG9y
KGVuZCwgcmVzdWx0c1tpXS5sZW5ndGgoKSkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAvLyBVc2VycyBvciBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucyBtYXkgY2hhbmdlIHRleHQgd2hp
bGUgYSBzcGVsbC1jaGVja2VyIGNoZWNrcyBpdHMKKyAgICAgICAgLy8gc3BlbGxpbmdzIGluIHRo
ZSBiYWNrZ3JvdW5kLiBUbyBhdm9pZCBhZGRpbmcgbWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZp
ZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgLy8gSmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMsIHJldHJp
ZXZlIHRoZSB3b3JkcyBpbiB0aGUgc3BlY2lmaWVkIHJlZ2lvbiBhbmQgY29tcGFyZSB0aGVtIHdp
dGgKKyAgICAgICAgLy8gdGhlIG9yaWdpbmFsIG9uZXMuCisgICAgICAgIFJlZlB0cjxSYW5nZT4g
cmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fcmVxdWVzdE5vZGUtPmRvY3VtZW50KCksIHN0YXJ0LCBl
bmQpOworICAgICAgICAvLyBGSVhNRTogVXNlIHRleHRDb250ZW50KCkgY29tcGF0aWJsZSBzdHJp
bmcgY29udmVyc2lvbi4KKyAgICAgICAgU3RyaW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQo
KTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3Vs
dHNbaV0ubG9jYXRpb24oKSwgcmVzdWx0c1tpXS5sZW5ndGgoKSk7CisgICAgICAgIGlmIChkZXN0
aW5hdGlvbiA9PSBzb3VyY2UpCisgICAgICAgICAgICBtX3JlcXVlc3ROb2RlLT5kb2N1bWVudCgp
LT5tYXJrZXJzKCktPmFkZE1hcmtlcihyYW5nZS5nZXQoKSwgcmVzdWx0c1tpXS50eXBlKCkpOwor
CisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gcmVzdWx0c1tpXS5sb2NhdGlvbigpOworICAgIH0KKwor
ICAgIGNsZWFyUmVxdWVzdCgpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBiL1dlYkNvcmUvZWRpdGluZy9T
cGVsbENoZWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTIyZjBlMjMzMDAxNmY4M2Y2OTBhNDAwYjIyZWUx
Mjc5Yzg5ZjgwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBTcGVsbENoZWNrZXJfaAor
I2RlZmluZSBTcGVsbENoZWNrZXJfaAorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFZGl0
b3JDbGllbnQ7CitjbGFzcyBGcmFtZTsKKworY2xhc3MgU3BlbGxDaGVja2luZ1Jlc3VsdCB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2luZ1Jlc3VsdChEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZSB0eXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nLCBpbnQgbG9jYXRpb24g
PSAwLCBpbnQgbGVuZ3RoID0gMCkKKyAgICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBt
X2xvY2F0aW9uKGxvY2F0aW9uKQorICAgICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICB7Cisg
ICAgfQorCisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfSAKKyAgICBpbnQgbG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0
aW9uOyB9CisgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKK3By
aXZhdGU6CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgbV90eXBlOworICAgIGludCBt
X2xvY2F0aW9uOworICAgIGludCBtX2xlbmd0aDsKK307CisKK2NsYXNzIFNwZWxsQ2hlY2tlciA6
IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2Vy
KEZyYW1lKiwgRWRpdG9yQ2xpZW50Kik7CisgICAgflNwZWxsQ2hlY2tlcigpOworCisgICAgYm9v
bCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsKKyAgICBib29sIGNhbkNoZWNrQXN5bmNo
cm9ub3VzbHkoTm9kZSopIGNvbnN0OworICAgIGJvb2wgaXNCdXN5KCkgY29uc3Q7CisgICAgYm9v
bCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3Q7CisgICAgYm9vbCBpc0NoZWNrYWJsZShOb2Rl
KikgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdGb3IoTm9kZSopOworICAgIHZvaWQg
ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVja2luZ1Jlc3VsdD4m
KTsKKworcHJpdmF0ZToKKyAgICBib29sIGluaXRSZXF1ZXN0KE5vZGUqKTsKKyAgICB2b2lkIGNs
ZWFyUmVxdWVzdCgpOworCisgICAgRnJhbWUqIG1fZnJhbWU7CisgICAgRWRpdG9yQ2xpZW50KiBt
X2NsaWVudDsKKworICAgIFJlZlB0cjxOb2RlPiBtX3JlcXVlc3ROb2RlOworICAgIFN0cmluZyBt
X3JlcXVlc3RUZXh0OworICAgIGludCBtX3JlcXVlc3RTZXF1ZW5jZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwZWxsQ2hlY2tlcl9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5oCmluZGV4IGVjMzc2NjgyOTVhYTE0YjY0NzA5ZDMyYzQzOTJjM2FlN2VkMWE3OTUuLjNkMzJk
ZDc4OGRmMWMyOGViYzBmMjJiZWQyMDg0ZDliZDYyYTg3MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CkBAIC00ODEsOCArNDgxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7IH0KIH07
CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCA5N2IwOTAy
NWNjNDUzN2UyYTNlYmQ5Yzc1YTIxMDIwMzk0ZWZlMDllLi5iODVhYWUzNjQ0ZTI1NTNiZWIwZWM5
M2FmMzk0NmNlNDgyOTAyNGQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC02NSw2ICs2NSw3IEBAIGNs
YXNzIEhUTUxFbGVtZW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFz
cyBSYW5nZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBj
bGFzcyBWaXNpYmxlUG9zaXRpb247CiAKQEAgLTIwMSw2ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJp
bmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0
YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5h
YmxlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVs
bENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmlu
ZGV4IGZhYzM1YmVjOGZiMmFiMzliNzMyZDhiNzgwNGEyZmY1NTU1Yjc4MWMuLjUzY2UyOWQ3MzVh
MjZmMGVkODdmMDA0YjU5MjFkNGRkMDg1MDkyN2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTQ1LDYgKzE0
NSw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKICAgICAsIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQoZmFsc2UpCiAjZW5kaWYKKyAg
ICAsIG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX21l
bW9yeUluZm9FbmFibGVkKGZhbHNlKQogICAgICwgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9u
KGZhbHNlKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyhmYWxzZSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5k
ZXggYjhkN2EzMTg3N2U0MDJmMDVlNjk4OTMwM2MzMDg4NjZjZWNhZDAzYi4uMzBkZGM4NjVjODZl
YjhiN2M1NGQ1ZTRhZGE4OTE5Yjk5YTlkMDUyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTMxNiw2ICszMTYsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZnVsbFNjcmVlbkVuYWJsZWQoKSBj
b25zdCAgeyByZXR1cm4gbV9mdWxsU2NyZWVuQVBJRW5hYmxlZDsgfQogI2VuZGlmCiAKKyAgICAg
ICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sIGZsYWcpIHsg
bV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCA9IGZsYWc7IH0KKyAgICAgICAgYm9v
bCBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIGNvbnN0ICB7IHJldHVybiBtX2Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOyB9CisKICAgICAgICAgdm9pZCBzZXRNZW1v
cnlJbmZvRW5hYmxlZChib29sIGZsYWcpIHsgbV9tZW1vcnlJbmZvRW5hYmxlZCA9IGZsYWc7IH0K
ICAgICAgICAgYm9vbCBtZW1vcnlJbmZvRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVtb3J5
SW5mb0VuYWJsZWQ7IH0KIApAQCAtNDE4LDYgKzQyMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgICAgIGJvb2wgbV9mdWxsU2NyZWVuQVBJ
RW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkOiAxOwogICAgICAgICBib29sIG1fbWVtb3J5SW5mb0VuYWJsZWQ6IDE7CiAg
ICAgICAgIGJvb2wgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uOiAxOwogICAgICAgICBib29s
IG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6IDE7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhMmQ3NTI5N2U3
ZjUyOTdiY2QzOGZjOTQ2YWYzZWIwYThjZjg1YmEwLi45NDMzYzg1Zjc1N2JhNjRlYmExZGM1ZGVh
ZTRiMTFlMzAyZjM2NGNiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0y
OCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAg
ICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JD
bGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjcgIEVyaWMg
VWhyaGFuZSAgPGVyaWN1QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZp
ZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmgKaW5kZXggYjA1YTU5
MjZiZjcxMTI4NjFjMjUzYTQ2YzIzNGE2ZDViN2UzMzVkNy4uOGZlNjM1NjQ1MTRkNWFiNTcxMmQ2
ZTYwZGY3MTg1MGU4ZWE5NzAxYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0
b3JDbGllbnRJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBs
LmgKQEAgLTExMCw2ICsxMTAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CiAKICAgICAvLyBTaG93cyB0aGUgZm9ybSBhdXRvZmlsbCBwb3B1cCBmb3IgfG5v
ZGV8IGlmIGl0IGlzIGFuIEhUTUxJbnB1dEVsZW1lbnQgYW5kCiAgICAgLy8gaXQgaXMgZW1wdHku
ICBUaGlzIGlzIGNhbGxlZCB3aGVuIHlvdSBwcmVzcyB0aGUgdXAgb3IgZG93biBhcnJvdyBpbiBh
CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9n
CmluZGV4IGVkNzIzNWYzMTBlODg2OTY4MDc4YzNkYTZlZjZlMTFkYzhlMzVjMDQuLjJhNzY5MmYx
YjQ5ZjY1OWE4MmY3ZjE4OWNmNGNhMWU5MmRiZmJkZWMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5v
dCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9u
LgorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcpOgorCiAyMDEwLTEwLTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmluZGV4IDlmNjBjZmJhZGI0MmYwN2YxMzZiZTdk
NGU3OWM0MjA5NDQzOGQxYjIuLmYxNjg3ZjdiM2ViOWQ0YjEzNDZiNDcxMTE2MTcwZDAxMmUxOGZj
YTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmgKKysrIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApAQCAt
MTEzLDYgKzExMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgU3RyaW5nJiwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6
OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QgKm1fdmlldzsKZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXgg
NTdjM2UyN2UyZDAzYzdlZjRjYmFkYjI2YjQyOWFlODA1MDYxYzdlYi4uYzI3ZjA0YWFiODEzODkw
YjFmMThhN2FlZjIzNzFlNGIzZDllMTJkOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0y
OCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjcg
IE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5oCmluZGV4IGY5ZmY4MmUwMGM0YTMwZjY2MmMxZGEzM2ZiM2E1YTkwMTE5
ZDMwNTkuLjU2ODAyN2ZhNmEwMDc2OGJmMmU5MjAxZDlhYzhkODI3Y2FiZjBhMWIgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtMTMyLDYgKzEzMiw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNz
ZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgcHJpdmF0ZToKICAg
ICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1
L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggZWQwNmIyY2JjY2U4NWRi
MTI5OGViM2U0NGNmN2IxMDJlYmZkN2RiOS4uNGIxNzZlMGM3ZTczZWM5ZTFmNmM1Y2FiNzZlZGQy
ZmViZjU3NDAwZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJL
aXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIK
KworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudEhhaWt1OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjYgIEpl
bm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEhhaWt1LmggYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50SGFpa3UuaAppbmRleCA1Y2JlYzI3MjIxM2NjNmNlOWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3
Y2QxLi5mM2YxMDVlMzg4YjcxZWIzODRiMzJmNTdiODVjNzljMWVmNzBhM2JjIDEwMDY0NAotLS0g
YS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9X
ZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaApAQCAtMTEwLDYg
KzExMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1
ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNv
bnN0IFN0cmluZyYpIHt9CiAKICAgICAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRl
eCBkNThkZjc4MGYwNjUzMzZkNDcyODM0NGQxZmJjYjViNzU4ZDIzZGQ5Li45MjRkNTMzM2M3MzM1
ZTNlNmY1MTY4NDdkMGUwZjNhMDk2Y2M3NTIwIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEwLTEw
LTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hl
Y2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5n
IEFQSSB0byBXZWJFZGl0b3JDbGllbnQgdXNpbmcKKyAgICAgICAgLVtOU1NwZWxsQ2hlY2tlciBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10uCisgICAgICAgIE5vdGUgdGhhdCBXZWJFZGl0b3JTcGVs
bENoZWNrUmVzcG9uZGVyIGlzIGEgc21hbGwgY2xhc3MgdG8gcmVjZWl2ZQorICAgICAgICByZXF1
ZXN0ZWQgc3BlbGwtY2hlY2tpbmcgcmVzdWx0LiBOb3RlIHRoYXQgdGhpcyBmZWF0dXJlIGlzCisg
ICAgICAgIGRpc2FibGVkIGF0IGRlZmF1bHQuCisgICAgICAgIAorICAgICAgICBBbHNvIGFkZGVk
IFtXZWJQcmVmZXJlbmNlcyBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDpdIHRv
IAorICAgICAgICBlbmFibGUgdGhlIGZlYXR1cmUgZnJvbSBMYXlvdXRUZXN0Q29udHJvbGxlci4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViRWRpdG9y
U3BlbGxDaGVja1Jlc3BvbmRlciBpbml0V2l0aFNlbmRlcjpXZWJDb3JlOjpzZXF1ZW5jZTpyZXN1
bHRzOl0pOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIHBlcmZvcm1d
KToKKyAgICAgICAgKHRvQ29yZVNwZWxsaW5nUmVzdWx0KToKKyAgICAgICAgKC1bV2ViRWRpdG9y
U3BlbGxDaGVja1Jlc3BvbmRlciBXVEY6OldlYkNvcmU6Ol0pOgorICAgICAgICAoV2ViRWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgt
W1dlYlByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOl0pOgor
ICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0No
YW5nZWROb3RpZmljYXRpb246XSk6CisKIDIwMTAtMTAtMjcgIFByYXRpayBTb2xhbmtpICA8cHNv
bGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpAQCAt
MTM2Miw2ICsxMzk0LDMyIEBACiAKIDIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRh
QGdvb2dsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBJbXBs
ZW1lbnRlZCBhc3luYyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVkaXRvckNsaWVudC4KKyAgICAg
ICAgVGhlIGltcGxlbWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nXQorICAgICAgICB3aGljaCBpcyBhdmFpbGFibGUgb25seSBvbiBNYWMg
T1MgMTAuNiBvciBsYXRlci4KKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCBbTlNTcGVsbENo
ZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGludm9rZQorICAgICAgICB0aGUg
Y2FsbGJhY2sgYmxvY2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRocmVhZCwgc28gd2UgbmVlZCB0
bworICAgICAgICByZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFpbiB0aHJlYWQgd2hlcmUgV2Vi
Q29yZSBpcyBydW5uaW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJwb3NlLCB3ZSBtYWRlIFdlYkVk
aXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAgIAorICAgICAgICBUZXN0OiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKyAgICAgICAg
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xp
ZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQuCisgICAgICAg
ICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdpdGhTZW5kZXI6V2ViQ29yZTo6
c2VxdWVuY2U6cmVzdWx0czpdKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hl
Y2tSZXNwb25kZXIgcGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkZy
YW1lUHJpdmF0ZS5oOgorCisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgc3Bl
bGxpbmcgdW5kZXJsaW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGFkMzI0YjlmYTM5ZDY1MDA0ZGNkMTc1
ZTdmMTJmOTZmNzE4NTNkYmMuLmU5NDA4Zjc5NjhmMDU5YzU3YTk2Mzg1M2NiOTdjZmNlM2RlN2Yw
N2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAt
MTMyLDYgKzEzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMp
OwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwg
Y29uc3QgV1RGOjpTdHJpbmcmKTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYg
IWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05P
V19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6
OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlbWVudFN0
cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NDb3JyZWN0
aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAyYmYzMjU5ZjRhMjJhYjY4NjFkNjlkMTM2
M2I3M2MxM2U4MTgyOGY2Li4wZjljZTgxOWNjY2Y0MmI3NjZmMDZkOWMyNTAyYjA2MDk4Zjk0MTkx
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5t
bQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAt
NjMsNiArNjMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
bGF0Zm9ybVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgpAQCAtOTMyLDMgKzkzMyw3MyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2lsbFNl
dElucHV0TWV0aG9kU3RhdGUoKQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCkKIHsKIH0KKworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAh
ZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorQGludGVyZmFjZSBXZWJFZGl0b3JTcGVsbENo
ZWNrUmVzcG9uZGVyIDogTlNPYmplY3QKK3sKKyAgICBXZWJDb3JlOjpTcGVsbENoZWNrZXIqIF9z
ZW5kZXI7CisgICAgaW50IF9zZXF1ZW5jZTsKKyAgICBSZXRhaW5QdHI8TlNBcnJheT4gX3Jlc3Vs
dHM7Cit9CistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29yZTo6U3BlbGxDaGVja2VyKilzZW5k
ZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0FycmF5KilyZXN1bHRzOworLSAo
dm9pZClwZXJmb3JtOworLSAoV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3Vs
dD4pIF9jb3JlUmVzdWx0czsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYkVkaXRvclNwZWxs
Q2hlY2tSZXNwb25kZXIKKy0gKGlkKWluaXRXaXRoU2VuZGVyOihXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqKXNlbmRlciBzZXF1ZW5jZTooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkqKXJlc3Vs
dHMKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICBfc2VuZGVyID0gc2VuZGVyOworICAgIF9zZXF1ZW5jZSA9IHNlcXVl
bmNlOworICAgIF9yZXN1bHRzID0gcmVzdWx0czsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAo
dm9pZClwZXJmb3JtCit7CisgICAgX3NlbmRlci0+ZGlkQ2hlY2soX3NlcXVlbmNlLCBbc2VsZiBf
Y29yZVJlc3VsdHNdKTsKK30KKworc3RhdGljIFNwZWxsQ2hlY2tpbmdSZXN1bHQgdG9Db3JlU3Bl
bGxpbmdSZXN1bHQoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCkKK3sKKyAgICBOU1RleHRD
aGVja2luZ1R5cGUgdHlwZSA9IFtyZXN1bHQgcmVzdWx0VHlwZV07CisgICAgTlNSYW5nZSByYW5n
ZSA9IFtyZXN1bHQgcmFuZ2VdOworICAgIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIGNvcmVU
eXBlOworICAgIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCisgICAgICAg
IGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgIGVsc2UgaWYgKHR5cGUg
JiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAgICBjb3JlVHlwZSA9IERvY3VtZW50
TWFya2VyOjpHcmFtbWFyOworICAgIGVsc2UKKyAgICAgICAgY29yZVR5cGUgPSBEb2N1bWVudE1h
cmtlcjo6QWxsTWFya2VyczsKKworICAgIHJldHVybiBTcGVsbENoZWNraW5nUmVzdWx0KGNvcmVU
eXBlLCByYW5nZS5sb2NhdGlvbiwgcmFuZ2UubGVuZ3RoKTsKK30KKworLSAoV1RGOjpWZWN0b3I8
V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4pX2NvcmVSZXN1bHRzCit7CisgICAgV1RGOjpW
ZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4gY29yZVJlc3VsdHM7CisgICAgY29y
ZVJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KFtfcmVzdWx0cy5nZXQoKSBjb3VudF0pOworICAgIGZv
ciAoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCBpbiBfcmVzdWx0cy5nZXQoKSkKKyAgICAg
ICAgY29yZVJlc3VsdHMuYXBwZW5kKHRvQ29yZVNwZWxsaW5nUmVzdWx0KHJlc3VsdCkpOworICAg
IHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVuZAorI2VuZGlmCisKK3ZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqIHNl
bmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCisgICAg
TlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQubGVuZ3RoKCkpOworICAgIE5TUnVu
TG9vcCogY3VycmVudExvb3AgPSBbTlNSdW5Mb29wIGN1cnJlbnRSdW5Mb29wXTsKKyAgICBbW05T
U3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVzdENoZWNraW5nT2ZTdHJpbmc6
dGV4dCByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2luZ0FsbFN5c3RlbVR5cGVzIG9wdGlv
bnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJbnRlZ2VyLCBOU0FycmF5KiBy
ZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7CisgICAgICAgICAgICBbY3VycmVu
dExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtKSAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRl
ciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNlOnNlcXVlbmNlIHJlc3VsdHM6
cmVzdWx0c10gYXV0b3JlbGVhc2VdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy
Z3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpOU0RlZmF1
bHRSdW5Mb29wTW9kZV1dOworICAgICAgICB9XTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGNkOWVkOGYwMGM5OGYxZjky
OWU2ZjlkYjc5YjljNzBhODQ3YzM0OGQuLmZmNjk5MjU5ZjdiMmQ3M2Y4MGQ4NTZkMjk5YWI5Yzlj
Y2M5Zjc2MmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmgKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2RlZmluZSBXZWJLaXRQYWdpbmF0ZUR1cmluZ0xh
eW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0RE5TUHJlZmV0Y2hpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRGdWxsU2NyZWVuRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZCIKKyNkZWZpbmUgV2Vi
S2l0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1lbW9yeUlu
Zm9FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkIgogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0K
aW5kZXggY2NmYjYzMmM4MTY2YjcwODkwMTc4ZDNjOWNiODEyZmNmOTNmYjNjNy4uNzUwYjEwZjg3
MDFmY2U5Y2NkODg5ZmEzYjIwNjg4N2ExN2FmYjNkNyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQpAQCAtMzY4LDYgKzM2OCw3IEBAIHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hl
TW9kZWxGb3JNYWluQnVuZGxlKHZvaWQpCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9v
bDpOT10sICAgV2ViS2l0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSwKICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRETlNQcmVmZXRjaGlu
Z0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6
Tk9dLCAgIFdlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9v
bDpOT10sICAgV2ViS2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10s
ICAgV2ViS2l0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3NLZXksCkBAIC0xNDA0LDYgKzE0MDUsMTYg
QEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIHJldHVybiBb
c2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtl
eV07CiB9CiAKKy0gKHZvaWQpc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJP
T0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0QXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAoQk9P
TClhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleV07Cit9CisKICsgKHZvaWQpc2V0V2ViS2l0TGlua1RpbWVWZXJzaW9uOihpbnQp
dmVyc2lvbgogewogICAgIHNldFdlYktpdExpbmtUaW1lVmVyc2lvbih2ZXJzaW9uKTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA0N2U2ZDcxMmQyM2Jk
MTZjZjgzNTNiY2Y1MDA0YjdmNDdkOTgzYjVkLi44YzlkZDUzNTY3M2Q2NTQ0ODZkZmM1MTZiZGYy
Mjg3ZjNhODgzM2NjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oCkBAIC0yMjMsNiArMjIzLDkgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc1Jl
bW92ZWROb3RpZmljYXRpb247CiAtICh2b2lkKXNldEZ1bGxTY3JlZW5FbmFibGVkOihCT09MKWZs
YWc7CiAtIChCT09MKWZ1bGxTY3JlZW5FbmFibGVkOwogCistICh2b2lkKXNldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWc7CistIChCT09MKWFzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkOworCiAtICh2b2lkKXNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtz
OihCT09MKWZsYWc7CiAtIChCT09MKXVzZVByZUhUTUw1UGFyc2VyUXVpcmtzOwogCmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDc0NTY4OThhYmY5OGE4MmU4OWE3ZmU0M2E3OTQ4MzkxNjRhNmNjNDQu
LjE3MTkwZjFmMmI4NjcwYzAxYjI0OWNhM2NhODBkMWU2YjlmZDFhZjQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0xNTAwLDYgKzE1MDAsMTAgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVh
cmRvd25FbmFibGVkKCkKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgc2V0dGluZ3Mt
PnNldEZ1bGxTY3JlZW5FbmFibGVkKFtwcmVmZXJlbmNlcyBmdWxsU2NyZWVuRW5hYmxlZF0pOwog
I2VuZGlmCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpCisgICAgLy8gQXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSBp
cyBhdmFpbGFibGUgZm9yIDEwLjYgb3IgbGF0ZXIuCisgICAgc2V0dGluZ3MtPnNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBhc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZF0pOworI2VuZGlmCiAgICAgc2V0dGluZ3MtPnNldE1lbW9yeUluZm9FbmFi
bGVkKFtwcmVmZXJlbmNlcyBtZW1vcnlJbmZvRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRI
eXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGh5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrcyhbc2VsZiBf
bmVlZHNQcmVIVE1MNVBhcnNlclF1aXJrc10pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzg5Zjg2NDZjNzdkZWFmYWQ1MGIyMTA1
NDZmZjZlMTRjZDFiMWRmMi4uMmE3NTg5MGRjZjBjYzc4ODVkZmM0ZmM3YmI4MDlhYTdlZmQ3YWRi
MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRh
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRl
ZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjcgIEpvY2VseW4gVHVyY290dGUgIDxqb2Nl
bHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0
LmgKaW5kZXggN2Q5OWQyMjJkODM2ZjEwN2Y2YTAzZTY3YTgyNTMxNWFjNTVhZTNiZi4uYmY1NDMz
NGNhYzYwYjBjZDAzNWM5ZGI5M2U4ZGI5NGZiZjBkMzA3NiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJp
bmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBp
bnQsIGNvbnN0IFN0cmluZyYpIHt9CiAKICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IDM1MzkzYmFjZjc4M2ZlZjU1ZmEwMTU0N2M0MzRiYjQ1Mjg1ZjgyODUuLjEwNmU1MTM0OWY2
YWZlMjBkMDUyZTE5OWM1Njk1MDNjMzM3ZmNkOGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAt
MTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBj
aGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yNiAg
QnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
aAppbmRleCA4YmU2ZGU5MGMyMWY0ZTE5ZWZjMmZmZmIzYTdhZGU0Y2ZkNDhlZTMzLi5kYzk2YWI0
ODk2NjEyZGZiMGY0MzRiZTA1MzhlYzI1Y2YyNGMxYzZjIDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6
OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5k
ZXggYTc3MjNhZGM2NzAwNGQ1ZWRmZGE1MDZhODc4OWM4N2RmNTlmZWRjZS4uMzVmNjIyOGVkODdl
NDc2YmFjYzQyODUyYzAyOGZlMmEzZjcxNWJjNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL0No
YW5nZUxvZworKysgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5v
dCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9u
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIw
MTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAppbmRleCBiZTg1YjNmYTQzMzQ1MWRiNDY1OWRkNDVj
MjRjMzk1YWFhNjM5MmIwLi5kMTY0ZGVjYTkxYzBmMzQ4MjM5YTE0MDZiZDQ3ODZhYzg4YjA2MGY2
IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2lu
Q0UuaAorKysgYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0Uu
aApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nl
c0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mKTsK
ICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6
OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggMTM0
NzQ2YTc3NjhiNGM3OWEwMDNhMWUwZmZmZDI1OGUzYmJkY2QwMS4uYjM4YzNlYThjNjgwOWM5MDNm
MjA4MTM0MzZjOWRkNmZhOTQ5YzUxNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0
ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50V3g6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yNiAgSmVu
biBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0
b3JDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaApp
bmRleCBiZTVjOThhZjI5N2RlMTBlMmY2ZTU2Njg1ZjJlZjYwNjZlOWQyZmVmLi5hMjYyYWQ1OTE0
MjJmMjRlNjY5ZWUxYTdjYTVjZTY4NGQyNGYyOTFiIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmgKQEAgLTExMiw2ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBX
VEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1OGRhMDQ0ODZl
NGQ3MmQ3ZTdkMDAyZjVhZDliNmRhNzdjNjc1NjFjLi5iMTNmNmI5YTM0NjM3Mzg5NTdjYmY2NmE1
ZWVkOTZmY2JhOWM1M2QxIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1l
ICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAg
ICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxMC0xMC0yNyAg
TWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KZGlmZiAt
LWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKaW5kZXggY2RlOWJlOGJlZTA4Y2VjNGM3ZWVmYjVmMzE3ZmM3OTI5MDk2ZGM2Zi4uNWFkNmNh
ZTQ5OTEzZDdiYmQ3Y2NmN2UzMDQzNDI0YmVjN2VlMjU4NSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQwMyw0
ICs0MDMsOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29s
KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdU
Rjo6U3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAppbmRleCA0YjFmOTljNzdmMjBmODRhZjhkYTEyNGVlMDI1ZTFiNDA1ODlj
MmExLi5hODk2Nzc0ZjY5MjIxYTI0MTNiNWI5MWIyZDNlYjE5ZDUzMzNjM2JlIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysr
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBA
IC0xMzMsNiArMTMzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpT
dHJpbmcmKTsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VS
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19P
Tl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcs
IFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBh
bmVsKGJvb2wgY29ycmVjdGlvbkFjY2VwdGVkKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCAyZjAyODk5NjQxZDA2NGIyNWJm
MmFhOWUxN2JiZGEzYjMyMTBlN2Q5Li5lNjI1ZTYwMjIxMDUyNzIwYzA2NTk3NjA1NzlkMWU3NmEy
MzJkNmY1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAg
ICAgICBBZGRlZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKQorICAgICAgICB0byBjb250cm9sIHRoZSBzZXR0aW5nLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoc2V0
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRDYWxsYmFjayk6CisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAg
ICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxl
cldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91
dFRlc3RDb250cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKwogMjAxMC0xMC0yNyAgRXJpYyBT
ZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCA4MzY1NWJkZDY1MDYyZTk1MDJjNzMyZTgxM2IxNWRlMzFlMjkyNmNiLi5k
ZmJjZGVjOTNkYmE4OTJmYzZlOTIzYmIxNDZkMDA2YmU2NTAyMWRlIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDgw
LDYgKzE0ODAsMTYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVM
b2Fkc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU08KICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQoreworICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0
R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29udHJvbGxlci0+c2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNb
MF0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0
YXRpYyBKU1ZhbHVlUmVmIHNob3dXZWJJbnNwZWN0b3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBz
dGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlz
T2JqZWN0KSk7CkBAIC0xOTk1LDYgKzIwMDUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0V2luZG93SXNL
ZXkiLCBzZXRXaW5kb3dJc0tleUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQiLCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0WFNTQXVkaXRvckVuYWJsZWQiLCBzZXRY
U1NBdWRpdG9yRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIiwgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzaG93V2ViSW5zcGVjdG9yIiwgc2hv
d1dlYkluc3BlY3RvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInRlc3RPbnNjcmVlbiIs
IHRlc3RPbnNjcmVlbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInRlc3RSZXBhaW50Iiwg
dGVzdFJlcGFpbnRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMjc1MThiNzA4MDg4NjhkZTRjYTcy
NjEzNGM0NjJhOWUwOTc0ZmVlMC4uNDlkOGMwNGM0MmVhZDc3ZTVkYWJiNzE4YTkyMmExZjFkY2Zk
YjVmZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCkBAIC0yNzAsNiArMjcwLDcgQEAgcHVibGljOgogICAgIGJvb2wgZ2VvbG9jYXRp
b25QZXJtaXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb247IH0K
IAogICAgIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKTsKKyAgICB2b2lkIHNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2hvd1dl
Ykluc3BlY3RvcigpOwogICAgIHZvaWQgY2xvc2VXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lkIHNl
dFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCmluZGV4IDFhNjE4N2ViNGVmZDZkNThlNTc1NTU4Y2MxODA5ODE3MGI0Njg0N2QuLjRj
MmEzNzkzYjg4YTY4M2RiNGRhNzI1ODE4OWVhZWZlYzY3ODZjY2UgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAor
KysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTE2NCw2ICsxNjQsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0
VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJzZXRXaWxs
U2VuZFJlcXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCk7CiAgICAgYmluZE1ldGhv
ZCgic2V0V2luZG93SXNLZXkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdpbmRvd0lzS2V5
KTsKICAgICBiaW5kTWV0aG9kKCJzZXRYU1NBdWRpdG9yRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0WFNTQXVkaXRvckVuYWJsZWQpOworICAgIGJpbmRNZXRob2QoInNldEFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2hvd1dl
Ykluc3BlY3RvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3Rvcik7CiAg
ICAgYmluZE1ldGhvZCgic2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2siLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNpbXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKTsKICAgICBi
aW5kTWV0aG9kKCJzdXNwZW5kQW5pbWF0aW9ucyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Vz
cGVuZEFuaW1hdGlvbnMpOwpAQCAtNjE3LDYgKzYxOCwxMSBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRBbHdheXNBY2NlcHRDb29raWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbgogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50KikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9
CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIG1fc2hlbGwtPnNob3dE
ZXZUb29scygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMDRkOTdlYmUxYzI3YWNhNTUyNGIy
OTE2YmI1ZjZiMDQwMmE1MmJjMy4uZjJlNTA4YmU1NmM3ZDY2MGUzNjU1ZWYwZTQ5ZjZlNmI1YWNm
YTE3NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRl
c3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC03MzUsNiArNzM1LDExIEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogICAgIGdfb2JqZWN0X3NldCh3ZWJTZXR0aW5ncywgImVuYWJsZS1kZXZlbG9wZXItZXh0cmFz
IiwgZW5hYmxlZCwgTlVMTCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0aGlzLgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5z
cGVjdG9yKCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0X3dlYl9mcmFt
ZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBlZmRmNTRhMmE5MTEyMjZhN2Q4NDA5ZjU2
YTQ1YTk4M2ZiZGIzNjk3Li43MDMxYWJmMTNiZGQ1N2M4NTM3NDllM2UyMGRjZGE5ODk4NDAyNTc2
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tCkBAIC00NjAsNiArNDYwLDcgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lz
dGVudFZhbHVlcygpCiAgICAgW3ByZWZlcmVuY2VzIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldFdlYkdMRW5hYmxlZDpOT107CiAgICAg
W3ByZWZlcmVuY2VzIHNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzOk5PXTsKKyAgICBbcHJlZmVy
ZW5jZXMgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6Tk9dOwogCiAgICAgW1tO
U0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2Nl
cHRQb2xpY3k6TlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnREb21h
aW5dOwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggYzVkNWE5MDY5NTk5YmE0YmNmYzJhY2EzMTFj
N2EzYTc2NWFiNWUxZC4uNWRmZTMwODViOTY1MWM4MDE5OTYxMmJiYWZiYjk4ZmNiN2Q1ZDZkYyAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRU
ZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNzA4LDYgKzcwOCwxMSBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBb
W1ttYWluRnJhbWUgd2ViVmlld10gcHJlZmVyZW5jZXNdIHNldERldmVsb3BlckV4dHJhc0VuYWJs
ZWQ6ZW5hYmxlZF07CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBbW1ttYWluRnJh
bWUgd2ViVmlld10gcHJlZmVyZW5jZXNdIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkOmVuYWJsZWRdOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5z
cGVjdG9yKCkKIHsKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gaW5zcGVjdG9yXSBzaG93Om5p
bF07CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCmluZGV4IGIyYzM4MDdkMDZmZTVhNmM4ZWIzMTM0YWJkOGJiMDNj
YmZiMWI1YmMuLjI5Zjc0YTJmYmJiM2ZjNmY1NzQ5ODJlYmE0Njc0OTE4MzkzOGI1NWUgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwCkBAIC0zODAsNiArMzgwLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fZHJ0LT53
ZWJQYWdlKCktPnNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkRldmVsb3Bl
ckV4dHJhc0VuYWJsZWQsIGVuYWJsZWQpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hv
d1dlYkluc3BlY3RvcigpCiB7CiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCwgdHJ1ZSk7CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRy
b2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RD
b250cm9sbGVyV2luLmNwcAppbmRleCA5ZThlZDFlNjk1N2Q3ZjdjYTRmZWFkOTFkODdiOWI1NmZi
NDIxNDU5Li5kMzY2MjVlNTVhZDY4ZDAyMTNmZDIxNzA3OTYxMGYyMzdiMzJiMzc5IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHAKQEAgLTExNjIsNiArMTE2MiwxMSBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBwcmVm
c1ByaXZhdGUtPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKCkKIHsKICAgICBDT01QdHI8SVdlYlZp
ZXc+IHdlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9M
YXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4
L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCmluZGV4IGVlZmM1ODc4MWUwYTFlYWJjZDBmZDgx
Mzg5MzJjYzQzYzRkNzg0N2YuLmM5ZjQzZjM5NTk0NzMyNzVmNjZiMWY3Yjg4Nzk3MTkyYjMwZTY0
OTIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91
dFRlc3RDb250cm9sbGVyV3guY3BwCkBAIC01MjksMyArNTI5LDcgQEAgSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cyhpbnQgcGEKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRoaXMuCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72177</attachid>
            <date>2010-10-28 06:00:18 -0700</date>
            <delta_ts>2010-10-28 18:40:26 -0700</delta_ts>
            <desc>resolving conflict</desc>
            <filename>bug-40092-20101028220015.patch</filename>
            <type>text/plain</type>
            <size>78099</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMWY0NDNiZDM0YmQzY2NkMzlmMmRiMGZlYzUwYmY3ZDY4YTU2NjgxLi40OWRjYTU0
YjE3NWFlNmE1YTE5MzI2YjFiYmI5NWRhOWRlM2NlM2E4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0yOCAgTWlraGFpbCBOYWdhbm92
ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdl
ZCB0ZXN0IGV4cGVjdGF0aW9ucyB1cGRhdGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zY3JpcHQtdGVzdHMvc3BlbGxjaGVjay1wYXN0ZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTNkMmIwOTQ2YzExYzM2MzAwOWJlOGQzNzgxNWZhYzE3MTU3YTBiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zY3JpcHQtdGVzdHMvc3Bl
bGxjaGVjay1wYXN0ZS5qcwpAQCAtMCwwICsxLDk4IEBACisKK2Rlc2NyaXB0aW9uKCdGb3IgQnVn
IDQwMDkyOiBTcGVsbCBjaGVja2luZyBmb3IgcGFzdGVkIHRleHQuJyk7CisKK2xheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKwordmFyIHRlc3RSb290ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Citkb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZSh0ZXN0Um9vdCwg
ZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTsKKwordmFyIHRlc3RUZXh0QXJlYSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0VGV4
dEFyZWEpOworCit2YXIgdGVzdElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQi
KTsKK3Rlc3RJbnB1dC5zZXRBdHRyaWJ1dGUoInR5cGUiLCAidGV4dCIpOwordGVzdFJvb3QuYXBw
ZW5kQ2hpbGQodGVzdElucHV0KTsKKwordmFyIHRlc3RFZGl0YWJsZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwordGVzdEVkaXRhYmxlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRh
YmxlIiwgInRydWUiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RFZGl0YWJsZSk7CisKK3Zh
ciB0ZXN0U291cmNlUGxhaW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RT
b3VyY2VQbGFpbi5pbm5lckhUTUwgPSAiZm9vIGJhciI7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0
ZXN0U291cmNlUGxhaW4pOworCit2YXIgdGVzdFNvdXJjZURlY29yYXRlZCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwordGVzdFNvdXJjZURlY29yYXRlZC5pbm5lckhUTUwgPSAiZm88
Yj5vIGJhPC9iPnIiOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFNvdXJjZURlY29yYXRlZCk7
CisKK3ZhciBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisKK3ZhciB0ZXN0cyA9IFtdOwor
CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICB2YXIgbmV4dCA9IHRlc3RzLnNoaWZ0KCk7CisgICAg
aWYgKG5leHQpCisgICAgICAgIHJldHVybiB3aW5kb3cuc2V0VGltZW91dChuZXh0LCAwKTsKKyAg
ICB0ZXN0Um9vdC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gdmVyaWZ5TWFya2VyKG5vZGUsIGV4cGVj
dGVkTWFya2VkKQoreworICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8
fCBub2RlIGluc3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCkgeworICAgICAgICBub2RlLmZv
Y3VzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKG5vZGUp
OworICAgIH0KKyAgICByZXR1cm4gbGF5b3V0VGVzdENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJr
ZXIoZXhwZWN0ZWRNYXJrZWRbMF0sIGV4cGVjdGVkTWFya2VkWzFdKTsKK30KKworZnVuY3Rpb24g
cGFzdGVBbmRWZXJpZnkoc291cmNlLCBkZXN0LCBleHBlY3RlZE1hcmtlZCkKK3sKKyAgICBzZWwu
c2VsZWN0QWxsQ2hpbGRyZW4oc291cmNlKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiQ29w
eSIpOworICAgIGlmIChkZXN0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCB8fCBkZXN0IGlu
c3RhbmNlb2YgSFRNTFRleHRBcmVhRWxlbWVudCkgeworICAgICAgICBkZXN0LnZhbHVlID0gIiI7
CisgICAgICAgIGRlc3QuZm9jdXMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZXN0LmlubmVy
SFRNTCA9ICIiOworICAgICAgICBzZWwuc2VsZWN0QWxsQ2hpbGRyZW4oZGVzdCk7CisgICAgfQor
ICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJQYXN0ZSIpOworCisgICAgdmFyIG5yZXRyeSA9IDEw
OworICAgIHZhciBuc2xlZXAgPSAxOworICAgIGZ1bmN0aW9uIHRyaWFsKCkgeyAKKyAgICAgICAg
dmFyIHZlcmlmaWVkID0gdmVyaWZ5TWFya2VyKGRlc3QsIGV4cGVjdGVkTWFya2VkKTsKKyAgICAg
ICAgaWYgKHZlcmlmaWVkKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKGRlc3QudGFnTmFtZSAr
ICIgaGFzIGEgbWFya2VyIG9uICciICsgc291cmNlLmlubmVySFRNTCArICInIik7CisgICAgICAg
ICAgICBkb25lKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBu
cmV0cnktLTsKKyAgICAgICAgaWYgKDAgPT0gbnJldHJ5KSB7CisgICAgICAgICAgICB0ZXN0RmFp
bGVkKGRlc3QudGFnTmFtZSArICIgc2hvdWxkIGhhdmUgYSBtYXJrZXIgb24gZm9yICciICsgc291
cmNlLmlubmVySFRNTCArICInIik7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG5zbGVlcCAqPSAyOworICAgICAg
ICB3aW5kb3cuc2V0VGltZW91dCh0cmlhbCwgbnNsZWVwKTsKKyAgICB9OworICAgIHRyaWFsKCk7
Cit9OworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUpOworCit0
ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRl
c3RJbnB1dCwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZl
cmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0SW5wdXQsIFswLCAzXSk7IH0pOwordGVzdHMu
cHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0VGV4
dEFyZWEsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJp
ZnkodGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdFRleHRBcmVhLCBbMCwgM10pOyB9KTsKK3Rlc3Rz
LnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdEVk
aXRhYmxlLCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVy
aWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RFZGl0YWJsZSwgWzAsIDJdKTsgfSk7IC8vIFRv
IGNoZWNrICJmbyIgcGFydCBvZiBmb28uCitkb25lKCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxjaGVjay1wYXN0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWUzYTg3MzBiNTJmMjRl
YzQ0NWJiZWVhNDIzNWY0ZmQ1ODhhMWJiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNSBAQAorRm9yIEJ1ZyA0MDA5MjogU3BlbGwgY2hlY2tpbmcgZm9yIHBhc3RlZCB0ZXh0Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAnZm9v
IGJhcicKK1BBU1MgSU5QVVQgaGFzIGEgbWFya2VyIG9uICdmbzxiPm8gYmE8L2I+cicKK1BBU1Mg
VEVYVEFSRUEgaGFzIGEgbWFya2VyIG9uICdmb28gYmFyJworUEFTUyBURVhUQVJFQSBoYXMgYSBt
YXJrZXIgb24gJ2ZvPGI+byBiYTwvYj5yJworUEFTUyBESVYgaGFzIGEgbWFya2VyIG9uICdmb28g
YmFyJworUEFTUyBESVYgaGFzIGEgbWFya2VyIG9uICdmbzxiPm8gYmE8L2I+cicKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYmFiYTBjMzQ1NzM0NTMzMzA4NWM4ZGUwZDFiOGRlYzExYzIwOThlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3Rl
Lmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1zZWxlY3Rpb24tc2hhcmVkLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3BlbGxjaGVjay1wYXN0
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAzNmFj
OGZlN2MyZGVlOTM4YjhmMjAwNDVhYzQ1OTgxNDMxYjc1MjkxLi45YzM4YWUyZThmOWE0YjIzZTE4
ZDgwOGM4NDdmM2Y2NjdlN2EwZWM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0yNjk2LDYgKzI2OTYsOSBAQCBCVUdX
SzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUwNy5odG1s
ID0gSU1BR0UKIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1
c0RvdWJsZTA4Lmh0bWwgPSBJTUFHRQogQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRl
cnMvYm9yZGVyUmFkaXVzRG91YmxlMDkuaHRtbCA9IElNQUdFCiAKKy8vIE5lZWQgdG8gaW1wbGVt
ZW50IEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKQorQlVHV0s0MTQyMyA6
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sID0gVElNRU9VVAorCiAvLyBG
bGFreSB0ZXN0cy4KIEJVRzQ0MzQ1IExJTlVYIDogc3ZnL3pvb20vdGV4dC96b29tLWhpeGllLW1p
eGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCiBCVUc0NDM0NiBMSU5VWCA6IHN2Zy96b29tL3BhZ2Uv
em9vbS1oaXhpZS1taXhlZC0wMDkueG1sID0gSU1BR0UgUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZAppbmRleCA4ZmQwMjBmZjQ2Njg5NTgwYTg1MGYwZjVjYWVmN2Y4Yzk0YmVjOTNhLi4wNzk5
NDZlODFmZTZkOWM4YTU4OTdiZDVhYTlkMDQwOGI4MmZlOGNmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZApAQCAtOTgyLDYgKzk4Miw3IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4
dGFyZWEuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1s
aW5lcy5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWxpbmVicmVhay5odG1sCiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWF0dHJpYnV0ZS1jaGFuZ2UuaHRtbAorZWRpdGluZy9zcGVs
bGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvc3R5bGUvNTA2NTkxMC5odG1sCiBl
ZGl0aW5nL3N0eWxlL2FwcGxlLXN0eWxlLWVkaXRhYmxlLW1peC5odG1sCiBlZGl0aW5nL3N0eWxl
L2Jsb2NrLXN0eWxlLTAwMS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtbGVvcGFyZC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tp
cHBlZAppbmRleCAzZDc2ZWIyMDdmNGYwMzg5M2U4OWFhZGUyNzZlYWM5ZGIyNTE1ZDczLi4yM2Rj
NzZiYjNmZjc4N2I5MmJmZDI2NTcwMWJkYmYxYmM2N2E5NzFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1sZW9wYXJkL1NraXBwZWQKQEAgLTg1LDYgKzg1LDkgQEAgZmFzdC90ZXh0L2h5cGhl
bmF0ZS1sb2NhbGUuaHRtbAogIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM1MjcxCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXNlZWthYmxlLXN0YWxsLmh0bWwK
IAorIyBBdmFpbGFibGUgMTAuNiBvciBsYXRlcgorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LXBhc3RlLmh0bWwKKwogIyBEaXNhYmxlIHRlc3RzIHdoaWNoIHN0YXJ0ZWQgZmFpbGluZyBhZnRl
ciByNjY5NjEKICMgRmFpbHVyZXMgbG9vayBsaWtlIGFuIHVuZGVybHlpbmcgcGxhdGZvcm0gaXNz
dWUKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NTQ2CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCmluZGV4IGEwOTcxM2ZmZTkxOTFlNDBmOGU3
MjhkN2QzYjlhYzA0ZmQ3NDUyNjAuLmY3MGFjY2EyZDVkMGJkYWMxNTEwNmUzZTRiZjJkMTVhOTNi
NzFkOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkCkBAIC0yMDQsNiAr
MjA0LDkgQEAgZmFzdC9oYXJuZXNzL3Nob3ctbW9kYWwtZGlhbG9nLmh0bWwKICMgTG9hZGluZyBm
YWlscyBvbiBUaWdlciB3aXRoIGVycm9yIC0xMDEyIGFmdGVyIGFza2luZyBOU1VSTENvbm5lY3Rp
b24gdG8gY29udGludWUgd2l0aG91dCBjcmVkZW50aWFscy4KIGh0dHAvdGVzdHMvbWlzYy80MDEt
YWx0ZXJuYXRpdmUtY29udGVudC5waHAKIAorIyBBdmFpbGFibGUgb25seSAxMC42IG9yIGxhdGVy
CitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjIERpc2FibGUgc3Bl
bGxpbmcgdGVzdHMgZm9yIGF1dG9jb3JyZWN0aW9uIHBhbmVsCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9zcGVsbGluZy9hdXRvY29ycmVjdGlvbi1kZWxldGUuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvc3BlbGxpbmcvYXV0b2NvcnJlY3Rpb24tcmVtb3ZpbmctdW5kZXJsaW5lLWFmdGVyLXBhc3Rl
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAppbmRleCA3MjE2ZTE4NWVhYjBi
NDU4NDhlNWEyMmI4YTQ3ZjdlODI3MTRjZmNjLi4xZTgyMmIzZmEzMTFkYjNhNmI3NmZjMDA1NDcw
NDE5ZjZhMTVlZTVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCkBAIC0xNjUs
NiArMTY1LDcgQEAgZWRpdGluZy9zZWxlY3Rpb24vdHJpcGxlLWNsaWNrLWluLXByZS5odG1sCiBl
ZGl0aW5nL3NlbGVjdGlvbi91c2VyLWRyYWctZWxlbWVudC1hbmQtdXNlci1zZWxlY3Qtbm9uZS5o
dG1sCiBlZGl0aW5nL3NlbGVjdGlvbi93b3JkLWdyYW51bGFyaXR5Lmh0bWwKIGVkaXRpbmcvc3Bl
bGxpbmcvY29udGV4dC1tZW51LXN1Z2dlc3Rpb25zLmh0bWwKK2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZS5odG1sCiBlZGl0aW5nL3VuZG8vdW5kby1kZWxldGVXb3JkLmh0bWwKIGVk
aXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS1yZXZlcnNlZC1zZWxlY3Rpb24uaHRtbAogZWRp
dGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXdvcmQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKaW5kZXggZmU1YmQ0NjkwMWEwNzg5MWMyZTcxODIwODEzMWVmZWEzMjY5YTkxMS4uNjhmZjc5
MjU2ZGZiZTcyODBiYmIwMDUxZmZlYzY1MTVjZjM3YzdhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCkBAIC0yMjQ3LDYgKzIyNDcsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tz
cGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1hdHRy
aWJ1dGUtY2hhbmdlLmh0bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKCkgaXMgbm90IGltcGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFz
dGUuaHRtbAorCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5nL3N0
eWxlIHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKaW5kZXggMjY4NWM5ZjEzMTI1MTFiODE1NWU4ZDQwYmYxMDcwNDhiZjMxMTZjMi4uY2M2MDUx
Mzc4Mjk1ZTBiYTU0YWFjMDc4NTUzZTA3YzNkYTU4Y2ZhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKQEAgLTkyMCw2ICs5MjAsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tz
cGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVu
dGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAog
CisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVt
ZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgSW5kZXhl
ZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDU4
YjA3MjA4NGZkZDc4NGU2NzUxODIxZmYxMTk4ZDc1OWQ2ODEzODAuLmNhOWRlMmNiMjc3ZmU2ODUy
MTRmNWU2YTM4NzViOGM0NDM0NjFlOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTIxLDYgKzkyMSw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCiAgICAg
ZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NtYXJ0UmVw
bGFjZS5jcHAKKyAgICBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKICAgICBlZGl0aW5nL1NwbGl0
RWxlbWVudENvbW1hbmQuY3BwCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAK
ICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuY3BwCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg5
NGI4MzJhMzQ3ZWYyYmUxY2ZjNTk4YzYxOGNiNWIzNWQ3MWRiYjYuLjdmODMxNjU4ZjliOGMxZmQ5
NzJjNDYzZDRhNjUwMzI4NmY2OTBkZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTAtMTAtMjggIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQg
dGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTIKKworICAgICAgICAtIEludHJvZHVjZWQgU3BlbGxDaGVja2VyIGNsYXNzIHRvIGVuY2Fwc3Vs
YXRlIGFzeW5jaHJvbm91cyBzcGVsbAorICAgICAgICAgIGNoZWNrZXIgc3RhdGU6IHNlcXVlbmNl
IGlkLCByZXF1ZXN0aW5nIHRleHQgYW5kIHRhcmdldCBub2RlLgorICAgICAgICAgIFRoaXMgaXMg
YWxzbyB0aGUgZmlyc3Qgc3RlcCB0byBkZWNvbXBvc2Ugc3BlbGwtY2hlY2sgcmVsYXRlZAorICAg
ICAgICAgIGNvZGUgdG8gYSBzZXBhcmF0ZSBjbGFzcy4KKyAgICAgICAgLSBBZGRlZCBFZGl0b3JD
bGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAKKyAgICAgICAgICB0
byB1c2UgYXN5bmMgc3BlbGxjaGVjayBBUEkgb24gdGhlIHBsYXRmb3JtLgorICAgICAgICAgIFRo
ZXNlIEFQSXMgYXJlIHRvdWNoZWQgYnkgU3BlbGxDaGVja2VyLgorICAgICAgICAtIFVzZWQgU3Bl
bGxDaGVja2VyIHRvIGNoZWNrIGEgcGFzdGVkIHRlc3QuIFRleHQgdG8gY2hlY2sgaXMKKyAgICAg
ICAgICBjb2xsZWN0ZWQgZnJvbSB0aGUgc3VidHJlZSB1bmRlciB0aGUgZWRpdGluZ1Jvb3QuCisg
ICAgICAgIC0gQWRkZWQgU2V0dGluZzo6bV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCB0byBjb250cm9sCisgICAgICAgICAgYXN5bmMgc3BlbGwgY2hlY2tpbmcuCisKKyAgICAgICAg
VGVzdDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdl
YkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKToKKyAgICAgICAgKHNob3dEb2N1bWVudE1hcmtlcnMp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBk
b20vUG9zaXRpb25JdGVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJh
dG9yOjpzZXRPZmZzZXRJbkxlYWZOb2RlKToKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRv
ci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OkVkaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpmaW5kRmlyc3RNYXJrYWJsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJG
b3IpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnNwZWxsQ2hlY2tlcik6CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6U3BlbGxDaGVja2VyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6flNwZWxsQ2hlY2tlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tl
cjo6aXNBc3luY2hyb25vdXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tl
cjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNr
ZXI6OmlzQnVzeSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzVmFsaWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0NoZWNrYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgIChXZWJD
b3JlOjpmb3J3YXJkSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpk
aWRDaGVjayk6CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5nUmVzdWx0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OnR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6bG9jYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6bGVuZ3RoKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlD
bGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisgICAgICAg
ICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGlu
Z3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTZXR0aW5nczo6YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorCiAyMDEw
LTEwLTI3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggOWRlYWNmNDgzZTgxNWNhMDgyYzU1ZjEw
ODE1NmYyNTVkMTQ1Mzg5Zi4uMDFjNmM5ZDg0NDUzMmY5NjJiZDE1ZDViMDcyMWI3M2JkYWI2ZDEw
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC0xMzQ1LDYgKzEzNDUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2UuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRS
ZXBsYWNlLmggXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwIFwKKwlXZWJD
b3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hl
Y2tlci5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgXAogCVdl
YkNvcmUvZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmggXAogCVdlYkNvcmUvZWRpdGluZy9T
cGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMzllNmIzNjYyOWE5ZGRhYTA3MWY0
NWE2MzQwOWU0Zjg0Yzc3ZGZmYi4uMzg2OWM1OWY0YWQxYzA4ODE3ZGM3ZDczN2EwMWRkNTBhZmY3
MDA1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC00ODgsNiArNDg4LDcgQEAgX19aTjdXZWJDb3JlMjNSZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZEMxRVBOU184RG9jdW1lbnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTZEb2MK
IF9fWk43V2ViQ29yZTIzY3JlYXRlRnJhZ21lbnRGcm9tTm9kZXNFUE5TXzhEb2N1bWVudEVSS04z
V1RGNlZlY3RvcklQTlNfNE5vZGVFTG0wRUVFCiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVs
dExhbmd1YWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxp
c3RXcml0ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKK19fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pON1dlYkNvcmUyNERv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2Vy
MTBNYXJrZXJUeXBlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxNG1h
cmtlcnNGb3JOb2RlRVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTBNYXJr
ZXJUeXBlRQpAQCAtODg4LDYgKzg4OSw3IEBAIF9fWk43V2ViQ29yZTlmb250Q2FjaGVFdgogX19a
TjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMyXwogX19aTjdXZWJD
b3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCitf
X1pON1dlYkNvcmUxMlNwZWxsQ2hlY2tlcjhkaWRDaGVja0VpUktOM1dURjZWZWN0b3JJTlNfMTlT
cGVsbENoZWNraW5nUmVzdWx0RUxtMEVFRQogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0
MTJnbG9iYWxPYmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3JlYXRlQ0ZTdHJpbmdFdgogX19a
Tks3V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYzdkY2YxODJlNjQ3ZTYz
ODk4NGI3ZTE3OGJmNTY4NWFhNWYzNTlhMy4uZjlhN2M4NGNmM2Q4MzFhMDQ1ZTZkMjlhMmQyZmFi
MTQ2M2Y3MDYzOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTE0MjcsNiArMTQyNyw4IEBACiAgICAgICAgICAgICAnZWRpdGlu
Zy9TbWFydFJlcGxhY2UuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2VDRi5j
cHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCcsCisgICAgICAg
ICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwJywKKyAgICAgICAgICAgICdlZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQu
Y3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuaCcsCiAgICAg
ICAgICAgICAnZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAnLApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDYxODExYmIx
MWQ0MmI3NWE2YmFlM2UzNzkzN2M5OGUwOTQwNzdkMC4uMWE2ODM0ZDFjNGZmMWM3YTNhNDllODBk
MWU5YTM0OGVjZTRiMzhiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04MTEsNiArODExLDcgQEAgU09VUkNFUyArPSBcCiAgICAg
ZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCBcCiAgICAgZWRpdGluZy9TZXROb2RlQXR0
cmlidXRlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisg
ICAgZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0RWxlbWVudENv
bW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBcCiAgICAg
ZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmNwcCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0ZTI5NWFlNzhhZmEyMGI4ZGQ1N2Uw
ZGFmMjI5ZjA4NWYyYTE2ZDNkLi43YTcwYWFiMmJlZDUxYjcwMzM5ODNkYTYyNzVlNmY1NzUyMmQ4
OTNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ3ODc2LDYgKzQ3
ODc2LDExNCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVsbENoZWNrZXIuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdc
U3BlbGxDaGVja2VyLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkv
Pg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZWRpdGluZ1xTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCINCisJCQkJPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJ
CTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdFRleHROb2RlQ29udGFpbmlu
Z0VsZW1lbnRDb21tYW5kLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2Y2YwMjYzYTFlZjZhOTBjZjAxOTdmNDFh
ZTg1OTc2ZmFhNDFmMmVjLi5jYTY0YjYzMzkxNjNmZmU4YTQyYTYwNDlhNTJiMzZlNDA0NDgxYmUz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzAzMiw2
ICszMDMyLDggQEAKIAkJQTc3OTc5MjgwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI0
MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi87IH07CiAJCUE3Nzk3OTI5MEQ2
QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VE
YXRhLmggKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4NDk0MUEw
QjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi87IH07CisJCUE3OEZFMTNCMTIzNjZC
MTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hl
Y2tlci5jcHAgKi87IH07CisJCUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNr
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEZF
MTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzk1NDYzRTBCNUM0QzgwMDA3QjQzOEYg
LyogRHJhZ0RhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi87IH07
CiAJCUE3OTU0NjQzMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDY0MjBCNUM0Q0I0MDA3QjQz
OEYgLyogRHJhZ0RhdGEuY3BwICovOyB9OwogCQlBN0FBNjZENjExQzVFRDZBMDAxRDhDOEMgLyog
UmVuZGVySW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuY3Bw
ICovOyB9OwpAQCAtOTEwMiw2ICs5MTA0LDggQEAKIAkJQTc3OTc5MjQwRDZCOUU2NDAwMzg1MUI5
IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3OTc5MjUw
RDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3BlbGxDaGVja2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNw
ZWxsQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9IFNwZWxsQ2hlY2tl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDYzRDBCNUM0QzgwMDA3QjQz
OEYgLyogRHJhZ0RhdGFNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gRHJhZ0RhdGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OTU0
NjQyMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBEcmFnRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW5kaWNhdG9yLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTA4LDYgKzE0NTEyLDggQEAKIAkJCQk0QjZG
QTZGMzBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmNwcCAqLywKIAkJCQk0QjZGQTZG
MjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi8sCiAJCQkJNEI2RkE2RjYwQzM5
RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCAqLywKKwkJCQlBNzhGRTEzOTEyMzY2
QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLywKKwkJCQlBNzhGRTEzQTEyMzY2QjEw
MDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi8sCiAJCQkJOTMzMDlEQzIwOTlFNjQ5MTAwNTZF
NTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REMzMDk5RTY0OTEw
MDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQzQwOTlFNjQ5
MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCAqLywKQEAgLTIwNjc1LDYgKzIw
NjgxLDcgQEAKIAkJCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5wdXRDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1MzVCQzk1MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVl
Y2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NzhGOTIwMTFFNEUzMjgw
MEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzhG
RTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNjA5OUU2NDkyMDA1NkU1ODEgLyog
U3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMzMwMyw2ICsyMzMxMCw3IEBACiAJCQkJNjI2Q0RFMEUxMTQwNDI0QzAwMUU1QTY4IC8qIFNw
YXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NzhGOTBCMTFEREYyNjkw
MEQ5MzNDNSAvKiBTcGVlY2hJbnB1dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTM1QkM5NDEy
MDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTMzMDlFMTEwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTMwOTlFNjQ5MjAwNTZFNTgxIC8q
IFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTE1MDk5
RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyLmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAK
aW5kZXggMmI3ZmQ4NWQ3ZmVjZDJmYmM4YzhkM2UyYzk1NTZlYTdlOTk5OTI4Zi4uOGM1NmI1NGNk
NWJiYzI1N2Q4ZTg1MjE3YjllOTY0MDY4N2E3MTg5OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuY3BwCkBAIC01MjQsNCArNTI0LDMyIEBAIHZvaWQgRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyOjpzZXRNYXJrZXJzQWN0aXZlKE5vZGUqIG5vZGUsIHVuc2lnbmVkIHN0YXJ0
T2Zmc2V0CiAgICAgICAgIG5vZGUtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKIH0KIAorCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKCkg
Y29uc3QKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVkIG5vZGVzIGhhdmUgbWFya2VyczpcbiIs
IG1fbWFya2Vycy5zaXplKCkpOworICAgIE1hcmtlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
bV9tYXJrZXJzLmVuZCgpOworICAgIGZvciAoTWFya2VyTWFwOjpjb25zdF9pdGVyYXRvciBub2Rl
SXRlcmF0b3IgPSBtX21hcmtlcnMuYmVnaW4oKTsgbm9kZUl0ZXJhdG9yICE9IGVuZDsgKytub2Rl
SXRlcmF0b3IpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG5vZGVJdGVyYXRvci0+Zmlyc3QuZ2V0
KCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXAiLCBub2RlKTsKKyAgICAgICAgTWFya2Vy
TWFwVmVjdG9yUGFpciogdmVjdG9yUGFpciA9IG5vZGVJdGVyYXRvci0+c2Vjb25kOworICAgICAg
ICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+JiBtYXJrZXJzID0gdmVjdG9yUGFpci0+Zmlyc3Q7Cisg
ICAgICAgIHVuc2lnbmVkIG1hcmtlckNvdW50ID0gbWFya2Vycy5zaXplKCk7CisgICAgICAgIGZv
ciAodW5zaWduZWQgbWFya2VySW5kZXggPSAwOyBtYXJrZXJJbmRleCA8IG1hcmtlckNvdW50OyAr
K21hcmtlckluZGV4KQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgJWQ6WyVkOiVkXSgl
ZCkiLCBtYXJrZXJzW21hcmtlckluZGV4XS50eXBlLCBtYXJrZXJzW21hcmtlckluZGV4XS5zdGFy
dE9mZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRleF0uZW5kT2Zmc2V0LCBtYXJrZXJzW21hcmtlcklu
ZGV4XS5hY3RpdmVNYXRjaCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICB9
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKKyNpZm5kZWYgTkRFQlVH
Cit2b2lkIHNob3dEb2N1bWVudE1hcmtlcnMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmIChjb250cm9sbGVyKQorICAgICAgICBj
b250cm9sbGVyLT5zaG93TWFya2VycygpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oCmluZGV4IDg5MjFiYWFjNTlkYWVhOWQ3MzNkMWY4MzdmMDM2Y2Y2NmMy
OWY3NWMuLjM0MTBlN2ZmMzNkZTRhMmE5YmQzYjljZWRiNTM5OGY3MzFjZjA5MDcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCkBAIC02MSw2ICs2MSwxMCBAQCBwdWJsaWM6
CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBtYXJrZXJzRm9yTm9kZShOb2RlKik7CiAgICAg
VmVjdG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNGb3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpN
YXJrZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMpOwogCisjaWZuZGVmIE5ERUJV
RworICAgIHZvaWQgc2hvd01hcmtlcnMoKSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IHR5cGVkZWYgc3RkOjpwYWlyPFZlY3RvcjxEb2N1bWVudE1hcmtlcj4sIFZlY3RvcjxJbnRSZWN0
PiA+IE1hcmtlck1hcFZlY3RvclBhaXI7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxOb2Rl
PiwgTWFya2VyTWFwVmVjdG9yUGFpcio+IE1hcmtlck1hcDsKQEAgLTY5LDQgKzczLDggQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjaWZuZGVmIE5ERUJVRwordm9pZCBz
aG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxl
ciopOworI2VuZGlmCisKICNlbmRpZiAvLyBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJfaApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAgYi9XZWJDb3JlL2RvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmNwcAppbmRleCBkMmMzYTNmMGNmNGUwZjAzYjQwZGI1NDZkOTlhZjEx
MDJjZDUxNDc2Li40MmNjNTEzNzEyNjc2OTk2ZTRiYjY4ZDE5NWI0YzRhYjJmZWZhYmVhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAorKysgYi9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtOTgsNiArOTgsMTMgQEAgdm9pZCBQb3NpdGlvbkl0
ZXJhdG9yOjpkZWNyZW1lbnQoKQogICAgIH0KIH0KIAordm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjpz
ZXRPZmZzZXRJbkxlYWZOb2RlKGludCBvZmZzZXQpCit7CisgICAgQVNTRVJUKCFtX2FuY2hvck5v
ZGUtPmhhc0NoaWxkTm9kZXMoKSk7CisgICAgQVNTRVJUKDAgPD0gb2Zmc2V0ICYmIG9mZnNldCA8
PSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpKTsKKyAgICBtX29mZnNldEluQW5j
aG9yID0gb2Zmc2V0OworfQorCiBib29sIFBvc2l0aW9uSXRlcmF0b3I6OmF0U3RhcnQoKSBjb25z
dAogewogICAgIGlmICghbV9hbmNob3JOb2RlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9z
aXRpb25JdGVyYXRvci5oIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCmluZGV4IDdh
Zjg5Nzc1OTFkMTZjMjk3OTMxODkwZWJkMWFlMDY5YzJkNDdmMzYuLjA4MzI5YmIxNWNkM2U1MjEw
MDQ2MjkzNTg4YWI3YWFiZDMwZmU0ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
SXRlcmF0b3IuaAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKQEAgLTU2LDYg
KzU2LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5j
aG9yTm9kZTsgfQogICAgIGludCBvZmZzZXRJbkxlYWZOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9v
ZmZzZXRJbkFuY2hvcjsgfQorICAgIHZvaWQgc2V0T2Zmc2V0SW5MZWFmTm9kZShpbnQgb2Zmc2V0
KTsKIAogICAgIGJvb2wgYXRTdGFydCgpIGNvbnN0OwogICAgIGJvb2wgYXRFbmQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKaW5kZXggMmU1ODM4OWE0YjU5OWZmMzFjNWM1ODQ4YjQ4OGRiOWU2MTIxYTBj
OC4uOWU0NTQzNmE5MDhlOWMyZmE1YzFhNWQ2OGQ5NmY3NDQ0MmY1YzAzYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKQEAgLTY1LDkgKzY1LDExIEBACiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIgog
I2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2luY2x1
ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdW5kLmgiCisjaW5jbHVk
ZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRFdmVu
dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMzgyLDYgKzM4NCwxMCBAQCB2b2lk
IEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIAogICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIGZyYWdtZW50LCBzZWxlY3RS
ZXBsYWNlbWVudCwgc21hcnRSZXBsYWNlLCBtYXRjaFN0eWxlKSk7CiAgICAgcmV2ZWFsU2VsZWN0
aW9uQWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CisKKyAgICBOb2RlKiBub2RlVG9DaGVjayA9IG1f
ZnJhbWUtPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgaWYgKG1fc3Bl
bGxDaGVja2VyLT5jYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGVUb0NoZWNrKSkKKyAgICAgICAg
bV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zvcihub2RlVG9DaGVjayk7CiB9CiAKIHZv
aWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBi
b29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKQEAgLTEwNTYsNiArMTA2
Miw3IEBAIEVkaXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBi
eSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1h
dGNoZXMgSUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkK
ICAgICAsIG1fa2lsbFJpbmcoYWRvcHRQdHIobmV3IEtpbGxSaW5nKSkKKyAgICAsIG1fc3BlbGxD
aGVja2VyKG5ldyBTcGVsbENoZWNrZXIoZnJhbWUsIGZyYW1lLT5wYWdlKCkgPyBmcmFtZS0+cGFn
ZSgpLT5lZGl0b3JDbGllbnQoKSA6IDApKQogICAgICwgbV9jb3JyZWN0aW9uUGFuZWxUaW1lcih0
aGlzLCAmRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKQogICAgICwgbV9hcmVNYXJr
ZWRUZXh0TWF0Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogewpAQCAtMzYyOSwxMiArMzYzNiwyOSBA
QCB2b2lkIEVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGJvbwogICAgIHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24o
b2xkU2VsZWN0aW9uKTsKIH0KIAorc3RhdGljIE5vZGUqIGZpbmRGaXJzdE1hcmthYmxlKE5vZGUq
IG5vZGUpCit7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgaWYgKCFub2RlLT5yZW5kZXJl
cigpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigp
LT5pc1RleHQoKSkKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICBpZiAobm9kZS0+
cmVuZGVyZXIoKS0+aXNUZXh0Q29udHJvbCgpKQorICAgICAgICAgICAgbm9kZSA9IHRvUmVuZGVy
VGV4dENvbnRyb2wobm9kZS0+cmVuZGVyZXIoKSktPnZpc2libGVQb3NpdGlvbkZvckluZGV4KDEp
LmRlZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgICAgICBlbHNlIGlmIChub2RlLT5maXJzdENo
aWxkKCkpCisgICAgICAgICAgICBub2RlID0gbm9kZS0+Zmlyc3RDaGlsZCgpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gMDsKK30KKwogYm9vbCBFZGl0b3I6OnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdN
YXJrZXJGb3IoaW50IGZyb20sIGludCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9
IG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKTsKLSAgICBpZiAoIW5vZGUgfHwg
IW5vZGUtPnJlbmRlcmVyKCkpCisgICAgTm9kZSogbm9kZSA9IGZpbmRGaXJzdE1hcmthYmxlKG1f
ZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKSk7CisgICAgaWYgKCFub2RlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQVNTRVJUKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dCgp
KTsKIAogICAgIHVuc2lnbmVkIGludCBzdGFydE9mZnNldCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
IGludD4oZnJvbSk7CiAgICAgdW5zaWduZWQgaW50IGVuZE9mZnNldCA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkIGludD4oZnJvbSArIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMGFkNDczNzgyZDNhNGY1
YjRlN2MxNGQzY2U3NTBkZGI0ZTMyOTUyZS4uZjU0ZTc4NzhjNDI0MWVmNDY5OTAzNmIxM2NlNmY4
MGY0NjVkZGU5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNTMsNiArNTMsNyBAQCBjbGFzcyBIaXRUZXN0UmVz
dWx0OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xhc3MgU2ltcGxlRm9u
dERhdGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEV2ZW50
OwogCkBAIC0yOTgsNiArMjk5LDcgQEAgcHVibGljOgogICAgIFZpc2libGVTZWxlY3Rpb24gc2Vs
ZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJpbmcqIGtpbGxSaW5nKCkgY29u
c3QgeyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNwZWxsQ2hlY2tlciogc3BlbGxD
aGVja2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIuZ2V0KCk7IH0KIAogICAgIEVk
aXRpbmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0zNzYsNiArMzc4LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlOwogICAgIGJv
b2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tpbGxSaW5n
OworICAgIE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwogICAgIFJlZlB0cjxS
YW5nZT4gbV9yYW5nZVRvQmVSZXBsYWNlZEJ5Q29ycmVjdGlvbjsKICAgICBTdHJpbmcgbV9zdHJp
bmdUb0JlUmVwbGFjZWRCeUNvcnJlY3Rpb247CiAgICAgU3RyaW5nIG1fY29ycmVjdGlvblJlcGxh
Y2VtZW50U3RyaW5nOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5j
cHAgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xODA3NDc0
Yjc1Mzg2YmU3NzIxZWM4ZGVlMzBkOTkzMDdiMTAxZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5oIgorCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIK
KyNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCisj
aW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlBvc2l0aW9uSXRlcmF0b3IuaCIKKyNpbmNsdWRl
ICJSYW5nZS5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tlcihGcmFt
ZSogZnJhbWUsIEVkaXRvckNsaWVudCogY2xpZW50KQorICAgIDogbV9mcmFtZShmcmFtZSkKKyAg
ICAsIG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcmVxdWVzdFNlcXVlbmNlKDApCit7Cit9CisK
K1NwZWxsQ2hlY2tlcjo6flNwZWxsQ2hlY2tlcigpCit7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2Vy
Ojppbml0UmVxdWVzdChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChjYW5DaGVja0FzeW5jaHJv
bm91c2x5KG5vZGUpKTsKKworICAgIFN0cmluZyB0ZXh0ID0gbm9kZS0+dGV4dENvbnRlbnQoKTsK
KyAgICBpZiAoIXRleHQubGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1f
cmVxdWVzdE5vZGUgPSBub2RlOworICAgIG1fcmVxdWVzdFRleHQgPSB0ZXh0OworICAgIG1fcmVx
dWVzdFNlcXVlbmNlKys7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTcGVsbENoZWNr
ZXI6OmNsZWFyUmVxdWVzdCgpCit7CisgICAgbV9yZXF1ZXN0Tm9kZS5jbGVhcigpOworICAgIG1f
cmVxdWVzdFRleHQgPSBTdHJpbmcoKTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQXN5bmNo
cm9ub3VzRW5hYmxlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUtPnNldHRpbmdzKCkg
JiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSog
bm9kZSkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNDaGVja2FibGUobm9kZSkgJiYgaXNBc3luY2hy
b25vdXNFbmFibGVkKCkgJiYgIWlzQnVzeSgpOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNC
dXN5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKTsKK30KKworYm9v
bCBTcGVsbENoZWNrZXI6OmlzVmFsaWQoaW50IHNlcXVlbmNlKSBjb25zdAoreworICAgIHJldHVy
biBtX3JlcXVlc3ROb2RlLmdldCgpICYmIG1fcmVxdWVzdFRleHQubGVuZ3RoKCkgJiYgbV9yZXF1
ZXN0U2VxdWVuY2UgPT0gc2VxdWVuY2U7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0NoZWNr
YWJsZShOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJldHVybiBub2RlICYmIG5vZGUtPnJlbmRl
cmVyKCk7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IoTm9kZSog
bm9kZSkKK3sKKyAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hyb25vdXNseShub2RlKSk7CisKKyAg
ICBpZiAoIWluaXRSZXF1ZXN0KG5vZGUpKQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnQt
PnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHRoaXMsIG1fcmVxdWVzdFNlcXVlbmNlLCBtX3JlcXVl
c3RUZXh0KTsKK30KKworc3RhdGljIGJvb2wgZm9yd2FyZEl0ZXJhdG9yKFBvc2l0aW9uSXRlcmF0
b3ImIGl0ZXJhdG9yLCBpbnQgZGlzdGFuY2UpCit7CisgICAgaW50IHJlbWFpbmluZyA9IGRpc3Rh
bmNlOworICAgIHdoaWxlICghaXRlcmF0b3IuYXRFbmQoKSkgeworICAgICAgICBpZiAoaXRlcmF0
b3Iubm9kZSgpLT5pc0NoYXJhY3RlckRhdGFOb2RlKCkpIHsKKyAgICAgICAgICAgIGludCBsZW5n
dGggPSBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhpdGVyYXRvci5ub2RlKCkpOworICAgICAgICAgICAg
aW50IGxhc3QgPSBsZW5ndGggLSBpdGVyYXRvci5vZmZzZXRJbkxlYWZOb2RlKCk7CisgICAgICAg
ICAgICBpZiAocmVtYWluaW5nIDwgbGFzdCkgeworICAgICAgICAgICAgICAgIGl0ZXJhdG9yLnNl
dE9mZnNldEluTGVhZk5vZGUoaXRlcmF0b3Iub2Zmc2V0SW5MZWFmTm9kZSgpICsgcmVtYWluaW5n
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgcmVtYWluaW5nIC09IGxhc3Q7CisgICAgICAgICAgICBpdGVyYXRvci5zZXRPZmZzZXRJ
bkxlYWZOb2RlKGl0ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKSArIGxhc3QpOworICAgICAgICB9
CisKKyAgICAgICAgaXRlcmF0b3IuaW5jcmVtZW50KCk7CisgICAgfQorCisgICAgcmV0dXJuIGZh
bHNlOyAgICAKK30KKwordm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwg
Y29uc3QgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQoreworICAgIGlmICgh
aXNWYWxpZChzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9yZXF1ZXN0
Tm9kZS0+cmVuZGVyZXIoKSkgeworICAgICAgICBjbGVhclJlcXVlc3QoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGludCBzdGFydE9mZnNldCA9IDA7CisgICAgUG9zaXRpb25JdGVy
YXRvciBzdGFydCA9IFBvc2l0aW9uKG1fcmVxdWVzdE5vZGUsIDApOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAocmVzdWx0c1tp
XS50eXBlKCkgIT0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nICYmIHJlc3VsdHNbaV0udHlwZSgp
ICE9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgLy8gVG8gYXZvaWQgbW92aW5nIHRoZSBwb3NpdGlvbiBiYWNrd2FyZCwgd2UgYXNzdW1l
IHRoZSBnaXZlbiByZXN1bHRzIGFyZSBzb3J0ZWQgd2l0aAorICAgICAgICAvLyBzdGFydE9mZnNl
dCBhcyB0aGUgb25lcyByZXR1cm5lZCBieSBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmc6XS4KKyAgICAgICAgQVNTRVJUKHN0YXJ0T2Zmc2V0IDw9IHJlc3VsdHNbaV0ubG9j
YXRpb24oKSk7CisgICAgICAgIGlmICghZm9yd2FyZEl0ZXJhdG9yKHN0YXJ0LCByZXN1bHRzW2ld
LmxvY2F0aW9uKCkgLSBzdGFydE9mZnNldCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
UG9zaXRpb25JdGVyYXRvciBlbmQgPSBzdGFydDsKKyAgICAgICAgaWYgKCFmb3J3YXJkSXRlcmF0
b3IoZW5kLCByZXN1bHRzW2ldLmxlbmd0aCgpKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIC8vIFVzZXJzIG9yIEphdmFTY3JpcHQgYXBwbGljYXRpb25zIG1heSBjaGFuZ2UgdGV4dCB3
aGlsZSBhIHNwZWxsLWNoZWNrZXIgY2hlY2tzIGl0cworICAgICAgICAvLyBzcGVsbGluZ3MgaW4g
dGhlIGJhY2tncm91bmQuIFRvIGF2b2lkIGFkZGluZyBtYXJrZXJzIHRvIHRoZSB3b3JkcyBtb2Rp
ZmllZCBieSB1c2VycyBvcgorICAgICAgICAvLyBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucywgcmV0
cmlldmUgdGhlIHdvcmRzIGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGFuZCBjb21wYXJlIHRoZW0g
d2l0aAorICAgICAgICAvLyB0aGUgb3JpZ2luYWwgb25lcy4KKyAgICAgICAgUmVmUHRyPFJhbmdl
PiByYW5nZSA9IFJhbmdlOjpjcmVhdGUobV9yZXF1ZXN0Tm9kZS0+ZG9jdW1lbnQoKSwgc3RhcnQs
IGVuZCk7CisgICAgICAgIC8vIEZJWE1FOiBVc2UgdGV4dENvbnRlbnQoKSBjb21wYXRpYmxlIHN0
cmluZyBjb252ZXJzaW9uLgorICAgICAgICBTdHJpbmcgZGVzdGluYXRpb24gPSByYW5nZS0+dGV4
dCgpOworICAgICAgICBTdHJpbmcgc291cmNlID0gbV9yZXF1ZXN0VGV4dC5zdWJzdHJpbmcocmVz
dWx0c1tpXS5sb2NhdGlvbigpLCByZXN1bHRzW2ldLmxlbmd0aCgpKTsKKyAgICAgICAgaWYgKGRl
c3RpbmF0aW9uID09IHNvdXJjZSkKKyAgICAgICAgICAgIG1fcmVxdWVzdE5vZGUtPmRvY3VtZW50
KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgpLCByZXN1bHRzW2ldLnR5cGUoKSk7
CisKKyAgICAgICAgc3RhcnRPZmZzZXQgPSByZXN1bHRzW2ldLmxvY2F0aW9uKCk7CisgICAgfQor
CisgICAgY2xlYXJSZXF1ZXN0KCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oIGIvV2ViQ29yZS9lZGl0aW5n
L1NwZWxsQ2hlY2tlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5MjJmMGUyMzMwMDE2ZjgzZjY5MGE0MDBiMjJl
ZTEyNzljODlmODAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFNwZWxsQ2hlY2tlcl9o
CisjZGVmaW5lIFNwZWxsQ2hlY2tlcl9oCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVk
aXRvckNsaWVudDsKK2NsYXNzIEZyYW1lOworCitjbGFzcyBTcGVsbENoZWNraW5nUmVzdWx0IHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVsbENoZWNraW5nUmVzdWx0KERvY3VtZW50TWFya2Vy
OjpNYXJrZXJUeXBlIHR5cGUgPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcsIGludCBsb2NhdGlv
biA9IDAsIGludCBsZW5ndGggPSAwKQorICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAs
IG1fbG9jYXRpb24obG9jYXRpb24pCisgICAgICAgICwgbV9sZW5ndGgobGVuZ3RoKQorICAgIHsK
KyAgICB9CisKKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9IAorICAgIGludCBsb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbG9j
YXRpb247IH0KKyAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW5ndGg7IH0KKwor
cHJpdmF0ZToKKyAgICBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSBtX3R5cGU7CisgICAgaW50
IG1fbG9jYXRpb247CisgICAgaW50IG1fbGVuZ3RoOworfTsKKworY2xhc3MgU3BlbGxDaGVja2Vy
IDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTcGVsbENoZWNr
ZXIoRnJhbWUqLCBFZGl0b3JDbGllbnQqKTsKKyAgICB+U3BlbGxDaGVja2VyKCk7CisKKyAgICBi
b29sIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpIGNvbnN0OworICAgIGJvb2wgY2FuQ2hlY2tBc3lu
Y2hyb25vdXNseShOb2RlKikgY29uc3Q7CisgICAgYm9vbCBpc0J1c3koKSBjb25zdDsKKyAgICBi
b29sIGlzVmFsaWQoaW50IHNlcXVlbmNlKSBjb25zdDsKKyAgICBib29sIGlzQ2hlY2thYmxlKE5v
ZGUqKSBjb25zdDsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKik7CisgICAgdm9p
ZCBkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0
PiYpOworCitwcml2YXRlOgorICAgIGJvb2wgaW5pdFJlcXVlc3QoTm9kZSopOworICAgIHZvaWQg
Y2xlYXJSZXF1ZXN0KCk7CisKKyAgICBGcmFtZSogbV9mcmFtZTsKKyAgICBFZGl0b3JDbGllbnQq
IG1fY2xpZW50OworCisgICAgUmVmUHRyPE5vZGU+IG1fcmVxdWVzdE5vZGU7CisgICAgU3RyaW5n
IG1fcmVxdWVzdFRleHQ7CisgICAgaW50IG1fcmVxdWVzdFNlcXVlbmNlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gU3BlbGxDaGVja2VyX2gKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKaW5kZXggZWMzNzY2ODI5NWFhMTRiNjQ3MDlkMzJjNDM5MmMzYWU3ZWQxYTc5NS4uM2Qz
MmRkNzg4ZGYxYzI4ZWJjMGYyMmJlZDIwODRkOWJkNjJhODcyMCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKQEAgLTQ4MSw4ICs0ODEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCkgeyB9Ci0KLQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHsgfQog
fTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdl
L0VkaXRvckNsaWVudC5oIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IDk3YjA5
MDI1Y2M0NTM3ZTJhM2ViZDljNzVhMjEwMjAzOTRlZmUwOWUuLmI4NWFhZTM2NDRlMjU1M2JlYjBl
YzkzYWYzOTQ2Y2U0ODI5MDI0ZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaAorKysgYi9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKQEAgLTY1LDYgKzY1LDcgQEAg
Y2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTm9kZTsKIGNs
YXNzIFJhbmdlOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsK
IGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIApAQCAtMjAxLDYgKzIwMiw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0
cmluZz4mIGd1ZXNzZXMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBl
bmFibGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
aW5kZXggZmFjMzViZWM4ZmIyYWIzOWI3MzJkOGI3ODA0YTJmZjU1NTViNzgxYy4uNTNjZTI5ZDcz
NWEyNmYwZWQ4N2YwMDRiNTkyMWQ0ZGQwODUwOTI3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0xNDUsNiAr
MTQ1LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQogICAgICwgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZChmYWxzZSkKICNlbmRpZgor
ICAgICwgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
bWVtb3J5SW5mb0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRp
b24oZmFsc2UpCiAgICAgLCBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzKGZhbHNlKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApp
bmRleCBiOGQ3YTMxODc3ZTQwMmYwNWU2OTg5MzAzYzMwODg2NmNlY2FkMDNiLi4zMGRkYzg2NWM4
NmViOGI3YzU0ZDVlNGFkYTg5MTliOTlhOWQwNTI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaAorKysgYi9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzE2LDYgKzMxNiw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBmdWxsU2NyZWVuRW5hYmxlZCgp
IGNvbnN0ICB7IHJldHVybiBtX2Z1bGxTY3JlZW5BUElFbmFibGVkOyB9CiAjZW5kaWYKIAorICAg
ICAgICB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZmxhZykg
eyBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZmxhZzsgfQorICAgICAgICBi
b29sIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1f
YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ7IH0KKwogICAgICAgICB2b2lkIHNldE1l
bW9yeUluZm9FbmFibGVkKGJvb2wgZmxhZykgeyBtX21lbW9yeUluZm9FbmFibGVkID0gZmxhZzsg
fQogICAgICAgICBib29sIG1lbW9yeUluZm9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9tZW1v
cnlJbmZvRW5hYmxlZDsgfQogCkBAIC00MTgsNiArNDIxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAgICAgYm9vbCBtX2Z1bGxTY3JlZW5B
UElFbmFibGVkIDogMTsKICNlbmRpZgorICAgICAgICBib29sIG1fYXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQ6IDE7CiAgICAgICAgIGJvb2wgbV9tZW1vcnlJbmZvRW5hYmxlZDogMTsK
ICAgICAgICAgYm9vbCBtX2ludGVyYWN0aXZlRm9ybVZhbGlkYXRpb246IDE7CiAgICAgICAgIGJv
b2wgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrczogMTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGEyZDc1Mjk3
ZTdmNTI5N2JjZDM4ZmM5NDZhZjNlYjBhOGNmODViYTAuLjk0MzNjODVmNzU3YmE2NGViYTFkYzVk
ZWFlNGIxMWUzMDJmMzY0Y2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEw
LTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hl
Y2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKwor
ICAgICAgICAqIHNyYy9FZGl0b3JDbGllbnRJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudEltcGw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yNyAgRXJp
YyBVaHJoYW5lICA8ZXJpY3VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmlkIExldmluLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCBiMDVh
NTkyNmJmNzExMjg2MWMyNTNhNDZjMjM0YTZkNWI3ZTMzNWQ3Li44ZmU2MzU2NDUxNGQ1YWI1NzEy
ZDZlNjBkZjcxODUwZThlYTk3MDFhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Vk
aXRvckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuaApAQCAtMTEwLDYgKzExMCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6
U3RyaW5nJikge30KIAogICAgIC8vIFNob3dzIHRoZSBmb3JtIGF1dG9maWxsIHBvcHVwIGZvciB8
bm9kZXwgaWYgaXQgaXMgYW4gSFRNTElucHV0RWxlbWVudCBhbmQKICAgICAvLyBpdCBpcyBlbXB0
eS4gIFRoaXMgaXMgY2FsbGVkIHdoZW4geW91IHByZXNzIHRoZSB1cCBvciBkb3duIGFycm93IGlu
IGEKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKaW5kZXggZWQ3MjM1ZjMxMGU4ODY5NjgwNzhjM2RhNmVmNmUxMWRjOGUzNWMwNC4uMmE3Njky
ZjFiNDlmNjU5YTgyZjdmMTg5Y2Y0Y2ExZTkyZGJmYmRlYyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMg
bm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRp
b24uCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisKIDIwMTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggOWY2MGNmYmFkYjQyZjA3ZjEzNmJl
N2Q0ZTc5YzQyMDk0NDM4ZDFiMi4uZjE2ODdmN2IzZWI5ZDRiMTM0NmI0NzExMTYxNzBkMDEyZTE4
ZmNhMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRF
ZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBA
IC0xMTMsNiArMTEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9y
V29yZChjb25zdCBTdHJpbmcmLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdU
Rjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRl
eCA1N2MzZTI3ZTJkMDNjN2VmNGNiYWRiMjZiNDI5YWU4MDUwNjFjN2ViLi5jMjdmMDRhYWI4MTM4
OTBiMWYxOGE3YWVmMjM3MWU0YjNkOWUxMmQ5IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEw
LTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hl
Y2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0y
NyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmgKaW5kZXggZjlmZjgyZTAwYzRhMzBmNjYyYzFkYTMzZmIzYTVhOTAx
MTlkMzA1OS4uNTY4MDI3ZmE2YTAwNzY4YmYyZTkyMDFkOWFjOGQ4MjdjYWJmMGExYiAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0xMzIsNiArMTMy
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vl
c3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3Bl
bGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKICAgICBwcml2YXRlOgog
ICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFp
a3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwppbmRleCBlZDA2YjJjYmNjZTg1
ZGIxMjk4ZWIzZTQ0Y2Y3YjEwMmViZmQ3ZGI5Li40YjE3NmUwYzdlNzNlYzllMWY2YzVjYWI3NmVk
ZDJmZWJmNTc0MDBkIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5
MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yNiAg
SmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50SGFpa3UuaCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRIYWlrdS5oCmluZGV4IDVjYmVjMjcyMjEzY2M2Y2U5ZTdjYTExZDBlMDVlNjUyYzZl
NzdjZDEuLmYzZjEwNWUzODhiNzFlYjM4NGIzMmY1N2I4NWM3OWMxZWY3MGEzYmMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCisrKyBi
L1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCkBAIC0xMTAs
NiArMTEwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0
R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwg
Y29uc3QgU3RyaW5nJikge30KIAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGVlNDZkNTMyNzQ5ZDYzZTViNTgwNmMzYzgwZWJmYWY1MzczMzNmOTIuLmY2YjNlNmM0NzAw
NzgyMDFjZDZlMTZiOTNiMmYyYWZjY2U3Y2Y3MmEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAt
MTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBj
aGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhc3luY2hyb25vdXMgc3BlbGwgY2hlY2tp
bmcgQVBJIHRvIFdlYkVkaXRvckNsaWVudCB1c2luZworICAgICAgICAtW05TU3BlbGxDaGVja2Vy
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXS4KKyAgICAgICAgTm90ZSB0aGF0IFdlYkVkaXRvclNw
ZWxsQ2hlY2tSZXNwb25kZXIgaXMgYSBzbWFsbCBjbGFzcyB0byByZWNlaXZlCisgICAgICAgIHJl
cXVlc3RlZCBzcGVsbC1jaGVja2luZyByZXN1bHQuIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMK
KyAgICAgICAgZGlzYWJsZWQgYXQgZGVmYXVsdC4KKyAgICAgICAgCisgICAgICAgIEFsc28gYWRk
ZWQgW1dlYlByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOl0g
dG8gCisgICAgICAgIGVuYWJsZSB0aGUgZmVhdHVyZSBmcm9tIExheW91dFRlc3RDb250cm9sbGVy
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJFZGl0
b3JTcGVsbENoZWNrUmVzcG9uZGVyIGluaXRXaXRoU2VuZGVyOldlYkNvcmU6OnNlcXVlbmNlOnJl
c3VsdHM6XSk6CisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9y
bV0pOgorICAgICAgICAodG9Db3JlU3BlbGxpbmdSZXN1bHQpOgorICAgICAgICAoLVtXZWJFZGl0
b3JTcGVsbENoZWNrUmVzcG9uZGVyIFdURjo6V2ViQ29yZTo6XSk6CisgICAgICAgIChXZWJFZGl0
b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAg
KC1bV2ViUHJlZmVyZW5jZXMgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkXSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2Vz
Q2hhbmdlZE5vdGlmaWNhdGlvbjpdKToKKwogMjAxMC0xMC0yOCAgSXZhbiBLcnN0acSHICA8aWtl
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJrIFJvd2UuCkBAIC0xMzg0LDYg
KzE0MTYsMzIgQEAKIAogMjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBz
cGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEltcGxlbWVudGVk
IGFzeW5jIHNwZWxsLWNoZWNrIEFQSXMgb24gV2ViRWRpdG9yQ2xpZW50LgorICAgICAgICBUaGUg
aW1wbGVtZW50YXRpb25zIGFyZSB1c2luZyBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmddCisgICAgICAgIHdoaWNoIGlzIGF2YWlsYWJsZSBvbmx5IG9uIE1hYyBPUyAxMC42
IG9yIGxhdGVyLgorICAgICAgICAKKyAgICAgICAgTm90ZSB0aGF0IFtOU1NwZWxsQ2hlY2tlciBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10gY291bGQgaW52b2tlCisgICAgICAgIHRoZSBjYWxsYmFj
ayBibG9jayBvbiBvbiBvZiB0aGVpciB3b3JrZXIgdGhyZWFkLCBzbyB3ZSBuZWVkIHRvCisgICAg
ICAgIHJldHVybiB0aGUgcmVzdWx0IHRvIHRoZSBtYWluIHRocmVhZCB3aGVyZSBXZWJDb3JlIGlz
IHJ1bm5pbmcuCisgICAgICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG1hZGUgV2ViRWRpdG9yU3Bl
bGxDaGVja1Jlc3BvbmRlciBjbGFzcy4KKyAgICAgICAgCisgICAgICAgIFRlc3Q6IGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorICAgICAgICAKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6Omlz
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKC1bV2Vi
RWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBpbml0V2l0aFNlbmRlcjpXZWJDb3JlOjpzZXF1ZW5j
ZTpyZXN1bHRzOl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3Bv
bmRlciBwZXJmb3JtXSk6IEFkZGVkLgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyk6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQcml2
YXRlLmg6CisKKzIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KIAogICAgICAgICBzcGVsbGluZyB1
bmRlcmxpbmUgZ2V0cyBsb3N0IG9uIGJhY2tzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggYWQzMjRiOWZhMzlkNjUwMDRkY2QxNzVlN2YxMmY5
NmY3MTg1M2RiYy4uZTk0MDhmNzk2OGYwNTljNTdhOTYzODUzY2I5N2NmY2UzZGU3ZjA3ZSAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzIsNiAr
MTMyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25z
dCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAg
dmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBX
VEY6OlN0cmluZyYpOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5l
ZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BB
UkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFuZWwoY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5n
JiByZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBX
ZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5l
bChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDJiZjMyNTlmNGEyMmFiNjg2MWQ2OWQxMzYzYjczYzEz
ZTgxODI4ZjYuLjBmOWNlODE5Y2NjZjQyYjc2NmYwNmQ5YzI1MDJiMDYwOThmOTQxOTEgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBi
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02Myw2ICs2
Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
U3RyaW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlT2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
CkBAIC05MzIsMyArOTMzLDczIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5wdXRN
ZXRob2RTdGF0ZSgpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sKQogewogfQorCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCitAaW50ZXJmYWNlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNw
b25kZXIgOiBOU09iamVjdAoreworICAgIFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogX3NlbmRlcjsK
KyAgICBpbnQgX3NlcXVlbmNlOworICAgIFJldGFpblB0cjxOU0FycmF5PiBfcmVzdWx0czsKK30K
Ky0gKGlkKWluaXRXaXRoU2VuZGVyOihXZWJDb3JlOjpTcGVsbENoZWNrZXIqKXNlbmRlciBzZXF1
ZW5jZTooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkqKXJlc3VsdHM7CistICh2b2lkKXBl
cmZvcm07CistIChXVEY6OlZlY3RvcjxXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0PikgX2Nv
cmVSZXN1bHRzOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViRWRpdG9yU3BlbGxDaGVja1Jl
c3BvbmRlcgorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciopc2Vu
ZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0cworewor
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4g
bmlsOworICAgIF9zZW5kZXIgPSBzZW5kZXI7CisgICAgX3NlcXVlbmNlID0gc2VxdWVuY2U7Cisg
ICAgX3Jlc3VsdHMgPSByZXN1bHRzOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXBl
cmZvcm0KK3sKKyAgICBfc2VuZGVyLT5kaWRDaGVjayhfc2VxdWVuY2UsIFtzZWxmIF9jb3JlUmVz
dWx0c10pOworfQorCitzdGF0aWMgU3BlbGxDaGVja2luZ1Jlc3VsdCB0b0NvcmVTcGVsbGluZ1Jl
c3VsdChOU1RleHRDaGVja2luZ1Jlc3VsdCogcmVzdWx0KQoreworICAgIE5TVGV4dENoZWNraW5n
VHlwZSB0eXBlID0gW3Jlc3VsdCByZXN1bHRUeXBlXTsKKyAgICBOU1JhbmdlIHJhbmdlID0gW3Jl
c3VsdCByYW5nZV07CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgY29yZVR5cGU7Cisg
ICAgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZykKKyAgICAgICAgY29yZVR5
cGUgPSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmc7CisgICAgZWxzZSBpZiAodHlwZSAmIE5TVGV4
dENoZWNraW5nVHlwZUdyYW1tYXIpCisgICAgICAgIGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6
OkdyYW1tYXI7CisgICAgZWxzZQorICAgICAgICBjb3JlVHlwZSA9IERvY3VtZW50TWFya2VyOjpB
bGxNYXJrZXJzOworCisgICAgcmV0dXJuIFNwZWxsQ2hlY2tpbmdSZXN1bHQoY29yZVR5cGUsIHJh
bmdlLmxvY2F0aW9uLCByYW5nZS5sZW5ndGgpOworfQorCistIChXVEY6OlZlY3RvcjxXZWJDb3Jl
OjpTcGVsbENoZWNraW5nUmVzdWx0PilfY29yZVJlc3VsdHMKK3sKKyAgICBXVEY6OlZlY3RvcjxX
ZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0PiBjb3JlUmVzdWx0czsKKyAgICBjb3JlUmVzdWx0
cy5yZXNlcnZlQ2FwYWNpdHkoW19yZXN1bHRzLmdldCgpIGNvdW50XSk7CisgICAgZm9yIChOU1Rl
eHRDaGVja2luZ1Jlc3VsdCogcmVzdWx0IGluIF9yZXN1bHRzLmdldCgpKQorICAgICAgICBjb3Jl
UmVzdWx0cy5hcHBlbmQodG9Db3JlU3BlbGxpbmdSZXN1bHQocmVzdWx0KSk7CisgICAgcmV0dXJu
IGNvcmVSZXN1bHRzOworfQorCitAZW5kCisjZW5kaWYKKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogc2VuZGVyLCBp
bnQgc2VxdWVuY2UsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyNpZiAhZGVmaW5lZChCVUlMRElO
R19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBOU1Jhbmdl
IHJhbmdlID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgTlNSdW5Mb29wKiBj
dXJyZW50TG9vcCA9IFtOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdOworICAgIFtbTlNTcGVsbENo
ZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzp0ZXh0IHJh
bmdlOnJhbmdlIHR5cGVzOk5TVGV4dENoZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGlu
U3BlbGxEb2N1bWVudFdpdGhUYWc6MCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIsIE5TQXJyYXkqIHJlc3VsdHMs
IE5TT3J0aG9ncmFwaHkqLCBOU0ludGVnZXIpIHsKKyAgICAgICAgICAgIFtjdXJyZW50TG9vcCBw
ZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKHBlcmZvcm0pIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9j
XSBpbml0V2l0aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6c2VxdWVuY2UgcmVzdWx0czpyZXN1bHRz
XSBhdXRvcmVsZWFzZV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQ6
bmlsIG9yZGVyOjAgbW9kZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TRGVmYXVsdFJ1bkxv
b3BNb2RlXV07CisgICAgICAgIH1dOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNWM2YjUzMDEwMzZkYjNhNGQ1MjUzODlk
Y2RhNWI1MzYxOGM0Njk1OC4uOTNmODNmYzUxNWFhOTY3MmVmMzNlZjA2MzNkYTEzZTUzNDUyZGE1
NyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApA
QCAtOTksNiArOTksNyBAQAogI2RlZmluZSBXZWJLaXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJs
ZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RE5T
UHJlZmV0Y2hpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0QXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1lbW9yeUluZm9FbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgogI2RlZmluZSBXZWJLaXRI
eXBlcmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SHlwZXJsaW5rQXVk
aXRpbmdFbmFibGVkIgogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggZWQw
NjE4ODkyNWQzZmI1MmI1MzYzNzgxZTI1ZmQ3MTAwYzQzYTU3OS4uNDkzOTY2MzBhMTRkOTRmMmJi
MmQ2Y2QzNzIxNTRjMDcwNzlkZmRiMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQpAQCAtMzY3LDYgKzM2Nyw3IEBAIHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JN
YWluQnVuZGxlKHZvaWQpCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAg
V2ViS2l0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWRQ
cmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdl
YktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAg
V2ViS2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZFByZWZl
cmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0
VXNlUHJlSFRNTDVQYXJzZXJRdWlya3NLZXksCkBAIC0xMzkzLDYgKzEzOTQsMTYgQEAgc3RhdGlj
IE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIHJldHVybiBbc2VsZiBfYm9v
bFZhbHVlRm9yS2V5OldlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAK
Ky0gKHZvaWQpc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZmxhZwor
eworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAoQk9PTClhc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVl
Rm9yS2V5OldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eV07Cit9CisKICsgKHZvaWQpc2V0V2ViS2l0TGlua1RpbWVWZXJzaW9uOihpbnQpdmVyc2lvbgog
ewogICAgIHNldFdlYktpdExpbmtUaW1lVmVyc2lvbih2ZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCAyZWMwOGU4MTUwNzkzZDVlNWRlNWU3
MDQyYWFhYjhlMmE3ZmExYjUxLi5hMDljNTBlMDdhNDNiNzQ3NGYwYTFmZTM1MDY3MThjNjgyZTE2
ZWQ3IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0y
MjAsNiArMjIwLDkgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWROb3Rp
ZmljYXRpb247CiAtICh2b2lkKXNldEZ1bGxTY3JlZW5FbmFibGVkOihCT09MKWZsYWc7CiAtIChC
T09MKWZ1bGxTY3JlZW5FbmFibGVkOwogCistICh2b2lkKXNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkOihCT09MKWZsYWc7CistIChCT09MKWFzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkOworCiAtICh2b2lkKXNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzOihCT09MKWZs
YWc7CiAtIChCT09MKXVzZVByZUhUTUw1UGFyc2VyUXVpcmtzOwogCmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDc0NTY4OThhYmY5OGE4MmU4OWE3ZmU0M2E3OTQ4MzkxNjRhNmNjNDQuLjE3MTkwZjFm
MmI4NjcwYzAxYjI0OWNhM2NhODBkMWU2YjlmZDFhZjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC0xNTAwLDYgKzE1MDAsMTAgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVhcmRvd25FbmFi
bGVkKCkKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgc2V0dGluZ3MtPnNldEZ1bGxT
Y3JlZW5FbmFibGVkKFtwcmVmZXJlbmNlcyBmdWxsU2NyZWVuRW5hYmxlZF0pOwogI2VuZGlmCisj
aWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpCisgICAgLy8gQXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSBpcyBhdmFpbGFi
bGUgZm9yIDEwLjYgb3IgbGF0ZXIuCisgICAgc2V0dGluZ3MtPnNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZF0pOworI2VuZGlmCiAgICAgc2V0dGluZ3MtPnNldE1lbW9yeUluZm9FbmFibGVkKFtwcmVm
ZXJlbmNlcyBtZW1vcnlJbmZvRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRIeXBlcmxpbmtB
dWRpdGluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZF0pOwog
ICAgIHNldHRpbmdzLT5zZXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrcyhbc2VsZiBfbmVlZHNQcmVI
VE1MNVBhcnNlclF1aXJrc10pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMzg5Zjg2NDZjNzdkZWFmYWQ1MGIyMTA1NDZmZjZlMTRj
ZDFiMWRmMi4uMmE3NTg5MGRjZjBjYzc4ODVkZmM0ZmM3YmI4MDlhYTdlZmQ3YWRiMCAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3Bl
bGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIg
aW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
UXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyk6CisKIDIwMTAtMTAtMjcgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNv
dHRlQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlz
dGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKaW5kZXgg
N2Q5OWQyMjJkODM2ZjEwN2Y2YTAzZTY3YTgyNTMxNWFjNTVhZTNiZi4uYmY1NDMzNGNhYzYwYjBj
ZDAzNWM5ZGI5M2U4ZGI5NGZiZjBkMzA3NiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0
IFN0cmluZyYpIHt9CiAKICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDM1Mzkz
YmFjZjc4M2ZlZjU1ZmEwMTU0N2M0MzRiYjQ1Mjg1ZjgyODUuLjEwNmU1MTM0OWY2YWZlMjBkMDUy
ZTE5OWM1Njk1MDNjMzM3ZmNkOGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0
ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yNiAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBm
aXguCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCA4
YmU2ZGU5MGMyMWY0ZTE5ZWZjMmZmZmIzYTdhZGU0Y2ZkNDhlZTMzLi5kYzk2YWI0ODk2NjEyZGZi
MGY0MzRiZTA1MzhlYzI1Y2YyNGMxYzZjIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYp
IHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbmNlL0NoYW5nZUxvZyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggYTc3MjNh
ZGM2NzAwNGQ1ZWRmZGE1MDZhODc4OWM4N2RmNTlmZWRjZS4uMzVmNjIyOGVkODdlNDc2YmFjYzQy
ODUyYzAyOGZlMmEzZjcxNWJjNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjgg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBw
YXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTAtMjYg
IEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFdpbkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50V2luQ0UuaAppbmRleCBiZTg1YjNmYTQzMzQ1MWRiNDY1OWRkNDVjMjRjMzk1YWFh
NjM5MmIwLi5kMTY0ZGVjYTkxYzBmMzQ4MjM5YTE0MDZiZDQ3ODZhYzg4YjA2MGY2IDEwMDY0NAot
LS0gYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysg
Yi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAtMTAw
LDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYp
IHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3d4L0NoYW5nZUxvZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggMTM0NzQ2YTc3Njhi
NGM3OWEwMDNhMWUwZmZmZDI1OGUzYmJkY2QwMS4uYjM4YzNlYThjNjgwOWM5MDNmMjA4MTM0MzZj
OWRkNmZhOTQ5YzUxNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJL
aXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKwor
ICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViS2l0
U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
V3g6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yNiAgSmVubiBCcmFpdGh3
YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkg
VGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRX
eC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAppbmRleCBiZTVj
OThhZjI5N2RlMTBlMmY2ZTU2Njg1ZjJlZjYwNjZlOWQyZmVmLi5hMjYyYWQ1OTE0MjJmMjRlNjY5
ZWUxYTdjYTVjZTY4NGQyNGYyOTFiIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNs
aWVudFd4LmgKQEAgLTExMiw2ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCB2
b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0
TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmlu
ZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2YWRjNzI4NWVkNDkxZTVkNTJi
MmE3ZGQxYzE0ODAwMWRlNTAwZTM1Li4wMGJmODU1OGRmYTFhMjc1NmE3Y2U3YmMwODQyZGRhMzlh
YWJkNDZlIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0
YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRk
ZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9y
Q2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxMC0xMC0yOCAgS2ltbW8gS2lu
bnVuZW4gIDxraW1tby50Lmtpbm51bmVuQG5va2lhLmNvbT4KIAogICAgICAgICAgUmV2aWV3ZWQg
YnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGNkZTliZThiZWUw
OGNlYzRjN2VlZmI1ZjMxN2ZjNzkyOTA5NmRjNmYuLjVhZDZjYWU0OTkxM2Q3YmJkN2NjZjdlMzA0
MzQyNGJlYzdlZTI1ODUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00MDMsNCArNDAzLDkgQEAgdm9pZCBXZWJF
ZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
V2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXgg
NGIxZjk5Yzc3ZjIwZjg0YWY4ZGExMjRlZTAyNWUxYjQwNTg5YzJhMS4uYTg5Njc3NGY2OTIyMWEy
NDEzYjViOTFiMmQzZWIxOWQ1MzMzYzNiZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMzLDYgKzEzMyw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYs
IFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
IGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAjaWYgUExBVEZP
Uk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAg
IHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25B
Y2NlcHRlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKaW5kZXggOTY2MWNhYWU2NWM5YWRhOWYwNTk5OGU1MDY5Mzk2MmExMjZkYzFj
NS4uNjdkNGIxN2M3YWExNDYyZWQ2ZTA0ZDY4YzYzNGRlNWI5MmY0MWFmMCAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMzIEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxs
Y2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKKyAgICAg
ICAgdG8gY29udHJvbCB0aGUgc2V0dGluZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldERlZmF1bHRzVG9D
b25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVz
dENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCk6CisKIDIwMTAtMTAtMjggIEtpbW1vIEtpbm51bmVuICA8a2ltbW9rQGlr
aS5maT4KIAogICAgICAgICBBZGRpbmcgbXlzZWxmIGFzIGEgY29tbWl0dGVyLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4
IDgzNjU1YmRkNjUwNjJlOTUwMmM3MzJlODEzYjE1ZGUzMWUyOTI2Y2IuLmRmYmNkZWM5M2RiYTg5
MmZjNmU5MjNiYjE0NmQwMDZiZTY1MDIxZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE0ODAsNiArMTQ4MCwxNiBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTTwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgc2V0QXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7Cisg
ICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9
IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRo
aXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOworICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVS
ZWYgc2hvd1dlYkluc3BlY3RvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
IHsKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExh
eW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAg
LTE5OTUsNiArMjAwNSw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVy
OjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRXaW5kb3dJc0tleSIsIHNldFdpbmRv
d0lzS2V5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SmF2YVNjcmlwdENhbkFjY2Vz
c0NsaXBib2FyZCIsIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJzZXRYU1NBdWRpdG9yRW5hYmxlZCIsIHNldFhTU0F1ZGl0b3JFbmFi
bGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQiLCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNob3dXZWJJbnNwZWN0b3IiLCBzaG93V2ViSW5zcGVjdG9y
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidGVzdE9uc2NyZWVuIiwgdGVzdE9uc2NyZWVu
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidGVzdFJlcGFpbnQiLCB0ZXN0UmVwYWludENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAppbmRleCAyNzUxOGI3MDgwODg2OGRlNGNhNzI2MTM0YzQ2MmE5ZTA5
NzRmZWUwLi40OWQ4YzA0YzQyZWFkNzdlNWRhYmI3MThhOTIyYTFmMWRjZmRiNWZlIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAg
LTI3MCw2ICsyNzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBnZW9sb2NhdGlvblBlcm1pc3Npb24o
KSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvbjsgfQogCiAgICAgdm9pZCBz
ZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpOworICAgIHZvaWQgc2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKCk7
CiAgICAgdm9pZCBjbG9zZVdlYkluc3BlY3RvcigpOwogICAgIHZvaWQgc2V0VGltZWxpbmVQcm9m
aWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
MWE2MTg3ZWI0ZWZkNmQ1OGU1NzU1NThjYzE4MDk4MTcwYjQ2ODQ3ZC4uNGMyYTM3OTNiODhhNjgz
ZGI0ZGE3MjU4MTg5ZWFlZmVjNjc4NmNjZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
MTY0LDYgKzE2NCw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxl
cihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldFdpbGxTZW5kUmVxdWVzdFJl
dHVybnNOdWxsT25SZWRpcmVjdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2lsbFNlbmRS
ZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0KTsKICAgICBiaW5kTWV0aG9kKCJzZXRXaW5kb3dJ
c0tleSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNLZXkpOwogICAgIGJpbmRN
ZXRob2QoInNldFhTU0F1ZGl0b3JFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRY
U1NBdWRpdG9yRW5hYmxlZCk7CisgICAgYmluZE1ldGhvZCgic2V0QXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzaG93V2ViSW5zcGVjdG9yIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKTsKICAgICBiaW5kTWV0aG9k
KCJzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2spOwogICAgIGJpbmRNZXRob2QoInN1
c3BlbmRBbmltYXRpb25zIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9u
cyk7CkBAIC02MTcsNiArNjE4LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFs
d2F5c0FjY2VwdENvb2tpZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVuCiAgICAgcmVz
dWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9zaGVsbC0+c2hvd0RldlRvb2xzKCk7CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcAppbmRleCAwNGQ5N2ViZTFjMjdhY2E1NTI0YjI5MTZiYjVmNmIwNDAy
YTUyYmMzLi5mMmU1MDhiZTU2YzdkNjYwZTM2NTVlZjBlNDlmNmU2YjVhY2ZhMTc0IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJH
dGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29u
dHJvbGxlckd0ay5jcHAKQEAgLTczNSw2ICs3MzUsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgZ19vYmpl
Y3Rfc2V0KHdlYlNldHRpbmdzLCAiZW5hYmxlLWRldmVsb3Blci1leHRyYXMiLCBlbmFibGVkLCBO
VUxMKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMu
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewog
ICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmll
dyhtYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0R1bXBSZW5kZXJUcmVlLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tCmluZGV4IGVmZGY1NGEyYTkxMTIyNmE3ZDg0MDlmNTZhNDVhOTgzZmJkYjM2
OTcuLjcwMzFhYmYxM2JkZDU3Yzg1Mzc0OWUzZTIwZGNkYTk4OTg0MDI1NzYgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTQ2MCw2
ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkK
ICAgICBbcHJlZmVyZW5jZXMgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ6WUVTXTsK
ICAgICBbcHJlZmVyZW5jZXMgc2V0V2ViR0xFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMg
c2V0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6Tk9dOworICAgIFtwcmVmZXJlbmNlcyBzZXRBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDpOT107CiAKICAgICBbW05TSFRUUENvb2tpZVN0
b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENvb2tpZUFjY2VwdFBvbGljeTpOU0hU
VFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbl07CiAKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQppbmRleCBjNWQ1YTkwNjk1OTliYTRiY2ZjMmFjYTMxMWM3YTNhNzY1YWI1ZTFk
Li41ZGZlMzA4NWI5NjUxYzgwMTk5NjEyYmJhZmJiOThmY2I3ZDVkNmRjIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0K
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tCkBAIC03MDgsNiArNzA4LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIFtbW21haW5GcmFtZSB3
ZWJWaWV3XSBwcmVmZXJlbmNlc10gc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDplbmFibGVkXTsK
IH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBw
cmVmZXJlbmNlc10gc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6ZW5hYmxlZF07
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewog
ICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBpbnNwZWN0b3JdIHNob3c6bmlsXTsKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5jcHAKaW5kZXggYjJjMzgwN2QwNmZlNWE2YzhlYjMxMzRhYmQ4YmIwM2NiZmIxYjViYy4uMjlm
NzRhMmZiYmIzZmM2ZjU3NDk4MmViYTQ2NzQ5MTgzOTM4YjU1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAK
QEAgLTM4MCw2ICszODAsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0
dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZCwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9y
KCkKIHsKICAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdl
YlNldHRpbmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwCmluZGV4IDllOGVkMWU2OTU3ZDdmN2NhNGZlYWQ5MWQ4N2I5YjU2ZmI0MjE0NTkuLmQzNjYy
NWU1NWFkNjhkMDIxM2ZkMjE3MDc5NjEwZjIzN2IzMmIzNzkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cApAQCAtMTE2Miw2ICsxMTYyLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERl
dmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHByZWZzUHJpdmF0ZS0+c2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAKaW5kZXggZWVmYzU4NzgxZTBhMWVhYmNkMGZkODEzODkzMmNjNDNjNGQ3
ODQ3Zi4uYzlmNDNmMzk1OTQ3MzI3NWY2NmIxZjdiODg3OTcxOTJiMzBlNjQ5MiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5j
cHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xs
ZXJXeC5jcHAKQEAgLTUyOSwzICs1MjksNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYQogICAg
IHJldHVybiAwOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dGhpcy4KK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72283</attachid>
            <date>2010-10-28 18:40:35 -0700</date>
            <delta_ts>2010-11-10 18:02:55 -0800</delta_ts>
            <desc>trying to fix build</desc>
            <filename>bug-40092-20101029104033.patch</filename>
            <type>text/plain</type>
            <size>79674</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMmU4MWM5ZjZhYzcwMDQxYmI1YWUwZDgzMDAzOTNkYTExMTA3MWJmLi42NTg0ZmE0
Y2JkNjhmMDhiODc0MTYxYTRiNzUwY2VkMGIyN2UwYzkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMC0yOCAgRG1pdHJ5IFRpdG92ICA8
ZGltaWNoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZml4
IGZvciB0ZXN0X2V4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAxM2QyYjA5NDZjMTFjMzYzMDA5YmU4ZDM3ODE1ZmFjMTcxNTdhMGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGNo
ZWNrLXBhc3RlLmpzCkBAIC0wLDAgKzEsOTggQEAKKworZGVzY3JpcHRpb24oJ0ZvciBCdWcgNDAw
OTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4nKTsKKworbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworCit2YXIgdGVzdFJvb3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKHRlc3RSb290LCBkb2N1
bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCit2YXIgdGVzdFRleHRBcmVhID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RUZXh0QXJl
YSk7CisKK3ZhciB0ZXN0SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwor
dGVzdElucHV0LnNldEF0dHJpYnV0ZSgidHlwZSIsICJ0ZXh0Iik7Cit0ZXN0Um9vdC5hcHBlbmRD
aGlsZCh0ZXN0SW5wdXQpOworCit2YXIgdGVzdEVkaXRhYmxlID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7Cit0ZXN0RWRpdGFibGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUi
LCAidHJ1ZSIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdEVkaXRhYmxlKTsKKwordmFyIHRl
c3RTb3VyY2VQbGFpbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwordGVzdFNvdXJj
ZVBsYWluLmlubmVySFRNTCA9ICJmb28gYmFyIjsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RT
b3VyY2VQbGFpbik7CisKK3ZhciB0ZXN0U291cmNlRGVjb3JhdGVkID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlRGVjb3JhdGVkLmlubmVySFRNTCA9ICJmbzxiPm8g
YmE8L2I+ciI7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0U291cmNlRGVjb3JhdGVkKTsKKwor
dmFyIHNlbCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTsKKwordmFyIHRlc3RzID0gW107CisKK2Z1
bmN0aW9uIGRvbmUoKQoreworICAgIHZhciBuZXh0ID0gdGVzdHMuc2hpZnQoKTsKKyAgICBpZiAo
bmV4dCkKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5zZXRUaW1lb3V0KG5leHQsIDApOworICAgIHRl
c3RSb290LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiB2ZXJpZnlNYXJrZXIobm9kZSwgZXhwZWN0ZWRN
YXJrZWQpCit7CisgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IG5v
ZGUgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAgIG5vZGUuZm9jdXMo
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZWwuc2VsZWN0QWxsQ2hpbGRyZW4obm9kZSk7Cisg
ICAgfQorICAgIHJldHVybiBsYXlvdXRUZXN0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcihl
eHBlY3RlZE1hcmtlZFswXSwgZXhwZWN0ZWRNYXJrZWRbMV0pOworfQorCitmdW5jdGlvbiBwYXN0
ZUFuZFZlcmlmeShzb3VyY2UsIGRlc3QsIGV4cGVjdGVkTWFya2VkKQoreworICAgIHNlbC5zZWxl
Y3RBbGxDaGlsZHJlbihzb3VyY2UpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJDb3B5Iik7
CisgICAgaWYgKGRlc3QgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50IHx8IGRlc3QgaW5zdGFu
Y2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSB7CisgICAgICAgIGRlc3QudmFsdWUgPSAiIjsKKyAg
ICAgICAgZGVzdC5mb2N1cygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRlc3QuaW5uZXJIVE1M
ID0gIiI7CisgICAgICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihkZXN0KTsKKyAgICB9CisgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlBhc3RlIik7CisKKyAgICB2YXIgbnJldHJ5ID0gMTA7Cisg
ICAgdmFyIG5zbGVlcCA9IDE7CisgICAgZnVuY3Rpb24gdHJpYWwoKSB7IAorICAgICAgICB2YXIg
dmVyaWZpZWQgPSB2ZXJpZnlNYXJrZXIoZGVzdCwgZXhwZWN0ZWRNYXJrZWQpOworICAgICAgICBp
ZiAodmVyaWZpZWQpIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoZGVzdC50YWdOYW1lICsgIiBo
YXMgYSBtYXJrZXIgb24gJyIgKyBzb3VyY2UuaW5uZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAg
IGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIG5yZXRy
eS0tOworICAgICAgICBpZiAoMCA9PSBucmV0cnkpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
ZGVzdC50YWdOYW1lICsgIiBzaG91bGQgaGF2ZSBhIG1hcmtlciBvbiBmb3IgJyIgKyBzb3VyY2Uu
aW5uZXJIVE1MICsgIiciKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbnNsZWVwICo9IDI7CisgICAgICAgIHdp
bmRvdy5zZXRUaW1lb3V0KHRyaWFsLCBuc2xlZXApOworICAgIH07CisgICAgdHJpYWwoKTsKK307
CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7CisKK3Rlc3Rz
LnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdElu
cHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5
KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RJbnB1dCwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNo
KGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRlc3RUZXh0QXJl
YSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0
ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0VGV4dEFyZWEsIFswLCAzXSk7IH0pOwordGVzdHMucHVz
aChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0RWRpdGFi
bGUsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnko
dGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdEVkaXRhYmxlLCBbMCwgMl0pOyB9KTsgLy8gVG8gY2hl
Y2sgImZvIiBwYXJ0IG9mIGZvby4KK2RvbmUoKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hl
Y2stcGFzdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTNhODczMGI1MmYyNGVjNDQ1
YmJlZWE0MjM1ZjRmZDU4OGExYmI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitGb3IgQnVnIDQwMDkyOiBTcGVsbCBjaGVja2luZyBmb3IgcGFzdGVkIHRleHQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK1BBU1MgSU5QVVQgaGFzIGEgbWFya2VyIG9uICdmb28gYmFy
JworUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24gJ2ZvPGI+byBiYTwvYj5yJworUEFTUyBURVhU
QVJFQSBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtl
ciBvbiAnZm88Yj5vIGJhPC9iPnInCitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXIn
CitQQVNTIERJViBoYXMgYSBtYXJrZXIgb24gJ2ZvPGI+byBiYTwvYj5yJworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJiYWJhMGMzNDU3MzQ1MzMzMDg1YzhkZTBkMWI4ZGVjMTFjMjA5OGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRt
bApAQCAtMCwwICsxLDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXNlbGVjdGlvbi1zaGFyZWQuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zcGVsbGNoZWNrLXBhc3RlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IGI2OTZmZGI0
MjA4ZTA1NmFjYjY5ZDE2NDgwNjQ0Y2QyYjBmZDhmY2MuLjAyYzA5MGMzNTY4OWY5MzU1MTE2ZDI3
NGY2MWRiNWI5NWU2ZWUzNjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTI2OTcsNiArMjY5Nyw5IEBAIEJVR1dLNDEz
MTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1c0RvdWJsZTA3Lmh0bWwgPSBJ
TUFHRQogQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91
YmxlMDguaHRtbCA9IElNQUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9i
b3JkZXJSYWRpdXNEb3VibGUwOS5odG1sID0gSU1BR0UKIAorLy8gTmVlZCB0byBpbXBsZW1lbnQg
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpCitCVUdXSzQxNDIzIDogZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwgPSBUSU1FT1VUCisKIC8vIEZsYWt5
IHRlc3RzLgogQlVHNDQzNDUgTElOVVggOiBzdmcvem9vbS90ZXh0L3pvb20taGl4aWUtbWl4ZWQt
MDA5LnhtbCA9IElNQUdFIFBBU1MKIEJVRzQ0MzQ2IExJTlVYIDogc3ZnL3pvb20vcGFnZS96b29t
LWhpeGllLW1peGVkLTAwOS54bWwgPSBJTUFHRSBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
CmluZGV4IGY2NjlkMzMyNjViNTViYTk3MGYzMDM3ZmIxYWYzYjkzOTJkMzY4MGUuLjc2MWJhNzg2
MThjMDNiMWIxY2RkMTAwNDllNjExMmZiODkxZTgxYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkCkBAIC05ODIsNiArOTgyLDcgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJl
YS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVz
Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbGluZWJyZWFrLmh0bWwKIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctYXR0cmlidXRlLWNoYW5nZS5odG1sCitlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGUuaHRtbAogZWRpdGluZy9zdHlsZS81MDY1OTEwLmh0bWwKIGVkaXRp
bmcvc3R5bGUvYXBwbGUtc3R5bGUtZWRpdGFibGUtbWl4Lmh0bWwKIGVkaXRpbmcvc3R5bGUvYmxv
Y2stc3R5bGUtMDAxLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1s
ZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVk
CmluZGV4IGQ5ODdlNzUxMWYyYjczZDMyNzJmNTgwN2Y2YzlkNGJjMWEyNjQ0MTYuLjI1Y2QzOTAz
MjZkMDFjZWNhOWViOGQwMTZmZTczNzlhZGUzNWFlOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLWxlb3BhcmQvU2tpcHBlZApAQCAtODUsNiArODUsOSBAQCBmYXN0L3RleHQvaHlwaGVuYXRl
LWxvY2FsZS5odG1sCiAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzUyNzEKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tc2Vla2FibGUtc3RhbGwuaHRtbAogCisj
IEF2YWlsYWJsZSAxMC42IG9yIGxhdGVyCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFz
dGUuaHRtbAorCiAjIERpc2FibGUgdGVzdHMgd2hpY2ggc3RhcnRlZCBmYWlsaW5nIGFmdGVyIHI2
Njk2MQogIyBGYWlsdXJlcyBsb29rIGxpa2UgYW4gdW5kZXJseWluZyBwbGF0Zm9ybSBpc3N1ZQog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU1NDYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKaW5kZXggYjNmMmM0ODA5NWM1NjYwMGI2NDdhNjYw
ZWUxZWQ4YjhlZGQ5NDA0Yi4uYTZiZGZhNTgzNDUyNjg3MTU4ZmQzZGYxNWI0MzNhZjZiZDM4MDkw
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKQEAgLTIwNCw2ICsyMDQs
OSBAQCBmYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cuaHRtbAogIyBMb2FkaW5nIGZhaWxz
IG9uIFRpZ2VyIHdpdGggZXJyb3IgLTEwMTIgYWZ0ZXIgYXNraW5nIE5TVVJMQ29ubmVjdGlvbiB0
byBjb250aW51ZSB3aXRob3V0IGNyZWRlbnRpYWxzLgogaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRl
cm5hdGl2ZS1jb250ZW50LnBocAogCisjIEF2YWlsYWJsZSBvbmx5IDEwLjYgb3IgbGF0ZXIKK2Vk
aXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJsZSBzcGVsbGlu
ZyB0ZXN0cyBmb3IgYXV0b2NvcnJlY3Rpb24gcGFuZWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3Nw
ZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWRlbGV0ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9z
cGVsbGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItcGFzdGUuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCmluZGV4IGQzOTZhMTJhYzI4NTkzNTAw
NmI2ZDY1ZTE2YjM2ZGNlOTFiOGIxZTguLjNmZDdjOGUxNjU5YmUyM2I3ZTM1NTFlNTExOGVhOWY2
MmI0MDhjYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKQEAgLTE2NSw2ICsx
NjUsNyBAQCBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2staW4tcHJlLmh0bWwKIGVkaXRp
bmcvc2VsZWN0aW9uL3VzZXItZHJhZy1lbGVtZW50LWFuZC11c2VyLXNlbGVjdC1ub25lLmh0bWwK
IGVkaXRpbmcvc2VsZWN0aW9uL3dvcmQtZ3JhbnVsYXJpdHkuaHRtbAogZWRpdGluZy9zcGVsbGlu
Zy9jb250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLXBhc3RlLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLWRlbGV0ZVdvcmQuaHRtbAogZWRpdGlu
Zy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5odG1sCiBlZGl0aW5n
L3VuZG8vdW5kby1zbWFydC1kZWxldGUtd29yZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApp
bmRleCA2MDczYzEwMzEyMTI3NmZhMmQwZTBlZTZkODU4ZDQyODNiYmFkMzk3Li4yOGRiZWJkMGQy
ZGJhZGEyODYzMzBkNTMxNjNmNWU0NDY4ZDA1ZDExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
QEAgLTIyNDcsNiArMjI0Nyw5IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNl
LWJldHdlZW4tbGluZXMuaHRtbAogCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWF0dHJpYnV0
ZS1jaGFuZ2UuaHRtbAogCisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
KSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5o
dG1sCisKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBmYWlsaW5nIGVkaXRpbmcvc3R5bGUg
dGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApp
bmRleCBmNDk2YWVlNGIxMmUxMmQ4MzJhNzVmZjBhNTNiMjY4NmRhMTM4ZGRlLi5lNTg4ZTRkYTI5
YmM1MGUxZWYyMWJlNTFkMzM1MTExMmYwZDQ5ODU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZApAQCAtOTE3LDYgKzkxNyw5IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNl
LWJldHdlZW4tbGluZXMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRp
dGFibGUuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiAKKyMg
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygpIGlzIG5vdCBpbXBsZW1lbnRl
ZAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKwogIyBJbmRleGVkREIg
aXMgbm90IHlldCBlbmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNThiMDcy
MDg0ZmRkNzg0ZTY3NTE4MjFmZjExOThkNzU5ZDY4MTM4MC4uY2E5ZGUyY2IyNzdmZTY4NTIxNGY1
ZTZhMzg3NWI4YzQ0MzQ2MWU4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC05MjEsNiArOTIxLDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGVkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKICAgICBlZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvU21hcnRSZXBsYWNl
LmNwcAorICAgIGVkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAogICAgIGVkaXRpbmcvU3BsaXRFbGVt
ZW50Q29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAogICAg
IGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAyNzQw
NzY4NjM3Y2M5YmYzN2RjNGExY2IyNjk2N2JkMDZhMWRkYS4uOGQ2NjRjMTkxMThlNGMwZWNmNjZk
ZWMzMjJhZGJkMjVjNjFhZGFiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhh
amltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5Mgor
CisgICAgICAgIC0gSW50cm9kdWNlZCBTcGVsbENoZWNrZXIgY2xhc3MgdG8gZW5jYXBzdWxhdGUg
YXN5bmNocm9ub3VzIHNwZWxsCisgICAgICAgICAgY2hlY2tlciBzdGF0ZTogc2VxdWVuY2UgaWQs
IHJlcXVlc3RpbmcgdGV4dCBhbmQgdGFyZ2V0IG5vZGUuCisgICAgICAgICAgVGhpcyBpcyBhbHNv
IHRoZSBmaXJzdCBzdGVwIHRvIGRlY29tcG9zZSBzcGVsbC1jaGVjayByZWxhdGVkCisgICAgICAg
ICAgY29kZSB0byBhIHNlcGFyYXRlIGNsYXNzLgorICAgICAgICAtIEFkZGVkIEVkaXRvckNsaWVu
dDo6aXNBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIAorICAgICAgICAgIHRvIHVz
ZSBhc3luYyBzcGVsbGNoZWNrIEFQSSBvbiB0aGUgcGxhdGZvcm0uCisgICAgICAgICAgVGhlc2Ug
QVBJcyBhcmUgdG91Y2hlZCBieSBTcGVsbENoZWNrZXIuCisgICAgICAgIC0gVXNlZCBTcGVsbENo
ZWNrZXIgdG8gY2hlY2sgYSBwYXN0ZWQgdGVzdC4gVGV4dCB0byBjaGVjayBpcworICAgICAgICAg
IGNvbGxlY3RlZCBmcm9tIHRoZSBzdWJ0cmVlIHVuZGVyIHRoZSBlZGl0aW5nUm9vdC4KKyAgICAg
ICAgLSBBZGRlZCBTZXR0aW5nOjptX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIHRv
IGNvbnRyb2wKKyAgICAgICAgICBhc3luYyBzcGVsbCBjaGVja2luZy4KKworICAgICAgICBUZXN0
OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29u
dHJvbGxlcjo6c2hvd01hcmtlcnMpOgorICAgICAgICAoc2hvd0RvY3VtZW50TWFya2Vycyk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6
OnNldE9mZnNldEluTGVhZk5vZGUpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmg6
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6RWRpdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRGaXJzdE1hcmthYmxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcik6
CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
c3BlbGxDaGVja2VyKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjp+U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjpjbGVhclJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpp
c0FzeW5jaHJvbm91c0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpj
YW5DaGVja0FzeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
aXNCdXN5KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQ2hlY2thYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKToKKyAgICAgICAgKFdlYkNvcmU6
OmZvcndhcmRJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENo
ZWNrKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6dHlwZSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNraW5nUmVzdWx0Ojpsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNraW5nUmVzdWx0OjpsZW5ndGgpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVu
dHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjphc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisKIDIwMTAtMTAt
MjggIEppYSBQdSAgPGpwdUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJl
cm5zdGVpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCmluZGV4IDlkZWFjZjQ4M2U4MTVjYTA4MmM1NWYxMDgxNTZmMjU1ZDE0NTM4
OWYuLjAxYzZjOWQ4NDQ1MzJmOTYyYmQxNWQ1YjA3MjFiNzNiZGFiNmQxMDggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MTM0NSw2ICsxMzQ1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2VkaXRpbmcv
U21hcnRSZXBsYWNlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5oIFwKIAlX
ZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1Nw
ZWxsQ2hlY2tlci5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBcCiAJV2Vi
Q29yZS9lZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcv
U3BsaXRFbGVtZW50Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNv
bW1hbmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDM5ZTZiMzY2MjlhOWRkYWEwNzFmNDVhNjM0MDllNGY4NGM3
N2RmZmIuLjM4NjljNTlmNGFkMWMwODgxN2RjN2Q3MzdhMDFkZDUwYWZmNzAwNTEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtNDg4LDYgKzQ4OCw3IEBAIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmRD
MUVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jCiBfX1pON1dlYkNvcmUy
M2NyZWF0ZUZyYWdtZW50RnJvbU5vZGVzRVBOU184RG9jdW1lbnRFUktOM1dURjZWZWN0b3JJUE5T
XzROb2RlRUxtMEVFRQogX19aTjdXZWJDb3JlMjNvdmVycmlkZURlZmF1bHRMYW5ndWFnZUVSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0
ZVByb3BlcnR5TGlzdEV2CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0
bWFya2Vyc0Zvck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUK
IF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQ
TlNfNE5vZGVFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIzcmVuZGVy
ZWRSZWN0c0Zvck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKQEAgLTg4
OCw2ICs4ODksNyBAQCBfX1pON1dlYkNvcmU5Zm9udENhY2hlRXYKIF9fWk43V2ViQ29yZTltYWtl
UmFuZ2VFUktOU18xNVZpc2libGVQb3NpdGlvbkVTMl8KIF9fWk43V2ViQ29yZTlwYWdlQ2FjaGVF
dgogX19aTjdXZWJDb3JlOXRvRWxlbWVudEVOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTJT
cGVsbENoZWNrZXI4ZGlkQ2hlY2tFaVJLTjNXVEY2VmVjdG9ySU5TXzE5U3BlbGxDaGVja2luZ1Jl
c3VsdEVMbTBFRUUKIF9fWk5LM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdDEyZ2xvYmFsT2JqZWN0
RXYKIF9fWk5LM1dURjZTdHJpbmcxNGNyZWF0ZUNGU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxMEZs
b2F0UG9pbnRjdjhfTlNQb2ludEV2CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGM3ZGNmMTgyZTY0N2U2Mzg5ODRiN2UxNzhiZjU2
ODVhYTVmMzU5YTMuLmY5YTdjODRjZjNkODMxYTA0NWU2ZDI5YTJkMmZhYjE0NjNmNzA2MzkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0xNDI3LDYgKzE0MjcsOCBAQAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNl
LmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNlQ0YuY3BwJywKICAgICAgICAg
ICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAnLAorICAgICAgICAgICAgJ2VkaXRpbmcv
U3BlbGxDaGVja2VyLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuaCcs
CiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCcsCiAgICAgICAg
ICAgICAnZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmgnLAogICAgICAgICAgICAgJ2VkaXRp
bmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGQ2MTgxMWJiMTFkNDJiNzVhNmJhZTNl
Mzc5MzdjOThlMDk0MDc3ZDAuLjFhNjgzNGQxYzRmZjFjN2EzYTQ5ZTgwZDFlOWEzNDhlY2U0YjM4
YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtODExLDYgKzgxMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGVkaXRpbmcvU2VsZWN0
aW9uQ29udHJvbGxlci5jcHAgXAogICAgIGVkaXRpbmcvU2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQu
Y3BwIFwKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAorICAgIGVkaXRpbmcvU3Bl
bGxDaGVja2VyLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBcCiAg
ICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU3BsaXRU
ZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggNGUyOTVhZTc4YWZhMjBiOGRkNTdlMGRhZjIyOWYwODVmMmEx
NmQzZC4uN2E3MGFhYjJiZWQ1MWI3MDMzOTgzZGE2Mjc1ZTZmNTc1MjJkODkzYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00Nzg3Niw2ICs0Nzg3NiwxMTQgQEAKIAkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwZWxsQ2hlY2tlci5j
cHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxl
YXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJ
CQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9
IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24N
CisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdc
U3BsaXRFbGVtZW50Q29tbWFuZC5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQor
CQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGVkaXRpbmdcU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFu
ZC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNmNmMDI2M2ExZWY2YTkwY2YwMTk3ZjQxYWU4NTk3NmZhYTQxZjJl
Yy4uY2E2NGI2MzM5MTYzZmZlOGE0MmE2MDQ5YTUyYjM2ZTQwNDQ4MWJlMyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMzIsNiArMzAzMiw4IEBACiAJ
CUE3Nzk3OTI4MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNDBENkI5RTY0MDAzODUx
QjkgLyogSlNJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkg
LyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9Owog
CQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3
QSAvKiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlBNzhGRTEzQjEyMzY2QjEwMDBBQ0U4RDAgLyog
U3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovOyB9
OworCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEzQTEyMzY2QjEwMDBB
Q0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2
M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovOyB9OwogCQlBNzk1NDY0MzBC
NUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRh
LmNwcCAqLzsgfTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FB
NjZENDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLzsgfTsKQEAgLTkx
MDIsNiArOTEwNCw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ltYWdlRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFC
OSAvKiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lt
YWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzg0OTQxQTBCNUZFNTA3
MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzhG
RTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVsbENoZWNrZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRh
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdEYXRh
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1NDY0MjBCNUM0Q0I0MDA3
QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRHJhZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FBNjZENDEx
QzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNDUwOCw2ICsxNDUxMiw4IEBACiAJCQkJNEI2RkE2RjMwQzM5RTQ4QzAw
MDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJNEI2RkE2RjIwQzM5RTQ4QzAwMDg3
MDExIC8qIFNtYXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZBNkY2MEMzOUU0QTEwMDA4NzAxMSAv
KiBTbWFydFJlcGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8q
IFNwZWxsQ2hlY2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNw
ZWxsQ2hlY2tlci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVs
ZW1lbnRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5OUU2NDkxMDA1NkU1ODEgLyogU3Bs
aXRFbGVtZW50Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0MDk5RTY0OTEwMDU2RTU4MSAvKiBT
cGxpdFRleHROb2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0yMDY3NSw2ICsyMDY4MSw3IEBACiAJCQkJ
NzU3OEY5MEQxMURERjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0Q2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3NTM1QkM5NTEyMDIwQ0ZGMDAzN0VDNDUgLyogU3BlZWNoSW5wdXRDbGllbnRN
b2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTc4RjkyMDExRTRFMzI4MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTc4RkUxM0MxMjM2NkIxMDAw
QUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTIwOTlF
NjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVD
b250YWluaW5nRWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMzMDMsNiArMjMz
MTAsNyBAQAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3Bl
ZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1
IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzhGRTEz
QjEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTkzMzA5RTExMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTkzMzA5RTEzMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2Rl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxNTA5OUU2NDkyMDA1NkU1ODEg
LyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDNiN2FiY2Nj
MTE3YzJhMzEzN2IzNTlkZjQ4OWU2N2I4ZTkxOWQ0NjUuLjVmODg2MzEwMmUxODUzZGFlZDIyYTA4
M2RkMzVjOWExYmY5Yjg3NzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcApAQCAtNTY3LDQgKzU2NywzMSBAQCBib29sIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6
aGFzTWFya2VycyhSYW5nZSogcmFuZ2UsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorI2lmbmRlZiBOREVCVUcKK3ZvaWQgRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyOjpzaG93TWFya2VycygpIGNvbnN0Cit7CisgICAgZnByaW50ZihzdGRlcnIsICIlZCBu
b2RlcyBoYXZlIG1hcmtlcnM6XG4iLCBtX21hcmtlcnMuc2l6ZSgpKTsKKyAgICBNYXJrZXJNYXA6
OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fbWFya2Vycy5lbmQoKTsKKyAgICBmb3IgKE1hcmtlck1h
cDo6Y29uc3RfaXRlcmF0b3Igbm9kZUl0ZXJhdG9yID0gbV9tYXJrZXJzLmJlZ2luKCk7IG5vZGVJ
dGVyYXRvciAhPSBlbmQ7ICsrbm9kZUl0ZXJhdG9yKSB7CisgICAgICAgIE5vZGUqIG5vZGUgPSBu
b2RlSXRlcmF0b3ItPmZpcnN0LmdldCgpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVwIiwg
bm9kZSk7CisgICAgICAgIE1hcmtlck1hcFZlY3RvclBhaXIqIHZlY3RvclBhaXIgPSBub2RlSXRl
cmF0b3ItPnNlY29uZDsKKyAgICAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiYgbWFya2VycyA9
IHZlY3RvclBhaXItPmZpcnN0OworICAgICAgICB1bnNpZ25lZCBtYXJrZXJDb3VudCA9IG1hcmtl
cnMuc2l6ZSgpOworICAgICAgICBmb3IgKHVuc2lnbmVkIG1hcmtlckluZGV4ID0gMDsgbWFya2Vy
SW5kZXggPCBtYXJrZXJDb3VudDsgKyttYXJrZXJJbmRleCkKKyAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiICVkOlslZDolZF0oJWQpIiwgbWFya2Vyc1ttYXJrZXJJbmRleF0udHlwZSwgbWFy
a2Vyc1ttYXJrZXJJbmRleF0uc3RhcnRPZmZzZXQsIG1hcmtlcnNbbWFya2VySW5kZXhdLmVuZE9m
ZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRleF0uYWN0aXZlTWF0Y2gpOworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIlxuIik7CisgICAgfQorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworCisjaWZuZGVmIE5ERUJVRwordm9pZCBzaG93RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdl
YkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlciogY29udHJvbGxlcikKK3sKKyAgICBpZiAo
Y29udHJvbGxlcikKKyAgICAgICAgY29udHJvbGxlci0+c2hvd01hcmtlcnMoKTsKK30KKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAppbmRleCA5NmZiN2YzY2QzMjM3
MTU0ZmExNGVmZmYzZjkwNzZkMDI0MWFjYjFiLi44MzE3N2ZjZjg4MDZkN2I2ZWE4YTA1MTcxODRh
MDBjY2MwNzNkODFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaApAQCAt
NjIsNiArNjIsMTAgQEAgcHVibGljOgogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcj4gbWFya2Vy
c0Zvck5vZGUoTm9kZSopOwogICAgIFZlY3RvcjxJbnRSZWN0PiByZW5kZXJlZFJlY3RzRm9yTWFy
a2VycyhEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJr
ZXJzKTsKIAorI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIHNob3dNYXJrZXJzKCkgY29uc3Q7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxWZWN0b3I8RG9jdW1lbnRN
YXJrZXI+LCBWZWN0b3I8SW50UmVjdD4gPiBNYXJrZXJNYXBWZWN0b3JQYWlyOwogICAgIHR5cGVk
ZWYgSGFzaE1hcDxSZWZQdHI8Tm9kZT4sIE1hcmtlck1hcFZlY3RvclBhaXIqPiBNYXJrZXJNYXA7
CkBAIC03MSw0ICs3NSw4IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
I2lmbmRlZiBOREVCVUcKK3ZvaWQgc2hvd0RvY3VtZW50TWFya2Vycyhjb25zdCBXZWJDb3JlOjpE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIqKTsKKyNlbmRpZgorCiAjZW5kaWYgLy8gRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0
b3IuY3BwIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKaW5kZXggZDJjM2EzZjBj
ZjRlMGYwM2I0MGRiNTQ2ZDk5YWYxMTAyY2Q1MTQ3Ni4uNDJjYzUxMzcxMjY3Njk5NmU0YmI2OGQx
OTViNGM0YWIyZmVmYWJlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRv
ci5jcHAKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAKQEAgLTk4LDYgKzk4
LDEzIEBAIHZvaWQgUG9zaXRpb25JdGVyYXRvcjo6ZGVjcmVtZW50KCkKICAgICB9CiB9CiAKK3Zv
aWQgUG9zaXRpb25JdGVyYXRvcjo6c2V0T2Zmc2V0SW5MZWFmTm9kZShpbnQgb2Zmc2V0KQorewor
ICAgIEFTU0VSVCghbV9hbmNob3JOb2RlLT5oYXNDaGlsZE5vZGVzKCkpOworICAgIEFTU0VSVCgw
IDw9IG9mZnNldCAmJiBvZmZzZXQgPD0gbGFzdE9mZnNldEZvckVkaXRpbmcobV9hbmNob3JOb2Rl
KSk7CisgICAgbV9vZmZzZXRJbkFuY2hvciA9IG9mZnNldDsKK30KKwogYm9vbCBQb3NpdGlvbkl0
ZXJhdG9yOjphdFN0YXJ0KCkgY29uc3QKIHsKICAgICBpZiAoIW1fYW5jaG9yTm9kZSkKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaCBiL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uSXRlcmF0b3IuaAppbmRleCA3YWY4OTc3NTkxZDE2YzI5NzkzMTg5MGViZDFhZTA2OWMyZDQ3
ZjM2Li4wODMyOWJiMTVjZDNlNTIxMDA0NjI5MzU4OGFiN2FhYmQzMGZlNGY2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKKysrIGIvV2ViQ29yZS9kb20vUG9zaXRp
b25JdGVyYXRvci5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIE5vZGUqIG5vZGUo
KSBjb25zdCB7IHJldHVybiBtX2FuY2hvck5vZGU7IH0KICAgICBpbnQgb2Zmc2V0SW5MZWFmTm9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0SW5BbmNob3I7IH0KKyAgICB2b2lkIHNldE9mZnNl
dEluTGVhZk5vZGUoaW50IG9mZnNldCk7CiAKICAgICBib29sIGF0U3RhcnQoKSBjb25zdDsKICAg
ICBib29sIGF0RW5kKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDE2OWI3NjVmNDM1YTcwMmM5
ZjFkMjg0NjA3ZjM1MmFkNTgxMzQwMTQuLmRhMzY5MWQ3ZjUxNzYwNmExZDI3YjQwZjYwMWMxOTg0
YTIxN2ViY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC02NSw5ICs2NSwxMSBAQAogI2luY2x1ZGUgIlJl
bW92ZUZvcm1hdENvbW1hbmQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUg
IlJlbmRlclBhcnQuaCIKKyNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUg
IlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNs
dWRlICJTb3VuZC5oIgorI2luY2x1ZGUgIlNwZWxsQ2hlY2tlci5oIgogI2luY2x1ZGUgIlRleHQu
aCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKQEAg
LTM4Miw2ICszODQsMTAgQEAgdm9pZCBFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21l
bnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCwKICAgICAKICAgICBhcHBs
eUNvbW1hbmQoUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVu
dCgpLCBmcmFnbWVudCwgc2VsZWN0UmVwbGFjZW1lbnQsIHNtYXJ0UmVwbGFjZSwgbWF0Y2hTdHls
ZSkpOwogICAgIHJldmVhbFNlbGVjdGlvbkFmdGVyRWRpdGluZ09wZXJhdGlvbigpOworCisgICAg
Tm9kZSogbm9kZVRvQ2hlY2sgPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+cm9vdEVkaXRhYmxlRWxl
bWVudCgpOworICAgIGlmIChtX3NwZWxsQ2hlY2tlci0+Y2FuQ2hlY2tBc3luY2hyb25vdXNseShu
b2RlVG9DaGVjaykpCisgICAgICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdGb3Io
bm9kZVRvQ2hlY2spOwogfQogCiB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBzZWxlY3RSZXBsYWNlbWVudCwgYm9vbCBzbWFydFJl
cGxhY2UpCkBAIC0xMDYwLDYgKzEwNjYsNyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSogZnJhbWUp
CiAgICAgLy8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3JzIHdhbnQg
dGhpcyBiZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwgbV9zaG91
bGRTdHlsZVdpdGhDU1MoZmFsc2UpCiAgICAgLCBtX2tpbGxSaW5nKGFkb3B0UHRyKG5ldyBLaWxs
UmluZykpCisgICAgLCBtX3NwZWxsQ2hlY2tlcihuZXcgU3BlbGxDaGVja2VyKGZyYW1lLCBmcmFt
ZS0+cGFnZSgpID8gZnJhbWUtPnBhZ2UoKS0+ZWRpdG9yQ2xpZW50KCkgOiAwKSkKICAgICAsIG1f
Y29ycmVjdGlvblBhbmVsVGltZXIodGhpcywgJkVkaXRvcjo6Y29ycmVjdGlvblBhbmVsVGltZXJG
aXJlZCkKICAgICAsIG1fYXJlTWFya2VkVGV4dE1hdGNoZXNIaWdobGlnaHRlZChmYWxzZSkKIHsK
QEAgLTM3MzcsMTIgKzM3NDQsMjkgQEAgdm9pZCBFZGl0b3I6OnJlc3BvbmRUb0NoYW5nZWRTZWxl
Y3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBib28KICAgICByZXNw
b25kVG9DaGFuZ2VkU2VsZWN0aW9uKG9sZFNlbGVjdGlvbik7CiB9CiAKK3N0YXRpYyBOb2RlKiBm
aW5kRmlyc3RNYXJrYWJsZShOb2RlKiBub2RlKQoreworICAgIHdoaWxlIChub2RlKSB7CisgICAg
ICAgIGlmICghbm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICBpZiAobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpCisgICAgICAgICAgICByZXR1cm4gbm9k
ZTsKKyAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dENvbnRyb2woKSkKKyAgICAg
ICAgICAgIG5vZGUgPSB0b1JlbmRlclRleHRDb250cm9sKG5vZGUtPnJlbmRlcmVyKCkpLT52aXNp
YmxlUG9zaXRpb25Gb3JJbmRleCgxKS5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKTsKKyAgICAgICAg
ZWxzZSBpZiAobm9kZS0+Zmlyc3RDaGlsZCgpKQorICAgICAgICAgICAgbm9kZSA9IG5vZGUtPmZp
cnN0Q2hpbGQoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbm9kZSA9IG5vZGUtPm5leHRT
aWJsaW5nKCk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgRWRpdG9yOjpzZWxl
Y3Rpb25TdGFydEhhc1NwZWxsaW5nTWFya2VyRm9yKGludCBmcm9tLCBpbnQgbGVuZ3RoKSBjb25z
dAogewotICAgIE5vZGUqIG5vZGUgPSBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKS5ub2Rl
KCk7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpKQorICAgIE5vZGUqIG5vZGUg
PSBmaW5kRmlyc3RNYXJrYWJsZShtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKS5ub2RlKCkp
OworICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEFTU0VSVChub2Rl
LT5yZW5kZXJlcigpLT5pc1RleHQoKSk7CiAKICAgICB1bnNpZ25lZCBpbnQgc3RhcnRPZmZzZXQg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20pOwogICAgIHVuc2lnbmVkIGludCBlbmRP
ZmZzZXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KGZyb20gKyBsZW5ndGgpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CmluZGV4IGU5NDI1NjBkYTVmMTM2MmYxYzcyMWY3YmQyY2QzODIwM2MxMTMyOGQuLjIwYjg5OTUz
N2ZiN2U5NGNlODA1ZmNlZTY3ZDAyOGM4OTdjNDU0ZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTY0LDYgKzY0
LDcgQEAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEtpbGxSaW5nOwogY2xhc3MgUGFzdGVi
b2FyZDsKIGNsYXNzIFNpbXBsZUZvbnREYXRhOworY2xhc3MgU3BlbGxDaGVja2VyOwogY2xhc3Mg
VGV4dDsKIGNsYXNzIFRleHRFdmVudDsKIApAQCAtMzA5LDYgKzMxMCw3IEBAIHB1YmxpYzoKICAg
ICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqKTsKIAogICAgIEtp
bGxSaW5nKiBraWxsUmluZygpIGNvbnN0IHsgcmV0dXJuIG1fa2lsbFJpbmcuZ2V0KCk7IH0KKyAg
ICBTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fc3BlbGxDaGVj
a2VyLmdldCgpOyB9CiAKICAgICBFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IoKSBjb25zdDsKIApA
QCAtMzg4LDYgKzM5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0TmV3S2ls
bFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAgIE93blB0
cjxLaWxsUmluZz4gbV9raWxsUmluZzsKKyAgICBPd25QdHI8U3BlbGxDaGVja2VyPiBtX3NwZWxs
Q2hlY2tlcjsKICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2VUb0JlUmVwbGFjZWRCeUNvcnJlY3Rp
b247CiAgICAgU3RyaW5nIG1fc3RyaW5nVG9CZVJlcGxhY2VkQnlDb3JyZWN0aW9uOwogICAgIFN0
cmluZyBtX2NvcnJlY3Rpb25SZXBsYWNlbWVudFN0cmluZzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTgwNzQ3NGI3NTM4NmJlNzcyMWVjOGRlZTMwZDk5MzA3YjEwMWUyNgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBAIC0w
LDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
cGVsbENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQb3NpdGlv
bkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2lu
Y2x1ZGUgImh0bWxlZGl0aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlbGxDaGVj
a2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lLCBFZGl0b3JDbGllbnQqIGNsaWVudCkKKyAg
ICA6IG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3JlcXVl
c3RTZXF1ZW5jZSgwKQoreworfQorCitTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIoKQorewor
fQorCitib29sIFNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKK3sKKyAgICBB
U1NFUlQoY2FuQ2hlY2tBc3luY2hyb25vdXNseShub2RlKSk7CisKKyAgICBTdHJpbmcgdGV4dCA9
IG5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3ROb2RlID0gbm9kZTsKKyAgICBtX3JlcXVlc3RU
ZXh0ID0gdGV4dDsKKyAgICBtX3JlcXVlc3RTZXF1ZW5jZSsrOworCisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpjbGVhclJlcXVlc3QoKQoreworICAgIG1fcmVxdWVz
dE5vZGUuY2xlYXIoKTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7Cit9CisKK2Jvb2wg
U3BlbGxDaGVja2VyOjppc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPmFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjpjYW5DaGVj
a0FzeW5jaHJvbm91c2x5KE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2hlY2th
YmxlKG5vZGUpICYmIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpICYmICFpc0J1c3koKTsKK30KKwor
Ym9vbCBTcGVsbENoZWNrZXI6OmlzQnVzeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVz
dE5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc1ZhbGlkKGludCBzZXF1ZW5j
ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBtX3JlcXVlc3RU
ZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOworfQorCitib29s
IFNwZWxsQ2hlY2tlcjo6aXNDaGVja2FibGUoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICByZXR1
cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxsQ2hlY2tlcjo6cmVx
dWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGNhbkNoZWNrQXN5bmNo
cm9ub3VzbHkobm9kZSkpOworCisgICAgaWYgKCFpbml0UmVxdWVzdChub2RlKSkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fY2xpZW50LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBtX3Jl
cXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0VGV4dCk7Cit9CisKK3N0YXRpYyBib29sIGZvcndhcmRJ
dGVyYXRvcihQb3NpdGlvbkl0ZXJhdG9yJiBpdGVyYXRvciwgaW50IGRpc3RhbmNlKQoreworICAg
IGludCByZW1haW5pbmcgPSBkaXN0YW5jZTsKKyAgICB3aGlsZSAoIWl0ZXJhdG9yLmF0RW5kKCkp
IHsKKyAgICAgICAgaWYgKGl0ZXJhdG9yLm5vZGUoKS0+aXNDaGFyYWN0ZXJEYXRhTm9kZSgpKSB7
CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gbGFzdE9mZnNldEZvckVkaXRpbmcoaXRlcmF0b3Iu
bm9kZSgpKTsKKyAgICAgICAgICAgIGludCBsYXN0ID0gbGVuZ3RoIC0gaXRlcmF0b3Iub2Zmc2V0
SW5MZWFmTm9kZSgpOworICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGxhc3QpIHsKKyAgICAg
ICAgICAgICAgICBpdGVyYXRvci5zZXRPZmZzZXRJbkxlYWZOb2RlKGl0ZXJhdG9yLm9mZnNldElu
TGVhZk5vZGUoKSArIHJlbWFpbmluZyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlbWFpbmluZyAtPSBsYXN0OworICAgICAgICAg
ICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5MZWFmTm9kZShpdGVyYXRvci5vZmZzZXRJbkxlYWZOb2Rl
KCkgKyBsYXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yLmluY3JlbWVudCgpOwor
ICAgIH0KKworICAgIHJldHVybiBmYWxzZTsgICAgCit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpk
aWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0PiYg
cmVzdWx0cykKK3sKKyAgICBpZiAoIWlzVmFsaWQoc2VxdWVuY2UpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIW1fcmVxdWVzdE5vZGUtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgY2xlYXJS
ZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnQgc3RhcnRPZmZzZXQg
PSAwOworICAgIFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBQb3NpdGlvbihtX3JlcXVlc3ROb2Rl
LCAwKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgaWYgKHJlc3VsdHNbaV0udHlwZSgpICE9IERvY3VtZW50TWFya2VyOjpTcGVsbGlu
ZyAmJiByZXN1bHRzW2ldLnR5cGUoKSAhPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcikKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIFRvIGF2b2lkIG1vdmluZyB0aGUgcG9zaXRp
b24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUgZ2l2ZW4gcmVzdWx0cyBhcmUgc29ydGVkIHdpdGgK
KyAgICAgICAgLy8gc3RhcnRPZmZzZXQgYXMgdGhlIG9uZXMgcmV0dXJuZWQgYnkgW05TU3BlbGxD
aGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOl0uCisgICAgICAgIEFTU0VSVChzdGFydE9m
ZnNldCA8PSByZXN1bHRzW2ldLmxvY2F0aW9uKCkpOworICAgICAgICBpZiAoIWZvcndhcmRJdGVy
YXRvcihzdGFydCwgcmVzdWx0c1tpXS5sb2NhdGlvbigpIC0gc3RhcnRPZmZzZXQpKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIFBvc2l0aW9uSXRlcmF0b3IgZW5kID0gc3RhcnQ7CisgICAg
ICAgIGlmICghZm9yd2FyZEl0ZXJhdG9yKGVuZCwgcmVzdWx0c1tpXS5sZW5ndGgoKSkpCisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAvLyBVc2VycyBvciBKYXZhU2NyaXB0IGFwcGxpY2F0
aW9ucyBtYXkgY2hhbmdlIHRleHQgd2hpbGUgYSBzcGVsbC1jaGVja2VyIGNoZWNrcyBpdHMKKyAg
ICAgICAgLy8gc3BlbGxpbmdzIGluIHRoZSBiYWNrZ3JvdW5kLiBUbyBhdm9pZCBhZGRpbmcgbWFy
a2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgLy8gSmF2YVNj
cmlwdCBhcHBsaWNhdGlvbnMsIHJldHJpZXZlIHRoZSB3b3JkcyBpbiB0aGUgc3BlY2lmaWVkIHJl
Z2lvbiBhbmQgY29tcGFyZSB0aGVtIHdpdGgKKyAgICAgICAgLy8gdGhlIG9yaWdpbmFsIG9uZXMu
CisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fcmVxdWVzdE5v
ZGUtPmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOworICAgICAgICAvLyBGSVhNRTogVXNlIHRleHRD
b250ZW50KCkgY29tcGF0aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KKyAgICAgICAgU3RyaW5nIGRl
c3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG1fcmVx
dWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24oKSwgcmVzdWx0c1tpXS5sZW5n
dGgoKSk7CisgICAgICAgIGlmIChkZXN0aW5hdGlvbiA9PSBzb3VyY2UpCisgICAgICAgICAgICBt
X3JlcXVlc3ROb2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihyYW5nZS5nZXQo
KSwgcmVzdWx0c1tpXS50eXBlKCkpOworCisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gcmVzdWx0c1tp
XS5sb2NhdGlvbigpOworICAgIH0KKworICAgIGNsZWFyUmVxdWVzdCgpOworfQorCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuaCBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTIyZjBl
MjMzMDAxNmY4M2Y2OTBhNDAwYjIyZWUxMjc5Yzg5ZjgwCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBTcGVsbENoZWNrZXJfaAorI2RlZmluZSBTcGVsbENoZWNrZXJfaAorCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBFZGl0b3JDbGllbnQ7CitjbGFzcyBGcmFtZTsKKworY2xhc3Mg
U3BlbGxDaGVja2luZ1Jlc3VsdCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2lu
Z1Jlc3VsdChEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlID0gRG9jdW1lbnRNYXJrZXI6
OlNwZWxsaW5nLCBpbnQgbG9jYXRpb24gPSAwLCBpbnQgbGVuZ3RoID0gMCkKKyAgICAgICAgOiBt
X3R5cGUodHlwZSkKKyAgICAgICAgLCBtX2xvY2F0aW9uKGxvY2F0aW9uKQorICAgICAgICAsIG1f
bGVuZ3RoKGxlbmd0aCkKKyAgICB7CisgICAgfQorCisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtl
clR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfSAKKyAgICBpbnQgbG9jYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9CisgICAgaW50IGxlbmd0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fbGVuZ3RoOyB9CisKK3ByaXZhdGU6CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtl
clR5cGUgbV90eXBlOworICAgIGludCBtX2xvY2F0aW9uOworICAgIGludCBtX2xlbmd0aDsKK307
CisKK2NsYXNzIFNwZWxsQ2hlY2tlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgU3BlbGxDaGVja2VyKEZyYW1lKiwgRWRpdG9yQ2xpZW50Kik7CisgICAgflNw
ZWxsQ2hlY2tlcigpOworCisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdDsK
KyAgICBib29sIGNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSopIGNvbnN0OworICAgIGJvb2wg
aXNCdXN5KCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3Q7Cisg
ICAgYm9vbCBpc0NoZWNrYWJsZShOb2RlKikgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tp
bmdGb3IoTm9kZSopOworICAgIHZvaWQgZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0
b3I8U3BlbGxDaGVja2luZ1Jlc3VsdD4mKTsKKworcHJpdmF0ZToKKyAgICBib29sIGluaXRSZXF1
ZXN0KE5vZGUqKTsKKyAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworCisgICAgRnJhbWUqIG1fZnJh
bWU7CisgICAgRWRpdG9yQ2xpZW50KiBtX2NsaWVudDsKKworICAgIFJlZlB0cjxOb2RlPiBtX3Jl
cXVlc3ROb2RlOworICAgIFN0cmluZyBtX3JlcXVlc3RUZXh0OworICAgIGludCBtX3JlcXVlc3RT
ZXF1ZW5jZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNwZWxs
Q2hlY2tlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGVjMzc2NjgyOTVhYTE0YjY0NzA5ZDMy
YzQzOTJjM2FlN2VkMWE3OTUuLjNkMzJkZDc4OGRmMWMyOGViYzBmMjJiZWQyMDg0ZDliZDYyYTg3
MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00ODEsOCArNDgxLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3Ry
aW5nPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50
LCBjb25zdCBTdHJpbmcmKSB7IH0KIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0
b3JDbGllbnQuaAppbmRleCA5N2IwOTAyNWNjNDUzN2UyYTNlYmQ5Yzc1YTIxMDIwMzk0ZWZlMDll
Li5iODVhYWUzNjQ0ZTI1NTNiZWIwZWM5M2FmMzk0NmNlNDgyOTAyNGQwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVu
dC5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgS2V5Ym9hcmRF
dmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNs
YXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKQEAgLTIwMSw2
ICsyMDIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNv
bnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpID0g
MDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGZhYzM1YmVjOGZiMmFiMzliNzMyZDhiNzgwNGEy
ZmY1NTU1Yjc4MWMuLjUzY2UyOWQ3MzVhMjZmMGVkODdmMDA0YjU5MjFkNGRkMDg1MDkyN2EgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcApAQCAtMTQ1LDYgKzE0NSw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBw
YWdlKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAsIG1fZnVsbFNjcmVlbkFQSUVu
YWJsZWQoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX21lbW9yeUluZm9FbmFibGVkKGZhbHNlKQogICAgICwgbV9p
bnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uKGZhbHNlKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNl
clF1aXJrcyhmYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggYjhkN2EzMTg3N2U0MDJmMDVlNjk4OTMwM2MzMDg4
NjZjZWNhZDAzYi4uMzBkZGM4NjVjODZlYjhiN2M1NGQ1ZTRhZGE4OTE5Yjk5YTlkMDUyNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmgKQEAgLTMxNiw2ICszMTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJv
b2wgZnVsbFNjcmVlbkVuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9mdWxsU2NyZWVuQVBJRW5h
YmxlZDsgfQogI2VuZGlmCiAKKyAgICAgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZChib29sIGZsYWcpIHsgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCA9IGZsYWc7IH0KKyAgICAgICAgYm9vbCBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCgpIGNvbnN0ICB7IHJldHVybiBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOyB9
CisKICAgICAgICAgdm9pZCBzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sIGZsYWcpIHsgbV9tZW1v
cnlJbmZvRW5hYmxlZCA9IGZsYWc7IH0KICAgICAgICAgYm9vbCBtZW1vcnlJbmZvRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVtb3J5SW5mb0VuYWJsZWQ7IH0KIApAQCAtNDE4LDYgKzQyMSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
ICAgIGJvb2wgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9v
bCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOiAxOwogICAgICAgICBib29sIG1f
bWVtb3J5SW5mb0VuYWJsZWQ6IDE7CiAgICAgICAgIGJvb2wgbV9pbnRlcmFjdGl2ZUZvcm1WYWxp
ZGF0aW9uOiAxOwogICAgICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6IDE7CmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA4YjkzZmU0MzNkNzZjOWU4YzcxYzBiNmYzMzEyMDhlNjg5NGZkYjVjLi4w
YmVmNmNjNjQxM2RkNDk5NjNlMTViZTc4ODUwOWU5Yzk1NWYyODQ4IDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBz
cGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1
YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5oOgor
ICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyk6CisKIDIwMTAtMTAtMjggIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRp
dG9yQ2xpZW50SW1wbC5oCmluZGV4IGIwNWE1OTI2YmY3MTEyODYxYzI1M2E0NmMyMzRhNmQ1Yjdl
MzM1ZDcuLjhmZTYzNTY0NTE0ZDVhYjU3MTJkNmU2MGRmNzE4NTBlOGVhOTcwMWEgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlZlY3RvcjxXVEY6OlN0
cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7
CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhl
IGZvcm0gYXV0b2ZpbGwgcG9wdXAgZm9yIHxub2RlfCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVt
ZW50IGFuZAogICAgIC8vIGl0IGlzIGVtcHR5LiAgVGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJl
c3MgdGhlIHVwIG9yIGRvd24gYXJyb3cgaW4gYQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlZDcyMzVmMzEwZTg4Njk2ODA3OGMz
ZGE2ZWY2ZTExZGM4ZTM1YzA0Li4yYTc2OTJmMWI0OWY2NTlhODJmN2YxODljZjRjYTFlOTJkYmZi
ZGVjIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9y
cml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAg
QWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKyAgICAgICAgCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGll
bnRFZmw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMC0yNiAgSmVubiBCcmFp
dGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0
cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApp
bmRleCA5ZjYwY2ZiYWRiNDJmMDdmMTM2YmU3ZDRlNzljNDIwOTQ0MzhkMWIyLi5mMTY4N2Y3YjNl
YjlkNGIxMzQ2YjQ3MTExNjE3MGQwMTJlMThmY2EyIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTExMyw2ICsxMTMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFdURjo6VmVjdG9y
PFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxl
ZCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAg
IEV2YXNfT2JqZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDY3NWYwMzU3ZjZiOGQzYzk1OGI3Y2E5ODI5ODlm
OTExNzRhNDVjM2QuLjExNzZiZTAwYmIyZTE4MDYzMTY2OGYzNWNlNDk5ODk0YjFjMjFkZDggMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBh
IHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTI4ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IGY5ZmY4MmUw
MGM0YTMwZjY2MmMxZGEzM2ZiM2E1YTkwMTE5ZDMwNTkuLjU2ODAyN2ZhNmEwMDc2OGJmMmU5MjAx
ZDlhYzhkODI3Y2FiZjBhMWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuaApAQCAtMTMyLDYgKzEzMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0
aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJp
bmcmKSB7fQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFu
Z2VMb2cKaW5kZXggZWQwNmIyY2JjY2U4NWRiMTI5OGViM2U0NGNmN2IxMDJlYmZkN2RiOS4uNGIx
NzZlMGM3ZTczZWM5ZTFmNmM1Y2FiNzZlZGQyZmViZjU3NDAwZCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVj
ayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVt
ZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEhhaWt1OjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyk6CisKIDIwMTAtMTAtMjYgIEplbm4gQnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRG1pdHJ5IFRpdG92LgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmggYi9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAppbmRleCA1Y2JlYzI3MjIx
M2NjNmNlOWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3Y2QxLi5mM2YxMDVlMzg4YjcxZWIzODRiMzJmNTdi
ODVjNzljMWVmNzBhM2JjIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50SGFpa3UuaApAQCAtMTEwLDYgKzExMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CiAKICAgICAgICAgYm9v
bCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBlZTQ2ZDUzMjc0OWQ2M2U1YjU4MDZjM2M4MGVi
ZmFmNTM3MzMzZjkyLi5mNmIzZTZjNDcwMDc4MjAxY2Q2ZTE2YjkzYjJmMmFmY2NlN2NmNzJhIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQg
YXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSB0byBXZWJFZGl0b3JDbGllbnQgdXNpbmcK
KyAgICAgICAgLVtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10uCisgICAg
ICAgIE5vdGUgdGhhdCBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGlzIGEgc21hbGwgY2xh
c3MgdG8gcmVjZWl2ZQorICAgICAgICByZXF1ZXN0ZWQgc3BlbGwtY2hlY2tpbmcgcmVzdWx0LiBO
b3RlIHRoYXQgdGhpcyBmZWF0dXJlIGlzCisgICAgICAgIGRpc2FibGVkIGF0IGRlZmF1bHQuCisg
ICAgICAgIAorICAgICAgICBBbHNvIGFkZGVkIFtXZWJQcmVmZXJlbmNlcyBzZXRBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZDpdIHRvIAorICAgICAgICBlbmFibGUgdGhlIGZlYXR1cmUg
ZnJvbSBMYXlvdXRUZXN0Q29udHJvbGxlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbToKKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBpbml0V2l0aFNl
bmRlcjpXZWJDb3JlOjpzZXF1ZW5jZTpyZXN1bHRzOl0pOgorICAgICAgICAoLVtXZWJFZGl0b3JT
cGVsbENoZWNrUmVzcG9uZGVyIHBlcmZvcm1dKToKKyAgICAgICAgKHRvQ29yZVNwZWxsaW5nUmVz
dWx0KToKKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBXVEY6OldlYkNv
cmU6Ol0pOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNl
cyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBhc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6CisKIDIwMTAt
MTAtMjggIEl2YW4gS3JzdGnEhyAgPGlrZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWFyayBSb3dlLgpAQCAtMTM4NCw2ICsxNDE2LDMyIEBACiAKIDIwMTAtMDktMDggIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQg
dGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAw
OTIKKworICAgICAgICBJbXBsZW1lbnRlZCBhc3luYyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVk
aXRvckNsaWVudC4KKyAgICAgICAgVGhlIGltcGxlbWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3Bl
bGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nXQorICAgICAgICB3aGljaCBpcyBhdmFp
bGFibGUgb25seSBvbiBNYWMgT1MgMTAuNiBvciBsYXRlci4KKyAgICAgICAgCisgICAgICAgIE5v
dGUgdGhhdCBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGlu
dm9rZQorICAgICAgICB0aGUgY2FsbGJhY2sgYmxvY2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRo
cmVhZCwgc28gd2UgbmVlZCB0bworICAgICAgICByZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFp
biB0aHJlYWQgd2hlcmUgV2ViQ29yZSBpcyBydW5uaW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJw
b3NlLCB3ZSBtYWRlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAg
IAorICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQt
MDAxLmh0bWwKKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdp
dGhTZW5kZXI6V2ViQ29yZTo6c2VxdWVuY2U6cmVzdWx0czpdKTogQWRkZWQuCisgICAgICAgICgt
W1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAg
KFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCisyMDEwLTA5LTA4ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hh
bmcuCiAKICAgICAgICAgc3BlbGxpbmcgdW5kZXJsaW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmgg
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGFkMzI0
YjlmYTM5ZDY1MDA0ZGNkMTc1ZTdmMTJmOTZmNzE4NTNkYmMuLmU5NDA4Zjc5NjhmMDU5YzU3YTk2
Mzg1M2NiOTdjZmNlM2RlN2YwN2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaApAQCAtMTMyLDYgKzEzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6
OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RT
dGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxl
ZCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNw
ZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNpZiAhZGVmaW5lZChCVUlM
RElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVj
dGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3Ry
aW5nJiByZXBsYWNlbWVudFN0cmluZywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2
b2lkIGRpc21pc3NDb3JyZWN0aW9uUGFuZWwoYm9vbCBjb3JyZWN0aW9uQWNjZXB0ZWQpOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCAyYmYzMjU5
ZjRhMjJhYjY4NjFkNjlkMTM2M2I3M2MxM2U4MTgyOGY2Li4wZjljZTgxOWNjY2Y0MmI3NjZmMDZk
OWMyNTAyYjA2MDk4Zjk0MTkxIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQpAQCAtNjMsNiArNjMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lX
ZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9TcGVs
bENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3Iu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgpAQCAtOTMyLDMgKzkzMyw3MyBAQCB2b2lkIFdlYkVk
aXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogdm9pZCBXZWJFZGl0b3JDbGll
bnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KKworI2lmICFkZWZpbmVkKEJVSUxE
SU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorQGludGVyZmFj
ZSBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIDogTlNPYmplY3QKK3sKKyAgICBXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqIF9zZW5kZXI7CisgICAgaW50IF9zZXF1ZW5jZTsKKyAgICBSZXRhaW5Q
dHI8TlNBcnJheT4gX3Jlc3VsdHM7Cit9CistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29yZTo6
U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihOU0Fy
cmF5KilyZXN1bHRzOworLSAodm9pZClwZXJmb3JtOworLSAoV1RGOjpWZWN0b3I8V2ViQ29yZTo6
U3BlbGxDaGVja2luZ1Jlc3VsdD4pIF9jb3JlUmVzdWx0czsKK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIKKy0gKGlkKWluaXRXaXRoU2VuZGVyOihX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqKXNlbmRlciBzZXF1ZW5jZTooaW50KXNlcXVlbmNlIHJlc3Vs
dHM6KE5TQXJyYXkqKXJlc3VsdHMKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlm
ICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBfc2VuZGVyID0gc2VuZGVyOworICAg
IF9zZXF1ZW5jZSA9IHNlcXVlbmNlOworICAgIF9yZXN1bHRzID0gcmVzdWx0czsKKyAgICByZXR1
cm4gc2VsZjsKK30KKworLSAodm9pZClwZXJmb3JtCit7CisgICAgX3NlbmRlci0+ZGlkQ2hlY2so
X3NlcXVlbmNlLCBbc2VsZiBfY29yZVJlc3VsdHNdKTsKK30KKworc3RhdGljIFNwZWxsQ2hlY2tp
bmdSZXN1bHQgdG9Db3JlU3BlbGxpbmdSZXN1bHQoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3Vs
dCkKK3sKKyAgICBOU1RleHRDaGVja2luZ1R5cGUgdHlwZSA9IFtyZXN1bHQgcmVzdWx0VHlwZV07
CisgICAgTlNSYW5nZSByYW5nZSA9IFtyZXN1bHQgcmFuZ2VdOworICAgIERvY3VtZW50TWFya2Vy
OjpNYXJrZXJUeXBlIGNvcmVUeXBlOworICAgIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdUeXBl
U3BlbGxpbmcpCisgICAgICAgIGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOwor
ICAgIGVsc2UgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAgICBj
b3JlVHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgIGVsc2UKKyAgICAgICAgY29y
ZVR5cGUgPSBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2VyczsKKworICAgIHJldHVybiBTcGVsbENo
ZWNraW5nUmVzdWx0KGNvcmVUeXBlLCByYW5nZS5sb2NhdGlvbiwgcmFuZ2UubGVuZ3RoKTsKK30K
KworLSAoV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4pX2NvcmVSZXN1
bHRzCit7CisgICAgV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4gY29y
ZVJlc3VsdHM7CisgICAgY29yZVJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KFtfcmVzdWx0cy5nZXQo
KSBjb3VudF0pOworICAgIGZvciAoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCBpbiBfcmVz
dWx0cy5nZXQoKSkKKyAgICAgICAgY29yZVJlc3VsdHMuYXBwZW5kKHRvQ29yZVNwZWxsaW5nUmVz
dWx0KHJlc3VsdCkpOworICAgIHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVuZAorI2VuZGlm
CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRleHQp
Cit7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5H
X09OX0xFT1BBUkQpCisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQubGVu
Z3RoKCkpOworICAgIE5TUnVuTG9vcCogY3VycmVudExvb3AgPSBbTlNSdW5Mb29wIGN1cnJlbnRS
dW5Mb29wXTsKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVxdWVz
dENoZWNraW5nT2ZTdHJpbmc6dGV4dCByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2luZ0Fs
bFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNJ
bnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7Cisg
ICAgICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3Jt
KSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRpdG9y
U3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVlbmNl
OnNlcXVlbmNlIHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFycmF5
V2l0aE9iamVjdDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOworICAgICAgICB9XTsKKyNlbmRpZgor
fQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4
IDVjNmI1MzAxMDM2ZGIzYTRkNTI1Mzg5ZGNkYTViNTM2MThjNDY5NTguLjkzZjgzZmM1MTVhYTk2
NzJlZjMzZWYwNjMzZGExM2U1MzQ1MmRhNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTk5LDYgKzk5LDcgQEAKICNkZWZpbmUgV2ViS2l0
UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFBhZ2luYXRl
RHVyaW5nTGF5b3V0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RE5TUHJlZmV0Y2hpbmdFbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZCIKICNkZWZpbmUgV2Vi
S2l0RnVsbFNjcmVlbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RnVsbFNjcmVlbkVuYWJs
ZWQiCisjZGVmaW5lIFdlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRNZW1vcnlJbmZvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZW1vcnlJbmZv
RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5j
ZUtleSBAIldlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCmluZGV4IGVkMDYxODg5MjVkM2ZiNTJiNTM2Mzc4MWUyNWZkNzEwMGM0
M2E1NzkuLjQ5Mzk2NjMwYTE0ZDk0ZjJiYjJkNmNkMzcyMTU0YzA3MDc5ZGZkYjMgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTM2Nyw2ICszNjcsNyBAQCBzdGF0aWMgV2Vi
Q2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1bmRsZSh2b2lkKQogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZFBy
ZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2Vi
S2l0RE5TUHJlZmV0Y2hpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVuY2VL
ZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0QXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdE1lbW9yeUluZm9FbmFibGVkUHJlZmVyZW5j
ZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRIeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzS2V5LApAQCAt
MTM5Myw2ICsxMzk0LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5p
bDsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRGdWxsU2NyZWVuRW5h
YmxlZFByZWZlcmVuY2VLZXldOwogfQogCistICh2b2lkKXNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcg
Zm9yS2V5OldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVyZW5jZUtl
eV07Cit9CisKKy0gKEJPT0wpYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQKK3sKKyAg
ICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiArICh2b2lkKXNldFdlYktpdExpbmtU
aW1lVmVyc2lvbjooaW50KXZlcnNpb24KIHsKICAgICBzZXRXZWJLaXRMaW5rVGltZVZlcnNpb24o
dmVyc2lvbik7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5k
ZXggMmVjMDhlODE1MDc5M2Q1ZTVkZTVlNzA0MmFhYWI4ZTJhN2ZhMWI1MS4uYTA5YzUwZTA3YTQz
Yjc0NzRmMGExZmUzNTA2NzE4YzY4MmUxNmVkNyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMjIwLDYgKzIyMCw5IEBAIGV4dGVybiBOU1N0cmluZyAq
V2ViUHJlZmVyZW5jZXNSZW1vdmVkTm90aWZpY2F0aW9uOwogLSAodm9pZClzZXRGdWxsU2NyZWVu
RW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTClmdWxsU2NyZWVuRW5hYmxlZDsKIAorLSAodm9p
ZClzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnOworLSAoQk9P
TClhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDsKKwogLSAodm9pZClzZXRVc2VQcmVI
VE1MNVBhcnNlclF1aXJrczooQk9PTClmbGFnOwogLSAoQk9PTCl1c2VQcmVIVE1MNVBhcnNlclF1
aXJrczsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3NDU2ODk4YWJmOThhODJlODlhN2ZlNDNh
Nzk0ODM5MTY0YTZjYzQ0Li4xNzE5MGYxZjJiODY3MGMwMWIyNDljYTNjYTgwZDFlNmI5ZmQxYWY0
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTUwMCw2ICsxNTAwLDEwIEBAIHN0YXRpYyBib29s
IGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIHNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChbcHJlZmVyZW5jZXMgZnVsbFNj
cmVlbkVuYWJsZWRdKTsKICNlbmRpZgorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAgIC8vIEFzeW5jaHJvbm91cyBzcGVs
bCBjaGVja2luZyBBUEkgaXMgYXZhaWxhYmxlIGZvciAxMC42IG9yIGxhdGVyLgorICAgIHNldHRp
bmdzLT5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgYXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdKTsKKyNlbmRpZgogICAgIHNldHRpbmdzLT5z
ZXRNZW1vcnlJbmZvRW5hYmxlZChbcHJlZmVyZW5jZXMgbWVtb3J5SW5mb0VuYWJsZWRdKTsKICAg
ICBzZXR0aW5ncy0+c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBoeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0VXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3MoW3NlbGYgX25lZWRzUHJlSFRNTDVQYXJzZXJRdWlya3NdKTsKZGlmZiAtLWdpdCBh
L1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDIzNmIwNGU2
NjViNGUzNDI0MDQyMjAzYmQ2NWZmNjIwMTVhMzEwMzEuLjQ0ZGI4YmQ5MjYzMzIxMzI0ZjdlNmY5
NjYwMGI4YzE4NGMxYjExYjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDky
CisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JD
bGllbnRRdDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTI4ICBOb2FtIFJv
c2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBcml5YSBIaWRheWF0LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQu
aAppbmRleCA3ZDk5ZDIyMmQ4MzZmMTA3ZjZhMDNlNjdhODI1MzE1YWM1NWFlM2JmLi5iZjU0MzM0
Y2FjNjBiMGNkMDM1YzlkYjkzZThkYjk0ZmJmMGQzMDc2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmlu
Zz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGlu
dCwgY29uc3QgU3RyaW5nJikge30KIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggMzUzOTNiYWNmNzgzZmVmNTVmYTAxNTQ3YzQzNGJiNDUyODVmODI4NS4uMTA2ZTUxMzQ5ZjZh
ZmUyMGQwNTJlMTk5YzU2OTUwM2MzMzdmY2Q4YiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0x
MC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNo
ZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdl
YkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTI2ICBC
cmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmggYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
CmluZGV4IDhiZTZkZTkwYzIxZjRlMTllZmMyZmZmYjNhN2FkZTRjZmQ0OGVlMzMuLmRjOTZhYjQ4
OTY2MTJkZmIwZjQzNGJlMDUzOGVjMjVjZjI0YzFjNmMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTExLDYgKzExMSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6
U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRl
eCBhNzcyM2FkYzY3MDA0ZDVlZGZkYTUwNmE4Nzg5Yzg3ZGY1OWZlZGNlLi4zNWY2MjI4ZWQ4N2U0
NzZiYWNjNDI4NTJjMDI4ZmUyYTNmNzE1YmM2IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90
IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24u
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAx
MC0xMC0yNiAgSmVubiBCcmFpdGh3YWl0ZSAgPGplbm5iQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaCBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oCmluZGV4IGJlODViM2ZhNDMzNDUxZGI0NjU5ZGQ0NWMy
NGMzOTVhYWE2MzkyYjAuLmQxNjRkZWNhOTFjMGYzNDgyMzlhMTQwNmJkNDc4NmFjODhiMDYwZjYg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5D
RS5oCisrKyBiL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5o
CkBAIC0xMDAsNiArMTAwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYpOwog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6
U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCAxMzQ3
NDZhNzc2OGI0Yzc5YTAwM2ExZTBmZmZkMjU4ZTNiYmRjZDAxLi5iMzhjM2VhOGM2ODA5YzkwM2Yy
MDgxMzQzNmM5ZGQ2ZmE5NDljNTE2IDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3Rl
ZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAgICAg
KiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRXeDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEwLTI2ICBKZW5u
IEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRv
ckNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCmlu
ZGV4IGJlNWM5OGFmMjk3ZGUxMGUyZjZlNTY2ODVmMmVmNjA2NmU5ZDJmZWYuLmEyNjJhZDU5MTQy
MmYyNGU2NjllZTFhN2NhNWNlNjg0ZDI0ZjI5MWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKKysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
RWRpdG9yQ2xpZW50V3guaApAQCAtMTEyLDYgKzExMiw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdU
Rjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQg
YS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDQ4NDY2NTQ0YTky
N2UwNDUyYTkxNmJmMDZkMzllNzBkNGEzMThiNzYuLjdjN2U2OGQ1YzVjYzJjZWFjYjcyNTNhYTg4
N2VhYjhlNDc3MGE4MTYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUg
IDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAg
ICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEwLTEwLTI4ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGNkZTliZThiZWUwOGNlYzRjN2VlZmI1ZjMx
N2ZjNzkyOTA5NmRjNmYuLjVhZDZjYWU0OTkxM2Q3YmJkN2NjZjdlMzA0MzQyNGJlYzdlZTI1ODUg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCkBAIC00MDMsNCArNDAzLDkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lk
IFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxD
aGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNGIxZjk5Yzc3ZjIwZjg0
YWY4ZGExMjRlZTAyNWUxYjQwNTg5YzJhMS4uYTg5Njc3NGY2OTIyMWEyNDEzYjViOTFiMmQzZWIx
OWQ1MzMzYzNiZSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMzLDYgKzEzMyw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+
JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNr
ZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVm
aW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkg
JiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1YWwgdm9pZCBz
aG93Q29ycmVjdGlvblBhbmVsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpbmdCb3hP
ZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3IqKTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChib29sIGNvcnJlY3Rpb25BY2NlcHRlZCk7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5k
ZXggMDYxYWY3YWM4OTVjZDhhOGIxMTc5OGYzYzFiMWU5M2RmMzYxNjU2Mi4uNzAyYzUwNDYzOTVl
ZDEzOWUyYmQ1ZjdkZTAyZDczYzdlYjk3ZGEzMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEw
LTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3Qg
Y2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKKyAgICAgICAgdG8gY29udHJvbCB0
aGUgc2V0dGluZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkQ2Fs
bGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6
CisKIDIwMTAtMTAtMjggIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDgzNjU1YmRkNjUwNjJlOTUwMmM3
MzJlODEzYjE1ZGUzMWUyOTI2Y2IuLmRmYmNkZWM5M2RiYTg5MmZjNmU5MjNiYjE0NmQwMDZiZTY1
MDIxZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKQEAgLTE0ODAsNiArMTQ4MCwxNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTTwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3Rh
dGljIEpTVmFsdWVSZWYgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQg
PCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAg
ICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRl
c3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250
cm9sbGVyLT5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChKU1ZhbHVlVG9Cb29s
ZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgc2hvd1dlYkluc3BlY3RvckNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTE5OTUsNiArMjAwNSw3IEBAIEpT
U3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQog
ICAgICAgICB7ICJzZXRXaW5kb3dJc0tleSIsIHNldFdpbmRvd0lzS2V5Q2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCIsIHNldEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRY
U1NBdWRpdG9yRW5hYmxlZCIsIHNldFhTU0F1ZGl0b3JFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
KyAgICAgICAgeyAic2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiLCBzZXRBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNob3dXZWJJbnNwZWN0b3IiLCBzaG93V2ViSW5zcGVjdG9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAidGVzdE9uc2NyZWVuIiwgdGVzdE9uc2NyZWVuQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAidGVzdFJlcGFpbnQiLCB0ZXN0UmVwYWludENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRl
eCAyNzUxOGI3MDgwODg2OGRlNGNhNzI2MTM0YzQ2MmE5ZTA5NzRmZWUwLi40OWQ4YzA0YzQyZWFk
NzdlNWRhYmI3MThhOTIyYTFmMWRjZmRiNWZlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTI3MCw2ICsyNzAsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBnZW9sb2NhdGlvblBlcm1pc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2dl
b2xvY2F0aW9uUGVybWlzc2lvbjsgfQogCiAgICAgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKGJvb2wpOworICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
Ym9vbCk7CiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBjbG9zZVdlYklu
c3BlY3RvcigpOwogICAgIHZvaWQgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMWE2MTg3ZWI0ZWZkNmQ1OGU1NzU1
NThjYzE4MDk4MTcwYjQ2ODQ3ZC4uNGMyYTM3OTNiODhhNjgzZGI0ZGE3MjU4MTg5ZWFlZmVjNjc4
NmNjZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTY0LDYgKzE2NCw3IEBAIExheW91
dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQog
ICAgIGJpbmRNZXRob2QoInNldFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJl
ZGlyZWN0KTsKICAgICBiaW5kTWV0aG9kKCJzZXRXaW5kb3dJc0tleSIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0V2luZG93SXNLZXkpOwogICAgIGJpbmRNZXRob2QoInNldFhTU0F1ZGl0b3JF
bmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRYU1NBdWRpdG9yRW5hYmxlZCk7Cisg
ICAgYmluZE1ldGhvZCgic2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTsK
ICAgICBiaW5kTWV0aG9kKCJzaG93V2ViSW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzaG93V2ViSW5zcGVjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJzaW11bGF0ZURlc2t0b3BOb3Rp
ZmljYXRpb25DbGljayIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90
aWZpY2F0aW9uQ2xpY2spOwogICAgIGJpbmRNZXRob2QoInN1c3BlbmRBbmltYXRpb25zIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5kQW5pbWF0aW9ucyk7CkBAIC02MTcsNiArNjE4LDEx
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFsd2F5c0FjY2VwdENvb2tpZXMoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVuCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAK
K3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hv
d1dlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQp
CiB7CiAgICAgbV9zaGVsbC0+c2hvd0RldlRvb2xzKCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRl
eCBmYzE2ODI3NDFiNzI4NjFkODM1ODBlODkzZjYwZWViYmI1NzU1MzExLi4xMDczM2EzYzU4OWFj
ZTdkYjllYTc0MmI4NDdkMzJlZDk4MTRhYWM2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE1
Myw2ICsxNTMsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ2hhbmdlcyB0aGUgY29va2llIHBvbGljeSBm
cm9tIHRoZSBkZWZhdWx0IHRvIGFsbG93IGFsbCBjb29raWVzLgogICAgIHZvaWQgc2V0QWx3YXlz
QWNjZXB0Q29va2llcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAg
ICAvLyBDaGFuZ2VzIGFzeW5jaHJvbm91cyBzcGVsbGNoZWNraW5nIGZsYWcgb24gdGhlIHNldHRp
bmdzLgorICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAgICAgLy8gU2hvd3MgRGV2VG9vbHMg
d2luZG93LgogICAgIHZvaWQgc2hvd1dlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBjbG9zZVdlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCAwNGQ5N2Vi
ZTFjMjdhY2E1NTI0YjI5MTZiYjVmNmIwNDAyYTUyYmMzLi5mMmU1MDhiZTU2YzdkNjYwZTM2NTVl
ZjBlNDlmNmU2YjVhY2ZhMTc0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTczNSw2ICs3MzUs
MTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAgICAgZ19vYmplY3Rfc2V0KHdlYlNldHRpbmdzLCAiZW5hYmxlLWRl
dmVsb3Blci1leHRyYXMiLCBlbmFibGVkLCBOVUxMKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3
ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IGVmZGY1NGEyYTkx
MTIyNmE3ZDg0MDlmNTZhNDVhOTgzZmJkYjM2OTcuLjcwMzFhYmYxM2JkZDU3Yzg1Mzc0OWUzZTIw
ZGNkYTk4OTg0MDI1NzYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KQEAgLTQ2MCw2ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCByZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBbcHJlZmVyZW5jZXMgc2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0VuYWJsZWQ6WUVTXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0V2ViR0xFbmFi
bGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0VXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6Tk9d
OworICAgIFtwcmVmZXJlbmNlcyBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDpO
T107CiAKICAgICBbW05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2Vd
IHNldENvb2tpZUFjY2VwdFBvbGljeTpOU0hUVFBDb29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1h
aW5Eb2N1bWVudERvbWFpbl07CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBjNWQ1YTkwNjk1OTli
YTRiY2ZjMmFjYTMxMWM3YTNhNzY1YWI1ZTFkLi41ZGZlMzA4NWI5NjUxYzgwMTk5NjEyYmJhZmJi
OThmY2I3ZDVkNmRjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC03MDgsNiArNzA4LDExIEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBwcmVmZXJlbmNlc10gc2V0RGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZDplbmFibGVkXTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQorewor
ICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBwcmVmZXJlbmNlc10gc2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQ6ZW5hYmxlZF07Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBpbnNw
ZWN0b3JdIHNob3c6bmlsXTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggYjJjMzgwN2QwNmZlNWE2Yzhl
YjMxMzRhYmQ4YmIwM2NiZmIxYjViYy4uMjlmNzRhMmZiYmIzZmM2ZjU3NDk4MmViYTQ2NzQ5MTgz
OTM4YjU1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTM4MCw2ICszODAsMTEgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQp
CiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0
aW5nczo6RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wp
Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKCkKIHsKICAgICBtX2RydC0+d2ViUGFnZSgpLT5z
ZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFi
bGVkLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCA2OGViZTFkODU5OTJhZTY0ZjllMDllNjQyZjkx
MjBlNmM0OTY3ZmM4Li5mNDUzOTlmMTJjZDEzMjg4MTQ5ZDM5YWExZGNhOWViYjc2YjVkN2NiIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5oCkBAIC0xMzYsNiArMTM2LDcgQEAgcHVibGljIHNsb3RzOgogICAgIFFTdHJp
bmcgZGVjb2RlSG9zdE5hbWUoY29uc3QgUVN0cmluZyYgaG9zdCk7CiAgICAgdm9pZCBkdW1wU2Vs
ZWN0aW9uUmVjdCgpIGNvbnN0IHt9CiAgICAgdm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVk
KGJvb2wpOworICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9v
bCk7CiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBjbG9zZVdlYkluc3Bl
Y3RvcigpOwogICAgIHZvaWQgZXZhbHVhdGVJbldlYkluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29u
c3QgUVN0cmluZyYgc2NyaXB0KTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDllOGVkMWU2OTU3
ZDdmN2NhNGZlYWQ5MWQ4N2I5YjU2ZmI0MjE0NTkuLmQzNjYyNWU1NWFkNjhkMDIxM2ZkMjE3MDc5
NjEwZjIzN2IzMmIzNzkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtMTE2Miw2ICsxMTYyLDEx
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogICAgIHByZWZzUHJpdmF0ZS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IHRoaXMuCit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3Io
KQogewogICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXgg
ZWVmYzU4NzgxZTBhMWVhYmNkMGZkODEzODkzMmNjNDNjNGQ3ODQ3Zi4uYzlmNDNmMzk1OTQ3MzI3
NWY2NmIxZjdiODg3OTcxOTJiMzBlNjQ5MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTUyOSwzICs1
MjksNyBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBh
Z2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYQogICAgIHJldHVybiAwOwogfQogCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZChib29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73564</attachid>
            <date>2010-11-10 18:03:03 -0800</date>
            <delta_ts>2010-11-16 18:39:41 -0800</delta_ts>
            <desc>Updated to ToT</desc>
            <filename>bug-40092-20101111110301.patch</filename>
            <type>text/plain</type>
            <size>79897</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMDFhNDQ2OGE2MDZkYWExYWQwYTIyYTUxMTQ3MmU5NzNkMGY3ZjNjLi42ZmI4MjY4
ODk2Y2U1YTk3MWIzYjY3ZDI1MDViMzBlMTcwNGUxZGYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMS0xMCAgTWloYWkgUGFycGFyaXRh
ICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENocm9taXVtIHJl
YmFzZWxpbmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zY3Jp
cHQtdGVzdHMvc3BlbGxjaGVjay1wYXN0ZS5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEzZDJiMDk0
NmMxMWMzNjMwMDliZThkMzc4MTVmYWMxNzE1N2EwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMK
QEAgLTAsMCArMSw5OCBAQAorCitkZXNjcmlwdGlvbignRm9yIEJ1ZyA0MDA5MjogU3BlbGwgY2hl
Y2tpbmcgZm9yIHBhc3RlZCB0ZXh0LicpOworCitsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisKK3ZhciB0ZXN0Um9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodGVzdFJvb3QsIGRvY3VtZW50LmJvZHkuZmly
c3RDaGlsZCk7CisKK3ZhciB0ZXN0VGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0
ZXh0YXJlYSIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFRleHRBcmVhKTsKKwordmFyIHRl
c3RJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cit0ZXN0SW5wdXQuc2V0
QXR0cmlidXRlKCJ0eXBlIiwgInRleHQiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RJbnB1
dCk7CisKK3ZhciB0ZXN0RWRpdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
K3Rlc3RFZGl0YWJsZS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIsICJ0cnVlIik7Cit0
ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0RWRpdGFibGUpOworCit2YXIgdGVzdFNvdXJjZVBsYWlu
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlUGxhaW4uaW5uZXJI
VE1MID0gImZvbyBiYXIiOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFNvdXJjZVBsYWluKTsK
KwordmFyIHRlc3RTb3VyY2VEZWNvcmF0ZWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYi
KTsKK3Rlc3RTb3VyY2VEZWNvcmF0ZWQuaW5uZXJIVE1MID0gImZvPGI+byBiYTwvYj5yIjsKK3Rl
c3RSb290LmFwcGVuZENoaWxkKHRlc3RTb3VyY2VEZWNvcmF0ZWQpOworCit2YXIgc2VsID0gd2lu
ZG93LmdldFNlbGVjdGlvbigpOworCit2YXIgdGVzdHMgPSBbXTsKKworZnVuY3Rpb24gZG9uZSgp
Cit7CisgICAgdmFyIG5leHQgPSB0ZXN0cy5zaGlmdCgpOworICAgIGlmIChuZXh0KQorICAgICAg
ICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQobmV4dCwgMCk7CisgICAgdGVzdFJvb3Quc3R5bGUu
ZGlzcGxheSA9ICJub25lIjsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIHZlcmlmeU1hcmtlcihub2RlLCBleHBlY3RlZE1hcmtlZCkKK3sKKyAg
ICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9m
IEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgbm9kZS5mb2N1cygpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihub2RlKTsKKyAgICB9CisgICAgcmV0
dXJuIGxheW91dFRlc3RDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKGV4cGVjdGVkTWFya2Vk
WzBdLCBleHBlY3RlZE1hcmtlZFsxXSk7Cit9CisKK2Z1bmN0aW9uIHBhc3RlQW5kVmVyaWZ5KHNv
dXJjZSwgZGVzdCwgZXhwZWN0ZWRNYXJrZWQpCit7CisgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVu
KHNvdXJjZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKKyAgICBpZiAoZGVz
dCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgZGVzdCBpbnN0YW5jZW9mIEhUTUxUZXh0
QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgZGVzdC52YWx1ZSA9ICIiOworICAgICAgICBkZXN0LmZv
Y3VzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVzdC5pbm5lckhUTUwgPSAiIjsKKyAgICAg
ICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRlc3QpOworICAgIH0KKyAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgiUGFzdGUiKTsKKworICAgIHZhciBucmV0cnkgPSAxMDsKKyAgICB2YXIgbnNsZWVw
ID0gMTsKKyAgICBmdW5jdGlvbiB0cmlhbCgpIHsgCisgICAgICAgIHZhciB2ZXJpZmllZCA9IHZl
cmlmeU1hcmtlcihkZXN0LCBleHBlY3RlZE1hcmtlZCk7CisgICAgICAgIGlmICh2ZXJpZmllZCkg
eworICAgICAgICAgICAgdGVzdFBhc3NlZChkZXN0LnRhZ05hbWUgKyAiIGhhcyBhIG1hcmtlciBv
biAnIiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOworICAgICAgICAgICAgZG9uZSgpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbnJldHJ5LS07CisgICAgICAg
IGlmICgwID09IG5yZXRyeSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZChkZXN0LnRhZ05hbWUg
KyAiIHNob3VsZCBoYXZlIGEgbWFya2VyIG9uIGZvciAnIiArIHNvdXJjZS5pbm5lckhUTUwgKyAi
JyIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBuc2xlZXAgKj0gMjsKKyAgICAgICAgd2luZG93LnNldFRpbWVv
dXQodHJpYWwsIG5zbGVlcCk7CisgICAgfTsKKyAgICB0cmlhbCgpOworfTsKKworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKwordGVzdHMucHVzaChmdW5jdGlv
bigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0SW5wdXQsIFswLCAzXSk7
IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZURl
Y29yYXRlZCwgdGVzdElucHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7
IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdFRleHRBcmVhLCBbMCwgM10pOyB9
KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VEZWNv
cmF0ZWQsIHRlc3RUZXh0QXJlYSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkg
eyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRlc3RFZGl0YWJsZSwgWzAsIDNdKTsg
fSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlRGVj
b3JhdGVkLCB0ZXN0RWRpdGFibGUsIFswLCAyXSk7IH0pOyAvLyBUbyBjaGVjayAiZm8iIHBhcnQg
b2YgZm9vLgorZG9uZSgpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlM2E4NzMwYjUyZjI0ZWM0NDViYmVlYTQyMzVmNGZk
NTg4YTFiYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK0ZvciBCdWcg
NDAwOTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIElOUFVU
IGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCitQQVNTIFRFWFRBUkVBIGhhcyBhIG1h
cmtlciBvbiAnZm9vIGJhcicKK1BBU1MgVEVYVEFSRUEgaGFzIGEgbWFya2VyIG9uICdmbzxiPm8g
YmE8L2I+cicKK1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1MgRElWIGhh
cyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJhYmEwYzM0
NTczNDUzMzMwODVjOGRlMGQxYjhkZWMxMWMyMDk4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCkBAIC0wLDAgKzEs
MTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggNDQ0YzY5NjgzNzhmMTY2ODU5MDg3
MzliYjFlNmIwY2I0MTgzZjY3OC4uNGU0NWJhMmNiOTgwMGYyMjBjNzhjODk0ZDg3YWQ4YzllZWQ0
OTU0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dApAQCAtMjU3OCw2ICsyNTc4LDkgQEAgQlVHV0s0MTMxMSBXSU4gTElOVVgg
OiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDcuaHRtbCA9IElNQUdFCiBCVUdXSzQx
MzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUwOC5odG1sID0g
SU1BR0UKIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1c0Rv
dWJsZTA5Lmh0bWwgPSBJTUFHRQogCisvLyBOZWVkIHRvIGltcGxlbWVudCBFZGl0b3JDbGllbnQ6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkKK0JVR1dLNDE0MjMgOiBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGUuaHRtbCA9IFRJTUVPVVQKKwogLy8gRmxha3kgdGVzdHMuCiBCVUc0
NDM0NSBMSU5VWCA6IHN2Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhlZC0wMDkueG1sID0gSU1B
R0UgUEFTUwogQlVHNDQzNDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pvb20taGl4aWUtbWl4ZWQt
MDA5LnhtbCA9IElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggYTAzNGZj
YWM3NTM0NWM2MjRjYzc2ZWQxNWY4NmZjMzQ2ZDNiNWRiYy4uY2ZmYWYzYTM1NGRhNjcxY2RhZWIy
MTFjMmIyYTQyOGZjYWI4YTBlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTk4MSw2
ICs5ODEsNyBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxp
bmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbGluZWJyZWFrLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctYXR0cmlidXRlLWNoYW5nZS5odG1sCiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWF0dHJpYnV0ZS1hdC1jaGlsZC5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsY2hlY2stcGFzdGUuaHRtbAogZWRpdGluZy9zdHlsZS81MDY1OTEwLmh0bWwKIGVkaXRpbmcv
c3R5bGUvYXBwbGUtc3R5bGUtZWRpdGFibGUtbWl4Lmh0bWwKIGVkaXRpbmcvc3R5bGUvYmxvY2st
c3R5bGUtMDAxLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9w
YXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCmlu
ZGV4IGQyOWU1MGI1MjZlZmZhMGU3ODZjZDQxOWJhNjU3NzlmMmZkNjdmNTkuLjM5ZDI1NDg5Njhl
ODdlY2ExNjBlZTBjNDYwOTk4ZTkzZWRjOWU4NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LWxlb3BhcmQvU2tpcHBlZApAQCAtODUsNiArODUsOSBAQCBmYXN0L3RleHQvaHlwaGVuYXRlLWxv
Y2FsZS5odG1sCiAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzUyNzEKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tc2Vla2FibGUtc3RhbGwuaHRtbAogCisjIEF2
YWlsYWJsZSAxMC42IG9yIGxhdGVyCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUu
aHRtbAorCiAjIERpc2FibGUgdGVzdHMgd2hpY2ggc3RhcnRlZCBmYWlsaW5nIGFmdGVyIHI2Njk2
MQogIyBGYWlsdXJlcyBsb29rIGxpa2UgYW4gdW5kZXJseWluZyBwbGF0Zm9ybSBpc3N1ZQogIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU1NDYKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKaW5kZXggYjNmMmM0ODA5NWM1NjYwMGI2NDdhNjYwZWUx
ZWQ4YjhlZGQ5NDA0Yi4uYTZiZGZhNTgzNDUyNjg3MTU4ZmQzZGYxNWI0MzNhZjZiZDM4MDkwMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKQEAgLTIwNCw2ICsyMDQsOSBA
QCBmYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cuaHRtbAogIyBMb2FkaW5nIGZhaWxzIG9u
IFRpZ2VyIHdpdGggZXJyb3IgLTEwMTIgYWZ0ZXIgYXNraW5nIE5TVVJMQ29ubmVjdGlvbiB0byBj
b250aW51ZSB3aXRob3V0IGNyZWRlbnRpYWxzLgogaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRlcm5h
dGl2ZS1jb250ZW50LnBocAogCisjIEF2YWlsYWJsZSBvbmx5IDEwLjYgb3IgbGF0ZXIKK2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJsZSBzcGVsbGluZyB0
ZXN0cyBmb3IgYXV0b2NvcnJlY3Rpb24gcGFuZWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxs
aW5nL2F1dG9jb3JyZWN0aW9uLWRlbGV0ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVs
bGluZy9hdXRvY29ycmVjdGlvbi1yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItcGFzdGUuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCmluZGV4IGI1ODQ3ZjA2MDJjNjI2NDgzYThj
NjZhZDkwZDA2YTk0Mzg0N2JmNDMuLjBiMWE4NzQwNjU3OTQ4ZTNmZDgzYzM1OWYxM2NiZjY2MWI3
MDUyNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKQEAgLTE2NSw2ICsxNjUs
NyBAQCBlZGl0aW5nL3NlbGVjdGlvbi90cmlwbGUtY2xpY2staW4tcHJlLmh0bWwKIGVkaXRpbmcv
c2VsZWN0aW9uL3VzZXItZHJhZy1lbGVtZW50LWFuZC11c2VyLXNlbGVjdC1ub25lLmh0bWwKIGVk
aXRpbmcvc2VsZWN0aW9uL3dvcmQtZ3JhbnVsYXJpdHkuaHRtbAogZWRpdGluZy9zcGVsbGluZy9j
b250ZXh0LW1lbnUtc3VnZ2VzdGlvbnMuaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNr
LXBhc3RlLmh0bWwKIGVkaXRpbmcvdW5kby91bmRvLWRlbGV0ZVdvcmQuaHRtbAogZWRpdGluZy91
bmRvL3VuZG8tc21hcnQtZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5odG1sCiBlZGl0aW5nL3Vu
ZG8vdW5kby1zbWFydC1kZWxldGUtd29yZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRl
eCBkOTkwZmM4ZmEyOWM1ZjEzZWM2NGYzNzI0OWEwOTFiMGQzOWY0ZmZlLi42ZTYzZmRkNjcwZTA4
YTI0YzFhYWU4MDFhOTVhMWVhY2I4OTljMDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAg
LTIxMTQsNiArMjExNCw5IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJl
dHdlZW4tbGluZXMuaHRtbAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1hdHRyaWJ1dGUtY2hh
bmdlLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYXR0cmlidXRlLWF0LWNoaWxkLmh0
bWwKIAorIyBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgaXMgbm90IGlt
cGxlbWVudGVkCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyBlZGl0aW5nL3N0eWxlIHRlc3RzCiAjID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggYjU5YjVi
ZjhlZjE2YjRiOGRkYmEyYzU4YTk1MmM1OTE1NDg0ZjNiNi4uNDQxZDZlNzRmMDEwYWI4ODlmZDYz
NzllY2Y0NTYxZjQzYTZmNWQzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTk0MCw2
ICs5NDAsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxp
bmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwK
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAogCisjIEVkaXRvckNsaWVu
dDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQg
ZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk3YTNkMmU5NWE2OGJkNDhj
NjZkYjEwOTlkOTI0MGQ0NGY2NmVmOGMuLjBjNjg1NTE5NjA5NjFjNjFhMTA3MDk1Y2U1MzJmOWY4
ZTJiZTAzN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtOTI1LDYgKzkyNSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCiAgICAgZWRpdGluZy9TZXROb2Rl
QXR0cmlidXRlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKKyAgICBl
ZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKICAgICBlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQu
Y3BwCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1Nw
bGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuY3BwCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY1ODFiNTlkMjdhNTJkNWM0
MGI4NDE3MzcwYjM2YzM1MzZhYWI5OGQuLmI1YzMyZjVhMTM5ZWQ3MTdlZTc5NmM1NDgzOWY1MWE3
MGJjMWVmNGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAt
IEludHJvZHVjZWQgU3BlbGxDaGVja2VyIGNsYXNzIHRvIGVuY2Fwc3VsYXRlIGFzeW5jaHJvbm91
cyBzcGVsbAorICAgICAgICAgIGNoZWNrZXIgc3RhdGU6IHNlcXVlbmNlIGlkLCByZXF1ZXN0aW5n
IHRleHQgYW5kIHRhcmdldCBub2RlLgorICAgICAgICAgIFRoaXMgaXMgYWxzbyB0aGUgZmlyc3Qg
c3RlcCB0byBkZWNvbXBvc2Ugc3BlbGwtY2hlY2sgcmVsYXRlZAorICAgICAgICAgIGNvZGUgdG8g
YSBzZXBhcmF0ZSBjbGFzcy4KKyAgICAgICAgLSBBZGRlZCBFZGl0b3JDbGllbnQ6OmlzQXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSAKKyAgICAgICAgICB0byB1c2UgYXN5bmMgc3Bl
bGxjaGVjayBBUEkgb24gdGhlIHBsYXRmb3JtLgorICAgICAgICAgIFRoZXNlIEFQSXMgYXJlIHRv
dWNoZWQgYnkgU3BlbGxDaGVja2VyLgorICAgICAgICAtIFVzZWQgU3BlbGxDaGVja2VyIHRvIGNo
ZWNrIGEgcGFzdGVkIHRlc3QuIFRleHQgdG8gY2hlY2sgaXMKKyAgICAgICAgICBjb2xsZWN0ZWQg
ZnJvbSB0aGUgc3VidHJlZSB1bmRlciB0aGUgZWRpdGluZ1Jvb3QuCisgICAgICAgIC0gQWRkZWQg
U2V0dGluZzo6bV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCB0byBjb250cm9sCisg
ICAgICAgICAgYXN5bmMgc3BlbGwgY2hlY2tpbmcuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9z
cGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAg
KiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnNo
b3dNYXJrZXJzKToKKyAgICAgICAgKHNob3dEb2N1bWVudE1hcmtlcnMpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVy
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpzZXRPZmZzZXRJ
bkxlYWZOb2RlKToKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5oOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNl
bGVjdGlvbldpdGhGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OkVkaXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpmaW5kRmlyc3RNYXJrYWJsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpFZGl0b3I6OnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IpOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNwZWxsQ2hlY2tl
cik6CisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlcjo6flNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OmluaXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xl
YXJSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25v
dXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2FuQ2hlY2tBc3lu
Y2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQnVzeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyOjppc0NoZWNrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkSXRl
cmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAg
ICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
cGVsbENoZWNraW5nUmVzdWx0OjpTcGVsbENoZWNraW5nUmVzdWx0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2luZ1Jlc3VsdDo6bG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2lu
Z1Jlc3VsdDo6bGVuZ3RoKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpFbXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAq
IHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6
YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorCiAyMDEwLTExLTEwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRs
ZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQppbmRleCBjZGFmZDlmODQ4ZmU1N2E4Y2UxZTA1YjU0YjU3MzA2NzJmZDJiNzI4Li5m
OGY5ZWM0ZjMxMDQ1Yjg3OWUyZmM4MDkyYjdmMjdiNzUyZmVhZGUwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTEzNTUs
NiArMTM1NSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0
UmVwbGFjZS5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9TbWFydFJlcGxhY2UuaCBcCiAJV2ViQ29y
ZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZUlDVS5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuY3BwIFwKKwlXZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmggXAogCVdlYkNvcmUv
ZWRpdGluZy9TcGxpdEVsZW1lbnRDb21tYW5kLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0
RWxlbWVudENvbW1hbmQuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5k
LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgppbmRleCAxMDQ5NGUyZThiZWNhOWI2ZTA1ZTNjNDAxY2E4M2ZiMTA5Y2YyY2E2
Li42MmJkODIwODgzN2MwNWU2ODE3ZjgwNGY5OWU2NTBiNGViY2Q1ZjkyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTUw
Nyw2ICs1MDcsNyBAQCBfX1pON1dlYkNvcmUyM1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kQzFFUE5T
XzhEb2N1bWVudEVOM1dURjEwUGFzc1JlZlB0cklOU18xNkRvYwogX19aTjdXZWJDb3JlMjNjcmVh
dGVGcmFnbWVudEZyb21Ob2Rlc0VQTlNfOERvY3VtZW50RVJLTjNXVEY2VmVjdG9ySVBOU180Tm9k
ZUVMbTBFRUUKIF9fWk43V2ViQ29yZTIzb3ZlcnJpZGVEZWZhdWx0TGFuZ3VhZ2VFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUyNEJpbmFyeVByb3BlcnR5TGlzdFdyaXRlcjE3d3JpdGVQcm9w
ZXJ0eUxpc3RFdgorX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxNG1hcmtl
cnNGb3JOb2RlRVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pO
N1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFya2Vyc0Zvck5vZGVFUE5TXzRO
b2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3JlbmRlcmVkUmVj
dHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCkBAIC05MDYsNiAr
OTA3LDcgQEAgX19aTjdXZWJDb3JlOW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvc2l0aW9uRVMy
XwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBfX1pON1dlYkNvcmU5cGxhaW5UZXh0RVBLTlNf
NVJhbmdlRU5TXzIwVGV4dEl0ZXJhdG9yQmVoYXZpb3JFCiBfX1pON1dlYkNvcmU5dG9FbGVtZW50
RU4zSlNDN0pTVmFsdWVFCitfX1pON1dlYkNvcmUxMlNwZWxsQ2hlY2tlcjhkaWRDaGVja0VpUktO
M1dURjZWZWN0b3JJTlNfMTlTcGVsbENoZWNraW5nUmVzdWx0RUxtMEVFRQogX19aTkszSlNDOEJp
bmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxPYmplY3RFdgogX19aTkszV1RGNlN0cmluZzE0Y3Jl
YXRlQ0ZTdHJpbmdFdgogX19aTks3V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5k
ZXggZjc5ZGJjZGJkMjVmZGNmZDA2MmVmZWY5YWRjMjE0YTBiYzg1ZTliNy4uMjBjNTY1MDJjMzA5
YmI0YmQ2NTQ1MGExNTA1NWVkMzQxYzkzY2NiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE0MzMsNiArMTQzMyw4IEBACiAg
ICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2UuaCcsCiAgICAgICAgICAgICAnZWRpdGlu
Zy9TbWFydFJlcGxhY2VDRi5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU21hcnRSZXBsYWNl
SUNVLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwJywKKyAgICAg
ICAgICAgICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0RWxlbWVu
dENvbW1hbmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TcGxpdFRleHROb2RlQ29tbWFuZC5j
cHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KaW5kZXggOGNhMWMxZDA5YTFhYzE2NGVmMjE1YzZhYmI0NTQzMDYyYmY5NzUwNy4uNDU5ZjUy
MjJmOTRhNDE5YWFiNmNkZTg2ZDM4ODhkZjFjY2U4Mjg4YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04MTYsNiArODE2LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcCBcCiAgICAg
ZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU21hcnRS
ZXBsYWNlSUNVLmNwcCBcCisgICAgZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIFwKICAgICBlZGl0
aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVD
b21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRD
b21tYW5kLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwMTU3
YWQ2N2NkMjFhNmQxZjgzNTVjMjEzMzgwMmRmMWJmNGFhYWNmLi4wNmVhNjZkYzQ1ZWE5YjIxZDI3
YmVjNDkwNzk3YmQwYTBhNWE0YzZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTQ4MTI0LDYgKzQ4MTI0LDExNCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGVs
bENoZWNrZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGVkaXRpbmdcU3BlbGxDaGVja2VyLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCIN
CisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
Ig0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0K
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xTcGxp
dFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNmFjZDll
ZDE0NWQ3OWJhYTY2OTE0NDhmOGIyNWYwNjQzNmI0Y2ViLi45NTBhMmE2ZDEzOTY3MGIyODg2Zjc3
ZmRmZGM2OTMxOTg2YWFkZGE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMzA2Niw2ICszMDY2LDggQEAKIAkJQTc3OTc5MjgwRDZCOUU2NDAwMzg1MUI5
IC8qIEpTSW1hZ2VEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3Nzk3OTI0MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi87
IH07CiAJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAw
Mzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcwMDFFMjM3
QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi87IH07
CisJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RkUxMzkxMjM2NkIxMDAw
QUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi87IH07CisJCUE3OEZFMTNDMTIzNjZCMTAwMEFD
RThEMCAvKiBTcGVsbENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3OEZFMTNBMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzk1NDYz
RTBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJh
Z0RhdGFNYWMubW0gKi87IH07CiAJCUE3OTU0NjQzMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzk1
NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovOyB9OwogCQlBN0FBNjZENjEx
QzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBS
ZW5kZXJJbmRpY2F0b3IuY3BwICovOyB9OwpAQCAtOTE3OSw2ICs5MTgxLDggQEAKIAkJQTc3OTc5
MjQwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBT
cGVsbENoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Bl
bGxDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4RkUxM0ExMjM2
NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsg
cGF0aCA9IFNwZWxsQ2hlY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzk1
NDYzRDBCNUM0QzgwMDA3QjQzOEYgLyogRHJhZ0RhdGFNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0RhdGFNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3OTU0NjQyMEI1QzRDQjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEcmFnRGF0YS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QUE2NkQ0MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJ
bmRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
SW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NjAzLDYgKzE0
NjA3LDggQEAKIAkJCQk0QjZGQTZGMzBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmNw
cCAqLywKIAkJCQk0QjZGQTZGMjBDMzlFNDhDMDAwODcwMTEgLyogU21hcnRSZXBsYWNlLmggKi8s
CiAJCQkJNEI2RkE2RjYwQzM5RTRBMTAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZUNGLmNwcCAqLywK
KwkJCQlBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCAqLywKKwkJ
CQlBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi8sCiAJCQkJOTMz
MDlEQzIwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwICovLAogCQkJ
CTkzMzA5REMzMDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEQzQwOTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCAq
LywKQEAgLTIwODMxLDYgKzIwODM3LDcgQEAKIAkJCQk3NTc4RjkwRDExRERGMjY5MDBEOTMzQzUg
LyogU3BlZWNoSW5wdXRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1MzVCQzk1MTIwMjBD
RkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAvKiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVt
ZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQwOTlFNjQ5MjAwNTZFNTgx
IC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNjA5
OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yMzQ4MSw2ICsyMzQ4OCw3IEBACiAJCQkJNzU3OEY5MEIxMURE
RjI2OTAwRDkzM0M1IC8qIFNwZWVjaElucHV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1MzVC
Qzk0MTIwMjBDRkYwMDM3RUM0NSAvKiBTcGVlY2hJbnB1dENsaWVudE1vY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNzU4OTc4RUMxMjcwOTBENjAwNzZENUE5IC8qIFNwZWVjaElucHV0UmVzdWx0
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3OEZFMTNCMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVs
bENoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTEwOTlFNjQ5MjAwNTZFNTgx
IC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMTMw
OTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMzA5RTE1MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29udGFpbmlu
Z0VsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAKaW5kZXggM2I3YWJjY2MxMTdjMmEzMTM3YjM1OWRmNDg5ZTY3Yjhl
OTE5ZDQ2NS4uNWY4ODYzMTAyZTE4NTNkYWVkMjJhMDgzZGQzNWM5YTFiZjliODc3NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC01NjcsNCArNTY3LDMxIEBA
IGJvb2wgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpoYXNNYXJrZXJzKFJhbmdlKiByYW5nZSwg
RG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWZuZGVm
IE5ERUJVRwordm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKCkgY29u
c3QKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiVkIG5vZGVzIGhhdmUgbWFya2VyczpcbiIsIG1f
bWFya2Vycy5zaXplKCkpOworICAgIE1hcmtlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9t
YXJrZXJzLmVuZCgpOworICAgIGZvciAoTWFya2VyTWFwOjpjb25zdF9pdGVyYXRvciBub2RlSXRl
cmF0b3IgPSBtX21hcmtlcnMuYmVnaW4oKTsgbm9kZUl0ZXJhdG9yICE9IGVuZDsgKytub2RlSXRl
cmF0b3IpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG5vZGVJdGVyYXRvci0+Zmlyc3QuZ2V0KCk7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXAiLCBub2RlKTsKKyAgICAgICAgTWFya2VyTWFw
VmVjdG9yUGFpciogdmVjdG9yUGFpciA9IG5vZGVJdGVyYXRvci0+c2Vjb25kOworICAgICAgICBW
ZWN0b3I8RG9jdW1lbnRNYXJrZXI+JiBtYXJrZXJzID0gdmVjdG9yUGFpci0+Zmlyc3Q7CisgICAg
ICAgIHVuc2lnbmVkIG1hcmtlckNvdW50ID0gbWFya2Vycy5zaXplKCk7CisgICAgICAgIGZvciAo
dW5zaWduZWQgbWFya2VySW5kZXggPSAwOyBtYXJrZXJJbmRleCA8IG1hcmtlckNvdW50OyArK21h
cmtlckluZGV4KQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgJWQ6WyVkOiVkXSglZCki
LCBtYXJrZXJzW21hcmtlckluZGV4XS50eXBlLCBtYXJrZXJzW21hcmtlckluZGV4XS5zdGFydE9m
ZnNldCwgbWFya2Vyc1ttYXJrZXJJbmRleF0uZW5kT2Zmc2V0LCBtYXJrZXJzW21hcmtlckluZGV4
XS5hY3RpdmVNYXRjaCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKKyAgICB9Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisKKyNpZm5kZWYgTkRFQlVHCit2
b2lkIHNob3dEb2N1bWVudE1hcmtlcnMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyKiBjb250cm9sbGVyKQoreworICAgIGlmIChjb250cm9sbGVyKQorICAgICAgICBjb250
cm9sbGVyLT5zaG93TWFya2VycygpOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oCmluZGV4IDk2ZmI3ZjNjZDMyMzcxNTRmYTE0ZWZmZjNmOTA3NmQwMjQxYWNi
MWIuLjgzMTc3ZmNmODgwNmQ3YjZlYThhMDUxNzE4NGEwMGNjYzA3M2Q4MWQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCkBAIC02Miw2ICs2MiwxMCBAQCBwdWJsaWM6CiAg
ICAgVmVjdG9yPERvY3VtZW50TWFya2VyPiBtYXJrZXJzRm9yTm9kZShOb2RlKik7CiAgICAgVmVj
dG9yPEludFJlY3Q+IHJlbmRlcmVkUmVjdHNGb3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJr
ZXJUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMpOwogCisjaWZuZGVmIE5ERUJVRwor
ICAgIHZvaWQgc2hvd01hcmtlcnMoKSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHR5
cGVkZWYgc3RkOjpwYWlyPFZlY3RvcjxEb2N1bWVudE1hcmtlcj4sIFZlY3RvcjxJbnRSZWN0PiA+
IE1hcmtlck1hcFZlY3RvclBhaXI7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxOb2RlPiwg
TWFya2VyTWFwVmVjdG9yUGFpcio+IE1hcmtlck1hcDsKQEAgLTcxLDQgKzc1LDggQEAgcHJpdmF0
ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjaWZuZGVmIE5ERUJVRwordm9pZCBzaG93
RG9jdW1lbnRNYXJrZXJzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlciop
OworI2VuZGlmCisKICNlbmRpZiAvLyBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5jcHAgYi9XZWJDb3JlL2RvbS9Qb3Np
dGlvbkl0ZXJhdG9yLmNwcAppbmRleCBkMmMzYTNmMGNmNGUwZjAzYjQwZGI1NDZkOTlhZjExMDJj
ZDUxNDc2Li40MmNjNTEzNzEyNjc2OTk2ZTRiYjY4ZDE5NWI0YzRhYjJmZWZhYmVhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcAorKysgYi9XZWJDb3JlL2RvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmNwcApAQCAtOTgsNiArOTgsMTMgQEAgdm9pZCBQb3NpdGlvbkl0ZXJh
dG9yOjpkZWNyZW1lbnQoKQogICAgIH0KIH0KIAordm9pZCBQb3NpdGlvbkl0ZXJhdG9yOjpzZXRP
ZmZzZXRJbkxlYWZOb2RlKGludCBvZmZzZXQpCit7CisgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUt
Pmhhc0NoaWxkTm9kZXMoKSk7CisgICAgQVNTRVJUKDAgPD0gb2Zmc2V0ICYmIG9mZnNldCA8PSBs
YXN0T2Zmc2V0Rm9yRWRpdGluZyhtX2FuY2hvck5vZGUpKTsKKyAgICBtX29mZnNldEluQW5jaG9y
ID0gb2Zmc2V0OworfQorCiBib29sIFBvc2l0aW9uSXRlcmF0b3I6OmF0U3RhcnQoKSBjb25zdAog
ewogICAgIGlmICghbV9hbmNob3JOb2RlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vUG9zaXRp
b25JdGVyYXRvci5oIGIvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCmluZGV4IDdhZjg5
Nzc1OTFkMTZjMjk3OTMxODkwZWJkMWFlMDY5YzJkNDdmMzYuLjA4MzI5YmIxNWNkM2U1MjEwMDQ2
MjkzNTg4YWI3YWFiZDMwZmU0ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuaAorKysgYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKQEAgLTU2LDYgKzU2
LDcgQEAgcHVibGljOgogCiAgICAgTm9kZSogbm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5jaG9y
Tm9kZTsgfQogICAgIGludCBvZmZzZXRJbkxlYWZOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vZmZz
ZXRJbkFuY2hvcjsgfQorICAgIHZvaWQgc2V0T2Zmc2V0SW5MZWFmTm9kZShpbnQgb2Zmc2V0KTsK
IAogICAgIGJvb2wgYXRTdGFydCgpIGNvbnN0OwogICAgIGJvb2wgYXRFbmQoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKaW5kZXggMzI3YWE1ZmE4MzYyMzNmMTkxYmQzNmE0OWY5NDdiNGJkZjNhMGMyOS4u
OWRkMmQ3MWJmYWVkZjYwOWNjNWFiN2JlYjFjOTI4YWNjNjJjODhlNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
QEAgLTY2LDkgKzY2LDExIEBACiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2luY2x1ZGUg
IlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQu
aCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNvdW5kLmgiCisjaW5jbHVkZSAi
U3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5o
IgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgpAQCAtMzgzLDYgKzM4NSwxMCBAQCB2b2lkIEVk
aXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50LAogICAgIAogICAgIGFwcGx5Q29tbWFuZChSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6Y3JlYXRlKG1fZnJhbWUtPmRvY3VtZW50KCksIGZyYWdtZW50LCBzZWxlY3RSZXBs
YWNlbWVudCwgc21hcnRSZXBsYWNlLCBtYXRjaFN0eWxlKSk7CiAgICAgcmV2ZWFsU2VsZWN0aW9u
QWZ0ZXJFZGl0aW5nT3BlcmF0aW9uKCk7CisKKyAgICBOb2RlKiBub2RlVG9DaGVjayA9IG1fZnJh
bWUtPnNlbGVjdGlvbigpLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgaWYgKG1fc3BlbGxD
aGVja2VyLT5jYW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGVUb0NoZWNrKSkKKyAgICAgICAgbV9z
cGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zvcihub2RlVG9DaGVjayk7CiB9CiAKIHZvaWQg
RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKQEAgLTExMDgsNiArMTExNCw3
IEBAIEVkaXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFtZSkKICAgICAvLyBUaGlzIGlzIG9mZiBieSBk
ZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNo
ZXMgSUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKICAg
ICAsIG1fa2lsbFJpbmcoYWRvcHRQdHIobmV3IEtpbGxSaW5nKSkKKyAgICAsIG1fc3BlbGxDaGVj
a2VyKG5ldyBTcGVsbENoZWNrZXIoZnJhbWUsIGZyYW1lLT5wYWdlKCkgPyBmcmFtZS0+cGFnZSgp
LT5lZGl0b3JDbGllbnQoKSA6IDApKQogICAgICwgbV9jb3JyZWN0aW9uUGFuZWxUaW1lcih0aGlz
LCAmRWRpdG9yOjpjb3JyZWN0aW9uUGFuZWxUaW1lckZpcmVkKQogICAgICwgbV9hcmVNYXJrZWRU
ZXh0TWF0Y2hlc0hpZ2hsaWdodGVkKGZhbHNlKQogewpAQCAtMzM5MiwxMiArMzM5OSwyOSBAQCB2
b2lkIEVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0
aW9uJiBvbGRTZWxlY3Rpb24sIGJvbwogICAgIHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24ob2xk
U2VsZWN0aW9uKTsKIH0KIAorc3RhdGljIE5vZGUqIGZpbmRGaXJzdE1hcmthYmxlKE5vZGUqIG5v
ZGUpCit7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgaWYgKCFub2RlLT5yZW5kZXJlcigp
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5p
c1RleHQoKSkKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgICAgICBpZiAobm9kZS0+cmVu
ZGVyZXIoKS0+aXNUZXh0Q29udHJvbCgpKQorICAgICAgICAgICAgbm9kZSA9IHRvUmVuZGVyVGV4
dENvbnRyb2wobm9kZS0+cmVuZGVyZXIoKSktPnZpc2libGVQb3NpdGlvbkZvckluZGV4KDEpLmRl
ZXBFcXVpdmFsZW50KCkubm9kZSgpOworICAgICAgICBlbHNlIGlmIChub2RlLT5maXJzdENoaWxk
KCkpCisgICAgICAgICAgICBub2RlID0gbm9kZS0+Zmlyc3RDaGlsZCgpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gMDsKK30KKwogYm9vbCBFZGl0b3I6OnNlbGVjdGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJr
ZXJGb3IoaW50IGZyb20sIGludCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgTm9kZSogbm9kZSA9IG1f
ZnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKTsKLSAgICBpZiAoIW5vZGUgfHwgIW5v
ZGUtPnJlbmRlcmVyKCkpCisgICAgTm9kZSogbm9kZSA9IGZpbmRGaXJzdE1hcmthYmxlKG1fZnJh
bWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKSk7CisgICAgaWYgKCFub2RlKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgQVNTRVJUKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dCgpKTsK
IAogICAgIHVuc2lnbmVkIGludCBzdGFydE9mZnNldCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGlu
dD4oZnJvbSk7CiAgICAgdW5zaWduZWQgaW50IGVuZE9mZnNldCA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIGludD4oZnJvbSArIGxlbmd0aCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMjRjZGFmMWRlYmMwYzdjYjMy
OWQ4YTIyMWI5NzkwOTkxZDdhMjIzOS4uYjU2ZjRlM2ZkMmQ0NjAzNTg2NzU4N2M1ZDY2YmQyOTIz
ZDY0ZjE5MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNTQsNiArNTQsNyBAQCBjbGFzcyBIaXRUZXN0UmVzdWx0
OwogY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xhc3MgU2ltcGxlRm9udERh
dGE7CitjbGFzcyBTcGVsbENoZWNrZXI7CiBjbGFzcyBUZXh0OwogY2xhc3MgVGV4dEV2ZW50Owog
CkBAIC0zMDAsNiArMzAxLDcgQEAgcHVibGljOgogICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0
aW9uRm9yQ29tbWFuZChFdmVudCopOwogCiAgICAgS2lsbFJpbmcqIGtpbGxSaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9raWxsUmluZy5nZXQoKTsgfQorICAgIFNwZWxsQ2hlY2tlciogc3BlbGxDaGVj
a2VyKCkgY29uc3QgeyByZXR1cm4gbV9zcGVsbENoZWNrZXIuZ2V0KCk7IH0KIAogICAgIEVkaXRp
bmdCZWhhdmlvciBiZWhhdmlvcigpIGNvbnN0OwogCkBAIC0zODAsNiArMzgyLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOwogICAgIE93blB0cjxLaWxsUmluZz4g
bV9raWxsUmluZzsKICAgICBDb3JyZWN0aW9uUGFuZWxJbmZvIG1fY29ycmVjdGlvblBhbmVsSW5m
bzsKKyAgICBPd25QdHI8U3BlbGxDaGVja2VyPiBtX3NwZWxsQ2hlY2tlcjsKICAgICBUaW1lcjxF
ZGl0b3I+IG1fY29ycmVjdGlvblBhbmVsVGltZXI7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBtX21h
cms7CiAgICAgYm9vbCBtX2FyZU1hcmtlZFRleHRNYXRjaGVzSGlnaGxpZ2h0ZWQ7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9T
cGVsbENoZWNrZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MDc0NzRiNzUzODZiZTc3MjFlYzhkZWUzMGQ5
OTMwN2IxMDFlMjYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcApAQCAtMCwwICsxLDE3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkVkaXRvckNsaWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5j
bHVkZSAiUG9zaXRpb25JdGVyYXRvci5oIgorI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAi
UmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0SXRl
cmF0b3IuaCIKKyNpbmNsdWRlICJodG1sZWRpdGluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1NwZWxsQ2hlY2tlcjo6U3BlbGxDaGVja2VyKEZyYW1lKiBmcmFtZSwgRWRpdG9yQ2xpZW50
KiBjbGllbnQpCisgICAgOiBtX2ZyYW1lKGZyYW1lKQorICAgICwgbV9jbGllbnQoY2xpZW50KQor
ICAgICwgbV9yZXF1ZXN0U2VxdWVuY2UoMCkKK3sKK30KKworU3BlbGxDaGVja2VyOjp+U3BlbGxD
aGVja2VyKCkKK3sKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmluaXRSZXF1ZXN0KE5vZGUqIG5v
ZGUpCit7CisgICAgQVNTRVJUKGNhbkNoZWNrQXN5bmNocm9ub3VzbHkobm9kZSkpOworCisgICAg
U3RyaW5nIHRleHQgPSBub2RlLT50ZXh0Q29udGVudCgpOworICAgIGlmICghdGV4dC5sZW5ndGgo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9yZXF1ZXN0Tm9kZSA9IG5vZGU7Cisg
ICAgbV9yZXF1ZXN0VGV4dCA9IHRleHQ7CisgICAgbV9yZXF1ZXN0U2VxdWVuY2UrKzsKKworICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KCkKK3sK
KyAgICBtX3JlcXVlc3ROb2RlLmNsZWFyKCk7CisgICAgbV9yZXF1ZXN0VGV4dCA9IFN0cmluZygp
OworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNFbmFibGVkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygp
LT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworfQorCitib29sIFNwZWxsQ2hl
Y2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseShOb2RlKiBub2RlKSBjb25zdAoreworICAgIHJl
dHVybiBpc0NoZWNrYWJsZShub2RlKSAmJiBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSAmJiAhaXNC
dXN5KCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0J1c3koKSBjb25zdAoreworICAgIHJl
dHVybiBtX3JlcXVlc3ROb2RlLmdldCgpOworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNWYWxp
ZChpbnQgc2VxdWVuY2UpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdE5vZGUuZ2V0KCkg
JiYgbV9yZXF1ZXN0VGV4dC5sZW5ndGgoKSAmJiBtX3JlcXVlc3RTZXF1ZW5jZSA9PSBzZXF1ZW5j
ZTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQ2hlY2thYmxlKE5vZGUqIG5vZGUpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKTsKK30KKwordm9pZCBTcGVs
bENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChj
YW5DaGVja0FzeW5jaHJvbm91c2x5KG5vZGUpKTsKKworICAgIGlmICghaW5pdFJlcXVlc3Qobm9k
ZSkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudC0+cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcodGhpcywgbV9yZXF1ZXN0U2VxdWVuY2UsIG1fcmVxdWVzdFRleHQpOworfQorCitzdGF0aWMg
Ym9vbCBmb3J3YXJkSXRlcmF0b3IoUG9zaXRpb25JdGVyYXRvciYgaXRlcmF0b3IsIGludCBkaXN0
YW5jZSkKK3sKKyAgICBpbnQgcmVtYWluaW5nID0gZGlzdGFuY2U7CisgICAgd2hpbGUgKCFpdGVy
YXRvci5hdEVuZCgpKSB7CisgICAgICAgIGlmIChpdGVyYXRvci5ub2RlKCktPmlzQ2hhcmFjdGVy
RGF0YU5vZGUoKSkgeworICAgICAgICAgICAgaW50IGxlbmd0aCA9IGxhc3RPZmZzZXRGb3JFZGl0
aW5nKGl0ZXJhdG9yLm5vZGUoKSk7CisgICAgICAgICAgICBpbnQgbGFzdCA9IGxlbmd0aCAtIGl0
ZXJhdG9yLm9mZnNldEluTGVhZk5vZGUoKTsKKyAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPCBs
YXN0KSB7CisgICAgICAgICAgICAgICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5MZWFmTm9kZShpdGVy
YXRvci5vZmZzZXRJbkxlYWZOb2RlKCkgKyByZW1haW5pbmcpOworICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZW1haW5pbmcgLT0gbGFz
dDsKKyAgICAgICAgICAgIGl0ZXJhdG9yLnNldE9mZnNldEluTGVhZk5vZGUoaXRlcmF0b3Iub2Zm
c2V0SW5MZWFmTm9kZSgpICsgbGFzdCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvci5p
bmNyZW1lbnQoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7ICAgIAorfQorCit2b2lkIFNw
ZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8U3BlbGxDaGVj
a2luZ1Jlc3VsdD4mIHJlc3VsdHMpCit7CisgICAgaWYgKCFpc1ZhbGlkKHNlcXVlbmNlKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX3JlcXVlc3ROb2RlLT5yZW5kZXJlcigpKSB7Cisg
ICAgICAgIGNsZWFyUmVxdWVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaW50
IHN0YXJ0T2Zmc2V0ID0gMDsKKyAgICBQb3NpdGlvbkl0ZXJhdG9yIHN0YXJ0ID0gUG9zaXRpb24o
bV9yZXF1ZXN0Tm9kZSwgMCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXN1bHRzLnNp
emUoKTsgKytpKSB7CisgICAgICAgIGlmIChyZXN1bHRzW2ldLnR5cGUoKSAhPSBEb2N1bWVudE1h
cmtlcjo6U3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50eXBlKCkgIT0gRG9jdW1lbnRNYXJrZXI6Okdy
YW1tYXIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBUbyBhdm9pZCBtb3Zp
bmcgdGhlIHBvc2l0aW9uIGJhY2t3YXJkLCB3ZSBhc3N1bWUgdGhlIGdpdmVuIHJlc3VsdHMgYXJl
IHNvcnRlZCB3aXRoCisgICAgICAgIC8vIHN0YXJ0T2Zmc2V0IGFzIHRoZSBvbmVzIHJldHVybmVk
IGJ5IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzpdLgorICAgICAgICBB
U1NFUlQoc3RhcnRPZmZzZXQgPD0gcmVzdWx0c1tpXS5sb2NhdGlvbigpKTsKKyAgICAgICAgaWYg
KCFmb3J3YXJkSXRlcmF0b3Ioc3RhcnQsIHJlc3VsdHNbaV0ubG9jYXRpb24oKSAtIHN0YXJ0T2Zm
c2V0KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBQb3NpdGlvbkl0ZXJhdG9yIGVuZCA9
IHN0YXJ0OworICAgICAgICBpZiAoIWZvcndhcmRJdGVyYXRvcihlbmQsIHJlc3VsdHNbaV0ubGVu
Z3RoKCkpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgLy8gVXNlcnMgb3IgSmF2YVNj
cmlwdCBhcHBsaWNhdGlvbnMgbWF5IGNoYW5nZSB0ZXh0IHdoaWxlIGEgc3BlbGwtY2hlY2tlciBj
aGVja3MgaXRzCisgICAgICAgIC8vIHNwZWxsaW5ncyBpbiB0aGUgYmFja2dyb3VuZC4gVG8gYXZv
aWQgYWRkaW5nIG1hcmtlcnMgdG8gdGhlIHdvcmRzIG1vZGlmaWVkIGJ5IHVzZXJzIG9yCisgICAg
ICAgIC8vIEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhl
IHNwZWNpZmllZCByZWdpb24gYW5kIGNvbXBhcmUgdGhlbSB3aXRoCisgICAgICAgIC8vIHRoZSBv
cmlnaW5hbCBvbmVzLgorICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0
ZShtX3JlcXVlc3ROb2RlLT5kb2N1bWVudCgpLCBzdGFydCwgZW5kKTsKKyAgICAgICAgLy8gRklY
TUU6IFVzZSB0ZXh0Q29udGVudCgpIGNvbXBhdGlibGUgc3RyaW5nIGNvbnZlcnNpb24uCisgICAg
ICAgIFN0cmluZyBkZXN0aW5hdGlvbiA9IHJhbmdlLT50ZXh0KCk7CisgICAgICAgIFN0cmluZyBz
b3VyY2UgPSBtX3JlcXVlc3RUZXh0LnN1YnN0cmluZyhyZXN1bHRzW2ldLmxvY2F0aW9uKCksIHJl
c3VsdHNbaV0ubGVuZ3RoKCkpOworICAgICAgICBpZiAoZGVzdGluYXRpb24gPT0gc291cmNlKQor
ICAgICAgICAgICAgbV9yZXF1ZXN0Tm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5hZGRNYXJr
ZXIocmFuZ2UuZ2V0KCksIHJlc3VsdHNbaV0udHlwZSgpKTsKKworICAgICAgICBzdGFydE9mZnNl
dCA9IHJlc3VsdHNbaV0ubG9jYXRpb24oKTsKKyAgICB9CisKKyAgICBjbGVhclJlcXVlc3QoKTsK
K30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRp
bmcvU3BlbGxDaGVja2VyLmggYi9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjkyMmYwZTIzMzAwMTZmODNmNjkwYTQwMGIyMmVlMTI3OWM4OWY4MAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApAQCAtMCwwICsxLDgzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBD
T01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENP
TVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgU3BlbGxDaGVja2VyX2gKKyNkZWZpbmUgU3BlbGxDaGVja2Vy
X2gKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWRpdG9yQ2xpZW50OworY2xhc3MgRnJh
bWU7CisKK2NsYXNzIFNwZWxsQ2hlY2tpbmdSZXN1bHQgeworcHVibGljOgorICAgIGV4cGxpY2l0
IFNwZWxsQ2hlY2tpbmdSZXN1bHQoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZSA9IERv
Y3VtZW50TWFya2VyOjpTcGVsbGluZywgaW50IGxvY2F0aW9uID0gMCwgaW50IGxlbmd0aCA9IDAp
CisgICAgICAgIDogbV90eXBlKHR5cGUpCisgICAgICAgICwgbV9sb2NhdGlvbihsb2NhdGlvbikK
KyAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCisgICAgeworICAgIH0KKworICAgIERvY3VtZW50
TWFya2VyOjpNYXJrZXJUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0gCisgICAg
aW50IGxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9sb2NhdGlvbjsgfQorICAgIGludCBsZW5n
dGgoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQorCitwcml2YXRlOgorICAgIERvY3VtZW50
TWFya2VyOjpNYXJrZXJUeXBlIG1fdHlwZTsKKyAgICBpbnQgbV9sb2NhdGlvbjsKKyAgICBpbnQg
bV9sZW5ndGg7Cit9OworCitjbGFzcyBTcGVsbENoZWNrZXIgOiBwdWJsaWMgTm9uY29weWFibGUg
eworcHVibGljOgorICAgIGV4cGxpY2l0IFNwZWxsQ2hlY2tlcihGcmFtZSosIEVkaXRvckNsaWVu
dCopOworICAgIH5TcGVsbENoZWNrZXIoKTsKKworICAgIGJvb2wgaXNBc3luY2hyb25vdXNFbmFi
bGVkKCkgY29uc3Q7CisgICAgYm9vbCBjYW5DaGVja0FzeW5jaHJvbm91c2x5KE5vZGUqKSBjb25z
dDsKKyAgICBib29sIGlzQnVzeSgpIGNvbnN0OworICAgIGJvb2wgaXNWYWxpZChpbnQgc2VxdWVu
Y2UpIGNvbnN0OworICAgIGJvb2wgaXNDaGVja2FibGUoTm9kZSopIGNvbnN0OworICAgIHZvaWQg
cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqKTsKKyAgICB2b2lkIGRpZENoZWNrKGludCBzZXF1ZW5j
ZSwgY29uc3QgVmVjdG9yPFNwZWxsQ2hlY2tpbmdSZXN1bHQ+Jik7CisKK3ByaXZhdGU6CisgICAg
Ym9vbCBpbml0UmVxdWVzdChOb2RlKik7CisgICAgdm9pZCBjbGVhclJlcXVlc3QoKTsKKworICAg
IEZyYW1lKiBtX2ZyYW1lOworICAgIEVkaXRvckNsaWVudCogbV9jbGllbnQ7CisKKyAgICBSZWZQ
dHI8Tm9kZT4gbV9yZXF1ZXN0Tm9kZTsKKyAgICBTdHJpbmcgbV9yZXF1ZXN0VGV4dDsKKyAgICBp
bnQgbV9yZXF1ZXN0U2VxdWVuY2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBTcGVsbENoZWNrZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCBhMTVjZWU1YTVj
MDVjZjYxMThiOWU1NTVmM2Y3YjQzMWFmMzBmOTkxLi4zYWViOWIyZmMyZDA3ZDdhNTJkOWFhM2Ni
ODc1MmE3YTJiYzcyMGVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAorKysgYi9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNDkxLDggKzQ5MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFN0cmluZz4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29s
KSB7IH0KLQotCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxs
Q2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikgeyB9CiB9OwogCiAjaWYgRU5BQkxFKENPTlRF
WFRfTUVOVVMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9XZWJD
b3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKaW5kZXggNjFiZGQ0MTE5NTg1MjYxODg1NDhjYjIxODE0
NjQzMjM1MzhhYTE5ZC4uNTU3NGVmOWIwODM3OGQ3MzdjNmNiNGM1ZjMxYWI2NjMwYTRlNjliZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGFn
ZS9FZGl0b3JDbGllbnQuaApAQCAtNjYsNiArNjYsNyBAQCBjbGFzcyBIVE1MRWxlbWVudDsKIGNs
YXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmFuZ2U7CitjbGFzcyBTcGVs
bENoZWNrZXI7CiBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9u
OwogCkBAIC0yMDIsNiArMjAzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25z
dCBTdHJpbmcmKSA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwIGIvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCA3ZTkyMzJmODdmNjgzMGNk
NjIzNTgzOTQwMjEzODJiZDcwM2U5ZGZkLi4xMzdlN2I3MjVlZTZkNzMzYjA0YzM0YTA1ZTBkMjhm
OTNiODU2OGE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTE2MCw2ICsxNjAsNyBAQCBTZXR0aW5nczo6U2V0
dGluZ3MoUGFnZSogcGFnZSkKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2Z1
bGxTY3JlZW5BUElFbmFibGVkKGZhbHNlKQogI2VuZGlmCisgICAgLCBtX2FzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlJbmZvRW5hYmxlZChmYWxz
ZSkKICAgICAsIG1faW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbihmYWxzZSkKICAgICAsIG1fdXNl
UHJlSFRNTDVQYXJzZXJRdWlya3MoZmFsc2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaCBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDFlM2MyODc4ODNlOTU5ZTcx
NzY5Mjg5YjllNGM3ZTA5NjkzNjA1ODcuLmRmNmFiZjJkN2VhYTk2MTIwZTRhZThlNmViOGYwNGYz
NDgzZWY5Y2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0zMTksNiArMzE5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBib29sIGZ1bGxTY3JlZW5FbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fZnVs
bFNjcmVlbkFQSUVuYWJsZWQ7IH0KICNlbmRpZgogCisgICAgICAgIHZvaWQgc2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fYXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQgPSBmbGFnOyB9CisgICAgICAgIGJvb2wgYXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9hc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZDsgfQorCiAgICAgICAgIHZvaWQgc2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCBm
bGFnKSB7IG1fbWVtb3J5SW5mb0VuYWJsZWQgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgbWVtb3J5
SW5mb0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lbW9yeUluZm9FbmFibGVkOyB9CiAKQEAg
LTQyMiw2ICs0MjUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgICAgICBib29sIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQgOiAxOwogI2VuZGlm
CisgICAgICAgIGJvb2wgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDogMTsKICAg
ICAgICAgYm9vbCBtX21lbW9yeUluZm9FbmFibGVkOiAxOwogICAgICAgICBib29sIG1faW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbjogMTsKICAgICAgICAgYm9vbCBtX3VzZVByZUhUTUw1UGFyc2Vy
UXVpcmtzOiAxOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggN2M0NjJlYTM3NWZjOTJkMGIxNWE5MjQ4NWEzZjg4
N2QwMjEzNTdjNi4uMzQ3NjA1YTRmMjFkMDk1YmZjNTNkYWVhYmQzNDlmZjdkN2JkMTY0NyAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAg
ICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogc3JjL0VkaXRvckNs
aWVudEltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTExLTEwICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0VkaXRvckNsaWVudEltcGwuaAppbmRleCBiMDVhNTkyNmJmNzExMjg2MWMyNTNhNDZjMjM0
YTZkNWI3ZTMzNWQ3Li44ZmU2MzU2NDUxNGQ1YWI1NzEyZDZlNjBkZjcxODUwZThlYTk3MDFhIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTEwLDYgKzExMCw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpWZWN0b3I8
V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVu
YWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogICAgIC8vIFNo
b3dzIHRoZSBmb3JtIGF1dG9maWxsIHBvcHVwIGZvciB8bm9kZXwgaWYgaXQgaXMgYW4gSFRNTElu
cHV0RWxlbWVudCBhbmQKICAgICAvLyBpdCBpcyBlbXB0eS4gIFRoaXMgaXMgY2FsbGVkIHdoZW4g
eW91IHByZXNzIHRoZSB1cCBvciBkb3duIGFycm93IGluIGEKZGlmZiAtLWdpdCBhL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYzdiNDU3YjdlYzdjODAz
YTFlM2VjNmRlZjk3MzI3YWFhYmU0YjQ0Ny4uM2NhNTM4ZGMxOWMwM2FhMTg2YWM5ZTQyODMwOTg3
NjYyMDRjMTUyYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamlt
ZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisg
ICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisgICAgICAgIAorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50RWZsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTEtMDggIFJh
ZmFlbCBBbnRvZ25vbGxpICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50RWZsLmgKaW5kZXggOWY2MGNmYmFkYjQyZjA3ZjEzNmJlN2Q0ZTc5YzQyMDk0NDM4
ZDFiMi4uZjE2ODdmN2IzZWI5ZDRiMTM0NmI0NzExMTYxNzBkMDEyZTE4ZmNhMiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC0xMTMsNiArMTEzLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmLCBXVEY6OlZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30K
IAogcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2ZDlhNjUyNDczYjZl
MzZlZmU0MjNhYjc0NGU3MjUyYTRjNDNlMDUwLi5iOTYwYjBlMTFmNGU3ZmMzMjFmMjhiZWVlMTdl
OWZlOTdlNzUxMjMxIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMS0wOCAgTmljb2xhcyBEdWZy
ZXNuZSAgPG5pY29sYXMuZHVmcmVzbmVAY29sbGFib3JhLmNvLnVrPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCmluZGV4IGY5ZmY4MmUwMGM0YTMwZjY2MmMxZGEzM2ZiM2E1YTkwMTE5ZDMw
NTkuLjU2ODAyN2ZhNmEwMDc2OGJmMmU5MjAxZDlhYzhkODI3Y2FiZjBhMWIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtMTMyLDYgKzEzMiw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zvcldv
cmQoY29uc3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hl
Y2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2hhaWt1L0No
YW5nZUxvZyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKaW5kZXggNzIzYzk1NzRjZWExMmI0ODE5
NDc5MDdkYjI5YzFjMzgzMjE0MWRhOC4uOGNiYTJlNTE3NTEzNDQ0ZWNhZDEwYjNmYjI5MjIwZmI1
MGRlZDgzMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZworKysgYi9XZWJLaXQv
aGFpa3UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKwor
ICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudEhhaWt1OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTEtMDggIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50SGFpa3UuaCBiL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRI
YWlrdS5oCmluZGV4IDVjYmVjMjcyMjEzY2M2Y2U5ZTdjYTExZDBlMDVlNjUyYzZlNzdjZDEuLmYz
ZjEwNWUzODhiNzFlYjM4NGIzMmY1N2I4NWM3OWMxZWY3MGEzYmMgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCisrKyBiL1dlYktpdC9o
YWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oCkBAIC0xMTAsNiArMTEwLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0Zv
cldvcmQoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3Ry
aW5nJikge30KIAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDYwMjcy
MTFiOTM0MjA1OGZkZGUxMzU1MjA0YWJjMGY3YTAyODhlYzAuLjI2NDY0ZDUzNjUzMjA2ODFmZGU2
ZmE2M2M1Zjk1YzllMWM1Yjg1MGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMTAtMjggIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0
ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAwOTIKKworICAgICAgICBBZGRlZCBhc3luY2hyb25vdXMgc3BlbGwgY2hlY2tpbmcgQVBJIHRv
IFdlYkVkaXRvckNsaWVudCB1c2luZworICAgICAgICAtW05TU3BlbGxDaGVja2VyIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nXS4KKyAgICAgICAgTm90ZSB0aGF0IFdlYkVkaXRvclNwZWxsQ2hlY2tS
ZXNwb25kZXIgaXMgYSBzbWFsbCBjbGFzcyB0byByZWNlaXZlCisgICAgICAgIHJlcXVlc3RlZCBz
cGVsbC1jaGVja2luZyByZXN1bHQuIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMKKyAgICAgICAg
ZGlzYWJsZWQgYXQgZGVmYXVsdC4KKyAgICAgICAgCisgICAgICAgIEFsc28gYWRkZWQgW1dlYlBy
ZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOl0gdG8gCisgICAg
ICAgIGVuYWJsZSB0aGUgZmVhdHVyZSBmcm9tIExheW91dFRlc3RDb250cm9sbGVyLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENo
ZWNrUmVzcG9uZGVyIGluaXRXaXRoU2VuZGVyOldlYkNvcmU6OnNlcXVlbmNlOnJlc3VsdHM6XSk6
CisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOgorICAg
ICAgICAodG9Db3JlU3BlbGxpbmdSZXN1bHQpOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENo
ZWNrUmVzcG9uZGVyIFdURjo6V2ViQ29yZTo6XSk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06Cisg
ICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6XSk6CisgICAgICAg
ICgtW1dlYlByZWZlcmVuY2VzIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkXSk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5v
dGlmaWNhdGlvbjpdKToKKwogMjAxMC0xMS0xMCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpAQCAtMTcxNyw2
ICsxNzQ5LDMyIEBACiAKIDIwMTAtMDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2ds
ZS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
c3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBJbXBsZW1lbnRl
ZCBhc3luYyBzcGVsbC1jaGVjayBBUElzIG9uIFdlYkVkaXRvckNsaWVudC4KKyAgICAgICAgVGhl
IGltcGxlbWVudGF0aW9ucyBhcmUgdXNpbmcgW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nXQorICAgICAgICB3aGljaCBpcyBhdmFpbGFibGUgb25seSBvbiBNYWMgT1MgMTAu
NiBvciBsYXRlci4KKyAgICAgICAgCisgICAgICAgIE5vdGUgdGhhdCBbTlNTcGVsbENoZWNrZXIg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmddIGNvdWxkIGludm9rZQorICAgICAgICB0aGUgY2FsbGJh
Y2sgYmxvY2sgb24gb24gb2YgdGhlaXIgd29ya2VyIHRocmVhZCwgc28gd2UgbmVlZCB0bworICAg
ICAgICByZXR1cm4gdGhlIHJlc3VsdCB0byB0aGUgbWFpbiB0aHJlYWQgd2hlcmUgV2ViQ29yZSBp
cyBydW5uaW5nLgorICAgICAgICBGb3IgdGhhdCBwdXJwb3NlLCB3ZSBtYWRlIFdlYkVkaXRvclNw
ZWxsQ2hlY2tSZXNwb25kZXIgY2xhc3MuCisgICAgICAgIAorICAgICAgICBUZXN0OiBlZGl0aW5n
L3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGVkLXRleHQtMDAxLmh0bWwKKyAgICAgICAgCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojpp
c0FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTogQWRkZWQuCisgICAgICAgICgtW1dl
YkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgaW5pdFdpdGhTZW5kZXI6V2ViQ29yZTo6c2VxdWVu
Y2U6cmVzdWx0czpdKTogQWRkZWQuCisgICAgICAgICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNw
b25kZXIgcGVyZm9ybV0pOiBBZGRlZC4KKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lUHJp
dmF0ZS5oOgorCisyMDEwLTA5LTA4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgorCiAgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgc3BlbGxpbmcg
dW5kZXJsaW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IDIzY2YzMTI5YjMyZGMxN2ZhNWI4OTRmNTA4ZWRj
NjdhNDhiYThjN2EuLmEyYTNlZTViYjI3MGZiMjhlMjA3MjQxYzEzZjU0N2VkNzIzZjdmY2UgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysr
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMyLDYg
KzEzMiw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29u
c3QgV1RGOjpTdHJpbmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAg
IHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3Qg
V1RGOjpTdHJpbmcmKTsKICNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJl
Y3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3Vu
ZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiByZXBsYWNlZFN0cmlu
ZywgY29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBXZWJDb3JlOjpFZGl0b3Iq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3Jy
ZWN0aW9uV2FzUmVqZWN0ZWRPck5vdCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCmluZGV4IDM5YjUxMWVlMjRmNzlkMmEwYzg4NGIzNzEwNDcyY2JkMzQ2
OTM1ZjQuLjEyZjM0ZWIzYzRjMTZhNGRiYjAxMGFhYjg4YTM3MWQxN2Y1MGZmZGYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC02Myw2ICs2Myw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU3Ry
aW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
T2JqQ0V4dHJhcy5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CkBA
IC05MzYsMyArOTM3LDczIEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29s
KQogewogfQorCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX0xFT1BBUkQpCitAaW50ZXJmYWNlIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25k
ZXIgOiBOU09iamVjdAoreworICAgIFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogX3NlbmRlcjsKKyAg
ICBpbnQgX3NlcXVlbmNlOworICAgIFJldGFpblB0cjxOU0FycmF5PiBfcmVzdWx0czsKK30KKy0g
KGlkKWluaXRXaXRoU2VuZGVyOihXZWJDb3JlOjpTcGVsbENoZWNrZXIqKXNlbmRlciBzZXF1ZW5j
ZTooaW50KXNlcXVlbmNlIHJlc3VsdHM6KE5TQXJyYXkqKXJlc3VsdHM7CistICh2b2lkKXBlcmZv
cm07CistIChXVEY6OlZlY3RvcjxXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0PikgX2NvcmVS
ZXN1bHRzOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3Bv
bmRlcgorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNvcmU6OlNwZWxsQ2hlY2tlciopc2VuZGVy
IHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czooTlNBcnJheSopcmVzdWx0cworeworICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmls
OworICAgIF9zZW5kZXIgPSBzZW5kZXI7CisgICAgX3NlcXVlbmNlID0gc2VxdWVuY2U7CisgICAg
X3Jlc3VsdHMgPSByZXN1bHRzOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKXBlcmZv
cm0KK3sKKyAgICBfc2VuZGVyLT5kaWRDaGVjayhfc2VxdWVuY2UsIFtzZWxmIF9jb3JlUmVzdWx0
c10pOworfQorCitzdGF0aWMgU3BlbGxDaGVja2luZ1Jlc3VsdCB0b0NvcmVTcGVsbGluZ1Jlc3Vs
dChOU1RleHRDaGVja2luZ1Jlc3VsdCogcmVzdWx0KQoreworICAgIE5TVGV4dENoZWNraW5nVHlw
ZSB0eXBlID0gW3Jlc3VsdCByZXN1bHRUeXBlXTsKKyAgICBOU1JhbmdlIHJhbmdlID0gW3Jlc3Vs
dCByYW5nZV07CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgY29yZVR5cGU7CisgICAg
aWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZykKKyAgICAgICAgY29yZVR5cGUg
PSBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmc7CisgICAgZWxzZSBpZiAodHlwZSAmIE5TVGV4dENo
ZWNraW5nVHlwZUdyYW1tYXIpCisgICAgICAgIGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6Okdy
YW1tYXI7CisgICAgZWxzZQorICAgICAgICBjb3JlVHlwZSA9IERvY3VtZW50TWFya2VyOjpBbGxN
YXJrZXJzOworCisgICAgcmV0dXJuIFNwZWxsQ2hlY2tpbmdSZXN1bHQoY29yZVR5cGUsIHJhbmdl
LmxvY2F0aW9uLCByYW5nZS5sZW5ndGgpOworfQorCistIChXVEY6OlZlY3RvcjxXZWJDb3JlOjpT
cGVsbENoZWNraW5nUmVzdWx0PilfY29yZVJlc3VsdHMKK3sKKyAgICBXVEY6OlZlY3RvcjxXZWJD
b3JlOjpTcGVsbENoZWNraW5nUmVzdWx0PiBjb3JlUmVzdWx0czsKKyAgICBjb3JlUmVzdWx0cy5y
ZXNlcnZlQ2FwYWNpdHkoW19yZXN1bHRzLmdldCgpIGNvdW50XSk7CisgICAgZm9yIChOU1RleHRD
aGVja2luZ1Jlc3VsdCogcmVzdWx0IGluIF9yZXN1bHRzLmdldCgpKQorICAgICAgICBjb3JlUmVz
dWx0cy5hcHBlbmQodG9Db3JlU3BlbGxpbmdSZXN1bHQocmVzdWx0KSk7CisgICAgcmV0dXJuIGNv
cmVSZXN1bHRzOworfQorCitAZW5kCisjZW5kaWYKKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlciogc2VuZGVyLCBpbnQg
c2VxdWVuY2UsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICBOU1JhbmdlIHJh
bmdlID0gTlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgoKSk7CisgICAgTlNSdW5Mb29wKiBjdXJy
ZW50TG9vcCA9IFtOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdOworICAgIFtbTlNTcGVsbENoZWNr
ZXIgc2hhcmVkU3BlbGxDaGVja2VyXSByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZzp0ZXh0IHJhbmdl
OnJhbmdlIHR5cGVzOk5TVGV4dENoZWNraW5nQWxsU3lzdGVtVHlwZXMgb3B0aW9uczowIGluU3Bl
bGxEb2N1bWVudFdpdGhUYWc6MCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXI6XihOU0ludGVnZXIsIE5TQXJyYXkqIHJlc3VsdHMsIE5T
T3J0aG9ncmFwaHkqLCBOU0ludGVnZXIpIHsKKyAgICAgICAgICAgIFtjdXJyZW50TG9vcCBwZXJm
b3JtU2VsZWN0b3I6QHNlbGVjdG9yKHBlcmZvcm0pIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRhcmdldDpbW1tXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGFsbG9jXSBp
bml0V2l0aFNlbmRlcjpzZW5kZXIgc2VxdWVuY2U6c2VxdWVuY2UgcmVzdWx0czpyZXN1bHRzXSBh
dXRvcmVsZWFzZV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQ6bmls
IG9yZGVyOjAgbW9kZXM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TRGVmYXVsdFJ1bkxvb3BN
b2RlXV07CisgICAgICAgIH1dOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggNWM2YjUzMDEwMzZkYjNhNGQ1MjUzODlkY2Rh
NWI1MzYxOGM0Njk1OC4uOTNmODNmYzUxNWFhOTY3MmVmMzNlZjA2MzNkYTEzZTUzNDUyZGE1NyAx
MDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAt
OTksNiArOTksNyBAQAogI2RlZmluZSBXZWJLaXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RE5TUHJl
ZmV0Y2hpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1lbW9yeUluZm9FbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgogI2RlZmluZSBXZWJLaXRIeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SHlwZXJsaW5rQXVkaXRp
bmdFbmFibGVkIgogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggZWQwNjE4
ODkyNWQzZmI1MmI1MzYzNzgxZTI1ZmQ3MTAwYzQzYTU3OS4uNDkzOTY2MzBhMTRkOTRmMmJiMmQ2
Y2QzNzIxNTRjMDcwNzlkZmRiMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtMzY3LDYgKzM2Nyw3IEBAIHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWlu
QnVuZGxlKHZvaWQpCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2Vi
S2l0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWRQcmVm
ZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktp
dEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJl
cldpdGhCb29sOk5PXSwgICBXZWJLaXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2Vi
S2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZFByZWZlcmVu
Y2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0VXNl
UHJlSFRNTDVQYXJzZXJRdWlya3NLZXksCkBAIC0xMzkzLDYgKzEzOTQsMTYgQEAgc3RhdGljIE5T
U3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIHJldHVybiBbc2VsZiBfYm9vbFZh
bHVlRm9yS2V5OldlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0g
KHZvaWQpc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZmxhZworewor
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAoQk9PTClhc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9y
S2V5OldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07
Cit9CisKICsgKHZvaWQpc2V0V2ViS2l0TGlua1RpbWVWZXJzaW9uOihpbnQpdmVyc2lvbgogewog
ICAgIHNldFdlYktpdExpbmtUaW1lVmVyc2lvbih2ZXJzaW9uKTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCAyZWUwN2Q3ZTU5ZDAxMTEwZDJkNTM2NDBl
ZWZhNmM0ZTMzMzQ0ZDBmLi44OWI2Mjg4YmViYTM4NGExMzQ1YjAyMzQzOWMyNDA2ODAzYzUwZDZk
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
KysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC0yMjEs
NiArMjIxLDkgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWROb3RpZmlj
YXRpb247CiAtICh2b2lkKXNldEZ1bGxTY3JlZW5FbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09M
KWZ1bGxTY3JlZW5FbmFibGVkOwogCistICh2b2lkKXNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkOihCT09MKWZsYWc7CistIChCT09MKWFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkOworCiAtICh2b2lkKXNldFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzOihCT09MKWZsYWc7
CiAtIChCT09MKXVzZVByZUhUTUw1UGFyc2VyUXVpcmtzOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IDQ2ODdjZGFjNDE0MGFhNmQyNmZhNzRhYjQ4ZmJkNzY2NTliOTk4NGYuLmJlNmFmYmU2OTQx
NjU5ZDNmNDAyNTNiZGY5NDM1YWI2YzIwYmM1ZTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0x
NTAxLDYgKzE1MDEsMTAgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVhcmRvd25FbmFibGVk
KCkKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgc2V0dGluZ3MtPnNldEZ1bGxTY3Jl
ZW5FbmFibGVkKFtwcmVmZXJlbmNlcyBmdWxsU2NyZWVuRW5hYmxlZF0pOwogI2VuZGlmCisjaWYg
IWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BB
UkQpCisgICAgLy8gQXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSBpcyBhdmFpbGFibGUg
Zm9yIDEwLjYgb3IgbGF0ZXIuCisgICAgc2V0dGluZ3MtPnNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZF0pOworI2VuZGlmCiAgICAgc2V0dGluZ3MtPnNldE1lbW9yeUluZm9FbmFibGVkKFtwcmVmZXJl
bmNlcyBtZW1vcnlJbmZvRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRIeXBlcmxpbmtBdWRp
dGluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLT5zZXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrcyhbc2VsZiBfbmVlZHNQcmVIVE1M
NVBhcnNlclF1aXJrc10pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktp
dC9xdC9DaGFuZ2VMb2cKaW5kZXggY2Y2YTMyZjIwY2UyY2U4NDNmNTc4Yjg1NzMzNzk5MDA4YzVh
N2ZhZC4uMzczM2ZjNjMzYmNjZjA5ZTI0ZDQwOGY5MjhmMThiZDIxMTIwYjhhMiAxMDA2NDQKLS0t
IGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1w
bGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisKIDIwMTAtMTEtMTAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21h
aWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3MTczMy4KZGlmZiAt
LWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oIGIvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKaW5kZXggN2Q5OWQyMjJkODM2ZjEw
N2Y2YTAzZTY3YTgyNTMxNWFjNTVhZTNiZi4uYmY1NDMzNGNhYzYwYjBjZDAzNWM5ZGI5M2U4ZGI5
NGZiZjBkMzA3NiAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgK
QEAgLTEwNyw2ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNG
b3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CiAK
ICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0No
YW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDgxNWNjMTkyODAwNWI5NTRmZDhm
NDlhODRhODQyNjhmYzY0ZjRiZDIuLmU3MDdkODU2ODI0ODhjOGU2YTY1ZmY1ZWY4N2ZhODc5ODg3
NjY5YWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAg
ICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMS0xMCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggOGJlNmRlOTBjMjFm
NGUxOWVmYzJmZmZiM2E3YWRlNGNmZDQ4ZWUzMy4uZGM5NmFiNDg5NjYxMmRmYjBmNDM0YmUwNTM4
ZWMyNWNmMjRjMWM2YyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCkBAIC0xMTEsNiArMTExLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdl
YkNvcmU6OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2
YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW5jZS9D
aGFuZ2VMb2cgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDBjYmQ5MjVhY2JiODgyYzkx
Y2RmMGFhY2E0YzQzOTkwYmJhNTg3NDIuLjRmNmI1MGY1MjljODI3NTZmNTI5YmIyODMxM2Q4OTcz
MTliZTQ2YTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFq
aW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisK
KyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTExLTA4ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0Uu
aAppbmRleCBiZTg1YjNmYTQzMzQ1MWRiNDY1OWRkNDVjMjRjMzk1YWFhNjM5MmIwLi5kMTY0ZGVj
YTkxYzBmMzQ4MjM5YTE0MDZiZDQ3ODZhYzg4YjA2MGY2IDEwMDY0NAotLS0gYS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysgYi9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgV1RGOjpTdHJp
bmcmLCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNl
dElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0
ZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6
CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3d4L0NoYW5nZUxv
ZyBiL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggZTBmMGNkMWRiOWYxMzQzMDYyZWE3YTk4ZmVk
YmFiMjllMWRhOTJhYi4uYWMxODg0MzNkZjljOWMyOWJlZmQ4YmQxNDhmOGJmNmVjMjBkNGY3NyAx
MDA2NDQKLS0tIGEvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9XZWJLaXQvd3gvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBh
IHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9FZGl0b3JD
bGllbnRXeC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKToKKwogMjAxMC0xMS0wOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmggYi9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCmluZGV4IGJlNWM5OGFmMjk3ZGUxMGUyZjZlNTY2
ODVmMmVmNjA2NmU5ZDJmZWYuLmEyNjJhZDU5MTQyMmYyNGU2NjllZTFhN2NhNWNlNjg0ZDI0ZjI5
MWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgK
KysrIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaApAQCAtMTEyLDYg
KzExMiw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVu
YWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToK
ICAgICBQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDM0MjdjMjE5OGViZjJmOTc1N2EwOTM1NDM3YjYwMmJkZWE1MTY5
NzMuLjcwYWUyYjdjMTMxNWM0MGZmYWYyZGEzYzc3ZmI4NGJjYWY3YWJkZTEgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBk
b2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1u
dGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5oOgorCiAyMDEwLTExLTEwICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29t
PgogICAgICAgICAKICAgICAgICAgRml4IFdpbmRvd3MgYnVpbGQuCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDEz
NTk1YjAzMmI1MmJiMGEzMDY3ZDhhMTM3ZTYzYWFiYjNlNDdiYzUuLjgwMTg3ODRjMTJkNzYxYzlk
NjA2OGQ5NjBlZjYyYWRmOGY5NzFhYTUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00MDgsNCArNDA4LDkgQEAg
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmgKaW5kZXggNjJhNWVkMmFlY2VkNzMwZTM2Nzg4N2U0MTk5MjdjNmEyOWNjM2M5Mi4uMTRmYjAx
ODQzMTBiNTJiZmZjMmRkOGY1ZjY0MjYxNjA3YjVlM2I1YiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMzLDYgKzEz
Myw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0
IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAj
aWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmlu
ZWQoQlVJTERJTkdfT05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9Q
QVJEKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJl
Y3Rpb25QYW5lbEluZm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3Vu
ZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZp
cnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25XYXNS
ZWplY3RlZE9yTm90KTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktp
dFRvb2xzL0NoYW5nZUxvZwppbmRleCA1ZjY5ZTg1MzM4NWZjMmI2Yjk0MGNlYTMyNjM0NThiMjE0
ODgxZjA4Li4yMjBkM2E5OTI0NmQ4Mjk3MzA1ODQ0M2JkMDBjYzRkY2MwN2ZkNjA4IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
c3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQor
ICAgICAgICB0byBjb250cm9sIHRoZSBzZXR0aW5nLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoc2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWRDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91
dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Z3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocmVzZXREZWZh
dWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVy
V3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKToKKwogMjAxMC0xMS0xMCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8
b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CmluZGV4IDk2MTkzODk3MmQ4ZjIzYjhjMzhiNjQ4NGRiNWEzMTllZGI1ZjdkYWMuLjk1ZWFhZjZk
YjE1NTQwNTlkNGM3M2M3ZDBlZDg3NTZjYTcxOTg0YzUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE0ODMsNiArMTQ4
MywxNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTTwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKIH0KIAorc3RhdGljIEpTVmFsdWVSZWYgc2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5zZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwor
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpT
VmFsdWVSZWYgc2hvd1dlYkluc3BlY3RvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKIHsKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3Qp
KTsKQEAgLTE5OTgsNiArMjAwOCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250
cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRXaW5kb3dJc0tleSIsIHNl
dFdpbmRvd0lzS2V5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0SmF2YVNjcmlwdENh
bkFjY2Vzc0NsaXBib2FyZCIsIHNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRYU1NBdWRpdG9yRW5hYmxlZCIsIHNldFhTU0F1ZGl0
b3JFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQiLCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNob3dXZWJJbnNwZWN0b3IiLCBzaG93V2ViSW5z
cGVjdG9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidGVzdE9uc2NyZWVuIiwgdGVzdE9u
c2NyZWVuQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAidGVzdFJlcGFpbnQiLCB0ZXN0UmVw
YWludENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBiNjE4NjBiYzY0NjUyNWZjNzA3ZDE0NjIwNzA0
NjQwYjVkY2M4M2M0Li5hMTlhMDU1Zjk1Y2U5Y2E5YWRkOTZiODk1MjdmZDlmZjI4ZjMyZjA4IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmgKQEAgLTI3MCw2ICsyNzAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBnZW9sb2NhdGlvblBlcm1p
c3Npb24oKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvbjsgfQogCiAgICAg
dm9pZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpOworICAgIHZvaWQgc2V0QXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzaG93V2ViSW5zcGVj
dG9yKCk7CiAgICAgdm9pZCBjbG9zZVdlYkluc3BlY3RvcigpOwogICAgIHZvaWQgc2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggNWIwYzg0NDJjZDJjMDI4YjA4NjZmYzZhMzg1Y2EyMGE0YjE3YWE3Mi4uMzliN2QyYzc0
NDMxZjhkNmZhMDI3ZDBjNjMzYzFiYjY0MTc5OTM3NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cApAQCAtMTY2LDYgKzE2Niw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldFdpbGxTZW5kUmVx
dWVzdFJldHVybnNOdWxsT25SZWRpcmVjdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2ls
bFNlbmRSZXF1ZXN0UmV0dXJuc051bGxPblJlZGlyZWN0KTsKICAgICBiaW5kTWV0aG9kKCJzZXRX
aW5kb3dJc0tleSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2luZG93SXNLZXkpOwogICAg
IGJpbmRNZXRob2QoInNldFhTU0F1ZGl0b3JFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRYU1NBdWRpdG9yRW5hYmxlZCk7CisgICAgYmluZE1ldGhvZCgic2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzaG93V2ViSW5zcGVj
dG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKTsKICAgICBiaW5k
TWV0aG9kKCJzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2spOwogICAgIGJpbmRNZXRo
b2QoInN1c3BlbmRBbmltYXRpb25zIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzdXNwZW5kQW5p
bWF0aW9ucyk7CkBAIC02MTksNiArNjIwLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEFsd2F5c0FjY2VwdENvb2tpZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVuCiAg
ICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9zaGVsbC0+c2hvd0RldlRvb2xz
KCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBmYzE2ODI3NDFiNzI4NjFkODM1ODBlODkzZjYw
ZWViYmI1NzU1MzExLi4xMDczM2EzYzU4OWFjZTdkYjllYTc0MmI4NDdkMzJlZDk4MTRhYWM2IDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE1Myw2ICsxNTMsOSBAQCBwdWJsaWM6CiAgICAgLy8g
Q2hhbmdlcyB0aGUgY29va2llIHBvbGljeSBmcm9tIHRoZSBkZWZhdWx0IHRvIGFsbG93IGFsbCBj
b29raWVzLgogICAgIHZvaWQgc2V0QWx3YXlzQWNjZXB0Q29va2llcyhjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICAvLyBDaGFuZ2VzIGFzeW5jaHJvbm91cyBzcGVs
bGNoZWNraW5nIGZsYWcgb24gdGhlIHNldHRpbmdzLgorICAgIHZvaWQgc2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OworCiAgICAgLy8gU2hvd3MgRGV2VG9vbHMgd2luZG93LgogICAgIHZvaWQgc2hvd1dlYkluc3Bl
Y3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBjbG9z
ZVdlYkluc3BlY3Rvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcAppbmRleCBhYjcwYTNlMGY2ODc5N2EyYjYzNmNlMTY2N2NlMTAxYjJiZDU0
ZjFjLi5lMWI1Mjc3MzQ2ZTczNjEzNzY4ODhhYjBmZTRhYmFjZTA1MmRlNzYyIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAKQEAgLTczNSw2ICs3MzUsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgZ19vYmplY3Rf
c2V0KHdlYlNldHRpbmdzLCAiZW5hYmxlLWRldmVsb3Blci1leHRyYXMiLCBlbmFibGVkLCBOVUxM
KTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9
CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAg
IFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyht
YWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1
bXBSZW5kZXJUcmVlLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCmluZGV4IDZkZTI4MmY5MTRmMGU2YjA4NDZlYmQ5MzZlOGJjYTk0MmU4NTU3ZTgu
LmQ1MTg1ZDVhNmUxODU1NjdiNjA5MDJhNGJiZmZjZWM0OTU3YmRkODAgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTQ2MSw2ICs0
NjEsNyBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAg
ICBbcHJlZmVyZW5jZXMgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ6WUVTXTsKICAg
ICBbcHJlZmVyZW5jZXMgc2V0V2ViR0xFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0
VXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6Tk9dOworICAgIFtwcmVmZXJlbmNlcyBzZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDpOT107CiAKICAgICBbW05TSFRUUENvb2tpZVN0b3Jh
Z2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIHNldENvb2tpZUFjY2VwdFBvbGljeTpOU0hUVFBD
b29raWVBY2NlcHRQb2xpY3lPbmx5RnJvbU1haW5Eb2N1bWVudERvbWFpbl07CiAKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQppbmRleCA0MzFkNGU5MDYyNTEzZDIzNTAxMDJjOWRkOWNiYzk0ZWQ5ZTI2ZGY2Li5l
OTU3Zjg4YzVlNDdhZTJiYWJlZThiMTBhNTU2ODZjNGMwMDAyYjBiIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFj
Lm1tCkBAIC03MDgsNiArNzA4LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERl
dmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIFtbW21haW5GcmFtZSB3ZWJW
aWV3XSBwcmVmZXJlbmNlc10gc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDplbmFibGVkXTsKIH0K
IAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIFtbW21haW5GcmFtZSB3ZWJWaWV3XSBwcmVm
ZXJlbmNlc10gc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6ZW5hYmxlZF07Cit9
CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAg
IFtbW21haW5GcmFtZSB3ZWJWaWV3XSBpbnNwZWN0b3JdIHNob3c6bmlsXTsKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3Bw
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAKaW5kZXggM2U1MGUwNmE0YTczMmRkNzAwY2RmNGNmOWNjN2EyYzA5Y2FkMzY1Yi4uMWVlMWM4
NTM3NjZiZjU1MGIzNmU4MjU4NzI1NmExYmVhMWZkNGYwMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAg
LTM4MCw2ICszODAsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGlu
Z3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCwg
ZW5hYmxlZCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0
aGlzLgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKCkK
IHsKICAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNl
dHRpbmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCBk
ZmIxMmZlMjhlN2IzNGVmOTUxY2Y3Y2JhYjgxOWM5NDY5MWZhMjNiLi5lYmQ4MzJmZWE0YjhiNWM5
NzZiOGUwOGY5MGQ4Y2I1MTY1ODc4YjI1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xMzYsNiArMTM2LDcg
QEAgcHVibGljIHNsb3RzOgogICAgIFFTdHJpbmcgZGVjb2RlSG9zdE5hbWUoY29uc3QgUVN0cmlu
ZyYgaG9zdCk7CiAgICAgdm9pZCBkdW1wU2VsZWN0aW9uUmVjdCgpIGNvbnN0IHt9CiAgICAgdm9p
ZCBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKGJvb2wpOworICAgIHZvaWQgc2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9y
KCk7CiAgICAgdm9pZCBjbG9zZVdlYkluc3BlY3RvcigpOwogICAgIHZvaWQgZXZhbHVhdGVJbldl
Ykluc3BlY3Rvcihsb25nIGNhbGxJZCwgY29uc3QgUVN0cmluZyYgc2NyaXB0KTsKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldp
bi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xs
ZXJXaW4uY3BwCmluZGV4IDM4NmYxMThiZWY5ZDVjYWRiMzJlZTkwNTgyNmE4ZjMyZWU4ZDlmYTYu
LmFlZDdkYzliMTk0YWRhZDM5YzI4YTMyNjljNTNjZTAwNTcyNWFkMzUgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcApAQCAtMTE2Miw2ICsxMTYyLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHByZWZzUHJpdmF0
ZS0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkK
K3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAgIENPTVB0cjxJV2ViVmlldz4gd2Vi
VmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRl
c3RDb250cm9sbGVyV3guY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0
VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggMzI2MTRjMTEzM2RkZjhhYWQ3N2VmYjBkMWQ0YTZi
MzBlNDAxMTA4Yi4uNjllMGZjNDU5YzIxNzZiNjRiZDhmOTJjY2FiODcxNTRlMDI2NTNjYiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xs
ZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAKQEAgLTUyOCwzICs1MjgsOCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBw
YQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKICAgICByZXR1cm4gMDsKIH0KKwordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9v
bCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74074</attachid>
            <date>2010-11-16 18:39:49 -0800</date>
            <delta_ts>2010-12-09 01:05:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40092-20101117113947.patch</filename>
            <type>text/plain</type>
            <size>79884</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZDVlOTI0MGEwNTVkMmY5MjRmMGJlYmU1ZmRmNDEzYjA4MTI0NTkxLi45YTRmYzY5
MTZiNzY3ZjljZWFlNjBlYWYwYTI0YTk2MzQ4YjAyMWM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMS0xNiAgRGF2ZSBIeWF0dCAgPGh5
YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zY3JpcHQtdGVzdHMvc3BlbGxj
aGVjay1wYXN0ZS5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3Rz
L3NwZWxsY2hlY2stcGFzdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDEzZDJiMDk0NmMxMWMzNjMwMDliZThk
Mzc4MTVmYWMxNzE1N2EwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMKQEAgLTAsMCArMSw5OCBA
QAorCitkZXNjcmlwdGlvbignRm9yIEJ1ZyA0MDA5MjogU3BlbGwgY2hlY2tpbmcgZm9yIHBhc3Rl
ZCB0ZXh0LicpOworCitsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK3Zh
ciB0ZXN0Um9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9k
eS5pbnNlcnRCZWZvcmUodGVzdFJvb3QsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CisKK3Zh
ciB0ZXN0VGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpOwordGVz
dFJvb3QuYXBwZW5kQ2hpbGQodGVzdFRleHRBcmVhKTsKKwordmFyIHRlc3RJbnB1dCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cit0ZXN0SW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBl
IiwgInRleHQiKTsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RJbnB1dCk7CisKK3ZhciB0ZXN0
RWRpdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RFZGl0YWJsZS5z
ZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIsICJ0cnVlIik7Cit0ZXN0Um9vdC5hcHBlbmRD
aGlsZCh0ZXN0RWRpdGFibGUpOworCit2YXIgdGVzdFNvdXJjZVBsYWluID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNlUGxhaW4uaW5uZXJIVE1MID0gImZvbyBiYXIi
OwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFNvdXJjZVBsYWluKTsKKwordmFyIHRlc3RTb3Vy
Y2VEZWNvcmF0ZWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3Rlc3RTb3VyY2VE
ZWNvcmF0ZWQuaW5uZXJIVE1MID0gImZvPGI+byBiYTwvYj5yIjsKK3Rlc3RSb290LmFwcGVuZENo
aWxkKHRlc3RTb3VyY2VEZWNvcmF0ZWQpOworCit2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlv
bigpOworCit2YXIgdGVzdHMgPSBbXTsKKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgdmFyIG5l
eHQgPSB0ZXN0cy5zaGlmdCgpOworICAgIGlmIChuZXh0KQorICAgICAgICByZXR1cm4gd2luZG93
LnNldFRpbWVvdXQobmV4dCwgMCk7CisgICAgdGVzdFJvb3Quc3R5bGUuZGlzcGxheSA9ICJub25l
IjsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IHZlcmlmeU1hcmtlcihub2RlLCBleHBlY3RlZE1hcmtlZCkKK3sKKyAgICBpZiAobm9kZSBpbnN0
YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVs
ZW1lbnQpIHsKKyAgICAgICAgbm9kZS5mb2N1cygpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNl
bC5zZWxlY3RBbGxDaGlsZHJlbihub2RlKTsKKyAgICB9CisgICAgcmV0dXJuIGxheW91dFRlc3RD
b250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKGV4cGVjdGVkTWFya2VkWzBdLCBleHBlY3RlZE1h
cmtlZFsxXSk7Cit9CisKK2Z1bmN0aW9uIHBhc3RlQW5kVmVyaWZ5KHNvdXJjZSwgZGVzdCwgZXhw
ZWN0ZWRNYXJrZWQpCit7CisgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKHNvdXJjZSk7CisgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKKyAgICBpZiAoZGVzdCBpbnN0YW5jZW9mIEhU
TUxJbnB1dEVsZW1lbnQgfHwgZGVzdCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsK
KyAgICAgICAgZGVzdC52YWx1ZSA9ICIiOworICAgICAgICBkZXN0LmZvY3VzKCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgZGVzdC5pbm5lckhUTUwgPSAiIjsKKyAgICAgICAgc2VsLnNlbGVjdEFs
bENoaWxkcmVuKGRlc3QpOworICAgIH0KKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUi
KTsKKworICAgIHZhciBucmV0cnkgPSAxMDsKKyAgICB2YXIgbnNsZWVwID0gMTsKKyAgICBmdW5j
dGlvbiB0cmlhbCgpIHsgCisgICAgICAgIHZhciB2ZXJpZmllZCA9IHZlcmlmeU1hcmtlcihkZXN0
LCBleHBlY3RlZE1hcmtlZCk7CisgICAgICAgIGlmICh2ZXJpZmllZCkgeworICAgICAgICAgICAg
dGVzdFBhc3NlZChkZXN0LnRhZ05hbWUgKyAiIGhhcyBhIG1hcmtlciBvbiAnIiArIHNvdXJjZS5p
bm5lckhUTUwgKyAiJyIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgbnJldHJ5LS07CisgICAgICAgIGlmICgwID09IG5yZXRy
eSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZChkZXN0LnRhZ05hbWUgKyAiIHNob3VsZCBoYXZl
IGEgbWFya2VyIG9uIGZvciAnIiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOworICAgICAgICAg
ICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBuc2xlZXAgKj0gMjsKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQodHJpYWwsIG5zbGVl
cCk7CisgICAgfTsKKyAgICB0cmlhbCgpOworfTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCh0cnVlKTsKKwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRW
ZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0SW5wdXQsIFswLCAzXSk7IH0pOwordGVzdHMucHVz
aChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdElu
cHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5
KHRlc3RTb3VyY2VQbGFpbiwgdGVzdFRleHRBcmVhLCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2go
ZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RUZXh0
QXJlYSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlm
eSh0ZXN0U291cmNlUGxhaW4sIHRlc3RFZGl0YWJsZSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNo
KGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0RWRp
dGFibGUsIFswLCAyXSk7IH0pOyAvLyBUbyBjaGVjayAiZm8iIHBhcnQgb2YgZm9vLgorZG9uZSgp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVlM2E4NzMwYjUyZjI0ZWM0NDViYmVlYTQyMzVmNGZkNTg4YTFiYjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFz
dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNo
ZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBJ
TlBVVCBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXInCitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBv
biAnZm88Yj5vIGJhPC9iPnInCitQQVNTIFRFWFRBUkVBIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJh
cicKK1BBU1MgVEVYVEFSRUEgaGFzIGEgbWFya2VyIG9uICdmbzxiPm8gYmE8L2I+cicKK1BBU1Mg
RElWIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAn
Zm88Yj5vIGJhPC9iPnInCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGNoZWNrLXBhc3RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmJhYmEwYzM0NTczNDUzMzMwODVjOGRl
MGQxYjhkZWMxMWMyMDk4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2Vs
ZWN0aW9uLXNoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKaW5kZXggYjdjNWZkYTc2NDY3NjI5Mzk0N2UyNGIzYzc3MGQ2ZGM0NzQ5
ZWVlOS4uOTAyNDM3MzIyZTQ0YzAxZmYxZWUxMjdkNTA3ZTBmMjUwNGI5ZWI2ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApA
QCAtMjU3NCw2ICsyNTc0LDkgQEAgQlVHV0s0MTMxMSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMv
Ym9yZGVyUmFkaXVzRG91YmxlMDcuaHRtbCA9IElNQUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6
IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3VibGUwOC5odG1sID0gSU1BR0UKIEJVR1dLNDEz
MTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2JvcmRlclJhZGl1c0RvdWJsZTA5Lmh0bWwgPSBJ
TUFHRQogCisvLyBOZWVkIHRvIGltcGxlbWVudCBFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKCkKK0JVR1dLNDE0MjMgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFz
dGUuaHRtbCA9IFRJTUVPVVQKKwogLy8gRmxha3kgdGVzdHMuCiBCVUc0NDM0NSBMSU5VWCA6IHN2
Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhlZC0wMDkueG1sID0gSU1BR0UgUEFTUwogQlVHNDQz
NDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pvb20taGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdF
IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMjJkZTA5MzU3NTRhOTNiNmQ3Yzc2
MWY0MjI0MjEyNjllYjc1MzRmMy4uMGNmYmYxOTBhYTc0NTU1MTAxZTFmMGQ0MzE4ZTE5ZGMyNjc3
Y2IxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTk4MSw2ICs5ODEsNyBAQCBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctbGluZWJyZWFrLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctYXR0cmlidXRlLWNoYW5nZS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWF0
dHJpYnV0ZS1hdC1jaGlsZC5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUu
aHRtbAogZWRpdGluZy9zdHlsZS81MDY1OTEwLmh0bWwKIGVkaXRpbmcvc3R5bGUvYXBwbGUtc3R5
bGUtZWRpdGFibGUtbWl4Lmh0bWwKIGVkaXRpbmcvc3R5bGUvYmxvY2stc3R5bGUtMDAxLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFyZC9Ta2lwcGVkCmluZGV4IGUzYzNmNzhkZjc0
NjQ3YmQ2MTU0NjQyN2Q0YjU2YzM3ODYyMGUyYmQuLmFiMGI0Y2NlNjJjYTc5MDYwNjE2NzE4MWQ1
ZGZlMzY5ZmJhZTNmOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9w
YXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBl
ZApAQCAtODUsNiArODUsOSBAQCBmYXN0L3RleHQvaHlwaGVuYXRlLWxvY2FsZS5odG1sCiAjIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUyNzEKIGh0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tc2Vla2FibGUtc3RhbGwuaHRtbAogCisjIEF2YWlsYWJsZSAxMC42IG9y
IGxhdGVyCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjIERpc2Fi
bGUgdGVzdHMgd2hpY2ggc3RhcnRlZCBmYWlsaW5nIGFmdGVyIHI2Njk2MQogIyBGYWlsdXJlcyBs
b29rIGxpa2UgYW4gdW5kZXJseWluZyBwbGF0Zm9ybSBpc3N1ZQogIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU1NDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy10aWdlci9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2Vy
L1NraXBwZWQKaW5kZXggYjNmMmM0ODA5NWM1NjYwMGI2NDdhNjYwZWUxZWQ4YjhlZGQ5NDA0Yi4u
YTZiZGZhNTgzNDUyNjg3MTU4ZmQzZGYxNWI0MzNhZjZiZDM4MDkwMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKQEAgLTIwNCw2ICsyMDQsOSBAQCBmYXN0L2hhcm5lc3Mv
c2hvdy1tb2RhbC1kaWFsb2cuaHRtbAogIyBMb2FkaW5nIGZhaWxzIG9uIFRpZ2VyIHdpdGggZXJy
b3IgLTEwMTIgYWZ0ZXIgYXNraW5nIE5TVVJMQ29ubmVjdGlvbiB0byBjb250aW51ZSB3aXRob3V0
IGNyZWRlbnRpYWxzLgogaHR0cC90ZXN0cy9taXNjLzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50LnBo
cAogCisjIEF2YWlsYWJsZSBvbmx5IDEwLjYgb3IgbGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJsZSBzcGVsbGluZyB0ZXN0cyBmb3IgYXV0b2Nv
cnJlY3Rpb24gcGFuZWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0
aW9uLWRlbGV0ZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9zcGVsbGluZy9hdXRvY29ycmVj
dGlvbi1yZW1vdmluZy11bmRlcmxpbmUtYWZ0ZXItcGFzdGUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi9Ta2lwcGVkCmluZGV4IGI1ODQ3ZjA2MDJjNjI2NDgzYThjNjZhZDkwZDA2YTk0Mzg0
N2JmNDMuLjBiMWE4NzQwNjU3OTQ4ZTNmZDgzYzM1OWYxM2NiZjY2MWI3MDUyNDkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKQEAgLTE2NSw2ICsxNjUsNyBAQCBlZGl0aW5nL3Nl
bGVjdGlvbi90cmlwbGUtY2xpY2staW4tcHJlLmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uL3VzZXIt
ZHJhZy1lbGVtZW50LWFuZC11c2VyLXNlbGVjdC1ub25lLmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9u
L3dvcmQtZ3JhbnVsYXJpdHkuaHRtbAogZWRpdGluZy9zcGVsbGluZy9jb250ZXh0LW1lbnUtc3Vn
Z2VzdGlvbnMuaHRtbAorZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKIGVk
aXRpbmcvdW5kby91bmRvLWRlbGV0ZVdvcmQuaHRtbAogZWRpdGluZy91bmRvL3VuZG8tc21hcnQt
ZGVsZXRlLXJldmVyc2VkLXNlbGVjdGlvbi5odG1sCiBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1k
ZWxldGUtd29yZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA2ZjJhNTY4ZDM1Nzc1
Y2YzYTI1ZmM3ODZkMmRmYTE5NzY5NjRjYmRkLi4wYmI1MTMzYWRkYTZjYWVlMTczODgwM2VhNDVi
N2Q4YTJjMzQ5ZDM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTIxMTQsNiArMjExNCw5
IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRt
bAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1hdHRyaWJ1dGUtY2hhbmdlLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctYXR0cmlidXRlLWF0LWNoaWxkLmh0bWwKIAorIyBFZGl0b3JD
bGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkgaXMgbm90IGltcGxlbWVudGVkCitlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCiAjID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICMKICMgZmFpbGluZyBlZGl0aW5nL3N0eWxlIHRlc3RzCiAjID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggMzk3M2YzM2VhZDgzNDY1YWQ0NTVi
OGQzZTViYmMwYjM4ZDM4NzlmMy4uNjg4NzQ1YTFkN2JjMzg1N2E2MTc1MDRhYjUyZDk0ZDA0OWM2
Yjg2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTk0Miw2ICs5NDIsOSBAQCBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctY29udGVudGVkaXRhYmxlLmh0bWwKIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctdGV4dGFyZWEuaHRtbAogCisjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZS5odG1sCisKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3Jh
Z2UvaW5kZXhlZGRiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDA4Zjg4MDk3MTAzMDc1OTE1N2RkZTU2NTY4YTcwY2Q4
YTg4NDE0NDEuLjdhNzVlNjg2MzJkYjk0NDA4OTJiZjA5MTVmMDJiNDFlZjFhYzEyMmYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtOTIwLDYgKzkyMCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBlZGl0aW5nL1Nl
bGVjdGlvbkNvbnRyb2xsZXIuY3BwCiAgICAgZWRpdGluZy9TZXROb2RlQXR0cmlidXRlQ29tbWFu
ZC5jcHAKICAgICBlZGl0aW5nL1NtYXJ0UmVwbGFjZS5jcHAKKyAgICBlZGl0aW5nL1NwZWxsQ2hl
Y2tlci5jcHAKICAgICBlZGl0aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwCiAgICAgZWRpdGlu
Zy9TcGxpdFRleHROb2RlQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250
YWluaW5nRWxlbWVudENvbW1hbmQuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNiNjYyZWVkYjcxOTMzN2RiZDI4NTEzNzljN2I4NDYz
MDAxNWRjOGYuLmNmNjdmNDYzZmUyYWY4NmY2NTQxNDhlN2EyNzE3ZmRlNzYxMjM0MGIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNzIgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAtIEludHJvZHVjZWQgU3Bl
bGxDaGVja2VyIGNsYXNzIHRvIGVuY2Fwc3VsYXRlIGFzeW5jaHJvbm91cyBzcGVsbAorICAgICAg
ICAgIGNoZWNrZXIgc3RhdGU6IHNlcXVlbmNlIGlkLCByZXF1ZXN0aW5nIHRleHQgYW5kIHRhcmdl
dCBub2RlLgorICAgICAgICAgIFRoaXMgaXMgYWxzbyB0aGUgZmlyc3Qgc3RlcCB0byBkZWNvbXBv
c2Ugc3BlbGwtY2hlY2sgcmVsYXRlZAorICAgICAgICAgIGNvZGUgdG8gYSBzZXBhcmF0ZSBjbGFz
cy4KKyAgICAgICAgLSBBZGRlZCBFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoKSAKKyAgICAgICAgICB0byB1c2UgYXN5bmMgc3BlbGxjaGVjayBBUEkgb24g
dGhlIHBsYXRmb3JtLgorICAgICAgICAgIFRoZXNlIEFQSXMgYXJlIHRvdWNoZWQgYnkgU3BlbGxD
aGVja2VyLgorICAgICAgICAtIFVzZWQgU3BlbGxDaGVja2VyIHRvIGNoZWNrIGEgcGFzdGVkIHRl
c3QuIFRleHQgdG8gY2hlY2sgaXMKKyAgICAgICAgICBjb2xsZWN0ZWQgZnJvbSB0aGUgc3VidHJl
ZSB1bmRlciB0aGUgZWRpdGluZ1Jvb3QuCisgICAgICAgIC0gQWRkZWQgU2V0dGluZzo6bV9hc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCB0byBjb250cm9sCisgICAgICAgICAgYXN5bmMg
c3BlbGwgY2hlY2tpbmcuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNo
ZWNrLXBhc3RlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OnNob3dNYXJrZXJzKToKKyAg
ICAgICAgKHNob3dEb2N1bWVudE1hcmtlcnMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQb3NpdGlvbkl0ZXJhdG9yOjpzZXRPZmZzZXRJbkxlYWZOb2RlKToKKyAg
ICAgICAgKiBkb20vUG9zaXRpb25JdGVyYXRvci5oOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFn
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OkVkaXRvcik6CisgICAgICAgIChXZWJD
b3JlOjpmaW5kRmlyc3RNYXJrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNlbGVj
dGlvblN0YXJ0SGFzU3BlbGxpbmdNYXJrZXJGb3IpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9y
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNwZWxsQ2hlY2tlcik6CisgICAgICAgICog
ZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxs
Q2hlY2tlcjo6U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
flNwZWxsQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmluaXRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2xlYXJSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNBc3luY2hyb25vdXNFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6Y2FuQ2hlY2tBc3luY2hyb25vdXNseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmlzQnVzeSk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVsbENoZWNrZXI6OmlzVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2Vy
Ojppc0NoZWNrYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OnJlcXVlc3RD
aGVja2luZ0Zvcik6CisgICAgICAgIChXZWJDb3JlOjpmb3J3YXJkSXRlcmF0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpkaWRDaGVjayk6CisgICAgICAgICogZWRpdGluZy9T
cGVsbENoZWNrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVz
dWx0OjpTcGVsbENoZWNraW5nUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tp
bmdSZXN1bHQ6OnR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6
bG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdDo6bGVuZ3Ro
KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpF
bXB0eUVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAqIHBh
Z2UvRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6YXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQpOgorCiAyMDEwLTExLTE2ICBTdGV2ZSBGYWxrZW5idXJnICA8c2Zh
bGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IDVkY2M0NjhkN2RjN2M2ZWE5NDU4MzUwZTU4Mjc5NTNjMGNkNTM0YjMuLjgzM2RhZTlkYjVm
ZGYyZjE4ZjAwNGNhMTBkYmJhYTMwNmMxNTcyMjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTM0OCw2ICsxMzQ4LDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBsYWNlLmNw
cCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5oIFwKIAlXZWJDb3JlL2VkaXRpbmcv
U21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAg
XAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBcCiAJV2ViQ29yZS9lZGl0aW5nL1Nw
bGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVtZW50Q29t
bWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDQ4NjIzOTQ4YWJmMGVmMTM1NWRiODdiYzFiZWJjOWE4ZmE3ZjZjOGYuLmZjZWEyOTgw
YTdhNTY5MzEwZmVmOWFlNTFjNDc0OTRhMjRiODIxNmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTA3LDYgKzUwNyw3
IEBAIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmRDMUVQTlNfOERvY3VtZW50
RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jCiBfX1pON1dlYkNvcmUyM2NyZWF0ZUZyYWdtZW50
RnJvbU5vZGVzRVBOU184RG9jdW1lbnRFUktOM1dURjZWZWN0b3JJUE5TXzROb2RlRUxtMEVFRQog
X19aTjdXZWJDb3JlMjNvdmVycmlkZURlZmF1bHRMYW5ndWFnZUVSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0ZVByb3BlcnR5TGlzdEV2
CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFya2Vyc0Zvck5vZGVF
UE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92
ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKIF9fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVFCiBfX1pO
N1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zvck1hcmtl
cnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKQEAgLTkwNiw2ICs5MDcsNyBAQCBf
X1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBfX1pON1dl
YkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTlwbGFpblRleHRFUEtOU181UmFuZ2VFTlNf
MjBUZXh0SXRlcmF0b3JCZWhhdmlvckUKIF9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNKU0M3SlNW
YWx1ZUUKK19fWk43V2ViQ29yZTEyU3BlbGxDaGVja2VyOGRpZENoZWNrRWlSS04zV1RGNlZlY3Rv
cklOU18xOVNwZWxsQ2hlY2tpbmdSZXN1bHRFTG0wRUVFCiBfX1pOSzNKU0M4QmluZGluZ3MxMFJv
b3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRjcmVhdGVDRlN0cmlu
Z0V2CiBfX1pOSzdXZWJDb3JlMTBGbG9hdFBvaW50Y3Y4X05TUG9pbnRFdgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0ZGZlZmMw
YjgxYTNhMGFkZDdmZmFjZmUyYzg5NmM3MmRlMmI1M2RjLi5jYjFiYWNkZWVlODljZjZkNGQyNGUw
NjRlNTIzZGUzZDViOWQ0NDM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTQyNyw2ICsxNDI3LDggQEAKICAgICAgICAgICAg
ICdlZGl0aW5nL1NtYXJ0UmVwbGFjZS5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1NtYXJ0UmVw
bGFjZUNGLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2VJQ1UuY3BwJywK
KyAgICAgICAgICAgICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAnLAorICAgICAgICAgICAgJ2Vk
aXRpbmcvU3BlbGxDaGVja2VyLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU3BsaXRFbGVtZW50
Q29tbWFuZC5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5o
JywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCcsCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAz
YjBiMzk1OWZiM2Q1ZTZkNWI2YjdhZjRlODliNDIwYWEyNWNkY2Y3Li4wNGQwYzAzMDk5NTlkZjRj
ZmRkMTQ1OTFmNWI4YTVjNzE1Yjc1OWYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJv
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTgxMCw2ICs4MTAsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwIFwKICAgICBlZGl0aW5nL1Nl
dE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TbWFydFJlcGxhY2VJQ1Uu
Y3BwIFwKKyAgICBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgXAogICAgIGVkaXRpbmcvU3BsaXRF
bGVtZW50Q29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3Bw
IFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZmODU0MjVhNGEyZTc1
NTkyMjFiMmYxOGRmOTkwNjY5MzdmOTIxNDkuLmNjZDg3M2FiNzNmOTVlMDlmMWJkMjY5ZjQ1ZjU4
MmU4OGZlOTA5NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTQz
MDMsNiArNTQzMDMsMTE0IEBACiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwZWxsQ2hlY2tlci5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZWRpdGluZ1xTcGVsbENoZWNrZXIuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJv
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIg0KKwkJCQk+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5h
bHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJ
PFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
DQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwbGl0VGV4dE5vZGVD
b250YWluaW5nRWxlbWVudENvbW1hbmQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc5MmQ1ZTVlZjYwYjZhMDNh
NGExYTExZmZmOWQzM2UzMzRiOTM0ZjUuLjFmNTY5ZjMwNjhiMmYwZDlmMTk2ZjFkYTM1MThmOGU0
YmUyMjkzMTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zMDc3LDYgKzMwNzcsOCBAQAogCQlBNzc5NzkyODBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFn
ZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc3OTc5MjQwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmNwcCAqLzsgfTsKIAkJQTc3
OTc5MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyog
SlNJbWFnZURhdGEuaCAqLzsgfTsKIAkJQTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBi
b2FyZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
Nzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLzsgfTsKKwkJQTc4RkUx
M0IxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyog
U3BlbGxDaGVja2VyLmNwcCAqLzsgfTsKKwkJQTc4RkUxM0MxMjM2NkIxMDAwQUNFOEQwIC8qIFNw
ZWxsQ2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc4RkUxM0ExMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3OTU0NjNFMEI1QzRDODAw
MDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3OTU0NjNEMEI1QzRDODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5t
bSAqLzsgfTsKIAkJQTc5NTQ2NDMwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OTU0NjQyMEI1QzRD
QjQwMDdCNDM4RiAvKiBEcmFnRGF0YS5jcHAgKi87IH07CiAJCUE3QUE2NkQ2MTFDNUVENkEwMDFE
OEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTdBQTY2RDQxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGlj
YXRvci5jcHAgKi87IH07CkBAIC05MTg0LDYgKzkxODYsOCBAQAogCQlBNzc5NzkyNDBENkI5RTY0
MDAzODUxQjkgLyogSlNJbWFnZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNJbWFnZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
Nzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpcGJvYXJkLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTc4RkUxMzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGVsbENoZWNrZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4
RDAgLyogU3BlbGxDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gU3Bl
bGxDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OTU0NjNEMEI1QzRD
ODAwMDdCNDM4RiAvKiBEcmFnRGF0YU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBEcmFnRGF0YU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc5NTQ2NDIwQjVDNENCNDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERyYWdEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTdBQTY2RDQxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJJbmRpY2F0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1OTAsNiArMTQ1OTQsOCBAQAog
CQkJCTRCNkZBNkYzMEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2UuY3BwICovLAogCQkJ
CTRCNkZBNkYyMEMzOUU0OEMwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2UuaCAqLywKIAkJCQk0QjZG
QTZGNjBDMzlFNEExMDAwODcwMTEgLyogU21hcnRSZXBsYWNlQ0YuY3BwICovLAorCQkJCUE3OEZF
MTM5MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuY3BwICovLAorCQkJCUE3OEZFMTNB
MTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCAqLywKIAkJCQk5MzMwOURDMjA5OUU2
NDkxMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQzMw
OTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURD
NDA5OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwICovLApAQCAtMjA4
MDYsNiArMjA4MTIsNyBAQAogCQkJCTc1NzhGOTBEMTFEREYyNjkwMEQ5MzNDNSAvKiBTcGVlY2hJ
bnB1dENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzUzNUJDOTUxMjAyMENGRjAwMzdFQzQ1
IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU3OEY5MjAx
MUU0RTMyODAwRDkzM0M1IC8qIFNwZWVjaElucHV0TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUE3OEZFMTNDMTIzNjZCMTAwMEFDRThEMCAvKiBTcGVsbENoZWNrZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzMzA5RTEyMDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5k
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNDA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRU
ZXh0Tm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTE2MDk5RTY0OTIwMDU2
RTU4MSAvKiBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIzNDU3LDYgKzIzNDY0LDcgQEAKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMz
QzUgLyogU3BlZWNoSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAyMENG
RjAwMzdFQzQ1IC8qIFNwZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3NTg5NzhFQzEyNzA5MEQ2MDA3NkQ1QTkgLyogU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQTc4RkUxM0IxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxMTA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRF
bGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxMzA5OUU2NDkyMDA1
NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMz
MDlFMTUwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyLmNwcAppbmRleCAzYjdhYmNjYzExN2MyYTMxMzdiMzU5ZGY0ODllNjdiOGU5MTlkNDY1Li41
Zjg4NjMxMDJlMTg1M2RhZWQyMmEwODNkZDM1YzlhMWJmOWI4Nzc2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKQEAgLTU2Nyw0ICs1NjcsMzEgQEAgYm9vbCBEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXI6Omhhc01hcmtlcnMoUmFuZ2UqIHJhbmdlLCBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZm5kZWYgTkRFQlVHCit2
b2lkIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6c2hvd01hcmtlcnMoKSBjb25zdAoreworICAg
IGZwcmludGYoc3RkZXJyLCAiJWQgbm9kZXMgaGF2ZSBtYXJrZXJzOlxuIiwgbV9tYXJrZXJzLnNp
emUoKSk7CisgICAgTWFya2VyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtX21hcmtlcnMuZW5k
KCk7CisgICAgZm9yIChNYXJrZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIG5vZGVJdGVyYXRvciA9IG1f
bWFya2Vycy5iZWdpbigpOyBub2RlSXRlcmF0b3IgIT0gZW5kOyArK25vZGVJdGVyYXRvcikgewor
ICAgICAgICBOb2RlKiBub2RlID0gbm9kZUl0ZXJhdG9yLT5maXJzdC5nZXQoKTsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIlcCIsIG5vZGUpOworICAgICAgICBNYXJrZXJNYXBWZWN0b3JQYWly
KiB2ZWN0b3JQYWlyID0gbm9kZUl0ZXJhdG9yLT5zZWNvbmQ7CisgICAgICAgIFZlY3RvcjxEb2N1
bWVudE1hcmtlcj4mIG1hcmtlcnMgPSB2ZWN0b3JQYWlyLT5maXJzdDsKKyAgICAgICAgdW5zaWdu
ZWQgbWFya2VyQ291bnQgPSBtYXJrZXJzLnNpemUoKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBt
YXJrZXJJbmRleCA9IDA7IG1hcmtlckluZGV4IDwgbWFya2VyQ291bnQ7ICsrbWFya2VySW5kZXgp
CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAlZDpbJWQ6JWRdKCVkKSIsIG1hcmtlcnNb
bWFya2VySW5kZXhdLnR5cGUsIG1hcmtlcnNbbWFya2VySW5kZXhdLnN0YXJ0T2Zmc2V0LCBtYXJr
ZXJzW21hcmtlckluZGV4XS5lbmRPZmZzZXQsIG1hcmtlcnNbbWFya2VySW5kZXhdLmFjdGl2ZU1h
dGNoKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOworICAgIH0KK30KKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKworI2lmbmRlZiBOREVCVUcKK3ZvaWQgc2hvd0Rv
Y3VtZW50TWFya2Vycyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIqIGNv
bnRyb2xsZXIpCit7CisgICAgaWYgKGNvbnRyb2xsZXIpCisgICAgICAgIGNvbnRyb2xsZXItPnNo
b3dNYXJrZXJzKCk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmgKaW5kZXggOTZmYjdmM2NkMzIzNzE1NGZhMTRlZmZmM2Y5MDc2ZDAyNDFhY2IxYi4uODMxNzdm
Y2Y4ODA2ZDdiNmVhOGEwNTE3MTg0YTAwY2NjMDczZDgxZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyLmgKQEAgLTYyLDYgKzYyLDEwIEBAIHB1YmxpYzoKICAgICBWZWN0b3I8
RG9jdW1lbnRNYXJrZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsKICAgICBWZWN0b3I8SW50UmVj
dD4gcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgPSBE
b2N1bWVudE1hcmtlcjo6QWxsTWFya2Vycyk7CiAKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBz
aG93TWFya2VycygpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdHlwZWRlZiBzdGQ6
OnBhaXI8VmVjdG9yPERvY3VtZW50TWFya2VyPiwgVmVjdG9yPEludFJlY3Q+ID4gTWFya2VyTWFw
VmVjdG9yUGFpcjsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPE5vZGU+LCBNYXJrZXJNYXBW
ZWN0b3JQYWlyKj4gTWFya2VyTWFwOwpAQCAtNzEsNCArNzUsOCBAQCBwcml2YXRlOgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNpZm5kZWYgTkRFQlVHCit2b2lkIHNob3dEb2N1bWVudE1h
cmtlcnMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKik7CisjZW5kaWYK
KwogI2VuZGlmIC8vIERvY3VtZW50TWFya2VyQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0
b3IuY3BwCmluZGV4IGQyYzNhM2YwY2Y0ZTBmMDNiNDBkYjU0NmQ5OWFmMTEwMmNkNTE0NzYuLjQy
Y2M1MTM3MTI2NzY5OTZlNGJiNjhkMTk1YjRjNGFiMmZlZmFiZWEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuY3BwCkBAIC05OCw2ICs5OCwxMyBAQCB2b2lkIFBvc2l0aW9uSXRlcmF0b3I6OmRlY3Jl
bWVudCgpCiAgICAgfQogfQogCit2b2lkIFBvc2l0aW9uSXRlcmF0b3I6OnNldE9mZnNldEluTGVh
Zk5vZGUoaW50IG9mZnNldCkKK3sKKyAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZS0+aGFzQ2hpbGRO
b2RlcygpKTsKKyAgICBBU1NFUlQoMCA8PSBvZmZzZXQgJiYgb2Zmc2V0IDw9IGxhc3RPZmZzZXRG
b3JFZGl0aW5nKG1fYW5jaG9yTm9kZSkpOworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBvZmZzZXQ7
Cit9CisKIGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6YXRTdGFydCgpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX2FuY2hvck5vZGUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9y
LmggYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKaW5kZXggN2FmODk3NzU5MWQxNmMy
OTc5MzE4OTBlYmQxYWUwNjljMmQ0N2YzNi4uMDgzMjliYjE1Y2QzZTUyMTAwNDYyOTM1ODhhYjdh
YWJkMzBmZTRmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5oCisr
KyBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJs
aWM6CiAKICAgICBOb2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9hbmNob3JOb2RlOyB9CiAg
ICAgaW50IG9mZnNldEluTGVhZk5vZGUoKSBjb25zdCB7IHJldHVybiBtX29mZnNldEluQW5jaG9y
OyB9CisgICAgdm9pZCBzZXRPZmZzZXRJbkxlYWZOb2RlKGludCBvZmZzZXQpOwogCiAgICAgYm9v
bCBhdFN0YXJ0KCkgY29uc3Q7CiAgICAgYm9vbCBhdEVuZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApp
bmRleCBjNjcwZTg3YTFiYTQ1NjE5MzNhNzI0ZjkyZmUxYTUxNzhjMDkwYzU0Li4xNWQwNGU1Yjg1
ZmU3YjI1OTM4NTdjNjcxMWM0ZWRlNDRhYjUxN2NlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNjYsOSAr
NjYsMTEgQEAKICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyVGV4
dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJTcGVsbENoZWNr
ZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5jbHVk
ZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC0zODMsNiArMzg1LDEwIEBAIHZvaWQgRWRpdG9yOjpyZXBs
YWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJh
Z21lbnQsCiAgICAgCiAgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpj
cmVhdGUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgZnJhZ21lbnQsIHNlbGVjdFJlcGxhY2VtZW50LCBz
bWFydFJlcGxhY2UsIG1hdGNoU3R5bGUpKTsKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVkaXRp
bmdPcGVyYXRpb24oKTsKKworICAgIE5vZGUqIG5vZGVUb0NoZWNrID0gbV9mcmFtZS0+c2VsZWN0
aW9uKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKKyAgICBpZiAobV9zcGVsbENoZWNrZXItPmNh
bkNoZWNrQXN5bmNocm9ub3VzbHkobm9kZVRvQ2hlY2spKQorICAgICAgICBtX3NwZWxsQ2hlY2tl
ci0+cmVxdWVzdENoZWNraW5nRm9yKG5vZGVUb0NoZWNrKTsKIH0KIAogdm9pZCBFZGl0b3I6OnJl
cGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0UmVw
bGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKQpAQCAtMTEwOCw2ICsxMTE0LDcgQEAgRWRpdG9y
OjpFZGl0b3IoRnJhbWUqIGZyYW1lKQogICAgIC8vIFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQsIHNp
bmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZpb3IgKHRoaXMgbWF0Y2hlcyBJRSBidXQg
bm90IEZGKS4KICAgICAsIG1fc2hvdWxkU3R5bGVXaXRoQ1NTKGZhbHNlKQogICAgICwgbV9raWxs
UmluZyhhZG9wdFB0cihuZXcgS2lsbFJpbmcpKQorICAgICwgbV9zcGVsbENoZWNrZXIobmV3IFNw
ZWxsQ2hlY2tlcihmcmFtZSwgZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVkaXRvckNs
aWVudCgpIDogMCkpCiAgICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyKHRoaXMsICZFZGl0b3I6
OmNvcnJlY3Rpb25QYW5lbFRpbWVyRmlyZWQpCiAgICAgLCBtX2FyZU1hcmtlZFRleHRNYXRjaGVz
SGlnaGxpZ2h0ZWQoZmFsc2UpCiB7CkBAIC0zMzc1LDEyICszMzgyLDI5IEBAIHZvaWQgRWRpdG9y
OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9sZFNl
bGVjdGlvbiwgYm9vCiAgICAgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihvbGRTZWxlY3Rpb24p
OwogfQogCitzdGF0aWMgTm9kZSogZmluZEZpcnN0TWFya2FibGUoTm9kZSogbm9kZSkKK3sKKyAg
ICB3aGlsZSAobm9kZSkgeworICAgICAgICBpZiAoIW5vZGUtPnJlbmRlcmVyKCkpCisgICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dCgpKQor
ICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigpLT5p
c1RleHRDb250cm9sKCkpCisgICAgICAgICAgICBub2RlID0gdG9SZW5kZXJUZXh0Q29udHJvbChu
b2RlLT5yZW5kZXJlcigpKS0+dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoMSkuZGVlcEVxdWl2YWxl
bnQoKS5ub2RlKCk7CisgICAgICAgIGVsc2UgaWYgKG5vZGUtPmZpcnN0Q2hpbGQoKSkKKyAgICAg
ICAgICAgIG5vZGUgPSBub2RlLT5maXJzdENoaWxkKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpOworICAgIH0KKworICAgIHJldHVybiAwOwor
fQorCiBib29sIEVkaXRvcjo6c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcihpbnQg
ZnJvbSwgaW50IGxlbmd0aCkgY29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gbV9mcmFtZS0+c2Vs
ZWN0aW9uKCktPnN0YXJ0KCkubm9kZSgpOwotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVuZGVy
ZXIoKSkKKyAgICBOb2RlKiBub2RlID0gZmluZEZpcnN0TWFya2FibGUobV9mcmFtZS0+c2VsZWN0
aW9uKCktPnN0YXJ0KCkubm9kZSgpKTsKKyAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBBU1NFUlQobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpOwogCiAgICAgdW5z
aWduZWQgaW50IHN0YXJ0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihmcm9tKTsK
ICAgICB1bnNpZ25lZCBpbnQgZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihm
cm9tICsgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAyNGNkYWYxZGViYzBjN2NiMzI5ZDhhMjIxYjk3
OTA5OTFkN2EyMjM5Li5iNTZmNGUzZmQyZDQ2MDM1ODY3NTg3YzVkNjZiZDI5MjNkNjRmMTkwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5oCkBAIC01NCw2ICs1NCw3IEBAIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBL
aWxsUmluZzsKIGNsYXNzIFBhc3RlYm9hcmQ7CiBjbGFzcyBTaW1wbGVGb250RGF0YTsKK2NsYXNz
IFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFRleHQ7CiBjbGFzcyBUZXh0RXZlbnQ7CiAKQEAgLTMwMCw2
ICszMDEsNyBAQCBwdWJsaWM6CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JDb21t
YW5kKEV2ZW50Kik7CiAKICAgICBLaWxsUmluZyoga2lsbFJpbmcoKSBjb25zdCB7IHJldHVybiBt
X2tpbGxSaW5nLmdldCgpOyB9CisgICAgU3BlbGxDaGVja2VyKiBzcGVsbENoZWNrZXIoKSBjb25z
dCB7IHJldHVybiBtX3NwZWxsQ2hlY2tlci5nZXQoKTsgfQogCiAgICAgRWRpdGluZ0JlaGF2aW9y
IGJlaGF2aW9yKCkgY29uc3Q7CiAKQEAgLTM4MCw2ICszODIsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tpbGxSaW5n
OwogICAgIENvcnJlY3Rpb25QYW5lbEluZm8gbV9jb3JyZWN0aW9uUGFuZWxJbmZvOworICAgIE93
blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwogICAgIFRpbWVyPEVkaXRvcj4gbV9j
b3JyZWN0aW9uUGFuZWxUaW1lcjsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fbWFyazsKICAgICBi
b29sIG1fYXJlTWFya2VkVGV4dE1hdGNoZXNIaWdobGlnaHRlZDsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTgwNzQ3NGI3NTM4NmJlNzcyMWVjOGRlZTMwZDk5MzA3YjEwMWUy
NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCkBA
IC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTcGVsbENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQb3Np
dGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmpl
Y3QuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgor
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3BlbGxD
aGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lLCBFZGl0b3JDbGllbnQqIGNsaWVudCkK
KyAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3Jl
cXVlc3RTZXF1ZW5jZSgwKQoreworfQorCitTcGVsbENoZWNrZXI6On5TcGVsbENoZWNrZXIoKQor
eworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkKK3sKKyAg
ICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hyb25vdXNseShub2RlKSk7CisKKyAgICBTdHJpbmcgdGV4
dCA9IG5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3ROb2RlID0gbm9kZTsKKyAgICBtX3JlcXVl
c3RUZXh0ID0gdGV4dDsKKyAgICBtX3JlcXVlc3RTZXF1ZW5jZSsrOworCisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpjbGVhclJlcXVlc3QoKQoreworICAgIG1fcmVx
dWVzdE5vZGUuY2xlYXIoKTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7Cit9CisKK2Jv
b2wgU3BlbGxDaGVja2VyOjppc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPmFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjpjYW5D
aGVja0FzeW5jaHJvbm91c2x5KE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzQ2hl
Y2thYmxlKG5vZGUpICYmIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpICYmICFpc0J1c3koKTsKK30K
KworYm9vbCBTcGVsbENoZWNrZXI6OmlzQnVzeSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVx
dWVzdE5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc1ZhbGlkKGludCBzZXF1
ZW5jZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBtX3JlcXVl
c3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOworfQorCiti
b29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVja2FibGUoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxsQ2hlY2tlcjo6
cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGNhbkNoZWNrQXN5
bmNocm9ub3VzbHkobm9kZSkpOworCisgICAgaWYgKCFpbml0UmVxdWVzdChub2RlKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIG1fY2xpZW50LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0aGlzLCBt
X3JlcXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0VGV4dCk7Cit9CisKK3N0YXRpYyBib29sIGZvcndh
cmRJdGVyYXRvcihQb3NpdGlvbkl0ZXJhdG9yJiBpdGVyYXRvciwgaW50IGRpc3RhbmNlKQorewor
ICAgIGludCByZW1haW5pbmcgPSBkaXN0YW5jZTsKKyAgICB3aGlsZSAoIWl0ZXJhdG9yLmF0RW5k
KCkpIHsKKyAgICAgICAgaWYgKGl0ZXJhdG9yLm5vZGUoKS0+aXNDaGFyYWN0ZXJEYXRhTm9kZSgp
KSB7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gbGFzdE9mZnNldEZvckVkaXRpbmcoaXRlcmF0
b3Iubm9kZSgpKTsKKyAgICAgICAgICAgIGludCBsYXN0ID0gbGVuZ3RoIC0gaXRlcmF0b3Iub2Zm
c2V0SW5MZWFmTm9kZSgpOworICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGxhc3QpIHsKKyAg
ICAgICAgICAgICAgICBpdGVyYXRvci5zZXRPZmZzZXRJbkxlYWZOb2RlKGl0ZXJhdG9yLm9mZnNl
dEluTGVhZk5vZGUoKSArIHJlbWFpbmluZyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlbWFpbmluZyAtPSBsYXN0OworICAgICAg
ICAgICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5MZWFmTm9kZShpdGVyYXRvci5vZmZzZXRJbkxlYWZO
b2RlKCkgKyBsYXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yLmluY3JlbWVudCgp
OworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsgICAgCit9CisKK3ZvaWQgU3BlbGxDaGVja2Vy
OjpkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5nUmVzdWx0
PiYgcmVzdWx0cykKK3sKKyAgICBpZiAoIWlzVmFsaWQoc2VxdWVuY2UpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIW1fcmVxdWVzdE5vZGUtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgY2xl
YXJSZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnQgc3RhcnRPZmZz
ZXQgPSAwOworICAgIFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBQb3NpdGlvbihtX3JlcXVlc3RO
b2RlLCAwKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgaWYgKHJlc3VsdHNbaV0udHlwZSgpICE9IERvY3VtZW50TWFya2VyOjpTcGVs
bGluZyAmJiByZXN1bHRzW2ldLnR5cGUoKSAhPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcikKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIFRvIGF2b2lkIG1vdmluZyB0aGUgcG9z
aXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUgZ2l2ZW4gcmVzdWx0cyBhcmUgc29ydGVkIHdp
dGgKKyAgICAgICAgLy8gc3RhcnRPZmZzZXQgYXMgdGhlIG9uZXMgcmV0dXJuZWQgYnkgW05TU3Bl
bGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOl0uCisgICAgICAgIEFTU0VSVChzdGFy
dE9mZnNldCA8PSByZXN1bHRzW2ldLmxvY2F0aW9uKCkpOworICAgICAgICBpZiAoIWZvcndhcmRJ
dGVyYXRvcihzdGFydCwgcmVzdWx0c1tpXS5sb2NhdGlvbigpIC0gc3RhcnRPZmZzZXQpKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIFBvc2l0aW9uSXRlcmF0b3IgZW5kID0gc3RhcnQ7Cisg
ICAgICAgIGlmICghZm9yd2FyZEl0ZXJhdG9yKGVuZCwgcmVzdWx0c1tpXS5sZW5ndGgoKSkpCisg
ICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBVc2VycyBvciBKYXZhU2NyaXB0IGFwcGxp
Y2F0aW9ucyBtYXkgY2hhbmdlIHRleHQgd2hpbGUgYSBzcGVsbC1jaGVja2VyIGNoZWNrcyBpdHMK
KyAgICAgICAgLy8gc3BlbGxpbmdzIGluIHRoZSBiYWNrZ3JvdW5kLiBUbyBhdm9pZCBhZGRpbmcg
bWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAgLy8gSmF2
YVNjcmlwdCBhcHBsaWNhdGlvbnMsIHJldHJpZXZlIHRoZSB3b3JkcyBpbiB0aGUgc3BlY2lmaWVk
IHJlZ2lvbiBhbmQgY29tcGFyZSB0aGVtIHdpdGgKKyAgICAgICAgLy8gdGhlIG9yaWdpbmFsIG9u
ZXMuCisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1fcmVxdWVz
dE5vZGUtPmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOworICAgICAgICAvLyBGSVhNRTogVXNlIHRl
eHRDb250ZW50KCkgY29tcGF0aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KKyAgICAgICAgU3RyaW5n
IGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG1f
cmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24oKSwgcmVzdWx0c1tpXS5s
ZW5ndGgoKSk7CisgICAgICAgIGlmIChkZXN0aW5hdGlvbiA9PSBzb3VyY2UpCisgICAgICAgICAg
ICBtX3JlcXVlc3ROb2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihyYW5nZS5n
ZXQoKSwgcmVzdWx0c1tpXS50eXBlKCkpOworCisgICAgICAgIHN0YXJ0T2Zmc2V0ID0gcmVzdWx0
c1tpXS5sb2NhdGlvbigpOworICAgIH0KKworICAgIGNsZWFyUmVxdWVzdCgpOworfQorCisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9TcGVsbENo
ZWNrZXIuaCBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTIy
ZjBlMjMzMDAxNmY4M2Y2OTBhNDAwYjIyZWUxMjc5Yzg5ZjgwCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBTcGVsbENoZWNrZXJfaAorI2RlZmluZSBTcGVsbENoZWNrZXJfaAorCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBFZGl0b3JDbGllbnQ7CitjbGFzcyBGcmFtZTsKKworY2xh
c3MgU3BlbGxDaGVja2luZ1Jlc3VsdCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVj
a2luZ1Jlc3VsdChEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlID0gRG9jdW1lbnRNYXJr
ZXI6OlNwZWxsaW5nLCBpbnQgbG9jYXRpb24gPSAwLCBpbnQgbGVuZ3RoID0gMCkKKyAgICAgICAg
OiBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBtX2xvY2F0aW9uKGxvY2F0aW9uKQorICAgICAgICAs
IG1fbGVuZ3RoKGxlbmd0aCkKKyAgICB7CisgICAgfQorCisgICAgRG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfSAKKyAgICBpbnQgbG9jYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9CisgICAgaW50IGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKK3ByaXZhdGU6CisgICAgRG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGUgbV90eXBlOworICAgIGludCBtX2xvY2F0aW9uOworICAgIGludCBtX2xlbmd0aDsK
K307CisKK2NsYXNzIFNwZWxsQ2hlY2tlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2VyKEZyYW1lKiwgRWRpdG9yQ2xpZW50Kik7CisgICAg
flNwZWxsQ2hlY2tlcigpOworCisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25z
dDsKKyAgICBib29sIGNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSopIGNvbnN0OworICAgIGJv
b2wgaXNCdXN5KCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkgY29uc3Q7
CisgICAgYm9vbCBpc0NoZWNrYWJsZShOb2RlKikgY29uc3Q7CisgICAgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdGb3IoTm9kZSopOworICAgIHZvaWQgZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBW
ZWN0b3I8U3BlbGxDaGVja2luZ1Jlc3VsdD4mKTsKKworcHJpdmF0ZToKKyAgICBib29sIGluaXRS
ZXF1ZXN0KE5vZGUqKTsKKyAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworCisgICAgRnJhbWUqIG1f
ZnJhbWU7CisgICAgRWRpdG9yQ2xpZW50KiBtX2NsaWVudDsKKworICAgIFJlZlB0cjxOb2RlPiBt
X3JlcXVlc3ROb2RlOworICAgIFN0cmluZyBtX3JlcXVlc3RUZXh0OworICAgIGludCBtX3JlcXVl
c3RTZXF1ZW5jZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFNw
ZWxsQ2hlY2tlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBi
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IGExNWNlZTVhNWMwNWNmNjExOGI5
ZTU1NWYzZjdiNDMxYWYzMGY5OTEuLjNhZWI5YjJmYzJkMDdkN2E1MmQ5YWEzY2I4NzUyYTdhMmJj
NzIwZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00OTEsOCArNDkxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBWZWN0b3I8
U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpIHsgfQotCi0K
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBTdHJpbmcmKSB7IH0KIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaCBiL1dlYkNvcmUvcGFnZS9F
ZGl0b3JDbGllbnQuaAppbmRleCA2MWJkZDQxMTk1ODUyNjE4ODU0OGNiMjE4MTQ2NDMyMzUzOGFh
MTlkLi41NTc0ZWY5YjA4Mzc4ZDczN2M2Y2I0YzVmMzFhYjY2MzBhNGU2OWJkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViQ29yZS9wYWdlL0VkaXRvckNs
aWVudC5oCkBAIC02Niw2ICs2Niw3IEBAIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgS2V5Ym9h
cmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFNwZWxsQ2hlY2tlcjsK
IGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKQEAgLTIw
Miw2ICsyMDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3Jk
KGNvbnN0IFN0cmluZyYsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYp
ID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDdlOTIzMmY4N2Y2ODMwY2Q2MjM1ODM5NDAy
MTM4MmJkNzAzZTlkZmQuLjEzN2U3YjcyNWVlNmQ3MzNiMDRjMzRhMDVlMGQyOGY5M2I4NTY4YTcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcApAQCAtMTYwLDYgKzE2MCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdl
KiBwYWdlKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAsIG1fZnVsbFNjcmVlbkFQ
SUVuYWJsZWQoZmFsc2UpCiAjZW5kaWYKKyAgICAsIG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX21lbW9yeUluZm9FbmFibGVkKGZhbHNlKQogICAgICwg
bV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uKGZhbHNlKQogICAgICwgbV91c2VQcmVIVE1MNVBh
cnNlclF1aXJrcyhmYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggMWUzYzI4Nzg4M2U5NTllNzE3NjkyODliOWU0
YzdlMDk2OTM2MDU4Ny4uZGY2YWJmMmQ3ZWFhOTYxMjBlNGFlOGU2ZWI4ZjA0ZjM0ODNlZjljZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmgKQEAgLTMxOSw2ICszMTksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IGJvb2wgZnVsbFNjcmVlbkVuYWJsZWQoKSBjb25zdCAgeyByZXR1cm4gbV9mdWxsU2NyZWVuQVBJ
RW5hYmxlZDsgfQogI2VuZGlmCiAKKyAgICAgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChib29sIGZsYWcpIHsgbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCA9IGZsYWc7IH0KKyAgICAgICAgYm9vbCBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCgpIGNvbnN0ICB7IHJldHVybiBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
OyB9CisKICAgICAgICAgdm9pZCBzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sIGZsYWcpIHsgbV9t
ZW1vcnlJbmZvRW5hYmxlZCA9IGZsYWc7IH0KICAgICAgICAgYm9vbCBtZW1vcnlJbmZvRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVtb3J5SW5mb0VuYWJsZWQ7IH0KIApAQCAtNDIyLDYgKzQy
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgICAgIGJvb2wgbV9mdWxsU2NyZWVuQVBJRW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAg
Ym9vbCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOiAxOwogICAgICAgICBib29s
IG1fbWVtb3J5SW5mb0VuYWJsZWQ6IDE7CiAgICAgICAgIGJvb2wgbV9pbnRlcmFjdGl2ZUZvcm1W
YWxpZGF0aW9uOiAxOwogICAgICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6IDE7
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA1ZmY2Mjc1YzczNDdmNTkwOWM3YjI4ZDBhNzMxZTI1ZGI2ZjJlM2Ri
Li5iOGQxMGFjODNkYjU1M2ZhM2VmMWNmODBmN2VkZTNjOGI1OWU0NzU2IDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEg
c3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5o
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyk6CisKIDIwMTAtMTEtMTEgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9y
Q2xpZW50SW1wbC5oCmluZGV4IGIwNWE1OTI2YmY3MTEyODYxYzI1M2E0NmMyMzRhNmQ1YjdlMzM1
ZDcuLjhmZTYzNTY0NTE0ZDVhYjU3MTJkNmU2MGRmNzE4NTBlOGVhOTcwMWEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXVEY6OlZlY3RvcjxXVEY6OlN0cmlu
Zz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hl
Y2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiAgICAgLy8gU2hvd3MgdGhlIGZv
cm0gYXV0b2ZpbGwgcG9wdXAgZm9yIHxub2RlfCBpZiBpdCBpcyBhbiBIVE1MSW5wdXRFbGVtZW50
IGFuZAogICAgIC8vIGl0IGlzIGVtcHR5LiAgVGhpcyBpcyBjYWxsZWQgd2hlbiB5b3UgcHJlc3Mg
dGhlIHVwIG9yIGRvd24gYXJyb3cgaW4gYQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cgYi9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBiYjJjZjc5NGFhMjJhODE1NjIwNjFmMjg4
OGExZTM1ZDI2Mjc3MzU1Li40NjAwMDk3OTdkMjM0MDg2ZWFjOTAzZjgzOGVjMmY0YTUzYjdjODZl
IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZWZsL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0
YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRk
ZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKyAgICAgICAgCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRF
Zmw6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMS0xNiAgTGVhbmRybyBQZXJl
aXJhICA8bGVhbmRyb0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZMXSBVbnJldmlld2Vk
LiBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5oIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aAppbmRleCA5ZjYwY2ZiYWRiNDJmMDdmMTM2YmU3ZDRlNzljNDIwOTQ0MzhkMWIyLi5mMTY4N2Y3
YjNlYjlkNGIxMzQ2YjQ3MTExNjE3MGQwMTJlMThmY2EyIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTExMyw2ICsxMTMsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFdURjo6VmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0SW5wdXRNZXRo
b2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5h
YmxlZCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6
OlNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgog
ICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDQ2MTE3NzVkY2Y4YmQwYTYyOWI5NzA2OGMy
ZmUwOTRkYTk0NjE4MjMuLjk4ZDkyMGQ3NmQwMWM0YTJlMTg2OGJlNDI5ZTdkMmVmZTgxNzk1OTAg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRh
QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRl
ZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmg6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6cmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTExLTE2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24u
CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5o
IGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCBmOWZm
ODJlMDBjNGEzMGY2NjJjMWRhMzNmYjNhNWE5MDExOWQzMDU5Li41NjgwMjdmYTZhMDA3NjhiZjJl
OTIwMWQ5YWM4ZDgyN2NhYmYwYTFiIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50R3RrLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwg
V1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1
dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6
U3RyaW5nJikge30KIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2Vi
VmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cgYi9XZWJLaXQvaGFpa3Uv
Q2hhbmdlTG9nCmluZGV4IDcyM2M5NTc0Y2VhMTJiNDgxOTQ3OTA3ZGIyOWMxYzM4MzIxNDFkYTgu
LjhjYmEyZTUxNzUxMzQ0NGVjYWQxMGIzZmIyOTIyMGZiNTBkZWQ4MzAgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9oYWlrdS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxs
Y2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGlt
cGxlbWVtbnRhdGlvbi4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhh
aWt1Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRIYWlrdTo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcpOgorCiAyMDEwLTExLTA4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmggYi9XZWJLaXQv
aGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50SGFpa3UuaAppbmRleCA1Y2JlYzI3MjIx
M2NjNmNlOWU3Y2ExMWQwZTA1ZTY1MmM2ZTc3Y2QxLi5mM2YxMDVlMzg4YjcxZWIzODRiMzJmNTdi
ODVjNzljMWVmNzBhM2JjIDEwMDY0NAotLS0gYS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50SGFpa3UuaAorKysgYi9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50SGFpa3UuaApAQCAtMTEwLDYgKzExMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wgZW5hYmxlZCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CiAKICAgICAgICAgYm9v
bCBpc0VkaXRpbmcoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cg
Yi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0YWNkN2U1Nzg5YWFkZmY1NjBjYTM0ZDcxMDAx
YWE4MjY1YzFmNWMxLi4xOTc0NjRmNjlmODJiMWE5MWEzNDYwNzg5Y2Y5MjAxMTNlN2E5Y2M5IDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM1IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBn
b29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQg
YXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIEFQSSB0byBXZWJFZGl0b3JDbGllbnQgdXNpbmcK
KyAgICAgICAgLVtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10uCisgICAg
ICAgIE5vdGUgdGhhdCBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIGlzIGEgc21hbGwgY2xh
c3MgdG8gcmVjZWl2ZQorICAgICAgICByZXF1ZXN0ZWQgc3BlbGwtY2hlY2tpbmcgcmVzdWx0LiBO
b3RlIHRoYXQgdGhpcyBmZWF0dXJlIGlzCisgICAgICAgIGRpc2FibGVkIGF0IGRlZmF1bHQuCisg
ICAgICAgIAorICAgICAgICBBbHNvIGFkZGVkIFtXZWJQcmVmZXJlbmNlcyBzZXRBc3luY2hyb25v
dXNTcGVsbENoZWNraW5nRW5hYmxlZDpdIHRvIAorICAgICAgICBlbmFibGUgdGhlIGZlYXR1cmUg
ZnJvbSBMYXlvdXRUZXN0Q29udHJvbGxlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5tbToKKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBpbml0V2l0aFNl
bmRlcjpXZWJDb3JlOjpzZXF1ZW5jZTpyZXN1bHRzOl0pOgorICAgICAgICAoLVtXZWJFZGl0b3JT
cGVsbENoZWNrUmVzcG9uZGVyIHBlcmZvcm1dKToKKyAgICAgICAgKHRvQ29yZVNwZWxsaW5nUmVz
dWx0KToKKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBXVEY6OldlYkNv
cmU6Ol0pOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNl
cyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBhc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6CisKIDIwMTAt
MTEtMTYgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCkBAIC0xODE1LDYgKzE4NDcsMzIgQEAKIAogMjAxMC0wOS0w
OCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAorICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNr
IHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDA5MgorCisgICAgICAgIEltcGxlbWVudGVkIGFzeW5jIHNwZWxsLWNoZWNrIEFQSXMg
b24gV2ViRWRpdG9yQ2xpZW50LgorICAgICAgICBUaGUgaW1wbGVtZW50YXRpb25zIGFyZSB1c2lu
ZyBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddCisgICAgICAgIHdoaWNo
IGlzIGF2YWlsYWJsZSBvbmx5IG9uIE1hYyBPUyAxMC42IG9yIGxhdGVyLgorICAgICAgICAKKyAg
ICAgICAgTm90ZSB0aGF0IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZ10g
Y291bGQgaW52b2tlCisgICAgICAgIHRoZSBjYWxsYmFjayBibG9jayBvbiBvbiBvZiB0aGVpciB3
b3JrZXIgdGhyZWFkLCBzbyB3ZSBuZWVkIHRvCisgICAgICAgIHJldHVybiB0aGUgcmVzdWx0IHRv
IHRoZSBtYWluIHRocmVhZCB3aGVyZSBXZWJDb3JlIGlzIHJ1bm5pbmcuCisgICAgICAgIEZvciB0
aGF0IHB1cnBvc2UsIHdlIG1hZGUgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBjbGFzcy4K
KyAgICAgICAgCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0
ZWQtdGV4dC0wMDEuaHRtbAorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRl
ciBpbml0V2l0aFNlbmRlcjpXZWJDb3JlOjpzZXF1ZW5jZTpyZXN1bHRzOl0pOiBBZGRlZC4KKyAg
ICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBwZXJmb3JtXSk6IEFkZGVkLgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6IEFkZGVk
LgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmg6CisKKzIwMTAtMDktMDggIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
VG9ueSBDaGFuZy4KIAogICAgICAgICBzcGVsbGluZyB1bmRlcmxpbmUgZ2V0cyBsb3N0IG9uIGJh
Y2tzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5k
ZXggMjNjZjMxMjliMzJkYzE3ZmE1Yjg5NGY1MDhlZGM2N2E0OGJhOGM3YS4uYTJhM2VlNWJiMjcw
ZmIyOGUyMDcyNDFjMTNmNTQ3ZWQ3MjNmN2ZjZSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzIsNiArMTMyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYsIFdURjo6VmVj
dG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1
dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9v
bCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpOwogI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNo
b3dDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywg
Y29uc3QgV1RGOjpTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVw
bGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNt
aXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25XYXNSZWplY3RlZE9yTm90KTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1t
IGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggOWVm
YTc2NjM4MTdhMDFiNDU0MzcxNzczNGQ4OGVlNTYwNWVhNDEyZi4uNDYwZWI4ZDc0YmU1YWUxOGRi
ZThmZDFlZGFhZDI5YjA2Nzk2ODI2MCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KQEAgLTYzLDYgKzYzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTGVn
YWN5V2ViQXJjaGl2ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
U3BlbGxDaGVja2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNh
dG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+CiAjaW1wb3J0IDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KQEAgLTkzNiwzICs5MzcsNzMgQEAgdm9pZCBX
ZWJFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkKIHZvaWQgV2ViRWRpdG9y
Q2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiB7CiB9CisKKyNpZiAhZGVmaW5lZChC
VUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKK0BpbnRl
cmZhY2UgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciA6IE5TT2JqZWN0Cit7CisgICAgV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiBfc2VuZGVyOworICAgIGludCBfc2VxdWVuY2U7CisgICAgUmV0
YWluUHRyPE5TQXJyYXk+IF9yZXN1bHRzOworfQorLSAoaWQpaW5pdFdpdGhTZW5kZXI6KFdlYkNv
cmU6OlNwZWxsQ2hlY2tlciopc2VuZGVyIHNlcXVlbmNlOihpbnQpc2VxdWVuY2UgcmVzdWx0czoo
TlNBcnJheSopcmVzdWx0czsKKy0gKHZvaWQpcGVyZm9ybTsKKy0gKFdURjo6VmVjdG9yPFdlYkNv
cmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KSBfY29yZVJlc3VsdHM7CitAZW5kCisKK0BpbXBsZW1l
bnRhdGlvbiBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyCistIChpZClpbml0V2l0aFNlbmRl
cjooV2ViQ29yZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSBy
ZXN1bHRzOihOU0FycmF5KilyZXN1bHRzCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAg
ICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgX3NlbmRlciA9IHNlbmRlcjsK
KyAgICBfc2VxdWVuY2UgPSBzZXF1ZW5jZTsKKyAgICBfcmVzdWx0cyA9IHJlc3VsdHM7CisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpcGVyZm9ybQoreworICAgIF9zZW5kZXItPmRpZENo
ZWNrKF9zZXF1ZW5jZSwgW3NlbGYgX2NvcmVSZXN1bHRzXSk7Cit9CisKK3N0YXRpYyBTcGVsbENo
ZWNraW5nUmVzdWx0IHRvQ29yZVNwZWxsaW5nUmVzdWx0KE5TVGV4dENoZWNraW5nUmVzdWx0KiBy
ZXN1bHQpCit7CisgICAgTlNUZXh0Q2hlY2tpbmdUeXBlIHR5cGUgPSBbcmVzdWx0IHJlc3VsdFR5
cGVdOworICAgIE5TUmFuZ2UgcmFuZ2UgPSBbcmVzdWx0IHJhbmdlXTsKKyAgICBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZSBjb3JlVHlwZTsKKyAgICBpZiAodHlwZSAmIE5TVGV4dENoZWNraW5n
VHlwZVNwZWxsaW5nKQorICAgICAgICBjb3JlVHlwZSA9IERvY3VtZW50TWFya2VyOjpTcGVsbGlu
ZzsKKyAgICBlbHNlIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcikKKyAgICAg
ICAgY29yZVR5cGUgPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcjsKKyAgICBlbHNlCisgICAgICAg
IGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnM7CisKKyAgICByZXR1cm4gU3Bl
bGxDaGVja2luZ1Jlc3VsdChjb3JlVHlwZSwgcmFuZ2UubG9jYXRpb24sIHJhbmdlLmxlbmd0aCk7
Cit9CisKKy0gKFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+KV9jb3Jl
UmVzdWx0cworeworICAgIFdURjo6VmVjdG9yPFdlYkNvcmU6OlNwZWxsQ2hlY2tpbmdSZXN1bHQ+
IGNvcmVSZXN1bHRzOworICAgIGNvcmVSZXN1bHRzLnJlc2VydmVDYXBhY2l0eShbX3Jlc3VsdHMu
Z2V0KCkgY291bnRdKTsKKyAgICBmb3IgKE5TVGV4dENoZWNraW5nUmVzdWx0KiByZXN1bHQgaW4g
X3Jlc3VsdHMuZ2V0KCkpCisgICAgICAgIGNvcmVSZXN1bHRzLmFwcGVuZCh0b0NvcmVTcGVsbGlu
Z1Jlc3VsdChyZXN1bHQpKTsKKyAgICByZXR1cm4gY29yZVJlc3VsdHM7Cit9CisKK0BlbmQKKyNl
bmRpZgorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiBzZW5kZXIsIGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0
ZXh0KQoreworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKQorICAgIE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZSgwLCB0ZXh0
Lmxlbmd0aCgpKTsKKyAgICBOU1J1bkxvb3AqIGN1cnJlbnRMb29wID0gW05TUnVuTG9vcCBjdXJy
ZW50UnVuTG9vcF07CisgICAgW1tOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHJl
cXVlc3RDaGVja2luZ09mU3RyaW5nOnRleHQgcmFuZ2U6cmFuZ2UgdHlwZXM6TlNUZXh0Q2hlY2tp
bmdBbGxTeXN0ZW1UeXBlcyBvcHRpb25zOjAgaW5TcGVsbERvY3VtZW50V2l0aFRhZzowIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcjpe
KE5TSW50ZWdlciwgTlNBcnJheSogcmVzdWx0cywgTlNPcnRob2dyYXBoeSosIE5TSW50ZWdlcikg
eworICAgICAgICAgICAgW2N1cnJlbnRMb29wIHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IocGVy
Zm9ybSkgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OltbW1dlYkVk
aXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgYWxsb2NdIGluaXRXaXRoU2VuZGVyOnNlbmRlciBzZXF1
ZW5jZTpzZXF1ZW5jZSByZXN1bHRzOnJlc3VsdHNdIGF1dG9yZWxlYXNlXQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmd1bWVudDpuaWwgb3JkZXI6MCBtb2RlczpbTlNBcnJheSBh
cnJheVdpdGhPYmplY3Q6TlNEZWZhdWx0UnVuTG9vcE1vZGVdXTsKKyAgICAgICAgfV07CisjZW5k
aWYKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApp
bmRleCA1YzZiNTMwMTAzNmRiM2E0ZDUyNTM4OWRjZGE1YjUzNjE4YzQ2OTU4Li45M2Y4M2ZjNTE1
YWE5NjcyZWYzM2VmMDYzM2RhMTNlNTM0NTJkYTU3IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC05OSw2ICs5OSw3IEBACiAjZGVmaW5lIFdl
YktpdFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRQYWdp
bmF0ZUR1cmluZ0xheW91dEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEROU1ByZWZldGNoaW5nRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWQiCiAjZGVmaW5l
IFdlYktpdEZ1bGxTY3JlZW5FbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEZ1bGxTY3JlZW5F
bmFibGVkIgorI2RlZmluZSBXZWJLaXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCIKICNk
ZWZpbmUgV2ViS2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0TWVtb3J5
SW5mb0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZFByZWZl
cmVuY2VLZXkgQCJXZWJLaXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQiCiAKZGlmZiAtLWdpdCBh
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAxYmFjYjg1MTdmMDc5NjA3YmE5MjMxMzgyY2VjMGJj
YmU5Y2QwZWFjLi5jZmM4OTlkOTA5NjFlM2MwNjgxYWM3MGE4ZTM2NGRkYTJiMDJiZTQ0IDEwMDY0
NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zNjcsNiArMzY3LDcgQEAgc3RhdGlj
IFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwg
IFdlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051
bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0RnVsbFNjcmVlbkVuYWJsZWRQcmVmZXJl
bmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRNZW1vcnlJbmZvRW5hYmxlZFByZWZl
cmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0
SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRVc2VQcmVIVE1MNVBhcnNlclF1aXJrc0tleSwK
QEAgLTEzOTMsNiArMTM5NCwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQg
PSBuaWw7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0RnVsbFNjcmVl
bkVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAodm9pZClzZXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZFByZWZlcmVu
Y2VLZXldOworfQorCistIChCT09MKWFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkCit7
CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogKyAodm9pZClzZXRXZWJLaXRM
aW5rVGltZVZlcnNpb246KGludCl2ZXJzaW9uCiB7CiAgICAgc2V0V2ViS2l0TGlua1RpbWVWZXJz
aW9uKHZlcnNpb24pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CmluZGV4IDJlZTA3ZDdlNTlkMDExMTBkMmQ1MzY0MGVlZmE2YzRlMzMzNDRkMGYuLjg5YjYyODhi
ZWJhMzg0YTEzNDViMDIzNDM5YzI0MDY4MDNjNTBkNmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTIyMSw2ICsyMjEsOSBAQCBleHRlcm4gTlNTdHJp
bmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNhdGlvbjsKIC0gKHZvaWQpc2V0RnVsbFNj
cmVlbkVuYWJsZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpZnVsbFNjcmVlbkVuYWJsZWQ7CiAKKy0g
KHZvaWQpc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZmxhZzsKKy0g
KEJPT0wpYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ7CisKIC0gKHZvaWQpc2V0VXNl
UHJlSFRNTDVQYXJzZXJRdWlya3M6KEJPT0wpZmxhZzsKIC0gKEJPT0wpdXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3M7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMDQ5ODU1NDBiNmFkZGZmNDQwMWRh
ZmJiZTQ5YmU3ZjEyNjRlMjBjOS4uZTM3OTI5MjRiOTY4NDZlMGIwYzE2YTRmOWM2NzBjYzBmMjI2
YTdkOSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTE1MDEsNiArMTUwMSwxMCBAQCBzdGF0aWMg
Ym9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQoKQogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBzZXR0aW5ncy0+c2V0RnVsbFNjcmVlbkVuYWJsZWQoW3ByZWZlcmVuY2VzIGZ1
bGxTY3JlZW5FbmFibGVkXSk7CiAjZW5kaWYKKyNpZiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdF
UikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKKyAgICAvLyBBc3luY2hyb25vdXMg
c3BlbGwgY2hlY2tpbmcgQVBJIGlzIGF2YWlsYWJsZSBmb3IgMTAuNiBvciBsYXRlci4KKyAgICBz
ZXR0aW5ncy0+c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoW3ByZWZlcmVuY2Vz
IGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkXSk7CisjZW5kaWYKICAgICBzZXR0aW5n
cy0+c2V0TWVtb3J5SW5mb0VuYWJsZWQoW3ByZWZlcmVuY2VzIG1lbW9yeUluZm9FbmFibGVkXSk7
CiAgICAgc2V0dGluZ3MtPnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChbcHJlZmVyZW5jZXMg
aHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3MtPnNldFVzZVByZUhUTUw1
UGFyc2VyUXVpcmtzKFtzZWxmIF9uZWVkc1ByZUhUTUw1UGFyc2VyUXVpcmtzXSk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAyZjE0
YmI0ZDY4NWNhYTFiZjRlMDI1MzQwMTY2OWE2OGU4YjhiODMxLi4zNWU3ZjAxYzJmYzhkMjgzYWJk
ZTQ3Mzk1MzE1ODBhYzVmMDYyMmU2IDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3Rl
ZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50UXQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMS0xNiAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmgKaW5kZXggN2Q5OWQyMjJkODM2ZjEwN2Y2YTAzZTY3YTgyNTMxNWFjNTVhZTNiZi4uYmY1
NDMzNGNhYzYwYjBjZDAzNWM5ZGI5M2U4ZGI5NGZiZjBkMzA3NiAxMDA2NDQKLS0tIGEvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKKysrIGIvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTEwNyw2ICsxMDcsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxT
dHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3Rh
dGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQp
OworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIq
LCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CiAKICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9n
CmluZGV4IDNmZDU4ZWMxMTRkMThiNTEzMDE2MmRkYTA3ZmY3NjJiYWU3Nzk1NTYuLmZmMTUwYTA2
OWM2MzE5MzRiNWM3YjE3ZTQ2MWJjNjVjZDZkYWM5ODggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5v
dCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9u
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAg
IChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMS0x
NiAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaAppbmRleCA4YmU2ZGU5MGMyMWY0ZTE5ZWZjMmZmZmIzYTdhZGU0Y2ZkNDhlZTMzLi5k
Yzk2YWI0ODk2NjEyZGZiMGY0MzRiZTA1MzhlYzI1Y2YyNGMxYzZjIDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25z
dCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKaW5kZXggMGI5OWJmNzk1MTI0OGM1MzQ1MzM3YzhkZTQxZTBjMThhODBmYWY3NS4uNDY1MDU0
M2I2NDI1MDdiNjQ0ZGMzOWQ1NjAwNTJkNjI2NzgwODY4YSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBk
b2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1u
dGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaDoK
KyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
CisKIDIwMTAtMTEtMTMgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGFmdGVyIHI3MTU0MS4KZGlmZiAtLWdpdCBh
L1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oIGIvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKaW5kZXggYmU4NWIzZmE0
MzM0NTFkYjQ2NTlkZDQ1YzI0YzM5NWFhYTYzOTJiMC4uZDE2NGRlY2E5MWMwZjM0ODIzOWExNDA2
YmQ0Nzg2YWM4OGIwNjBmNiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFdpbkNFLmgKKysrIGIvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFdpbkNFLmgKQEAgLTEwMCw2ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiwgV1RGOjpWZWN0b3I8
V1RGOjpTdHJpbmc+Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRl
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCk7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcios
IGludCwgY29uc3QgV1RGOjpTdHJpbmcmKSB7fQogCiBwcml2YXRlOgogICAgIFdlYlZpZXcqIG1f
d2ViVmlldzsKZGlmZiAtLWdpdCBhL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9XZWJLaXQvd3gvQ2hh
bmdlTG9nCmluZGV4IGUwZjBjZDFkYjlmMTM0MzA2MmVhN2E5OGZlZGJhYjI5ZTFkYTkyYWIuLmFj
MTg4NDMzZGY5YzljMjliZWZkOGJkMTQ4ZjhiZjZlYzIwZDRmNzcgMTAwNjQ0Ci0tLSBhL1dlYktp
dC93eC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9l
cyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRh
dGlvbi4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisK
IDIwMTAtMTEtMDggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oIGIvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9y
Q2xpZW50V3guaAppbmRleCBiZTVjOThhZjI5N2RlMTBlMmY2ZTU2Njg1ZjJlZjYwNjZlOWQyZmVm
Li5hMjYyYWQ1OTE0MjJmMjRlNjY5ZWUxYTdjYTVjZTY4NGQyNGYyOTFiIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgKQEAgLTExMiw2ICsxMTIsNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAg
dmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwg
aW50LCBjb25zdCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgUGFnZSogbV9wYWdl
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA1ZjdlMWVhNzMzOWNhOTdkNDVhZjM4NjdkMTY2NGUwMTQ4MTkzZTQ3Li43MjA2ZmJhYzE2NTdi
NTAwNzMyZWJkZDg1OWFhNWI2NmQ3NGM0ZDU0IDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTEwLTI4ICBN
T1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFz
dGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwog
MjAxMC0xMS0xNiAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDEzNTk1YjAzMmI1MmJi
MGEzMDY3ZDhhMTM3ZTYzYWFiYjNlNDdiYzUuLjgwMTg3ODRjMTJkNzYxYzlkNjA2OGQ5NjBlZjYy
YWRmOGY5NzFhYTUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00MDgsNCArNDA4LDkgQEAgdm9pZCBXZWJFZGl0
b3JDbGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2Vi
Q29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggNjJh
NWVkMmFlY2VkNzMwZTM2Nzg4N2U0MTk5MjdjNmEyOWNjM2M5Mi4uMTRmYjAxODQzMTBiNTJiZmZj
MmRkOGY1ZjY0MjYxNjA3YjVlM2I1YiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTMzLDYgKzEzMyw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYsIFZl
Y3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0
aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVu
YWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAjaWYgUExBVEZPUk0o
TUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fTEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZp
cnR1YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbElu
Zm86OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVw
bGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25XYXNSZWplY3RlZE9yTm90
KTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZwppbmRleCAyMjc0ZmVlZDk3YzMzNjU1NjJkZDg5MzEzODc0YWE4ZGQ4MTk0NmVhLi4wYjdl
MGUwMjU2NzBhNGMwYmZiYWNhMWMyMjI2NjBiYjVlM2QxMjNjIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBk
b2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQorICAgICAgICB0byBj
b250cm9sIHRoZSBzZXR0aW5nLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWRDYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVu
Y3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9s
bGVyKToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRl
c3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lz
dGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKToKKwogMjAxMC0xMS0xNiAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOTYxOTM4
OTcyZDhmMjNiOGMzOGI2NDg0ZGI1YTMxOWVkYjVmN2RhYy4uOTVlYWFmNmRiMTU1NDA1OWQ0Yzcz
YzdkMGVkODc1NmNhNzE5ODRjNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ4Myw2ICsxNDgzLDE2IEBAIHN0YXRp
YyBKU1ZhbHVlUmVmIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlv
biwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpT
VmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBpZiAo
YXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOworICAgIGNvbnRyb2xsZXItPnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7CisgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBzaG93
V2ViSW5zcGVjdG9yQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVz
dENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMTk5OCw2
ICsyMDA4LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRp
Y0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFdpbmRvd0lzS2V5Iiwgc2V0V2luZG93SXNLZXlD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkIiwgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldFhTU0F1ZGl0b3JFbmFibGVkIiwgc2V0WFNTQXVkaXRvckVuYWJsZWRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCIsIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2hvd1dlYkluc3BlY3RvciIsIHNob3dXZWJJbnNwZWN0b3JDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0T25zY3JlZW4iLCB0ZXN0T25zY3JlZW5DYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0UmVwYWludCIsIHRlc3RSZXBhaW50Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCmluZGV4IGI2MTg2MGJjNjQ2NTI1ZmM3MDdkMTQ2MjA3MDQ2NDBiNWRjYzgzYzQu
LmExOWEwNTVmOTVjZTljYTlhZGQ5NmI4OTUyN2ZkOWZmMjhmMzJmMDggMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjcwLDYg
KzI3MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGdlb2xvY2F0aW9uUGVybWlzc2lvbigpIGNvbnN0
IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uOyB9CiAKICAgICB2b2lkIHNldERldmVs
b3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAgICB2
b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGluZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCAzODZiYmEz
NDA0NDJmZDY4OGEwNDliYmY0NjhhMTI4OGYwZTg3MzdkLi4xZWNhYjA4NGVlN2Q0N2E4YzcyYTdj
NGMwZjY1ZDZmMjAyNzM3ODIwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNjYsNiAr
MTY2LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RT
aGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051
bGxPblJlZGlyZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaWxsU2VuZFJlcXVlc3RS
ZXR1cm5zTnVsbE9uUmVkaXJlY3QpOwogICAgIGJpbmRNZXRob2QoInNldFdpbmRvd0lzS2V5Iiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleSk7CiAgICAgYmluZE1ldGhvZCgi
c2V0WFNTQXVkaXRvckVuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFhTU0F1ZGl0
b3JFbmFibGVkKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNob3dXZWJJbnNwZWN0b3IiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IpOwogICAgIGJpbmRNZXRob2QoInNpbXVs
YXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzaW11
bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayk7CiAgICAgYmluZE1ldGhvZCgic3VzcGVuZEFu
aW1hdGlvbnMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKTsKQEAg
LTYxOSw2ICs2MjAsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWx3YXlzQWNj
ZXB0Q29va2llcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW4KICAgICByZXN1bHQtPnNl
dE51bGwoKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3NoZWxsLT5zaG93RGV2VG9vbHMoKTsKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCmluZGV4IDYyZjQ3M2M3ZTkxMGUzZDc3Y2EwNmNiNTRiNTQ5MzEwYTAzN2QyNGIu
LjI4NzgzYTQyYzljOTMyYWJmZWNlYmI2YmE1NmIwN2JmZWI3ZTJhZGYgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaApAQCAtMTUxLDYgKzE1MSw5IEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRoZSBj
b29raWUgcG9saWN5IGZyb20gdGhlIGRlZmF1bHQgdG8gYWxsb3cgYWxsIGNvb2tpZXMuCiAgICAg
dm9pZCBzZXRBbHdheXNBY2NlcHRDb29raWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKIAorICAgIC8vIENoYW5nZXMgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgZmxh
ZyBvbiB0aGUgc2V0dGluZ3MuCisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKICAgICAvLyBT
aG93cyBEZXZUb29scyB3aW5kb3cuCiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9y
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CmluZGV4IDM5ZmIxMTY1MDY2ODAyYTgxNmEzNTRmYWFhZTFhMGIwOWQwOTQ3ODcuLmU4MWRkMjUy
MTZiMTM1NzgzMzc2ODFmM2NhZjE2ZGYzMWFlNmE5MjQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApA
QCAtNzM0LDYgKzczNCwxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBnX29iamVjdF9zZXQod2ViU2V0dGlu
Z3MsICJlbmFibGUtZGV2ZWxvcGVyLWV4dHJhcyIsIGVuYWJsZWQsIE5VTEwpOwogfQogCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZChib29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAgV2ViS2l0V2ViVmll
dyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5k
ZXggZjdhZDA0M2YyZTM5NzdiZTQ3ZjcxMmE4NWFhYTVmOGExNzBlNjgzNS4uZjQxOTc1MGI4Y2Zl
NmYzYjQ3ODQyYjVjNmI4Y2Q3NmM4YzVhYjIwNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNDYwLDYgKzQ2MCw3IEBAIHN0YXRp
YyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNl
cyBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNl
cyBzZXRXZWJHTEVuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRVc2VQcmVIVE1MNVBh
cnNlclF1aXJrczpOT107CisgICAgW3ByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkOk5PXTsKIAogICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRIVFRQ
Q29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5Ok5TSFRUUENvb2tpZUFjY2VwdFBv
bGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluXTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4
IDAxOTEwODQ1ODViOWVjNmJkYjAxYzg4NWRiY2E5NWQ0NjliMDliZmEuLmE3Y2Y2YWY5Mjg0MWZh
OGU4MWQ2Yjc5MmUwNTNjZTRlYzA3MThjMDggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTcwOSw2
ICs3MDksMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZlcmVu
Y2VzXSBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkOmVuYWJsZWRdOwogfQogCit2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29s
IGVuYWJsZWQpCit7CisgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZlcmVuY2VzXSBzZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDplbmFibGVkXTsKK30KKwogdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAgW1tbbWFpbkZyYW1l
IHdlYlZpZXddIGluc3BlY3Rvcl0gc2hvdzpuaWxdOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCA3MTM1
YTFhODRjY2NmNzY4ZGJjMDIzNmM5ZWNiZGJhMzEzYzk5NjQ1Li4xZjc0MDg0ODI3MjNmMjM2Mzcy
NjgwN2U2ZWQzNjA2YzFkNzU4YTAzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtMzgzLDYgKzM4Mywx
MSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVk
KGJvb2wgZW5hYmxlZCkKICAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRBdHRy
aWJ1dGUoUVdlYlNldHRpbmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCBlbmFibGVkKTsKIH0K
IAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAgIG1fZHJ0
LT53ZWJQYWdlKCktPnNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkRldmVs
b3BlckV4dHJhc0VuYWJsZWQsIHRydWUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDVjMTc2MjRlOWVjMzIy
ZDliMzlhNjI0NTVjOTBhOGY4OWM4YWYzNDcuLmNmMDFjYTkyN2NiZTNmNmM4ZTFiZGU1OTdmMjIw
MjhkNGE2NThkMTEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJsaWMgc2xv
dHM6CiAgICAgUVN0cmluZyBkZWNvZGVIb3N0TmFtZShjb25zdCBRU3RyaW5nJiBob3N0KTsKICAg
ICB2b2lkIGR1bXBTZWxlY3Rpb25SZWN0KCkgY29uc3Qge30KICAgICB2b2lkIHNldERldmVsb3Bl
ckV4dHJhc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAgICB2b2lk
IGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKGxv
bmcgY2FsbElkLCBjb25zdCBRU3RyaW5nJiBzY3JpcHQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5k
ZXggMzg2ZjExOGJlZjlkNWNhZGIzMmVlOTA1ODI2YThmMzJlZThkOWZhNi4uYWVkN2RjOWIxOTRh
ZGFkMzljMjhhMzI2OWM1M2NlMDA1NzI1YWQzNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0x
MTYyLDYgKzExNjIsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgcHJlZnNQcml2YXRlLT5zZXREZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hv
d1dlYkluc3BlY3RvcigpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJX
eC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxl
cld4LmNwcAppbmRleCAzMjYxNGMxMTMzZGRmOGFhZDc3ZWZiMGQxZDRhNmIzMGU0MDExMDhiLi42
OWUwZmM0NTljMjE3NmI2NGJkOGY5MmNjYWI4NzE1NGUwMjY1M2NiIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNw
cApAQCAtNTI4LDMgKzUyOCw4IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW50IHBhCiAgICAgLy8gRklY
TUU6IEltcGxlbWVudAogICAgIHJldHVybiAwOwogfQorCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76023</attachid>
            <date>2010-12-09 01:05:11 -0800</date>
            <delta_ts>2010-12-09 14:16:00 -0800</delta_ts>
            <desc>Updated to ToT</desc>
            <filename>bug-40092-20101209180509.patch</filename>
            <type>text/plain</type>
            <size>79373</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmN2IxNzgzMzMxNmFjMTBlZmE1ZjBlMzVmN2NmODZiZGQwNzg3YTRhLi5iNGU5NjIz
NWI5MGUzMWU1MGQyM2Y5ZDc2NjhmZDdmMGEzMDFhMDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2Vz
IG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc2NyaXB0
LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanM6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtdGlnZXIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMC0xMi0wOCAgUGF2ZWwgRmVsZG1hbiAg
PHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQuIFVwZGF0ZWQg
Q2hyb21pdW0gZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zY3JpcHQtdGVzdHMvc3BlbGxjaGVjay1wYXN0ZS5qcyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDEzZDJiMDk0NmMxMWMzNjMwMDliZThkMzc4MTVmYWMxNzE1N2EwYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL3NwZWxsY2hl
Y2stcGFzdGUuanMKQEAgLTAsMCArMSw5OCBAQAorCitkZXNjcmlwdGlvbignRm9yIEJ1ZyA0MDA5
MjogU3BlbGwgY2hlY2tpbmcgZm9yIHBhc3RlZCB0ZXh0LicpOworCitsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKK3ZhciB0ZXN0Um9vdCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodGVzdFJvb3QsIGRvY3Vt
ZW50LmJvZHkuZmlyc3RDaGlsZCk7CisKK3ZhciB0ZXN0VGV4dEFyZWEgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJ0ZXh0YXJlYSIpOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFRleHRBcmVh
KTsKKwordmFyIHRlc3RJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cit0
ZXN0SW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwgInRleHQiKTsKK3Rlc3RSb290LmFwcGVuZENo
aWxkKHRlc3RJbnB1dCk7CisKK3ZhciB0ZXN0RWRpdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKK3Rlc3RFZGl0YWJsZS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIs
ICJ0cnVlIik7Cit0ZXN0Um9vdC5hcHBlbmRDaGlsZCh0ZXN0RWRpdGFibGUpOworCit2YXIgdGVz
dFNvdXJjZVBsYWluID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cit0ZXN0U291cmNl
UGxhaW4uaW5uZXJIVE1MID0gImZvbyBiYXIiOwordGVzdFJvb3QuYXBwZW5kQ2hpbGQodGVzdFNv
dXJjZVBsYWluKTsKKwordmFyIHRlc3RTb3VyY2VEZWNvcmF0ZWQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKK3Rlc3RTb3VyY2VEZWNvcmF0ZWQuaW5uZXJIVE1MID0gImZvPGI+byBi
YTwvYj5yIjsKK3Rlc3RSb290LmFwcGVuZENoaWxkKHRlc3RTb3VyY2VEZWNvcmF0ZWQpOworCit2
YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOworCit2YXIgdGVzdHMgPSBbXTsKKworZnVu
Y3Rpb24gZG9uZSgpCit7CisgICAgdmFyIG5leHQgPSB0ZXN0cy5zaGlmdCgpOworICAgIGlmIChu
ZXh0KQorICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQobmV4dCwgMCk7CisgICAgdGVz
dFJvb3Quc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeU1hcmtlcihub2RlLCBleHBlY3RlZE1h
cmtlZCkKK3sKKyAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgbm9k
ZSBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgbm9kZS5mb2N1cygp
OworICAgIH0gZWxzZSB7CisgICAgICAgIHNlbC5zZWxlY3RBbGxDaGlsZHJlbihub2RlKTsKKyAg
ICB9CisgICAgcmV0dXJuIGxheW91dFRlc3RDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKGV4
cGVjdGVkTWFya2VkWzBdLCBleHBlY3RlZE1hcmtlZFsxXSk7Cit9CisKK2Z1bmN0aW9uIHBhc3Rl
QW5kVmVyaWZ5KHNvdXJjZSwgZGVzdCwgZXhwZWN0ZWRNYXJrZWQpCit7CisgICAgc2VsLnNlbGVj
dEFsbENoaWxkcmVuKHNvdXJjZSk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsK
KyAgICBpZiAoZGVzdCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgZGVzdCBpbnN0YW5j
ZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKKyAgICAgICAgZGVzdC52YWx1ZSA9ICIiOworICAg
ICAgICBkZXN0LmZvY3VzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVzdC5pbm5lckhUTUwg
PSAiIjsKKyAgICAgICAgc2VsLnNlbGVjdEFsbENoaWxkcmVuKGRlc3QpOworICAgIH0KKyAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgiUGFzdGUiKTsKKworICAgIHZhciBucmV0cnkgPSAxMDsKKyAg
ICB2YXIgbnNsZWVwID0gMTsKKyAgICBmdW5jdGlvbiB0cmlhbCgpIHsgCisgICAgICAgIHZhciB2
ZXJpZmllZCA9IHZlcmlmeU1hcmtlcihkZXN0LCBleHBlY3RlZE1hcmtlZCk7CisgICAgICAgIGlm
ICh2ZXJpZmllZCkgeworICAgICAgICAgICAgdGVzdFBhc3NlZChkZXN0LnRhZ05hbWUgKyAiIGhh
cyBhIG1hcmtlciBvbiAnIiArIHNvdXJjZS5pbm5lckhUTUwgKyAiJyIpOworICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbnJldHJ5
LS07CisgICAgICAgIGlmICgwID09IG5yZXRyeSkgeworICAgICAgICAgICAgdGVzdEZhaWxlZChk
ZXN0LnRhZ05hbWUgKyAiIHNob3VsZCBoYXZlIGEgbWFya2VyIG9uIGZvciAnIiArIHNvdXJjZS5p
bm5lckhUTUwgKyAiJyIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBuc2xlZXAgKj0gMjsKKyAgICAgICAgd2lu
ZG93LnNldFRpbWVvdXQodHJpYWwsIG5zbGVlcCk7CisgICAgfTsKKyAgICB0cmlhbCgpOworfTsK
KworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKKwordGVzdHMu
cHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnkodGVzdFNvdXJjZVBsYWluLCB0ZXN0SW5w
dXQsIFswLCAzXSk7IH0pOwordGVzdHMucHVzaChmdW5jdGlvbigpIHsgcGFzdGVBbmRWZXJpZnko
dGVzdFNvdXJjZURlY29yYXRlZCwgdGVzdElucHV0LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2go
ZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRlc3RTb3VyY2VQbGFpbiwgdGVzdFRleHRBcmVh
LCBbMCwgM10pOyB9KTsKK3Rlc3RzLnB1c2goZnVuY3Rpb24oKSB7IHBhc3RlQW5kVmVyaWZ5KHRl
c3RTb3VyY2VEZWNvcmF0ZWQsIHRlc3RUZXh0QXJlYSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNo
KGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0ZXN0U291cmNlUGxhaW4sIHRlc3RFZGl0YWJs
ZSwgWzAsIDNdKTsgfSk7Cit0ZXN0cy5wdXNoKGZ1bmN0aW9uKCkgeyBwYXN0ZUFuZFZlcmlmeSh0
ZXN0U291cmNlRGVjb3JhdGVkLCB0ZXN0RWRpdGFibGUsIFswLCAyXSk7IH0pOyAvLyBUbyBjaGVj
ayAiZm8iIHBhcnQgb2YgZm9vLgorZG9uZSgpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVj
ay1wYXN0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlM2E4NzMwYjUyZjI0ZWM0NDVi
YmVlYTQyMzVmNGZkNTg4YTFiYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUg
QEAKK0ZvciBCdWcgNDAwOTI6IFNwZWxsIGNoZWNraW5nIGZvciBwYXN0ZWQgdGV4dC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorUEFTUyBJTlBVVCBoYXMgYSBtYXJrZXIgb24gJ2ZvbyBiYXIn
CitQQVNTIElOUFVUIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCitQQVNTIFRFWFRB
UkVBIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicKK1BBU1MgVEVYVEFSRUEgaGFzIGEgbWFya2Vy
IG9uICdmbzxiPm8gYmE8L2I+cicKK1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAnZm9vIGJhcicK
K1BBU1MgRElWIGhhcyBhIG1hcmtlciBvbiAnZm88Yj5vIGJhPC9iPnInCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmJhYmEwYzM0NTczNDUzMzMwODVjOGRlMGQxYjhkZWMxMWMyMDk4ZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1s
CkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3NwZWxsY2hlY2stcGFzdGUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggYmQxZTg3Y2Jj
ZjliZTg0ZmFiMjA1MWVmMjYxZTY0MTVjZjQ5MDI4ZS4uODUyNGNkNGY5YWUyZTZhZTlkNTczOTEy
ZmJjZTg3MTJjODcyYzkxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMjQ4NSw2ICsyNDg1LDkgQEAgQlVHV0s0MTMx
MSBXSU4gTElOVVggOiBmYXN0L2JvcmRlcnMvYm9yZGVyUmFkaXVzRG91YmxlMDcuaHRtbCA9IElN
QUdFCiBCVUdXSzQxMzExIFdJTiBMSU5VWCA6IGZhc3QvYm9yZGVycy9ib3JkZXJSYWRpdXNEb3Vi
bGUwOC5odG1sID0gSU1BR0UKIEJVR1dLNDEzMTEgV0lOIExJTlVYIDogZmFzdC9ib3JkZXJzL2Jv
cmRlclJhZGl1c0RvdWJsZTA5Lmh0bWwgPSBJTUFHRQogCisvLyBOZWVkIHRvIGltcGxlbWVudCBF
ZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKCkKK0JVR1dLNDE0MjMgOiBlZGl0
aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbCA9IFRJTUVPVVQKKwogLy8gRmxha3kg
dGVzdHMuCiBCVUc0NDM0NSBMSU5VWCA6IHN2Zy96b29tL3RleHQvem9vbS1oaXhpZS1taXhlZC0w
MDkueG1sID0gSU1BR0UgUEFTUwogQlVHNDQzNDYgTElOVVggOiBzdmcvem9vbS9wYWdlL3pvb20t
aGl4aWUtbWl4ZWQtMDA5LnhtbCA9IElNQUdFIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQK
aW5kZXggMTQxMGVhMGFlZDJlNzVjYzMxODYyMzBjY2UzZTQxYTFiMDI1YzMzYS4uZTJlN2Q1MjFk
Nzk2OTU3NGE3ODUxYWRlZmI2ZTYwZGJmNjE1NjM5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKQEAgLTk3Niw2ICs5NzYsNyBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFj
ZS1iZXR3ZWVuLWxpbmVzLmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbGluZWJyZWFr
Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYXR0cmlidXRlLWNoYW5nZS5odG1sCiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWF0dHJpYnV0ZS1hdC1jaGlsZC5odG1sCitlZGl0aW5n
L3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUuaHRtbAogZWRpdGluZy9zdHlsZS81MDY1OTEwLmh0
bWwKIGVkaXRpbmcvc3R5bGUvYXBwbGUtc3R5bGUtZWRpdGFibGUtbWl4Lmh0bWwKIGVkaXRpbmcv
c3R5bGUvYmxvY2stc3R5bGUtMDAxLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1sZW9wYXJkL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbGVvcGFy
ZC9Ta2lwcGVkCmluZGV4IGM0NjY0MTM1NTQ2NTcxMjYxODNjNGZjYWIyMmZmNmExNzA5ZDk5NDYu
LjNjMTRjYWIzNjExOTFjN2FmZDhkZGFmZTJmYzY2NzM2MzdlOTcyNDIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1sZW9wYXJkL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLWxlb3BhcmQvU2tpcHBlZApAQCAtODgsNiArODgsOSBAQCBmYXN0L3RleHQv
aHlwaGVuYXRlLWxvY2FsZS5odG1sCiAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzUyNzEKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tc2Vla2FibGUtc3RhbGwu
aHRtbAogCisjIEF2YWlsYWJsZSAxMC42IG9yIGxhdGVyCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
Y2hlY2stcGFzdGUuaHRtbAorCiAjIERpc2FibGUgdGVzdHMgd2hpY2ggc3RhcnRlZCBmYWlsaW5n
IGFmdGVyIHI2Njk2MQogIyBGYWlsdXJlcyBsb29rIGxpa2UgYW4gdW5kZXJseWluZyBwbGF0Zm9y
bSBpc3N1ZQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU1NDYK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy10aWdlci9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKaW5kZXggYTJiYWQ5ZmVjMThjMDIz
OTYyMWU1MmNjNjQxOTgxYjBhNTA1NWJhOS4uMjRmMzI1MGY1YTFmZDY1NzA5YzFkMTA2MDBjMmIw
NDY2ZjUxZTI5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXRpZ2VyL1NraXBwZWQKQEAgLTIw
OSw2ICsyMDksOSBAQCBmYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cuaHRtbAogIyBMb2Fk
aW5nIGZhaWxzIG9uIFRpZ2VyIHdpdGggZXJyb3IgLTEwMTIgYWZ0ZXIgYXNraW5nIE5TVVJMQ29u
bmVjdGlvbiB0byBjb250aW51ZSB3aXRob3V0IGNyZWRlbnRpYWxzLgogaHR0cC90ZXN0cy9taXNj
LzQwMS1hbHRlcm5hdGl2ZS1jb250ZW50LnBocAogCisjIEF2YWlsYWJsZSBvbmx5IDEwLjYgb3Ig
bGF0ZXIKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgRGlzYWJs
ZSBzcGVsbGluZyB0ZXN0cyBmb3IgYXV0b2NvcnJlY3Rpb24gcGFuZWwKIHBsYXRmb3JtL21hYy9l
ZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWNvbnRyYWN0aW9uLmh0bWwKIHBsYXRmb3Jt
L21hYy9lZGl0aW5nL3NwZWxsaW5nL2F1dG9jb3JyZWN0aW9uLWRlbGV0ZS5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKaW5kZXggNmRhMGViNDU5OTQ1Zjk5ZTk2MGNlOGI2MWRh
NTJjODIwMWEyMDIyNi4uMWQwZDU0MWYwNjcyNmE5Mjg1NDdlNzU2YWNkZjE4N2U2NTQwYWVhNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZApAQCAtMTY3LDYgKzE2Nyw3IEBAIGVk
aXRpbmcvc2VsZWN0aW9uL3RyaXBsZS1jbGljay1pbi1wcmUuaHRtbAogZWRpdGluZy9zZWxlY3Rp
b24vdXNlci1kcmFnLWVsZW1lbnQtYW5kLXVzZXItc2VsZWN0LW5vbmUuaHRtbAogZWRpdGluZy9z
ZWxlY3Rpb24vd29yZC1ncmFudWxhcml0eS5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL2NvbnRleHQt
bWVudS1zdWdnZXN0aW9ucy5odG1sCitlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stcGFzdGUu
aHRtbAogZWRpdGluZy91bmRvL3VuZG8tZGVsZXRlV29yZC5odG1sCiBlZGl0aW5nL3VuZG8vdW5k
by1zbWFydC1kZWxldGUtcmV2ZXJzZWQtc2VsZWN0aW9uLmh0bWwKIGVkaXRpbmcvdW5kby91bmRv
LXNtYXJ0LWRlbGV0ZS13b3JkLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDUxNDUy
ODNkN2ExNjZhMGZjOTVlNjVmZGRkYjg2MGZhMzdiMGI2ODkuLjlmODAwODlhZmE5N2E1NWRmYjA5
YTM3Mjk5ZGYxZDJlYmNhODk3ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjEwNCw2
ICsyMTA0LDkgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1s
aW5lcy5odG1sCiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWF0dHJpYnV0ZS1jaGFuZ2UuaHRt
bAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1hdHRyaWJ1dGUtYXQtY2hpbGQuaHRtbAogCisj
IEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBpcyBub3QgaW1wbGVtZW50
ZWQKK2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1sCisKICMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwogIyBmYWlsaW5nIGVkaXRpbmcvc3R5bGUgdGVzdHMKICMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBmNzA2NTYzNzIwN2Fk
MDg1MzIxMGU5N2VlZjY5OTA3MWFiMjhjMjE0Li45YzA0MDNhYTgxNzdhNDAyMTFhZmEyZDUwMzJk
OWI0YmYzMTQzYWVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTQ1LDYgKzk0NSw5
IEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRt
bAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1jb250ZW50ZWRpdGFibGUuaHRtbAogZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy10ZXh0YXJlYS5odG1sCiAKKyMgRWRpdG9yQ2xpZW50OjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZygpIGlzIG5vdCBpbXBsZW1lbnRlZAorZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGNoZWNrLXBhc3RlLmh0bWwKKwogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVk
Lgogc3RvcmFnZS9pbmRleGVkZGIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYTRhNjg1OTE2Y2JkYTk5ODczNzZmOTU4
MjdlYTFkMDAzMTVmNzhlYi4uNzI1YTZlYTQ2ODQ1MDQ5N2QyNWZjNDMwODIxNTIwZDk2N2VkNTli
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC05NDAsNiArOTQwLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGVk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKICAgICBlZGl0aW5nL1NldE5vZGVBdHRyaWJ1
dGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvU21hcnRSZXBsYWNlLmNwcAorICAgIGVkaXRpbmcv
U3BlbGxDaGVja2VyLmNwcAogICAgIGVkaXRpbmcvU3BsaXRFbGVtZW50Q29tbWFuZC5jcHAKICAg
ICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvU3BsaXRUZXh0
Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjNhNmYxN2I2MDgzYTYwZWQ5ZmQ5ZjEx
ODE5ZmZiNDdlNDRjNTVmYi4uYmIwZDA4MzViOGJiYmFiNDZjY2EyZDA5NGYxOTlkZGE3YzU4MGYy
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3MiBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIC0gSW50cm9k
dWNlZCBTcGVsbENoZWNrZXIgY2xhc3MgdG8gZW5jYXBzdWxhdGUgYXN5bmNocm9ub3VzIHNwZWxs
CisgICAgICAgICAgY2hlY2tlciBzdGF0ZTogc2VxdWVuY2UgaWQsIHJlcXVlc3RpbmcgdGV4dCBh
bmQgdGFyZ2V0IG5vZGUuCisgICAgICAgICAgVGhpcyBpcyBhbHNvIHRoZSBmaXJzdCBzdGVwIHRv
IGRlY29tcG9zZSBzcGVsbC1jaGVjayByZWxhdGVkCisgICAgICAgICAgY29kZSB0byBhIHNlcGFy
YXRlIGNsYXNzLgorICAgICAgICAtIEFkZGVkIEVkaXRvckNsaWVudDo6aXNBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpIAorICAgICAgICAgIHRvIHVzZSBhc3luYyBzcGVsbGNoZWNr
IEFQSSBvbiB0aGUgcGxhdGZvcm0uCisgICAgICAgICAgVGhlc2UgQVBJcyBhcmUgdG91Y2hlZCBi
eSBTcGVsbENoZWNrZXIuCisgICAgICAgIC0gVXNlZCBTcGVsbENoZWNrZXIgdG8gY2hlY2sgYSBw
YXN0ZWQgdGVzdC4gVGV4dCB0byBjaGVjayBpcworICAgICAgICAgIGNvbGxlY3RlZCBmcm9tIHRo
ZSBzdWJ0cmVlIHVuZGVyIHRoZSBlZGl0aW5nUm9vdC4KKyAgICAgICAgLSBBZGRlZCBTZXR0aW5n
OjptX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIHRvIGNvbnRyb2wKKyAgICAgICAg
ICBhc3luYyBzcGVsbCBjaGVja2luZy4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsY2hlY2stcGFzdGUuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6c2hvd01hcmtl
cnMpOgorICAgICAgICAoc2hvd0RvY3VtZW50TWFya2Vycyk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uSXRlcmF0b3I6OnNldE9mZnNldEluTGVhZk5v
ZGUpOgorICAgICAgICAqIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmg6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9u
V2l0aEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6RWRpdG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZpbmRGaXJzdE1hcmthYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcik6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6c3BlbGxDaGVja2VyKToKKyAg
ICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxD
aGVja2VyOjp+U3BlbGxDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
aW5pdFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpjbGVhclJlcXVl
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjppc0FzeW5jaHJvbm91c0VuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja2VyOjpjYW5DaGVja0FzeW5jaHJvbm91
c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNCdXN5KToKKyAgICAgICAg
KFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6aXNWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVs
bENoZWNrZXI6OmlzQ2hlY2thYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6
cmVxdWVzdENoZWNraW5nRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OmZvcndhcmRJdGVyYXRvcik6
CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrZXI6OmRpZENoZWNrKToKKyAgICAgICAgKiBl
ZGl0aW5nL1NwZWxsQ2hlY2tlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hl
Y2tpbmdSZXN1bHQ6OlNwZWxsQ2hlY2tpbmdSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6U3Bl
bGxDaGVja2luZ1Jlc3VsdDo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5n
UmVzdWx0Ojpsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNraW5nUmVzdWx0
OjpsZW5ndGgpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkVtcHR5RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAg
ICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldEFzeW5jaHJvbm91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjphc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisKIDIwMTAtMTItMDggIEVyaWsgQXJ2aWRzc29u
ICA8YXJ2QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCmluZGV4IGY0MTdhMjQzMDNlNTc5MTA1YWQ0ZWVmOTk4NWY3MWZjZDg2YTdlZTcuLjU2MWEx
MWE0Zjc5ODZlZjAwYjhlYjIxNmUwN2M0YjhkMjA0YWM3NzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTM5Myw2ICsx
MzkzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2VkaXRpbmcvU21hcnRSZXBs
YWNlLmNwcCBcCiAJV2ViQ29yZS9lZGl0aW5nL1NtYXJ0UmVwbGFjZS5oIFwKIAlXZWJDb3JlL2Vk
aXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcCBcCisJV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tl
ci5jcHAgXAorCVdlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBcCiAJV2ViQ29yZS9lZGl0
aW5nL1NwbGl0RWxlbWVudENvbW1hbmQuY3BwIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRFbGVt
ZW50Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3Bw
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDExZTEyODc0NjRhN2I3Mzk1N2FmZmM5MzllNmY2OGRiZTNlNjA5MzEuLjBj
ZDg4YjBiY2QwYWVjZmIzY2NmOTE2MDgwNDA5NDAwODVmMTI1Y2IgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNTExLDYg
KzUxMSw3IEBAIF9fWk43V2ViQ29yZTIzUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmRDMUVQTlNfOERv
Y3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE2RG9jCiBfX1pON1dlYkNvcmUyM2NyZWF0ZUZy
YWdtZW50RnJvbU5vZGVzRVBOU184RG9jdW1lbnRFUktOM1dURjZWZWN0b3JJUE5TXzROb2RlRUxt
MEVFRQogX19aTjdXZWJDb3JlMjNvdmVycmlkZURlZmF1bHRMYW5ndWFnZUVSS04zV1RGNlN0cmlu
Z0UKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0ZVByb3BlcnR5
TGlzdEV2CitfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjE0bWFya2Vyc0Zv
ck5vZGVFUE5TXzROb2RlRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIx
M3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKIF9fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTRtYXJrZXJzRm9yTm9kZUVQTlNfNE5vZGVF
CiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zv
ck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUKQEAgLTkxMiw2ICs5MTMs
NyBAQCBfX1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25FUzJfCiBf
X1pON1dlYkNvcmU5cGFnZUNhY2hlRXYKIF9fWk43V2ViQ29yZTlwbGFpblRleHRFUEtOU181UmFu
Z2VFTlNfMjBUZXh0SXRlcmF0b3JCZWhhdmlvckUKIF9fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNK
U0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTEyU3BlbGxDaGVja2VyOGRpZENoZWNrRWlSS04zV1RG
NlZlY3RvcklOU18xOVNwZWxsQ2hlY2tpbmdSZXN1bHRFTG0wRUVFCiBfX1pOSzNKU0M4QmluZGlu
Z3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRjcmVhdGVD
RlN0cmluZ0V2CiBfX1pOSzdXZWJDb3JlMTBGbG9hdFBvaW50Y3Y4X05TUG9pbnRFdgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4
ZDRlZDAyYzJhNDJlNjVhMmU4MzA0NjIyMDg5ZjdhMTgwNjQxY2U2Li44NzM4NWU3ZWUwMWQxMDNm
N2UzYzVjOGUxNjRiZjI2NjNhMDdiNGExIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTQ3Miw2ICsxNDcyLDggQEAKICAgICAg
ICAgICAgICdlZGl0aW5nL1NtYXJ0UmVwbGFjZS5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1Nt
YXJ0UmVwbGFjZUNGLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9TbWFydFJlcGxhY2VJQ1Uu
Y3BwJywKKyAgICAgICAgICAgICdlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAnLAorICAgICAgICAg
ICAgJ2VkaXRpbmcvU3BlbGxDaGVja2VyLmgnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU3BsaXRF
bGVtZW50Q29tbWFuZC5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvU3BsaXRFbGVtZW50Q29t
bWFuZC5oJywKICAgICAgICAgICAgICdlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb21tYW5kLmNwcCcs
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCAwZjg4NTM4Mjg5MzUxYjZlOTY1YjQyN2I5ZDhmZjM1NmZiZjYyYzI2Li42YTRjOTIyY2Y0
YTdlM2VjNjUwNGM3NDdmMTJmNGNlYmUxYWQ4ZjYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTgzMCw2ICs4MzAsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBlZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwIFwKICAgICBlZGl0
aW5nL1NldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9TbWFydFJlcGxh
Y2VJQ1UuY3BwIFwKKyAgICBlZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgXAogICAgIGVkaXRpbmcv
U3BsaXRFbGVtZW50Q29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvU3BsaXRUZXh0Tm9kZUNvbW1h
bmQuY3BwIFwKICAgICBlZGl0aW5nL1NwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1h
bmQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMwMDUxZGVl
NzU3NGE3NDA2NTM0NjkzZjYwMGNlZWM5ZGQ2NDE2ZGEuLjBjZTM3OGNjY2IyMTVjN2E4MGRlNWYx
Y2U2MmQyNDNjNzMwYWNiMjIgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtMSwzICsxLDQgQEAKKzw8PDw8PDwgSEVBRAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iV2luZG93cy0xMjUyIj8+CiA8VmlzdWFsU3R1ZGlvUHJvamVjdAogCVByb2plY3RUeXBlPSJW
aXN1YWwgQysrIgpAQCAtNDkyMTQsNiArNDkyMTUsNjIgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVkaXRpbmdc
U3BlbGxDaGVja2VyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwZWxsQ2hlY2tlci5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxlZGl0aW5nXFNwbGl0RWxl
bWVudENvbW1hbmQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmVhZjMzNzMwMjJkNThjN2Fl
MmQ4ZjdlMzI4NzU5ZDZlOTM5MDQ0My4uYjk5NTM1YWNmNDJhZjU0YTc3MjYwMzYzNjcwYjZkNjYy
Y2U1ZmJmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTMxMDIsNiArMzEwMiw4IEBACiAJCUE3Nzk3OTI4MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdl
RGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
Nzc5NzkyNDBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuY3BwICovOyB9OwogCQlBNzc5
NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBK
U0ltYWdlRGF0YS5oICovOyB9OwogCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJv
YXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovOyB9OworCQlBNzhGRTEz
QjEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEZFMTM5MTIzNjZCMTAwMEFDRThEMCAvKiBT
cGVsbENoZWNrZXIuY3BwICovOyB9OworCQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3Bl
bGxDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzhGRTEzQTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc5NTQ2M0UwQjVDNEM4MDAw
N0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc5NTQ2M0QwQjVDNEM4MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1t
ICovOyB9OwogCQlBNzk1NDY0MzBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc5NTQ2NDIwQjVDNENC
NDAwN0I0MzhGIC8qIERyYWdEYXRhLmNwcCAqLzsgfTsKIAkJQTdBQTY2RDYxMUM1RUQ2QTAwMUQ4
QzhDIC8qIFJlbmRlckluZGljYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0FBNjZENDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNh
dG9yLmNwcCAqLzsgfTsKQEAgLTk0MjAsNiArOTQyMiw4IEBACiAJCUE3Nzk3OTI0MEQ2QjlFNjQw
MDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0ltYWdlRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0ltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlBNzhGRTEzOTEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwZWxsQ2hlY2tlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3OEZFMTNBMTIzNjZCMTAwMEFDRThE
MCAvKiBTcGVsbENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBTcGVs
bENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc5NTQ2M0QwQjVDNEM4
MDAwN0I0MzhGIC8qIERyYWdEYXRhTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERyYWdEYXRhTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRHJhZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBN0FBNjZENDExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckluZGljYXRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTA4Miw2ICsxNTA4Niw4IEBACiAJ
CQkJNEI2RkE2RjMwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5jcHAgKi8sCiAJCQkJ
NEI2RkE2RjIwQzM5RTQ4QzAwMDg3MDExIC8qIFNtYXJ0UmVwbGFjZS5oICovLAogCQkJCTRCNkZB
NkY2MEMzOUU0QTEwMDA4NzAxMSAvKiBTbWFydFJlcGxhY2VDRi5jcHAgKi8sCisJCQkJQTc4RkUx
MzkxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5jcHAgKi8sCisJCQkJQTc4RkUxM0Ex
MjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tlci5oICovLAogCQkJCTkzMzA5REMyMDk5RTY0
OTEwMDU2RTU4MSAvKiBTcGxpdEVsZW1lbnRDb21tYW5kLmNwcCAqLywKIAkJCQk5MzMwOURDMzA5
OUU2NDkxMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REM0
MDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29tbWFuZC5jcHAgKi8sCkBAIC0yMTU1
Nyw2ICsyMTU2Myw3IEBACiAJCQkJNzU0MTVBRkQxMjk1OEQ1RTAwM0FENjY5IC8qIFNwZWVjaElu
cHV0RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NzhGOTIwMTFFNEUzMjgwMEQ5MzNDNSAv
KiBTcGVlY2hJbnB1dExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxNUIwMDEyOTU4
RDVFMDAzQUQ2NjkgLyogU3BlZWNoSW5wdXRSZXN1bHRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBNzhGRTEzQzEyMzY2QjEwMDBBQ0U4RDAgLyogU3BlbGxDaGVja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOUUxMjA5OUU2NDkyMDA1NkU1ODEgLyogU3BsaXRFbGVtZW50Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTQwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4
dE5vZGVDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxNjA5OUU2NDkyMDA1NkU1
ODEgLyogU3BsaXRUZXh0Tm9kZUNvbnRhaW5pbmdFbGVtZW50Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNDMyMCw2ICsyNDMyNyw3IEBACiAJCQkJNzU0MTVDMjgxMjlBOTkyMDAwM0FENjY5
IC8qIFNwZWVjaElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU4OTc4RUMxMjcw
OTBENjAwNzZENUE5IC8qIFNwZWVjaElucHV0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTc1NDE1QzI5MTI5QTk5MjAwMDNBRDY2OSAvKiBTcGVlY2hJbnB1dFJlc3VsdExpc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTc4RkUxM0IxMjM2NkIxMDAwQUNFOEQwIC8qIFNwZWxsQ2hlY2tl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxMTA5OUU2NDkyMDA1NkU1ODEgLyogU3Bs
aXRFbGVtZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUxMzA5OUU2NDky
MDA1NkU1ODEgLyogU3BsaXRUZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTMzMDlFMTUwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVu
dENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmNwcAppbmRleCAzYjdhYmNjYzExN2MyYTMxMzdiMzU5ZGY0ODllNjdiOGU5MTlkNDY1
Li41Zjg4NjMxMDJlMTg1M2RhZWQyMmEwODNkZDM1YzlhMWJmOWI4Nzc2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKQEAgLTU2Nyw0ICs1NjcsMzEgQEAgYm9vbCBE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXI6Omhhc01hcmtlcnMoUmFuZ2UqIHJhbmdlLCBEb2N1bWVu
dE1hcmtlcjo6TWFya2VyVHkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZm5kZWYgTkRFQlVH
Cit2b2lkIERvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6c2hvd01hcmtlcnMoKSBjb25zdAorewor
ICAgIGZwcmludGYoc3RkZXJyLCAiJWQgbm9kZXMgaGF2ZSBtYXJrZXJzOlxuIiwgbV9tYXJrZXJz
LnNpemUoKSk7CisgICAgTWFya2VyTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtX21hcmtlcnMu
ZW5kKCk7CisgICAgZm9yIChNYXJrZXJNYXA6OmNvbnN0X2l0ZXJhdG9yIG5vZGVJdGVyYXRvciA9
IG1fbWFya2Vycy5iZWdpbigpOyBub2RlSXRlcmF0b3IgIT0gZW5kOyArK25vZGVJdGVyYXRvcikg
eworICAgICAgICBOb2RlKiBub2RlID0gbm9kZUl0ZXJhdG9yLT5maXJzdC5nZXQoKTsKKyAgICAg
ICAgZnByaW50ZihzdGRlcnIsICIlcCIsIG5vZGUpOworICAgICAgICBNYXJrZXJNYXBWZWN0b3JQ
YWlyKiB2ZWN0b3JQYWlyID0gbm9kZUl0ZXJhdG9yLT5zZWNvbmQ7CisgICAgICAgIFZlY3RvcjxE
b2N1bWVudE1hcmtlcj4mIG1hcmtlcnMgPSB2ZWN0b3JQYWlyLT5maXJzdDsKKyAgICAgICAgdW5z
aWduZWQgbWFya2VyQ291bnQgPSBtYXJrZXJzLnNpemUoKTsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBtYXJrZXJJbmRleCA9IDA7IG1hcmtlckluZGV4IDwgbWFya2VyQ291bnQ7ICsrbWFya2VySW5k
ZXgpCisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAlZDpbJWQ6JWRdKCVkKSIsIG1hcmtl
cnNbbWFya2VySW5kZXhdLnR5cGUsIG1hcmtlcnNbbWFya2VySW5kZXhdLnN0YXJ0T2Zmc2V0LCBt
YXJrZXJzW21hcmtlckluZGV4XS5lbmRPZmZzZXQsIG1hcmtlcnNbbWFya2VySW5kZXhdLmFjdGl2
ZU1hdGNoKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOworICAgIH0KK30KKyNlbmRp
ZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKworI2lmbmRlZiBOREVCVUcKK3ZvaWQgc2hv
d0RvY3VtZW50TWFya2Vycyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIpCit7CisgICAgaWYgKGNvbnRyb2xsZXIpCisgICAgICAgIGNvbnRyb2xsZXIt
PnNob3dNYXJrZXJzKCk7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyLmgKaW5kZXggOTZmYjdmM2NkMzIzNzE1NGZhMTRlZmZmM2Y5MDc2ZDAyNDFhY2IxYi4uODMx
NzdmY2Y4ODA2ZDdiNmVhOGEwNTE3MTg0YTAwY2NjMDczZDgxZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTYyLDYgKzYyLDEwIEBAIHB1YmxpYzoKICAgICBWZWN0
b3I8RG9jdW1lbnRNYXJrZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsKICAgICBWZWN0b3I8SW50
UmVjdD4gcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUg
PSBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2Vycyk7CiAKKyNpZm5kZWYgTkRFQlVHCisgICAgdm9p
ZCBzaG93TWFya2VycygpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdHlwZWRlZiBz
dGQ6OnBhaXI8VmVjdG9yPERvY3VtZW50TWFya2VyPiwgVmVjdG9yPEludFJlY3Q+ID4gTWFya2Vy
TWFwVmVjdG9yUGFpcjsKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPE5vZGU+LCBNYXJrZXJN
YXBWZWN0b3JQYWlyKj4gTWFya2VyTWFwOwpAQCAtNzEsNCArNzUsOCBAQCBwcml2YXRlOgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNpZm5kZWYgTkRFQlVHCit2b2lkIHNob3dEb2N1bWVu
dE1hcmtlcnMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyKik7CisjZW5k
aWYKKwogI2VuZGlmIC8vIERvY3VtZW50TWFya2VyQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRl
cmF0b3IuY3BwCmluZGV4IDc2N2U3MDU5YzlkMDgxMTg1NzRlNjRjZTBmOTZlNDdjMzU4NGM0M2Qu
LjVkZTlkOWQwNjIxMzkzMjg5ZDhjMTFiOTk2OTE1MzBiNTI5YzNlYTEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9u
SXRlcmF0b3IuY3BwCkBAIC05OCw2ICs5OCwxMyBAQCB2b2lkIFBvc2l0aW9uSXRlcmF0b3I6OmRl
Y3JlbWVudCgpCiAgICAgfQogfQogCit2b2lkIFBvc2l0aW9uSXRlcmF0b3I6OnNldE9mZnNldElu
TGVhZk5vZGUoaW50IG9mZnNldCkKK3sKKyAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZS0+aGFzQ2hp
bGROb2RlcygpKTsKKyAgICBBU1NFUlQoMCA8PSBvZmZzZXQgJiYgb2Zmc2V0IDw9IGxhc3RPZmZz
ZXRGb3JFZGl0aW5nKG1fYW5jaG9yTm9kZSkpOworICAgIG1fb2Zmc2V0SW5BbmNob3IgPSBvZmZz
ZXQ7Cit9CisKIGJvb2wgUG9zaXRpb25JdGVyYXRvcjo6YXRTdGFydCgpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2FuY2hvck5vZGUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJh
dG9yLmggYi9XZWJDb3JlL2RvbS9Qb3NpdGlvbkl0ZXJhdG9yLmgKaW5kZXggN2FmODk3NzU5MWQx
NmMyOTc5MzE4OTBlYmQxYWUwNjljMmQ0N2YzNi4uMDgzMjliYjE1Y2QzZTUyMTAwNDYyOTM1ODhh
YjdhYWJkMzBmZTRmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUG9zaXRpb25JdGVyYXRvci5o
CisrKyBiL1dlYkNvcmUvZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaApAQCAtNTYsNiArNTYsNyBAQCBw
dWJsaWM6CiAKICAgICBOb2RlKiBub2RlKCkgY29uc3QgeyByZXR1cm4gbV9hbmNob3JOb2RlOyB9
CiAgICAgaW50IG9mZnNldEluTGVhZk5vZGUoKSBjb25zdCB7IHJldHVybiBtX29mZnNldEluQW5j
aG9yOyB9CisgICAgdm9pZCBzZXRPZmZzZXRJbkxlYWZOb2RlKGludCBvZmZzZXQpOwogCiAgICAg
Ym9vbCBhdFN0YXJ0KCkgY29uc3Q7CiAgICAgYm9vbCBhdEVuZCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAppbmRleCAyYjIyNjUxYjUyNTI0YjRlMjgxZGIzYTUxM2NlZWM1NTVkNWVkNTZlLi41YjYxZjFj
ZjJiMWZhMjJhMmUyZDhjNzZhZWQ1YzY5ODU3YTU0YWZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtNjcs
OSArNjcsMTEgQEAKICNpbmNsdWRlICJSZW1vdmVGb3JtYXRDb21tYW5kLmgiCiAjaW5jbHVkZSAi
UmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVy
VGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU291bmQuaCIKKyNpbmNsdWRlICJTcGVsbENo
ZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCiAjaW5j
bHVkZSAiVGV4dEl0ZXJhdG9yLmgiCkBAIC00MjMsNiArNDI1LDEwIEBAIHZvaWQgRWRpdG9yOjpy
ZXBsYWNlU2VsZWN0aW9uV2l0aEZyYWdtZW50KFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQsCiAgICAgCiAgICAgYXBwbHlDb21tYW5kKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5k
OjpjcmVhdGUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgZnJhZ21lbnQsIHNlbGVjdFJlcGxhY2VtZW50
LCBzbWFydFJlcGxhY2UsIG1hdGNoU3R5bGUpKTsKICAgICByZXZlYWxTZWxlY3Rpb25BZnRlckVk
aXRpbmdPcGVyYXRpb24oKTsKKworICAgIE5vZGUqIG5vZGVUb0NoZWNrID0gbV9mcmFtZS0+c2Vs
ZWN0aW9uKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKKyAgICBpZiAobV9zcGVsbENoZWNrZXIt
PmNhbkNoZWNrQXN5bmNocm9ub3VzbHkobm9kZVRvQ2hlY2spKQorICAgICAgICBtX3NwZWxsQ2hl
Y2tlci0+cmVxdWVzdENoZWNraW5nRm9yKG5vZGVUb0NoZWNrKTsKIH0KIAogdm9pZCBFZGl0b3I6
OnJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
UmVwbGFjZW1lbnQsIGJvb2wgc21hcnRSZXBsYWNlKQpAQCAtMTE0MCw2ICsxMTQ2LDcgQEAgRWRp
dG9yOjpFZGl0b3IoRnJhbWUqIGZyYW1lKQogICAgIC8vIFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQs
IHNpbmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVoYXZpb3IgKHRoaXMgbWF0Y2hlcyBJRSBi
dXQgbm90IEZGKS4KICAgICAsIG1fc2hvdWxkU3R5bGVXaXRoQ1NTKGZhbHNlKQogICAgICwgbV9r
aWxsUmluZyhhZG9wdFB0cihuZXcgS2lsbFJpbmcpKQorICAgICwgbV9zcGVsbENoZWNrZXIobmV3
IFNwZWxsQ2hlY2tlcihmcmFtZSwgZnJhbWUtPnBhZ2UoKSA/IGZyYW1lLT5wYWdlKCktPmVkaXRv
ckNsaWVudCgpIDogMCkpCiAgICAgLCBtX2NvcnJlY3Rpb25QYW5lbFRpbWVyKHRoaXMsICZFZGl0
b3I6OmNvcnJlY3Rpb25QYW5lbFRpbWVyRmlyZWQpCiAgICAgLCBtX2FyZU1hcmtlZFRleHRNYXRj
aGVzSGlnaGxpZ2h0ZWQoZmFsc2UpCiB7CkBAIC0zNDc2LDEyICszNDgzLDI5IEBAIHZvaWQgRWRp
dG9yOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIG9s
ZFNlbGVjdGlvbiwgYm9vCiAgICAgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihvbGRTZWxlY3Rp
b24pOwogfQogCitzdGF0aWMgTm9kZSogZmluZEZpcnN0TWFya2FibGUoTm9kZSogbm9kZSkKK3sK
KyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBpZiAoIW5vZGUtPnJlbmRlcmVyKCkpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKG5vZGUtPnJlbmRlcmVyKCktPmlzVGV4dCgp
KQorICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgICAgIGlmIChub2RlLT5yZW5kZXJlcigp
LT5pc1RleHRDb250cm9sKCkpCisgICAgICAgICAgICBub2RlID0gdG9SZW5kZXJUZXh0Q29udHJv
bChub2RlLT5yZW5kZXJlcigpKS0+dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoMSkuZGVlcEVxdWl2
YWxlbnQoKS5ub2RlKCk7CisgICAgICAgIGVsc2UgaWYgKG5vZGUtPmZpcnN0Q2hpbGQoKSkKKyAg
ICAgICAgICAgIG5vZGUgPSBub2RlLT5maXJzdENoaWxkKCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpOworICAgIH0KKworICAgIHJldHVybiAw
OworfQorCiBib29sIEVkaXRvcjo6c2VsZWN0aW9uU3RhcnRIYXNTcGVsbGluZ01hcmtlckZvcihp
bnQgZnJvbSwgaW50IGxlbmd0aCkgY29uc3QKIHsKLSAgICBOb2RlKiBub2RlID0gbV9mcmFtZS0+
c2VsZWN0aW9uKCktPnN0YXJ0KCkubm9kZSgpOwotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVu
ZGVyZXIoKSkKKyAgICBOb2RlKiBub2RlID0gZmluZEZpcnN0TWFya2FibGUobV9mcmFtZS0+c2Vs
ZWN0aW9uKCktPnN0YXJ0KCkubm9kZSgpKTsKKyAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICBBU1NFUlQobm9kZS0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpOwogCiAgICAg
dW5zaWduZWQgaW50IHN0YXJ0T2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50Pihmcm9t
KTsKICAgICB1bnNpZ25lZCBpbnQgZW5kT2Zmc2V0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50
Pihmcm9tICsgbGVuZ3RoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBi
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA0NjllNTFmNGFjZThlNDJiMjlhZjViZjYz
Y2FkZmZmMWUwYjg2MGRkLi45YzkyYTk0ZTBkMTczM2Q1M2Q4YmFkOTdlNTljZjUwYzdmMDZjMWM5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5oCkBAIC01NSw2ICs1NSw3IEBAIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFz
cyBLaWxsUmluZzsKIGNsYXNzIFBhc3RlYm9hcmQ7CiBjbGFzcyBTaW1wbGVGb250RGF0YTsKK2Ns
YXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFRleHQ7CiBjbGFzcyBUZXh0RXZlbnQ7CiAKQEAgLTMw
MCw2ICszMDEsNyBAQCBwdWJsaWM6CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JD
b21tYW5kKEV2ZW50Kik7CiAKICAgICBLaWxsUmluZyoga2lsbFJpbmcoKSBjb25zdCB7IHJldHVy
biBtX2tpbGxSaW5nLmdldCgpOyB9CisgICAgU3BlbGxDaGVja2VyKiBzcGVsbENoZWNrZXIoKSBj
b25zdCB7IHJldHVybiBtX3NwZWxsQ2hlY2tlci5nZXQoKTsgfQogCiAgICAgRWRpdGluZ0JlaGF2
aW9yIGJlaGF2aW9yKCkgY29uc3Q7CiAKQEAgLTM4Myw2ICszODUsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CiAgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tpbGxS
aW5nOwogICAgIENvcnJlY3Rpb25QYW5lbEluZm8gbV9jb3JyZWN0aW9uUGFuZWxJbmZvOworICAg
IE93blB0cjxTcGVsbENoZWNrZXI+IG1fc3BlbGxDaGVja2VyOwogICAgIFRpbWVyPEVkaXRvcj4g
bV9jb3JyZWN0aW9uUGFuZWxUaW1lcjsKICAgICBib29sIG1fY29ycmVjdGlvblBhbmVsSXNEaXNt
aXNzZWRCeUVkaXRvcjsKICAgICBWaXNpYmxlU2VsZWN0aW9uIG1fbWFyazsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTgwNzQ3NGI3NTM4NmJlNzcyMWVjOGRlZTMwZDk5MzA3
YjEwMWUyNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIu
Y3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJTcGVsbENoZWNrZXIuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50Lmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRl
ICJQb3NpdGlvbkl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIKKyNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgorI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
U3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lLCBFZGl0b3JDbGllbnQqIGNs
aWVudCkKKyAgICA6IG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAg
LCBtX3JlcXVlc3RTZXF1ZW5jZSgwKQoreworfQorCitTcGVsbENoZWNrZXI6On5TcGVsbENoZWNr
ZXIoKQoreworfQorCitib29sIFNwZWxsQ2hlY2tlcjo6aW5pdFJlcXVlc3QoTm9kZSogbm9kZSkK
K3sKKyAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hyb25vdXNseShub2RlKSk7CisKKyAgICBTdHJp
bmcgdGV4dCA9IG5vZGUtPnRleHRDb250ZW50KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0aCgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3JlcXVlc3ROb2RlID0gbm9kZTsKKyAgICBt
X3JlcXVlc3RUZXh0ID0gdGV4dDsKKyAgICBtX3JlcXVlc3RTZXF1ZW5jZSsrOworCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3ZvaWQgU3BlbGxDaGVja2VyOjpjbGVhclJlcXVlc3QoKQoreworICAg
IG1fcmVxdWVzdE5vZGUuY2xlYXIoKTsKKyAgICBtX3JlcXVlc3RUZXh0ID0gU3RyaW5nKCk7Cit9
CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc0FzeW5jaHJvbm91c0VuYWJsZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2ZyYW1lLT5zZXR0aW5ncygpICYmIG1fZnJhbWUtPnNldHRpbmdzKCktPmFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2Vy
OjpjYW5DaGVja0FzeW5jaHJvbm91c2x5KE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGlzQ2hlY2thYmxlKG5vZGUpICYmIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgpICYmICFpc0J1c3ko
KTsKK30KKworYm9vbCBTcGVsbENoZWNrZXI6OmlzQnVzeSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcmVxdWVzdE5vZGUuZ2V0KCk7Cit9CisKK2Jvb2wgU3BlbGxDaGVja2VyOjppc1ZhbGlkKGlu
dCBzZXF1ZW5jZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0Tm9kZS5nZXQoKSAmJiBt
X3JlcXVlc3RUZXh0Lmxlbmd0aCgpICYmIG1fcmVxdWVzdFNlcXVlbmNlID09IHNlcXVlbmNlOwor
fQorCitib29sIFNwZWxsQ2hlY2tlcjo6aXNDaGVja2FibGUoTm9kZSogbm9kZSkgY29uc3QKK3sK
KyAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5yZW5kZXJlcigpOworfQorCit2b2lkIFNwZWxsQ2hl
Y2tlcjo6cmVxdWVzdENoZWNraW5nRm9yKE5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKGNhbkNo
ZWNrQXN5bmNocm9ub3VzbHkobm9kZSkpOworCisgICAgaWYgKCFpbml0UmVxdWVzdChub2RlKSkK
KyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50LT5yZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh0
aGlzLCBtX3JlcXVlc3RTZXF1ZW5jZSwgbV9yZXF1ZXN0VGV4dCk7Cit9CisKK3N0YXRpYyBib29s
IGZvcndhcmRJdGVyYXRvcihQb3NpdGlvbkl0ZXJhdG9yJiBpdGVyYXRvciwgaW50IGRpc3RhbmNl
KQoreworICAgIGludCByZW1haW5pbmcgPSBkaXN0YW5jZTsKKyAgICB3aGlsZSAoIWl0ZXJhdG9y
LmF0RW5kKCkpIHsKKyAgICAgICAgaWYgKGl0ZXJhdG9yLm5vZGUoKS0+aXNDaGFyYWN0ZXJEYXRh
Tm9kZSgpKSB7CisgICAgICAgICAgICBpbnQgbGVuZ3RoID0gbGFzdE9mZnNldEZvckVkaXRpbmco
aXRlcmF0b3Iubm9kZSgpKTsKKyAgICAgICAgICAgIGludCBsYXN0ID0gbGVuZ3RoIC0gaXRlcmF0
b3Iub2Zmc2V0SW5MZWFmTm9kZSgpOworICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA8IGxhc3Qp
IHsKKyAgICAgICAgICAgICAgICBpdGVyYXRvci5zZXRPZmZzZXRJbkxlYWZOb2RlKGl0ZXJhdG9y
Lm9mZnNldEluTGVhZk5vZGUoKSArIHJlbWFpbmluZyk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJlbWFpbmluZyAtPSBsYXN0Owor
ICAgICAgICAgICAgaXRlcmF0b3Iuc2V0T2Zmc2V0SW5MZWFmTm9kZShpdGVyYXRvci5vZmZzZXRJ
bkxlYWZOb2RlKCkgKyBsYXN0KTsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yLmluY3Jl
bWVudCgpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsgICAgCit9CisKK3ZvaWQgU3BlbGxD
aGVja2VyOjpkaWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxTcGVsbENoZWNraW5n
UmVzdWx0PiYgcmVzdWx0cykKK3sKKyAgICBpZiAoIWlzVmFsaWQoc2VxdWVuY2UpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIW1fcmVxdWVzdE5vZGUtPnJlbmRlcmVyKCkpIHsKKyAgICAg
ICAgY2xlYXJSZXF1ZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnQgc3Rh
cnRPZmZzZXQgPSAwOworICAgIFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBQb3NpdGlvbihtX3Jl
cXVlc3ROb2RlLCAwKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3VsdHMuc2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgaWYgKHJlc3VsdHNbaV0udHlwZSgpICE9IERvY3VtZW50TWFya2Vy
OjpTcGVsbGluZyAmJiByZXN1bHRzW2ldLnR5cGUoKSAhPSBEb2N1bWVudE1hcmtlcjo6R3JhbW1h
cikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIFRvIGF2b2lkIG1vdmluZyB0
aGUgcG9zaXRpb24gYmFja3dhcmQsIHdlIGFzc3VtZSB0aGUgZ2l2ZW4gcmVzdWx0cyBhcmUgc29y
dGVkIHdpdGgKKyAgICAgICAgLy8gc3RhcnRPZmZzZXQgYXMgdGhlIG9uZXMgcmV0dXJuZWQgYnkg
W05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nOl0uCisgICAgICAgIEFTU0VS
VChzdGFydE9mZnNldCA8PSByZXN1bHRzW2ldLmxvY2F0aW9uKCkpOworICAgICAgICBpZiAoIWZv
cndhcmRJdGVyYXRvcihzdGFydCwgcmVzdWx0c1tpXS5sb2NhdGlvbigpIC0gc3RhcnRPZmZzZXQp
KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIFBvc2l0aW9uSXRlcmF0b3IgZW5kID0gc3Rh
cnQ7CisgICAgICAgIGlmICghZm9yd2FyZEl0ZXJhdG9yKGVuZCwgcmVzdWx0c1tpXS5sZW5ndGgo
KSkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBVc2VycyBvciBKYXZhU2NyaXB0
IGFwcGxpY2F0aW9ucyBtYXkgY2hhbmdlIHRleHQgd2hpbGUgYSBzcGVsbC1jaGVja2VyIGNoZWNr
cyBpdHMKKyAgICAgICAgLy8gc3BlbGxpbmdzIGluIHRoZSBiYWNrZ3JvdW5kLiBUbyBhdm9pZCBh
ZGRpbmcgbWFya2VycyB0byB0aGUgd29yZHMgbW9kaWZpZWQgYnkgdXNlcnMgb3IKKyAgICAgICAg
Ly8gSmF2YVNjcmlwdCBhcHBsaWNhdGlvbnMsIHJldHJpZXZlIHRoZSB3b3JkcyBpbiB0aGUgc3Bl
Y2lmaWVkIHJlZ2lvbiBhbmQgY29tcGFyZSB0aGVtIHdpdGgKKyAgICAgICAgLy8gdGhlIG9yaWdp
bmFsIG9uZXMuCisgICAgICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKG1f
cmVxdWVzdE5vZGUtPmRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOworICAgICAgICAvLyBGSVhNRTog
VXNlIHRleHRDb250ZW50KCkgY29tcGF0aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KKyAgICAgICAg
U3RyaW5nIGRlc3RpbmF0aW9uID0gcmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHNvdXJj
ZSA9IG1fcmVxdWVzdFRleHQuc3Vic3RyaW5nKHJlc3VsdHNbaV0ubG9jYXRpb24oKSwgcmVzdWx0
c1tpXS5sZW5ndGgoKSk7CisgICAgICAgIGlmIChkZXN0aW5hdGlvbiA9PSBzb3VyY2UpCisgICAg
ICAgICAgICBtX3JlcXVlc3ROb2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1hcmtlcihy
YW5nZS5nZXQoKSwgcmVzdWx0c1tpXS50eXBlKCkpOworCisgICAgICAgIHN0YXJ0T2Zmc2V0ID0g
cmVzdWx0c1tpXS5sb2NhdGlvbigpOworICAgIH0KKworICAgIGNsZWFyUmVxdWVzdCgpOworfQor
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9T
cGVsbENoZWNrZXIuaCBiL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OTIyZjBlMjMzMDAxNmY4M2Y2OTBhNDAwYjIyZWUxMjc5Yzg5ZjgwCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0wLDAgKzEsODMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBTcGVsbENoZWNrZXJfaAorI2RlZmluZSBTcGVsbENoZWNrZXJfaAor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFZGl0b3JDbGllbnQ7CitjbGFzcyBGcmFtZTsK
KworY2xhc3MgU3BlbGxDaGVja2luZ1Jlc3VsdCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU3Bl
bGxDaGVja2luZ1Jlc3VsdChEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBlID0gRG9jdW1l
bnRNYXJrZXI6OlNwZWxsaW5nLCBpbnQgbG9jYXRpb24gPSAwLCBpbnQgbGVuZ3RoID0gMCkKKyAg
ICAgICAgOiBtX3R5cGUodHlwZSkKKyAgICAgICAgLCBtX2xvY2F0aW9uKGxvY2F0aW9uKQorICAg
ICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICB7CisgICAgfQorCisgICAgRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfSAKKyAgICBpbnQg
bG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2xvY2F0aW9uOyB9CisgICAgaW50IGxlbmd0aCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKK3ByaXZhdGU6CisgICAgRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGUgbV90eXBlOworICAgIGludCBtX2xvY2F0aW9uOworICAgIGludCBtX2xl
bmd0aDsKK307CisKK2NsYXNzIFNwZWxsQ2hlY2tlciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgU3BlbGxDaGVja2VyKEZyYW1lKiwgRWRpdG9yQ2xpZW50Kik7
CisgICAgflNwZWxsQ2hlY2tlcigpOworCisgICAgYm9vbCBpc0FzeW5jaHJvbm91c0VuYWJsZWQo
KSBjb25zdDsKKyAgICBib29sIGNhbkNoZWNrQXN5bmNocm9ub3VzbHkoTm9kZSopIGNvbnN0Owor
ICAgIGJvb2wgaXNCdXN5KCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkKGludCBzZXF1ZW5jZSkg
Y29uc3Q7CisgICAgYm9vbCBpc0NoZWNrYWJsZShOb2RlKikgY29uc3Q7CisgICAgdm9pZCByZXF1
ZXN0Q2hlY2tpbmdGb3IoTm9kZSopOworICAgIHZvaWQgZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBj
b25zdCBWZWN0b3I8U3BlbGxDaGVja2luZ1Jlc3VsdD4mKTsKKworcHJpdmF0ZToKKyAgICBib29s
IGluaXRSZXF1ZXN0KE5vZGUqKTsKKyAgICB2b2lkIGNsZWFyUmVxdWVzdCgpOworCisgICAgRnJh
bWUqIG1fZnJhbWU7CisgICAgRWRpdG9yQ2xpZW50KiBtX2NsaWVudDsKKworICAgIFJlZlB0cjxO
b2RlPiBtX3JlcXVlc3ROb2RlOworICAgIFN0cmluZyBtX3JlcXVlc3RUZXh0OworICAgIGludCBt
X3JlcXVlc3RTZXF1ZW5jZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFNwZWxsQ2hlY2tlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDJhYzhkZDBiYWY5MjFm
MGQ0YWU1MDIxMTNlMWNjMWE4MGRiMmU3ODAuLjZiODYxMDYyZjdmYzI5NjRkZWMxYTU0MzkzMzVh
ZTliMjlhODI4ZTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC00OTEsOCArNDkxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBWZWN0b3I8U3RyaW5nPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2V0SW5wdXRNZXRob2RTdGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhv
ZFN0YXRlKGJvb2wpIHsgfQotCi0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSB7IH0KIH07CiAKICNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGll
bnQuaCBiL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRleCA2NGQxOWE0ZGJhMjk5MGNh
ZmM2NjFiYWI5ZDlhNDU2MjBjZWIxYjkwLi4xZWMwYzdlZjMzMWNmMjllNTFlNjIyZDE1ODZhMGE4
MGRlMWYzN2MxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIv
V2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCkBAIC02Niw2ICs2Niw3IEBAIGNsYXNzIEhUTUxF
bGVtZW50OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBSYW5nZTsK
K2NsYXNzIFNwZWxsQ2hlY2tlcjsKIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiBjbGFzcyBWaXNp
YmxlUG9zaXRpb247CiAKQEAgLTIwMyw2ICsyMDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBj
b250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3NlcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRN
ZXRob2RTdGF0ZShib29sIGVuYWJsZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoU3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBTdHJpbmcmKSA9IDA7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAppbmRleCA3ZGMxMDNiNjczZGM0OTI3OWY3YzRlZWZlNzRkNGQxNTAy
MmI1NTFlLi5mYzE4MjI0OWJlNmM0YWJmZGRmOTc5Y2E1NmI4ZWViNTU0NWQ2MmFjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKQEAgLTE2NCw2ICsxNjQsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLCBtX2Z1bGxTY3JlZW5BUElFbmFibGVk
KGZhbHNlKQogI2VuZGlmCisgICAgLCBtX2FzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KGZhbHNlKQogICAgICwgbV9tZW1vcnlJbmZvRW5hYmxlZChmYWxzZSkKICAgICAsIG1faW50ZXJh
Y3RpdmVGb3JtVmFsaWRhdGlvbihmYWxzZSkKICAgICAsIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWly
a3MoZmFsc2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCmluZGV4IDA0YjEyNmEyODk4OGRlY2M1Nzg1OTJjZDkzN2UwNWY0NmMw
N2IzNjMuLmY0NjMwZGU0YTk0MmQxZjUzNjEyMjMyZjZkMzA2NmE5YTI3MTRmNmMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CkBAIC0zMzEsNiArMzMxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGZ1
bGxTY3JlZW5FbmFibGVkKCkgY29uc3QgIHsgcmV0dXJuIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQ7
IH0KICNlbmRpZgogCisgICAgICAgIHZvaWQgc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoYm9vbCBmbGFnKSB7IG1fYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBm
bGFnOyB9CisgICAgICAgIGJvb2wgYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKSBj
b25zdCAgeyByZXR1cm4gbV9hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDsgfQorCiAg
ICAgICAgIHZvaWQgc2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1fbWVtb3J5SW5m
b0VuYWJsZWQgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgbWVtb3J5SW5mb0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX21lbW9yeUluZm9FbmFibGVkOyB9CiAKQEAgLTQzOCw2ICs0NDEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICAgICBi
b29sIG1fZnVsbFNjcmVlbkFQSUVuYWJsZWQgOiAxOwogI2VuZGlmCisgICAgICAgIGJvb2wgbV9h
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDogMTsKICAgICAgICAgYm9vbCBtX21lbW9y
eUluZm9FbmFibGVkOiAxOwogICAgICAgICBib29sIG1faW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlv
bjogMTsKICAgICAgICAgYm9vbCBtX3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOiAxOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggMDMzMjBiZmU2NmYyOTZiOWU1Mzk4ZWVkYTIxNzJiZTZhZjBiZGY1Yy4uOTA4YTAx
Y2FmOTExYjBiZTQ5MDkwMzBlNzU3NGQ0MmVlMWVmNTVkNSAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1w
bGVtZW1udGF0aW9uLgorCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuaDoKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgor
CiAyMDEwLTEyLTA3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBKb2huIFN1bGxpdmFuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRv
ckNsaWVudEltcGwuaAppbmRleCBhMTk0Mzk5M2FjN2FmNTg3MjNkZjlhOTRiZTMzZTUxNTVkYmI5
OWVkLi45ZGJkNmFmYjM3MWQ2NDEyYTBhZjIwZThkYjdiODUxOGM3ODg3ZTBlIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuaApAQCAtMTExLDYgKzExMSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV1RGOjpWZWN0b3I8V1RGOjpTdHJp
bmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUo
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENo
ZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogICAgIC8vIFNob3dzIHRoZSBm
b3JtIGF1dG9maWxsIHBvcHVwIGZvciB8bm9kZXwgaWYgaXQgaXMgYW4gSFRNTElucHV0RWxlbWVu
dCBhbmQKICAgICAvLyBpdCBpcyBlbXB0eS4gIFRoaXMgaXMgY2FsbGVkIHdoZW4geW91IHByZXNz
IHRoZSB1cCBvciBkb3duIGFycm93IGluIGEKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvQ2hhbmdl
TG9nIGIvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggY2ZiMmYxMTg5ZTQwNzFjZGNhNzAyN2U4
MWI2ZmRhMTc4ZWUzMjQ5MC4uYmViNjhkZTllNWViNjMxZGUwZTU0Y2Q5N2ZkZmY3NGZiOGM3MmNh
NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFk
ZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAtMTItMDMgIEFsZXggQnJlZGFy
aW9sIEdyaWxvICA8YWJncmlsb0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuaCBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmgKaW5kZXggYjEwOGFiNjY3MDc0OTRlNGMzODRiNjVmMDRhMjFjMzQ0MDU4OTI3NC4uZTI1
YjFlNmYwZjI0NGY4YjIyZDZjMjAzMmJkNzkzZjdmZWRjNDNjNiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC0xMTMsNiArMTEzLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQs
IGNvbnN0IFN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25z
dCBXVEY6OlN0cmluZyYpIHt9CiAKIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QgKm1fdmlldzsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNWFhNWU4YzBkNTE1NGMzZDAyNDA3MTc0MDZkZjdlYmY3OWZiYTIyMC4uNGIwMmY4NzFh
OWRhOTFmMzhmM2I4MzRjOWY2ODRiMDNmZTEyZWZjZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90
IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24u
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAgICAg
KFdlYktpdDo6RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisKIDIwMTAt
MTItMDggIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEu
Y28udWs+CiAKICAgICAgICAgQnVpbGQgZml4LiBUYWtlIHdlYlZpZXd7RW50ZXIsRXhpdH1GdWxs
c2NyZWVuIGJhY2sgb3V0IG9mIHRoZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmgKaW5kZXggMjI1NDNjNjE3ODRmNzNlMmNlODcwNzRkZWMwODcxNWJhYTA1NWU2
Ni4uZjJkYjFkOTk3ZTJjZjc2MGEyMTNmYzVkYzk3ZjMyYTA3YmEzYTExMiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0xMzIsNiArMTMyLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29y
ZChjb25zdCBXVEY6OlN0cmluZyYgd29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdU
Rjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgZ3Vlc3Nlcyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRN
ZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENo
ZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVja2VyKiwgaW50LCBjb25zdCBXVEY6OlN0
cmluZyYpIHt9CiAKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZp
ZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nIGIvV2ViS2l0L2hhaWt1L0No
YW5nZUxvZwppbmRleCA2NWE4M2Y5YjdlOWQ4ODQwOGJjMzRlYTRmZGQ2MzQwYmFhNWNlNWY3Li43
YjgxOGQzNmE3YjgxMjJiMmZiOGQ4ODQ5ZDNiZTM5OTNmZmRkYTZhIDEwMDY0NAotLS0gYS9XZWJL
aXQvaGFpa3UvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNo
ZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBs
ZW1lbW50YXRpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlr
dS5oOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50SGFpa3U6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKwogMjAxMC0xMi0wMSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5oIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmgKaW5kZXggY2ZkZTUxYzFiMjY2Nzg3NzJmZGJkYWZk
NTM4MDA0MmI4YjI3NDEwYi4uY2EyNzBlOTVjYjQyN2EzZWQ3YTA2NmYzZWUzMDEzOTM0OWUwNDY4
YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhh
aWt1LmgKKysrIGIvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1
LmgKQEAgLTExMCw2ICsxMTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmlu
ZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFNwZWxsQ2hlY2tlciosIGludCwgY29uc3QgU3RyaW5nJikge30K
IAogICAgICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGRhZTk2NTNhOTg2MDhj
MzJmMzA5OTYwZWYzNThhZjRmN2ZiYTJjMWUuLmU1OTliZjA5Y2NmOWJlZWE4ODlkMzBlNzg3ODVk
ODE2OTQ0YTIyNTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWpp
bWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKwor
ICAgICAgICBBZGRlZCBhc3luY2hyb25vdXMgc3BlbGwgY2hlY2tpbmcgQVBJIHRvIFdlYkVkaXRv
ckNsaWVudCB1c2luZworICAgICAgICAtW05TU3BlbGxDaGVja2VyIHJlcXVlc3RDaGVja2luZ09m
U3RyaW5nXS4KKyAgICAgICAgTm90ZSB0aGF0IFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIg
aXMgYSBzbWFsbCBjbGFzcyB0byByZWNlaXZlCisgICAgICAgIHJlcXVlc3RlZCBzcGVsbC1jaGVj
a2luZyByZXN1bHQuIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMKKyAgICAgICAgZGlzYWJsZWQg
YXQgZGVmYXVsdC4KKyAgICAgICAgCisgICAgICAgIEFsc28gYWRkZWQgW1dlYlByZWZlcmVuY2Vz
IHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOl0gdG8gCisgICAgICAgIGVuYWJs
ZSB0aGUgZmVhdHVyZSBmcm9tIExheW91dFRlc3RDb250cm9sbGVyLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9u
ZGVyIGluaXRXaXRoU2VuZGVyOldlYkNvcmU6OnNlcXVlbmNlOnJlc3VsdHM6XSk6CisgICAgICAg
ICgtW1dlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIgcGVyZm9ybV0pOgorICAgICAgICAodG9D
b3JlU3BlbGxpbmdSZXN1bHQpOgorICAgICAgICAoLVtXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9u
ZGVyIFdURjo6V2ViQ29yZTo6XSk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgr
W1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMg
c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlBy
ZWZlcmVuY2VzIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkXSk6CisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlv
bjpdKToKKwogMjAxMC0xMi0wOCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkBAIC0yMjM4LDYgKzIyNzAsMzIgQEAKIAog
MjAxMC0wOS0wOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMg
bm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEltcGxlbWVudGVkIGFzeW5jIHNwZWxsLWNo
ZWNrIEFQSXMgb24gV2ViRWRpdG9yQ2xpZW50LgorICAgICAgICBUaGUgaW1wbGVtZW50YXRpb25z
IGFyZSB1c2luZyBbTlNTcGVsbENoZWNrZXIgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmddCisgICAg
ICAgIHdoaWNoIGlzIGF2YWlsYWJsZSBvbmx5IG9uIE1hYyBPUyAxMC42IG9yIGxhdGVyLgorICAg
ICAgICAKKyAgICAgICAgTm90ZSB0aGF0IFtOU1NwZWxsQ2hlY2tlciByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZ10gY291bGQgaW52b2tlCisgICAgICAgIHRoZSBjYWxsYmFjayBibG9jayBvbiBvbiBv
ZiB0aGVpciB3b3JrZXIgdGhyZWFkLCBzbyB3ZSBuZWVkIHRvCisgICAgICAgIHJldHVybiB0aGUg
cmVzdWx0IHRvIHRoZSBtYWluIHRocmVhZCB3aGVyZSBXZWJDb3JlIGlzIHJ1bm5pbmcuCisgICAg
ICAgIEZvciB0aGF0IHB1cnBvc2UsIHdlIG1hZGUgV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRl
ciBjbGFzcy4KKyAgICAgICAgCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxj
aGVjay1wYXN0ZWQtdGV4dC0wMDEuaHRtbAorICAgICAgICAKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzQXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQpOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVj
a1Jlc3BvbmRlciBpbml0V2l0aFNlbmRlcjpXZWJDb3JlOjpzZXF1ZW5jZTpyZXN1bHRzOl0pOiBB
ZGRlZC4KKyAgICAgICAgKC1bV2ViRWRpdG9yU3BlbGxDaGVja1Jlc3BvbmRlciBwZXJmb3JtXSk6
IEFkZGVkLgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyk6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmg6CisKKzIwMTAt
MDktMDggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKICAgICAgICAgUmV2
aWV3ZWQgYnkgVG9ueSBDaGFuZy4KIAogICAgICAgICBzcGVsbGluZyB1bmRlcmxpbmUgZ2V0cyBs
b3N0IG9uIGJhY2tzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgKaW5kZXggOGI2ZTNmOTRmMDUzNDg4MzQ4NzMyYTk3N2NmNDdmZjY0NTBhMzE3NS4uOGE1
NGNhOWE1MjE2NzQ5OTEzODViNGQyNmMxOTM3NDM4YWUzOTAwZiAxMDA2NDQKLS0tIGEvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0xMzIsNiArMTMyLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBXVEY6OlN0cmluZyYg
d29yZCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRleHQsIFdURjo6VmVjdG9yPFdURjo6U3RyaW5n
PiYgZ3Vlc3Nlcyk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV2ViQ29yZTo6U3BlbGxDaGVj
a2VyKiwgaW50LCBjb25zdCBXVEY6OlN0cmluZyYpOwogI2lmICFkZWZpbmVkKEJVSUxESU5HX09O
X1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9TTk9XX0xFT1BBUkQpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb3JyZWN0aW9uUGFu
ZWwoV2ViQ29yZTo6Q29ycmVjdGlvblBhbmVsSW5mbzo6UGFuZWxUeXBlLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgV1RGOjpTdHJp
bmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBXVEY6OlN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcs
IGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0
cmluZ3MsIFdlYkNvcmU6OkVkaXRvciopOwogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29ycmVj
dGlvblBhbmVsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0g
Yi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0NTVh
YTlhZDFkMWQ4ZjIzM2ExN2ZlODZjZjdlYWJiMmRlMzk4OTA5Li5kM2IzOGRlMjM2NjhjNThjZmZm
NzViODAwYTk3YzRhYmMwNWRmZWE0IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNjMsNiArNjMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9MZWdh
Y3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgorI2ltcG9ydCA8V2ViQ29yZS9T
cGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0
b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KICNpbXBvcnQgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgpAQCAtOTkwLDMgKzk5MSw3MyBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKIHsKIH0KKworI2lmICFkZWZpbmVkKEJV
SUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorQGludGVy
ZmFjZSBXZWJFZGl0b3JTcGVsbENoZWNrUmVzcG9uZGVyIDogTlNPYmplY3QKK3sKKyAgICBXZWJD
b3JlOjpTcGVsbENoZWNrZXIqIF9zZW5kZXI7CisgICAgaW50IF9zZXF1ZW5jZTsKKyAgICBSZXRh
aW5QdHI8TlNBcnJheT4gX3Jlc3VsdHM7Cit9CistIChpZClpbml0V2l0aFNlbmRlcjooV2ViQ29y
ZTo6U3BlbGxDaGVja2VyKilzZW5kZXIgc2VxdWVuY2U6KGludClzZXF1ZW5jZSByZXN1bHRzOihO
U0FycmF5KilyZXN1bHRzOworLSAodm9pZClwZXJmb3JtOworLSAoV1RGOjpWZWN0b3I8V2ViQ29y
ZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4pIF9jb3JlUmVzdWx0czsKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFdlYkVkaXRvclNwZWxsQ2hlY2tSZXNwb25kZXIKKy0gKGlkKWluaXRXaXRoU2VuZGVy
OihXZWJDb3JlOjpTcGVsbENoZWNrZXIqKXNlbmRlciBzZXF1ZW5jZTooaW50KXNlcXVlbmNlIHJl
c3VsdHM6KE5TQXJyYXkqKXJlc3VsdHMKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAg
IGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBfc2VuZGVyID0gc2VuZGVyOwor
ICAgIF9zZXF1ZW5jZSA9IHNlcXVlbmNlOworICAgIF9yZXN1bHRzID0gcmVzdWx0czsKKyAgICBy
ZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClwZXJmb3JtCit7CisgICAgX3NlbmRlci0+ZGlkQ2hl
Y2soX3NlcXVlbmNlLCBbc2VsZiBfY29yZVJlc3VsdHNdKTsKK30KKworc3RhdGljIFNwZWxsQ2hl
Y2tpbmdSZXN1bHQgdG9Db3JlU3BlbGxpbmdSZXN1bHQoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJl
c3VsdCkKK3sKKyAgICBOU1RleHRDaGVja2luZ1R5cGUgdHlwZSA9IFtyZXN1bHQgcmVzdWx0VHlw
ZV07CisgICAgTlNSYW5nZSByYW5nZSA9IFtyZXN1bHQgcmFuZ2VdOworICAgIERvY3VtZW50TWFy
a2VyOjpNYXJrZXJUeXBlIGNvcmVUeXBlOworICAgIGlmICh0eXBlICYgTlNUZXh0Q2hlY2tpbmdU
eXBlU3BlbGxpbmcpCisgICAgICAgIGNvcmVUeXBlID0gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5n
OworICAgIGVsc2UgaWYgKHR5cGUgJiBOU1RleHRDaGVja2luZ1R5cGVHcmFtbWFyKQorICAgICAg
ICBjb3JlVHlwZSA9IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgIGVsc2UKKyAgICAgICAg
Y29yZVR5cGUgPSBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2VyczsKKworICAgIHJldHVybiBTcGVs
bENoZWNraW5nUmVzdWx0KGNvcmVUeXBlLCByYW5nZS5sb2NhdGlvbiwgcmFuZ2UubGVuZ3RoKTsK
K30KKworLSAoV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4pX2NvcmVS
ZXN1bHRzCit7CisgICAgV1RGOjpWZWN0b3I8V2ViQ29yZTo6U3BlbGxDaGVja2luZ1Jlc3VsdD4g
Y29yZVJlc3VsdHM7CisgICAgY29yZVJlc3VsdHMucmVzZXJ2ZUNhcGFjaXR5KFtfcmVzdWx0cy5n
ZXQoKSBjb3VudF0pOworICAgIGZvciAoTlNUZXh0Q2hlY2tpbmdSZXN1bHQqIHJlc3VsdCBpbiBf
cmVzdWx0cy5nZXQoKSkKKyAgICAgICAgY29yZVJlc3VsdHMuYXBwZW5kKHRvQ29yZVNwZWxsaW5n
UmVzdWx0KHJlc3VsdCkpOworICAgIHJldHVybiBjb3JlUmVzdWx0czsKK30KKworQGVuZAorI2Vu
ZGlmCisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJD
b3JlOjpTcGVsbENoZWNrZXIqIHNlbmRlciwgaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRl
eHQpCit7CisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxE
SU5HX09OX0xFT1BBUkQpCisgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKDAsIHRleHQu
bGVuZ3RoKCkpOworICAgIE5TUnVuTG9vcCogY3VycmVudExvb3AgPSBbTlNSdW5Mb29wIGN1cnJl
bnRSdW5Mb29wXTsKKyAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVx
dWVzdENoZWNraW5nT2ZTdHJpbmc6dGV4dCByYW5nZTpyYW5nZSB0eXBlczpOU1RleHRDaGVja2lu
Z0FsbFN5c3RlbVR5cGVzIG9wdGlvbnM6MCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOjAgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNJbnRlZ2VyLCBOU0FycmF5KiByZXN1bHRzLCBOU09ydGhvZ3JhcGh5KiwgTlNJbnRlZ2VyKSB7
CisgICAgICAgICAgICBbY3VycmVudExvb3AgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihwZXJm
b3JtKSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6W1tbV2ViRWRp
dG9yU3BlbGxDaGVja1Jlc3BvbmRlciBhbGxvY10gaW5pdFdpdGhTZW5kZXI6c2VuZGVyIHNlcXVl
bmNlOnNlcXVlbmNlIHJlc3VsdHM6cmVzdWx0c10gYXV0b3JlbGVhc2VdCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50Om5pbCBvcmRlcjowIG1vZGVzOltOU0FycmF5IGFy
cmF5V2l0aE9iamVjdDpOU0RlZmF1bHRSdW5Mb29wTW9kZV1dOworICAgICAgICB9XTsKKyNlbmRp
ZgorfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmlu
ZGV4IDVjNmI1MzAxMDM2ZGIzYTRkNTI1Mzg5ZGNkYTViNTM2MThjNDY5NTguLjkzZjgzZmM1MTVh
YTk2NzJlZjMzZWYwNjMzZGExM2U1MzQ1MmRhNTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTk5LDYgKzk5LDcgQEAKICNkZWZpbmUgV2Vi
S2l0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFBhZ2lu
YXRlRHVyaW5nTGF5b3V0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RE5TUHJlZmV0Y2hpbmdFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZCIKICNkZWZpbmUg
V2ViS2l0RnVsbFNjcmVlbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RnVsbFNjcmVlbkVu
YWJsZWQiCisjZGVmaW5lIFdlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkIgogI2Rl
ZmluZSBXZWJLaXRNZW1vcnlJbmZvRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNZW1vcnlJ
bmZvRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCIKIApkaWZmIC0tZ2l0IGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IGUwODQ0MjU0YjkzMWIzYWVjNTNiOWNkZGNmNzQ4ZTQx
YmQ0ZTUyMDEuLjM4MTdkNGFjMjZhZWI5ZTFkZWYxYmM3NDY4ZGZlZDYxN2VhM2I2NDAgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTM2Nyw2ICszNjcsNyBAQCBzdGF0aWMg
V2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1bmRsZSh2b2lkKQogICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAg
V2ViS2l0RE5TUHJlZmV0Y2hpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVu
Y2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0QXN5
bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdE1lbW9yeUluZm9FbmFibGVkUHJlZmVy
ZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRI
eXBlcmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzS2V5LApA
QCAtMTM5Myw2ICsxMzk0LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9
IG5pbDsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRGdWxsU2NyZWVu
RW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistICh2b2lkKXNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZs
YWcgZm9yS2V5OldlYktpdEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkUHJlZmVyZW5j
ZUtleV07Cit9CisKKy0gKEJPT0wpYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQKK3sK
KyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiArICh2b2lkKXNldFdlYktpdExp
bmtUaW1lVmVyc2lvbjooaW50KXZlcnNpb24KIHsKICAgICBzZXRXZWJLaXRMaW5rVGltZVZlcnNp
b24odmVyc2lvbik7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
aW5kZXggMmVlMDdkN2U1OWQwMTExMGQyZDUzNjQwZWVmYTZjNGUzMzM0NGQwZi4uODliNjI4OGJl
YmEzODRhMTM0NWIwMjM0MzljMjQwNjgwM2M1MGQ2ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMjIxLDYgKzIyMSw5IEBAIGV4dGVybiBOU1N0cmlu
ZyAqV2ViUHJlZmVyZW5jZXNSZW1vdmVkTm90aWZpY2F0aW9uOwogLSAodm9pZClzZXRGdWxsU2Ny
ZWVuRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTClmdWxsU2NyZWVuRW5hYmxlZDsKIAorLSAo
dm9pZClzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnOworLSAo
Qk9PTClhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDsKKwogLSAodm9pZClzZXRVc2VQ
cmVIVE1MNVBhcnNlclF1aXJrczooQk9PTClmbGFnOwogLSAoQk9PTCl1c2VQcmVIVE1MNVBhcnNl
clF1aXJrczsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA1MjdiNTYzNmM4Y2EwMGRmNzQwZjli
ODZhODk5ZTc1OWIxNzY0NWQwLi5lZTYyZjYxNzdlZmEyN2FlNjIyZTFmOGRhOTNhOTUwMGE3MjA4
YzEyIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTUwNSw2ICsxNTA1LDEwIEBAIHN0YXRpYyBi
b29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQogICAgIHNldHRpbmdzLT5zZXRGdWxsU2NyZWVuRW5hYmxlZChbcHJlZmVyZW5jZXMgZnVs
bFNjcmVlbkVuYWJsZWRdKTsKICNlbmRpZgorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VS
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQorICAgIC8vIEFzeW5jaHJvbm91cyBz
cGVsbCBjaGVja2luZyBBUEkgaXMgYXZhaWxhYmxlIGZvciAxMC42IG9yIGxhdGVyLgorICAgIHNl
dHRpbmdzLT5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChbcHJlZmVyZW5jZXMg
YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdKTsKKyNlbmRpZgogICAgIHNldHRpbmdz
LT5zZXRNZW1vcnlJbmZvRW5hYmxlZChbcHJlZmVyZW5jZXMgbWVtb3J5SW5mb0VuYWJsZWRdKTsK
ICAgICBzZXR0aW5ncy0+c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBo
eXBlcmxpbmtBdWRpdGluZ0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0VXNlUHJlSFRNTDVQ
YXJzZXJRdWlya3MoW3NlbGYgX25lZWRzUHJlSFRNTDVQYXJzZXJRdWlya3NdKTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGRiZGFk
ZjQ3NWI4NjUzODkwNTEyNWNiMzE4Y2YyYzM3YzE2ZjljYWQuLjA5OTE0YWYyNjljODA2MmU2ZTg5
ODgzMmYxOGZhNmQxYjY3NTRmNzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTEwLTI4ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sgZG9lcyBub3QgY2hlY2sgcGFzdGVk
IHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MDkyCisKKyAgICAgICAgQWRkZWQgYSBzdHViIGltcGxlbWVtbnRhdGlvbi4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRRdDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEyLTA4ICBRaSBa
aGFuZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5l
dGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50UXQuaAppbmRleCBkZWZhOGJiOTk3NjEzZThjZDQxNWQ0NTkwY2IzOGJhNjgwZmE3YjFlLi4x
ZTQxMGU2ZDdlZDM0YjM5OGZmMmUwMGI2MmU0ZGViOTE3OGY0NGNmIDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBj
b25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFN0cmluZyYpIHt9CiAK
ICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0No
YW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGMwMjgwYWVlOThkNTQ4YzQzODIw
ZjJhMjQzOGEwZWM2MmMyYTE3NDguLmFjNzkwZjFmNmNlYzUyYWIxNmFiYjViMWIxNjJiZDNmMTc1
YzkzNTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgc3BlbGxjaGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAg
ICBBZGRlZCBhIHN0dWIgaW1wbGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMi0wNyAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5z
dGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBTdWxsaXZhbi4KZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCmluZGV4IGYwYjc4YmEy
ZDVlZWRmNzRhMDJhM2Q3NWUzZjcwNzI2MDQ4YjAzYTkuLjM1OGEzNjU2YTZkZjYwNGIxMjJhMDlk
MGQwZWExMDVlYWZhNDg5MTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuaApAQCAtMTExLDYgKzExMSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1l
dGhvZFN0YXRlKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAog
cHJpdmF0ZToKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCAzMWY1NTQzMmEzNGFk
MTcyOGJhY2M0MmQ5MzAwMzYxY2U1NmJhOTMxLi5iZTUyOTk0NjA1OThiOTQ4MGNkMDQ5MTQ4OTM2
YzUxMDIwYzZlOGFkIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRB
IEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5
MgorCisgICAgICAgIEFkZGVkIGEgc3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5oOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKwogMjAxMC0xMi0wNyAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjczMzkyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFdpbkNFLmggYi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50V2luQ0UuaAppbmRleCBmZDNkZDEwYzQ2YTFhYWU3YTQyM2E5NjUxMDQ4OGMwYmQ1
ZTFlZTU3Li44ZGI4YzE2ODQ2MmY4ZGRiM2MwMGFjN2RjNGMxZTc2ZGNkNDliZmFkIDEwMDY0NAot
LS0gYS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaAorKysg
Yi9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuaApAQCAtMTAw
LDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3Jl
OjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJpdmF0ZToK
ICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9XZWJLaXQvd3gvQ2hhbmdlTG9n
IGIvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRleCBhZTdmMjQwY2UyMWE5YWFiMTEyZGVmMTE4Njk4
MDcyNDhiNWM0NjIyLi4wYjdhOGFmOGViZmMwOWY2YmI4NmI5MGZhNTc1YTZiNWM1NGQyZGI3IDEw
MDY0NAotLS0gYS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93eC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMC0xMC0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBzcGVsbGNoZWNrIGRvZXMgbm90IGNoZWNrIHBhc3RlZCB0ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA5MgorCisgICAgICAgIEFkZGVkIGEg
c3R1YiBpbXBsZW1lbW50YXRpb24uCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNs
aWVudFd4Lmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcpOgorCiAyMDEwLTEyLTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzMzOTIuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5oIGIvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guaAppbmRleCAzNWE5NWFiYzhhOTRh
MGY2ODgzMzZlMWQ4OTY2YzdjYjUzZGY5NTJlLi43ZGJlZTMxYTVmOTQ0YTQ4ZGRjZDMxZGQ1Yjhh
OGUwMmE1MmU2YmYwIDEwMDY0NAotLS0gYS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JD
bGllbnRXeC5oCisrKyBiL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmgK
QEAgLTExMiw2ICsxMTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElu
cHV0TWV0aG9kU3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sIGVuYWJsZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhX
ZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJikge30KIAogcHJp
dmF0ZToKICAgICBQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJiZjQwMWNiMTU5NjQ4MjBlNjM0MmM3OTBjODZkZjVk
MmU3ZjBiZGUuLmQyZTZjOThmZjAyOWViYmFkZjgwYzNiNjJiMWI3ODlmNmJkNTlhMmUgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTAtMTAtMjggIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxj
aGVjayBkb2VzIG5vdCBjaGVjayBwYXN0ZWQgdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwOTIKKworICAgICAgICBBZGRlZCBhIHN0dWIgaW1w
bGVtZW1udGF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDEwLTEyLTA4ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgIkVycm9yIiBHYXJlbi4KZGlm
ZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKaW5kZXggZjgzZmM5MGViNjA2MzY5MmNiMGQyYmMxZDczYmFiYjgxZTk3MTcwZi4uYmFh
N2VhYjcxMDFkZWZmMWIzOTIxODA5OTVmYjVlODgxNWY4M2VkYyAxMDA2NDQKLS0tIGEvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQw
OCw0ICs0MDgsOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShi
b29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0
IFdURjo6U3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaAppbmRleCBjY2RhZjQzMDMyZGVmY2VkMWNhOWIwOWQ1MjhkMTg3Yjli
Y2E1YjMzLi4xZTM0MGRkYTk0MWZlOGQ5YzBiYmU5OGNmYTM2ZGIwMjRjYTY2N2IxIDEwMDY0NAot
LS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgK
KysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
CkBAIC0xMzMsNiArMTMzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nl
c0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3Rv
cjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJs
ZWQpOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpT
cGVsbENoZWNrZXIqLCBpbnQsIGNvbnN0IFdURjo6U3RyaW5nJik7CiAjaWYgUExBVEZPUk0oTUFD
KSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05f
TEVPUEFSRCkgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQogICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OkNvcnJlY3Rpb25QYW5lbEluZm86
OlBhbmVsVHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFj
ZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2Vt
ZW50U3RyaW5ncywgV2ViQ29yZTo6RWRpdG9yKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3ND
b3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0NvcnJlY3Rpb25QYW5l
bCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJLaXRUb29scy9DaGFu
Z2VMb2cKaW5kZXggNzdmY2FmMzA1ZmNiODFjYzYzYTEzMDZhZTcxZjYwZWNhZjJlZWYyZi4uMzQz
ZDRlOWE4MTQ0NGJmMjJjYTJjNmE2NjBlYWU0NzM4OWVhZjEzYyAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDEwLTEwLTI4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsY2hlY2sg
ZG9lcyBub3QgY2hlY2sgcGFzdGVkIHRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwMDkyCisKKyAgICAgICAgQWRkZWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKKyAgICAgICAgdG8g
Y29udHJvbCB0aGUgc2V0dGluZy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkQ2FsbGJhY2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1
bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJv
bGxlcik6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNp
c3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29u
dHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCk6CisKIDIwMTAtMTItMDggIFdpbGxpYW0gU2llZ3Jpc3QgPHdzaWVncmlzdEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYTIy
NTc5YWQ4OTkxZjUxZmYwNjQxOTU5ZWI0YjI2ZWE0ZTFlMWYzYS4uODBkYjhiZWQ4MjM5NzMwZWY0
MWFjMTczYmRlNDY0NGQ1NWE1MDIwZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTUwMSw2ICsxNTAxLDE2IEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5j
dGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0
IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBp
ZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3Rh
dGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7CisgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBz
aG93V2ViSW5zcGVjdG9yQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewog
ICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0
VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjAx
Nyw2ICsyMDI3LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0
YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFdpbmRvd0lzS2V5Iiwgc2V0V2luZG93SXNL
ZXlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkIiwgc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZENhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInNldFhTU0F1ZGl0b3JFbmFibGVkIiwgc2V0WFNTQXVkaXRvckVuYWJsZWRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCIsIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2hvd1dlYkluc3BlY3RvciIsIHNob3dXZWJJbnNwZWN0b3JDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0T25zY3JlZW4iLCB0ZXN0T25zY3JlZW5DYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0ZXN0UmVwYWludCIsIHRlc3RSZXBhaW50Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCmluZGV4IDJlOWM4NTY5ZDk3YzkyYWMxOWZhNDMzODA3OGMzZTZiMmYyZTNl
YjEuLjllOGU2MmM3YWU1NzgyOGEyMThmOTQ5NjkyNGNhYzJjMjZhNmFlMmUgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjcx
LDYgKzI3MSw3IEBAIHB1YmxpYzoKICAgICBib29sIGdlb2xvY2F0aW9uUGVybWlzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uOyB9CiAKICAgICB2b2lkIHNldERl
dmVsb3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAg
ICB2b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBzZXRUaW1lbGluZVByb2ZpbGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBhNTUw
NzBlOTgyNzI3NzZmNDY4YzRjOTQyMGNjMzE0NTFjMGM5NjUzLi40NTAzNmY3YWQ5MzU0NDk4MzYz
OWMzYmY5NDA1ZmRiZWQwNTQ4NjQ4IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNjYs
NiArMTY2LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRl
c3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJu
c051bGxPblJlZGlyZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaWxsU2VuZFJlcXVl
c3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QpOwogICAgIGJpbmRNZXRob2QoInNldFdpbmRvd0lzS2V5
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleSk7CiAgICAgYmluZE1ldGhv
ZCgic2V0WFNTQXVkaXRvckVuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFhTU0F1
ZGl0b3JFbmFibGVkKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNob3dXZWJJbnNwZWN0b3IiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IpOwogICAgIGJpbmRNZXRob2QoInNp
bXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpz
aW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayk7CiAgICAgYmluZE1ldGhvZCgic3VzcGVu
ZEFuaW1hdGlvbnMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN1c3BlbmRBbmltYXRpb25zKTsK
QEAgLTYxOSw2ICs2MjAsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWx3YXlz
QWNjZXB0Q29va2llcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW4KICAgICByZXN1bHQt
PnNldE51bGwoKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorfQorCiB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzaG93V2ViSW5zcGVjdG9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3NoZWxsLT5zaG93RGV2VG9vbHMoKTsKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCmluZGV4IDc1ODE3ODE0MjdjZDQ2Zjc1NjdlMTgzOTNiZTZlY2JiNGQzMDMy
MTcuLjg2MDBhM2JlMTgyMzdhOTEwN2ZhNTE3MzNkNDNjNDQ3MDczODcxOGEgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuaApAQCAtMTUxLDYgKzE1MSw5IEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRo
ZSBjb29raWUgcG9saWN5IGZyb20gdGhlIGRlZmF1bHQgdG8gYWxsb3cgYWxsIGNvb2tpZXMuCiAg
ICAgdm9pZCBzZXRBbHdheXNBY2NlcHRDb29raWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKIAorICAgIC8vIENoYW5nZXMgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcg
ZmxhZyBvbiB0aGUgc2V0dGluZ3MuCisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKICAgICAv
LyBTaG93cyBEZXZUb29scyB3aW5kb3cuCiAgICAgdm9pZCBzaG93V2ViSW5zcGVjdG9yKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGNsb3NlV2ViSW5zcGVj
dG9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCmluZGV4IDgzODc0ZjRhZWVjZDM5ODNiMDViMmIyNGQ3MmYzYmIyMzZjMmFkNDIuLmYwMmIy
NzI3NmZhNGNjYzhlZGVkYTJlNzVhNThlZGExMjIyYTQ5Y2UgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cApAQCAtNzI3LDYgKzcyNywxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBnX29iamVjdF9zZXQod2ViU2V0
dGluZ3MsICJlbmFibGUtZGV2ZWxvcGVyLWV4dHJhcyIsIGVuYWJsZWQsIE5VTEwpOwogfQogCit2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZChib29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAgV2ViS2l0V2Vi
Vmlldyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0K
aW5kZXggYzA4YWVlNWYxZjAwOTA3ZGMwMjdmNmZjMmI2N2Y5ZTM2ZmQxMjdmNy4uNWNmNjBlZjIy
ODEyMzNhMjY2ZjVjZjM1ZTExYTliZGQ0ZjIzNzNlZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtNDYxLDYgKzQ2MSw3IEBAIHN0
YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJl
bmNlcyBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJl
bmNlcyBzZXRXZWJHTEVuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRVc2VQcmVIVE1M
NVBhcnNlclF1aXJrczpOT107CisgICAgW3ByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkOk5PXTsKIAogICAgIFtbTlNIVFRQQ29va2llU3RvcmFnZSBzaGFyZWRI
VFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llQWNjZXB0UG9saWN5Ok5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluXTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmlu
ZGV4IGJlM2ViMDk5ZjZiNTMxNmFhNGFkOGY4ZjM3ODA3MzQ4NDJmNmNmYmUuLjUxODI1ZmRkMWZm
OTQwOWJmNTBmMTEyYzYyMDI5YzFmMjhmNWJhN2YgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTc0
Niw2ICs3NDYsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZl
cmVuY2VzXSBzZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkOmVuYWJsZWRdOwogfQogCit2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChi
b29sIGVuYWJsZWQpCit7CisgICAgW1tbbWFpbkZyYW1lIHdlYlZpZXddIHByZWZlcmVuY2VzXSBz
ZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZDplbmFibGVkXTsKK30KKwogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAgW1tbbWFpbkZy
YW1lIHdlYlZpZXddIGluc3BlY3Rvcl0gc2hvdzpuaWxdOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCA4
YjQ5NWJlMzZmNDVlNDgyZDE1ZWYzMjg3YzhhZGI0NGNjNWU5NGY2Li5lZjE0YjAzYTg5ZTIxZmIx
MmQyYzdjYmE5ZWVhZGE5ZDAxN2E5NGQ2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtMzgzLDYgKzM4
MywxMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX2RydC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRB
dHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCBlbmFibGVkKTsK
IH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVj
a2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisK
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNob3dXZWJJbnNwZWN0b3IoKQogewogICAgIG1f
ZHJ0LT53ZWJQYWdlKCktPnNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OkRl
dmVsb3BlckV4dHJhc0VuYWJsZWQsIHRydWUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDliYTIzNjQ1MTJh
NDA1MjkzYTYwMzk4ZWI1M2I4MjI2NGY1N2E0MmUuLjhlZGRmN2MyY2FhZTljYmI0MDQ4OTYwNTBk
ZWY2Njc1ZjZhZjM3NzcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTEzOCw2ICsxMzgsNyBAQCBwdWJsaWMg
c2xvdHM6CiAgICAgUVN0cmluZyBkZWNvZGVIb3N0TmFtZShjb25zdCBRU3RyaW5nJiBob3N0KTsK
ICAgICB2b2lkIGR1bXBTZWxlY3Rpb25SZWN0KCkgY29uc3Qge30KICAgICB2b2lkIHNldERldmVs
b3BlckV4dHJhc0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNob3dXZWJJbnNwZWN0b3IoKTsKICAgICB2
b2lkIGNsb3NlV2ViSW5zcGVjdG9yKCk7CiAgICAgdm9pZCBldmFsdWF0ZUluV2ViSW5zcGVjdG9y
KGxvbmcgY2FsbElkLCBjb25zdCBRU3RyaW5nJiBzY3JpcHQpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAK
aW5kZXggYjFhNGVmNGVjMzlmYjdiYzEyYWEwMDE1OTA4ZDQyZmIxNzEwYTRlZC4uY2MyNmQ1MzA5
YTE3MzBlYmEzYTNkNTQxZjVkOTk5Yzc3NzI4YjhhZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBA
IC0xMTc0LDYgKzExNzQsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGV2ZWxv
cGVyRXh0cmFzRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgcHJlZnNQcml2YXRlLT5zZXREZXZl
bG9wZXJFeHRyYXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2hvd1dlYkluc3BlY3RvcigpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwpkaWZm
IC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xs
ZXJXeC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcAppbmRleCAxMjBhMWI2NjM3YmRiZjQ0MWY2YWJmMmM1MzYyMmI2OWM1NjZlNzIw
Li4zMDMxYWM5NWNlMDU0ZDM4MmU4NjVlN2NhYTRhNjZlZjA1NjBhMWFiIDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAor
KysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcApAQCAtNTI5LDYgKzUyOSwxMSBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGludCBwYQogICAgIHJl
dHVybiAwOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBc3luY2hyb25vdXNT
cGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhp
cy4KK30KKwogYm9vbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZmluZFN0cmluZyhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNTdHJpbmdSZWYgdGFyZ2V0LCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkp
CiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudAo=
</data>
<flag name="review"
          id="66893"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
      

    </bug>

</bugzilla>