<?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>71575</bug_id>
          
          <creation_ts>2011-11-04 11:14:52 -0700</creation_ts>
          <short_desc>WebSQLDatabase could use some better error reporting.</short_desc>
          <delta_ts>2011-11-29 13:35:29 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Nordman">michaeln</reporter>
          <assigned_to name="Michael Nordman">michaeln</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>japhet</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>496329</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-04 11:14:52 -0700</bug_when>
    <thetext>I&apos;m getting reports of errors opening databases and starting transactions, but there&apos;s not much to go on in these reports beyond the WebSQLError code which isn&apos;t very informative. See http://code.google.com/p/chromium/issues/detail?id=98939

I plan on adding some console logging and also building a way for errors in webcore to get reported in chrome&apos;s &apos;histogram&apos; logging mechanism to aggregate information about specific errors at specific callsites (see about:histogram in chrome).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496335</commentid>
    <comment_count>1</comment_count>
      <attachid>113683</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-04 11:22:43 -0700</bug_when>
    <thetext>Created attachment 113683
addMessage from bgThread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496357</commentid>
    <comment_count>2</comment_count>
      <attachid>113683</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-04 11:47:14 -0700</bug_when>
    <thetext>Comment on attachment 113683
addMessage from bgThread

Attachment 113683 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10337040</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496389</commentid>
    <comment_count>3</comment_count>
      <attachid>113697</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-04 12:29:55 -0700</bug_when>
    <thetext>Created attachment 113697
addMessage from bgThread

make efl happy with this too (hopefully)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496390</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 12:33:01 -0700</bug_when>
    <thetext>Attachment 113697 did not pass style-queue:

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

Source/WebCore/dom/ScriptExecutionContext.h:172:  The parameter name &quot;context&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 5 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>496391</commentid>
    <comment_count>5</comment_count>
      <attachid>113698</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-04 12:35:48 -0700</bug_when>
    <thetext>Created attachment 113698
addMessage from bgThread

style change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496410</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-04 13:25:27 -0700</bug_when>
    <thetext>horray for bot happiness :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496419</commentid>
    <comment_count>7</comment_count>
      <attachid>113698</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-11-04 13:35:06 -0700</bug_when>
    <thetext>Comment on attachment 113698
addMessage from bgThread

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

Ok.

What happens when addMessage() is called currently?

&gt; Source/WebCore/ChangeLog:9
&gt; +        No new tests.
&gt; +

Is this testable yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496439</commentid>
    <comment_count>8</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-04 13:46:58 -0700</bug_when>
    <thetext>&gt; What happens when addMessage() is called currently?

Its not called on anything other than the &apos;context&apos; thread, it&apos;s not thread safe.

&gt; Is this testable yet?

Nothing calls this method on a bg thread yet, when there are new calls to it that affect console output related layout tests (whose expectations include the console output) will get updated to check for that output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496503</commentid>
    <comment_count>9</comment_count>
      <attachid>113698</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 15:24:32 -0700</bug_when>
    <thetext>Comment on attachment 113698
addMessage from bgThread

Clearing flags on attachment: 113698

Committed r99328: &lt;http://trac.webkit.org/changeset/99328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496504</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 15:24:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496515</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-04 15:46:55 -0700</bug_when>
    <thetext>reopening for subsequent patches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498592</commentid>
    <comment_count>12</comment_count>
      <attachid>114192</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-08 18:36:21 -0800</bug_when>
    <thetext>Created attachment 114192
dberrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498608</commentid>
    <comment_count>13</comment_count>
      <attachid>114192</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 19:21:08 -0800</bug_when>
    <thetext>Comment on attachment 114192
dberrors

Attachment 114192 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10374281

New failing tests:
storage/test-authorizer.html
storage/change-version-handle-reuse.html
storage/open-database-creation-callback.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498611</commentid>
    <comment_count>14</comment_count>
      <attachid>114199</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-08 19:32:45 -0800</bug_when>
    <thetext>Created attachment 114199
dberrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498623</commentid>
    <comment_count>15</comment_count>
      <attachid>114199</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 20:23:58 -0800</bug_when>
    <thetext>Comment on attachment 114199
dberrors

Attachment 114199 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10377117

New failing tests:
storage/test-authorizer.html
storage/change-version-handle-reuse.html
storage/open-database-creation-callback.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499354</commentid>
    <comment_count>16</comment_count>
      <attachid>114367</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-09 14:26:16 -0800</bug_when>
    <thetext>Created attachment 114367
dberrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500233</commentid>
    <comment_count>17</comment_count>
      <attachid>114558</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-10 13:44:53 -0800</bug_when>
    <thetext>Created attachment 114558
dberrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500235</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-10 13:47:41 -0800</bug_when>
    <thetext>Attachment 114558 did not pass style-queue:

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

Source/WebCore/storage/AbstractDatabase.h:98:  The parameter name &quot;ec&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 18 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>500238</commentid>
    <comment_count>19</comment_count>
      <attachid>114560</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-10 13:49:42 -0800</bug_when>
    <thetext>Created attachment 114560
dberrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500319</commentid>
    <comment_count>20</comment_count>
      <attachid>114581</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-10 14:54:42 -0800</bug_when>
    <thetext>Created attachment 114581
dberrors

update layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500358</commentid>
    <comment_count>21</comment_count>
      <attachid>114589</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-10 15:47:12 -0800</bug_when>
    <thetext>Created attachment 114589
dberrors

layout tests for .lastErrorMessage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500364</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-10 15:51:14 -0800</bug_when>
    <thetext>ptal, i still want to return a formatted openDatabase[Sync] error message to the caller in some way, in this patch those messages only get put on the js console, but this patch is large enough already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500449</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-10 18:04:37 -0800</bug_when>
    <thetext>adding some reviewers to the cc list</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500459</commentid>
    <comment_count>24</comment_count>
      <attachid>114589</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-10 18:15:35 -0800</bug_when>
    <thetext>Comment on attachment 114589
dberrors

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Tests are in the works, just not in this snapshot yet.

I&apos;m confused, so is this ready for review?

&gt; Source/WebCore/ChangeLog:15
&gt; +        (WebCore::SQLiteDatabase::open):

The changelog ideally guides the reviewer through why changes were done in particular function so they don&apos;t have to reconstruct it.

For example, I don&apos;t know why m_openError was added in here and being used. I&apos;m sure this is obvious to you, and I could piece it together by spending enough time on it but I&apos;d rather not :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500764</commentid>
    <comment_count>25</comment_count>
      <attachid>114589</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-11 07:35:57 -0800</bug_when>
    <thetext>Comment on attachment 114589
dberrors

Per previous comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501022</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-11 13:05:35 -0800</bug_when>
    <thetext>&gt; &gt; +        Tests are in the works, just not in this snapshot yet.
&gt; I&apos;m confused, so is this ready for review?

I just forgot to update the change log, please see the updated tests that are also in the patch.

&gt; &gt; +        (WebCore::SQLiteDatabase::open):
&gt; The changelog ideally guides the reviewer through why changes were done in particular function so they don&apos;t have to reconstruct it.
&gt; 
&gt; For example, I don&apos;t know why m_openError was added in here and being used. I&apos;m sure this is obvious to you, and I could piece it together by spending enough time on it but I&apos;d rather not :).

Sure, i&apos;ll add some comments in the ChangeLog and prepare a new patch.

To answer your question here, the reason is to allow the lastError() and lastErrorMsg() methods to reflect errors experienced in the open() method as well as the other methods... right details of errors in open() are not available to consumers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501138</commentid>
    <comment_count>27</comment_count>
      <attachid>114781</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-11 15:02:42 -0800</bug_when>
    <thetext>Created attachment 114781
dberrors

fixed changelog comments, added console logging for vacuum errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501141</commentid>
    <comment_count>28</comment_count>
      <attachid>114782</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-11 15:08:15 -0800</bug_when>
    <thetext>Created attachment 114782
dberrors

really this time... log to the console errors when vacuuming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501152</commentid>
    <comment_count>29</comment_count>
      <attachid>114784</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-11 15:16:21 -0800</bug_when>
    <thetext>Created attachment 114784
dberrors

reverted the unintentional xcode project file changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501159</commentid>
    <comment_count>30</comment_count>
      <attachid>114784</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-11 15:22:19 -0800</bug_when>
    <thetext>Comment on attachment 114784
dberrors

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

Tnis could go in as is. Here are some nice to haves but not critical:
 Would be nice to clean up the duplicate strings.

&gt; Source/WebCore/storage/ChangeVersionWrapper.cpp:55
&gt; +                                      transaction-&gt;database()-&gt;sqliteDatabase().lastErrorMsg());

Somehow the repeat of &quot;transaction-&gt;database()-&gt;sqliteDatabase()&quot; bothers me. (It would be nice to do only once.)

&gt; Source/WebCore/storage/ChangeVersionWrapper.cpp:74
&gt; +                                      transaction-&gt;database()-&gt;sqliteDatabase().lastErrorMsg());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501191</commentid>
    <comment_count>31</comment_count>
      <attachid>114784</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-11 15:58:49 -0800</bug_when>
    <thetext>Comment on attachment 114784
dberrors

Attachment 114784 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10450622</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501206</commentid>
    <comment_count>32</comment_count>
      <attachid>114784</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-11 16:15:45 -0800</bug_when>
    <thetext>Comment on attachment 114784
dberrors

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

&gt; Source/WebCore/storage/AbstractDatabase.cpp:536
&gt; +        if (result != SQLResultOK)

ooops... got the wrong symbol here s/b SQLResultOk (lower k)

&gt;&gt; Source/WebCore/storage/ChangeVersionWrapper.cpp:55
&gt;&gt; +                                      transaction-&gt;database()-&gt;sqliteDatabase().lastErrorMsg());
&gt; 
&gt; Somehow the repeat of &quot;transaction-&gt;database()-&gt;sqliteDatabase()&quot; bothers me. (It would be nice to do only once.)

done

&gt;&gt; Source/WebCore/storage/ChangeVersionWrapper.cpp:74
&gt;&gt; +                                      transaction-&gt;database()-&gt;sqliteDatabase().lastErrorMsg());
&gt; 
&gt; Ditto.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501215</commentid>
    <comment_count>33</comment_count>
      <attachid>114784</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-11 16:30:36 -0800</bug_when>
    <thetext>Comment on attachment 114784
dberrors

Attachment 114784 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10396584</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501255</commentid>
    <comment_count>34</comment_count>
      <attachid>114805</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-11 17:26:19 -0800</bug_when>
    <thetext>Created attachment 114805
dberrors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502069</commentid>
    <comment_count>35</comment_count>
      <attachid>114978</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-14 10:31:54 -0800</bug_when>
    <thetext>Created attachment 114978
dberrors (patch for landing)

patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502141</commentid>
    <comment_count>36</comment_count>
      <attachid>114978</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-14 11:47:05 -0800</bug_when>
    <thetext>Comment on attachment 114978
dberrors (patch for landing)

Clearing flags on attachment: 114978

Committed r100172: &lt;http://trac.webkit.org/changeset/100172&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502142</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-14 11:47:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502156</commentid>
    <comment_count>38</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-14 11:57:44 -0800</bug_when>
    <thetext>reopening for more</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502157</commentid>
    <comment_count>39</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-11-14 12:00:43 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; reopening for more

Please use a new bug for new patches. (Just like you&apos;d have a new code review issue in chromium land.)

Otherwise it gets really confusing. (Note how there are 38 comments and 14 patches in this bug already.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511074</commentid>
    <comment_count>40</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2011-11-29 13:35:29 -0800</bug_when>
    <thetext>continuing work in https://bugs.webkit.org/show_bug.cgi?id=73258</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113683</attachid>
            <date>2011-11-04 11:22:43 -0700</date>
            <delta_ts>2011-11-04 12:29:55 -0700</delta_ts>
            <desc>addMessage from bgThread</desc>
            <filename>console.txt</filename>
            <type>text/plain</type>
            <size>4689</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjU2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMDMgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb29tPgorCisgICAgICAgIEFsbG93IFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmFkZE1lc3NhZ2UgdG8gYmUgY2FsbGVkIGZyb20gYmFja2dyb3VuZCB0
aHJlYWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzE1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6QWRkQ29uc29sZU1lc3Nh
Z2VUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6QWRkQ29uc29sZU1lc3NhZ2VUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRDb25zb2xlTWVzc2FnZVRhc2s6OkFkZENvbnNv
bGVNZXNzYWdlVGFzayk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UpOgorCiAyMDExLTExLTAz
ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRGUt
dmlydHVhbGl6ZSBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiA5OTI0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MDMsNiArNDYwMywxMSBAQCB2b2lkIERvY3VtZW50
OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsK
KyAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CisgICAgICAgIHBvc3RUYXNrKEFkZENvbnNv
bGVNZXNzYWdlVGFzazo6Y3JlYXRlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdp
bmRvdygpKQogICAgICAgICB3aW5kb3ctPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIHR5
cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjayk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
CShyZXZpc2lvbiA5OTI0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgIkV2
ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRmlsZVRocmVhZC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQ
b3J0LmgiCi0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQu
aCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAko
cmV2aXNpb24gOTkyNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAt
MTYzLDYgKzE2NCwzMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBFdmVudFF1ZXVlKiBldmVudFF1
ZXVlKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CisgICAgY2xhc3MgQWRkQ29uc29sZU1lc3Nh
Z2VUYXNrIDogcHVibGljIFRhc2sgeworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NP
d25QdHI8QWRkQ29uc29sZU1lc3NhZ2VUYXNrPiBjcmVhdGUoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEFkZENvbnNv
bGVNZXNzYWdlVGFzayhzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlKSk7CisgICAgICAgIH0K
KyAgICAgICAgdmlydHVhbCB2b2lkIHBlcmZvcm1UYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
KmNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnRleHQtPmFkZE1lc3NhZ2UobV9z
b3VyY2UsIG1fdHlwZSwgbV9sZXZlbCwgbV9tZXNzYWdlLCAwLCBTdHJpbmcoKSwgMCk7CisgICAg
ICAgIH0KKyAgICBwcml2YXRlOgorICAgICAgICBBZGRDb25zb2xlTWVzc2FnZVRhc2soTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQorICAgICAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCisgICAg
ICAgICAgICAsIG1fdHlwZSh0eXBlKQorICAgICAgICAgICAgLCBtX2xldmVsKGxldmVsKQorICAg
ICAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZS5pc29sYXRlZENvcHkoKSkKKyAgICAgICAgewor
ICAgICAgICB9CisgICAgICAgIE1lc3NhZ2VTb3VyY2UgbV9zb3VyY2U7CisgICAgICAgIE1lc3Nh
Z2VUeXBlIG1fdHlwZTsKKyAgICAgICAgTWVzc2FnZUxldmVsIG1fbGV2ZWw7CisgICAgICAgIFN0
cmluZyBtX21lc3NhZ2U7CisgICAgfTsKKwogICAgIC8vIEV4cGxpY2l0bHkgb3ZlcnJpZGUgdGhl
IHNlY3VyaXR5IG9yaWdpbiBmb3IgdGhpcyBzY3JpcHQgY29udGV4dC4KICAgICAvLyBOb3RlOiBJ
dCBpcyBkYW5nZXJvdXMgdG8gY2hhbmdlIHRoZSBzZWN1cml0eSBvcmlnaW4gb2YgYSBzY3JpcHQg
Y29udGV4dAogICAgIC8vICAgICAgIHRoYXQgYWxyZWFkeSBjb250YWlucyBjb250ZW50LgpJbmRl
eDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCShyZXZpc2lvbiA5OTI0
NykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5OSw2ICsyOTksMTAgQEAgdm9pZCBXb3JrZXJDb250ZXh0Ojpsb2dFeGNlcHRp
b25Ub0NvbnNvbAogCiB2b2lkIFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KQogeworICAgIGlmICghaXNDb250ZXh0VGhy
ZWFkKCkpIHsKKyAgICAgICAgcG9zdFRhc2soQWRkQ29uc29sZU1lc3NhZ2VUYXNrOjpjcmVhdGUo
c291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSkpOworICAgICAgICByZXR1cm47CisgICAgfQog
ICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgpLnBvc3RDb25zb2xlTWVzc2FnZVRv
V29ya2VyT2JqZWN0KHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNv
dXJjZVVSTCk7CiB9CiAK
</data>
<flag name="commit-queue"
          id="112123"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113697</attachid>
            <date>2011-11-04 12:29:55 -0700</date>
            <delta_ts>2011-11-04 12:36:14 -0700</delta_ts>
            <desc>addMessage from bgThread</desc>
            <filename>console2.txt</filename>
            <type>text/plain</type>
            <size>4555</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjU2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMDMgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb29tPgorCisgICAgICAgIEFsbG93IFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmFkZE1lc3NhZ2UgdG8gYmUgY2FsbGVkIGZyb20gYmFja2dyb3VuZCB0
aHJlYWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzE1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6QWRkQ29uc29sZU1lc3Nh
Z2VUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6QWRkQ29uc29sZU1lc3NhZ2VUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRDb25zb2xlTWVzc2FnZVRhc2s6OkFkZENvbnNv
bGVNZXNzYWdlVGFzayk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UpOgorCiAyMDExLTExLTAz
ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRGUt
dmlydHVhbGl6ZSBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiA5OTI0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MDMsNiArNDYwMywxMSBAQCB2b2lkIERvY3VtZW50
OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsK
KyAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CisgICAgICAgIHBvc3RUYXNrKEFkZENvbnNv
bGVNZXNzYWdlVGFzazo6Y3JlYXRlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdp
bmRvdygpKQogICAgICAgICB3aW5kb3ctPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIHR5
cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjayk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
CShyZXZpc2lvbiA5OTI0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsMTEgQEAgcHVibGljOgogICAg
IFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOwogfTsKIAordm9pZCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpBZGRDb25zb2xlTWVzc2FnZVRhc2s6OnBlcmZvcm1UYXNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQgKmNvbnRleHQpCit7CisgICAgY29udGV4dC0+YWRkTWVzc2FnZSht
X3NvdXJjZSwgbV90eXBlLCBtX2xldmVsLCBtX21lc3NhZ2UsIDAsIFN0cmluZygpLCAwKTsKK30K
KwogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiAgICAg
OiBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMoZmFsc2UpCiAgICAgLCBtX2luRGVzdHJ1Y3Rv
cihmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAkocmV2aXNpb24gOTkyNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNiArMTYzLDI3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIEV2ZW50UXVldWUqIGV2ZW50UXVldWUoKSBjb25zdCA9IDA7CiAKIHByb3Rl
Y3RlZDoKKyAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7Cisg
ICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxBZGRDb25zb2xlTWVzc2FnZVRh
c2s+IGNyZWF0ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQWRkQ29uc29sZU1lc3NhZ2VUYXNrKHNvdXJjZSwgdHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKKyAgICAgICAgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCAqY29udGV4dCk7CisgICAgcHJpdmF0ZToK
KyAgICAgICAgQWRkQ29uc29sZU1lc3NhZ2VUYXNrKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
KyAgICAgICAgICAgIDogbV9zb3VyY2Uoc291cmNlKQorICAgICAgICAgICAgLCBtX3R5cGUodHlw
ZSkKKyAgICAgICAgICAgICwgbV9sZXZlbChsZXZlbCkKKyAgICAgICAgICAgICwgbV9tZXNzYWdl
KG1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCkpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgICBN
ZXNzYWdlU291cmNlIG1fc291cmNlOworICAgICAgICBNZXNzYWdlVHlwZSBtX3R5cGU7CisgICAg
ICAgIE1lc3NhZ2VMZXZlbCBtX2xldmVsOworICAgICAgICBTdHJpbmcgbV9tZXNzYWdlOworICAg
IH07CisKICAgICAvLyBFeHBsaWNpdGx5IG92ZXJyaWRlIHRoZSBzZWN1cml0eSBvcmlnaW4gZm9y
IHRoaXMgc2NyaXB0IGNvbnRleHQuCiAgICAgLy8gTm90ZTogSXQgaXMgZGFuZ2Vyb3VzIHRvIGNo
YW5nZSB0aGUgc2VjdXJpdHkgb3JpZ2luIG9mIGEgc2NyaXB0IGNvbnRleHQKICAgICAvLyAgICAg
ICB0aGF0IGFscmVhZHkgY29udGFpbnMgY29udGVudC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJDb250ZXh0LmNwcAkocmV2aXNpb24gOTkyNDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTksNiArMjk5
LDEwIEBAIHZvaWQgV29ya2VyQ29udGV4dDo6bG9nRXhjZXB0aW9uVG9Db25zb2wKIAogdm9pZCBX
b3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NSZWZQdHI8U2NyaXB0
Q2FsbFN0YWNrPikKIHsKKyAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CisgICAgICAgIHBv
c3RUYXNrKEFkZENvbnNvbGVNZXNzYWdlVGFzazo6Y3JlYXRlKHNvdXJjZSwgdHlwZSwgbGV2ZWws
IG1lc3NhZ2UpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICB0aHJlYWQoKS0+d29ya2Vy
UmVwb3J0aW5nUHJveHkoKS5wb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChzb3VyY2Us
IHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113698</attachid>
            <date>2011-11-04 12:35:48 -0700</date>
            <delta_ts>2011-11-08 18:36:21 -0800</delta_ts>
            <desc>addMessage from bgThread</desc>
            <filename>console3.txt</filename>
            <type>text/plain</type>
            <size>4547</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjU2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMDMgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb29tPgorCisgICAgICAgIEFsbG93IFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OmFkZE1lc3NhZ2UgdG8gYmUgY2FsbGVkIGZyb20gYmFja2dyb3VuZCB0
aHJlYWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzE1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
byBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6QWRkQ29uc29sZU1lc3Nh
Z2VUYXNrOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6QWRkQ29uc29sZU1lc3NhZ2VUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpBZGRDb25zb2xlTWVzc2FnZVRhc2s6OkFkZENvbnNv
bGVNZXNzYWdlVGFzayk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UpOgorCiAyMDExLTExLTAz
ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRGUt
dmlydHVhbGl6ZSBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiA5OTI0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MDMsNiArNDYwMywxMSBAQCB2b2lkIERvY3VtZW50
OjpwYXJzZUROU1ByZWZldGNoQ29udHJvbEhlCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKIHsK
KyAgICBpZiAoIWlzQ29udGV4dFRocmVhZCgpKSB7CisgICAgICAgIHBvc3RUYXNrKEFkZENvbnNv
bGVNZXNzYWdlVGFzazo6Y3JlYXRlKHNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdp
bmRvdygpKQogICAgICAgICB3aW5kb3ctPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIHR5
cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwsIGNhbGxTdGFjayk7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
CShyZXZpc2lvbiA5OTI0NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsMTEgQEAgcHVibGljOgogICAg
IFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IG1fY2FsbFN0YWNrOwogfTsKIAordm9pZCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpBZGRDb25zb2xlTWVzc2FnZVRhc2s6OnBlcmZvcm1UYXNrKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQgKmNvbnRleHQpCit7CisgICAgY29udGV4dC0+YWRkTWVzc2FnZSht
X3NvdXJjZSwgbV90eXBlLCBtX2xldmVsLCBtX21lc3NhZ2UsIDAsIFN0cmluZygpLCAwKTsKK30K
KwogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiAgICAg
OiBtX2l0ZXJhdGluZ0FjdGl2ZURPTU9iamVjdHMoZmFsc2UpCiAgICAgLCBtX2luRGVzdHJ1Y3Rv
cihmYWxzZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAkocmV2aXNpb24gOTkyNDcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNiArMTYzLDI3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIEV2ZW50UXVldWUqIGV2ZW50UXVldWUoKSBjb25zdCA9IDA7CiAKIHByb3Rl
Y3RlZDoKKyAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7Cisg
ICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc093blB0cjxBZGRDb25zb2xlTWVzc2FnZVRh
c2s+IGNyZWF0ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgQWRkQ29uc29sZU1lc3NhZ2VUYXNrKHNvdXJjZSwgdHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UpKTsKKyAgICAgICAgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybVRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHByaXZhdGU6CisgICAgICAg
IEFkZENvbnNvbGVNZXNzYWdlVGFzayhNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgICAg
ICAgICA6IG1fc291cmNlKHNvdXJjZSkKKyAgICAgICAgICAgICwgbV90eXBlKHR5cGUpCisgICAg
ICAgICAgICAsIG1fbGV2ZWwobGV2ZWwpCisgICAgICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdl
Lmlzb2xhdGVkQ29weSgpKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgTWVzc2FnZVNv
dXJjZSBtX3NvdXJjZTsKKyAgICAgICAgTWVzc2FnZVR5cGUgbV90eXBlOworICAgICAgICBNZXNz
YWdlTGV2ZWwgbV9sZXZlbDsKKyAgICAgICAgU3RyaW5nIG1fbWVzc2FnZTsKKyAgICB9OworCiAg
ICAgLy8gRXhwbGljaXRseSBvdmVycmlkZSB0aGUgc2VjdXJpdHkgb3JpZ2luIGZvciB0aGlzIHNj
cmlwdCBjb250ZXh0LgogICAgIC8vIE5vdGU6IEl0IGlzIGRhbmdlcm91cyB0byBjaGFuZ2UgdGhl
IHNlY3VyaXR5IG9yaWdpbiBvZiBhIHNjcmlwdCBjb250ZXh0CiAgICAgLy8gICAgICAgdGhhdCBh
bHJlYWR5IGNvbnRhaW5zIGNvbnRlbnQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyQ29udGV4dC5jcHAJKHJldmlzaW9uIDk5MjQ3KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk5LDYgKzI5OSwxMCBAQCB2
b2lkIFdvcmtlckNvbnRleHQ6OmxvZ0V4Y2VwdGlvblRvQ29uc29sCiAKIHZvaWQgV29ya2VyQ29u
dGV4dDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4pCiB7CisgICAgaWYgKCFpc0NvbnRleHRUaHJlYWQoKSkgeworICAgICAgICBwb3N0VGFzayhB
ZGRDb25zb2xlTWVzc2FnZVRhc2s6OmNyZWF0ZShzb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdl
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgdGhyZWFkKCktPndvcmtlclJlcG9ydGlu
Z1Byb3h5KCkucG9zdENvbnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3Qoc291cmNlLCB0eXBlLCBs
ZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114192</attachid>
            <date>2011-11-08 18:36:21 -0800</date>
            <delta_ts>2011-11-08 19:32:45 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberrors.txt</filename>
            <type>text/plain</type>
            <size>31478</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5NjQ1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMTEtMDggIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIEFsc28gcHJvZHVjZSBjb25zb2xlIGxvZ2dpbmcKKyAg
ICAgICAgZm9yIG9wZW5EYXRhYmFzZSgpIGVycm9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIGluIHRoZSB3b3JrcywganVzdCBub3Qg
aW4gdGhpcyBzbmFwc2hvdCB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFi
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpvcGVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6bGFzdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNl
OjpsYXN0RXJyb3JNc2cpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
OgorICAgICAgICAqIHN0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlOjppc0ludGVycnVwdGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yKToKKyAgICAgICAgKiBzdG9yYWdlL0Fic3Ry
YWN0RGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUG9z
dGZsaWdodCk6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpjaGFuZ2VWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFiYXNlU3luYzo6cnVuVHJhbnNhY3Rpb24pOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJh
c2VTeW5jLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6Omxhc3RFcnJvck1lc3Nh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpzZXRMYXN0RXJyb3JNZXNzYWdl
KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5pZGw6CisgICAgICAgICogc3RvcmFn
ZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNyZWF0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3Rh
dGVtZW50OjpleGVjdXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0ZSk6CisgICAgICAg
ICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFu
c2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAgICAgKiBzdG9yYWdl
L1NRTFRyYW5zYWN0aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlv
blN5bmM6OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5j
OjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQpOgorCiAyMDEx
LTExLTA4ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBh
IHR5cGVkZWYgZm9yIEV4Y2VwdGlvbkNvZGUgaW4gYWxsIGhlYWRlciBmaWxlcyBpbnN0ZWFkIG9m
IGluY2x1ZGluZyBFeGNlcHRpb25Db2RlLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gOTk2MjYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw4IEBAIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVfU0NIRU0K
IGNvbnN0IGludCBTUUxSZXN1bHRGdWxsID0gU1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQgU1FMUmVz
dWx0SW50ZXJydXB0ID0gU1FMSVRFX0lOVEVSUlVQVDsKIAorc3RhdGljIGNvbnN0IGNoYXIgbm90
T3BlbkVycm9yTWVzc2FnZVtdID0gImRhdGFiYXNlIGlzIG5vdCBvcGVuIjsKKwogU1FMaXRlRGF0
YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAgICA6IG1fZGIoMCkKICAgICAsIG1fcGFnZVNpemUo
LTEpCkBAIC01Myw2ICs1NSw4IEBAIFNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAg
ICAgLCBtX3NoYXJhYmxlKGZhbHNlKQogICAgICwgbV9vcGVuaW5nVGhyZWFkKDApCiAgICAgLCBt
X2ludGVycnVwdGVkKGZhbHNlKQorICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQorICAg
ICwgbV9vcGVuRXJyb3JNZXNzYWdlKG5vdE9wZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAKQEAgLTY1
LDE1ICs2OSwyMCBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYKIHsK
ICAgICBjbG9zZSgpOwogCi0gICAgaWYgKFNRTGl0ZUZpbGVTeXN0ZW06Om9wZW5EYXRhYmFzZShm
aWxlbmFtZSwgJm1fZGIsIGZvcldlYlNRTERhdGFiYXNlKSAhPSBTUUxJVEVfT0spIHsKKyAgICBt
X29wZW5FcnJvciA9IFNRTGl0ZUZpbGVTeXN0ZW06Om9wZW5EYXRhYmFzZShmaWxlbmFtZSwgJm1f
ZGIsIGZvcldlYlNRTERhdGFiYXNlKTsKKyAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FMSVRFX09L
KSB7CisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1fZGIpOwog
ICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gbG9hZCBmcm9tICVz
XG5DYXVzZSAtICVzIiwgZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAgICBzcWxp
dGUzX2Vycm1zZyhtX2RiKSk7CisgICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgp
KTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgaWYgKHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0
X2NvZGVzKG1fZGIsIDEpICE9IFNRTElURV9PSykgewotICAgICAgICBMT0dfRVJST1IoIlNRTGl0
ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJsaW5nIGV4dGVuZGVkIGVycm9ycyAtICVzIiwgc3Fs
aXRlM19lcnJtc2cobV9kYikpOworCisgICAgbV9vcGVuRXJyb3IgPSBzcWxpdGUzX2V4dGVuZGVk
X3Jlc3VsdF9jb2RlcyhtX2RiLCAxKTsKKyAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FMSVRFX09L
KSB7CisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1fZGIpOwor
ICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJsaW5nIGV4
dGVuZGVkIGVycm9ycyAtICVzIiwgbV9vcGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7CiAgICAgICAg
IHNxbGl0ZTNfY2xvc2UobV9kYik7CiAgICAgICAgIG1fZGIgPSAwOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC04MSw2ICs5MCw4IEBAIGJvb2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4oY29uc3Qg
U3RyaW5nJgogCiAgICAgaWYgKGlzT3BlbigpKQogICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBj
dXJyZW50VGhyZWFkKCk7CisgICAgZWxzZQorICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAi
c3FsaXRlMyogaXMgbnVsbCI7CiAKICAgICBpZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhpcywgIlBS
QUdNQSB0ZW1wX3N0b3JlID0gTUVNT1JZOyIpLmV4ZWN1dGVDb21tYW5kKCkpCiAgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGNvdWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0byBtZW1v
cnkiKTsKQEAgLTEwMiw2ICsxMTMsOCBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAg
ICAgfQogCiAgICAgbV9vcGVuaW5nVGhyZWFkID0gMDsKKyAgICBtX29wZW5FcnJvciA9IFNRTElU
RV9FUlJPUjsKKyAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNzYWdlOwog
fQogCiB2b2lkIFNRTGl0ZURhdGFiYXNlOjppbnRlcnJ1cHQoKQpAQCAtMzE0LDEyICszMjcsMTIg
QEAgaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCiAKIGludCBTUUxpdGVEYXRhYmFz
ZTo6bGFzdEVycm9yKCkKIHsKLSAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2Ri
KSA6IFNRTElURV9FUlJPUjsKKyAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2Ri
KSA6IG1fb3BlbkVycm9yOwogfQogCiBjb25zdCBjaGFyKiBTUUxpdGVEYXRhYmFzZTo6bGFzdEVy
cm9yTXNnKCkKIHsgCi0gICAgcmV0dXJuIHNxbGl0ZTNfZXJybXNnKG1fZGIpOworICAgIHJldHVy
biBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgp
OwogfQogCiAjaWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmgJKHJldmlzaW9uIDk5NjI2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKICNkZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogCiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTE1Myw3ICsxNTQsMTAgQEAgcHJpdmF0
ZToKIAogICAgIE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXg7CiAgICAgYm9vbCBtX2ludGVy
cnVwdGVkOwotfTsgLy8gY2xhc3MgU1FMaXRlRGF0YWJhc2UKKworICAgIGludCBtX29wZW5FcnJv
cjsKKyAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKK307CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJh
c2UuY3BwCShyZXZpc2lvbiA5OTYyNikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJh
Y3REYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FM
aXRlVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMjQ4LDcgKzI0OSw3IEBAIGJvb2wgQWJzdHJh
Y3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICBjb25zdCBpbnQgbWF4U3FsaXRlQnVz
eVdhaXRUaW1lID0gMzAwMDA7CiAKICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2Uub3BlbihtX2Zp
bGVuYW1lLCB0cnVlKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGF0IHBhdGggJXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgbG9n
RXJyb3IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJy
b3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yODksNyAr
MjkwLDcgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgICAg
ICAgICAgU1FMaXRlVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24obV9zcWxpdGVEYXRhYmFzZSk7CiAg
ICAgICAgICAgICB0cmFuc2FjdGlvbi5iZWdpbigpOwogICAgICAgICAgICAgaWYgKCF0cmFuc2Fj
dGlvbi5pblByb2dyZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0
byBiZWdpbiB0cmFuc2FjdGlvbiB3aGlsZSBvcGVuaW5nICVzIiwgZGF0YWJhc2VEZWJ1Z05hbWUo
KS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgbG9nRXJyb3IoIkZhaWxlZCB0byBz
dGFydCB0cmFuc2FjdGlvbiIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRl
RGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CiAgICAgICAgICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMwMCwxNCArMzAxLDE0IEBAIGJvb2wgQWJz
dHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAgICAgICAgICAgICBtX25ldyA9
IHRydWU7CiAKICAgICAgICAgICAgICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2UuZXhlY3V0ZUNv
bW1hbmQoIkNSRUFURSBUQUJMRSAiICsgdGFibGVOYW1lICsgIiAoa2V5IFRFWFQgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSx2YWx1ZSBURVhUIE5P
VCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpOyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR19F
UlJPUigiVW5hYmxlIHRvIGNyZWF0ZSB0YWJsZSAlcyBpbiBkYXRhYmFzZSAlcyIsIGluZm9UYWJs
ZU5hbWUsIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAg
ICAgICAgICBsb2dFcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSAnaW5mbycgdGFibGUiLCBtX3NxbGl0
ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgbV9z
cWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICghZ2V0VmVyc2lvbkZy
b21EYXRhYmFzZShjdXJyZW50VmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNlICVzIiwg
ZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgbG9n
RXJyb3IoIkZhaWxlZCB0byByZWFkIGN1cnJlbnQgdmVyc2lvbiIsIG1fc3FsaXRlRGF0YWJhc2Uu
bGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAg
ICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgICAgICAgICAgdHJhbnNhY3Rp
b24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7
CkBAIC0zMTksNyArMzIwLDcgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFu
ZFZlcgogICAgICAgICAgICAgfSBlbHNlIGlmICghbV9uZXcgfHwgc2hvdWxkU2V0VmVyc2lvbklu
TmV3RGF0YWJhc2UpIHsKICAgICAgICAgICAgICAgICBMT0coU3RvcmFnZUFQSSwgIlNldHRpbmcg
dmVyc2lvbiAlcyBpbiBkYXRhYmFzZSAlcyB0aGF0IHdhcyBqdXN0IGNyZWF0ZWQiLCBtX2V4cGVj
dGVkVmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRh
dGEoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXRWZXJzaW9uSW5EYXRhYmFzZShtX2V4cGVj
dGVkVmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIHNldCB2ZXJzaW9uICVzIGluIGRhdGFiYXNlICVzIiwgbV9leHBlY3RlZFZlcnNpb24u
YXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICAgICAgICAgICAgICBsb2dFcnJvcigiRmFpbGVkIHRvIHdyaXRlIGN1cnJlbnQgdmVyc2lv
biIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAg
ICAgICAgICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CkBAIC0zNDAsOCArMzQxLDggQEAgYm9v
bCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgIC8vIElmIHRoZSBleHBl
Y3RlZCB2ZXJzaW9uIGlzbid0IHRoZSBlbXB0eSBzdHJpbmcsIGVuc3VyZSB0aGF0IHRoZSBjdXJy
ZW50IGRhdGFiYXNlIHZlcnNpb24gd2UgaGF2ZSBtYXRjaGVzIHRoYXQgdmVyc2lvbi4gT3RoZXJ3
aXNlLCBzZXQgYW4gZXhjZXB0aW9uLgogICAgIC8vIElmIHRoZSBleHBlY3RlZCB2ZXJzaW9uIGlz
IHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gd2UgYWx3YXlzIHJldHVybiB3aXRoIHdoYXRldmVyIHZl
cnNpb24gb2YgdGhlIGRhdGFiYXNlIHdlIGhhdmUuCiAgICAgaWYgKCghbV9uZXcgfHwgc2hvdWxk
U2V0VmVyc2lvbkluTmV3RGF0YWJhc2UpICYmIG1fZXhwZWN0ZWRWZXJzaW9uLmxlbmd0aCgpICYm
IG1fZXhwZWN0ZWRWZXJzaW9uICE9IGN1cnJlbnRWZXJzaW9uKSB7Ci0gICAgICAgIExPRyhTdG9y
YWdlQVBJLCAicGFnZSBleHBlY3RzIHZlcnNpb24gJXMgZnJvbSBkYXRhYmFzZSAlcywgd2hpY2gg
YWN0dWFsbHkgaGFzIHZlcnNpb24gbmFtZSAlcyAtIG9wZW5EYXRhYmFzZSgpIGNhbGwgd2lsbCBm
YWlsIiwgbV9leHBlY3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAgICBkYXRh
YmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpLCBjdXJyZW50VmVyc2lvbi5hc2NpaSgpLmRh
dGEoKSk7CisgICAgICAgIFN0cmluZyBjb25zb2xlTWVzc2FnZSA9ICJWZXJzaW9uIG1pc21hdGNo
IGluIG9wZW5EYXRhYmFzZSwgJyIgKyBtX2V4cGVjdGVkVmVyc2lvbiArICInIGRvZXMgbm90IG1h
dGNoIHRoZSBjdXJyZW50VmVyc2lvbiBvZiAnIiArIGN1cnJlbnRWZXJzaW9uICsgIiciOworICAg
ICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGNvbnNvbGVNZXNzYWdlLCAw
LCBTdHJpbmcoKSwgMCk7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAg
IG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTM4
LDYgKzUzOSwxNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OmlzSW50ZXJydXB0ZWQoKQogICAg
IHJldHVybiBtX3NxbGl0ZURhdGFiYXNlLmlzSW50ZXJydXB0ZWQoKTsKIH0KIAordm9pZCBBYnN0
cmFjdERhdGFiYXNlOjpsb2dFcnJvcihjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlRXJy
b3JDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVFcnJvck1lc3NhZ2UpCit7CisgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisKKyAgICAvLyBPdXRwdXQgdG8gc3RkIGVycm9yIGFu
ZCB0byB0aGUgamF2YXNjcmlwdCBjb25zb2xlLgorICAgIGNvbnN0IGNoYXIgZm9ybWF0W10gPSAi
V2ViU1FMOiAlcyAoJWQsICVzKSI7CisgICAgTE9HX0VSUk9SKGZvcm1hdCwgbWVzc2FnZSwgc3Fs
aXRlRXJyb3JDb2RlLCBzcWxpdGVFcnJvck1lc3NhZ2UpOworICAgIFN0cmluZyBjb25zb2xlTWVz
c2FnZShTdHJpbmc6OmZvcm1hdChmb3JtYXQsIG1lc3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3Fs
aXRlRXJyb3JNZXNzYWdlKSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRNZXNz
YWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCBtZXNzYWdlLCAwLCBTdHJpbmcoKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkocmV2aXNpb24gOTk2MjYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDYg
KzEwNCw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldENhY2hlZFZlcnNpb24oY29uc3QgU3Ry
aW5nJik7CiAgICAgYm9vbCBnZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oU3RyaW5nJiB2
ZXJzaW9uKTsKIAorICAgIHZvaWQgbG9nRXJyb3IoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNx
bGl0ZUVycm9yQ29kZSwgY29uc3QgY2hhciogc3FsaXRlRXJyb3JNZXNzYWdlKTsKKwogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBkYXRhYmFzZUluZm9UYWJsZU5hbWUoKTsKIAogICAgIFJlZlB0cjxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAkocmV2
aXNpb24gOTk2MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFw
cGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTMgKzUwLDEzIEBAIGJvb2wgQ2hhbmdlVmVy
c2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGkKICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKIAog
ICAgIGlmICghdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPmdldFZlcnNpb25Gcm9tRGF0YWJhc2Uo
YWN0dWFsVmVyc2lvbikpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gcmV0cmlldmUg
YWN0dWFsIGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byB2
ZXJpZnkgY3VycmVudCB2ZXJzaW9uIG9mIGRhdGFiYXNlIik7CisgICAgICAgIG1fc3FsRXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byByZWFk
IHRoZSBjdXJyZW50IHZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3Io
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24tPmRh
dGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCiAgICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gbV9vbGRWZXJzaW9u
KSB7Ci0gICAgICAgIExPR19FUlJPUigiT2xkIHZlcnNpb24gZG9lc24ndCBtYXRjaCBhY3R1YWwg
dmVyc2lvbiIpOwogICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xk
VmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CkBAIC02OSw4ICs2OSw5IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZv
cm1Qb3N0ZmwKICAgICBBU1NFUlQodHJhbnNhY3Rpb24gJiYgdHJhbnNhY3Rpb24tPmRhdGFiYXNl
KCkpOwogCiAgICAgaWYgKCF0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c2V0VmVyc2lvbkluRGF0
YWJhc2UobV9uZXdWZXJzaW9uKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzZXQg
bmV3IHZlcnNpb24gaW4gZGF0YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lv
biBpbiBkYXRhYmFzZSIpOworICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFi
YXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24t
PmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zcWxpdGVE
YXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcAkocmV2aXNpb24g
OTk2MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTk2LDM5ICs5Niw0OSBAQCB2b2lkIERhdGFiYXNlU3luYzo6Y2hhbmdlVmVy
c2lvbihjb25zdCBTCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250
ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblBy
b2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNoYW5n
ZVZlcnNpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBlYyA9IFNRTEV4
Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVm
UHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvblN5bmM6
OmNyZWF0ZSh0aGlzLCBjaGFuZ2VWZXJzaW9uQ2FsbGJhY2ssIGZhbHNlKTsKLSAgICBpZiAoKGVj
ID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVn
aW4oKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAg
IGlmICghZ2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBz
ZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwg
c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG9sZFZlcnNpb24pIHsK
KyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRh
YmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICBl
YyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkpCisgICAgaWYgKChlYyA9IHRy
YW5zYWN0aW9uLT5leGVjdXRlKCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2Fn
ZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAoIXNldFZl
cnNpb25JbkRhdGFiYXNlKG5ld1ZlcnNpb24pKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3Nh
Z2UoInVuYWJsZSB0byBzZXQgdmVyc2lvbiIsIHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCks
IHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9IFNRTEV4Y2Vw
dGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoKGVj
ID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJvck1l
c3NhZ2UoKS5pc0VtcHR5KCkpOwogICAgICAgICBzZXRDYWNoZWRWZXJzaW9uKG9sZFZlcnNpb24p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgc2V0RXhwZWN0ZWRWZXJzaW9uKG5ld1Zl
cnNpb24pOworICAgIHNldExhc3RFcnJvck1lc3NhZ2UoIiIpOwogfQogCiB2b2lkIERhdGFiYXNl
U3luYzo6dHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjaz4g
Y2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTQ2LDEzICsxNTYsMTggQEAgdm9pZCBE
YXRhYmFzZVN5bmM6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZQogICAgIEFTU0VSVChtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKIAogICAgIGlmIChzcWxpdGVEYXRh
YmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKSB7CisgICAgICAgIHNldExhc3RFcnJvck1l
c3NhZ2UoInVuYWJsZSB0byBzdGFydCBhIHRyYW5zYWN0aW9uIGZyb20gd2l0aGluIGEgdHJhbnNh
Y3Rpb24iKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmM+IHRyYW5z
YWN0aW9uID0gU1FMVHJhbnNhY3Rpb25TeW5jOjpjcmVhdGUodGhpcywgY2FsbGJhY2ssIHJlYWRP
bmx5KTsKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpIHx8IChlYyA9IHRyYW5z
YWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5jb21taXQoKSkpCisgICAg
aWYgKChlYyA9IHRyYW5zYWN0aW9uLT5iZWdpbigpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+ZXhl
Y3V0ZSgpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkpKSB7CisgICAgICAgIEFTU0VS
VCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHRyYW5zYWN0aW9uLT5y
b2xsYmFjaygpOworICAgIH0KKworICAgIHNldExhc3RFcnJvck1lc3NhZ2UoIiIpOwogfQogCiB2
b2lkIERhdGFiYXNlU3luYzo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaAkocmV2aXNpb24gOTk2MjYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MywxMCArNjMs
MjMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYXJrQXNEZWxldGVkQW5kQ2xvc2UoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VJbW1lZGlhdGVseSgpOwogCisgICAgY29uc3QgU3RyaW5n
JiBsYXN0RXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXJyb3JNZXNzYWdlOyB9
CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyBt
X2xhc3RFcnJvck1lc3NhZ2UgPSBtZXNzYWdlOyB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNz
YWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlKQorICAgIHsKKyAgICAgICAg
c2V0TGFzdEVycm9yTWVzc2FnZShTdHJpbmc6OmZvcm1hdCgiJXMgKCVkKSIsIG1lc3NhZ2UsIHNx
bGl0ZUNvZGUpKTsKKyAgICB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNzYWdlKGNvbnN0IGNo
YXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVNZXNzYWdlKQor
ICAgIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZShTdHJpbmc6OmZvcm1hdCgiJXMgKCVk
LCAlcykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7CisgICAgfQorCiBw
cml2YXRlOgogICAgIERhdGFiYXNlU3luYyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwKICAgICAgICAgICAg
ICAgICAgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0ZWRT
aXplKTsKICAgICB2b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25T
eW5jQ2FsbGJhY2s+LCBib29sIHJlYWRPbmx5LCBFeGNlcHRpb25Db2RlJik7CisKKyAgICBTdHJp
bmcgbV9sYXN0RXJyb3JNZXNzYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAkocmV2aXNpb24gOTk2MjYp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBOb1N0YXRpY1Rh
YmxlcwogICAgIF0gRGF0YWJhc2VTeW5jIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB2ZXJzaW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxh
c3RFcnJvck1lc3NhZ2U7CiAgICAgICAgIHZvaWQgY2hhbmdlVmVyc2lvbihpbiBET01TdHJpbmcg
b2xkVmVyc2lvbiwgaW4gRE9NU3RyaW5nIG5ld1ZlcnNpb24sIGluIFtDYWxsYmFjaywgT3B0aW9u
YWxdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgdm9pZCB0cmFuc2FjdGlvbihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5zYWN0
aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
dm9pZCByZWFkVHJhbnNhY3Rpb24oaW4gW0NhbGxiYWNrXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxs
YmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTEVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TUUxFcnJvci5oCShyZXZpc2lvbiA5OTYyNikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U1FMRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgU1FMRXJyb3IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FM
RXJyb3I+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTUUxFcnJvcj4gY3JlYXRl
KHVuc2lnbmVkIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IFNRTEVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNR
TEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNx
bGl0ZUNvZGUpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6Zm9y
bWF0KCIlcyAoJWQpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSkpOworICAgIH0KKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNvbnN0IGNoYXIqIG1l
c3NhZ2UsIGludCBzcWxpdGVDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVNZXNzYWdlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkICVzKSIs
IG1lc3NhZ2UsIHNxbGl0ZUNvZGUsIHNxbGl0ZU1lc3NhZ2UpKTsKKyAgICB9CiAKICAgICB1bnNp
Z25lZCBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CiAgICAgU3RyaW5nIG1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2UuaXNvbGF0ZWRDb3B5KCk7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAJKHJldmlzaW9uIDk5NjI2KQorKysgU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
OCw3ICs3OCwxMCBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAK
ICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJ
LCAiVW5hYmxlIHRvIHZlcmlmeSBjb3JyZWN0bmVzcyBvZiBzdGF0ZW1lbnQgJXMgLSBlcnJvciAl
aSAoJXMpIiwgbV9zdGF0ZW1lbnQuYXNjaWkoKS5kYXRhKCksIHJlc3VsdCwgZGF0YWJhc2UtPmxh
c3RFcnJvck1zZygpKTsKLSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUocmVzdWx0
ID09IFNRTFJlc3VsdEludGVycnVwdCA/IFNRTEVycm9yOjpEQVRBQkFTRV9FUlIgOiBTUUxFcnJv
cjo6U1lOVEFYX0VSUiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgaWYgKHJl
c3VsdCA9PSBTUUxSZXN1bHRJbnRlcnJ1cHQpCisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50IiwgcmVzdWx0LCAiaW50ZXJydXB0ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIsICJjb3Vs
ZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTk5LDcgKzEwMiw3IEBAIGJv
b2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlKiBkYikKIAogICAgICAgICBpZiAocmVz
dWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkZhaWxl
ZCB0byBiaW5kIHZhbHVlIGluZGV4ICVpIHRvIHN0YXRlbWVudCBmb3IgcXVlcnkgJyVzJyIsIGkg
KyAxLCBtX3N0YXRlbWVudC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBtX2Vycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVy
cm9yTXNnKCkpOworICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5vdCBiaW5kIHZhbHVlIiwgcmVzdWx0LCBkYXRhYmFz
ZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTIzLDcgKzEyNiw3IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERh
dGFiYXNlKiBkYikKICAgICAgICAgfSB3aGlsZSAocmVzdWx0ID09IFNRTFJlc3VsdFJvdyk7CiAK
ICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHREb25lKSB7Ci0gICAgICAgICAgICBtX2Vy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+
bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5vdCBpdGVyYXRlIHJlc3VsdHMiLCByZXN1
bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHREb25lKSB7CkBA
IC0xMzUsNyArMTM4LDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRi
KQogICAgICAgICBzZXRGYWlsdXJlRHVlVG9RdW90YSgpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OkRBVEFCQVNFX0VSUiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgbV9l
cnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5v
dCBleGVjdXRlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCShyZXZpc2lvbiA5OTYyNikKKysrIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
LDExICs2MSwxMyBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAg
ICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5wcmVwYXJlKCk7CiAgICAgaWYgKHJlc3VsdCAhPSBT
UUxSZXN1bHRPaykgewogICAgICAgICBlYyA9IChyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0
ID8gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlIgOiBTUUxFeGNlcHRpb246OlNZTlRBWF9FUlIp
OworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKICAgICBpZiAoc3RhdGVtZW50LmJpbmRQYXJhbWV0ZXJDb3VudCgpICE9
IG1fYXJndW1lbnRzLnNpemUoKSkgewogICAgICAgICBlYyA9IChkYi0+aXNJbnRlcnJ1cHRlZCgp
PyBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUiA6IFNRTEV4Y2VwdGlvbjo6U1lOVEFYX0VSUik7
CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJudW1iZXIgb2YgJz8ncyBpbiBzdGF0
ZW1lbnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50Iik7CiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIApAQCAtNzMsMTEgKzc1LDEzIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0
U2V0PiBTUUxTdGF0ZW1lbnRTeW4KICAgICAgICAgcmVzdWx0ID0gc3RhdGVtZW50LmJpbmRWYWx1
ZShpICsgMSwgbV9hcmd1bWVudHNbaV0pOwogICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3Vs
dEZ1bGwpIHsKICAgICAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpRVU9UQV9FUlI7CisgICAg
ICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVt
YWluaW5nIHN0b3JhZ2Ugc3BhY2UiKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICAgICAgZWMg
PSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0RXJy
b3JNZXNzYWdlKCJjb3VsZCBub3QgYmluZCB2YWx1ZSIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQpAQCAt
MTAyLDYgKzEwNiw3IEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnRTeW4K
IAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpIHsKICAgICAgICAgICAgIGVj
ID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgICAgICBkYi0+c2V0TGFzdEVy
cm9yTWVzc2FnZSgiY291bGQgbm90IGl0ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwgZGF0YWJhc2Ut
Pmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAg
fSBlbHNlIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0RG9uZSkgewpAQCAtMTExLDkgKzExNiwxMSBA
QCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgfSBlbHNlIGlm
IChyZXN1bHQgPT0gU1FMUmVzdWx0RnVsbCkgewogICAgICAgICAvLyBRdW90YSBlcnJvciwgdGhl
IGRlbGVnYXRlIHdpbGwgYmUgYXNrZWQgZm9yIG1vcmUgc3BhY2UgYW5kIHRoaXMgc3RhdGVtZW50
IG1pZ2h0IGJlIHJlLXJ1bi4KICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlFVT1RBX0VSUjsK
KyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5vdWdoIHJl
bWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgIGRiLT5z
ZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgZXhlY3V0ZSBzdGF0ZW1lbnQiLCByZXN1bHQs
IGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHJldmlzaW9u
IDk5NjI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2NCw4ICsyNjQsOSBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVu
VHJhbnNhY3Rpb25BbmRQCiAgICAgLy8gVHJhbnNhY3Rpb24gU3RlcHMgMSsyIC0gT3BlbiBhIHRy
YW5zYWN0aW9uIHRvIHRoZSBkYXRhYmFzZSwganVtcGluZyB0byB0aGUgZXJyb3IgY2FsbGJhY2sg
aWYgdGhhdCBmYWlscwogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygp
KSB7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50cmFuc2Fj
dGlvbkluUHJvZ3Jlc3MoKSk7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNh
Y3Rpb24gdG8gdGhlIGRhdGFiYXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBt
X2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgbV9z
cWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gb3BlbiBh
IHRyYW5zYWN0aW9uIHRvIHRoZSBkYXRhYmFzZSIpOwogICAgICAgICBoYW5kbGVUcmFuc2FjdGlv
bkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3NSwxMCArMjc2LDEx
IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyB0aGUg
YWN0dWFsIHZlcnNpb24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1c3Qg
YSBtYXAgbG9va3VwLgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9kYXRh
YmFzZS0+Z2V0QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7Cisg
ICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRB
VEFCQVNFX0VSUiwgInVuYWJsZSB0byByZWFkIHZlcnNpb24iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCku
bGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3Nx
bGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhv
cml6ZXIoKTsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIpOwogICAgICAg
ICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTI5Myw3ICsyOTUsNiBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25B
bmRQCiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsK
ICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCiAgICAgICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25v
d24gZXJyb3Igb2NjdXJlZCBzZXR0aW5nIHVwIHRyYW5zYWN0aW9uIik7Ci0KICAgICAgICAgaGFu
ZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00
NjksNyArNDcwLDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdAog
ICAgIGlmIChtX3dyYXBwZXIgJiYgIW1fd3JhcHBlci0+cGVyZm9ybVBvc3RmbGlnaHQodGhpcykp
IHsKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwog
ICAgICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rp
b25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93
biBlcnJvciBvY2N1cmVkIHNldHRpbmcgdXAgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJS
LCAidW5rbm93biBlcnJvciBvY2N1cmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Iik7
CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtNDg2LDcgKzQ4Nyw4IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGln
aHRBbmRDb21taXQKICAgICAgICAgaWYgKG1fd3JhcHBlcikKICAgICAgICAgICAgIG1fd3JhcHBl
ci0+aGFuZGxlQ29tbWl0RmFpbGVkQWZ0ZXJQb3N0ZmxpZ2h0KHRoaXMpOwogICAgICAgICBtX3N1
Y2Nlc3NDYWxsYmFja1dyYXBwZXIuY2xlYXIoKTsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiZmFpbGVkIHRvIGNv
bW1pdCB0aGUgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiZmFpbGVkIHRvIGNvbW1pdCB0
aGUgdHJhbnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJh
c2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBoYW5kbGVUcmFu
c2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAJKHJldmlzaW9uIDk5
NjI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03NSwxMiArNzUsMTcgQEAgU1FMVHJhbnNhY3Rpb25TeW5jOjp+U1FM
VHJhbnNhY3Rpb25TeW5jKAogUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9u
U3luYzo6ZXhlY3V0ZVNRTChjb25zdCBTdHJpbmcmIHNxbFN0YXRlbWVudCwgY29uc3QgVmVjdG9y
PFNRTFZhbHVlPiYgYXJndW1lbnRzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQo
bV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7
CisKKyAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCIiKTsKKwogICAgIGlmICgh
bV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgiY2Fubm90IGV4ZWN1dGVTUUwgYmVjYXVzZSB0aGUgZGF0YWJhc2UgaXMgbm90IG9w
ZW4iKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAKICAgICBpZiAobV9oYXNWZXJzaW9uTWlzbWF0Y2gpIHsKKyAgICAg
ICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY2Fubm90IGV4ZWN1dGVTUUwgYmVj
YXVzZSB0aGVyZSBpcyBhIHZlcnNpb24gbWlzbWF0Y2giKTsKICAgICAgICAgZWMgPSBTUUxFeGNl
cHRpb246OlZFUlNJT05fRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xMTAsOCAr
MTE1LDEwIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblMKICAgICAg
ICAgICAgICAgICBpZiAobV90cmFuc2FjdGlvbkNsaWVudC0+ZGlkRXhjZWVkUXVvdGEoZGF0YWJh
c2UoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgZWMgPSAwOwogICAgICAgICAgICAgICAgICAg
ICByZXRyeVN0YXRlbWVudCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFz
dEVycm9yTWVzc2FnZSgidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3Bh
Y2UiKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTI3LDggKzEzNCwxMCBAQCBQYXNz
UmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiBFeGNlcHRpb25Db2RlIFNRTFRy
YW5zYWN0aW9uU3luYzo6YmVnaW4oKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJh
c2UtPm9wZW5lZCgpKQorICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAg
bV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY2Fubm90IGJlZ2luIHRyYW5zYWN0aW9u
IGJlY2F1c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuIik7CiAgICAgICAgIHJldHVybiBTUUxF
eGNlcHRpb246OlVOS05PV05fRVJSOworICAgIH0KIAogICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+
c3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSk7CiAKQEAgLTE0Nyw2ICsx
NTYsOCBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8g
Q2hlY2sgaWYgYmVnaW4oKSBzdWNjZWVkZWQuCiAgICAgaWYgKCFtX3NxbGl0ZVRyYW5zYWN0aW9u
LT5pblByb2dyZXNzKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRh
YmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0
TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUgZGF0
YWJhc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJh
c2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFi
YXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFy
KCk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKICAgICB9CkBA
IC0xNTYsNiArMTY3LDggQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2lu
KAogICAgIC8vIHRoZSBhY3R1YWwgdmVyc2lvbi4gSW4gc2luZ2xlLXByb2Nlc3MgYnJvd3NlcnMs
IHRoaXMgaXMganVzdCBhIG1hcCBsb29rdXAuCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAg
ICAgaWYgKCFtX2RhdGFiYXNlLT5nZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oYWN0dWFs
VmVyc2lvbikpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgidW5h
YmxlIHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFz
ZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJvbGxiYWNrKCk7
CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKICAgICB9CkBAIC0x
NjgsNiArMTgxLDggQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dAog
ewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29u
dGV4dFRocmVhZCgpKTsKICAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpIHx8IChtX2NhbGxi
YWNrICYmICFtX2NhbGxiYWNrLT5oYW5kbGVFdmVudCh0aGlzKSkpIHsKKyAgICAgICAgaWYgKG1f
ZGF0YWJhc2UtPmxhc3RFcnJvck1lc3NhZ2UoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX2Rh
dGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJmYWlsZWQgdG8gZXhlY3V0ZSB0cmFuc2FjdGlv
biBjYWxsYmFjayIpOwogICAgICAgICBtX2NhbGxiYWNrID0gMDsKICAgICAgICAgcmV0dXJuIFNR
TEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgfQpAQCAtMTc5LDggKzE5NCwxMCBAQCBFeGNl
cHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0CiBFeGNlcHRpb25Db2RlIFNRTFRy
YW5zYWN0aW9uU3luYzo6Y29tbWl0KCkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFi
YXNlLT5vcGVuZWQoKSkKKyAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAg
IG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBjb21taXQgdHJhbnNhY3Rp
b24gYmVjYXVzZSB0aGUgZGF0YWJhc2UgaXMgbm90IG9wZW4uIik7CiAgICAgICAgIHJldHVybiBT
UUxFeGNlcHRpb246OlVOS05PV05fRVJSOworICAgIH0KIAogICAgIEFTU0VSVChtX3NxbGl0ZVRy
YW5zYWN0aW9uKTsKIApAQCAtMTg5LDggKzIwNiwxMSBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5z
YWN0aW9uU3luYzo6Y29tbWl0CiAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwog
CiAgICAgLy8gSWYgdGhlIGNvbW1pdCBmYWlsZWQsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIHN0aWxs
IGJlIG1hcmtlZCBhcyAiaW4gcHJvZ3Jlc3MiCi0gICAgaWYgKG1fc3FsaXRlVHJhbnNhY3Rpb24t
PmluUHJvZ3Jlc3MoKSkKKyAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygp
KSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImZhaWxlZCB0byBj
b21taXQgdGhlIHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFi
YXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIFNR
TEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgIH0KIAogICAgIG1fc3FsaXRlVHJhbnNhY3Rp
b24uY2xlYXIoKTsKIAo=
</data>
<flag name="commit-queue"
          id="112779"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114199</attachid>
            <date>2011-11-08 19:32:45 -0800</date>
            <delta_ts>2011-11-09 14:26:16 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberrors.txt</filename>
            <type>text/plain</type>
            <size>31458</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5NjQ1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMTEtMDggIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIEFsc28gcHJvZHVjZSBjb25zb2xlIGxvZ2dpbmcKKyAg
ICAgICAgZm9yIG9wZW5EYXRhYmFzZSgpIGVycm9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIGluIHRoZSB3b3JrcywganVzdCBub3Qg
aW4gdGhpcyBzbmFwc2hvdCB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFi
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpvcGVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6bGFzdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNl
OjpsYXN0RXJyb3JNc2cpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
OgorICAgICAgICAqIHN0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlOjppc0ludGVycnVwdGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yKToKKyAgICAgICAgKiBzdG9yYWdlL0Fic3Ry
YWN0RGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUG9z
dGZsaWdodCk6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpjaGFuZ2VWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFiYXNlU3luYzo6cnVuVHJhbnNhY3Rpb24pOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJh
c2VTeW5jLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6Omxhc3RFcnJvck1lc3Nh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpzZXRMYXN0RXJyb3JNZXNzYWdl
KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5pZGw6CisgICAgICAgICogc3RvcmFn
ZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNyZWF0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3Rh
dGVtZW50OjpleGVjdXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0ZSk6CisgICAgICAg
ICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFu
c2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAgICAgKiBzdG9yYWdl
L1NRTFRyYW5zYWN0aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlv
blN5bmM6OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5j
OjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQpOgorCiAyMDEx
LTExLTA4ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBh
IHR5cGVkZWYgZm9yIEV4Y2VwdGlvbkNvZGUgaW4gYWxsIGhlYWRlciBmaWxlcyBpbnN0ZWFkIG9m
IGluY2x1ZGluZyBFeGNlcHRpb25Db2RlLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gOTk2MjYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw4IEBAIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVfU0NIRU0K
IGNvbnN0IGludCBTUUxSZXN1bHRGdWxsID0gU1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQgU1FMUmVz
dWx0SW50ZXJydXB0ID0gU1FMSVRFX0lOVEVSUlVQVDsKIAorc3RhdGljIGNvbnN0IGNoYXIgbm90
T3BlbkVycm9yTWVzc2FnZVtdID0gImRhdGFiYXNlIGlzIG5vdCBvcGVuIjsKKwogU1FMaXRlRGF0
YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAgICA6IG1fZGIoMCkKICAgICAsIG1fcGFnZVNpemUo
LTEpCkBAIC01Myw2ICs1NSw4IEBAIFNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAg
ICAgLCBtX3NoYXJhYmxlKGZhbHNlKQogICAgICwgbV9vcGVuaW5nVGhyZWFkKDApCiAgICAgLCBt
X2ludGVycnVwdGVkKGZhbHNlKQorICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQorICAg
ICwgbV9vcGVuRXJyb3JNZXNzYWdlKG5vdE9wZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAKQEAgLTY1
LDE1ICs2OSwyMCBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYKIHsK
ICAgICBjbG9zZSgpOwogCi0gICAgaWYgKFNRTGl0ZUZpbGVTeXN0ZW06Om9wZW5EYXRhYmFzZShm
aWxlbmFtZSwgJm1fZGIsIGZvcldlYlNRTERhdGFiYXNlKSAhPSBTUUxJVEVfT0spIHsKKyAgICBt
X29wZW5FcnJvciA9IFNRTGl0ZUZpbGVTeXN0ZW06Om9wZW5EYXRhYmFzZShmaWxlbmFtZSwgJm1f
ZGIsIGZvcldlYlNRTERhdGFiYXNlKTsKKyAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FMSVRFX09L
KSB7CisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1fZGIpOwog
ICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gbG9hZCBmcm9tICVz
XG5DYXVzZSAtICVzIiwgZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAgICBzcWxp
dGUzX2Vycm1zZyhtX2RiKSk7CisgICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgp
KTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgaWYgKHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0
X2NvZGVzKG1fZGIsIDEpICE9IFNRTElURV9PSykgewotICAgICAgICBMT0dfRVJST1IoIlNRTGl0
ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJsaW5nIGV4dGVuZGVkIGVycm9ycyAtICVzIiwgc3Fs
aXRlM19lcnJtc2cobV9kYikpOworCisgICAgbV9vcGVuRXJyb3IgPSBzcWxpdGUzX2V4dGVuZGVk
X3Jlc3VsdF9jb2RlcyhtX2RiLCAxKTsKKyAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FMSVRFX09L
KSB7CisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1fZGIpOwor
ICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJsaW5nIGV4
dGVuZGVkIGVycm9ycyAtICVzIiwgbV9vcGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7CiAgICAgICAg
IHNxbGl0ZTNfY2xvc2UobV9kYik7CiAgICAgICAgIG1fZGIgPSAwOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC04MSw2ICs5MCw4IEBAIGJvb2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4oY29uc3Qg
U3RyaW5nJgogCiAgICAgaWYgKGlzT3BlbigpKQogICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBj
dXJyZW50VGhyZWFkKCk7CisgICAgZWxzZQorICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAi
c3FsaXRlMyogaXMgbnVsbCI7CiAKICAgICBpZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhpcywgIlBS
QUdNQSB0ZW1wX3N0b3JlID0gTUVNT1JZOyIpLmV4ZWN1dGVDb21tYW5kKCkpCiAgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGNvdWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0byBtZW1v
cnkiKTsKQEAgLTEwMiw2ICsxMTMsOCBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAg
ICAgfQogCiAgICAgbV9vcGVuaW5nVGhyZWFkID0gMDsKKyAgICBtX29wZW5FcnJvciA9IFNRTElU
RV9FUlJPUjsKKyAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNzYWdlOwog
fQogCiB2b2lkIFNRTGl0ZURhdGFiYXNlOjppbnRlcnJ1cHQoKQpAQCAtMzE0LDEyICszMjcsMTIg
QEAgaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCiAKIGludCBTUUxpdGVEYXRhYmFz
ZTo6bGFzdEVycm9yKCkKIHsKLSAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2Ri
KSA6IFNRTElURV9FUlJPUjsKKyAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2Ri
KSA6IG1fb3BlbkVycm9yOwogfQogCiBjb25zdCBjaGFyKiBTUUxpdGVEYXRhYmFzZTo6bGFzdEVy
cm9yTXNnKCkKIHsgCi0gICAgcmV0dXJuIHNxbGl0ZTNfZXJybXNnKG1fZGIpOworICAgIHJldHVy
biBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgp
OwogfQogCiAjaWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmgJKHJldmlzaW9uIDk5NjI2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKICNkZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogCiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTE1Myw3ICsxNTQsMTAgQEAgcHJpdmF0
ZToKIAogICAgIE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXg7CiAgICAgYm9vbCBtX2ludGVy
cnVwdGVkOwotfTsgLy8gY2xhc3MgU1FMaXRlRGF0YWJhc2UKKworICAgIGludCBtX29wZW5FcnJv
cjsKKyAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKK307CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJh
c2UuY3BwCShyZXZpc2lvbiA5OTYyNikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJh
Y3REYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FM
aXRlVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMjQ4LDcgKzI0OSw3IEBAIGJvb2wgQWJzdHJh
Y3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICBjb25zdCBpbnQgbWF4U3FsaXRlQnVz
eVdhaXRUaW1lID0gMzAwMDA7CiAKICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2Uub3BlbihtX2Zp
bGVuYW1lLCB0cnVlKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBvcGVuIGRhdGFi
YXNlIGF0IHBhdGggJXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgbG9n
RXJyb3IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJy
b3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0yODksNyAr
MjkwLDcgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgICAg
ICAgICAgU1FMaXRlVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24obV9zcWxpdGVEYXRhYmFzZSk7CiAg
ICAgICAgICAgICB0cmFuc2FjdGlvbi5iZWdpbigpOwogICAgICAgICAgICAgaWYgKCF0cmFuc2Fj
dGlvbi5pblByb2dyZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0
byBiZWdpbiB0cmFuc2FjdGlvbiB3aGlsZSBvcGVuaW5nICVzIiwgZGF0YWJhc2VEZWJ1Z05hbWUo
KS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgbG9nRXJyb3IoIkZhaWxlZCB0byBz
dGFydCB0cmFuc2FjdGlvbiIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRl
RGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CiAgICAgICAgICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMwMCwxNCArMzAxLDE0IEBAIGJvb2wgQWJz
dHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAgICAgICAgICAgICBtX25ldyA9
IHRydWU7CiAKICAgICAgICAgICAgICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2UuZXhlY3V0ZUNv
bW1hbmQoIkNSRUFURSBUQUJMRSAiICsgdGFibGVOYW1lICsgIiAoa2V5IFRFWFQgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSx2YWx1ZSBURVhUIE5P
VCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpOyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR19F
UlJPUigiVW5hYmxlIHRvIGNyZWF0ZSB0YWJsZSAlcyBpbiBkYXRhYmFzZSAlcyIsIGluZm9UYWJs
ZU5hbWUsIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAg
ICAgICAgICBsb2dFcnJvcigiRmFpbGVkIHRvIGNyZWF0ZSAnaW5mbycgdGFibGUiLCBtX3NxbGl0
ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgbV9z
cWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICghZ2V0VmVyc2lvbkZy
b21EYXRhYmFzZShjdXJyZW50VmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNlICVzIiwg
ZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgbG9n
RXJyb3IoIkZhaWxlZCB0byByZWFkIGN1cnJlbnQgdmVyc2lvbiIsIG1fc3FsaXRlRGF0YWJhc2Uu
bGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAg
ICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgICAgICAgICAgdHJhbnNhY3Rp
b24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7
CkBAIC0zMTksNyArMzIwLDcgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFu
ZFZlcgogICAgICAgICAgICAgfSBlbHNlIGlmICghbV9uZXcgfHwgc2hvdWxkU2V0VmVyc2lvbklu
TmV3RGF0YWJhc2UpIHsKICAgICAgICAgICAgICAgICBMT0coU3RvcmFnZUFQSSwgIlNldHRpbmcg
dmVyc2lvbiAlcyBpbiBkYXRhYmFzZSAlcyB0aGF0IHdhcyBqdXN0IGNyZWF0ZWQiLCBtX2V4cGVj
dGVkVmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRh
dGEoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXRWZXJzaW9uSW5EYXRhYmFzZShtX2V4cGVj
dGVkVmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIHNldCB2ZXJzaW9uICVzIGluIGRhdGFiYXNlICVzIiwgbV9leHBlY3RlZFZlcnNpb24u
YXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICAgICAgICAgICAgICBsb2dFcnJvcigiRmFpbGVkIHRvIHdyaXRlIGN1cnJlbnQgdmVyc2lv
biIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwog
ICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAg
ICAgICAgICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CkBAIC0zNDAsOCArMzQxLDggQEAgYm9v
bCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgIC8vIElmIHRoZSBleHBl
Y3RlZCB2ZXJzaW9uIGlzbid0IHRoZSBlbXB0eSBzdHJpbmcsIGVuc3VyZSB0aGF0IHRoZSBjdXJy
ZW50IGRhdGFiYXNlIHZlcnNpb24gd2UgaGF2ZSBtYXRjaGVzIHRoYXQgdmVyc2lvbi4gT3RoZXJ3
aXNlLCBzZXQgYW4gZXhjZXB0aW9uLgogICAgIC8vIElmIHRoZSBleHBlY3RlZCB2ZXJzaW9uIGlz
IHRoZSBlbXB0eSBzdHJpbmcsIHRoZW4gd2UgYWx3YXlzIHJldHVybiB3aXRoIHdoYXRldmVyIHZl
cnNpb24gb2YgdGhlIGRhdGFiYXNlIHdlIGhhdmUuCiAgICAgaWYgKCghbV9uZXcgfHwgc2hvdWxk
U2V0VmVyc2lvbkluTmV3RGF0YWJhc2UpICYmIG1fZXhwZWN0ZWRWZXJzaW9uLmxlbmd0aCgpICYm
IG1fZXhwZWN0ZWRWZXJzaW9uICE9IGN1cnJlbnRWZXJzaW9uKSB7Ci0gICAgICAgIExPRyhTdG9y
YWdlQVBJLCAicGFnZSBleHBlY3RzIHZlcnNpb24gJXMgZnJvbSBkYXRhYmFzZSAlcywgd2hpY2gg
YWN0dWFsbHkgaGFzIHZlcnNpb24gbmFtZSAlcyAtIG9wZW5EYXRhYmFzZSgpIGNhbGwgd2lsbCBm
YWlsIiwgbV9leHBlY3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAgICBkYXRh
YmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpLCBjdXJyZW50VmVyc2lvbi5hc2NpaSgpLmRh
dGEoKSk7CisgICAgICAgIFN0cmluZyBjb25zb2xlTWVzc2FnZSA9ICJWZXJzaW9uIG1pc21hdGNo
IGluIG9wZW5EYXRhYmFzZSwgJyIgKyBtX2V4cGVjdGVkVmVyc2lvbiArICInIGRvZXMgbm90IG1h
dGNoIHRoZSBjdXJyZW50VmVyc2lvbiBvZiAnIiArIGN1cnJlbnRWZXJzaW9uICsgIiciOworICAg
ICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIGNvbnNvbGVNZXNzYWdlLCAw
LCBTdHJpbmcoKSwgMCk7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAg
IG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTM4
LDYgKzUzOSwxNiBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OmlzSW50ZXJydXB0ZWQoKQogICAg
IHJldHVybiBtX3NxbGl0ZURhdGFiYXNlLmlzSW50ZXJydXB0ZWQoKTsKIH0KIAordm9pZCBBYnN0
cmFjdERhdGFiYXNlOjpsb2dFcnJvcihjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlRXJy
b3JDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVFcnJvck1lc3NhZ2UpCit7CisgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisKKyAgICAvLyBPdXRwdXQgdG8gc3RkIGVycm9yIGFu
ZCB0byB0aGUgamF2YXNjcmlwdCBjb25zb2xlLgorICAgIExPR19FUlJPUigiV2ViU1FMOiAlcyAo
JWQsICVzKSIsIG1lc3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3FsaXRlRXJyb3JNZXNzYWdlKTsK
KyAgICBTdHJpbmcgY29uc29sZU1lc3NhZ2UoU3RyaW5nOjpmb3JtYXQoIldlYlNRTDogJXMgKCVk
LCAlcykiLCBtZXNzYWdlLCBzcWxpdGVFcnJvckNvZGUsIHNxbGl0ZUVycm9yTWVzc2FnZSkpOwor
ICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgU3RyaW5n
KCksIDApOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
U1FMX0RBVEFCQVNFKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFi
YXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFi
YXNlLmgJKHJldmlzaW9uIDk5NjI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFj
dERhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBzZXRDYWNoZWRWZXJzaW9uKGNvbnN0IFN0cmluZyYpOwogICAgIGJvb2wgZ2V0
QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKFN0cmluZyYgdmVyc2lvbik7CiAKKyAgICB2b2lk
IGxvZ0Vycm9yKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVFcnJvckNvZGUsIGNvbnN0
IGNoYXIqIHNxbGl0ZUVycm9yTWVzc2FnZSk7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0
YWJhc2VJbmZvVGFibGVOYW1lKCk7CiAKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHJldmlzaW9uIDk5NjI2KQorKysgU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDEzICs1MCwxMyBAQCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3Jt
UHJlZmxpCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAKICAgICBpZiAoIXRyYW5zYWN0aW9u
LT5kYXRhYmFzZSgpLT5nZXRWZXJzaW9uRnJvbURhdGFiYXNlKGFjdHVhbFZlcnNpb24pKSB7Ci0g
ICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHJldHJpZXZlIGFjdHVhbCBjdXJyZW50IHZlcnNp
b24gZnJvbSBkYXRhYmFzZSIpOwotICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gdmVyaWZ5IGN1cnJlbnQgdmVyc2lv
biBvZiBkYXRhYmFzZSIpOworICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gcmVhZCB0aGUgY3VycmVudCB2ZXJzaW9u
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24tPmRh
dGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zcWxpdGVEYXRh
YmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAog
ICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVyc2lvbikgewotICAgICAgICBMT0dfRVJS
T1IoIk9sZCB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggYWN0dWFsIHZlcnNpb24iKTsKICAgICAgICAg
bV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3Vy
cmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRv
IG5vdCBtYXRjaCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNjksOCArNjks
OSBAQCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUG9zdGZsCiAgICAgQVNTRVJU
KHRyYW5zYWN0aW9uICYmIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpKTsKIAogICAgIGlmICghdHJh
bnNhY3Rpb24tPmRhdGFiYXNlKCktPnNldFZlcnNpb25JbkRhdGFiYXNlKG1fbmV3VmVyc2lvbikp
IHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFi
YXNlIik7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgInVuYWJsZSB0byBzZXQgbmV3IHZlcnNpb24gaW4gZGF0YWJhc2UiKTsKKyAg
ICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJS
LCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBkYXRhYmFzZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zcWxpdGVE
YXRhYmFzZSgpLmxhc3RFcnJvcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5jcHAJKHJldmlzaW9uIDk5NjI2KQorKysgU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NiwzOSAr
OTYsNDkgQEAgdm9pZCBEYXRhYmFzZVN5bmM6OmNoYW5nZVZlcnNpb24oY29uc3QgUwogICAgIEFT
U0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKIAogICAg
IGlmIChzcWxpdGVEYXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKSB7CisgICAgICAg
IHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBjaGFuZ2VWZXJzaW9uIGZyb20gd2l0aGlu
IGEgdHJhbnNhY3Rpb24iKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VS
UjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvblN5
bmM+IHRyYW5zYWN0aW9uID0gU1FMVHJhbnNhY3Rpb25TeW5jOjpjcmVhdGUodGhpcywgY2hhbmdl
VmVyc2lvbkNhbGxiYWNrLCBmYWxzZSk7Ci0gICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5iZWdp
bigpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpKSB7CisgICAgICAgIEFT
U0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIWdldFZlcnNpb25Gcm9t
RGF0YWJhc2UoYWN0dWFsVmVyc2lvbikpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgi
dW5hYmxlIHRvIHJlYWQgdGhlIGN1cnJlbnQgdmVyc2lvbiIsIHNxbGl0ZURhdGFiYXNlKCkubGFz
dEVycm9yKCksIHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9
IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBpZiAoYWN0dWFsVmVyc2lvbiAhPSBvbGRWZXJzaW9uKSB7CisgICAgICAgIHNldExhc3RFcnJv
ck1lc3NhZ2UoImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9u
YCBhcmd1bWVudCBkbyBub3QgbWF0Y2giKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlZF
UlNJT05fRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKChlYyA9IHRyYW5z
YWN0aW9uLT5leGVjdXRlKCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+ZXhlY3V0ZSgp
KSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJvck1lc3NhZ2UoKS5pc0VtcHR5KCkpOwogICAg
ICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKCFzZXRWZXJzaW9uSW5EYXRhYmFzZShuZXdW
ZXJzaW9uKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gc2V0IHZl
cnNpb24iLCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBzcWxpdGVEYXRhYmFzZSgpLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5jb21t
aXQoKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsK
ICAgICAgICAgc2V0Q2FjaGVkVmVyc2lvbihvbGRWZXJzaW9uKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIHNldEV4cGVjdGVkVmVyc2lvbihuZXdWZXJzaW9uKTsKKyAgICBzZXRMYXN0
RXJyb3JNZXNzYWdlKCIiKTsKIH0KIAogdm9pZCBEYXRhYmFzZVN5bmM6OnRyYW5zYWN0aW9uKFBh
c3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2s+IGNhbGxiYWNrLCBFeGNlcHRpb25D
b2RlJiBlYykKQEAgLTE0NiwxMyArMTU2LDE4IEBAIHZvaWQgRGF0YWJhc2VTeW5jOjpydW5UcmFu
c2FjdGlvbihQYXNzUmUKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0Nv
bnRleHRUaHJlYWQoKSk7CiAKICAgICBpZiAoc3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbklu
UHJvZ3Jlc3MoKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gc3Rh
cnQgYSB0cmFuc2FjdGlvbiBmcm9tIHdpdGhpbiBhIHRyYW5zYWN0aW9uIik7CiAgICAgICAgIGVj
ID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25TeW5jPiB0cmFuc2FjdGlvbiA9IFNRTFRyYW5zYWN0
aW9uU3luYzo6Y3JlYXRlKHRoaXMsIGNhbGxiYWNrLCByZWFkT25seSk7Ci0gICAgaWYgKChlYyA9
IHRyYW5zYWN0aW9uLT5iZWdpbigpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+ZXhlY3V0ZSgpKSB8
fCAoZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2FjdGlv
bi0+YmVnaW4oKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkgfHwgKGVjID0gdHJh
bnNhY3Rpb24tPmNvbW1pdCgpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJvck1lc3NhZ2Uo
KS5pc0VtcHR5KCkpOwogICAgICAgICB0cmFuc2FjdGlvbi0+cm9sbGJhY2soKTsKKyAgICB9CisK
KyAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCIiKTsKIH0KIAogdm9pZCBEYXRhYmFzZVN5bmM6Om1h
cmtBc0RlbGV0ZWRBbmRDbG9zZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFi
YXNlU3luYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VT
eW5jLmgJKHJldmlzaW9uIDk5NjI2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFz
ZVN5bmMuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTAgKzYzLDIzIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgbWFya0FzRGVsZXRlZEFuZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIGNs
b3NlSW1tZWRpYXRlbHkoKTsKIAorICAgIGNvbnN0IFN0cmluZyYgbGFzdEVycm9yTWVzc2FnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbGFzdEVycm9yTWVzc2FnZTsgfQorICAgIHZvaWQgc2V0TGFzdEVy
cm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9sYXN0RXJyb3JNZXNzYWdlID0g
bWVzc2FnZTsgfQorICAgIHZvaWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNz
YWdlLCBpbnQgc3FsaXRlQ29kZSkKKyAgICB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2Uo
U3RyaW5nOjpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7CisgICAgfQor
ICAgIHZvaWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3Fs
aXRlQ29kZSwgY29uc3QgY2hhciogc3FsaXRlTWVzc2FnZSkKKyAgICB7CisgICAgICAgIHNldExh
c3RFcnJvck1lc3NhZ2UoU3RyaW5nOjpmb3JtYXQoIiVzICglZCwgJXMpIiwgbWVzc2FnZSwgc3Fs
aXRlQ29kZSwgc3FsaXRlTWVzc2FnZSkpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBEYXRhYmFz
ZVN5bmMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiBleHBlY3RlZFZlcnNpb24sCiAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYg
ZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSk7CiAgICAgdm9pZCBydW5U
cmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiwgYm9vbCBy
ZWFkT25seSwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgU3RyaW5nIG1fbGFzdEVycm9yTWVzc2Fn
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0RhdGFiYXNlU3luYy5pZGwJKHJldmlzaW9uIDk5NjI2KQorKysgU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBA
IG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIERhdGFiYXNl
U3luYyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVyc2lvbjsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0RXJyb3JNZXNzYWdlOwogICAg
ICAgICB2b2lkIGNoYW5nZVZlcnNpb24oaW4gRE9NU3RyaW5nIG9sZFZlcnNpb24sIGluIERPTVN0
cmluZyBuZXdWZXJzaW9uLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvblN5
bmNDYWxsYmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQg
dHJhbnNhY3Rpb24oaW4gW0NhbGxiYWNrXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxs
YmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9u
KGluIFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNl
cyhET01FeGNlcHRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAkocmV2aXNp
b24gOTk2MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDYgKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNRTEVy
cm9yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTEVycm9yPiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTUUxFcnJvcihjb2RlLCBt
ZXNzYWdlKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTUUxFcnJvcj4gY3JlYXRlKHVuc2ln
bmVkIGNvZGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkKSIsIG1lc3Nh
Z2UsIHNxbGl0ZUNvZGUpKTsKKyAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+
IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29k
ZSwgY29uc3QgY2hhciogc3FsaXRlTWVzc2FnZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVh
dGUoY29kZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCAlcykiLCBtZXNzYWdlLCBzcWxpdGVDb2Rl
LCBzcWxpdGVNZXNzYWdlKSk7CisgICAgfQogCiAgICAgdW5zaWduZWQgY29kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY29kZTsgfQogICAgIFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9t
ZXNzYWdlLmlzb2xhdGVkQ29weSgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NR
TFN0YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxT
dGF0ZW1lbnQuY3BwCShyZXZpc2lvbiA5OTYyNikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U1FMU3RhdGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNyArNzgsMTAgQEAgYm9vbCBT
UUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogCiAgICAgaWYgKHJlc3VsdCAhPSBT
UUxSZXN1bHRPaykgewogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIlVuYWJsZSB0byB2ZXJpZnkg
Y29ycmVjdG5lc3Mgb2Ygc3RhdGVtZW50ICVzIC0gZXJyb3IgJWkgKCVzKSIsIG1fc3RhdGVtZW50
LmFzY2lpKCkuZGF0YSgpLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAg
ICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKHJlc3VsdCA9PSBTUUxSZXN1bHRJbnRlcnJ1
cHQgPyBTUUxFcnJvcjo6REFUQUJBU0VfRVJSIDogU1FMRXJyb3I6OlNZTlRBWF9FUlIsIGRhdGFi
YXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0SW50
ZXJydXB0KQorICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgImlu
dGVycnVwdGVkIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5UQVhfRVJSLCAiY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCkBAIC05OSw3ICsxMDIsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhl
Y3V0ZShEYXRhYmFzZSogZGIpCiAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykg
ewogICAgICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJGYWlsZWQgdG8gYmluZCB2YWx1ZSBpbmRl
eCAlaSB0byBzdGF0ZW1lbnQgZm9yIHF1ZXJ5ICclcyciLCBpICsgMSwgbV9zdGF0ZW1lbnQuYXNj
aWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OkRBVEFCQVNFX0VSUiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
ICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJj
b3VsZCBub3QgYmluZCB2YWx1ZSIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMyw3ICsx
MjYsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAgICAgICAg
IH0gd2hpbGUgKHJlc3VsdCA9PSBTUUxSZXN1bHRSb3cpOwogCiAgICAgICAgIGlmIChyZXN1bHQg
IT0gU1FMUmVzdWx0RG9uZSkgewotICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsICJjb3VsZCBub3QgaXRlcmF0ZSByZXN1bHRzIiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0RG9uZSkgewpAQCAtMTM1LDcgKzEzOCw3IEBAIGJv
b2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlKiBkYikKICAgICAgICAgc2V0RmFpbHVy
ZUR1ZVRvUXVvdGEoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRh
dGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgZXhlY3V0ZSBzdGF0ZW1lbnQi
LCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3lu
Yy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRT
eW5jLmNwcAkocmV2aXNpb24gOTk2MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0
YXRlbWVudFN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwxMSArNjEsMTMgQEAgUGFzc1Jl
ZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgogICAgIGludCByZXN1bHQgPSBzdGF0
ZW1lbnQucHJlcGFyZSgpOwogICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAg
ICAgZWMgPSAocmVzdWx0ID09IFNRTFJlc3VsdEludGVycnVwdCA/IFNRTEV4Y2VwdGlvbjo6REFU
QUJBU0VfRVJSIDogU1FMRXhjZXB0aW9uOjpTWU5UQVhfRVJSKTsKKyAgICAgICAgZGItPnNldExh
c3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0
YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAg
aWYgKHN0YXRlbWVudC5iaW5kUGFyYW1ldGVyQ291bnQoKSAhPSBtX2FyZ3VtZW50cy5zaXplKCkp
IHsKICAgICAgICAgZWMgPSAoZGItPmlzSW50ZXJydXB0ZWQoKT8gU1FMRXhjZXB0aW9uOjpEQVRB
QkFTRV9FUlIgOiBTUUxFeGNlcHRpb246OlNZTlRBWF9FUlIpOworICAgICAgICBkYi0+c2V0TGFz
dEVycm9yTWVzc2FnZSgibnVtYmVyIG9mICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5v
dCBtYXRjaCBhcmd1bWVudCBjb3VudCIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAg
LTczLDExICs3NSwxMyBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3lu
CiAgICAgICAgIHJlc3VsdCA9IHN0YXRlbWVudC5iaW5kVmFsdWUoaSArIDEsIG1fYXJndW1lbnRz
W2ldKTsKICAgICAgICAgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHRGdWxsKSB7CiAgICAgICAgICAg
ICBlYyA9IFNRTEV4Y2VwdGlvbjo6UVVPVEFfRVJSOworICAgICAgICAgICAgZGItPnNldExhc3RF
cnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNl
Iik7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1
bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRB
QkFTRV9FUlI7CisgICAgICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90
IGJpbmQgdmFsdWUiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0KQEAgLTEwMiw2ICsxMDYsNyBAQCBQYXNz
UmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAKICAgICAgICAgaWYgKHJlc3Vs
dCAhPSBTUUxSZXN1bHREb25lKSB7CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFU
QUJBU0VfRVJSOworICAgICAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5v
dCBpdGVyYXRlIHJlc3VsdHMiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09
IFNRTFJlc3VsdERvbmUpIHsKQEAgLTExMSw5ICsxMTYsMTEgQEAgUGFzc1JlZlB0cjxTUUxSZXN1
bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3Vs
dEZ1bGwpIHsKICAgICAgICAgLy8gUXVvdGEgZXJyb3IsIHRoZSBkZWxlZ2F0ZSB3aWxsIGJlIGFz
a2VkIGZvciBtb3JlIHNwYWNlIGFuZCB0aGlzIHN0YXRlbWVudCBtaWdodCBiZSByZS1ydW4uCiAg
ICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpRVU9UQV9FUlI7CisgICAgICAgIGRiLT5zZXRMYXN0
RXJyb3JNZXNzYWdlKCJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFj
ZSIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9IGVsc2UgewogICAgICAgICBlYyA9IFNRTEV4
Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgi
Y291bGQgbm90IGV4ZWN1dGUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9y
TXNnKCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCShyZXZpc2lvbiA5OTYyNikKKysrIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQs
OCArMjY0LDkgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAg
IC8vIFRyYW5zYWN0aW9uIFN0ZXBzIDErMiAtIE9wZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUgZGF0
YWJhc2UsIGp1bXBpbmcgdG8gdGhlIGVycm9yIGNhbGxiYWNrIGlmIHRoYXQgZmFpbHMKICAgICBp
ZiAoIW1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgewogICAgICAgICBBU1NFUlQo
IW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOwor
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpE
QVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gb3BlbiBhIHRyYW5zYWN0aW9uIHRvIHRoZSBkYXRhYmFz
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRh
YmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0
YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xl
YXIoKTsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUg
ZGF0YWJhc2UiKTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0yNzUsMTAgKzI3NiwxMSBAQCB2b2lkIFNRTFRyYW5zYWN0
aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQCiAgICAgLy8gdGhlIGFjdHVhbCB2ZXJzaW9uLiBJbiBz
aW5nbGUtcHJvY2VzcyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFwIGxvb2t1cC4KICAgICBT
dHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2UtPmdldEFjdHVhbFZlcnNp
b25Gb3JUcmFuc2FjdGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUg
dG8gcmVhZCB2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFi
YXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgbV9kYXRhYmFz
ZS0+ZGlzYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVh
cigpOwogICAgICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7Ci0gICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VS
UiwgInVuYWJsZSB0byByZWFkIHZlcnNpb24iKTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25F
cnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yOTMsNyArMjk1LDYgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgICAgICBtX3RyYW5z
YWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFu
c2FjdGlvbkVycm9yKQogICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQgc2V0
dGluZyB1cCB0cmFuc2FjdGlvbiIpOwotCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3Io
ZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDY5LDcgKzQ3MCw3IEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQKICAgICBpZiAobV93cmFwcGVyICYm
ICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KHRoaXMpKSB7CiAgICAgICAgIG1fdHJhbnNh
Y3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5z
YWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJlZCBzZXR0
aW5nIHVwIHRyYW5zYWN0aW9uIik7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2Nj
dXJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCIpOwogICAgICAgICBoYW5kbGVUcmFu
c2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ4Niw3ICs0
ODcsOCBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0CiAgICAgICAg
IGlmIChtX3dyYXBwZXIpCiAgICAgICAgICAgICBtX3dyYXBwZXItPmhhbmRsZUNvbW1pdEZhaWxl
ZEFmdGVyUG9zdGZsaWdodCh0aGlzKTsKICAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2tXcmFwcGVy
LmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImZhaWxlZCB0byBjb21taXQgdGhlIHRyYW5zYWN0aW9u
Iik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OkRBVEFCQVNFX0VSUiwgImZhaWxlZCB0byBjb21taXQgdGhlIHRyYW5zYWN0aW9uIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5z
cWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCShyZXZpc2lvbiA5OTYyNikKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUs
MTIgKzc1LDE3IEBAIFNRTFRyYW5zYWN0aW9uU3luYzo6flNRTFRyYW5zYWN0aW9uU3luYygKIFBh
c3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGVTUUwoY29u
c3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50
cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAgbV9kYXRhYmFzZS0+
c2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CisKICAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgp
KSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBleGVj
dXRlU1FMIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuIik7CiAgICAgICAgIGVjID0g
U1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAg
ICAgaWYgKG1faGFzVmVyc2lvbk1pc21hdGNoKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExh
c3RFcnJvck1lc3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1c2UgdGhlcmUgaXMgYSB2ZXJz
aW9uIG1pc21hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpWRVJTSU9OX0VSUjsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTEwLDggKzExNSwxMCBAQCBQYXNzUmVmUHRy
PFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiAgICAgICAgICAgICAgICAgaWYgKG1fdHJh
bnNhY3Rpb25DbGllbnQtPmRpZEV4Y2VlZFF1b3RhKGRhdGFiYXNlKCkpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGVjID0gMDsKICAgICAgICAgICAgICAgICAgICAgcmV0cnlTdGF0ZW1lbnQgPSB0
cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJl
IHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KQEAgLTEyNyw4ICsxMzQsMTAgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+
IFNRTFRyYW5zYWN0aW9uUwogRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2lu
KCkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5p
c0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkKKyAgICBp
ZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RF
cnJvck1lc3NhZ2UoImNhbm5vdCBiZWdpbiB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBkYXRhYmFz
ZSBpcyBub3Qgb3BlbiIpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VS
UjsKKyAgICB9CiAKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJh
bnNhY3Rpb25JblByb2dyZXNzKCkpOwogCkBAIC0xNDcsNiArMTU2LDggQEAgRXhjZXB0aW9uQ29k
ZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKAogICAgIC8vIENoZWNrIGlmIGJlZ2luKCkgc3Vj
Y2VlZGVkLgogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7CiAg
ICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbklu
UHJvZ3Jlc3MoKSk7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVu
YWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhlIGRhdGFiYXNlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
Lmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwogICAgICAgICByZXR1cm4g
U1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQpAQCAtMTU2LDYgKzE2Nyw4IEBAIEV4
Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbigKICAgICAvLyB0aGUgYWN0dWFs
IHZlcnNpb24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1c3QgYSBtYXAg
bG9va3VwLgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9kYXRhYmFzZS0+
Z2V0QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7CisgICAgICAg
IG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byByZWFkIHZlcnNpb24i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNx
bGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCku
bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByb2xsYmFjaygpOwogICAgICAgICByZXR1cm4gU1FM
RXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQpAQCAtMTY4LDYgKzE4MSw4IEBAIEV4Y2Vw
dGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXQKIHsKICAgICBBU1NFUlQobV9kYXRh
YmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CiAgICAg
aWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSB8fCAobV9jYWxsYmFjayAmJiAhbV9jYWxsYmFjay0+
aGFuZGxlRXZlbnQodGhpcykpKSB7CisgICAgICAgIGlmIChtX2RhdGFiYXNlLT5sYXN0RXJyb3JN
ZXNzYWdlKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgiZmFpbGVkIHRvIGV4ZWN1dGUgdHJhbnNhY3Rpb24gY2FsbGJhY2siKTsKICAgICAg
ICAgbV9jYWxsYmFjayA9IDA7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OlVOS05PV05f
RVJSOwogICAgIH0KQEAgLTE3OSw4ICsxOTQsMTAgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2Fj
dGlvblN5bmM6OmV4ZWN1dAogRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmNvbW1p
dCgpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpCisgICAg
aWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0
RXJyb3JNZXNzYWdlKCJjYW5ub3QgY29tbWl0IHRyYW5zYWN0aW9uIGJlY2F1c2UgdGhlIGRhdGFi
YXNlIGlzIG5vdCBvcGVuLiIpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dO
X0VSUjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9zcWxpdGVUcmFuc2FjdGlvbik7CiAKQEAgLTE4
OSw4ICsyMDYsMTEgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmNvbW1pdAog
ICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKIAogICAgIC8vIElmIHRoZSBjb21t
aXQgZmFpbGVkLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBzdGlsbCBiZSBtYXJrZWQgYXMgImluIHBy
b2dyZXNzIgotICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpCisgICAg
aWYgKG1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgeworICAgICAgICBtX2RhdGFi
YXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJmYWlsZWQgdG8gY29tbWl0IHRoZSB0cmFuc2FjdGlv
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+
c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2Uo
KS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNF
X0VSUjsKKyAgICB9CiAKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAK
</data>
<flag name="commit-queue"
          id="112785"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114367</attachid>
            <date>2011-11-09 14:26:16 -0800</date>
            <delta_ts>2011-11-10 13:44:53 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberrors.txt</filename>
            <type>text/plain</type>
            <size>31801</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5NzQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTEtMTEtMDkgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIEFsc28gcHJvZHVjZSBjb25zb2xlIGxvZ2dpbmcKKyAg
ICAgICAgZm9yIG9wZW5EYXRhYmFzZSgpIGVycm9ycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgYXJlIGluIHRoZSB3b3JrcywganVzdCBub3Qg
aW4gdGhpcyBzbmFwc2hvdCB5ZXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFi
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpvcGVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6bGFzdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNl
OjpsYXN0RXJyb3JNc2cpOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
OgorICAgICAgICAqIHN0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeSk6CisgICAgICAgIChX
ZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlOjpsb2dFcnJvcik6CisgICAgICAgICogc3RvcmFnZS9B
YnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBy
ZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVBvc3RmbGlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlU3luYzo6Y2hhbmdlVmVyc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhYmFzZVN5bmM6OnJ1blRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0Rh
dGFiYXNlU3luYy5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpsYXN0RXJyb3JN
ZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU3luYzo6c2V0TGFzdEVycm9yTWVz
c2FnZSk6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsOgorICAgICAgICAqIHN0
b3JhZ2UvU1FMRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTEVycm9yOjpjcmVhdGUpOgor
ICAgICAgICAqIHN0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNR
TFN0YXRlbWVudDo6ZXhlY3V0ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5j
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudFN5bmM6OmV4ZWN1dGUpOgorICAg
ICAgICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FM
VHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogc3Rv
cmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNh
Y3Rpb25TeW5jOjpleGVjdXRlU1FMKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9u
U3luYzo6YmVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVj
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0KToKKwog
MjAxMS0xMS0wOSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFYOiBjcmFzaCB3aGVuIGFjY2Vzc2luZyBzZWxlY3RlZFRhYiBpbiBhIHRhYiBsaXN0CkBA
IC02NjMsNiArNzEwLDcgQEAKICAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmNwcDoKICAg
ICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZTo6fkNTU0ZvbnRGYWNlUnVsZSk6IHRlbGwg
b3VyIGNoaWxkIHJ1bGUgd2hlbiB3ZSBhcmUgZ29pbmcgYXdheS4KIAorPj4+Pj4+PiAucjk5NzQw
CiAyMDExLTExLTA4ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVzZSBhIHR5cGVkZWYgZm9yIEV4Y2VwdGlvbkNvZGUgaW4gYWxsIGhlYWRlciBmaWxlcyBpbnN0
ZWFkIG9mIGluY2x1ZGluZyBFeGNlcHRpb25Db2RlLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gOTk3NDApCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Niw2ICs0Niw4IEBAIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVf
U0NIRU0KIGNvbnN0IGludCBTUUxSZXN1bHRGdWxsID0gU1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQg
U1FMUmVzdWx0SW50ZXJydXB0ID0gU1FMSVRFX0lOVEVSUlVQVDsKIAorc3RhdGljIGNvbnN0IGNo
YXIgbm90T3BlbkVycm9yTWVzc2FnZVtdID0gImRhdGFiYXNlIGlzIG5vdCBvcGVuIjsKKwogU1FM
aXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAgICA6IG1fZGIoMCkKICAgICAsIG1fcGFn
ZVNpemUoLTEpCkBAIC01Myw2ICs1NSw4IEBAIFNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFz
ZSgpCiAgICAgLCBtX3NoYXJhYmxlKGZhbHNlKQogICAgICwgbV9vcGVuaW5nVGhyZWFkKDApCiAg
ICAgLCBtX2ludGVycnVwdGVkKGZhbHNlKQorICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9S
KQorICAgICwgbV9vcGVuRXJyb3JNZXNzYWdlKG5vdE9wZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAK
QEAgLTY1LDE1ICs2OSwyMCBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmlu
ZyYKIHsKICAgICBjbG9zZSgpOwogCi0gICAgaWYgKFNRTGl0ZUZpbGVTeXN0ZW06Om9wZW5EYXRh
YmFzZShmaWxlbmFtZSwgJm1fZGIsIGZvcldlYlNRTERhdGFiYXNlKSAhPSBTUUxJVEVfT0spIHsK
KyAgICBtX29wZW5FcnJvciA9IFNRTGl0ZUZpbGVTeXN0ZW06Om9wZW5EYXRhYmFzZShmaWxlbmFt
ZSwgJm1fZGIsIGZvcldlYlNRTERhdGFiYXNlKTsKKyAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FM
SVRFX09LKSB7CisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1f
ZGIpOwogICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBmYWlsZWQgdG8gbG9hZCBm
cm9tICVzXG5DYXVzZSAtICVzIiwgZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAg
ICBzcWxpdGUzX2Vycm1zZyhtX2RiKSk7CisgICAgICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2Uu
ZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9IDA7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgaWYgKHNxbGl0ZTNfZXh0ZW5kZWRf
cmVzdWx0X2NvZGVzKG1fZGIsIDEpICE9IFNRTElURV9PSykgewotICAgICAgICBMT0dfRVJST1Io
IlNRTGl0ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJsaW5nIGV4dGVuZGVkIGVycm9ycyAtICVz
Iiwgc3FsaXRlM19lcnJtc2cobV9kYikpOworCisgICAgbV9vcGVuRXJyb3IgPSBzcWxpdGUzX2V4
dGVuZGVkX3Jlc3VsdF9jb2RlcyhtX2RiLCAxKTsKKyAgICBpZiAobV9vcGVuRXJyb3IgIT0gU1FM
SVRFX09LKSB7CisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9IHNxbGl0ZTNfZXJybXNnKG1f
ZGIpOworICAgICAgICBMT0dfRVJST1IoIlNRTGl0ZSBkYXRhYmFzZSBlcnJvciB3aGVuIGVuYWJs
aW5nIGV4dGVuZGVkIGVycm9ycyAtICVzIiwgbV9vcGVuRXJyb3JNZXNzYWdlLmRhdGEoKSk7CiAg
ICAgICAgIHNxbGl0ZTNfY2xvc2UobV9kYik7CiAgICAgICAgIG1fZGIgPSAwOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CkBAIC04MSw2ICs5MCw4IEBAIGJvb2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4o
Y29uc3QgU3RyaW5nJgogCiAgICAgaWYgKGlzT3BlbigpKQogICAgICAgICBtX29wZW5pbmdUaHJl
YWQgPSBjdXJyZW50VGhyZWFkKCk7CisgICAgZWxzZQorICAgICAgICBtX29wZW5FcnJvck1lc3Nh
Z2UgPSAic3FsaXRlMyogaXMgbnVsbCI7CiAKICAgICBpZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhp
cywgIlBSQUdNQSB0ZW1wX3N0b3JlID0gTUVNT1JZOyIpLmV4ZWN1dGVDb21tYW5kKCkpCiAgICAg
ICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGNvdWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0
byBtZW1vcnkiKTsKQEAgLTEwMiw2ICsxMTMsOCBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9z
ZSgpCiAgICAgfQogCiAgICAgbV9vcGVuaW5nVGhyZWFkID0gMDsKKyAgICBtX29wZW5FcnJvciA9
IFNRTElURV9FUlJPUjsKKyAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNz
YWdlOwogfQogCiB2b2lkIFNRTGl0ZURhdGFiYXNlOjppbnRlcnJ1cHQoKQpAQCAtMzE0LDEyICsz
MjcsMTIgQEAgaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCiAKIGludCBTUUxpdGVE
YXRhYmFzZTo6bGFzdEVycm9yKCkKIHsKLSAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29k
ZShtX2RiKSA6IFNRTElURV9FUlJPUjsKKyAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29k
ZShtX2RiKSA6IG1fb3BlbkVycm9yOwogfQogCiBjb25zdCBjaGFyKiBTUUxpdGVEYXRhYmFzZTo6
bGFzdEVycm9yTXNnKCkKIHsgCi0gICAgcmV0dXJuIHNxbGl0ZTNfZXJybXNnKG1fZGIpOworICAg
IHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiBtX29wZW5FcnJvck1lc3NhZ2Uu
ZGF0YSgpOwogfQogCiAjaWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHJldmlzaW9uIDk5NzQwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKICNkZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgogCiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTE1Myw3ICsxNTQsMTAgQEAg
cHJpdmF0ZToKIAogICAgIE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXg7CiAgICAgYm9vbCBt
X2ludGVycnVwdGVkOwotfTsgLy8gY2xhc3MgU1FMaXRlRGF0YWJhc2UKKworICAgIGludCBtX29w
ZW5FcnJvcjsKKyAgICBDU3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKK307CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERh
dGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiA5OTc0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
QWJzdHJhY3REYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVk
ZSAiU1FMaXRlVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmln
aW4uaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMjQ5LDcgKzI1MCw3IEBAIGJvb2wg
QWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICBjb25zdCBpbnQgbWF4U3Fs
aXRlQnVzeVdhaXRUaW1lID0gMzAwMDA7CiAKICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2Uub3Bl
bihtX2ZpbGVuYW1lLCB0cnVlKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlIGF0IHBhdGggJXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAg
ICAgbG9nRXJyb3IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIiwgbV9zcWxpdGVEYXRhYmFzZS5s
YXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0y
OTAsNyArMjkxLDcgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgog
ICAgICAgICAgICAgU1FMaXRlVHJhbnNhY3Rpb24gdHJhbnNhY3Rpb24obV9zcWxpdGVEYXRhYmFz
ZSk7CiAgICAgICAgICAgICB0cmFuc2FjdGlvbi5iZWdpbigpOwogICAgICAgICAgICAgaWYgKCF0
cmFuc2FjdGlvbi5pblByb2dyZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVu
YWJsZSB0byBiZWdpbiB0cmFuc2FjdGlvbiB3aGlsZSBvcGVuaW5nICVzIiwgZGF0YWJhc2VEZWJ1
Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgbG9nRXJyb3IoIlVuYWJs
ZSB0byBvcGVuIGRhdGFiYXNlLCBmYWlsZWQgdG8gc3RhcnQgdHJhbnNhY3Rpb24iLCBtX3NxbGl0
ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAg
IG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC0zMDEsMTQgKzMwMiwxNCBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVu
QW5kVmVyCiAgICAgICAgICAgICAgICAgbV9uZXcgPSB0cnVlOwogCiAgICAgICAgICAgICAgICAg
aWYgKCFtX3NxbGl0ZURhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgIiArIHRh
YmxlTmFtZSArICIgKGtleSBURVhUIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9O
IENPTkZMSUNUIFJFUExBQ0UsdmFsdWUgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsi
KSkgewotICAgICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgdGFi
bGUgJXMgaW4gZGF0YWJhc2UgJXMiLCBpbmZvVGFibGVOYW1lLCBkYXRhYmFzZURlYnVnTmFtZSgp
LmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgbG9nRXJyb3IoIlVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlLCBmYWlsZWQgdG8gY3JlYXRlICdpbmZvJyB0YWJsZSIsIG1fc3FsaXRl
RGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAg
ICAgICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICBtX3Nx
bGl0ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFnZXRWZXJzaW9uRnJv
bURhdGFiYXNlKGN1cnJlbnRWZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBnZXQgY3VycmVudCB2ZXJzaW9uIGZyb20gZGF0YWJhc2UgJXMiLCBk
YXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBsb2dF
cnJvcigiVW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byByZWFkIGN1cnJlbnQgdmVy
c2lvbiIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAg
ICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICBt
X3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CkBAIC0zMjAsNyArMzIxLDcgQEAgYm9vbCBBYnN0cmFj
dERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgICAgICAgICAgfSBlbHNlIGlmICghbV9u
ZXcgfHwgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UpIHsKICAgICAgICAgICAgICAgICBM
T0coU3RvcmFnZUFQSSwgIlNldHRpbmcgdmVyc2lvbiAlcyBpbiBkYXRhYmFzZSAlcyB0aGF0IHdh
cyBqdXN0IGNyZWF0ZWQiLCBtX2V4cGVjdGVkVmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJh
c2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXRW
ZXJzaW9uSW5EYXRhYmFzZShtX2V4cGVjdGVkVmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNldCB2ZXJzaW9uICVzIGluIGRhdGFiYXNl
ICVzIiwgbV9leHBlY3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlRGVidWdOYW1l
KCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBsb2dFcnJvcigiVW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byB3cml0ZSBjdXJyZW50IHZlcnNpb24iLCBtX3Nx
bGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAg
ICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAg
bV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzQxLDggKzM0Miw4IEBAIGJvb2wgQWJzdHJh
Y3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVy
c2lvbiBpc24ndCB0aGUgZW1wdHkgc3RyaW5nLCBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBkYXRh
YmFzZSB2ZXJzaW9uIHdlIGhhdmUgbWF0Y2hlcyB0aGF0IHZlcnNpb24uIE90aGVyd2lzZSwgc2V0
IGFuIGV4Y2VwdGlvbi4KICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lvbiBpcyB0aGUgZW1w
dHkgc3RyaW5nLCB0aGVuIHdlIGFsd2F5cyByZXR1cm4gd2l0aCB3aGF0ZXZlciB2ZXJzaW9uIG9m
IHRoZSBkYXRhYmFzZSB3ZSBoYXZlLgogICAgIGlmICgoIW1fbmV3IHx8IHNob3VsZFNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlKSAmJiBtX2V4cGVjdGVkVmVyc2lvbi5sZW5ndGgoKSAmJiBtX2V4cGVj
dGVkVmVyc2lvbiAhPSBjdXJyZW50VmVyc2lvbikgewotICAgICAgICBMT0coU3RvcmFnZUFQSSwg
InBhZ2UgZXhwZWN0cyB2ZXJzaW9uICVzIGZyb20gZGF0YWJhc2UgJXMsIHdoaWNoIGFjdHVhbGx5
IGhhcyB2ZXJzaW9uIG5hbWUgJXMgLSBvcGVuRGF0YWJhc2UoKSBjYWxsIHdpbGwgZmFpbCIsIG1f
ZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLAotICAgICAgICAgICAgZGF0YWJhc2VEZWJ1
Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSwgY3VycmVudFZlcnNpb24uYXNjaWkoKS5kYXRhKCkpOwor
ICAgICAgICBTdHJpbmcgY29uc29sZU1lc3NhZ2UgPSAiVW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Us
IHZlcnNpb24gbWlzbWF0Y2gsICciICsgbV9leHBlY3RlZFZlcnNpb24gKyAiJyBkb2VzIG5vdCBt
YXRjaCB0aGUgY3VycmVudFZlcnNpb24gb2YgJyIgKyBjdXJyZW50VmVyc2lvbiArICInIjsKKyAg
ICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBjb25zb2xlTWVzc2FnZSwg
MCwgU3RyaW5nKCksIDApOwogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAg
ICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTUz
OSw2ICs1NDAsMTYgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjppc0ludGVycnVwdGVkKCkKICAg
ICByZXR1cm4gbV9zcWxpdGVEYXRhYmFzZS5pc0ludGVycnVwdGVkKCk7CiB9CiAKK3ZvaWQgQWJz
dHJhY3REYXRhYmFzZTo6bG9nRXJyb3IoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUVy
cm9yQ29kZSwgY29uc3QgY2hhciogc3FsaXRlRXJyb3JNZXNzYWdlKQoreworICAgIEFTU0VSVCht
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworCisgICAgLy8gT3V0cHV0IHRvIHN0ZCBlcnJvciBh
bmQgdG8gdGhlIGphdmFzY3JpcHQgY29uc29sZS4KKyAgICBMT0dfRVJST1IoIldlYlNRTDogJXMg
KCVkLCAlcykiLCBtZXNzYWdlLCBzcWxpdGVFcnJvckNvZGUsIHNxbGl0ZUVycm9yTWVzc2FnZSk7
CisgICAgU3RyaW5nIGNvbnNvbGVNZXNzYWdlKFN0cmluZzo6Zm9ybWF0KCJXZWJTUUw6ICVzICgl
ZCwgJXMpIiwgbWVzc2FnZSwgc3FsaXRlRXJyb3JDb2RlLCBzcWxpdGVFcnJvck1lc3NhZ2UpKTsK
KyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIFN0cmlu
ZygpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5oCShyZXZpc2lvbiA5OTc0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJh
Y3REYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDggQEAgcHJvdGVjdGVk
OgogICAgIHZvaWQgc2V0Q2FjaGVkVmVyc2lvbihjb25zdCBTdHJpbmcmKTsKICAgICBib29sIGdl
dEFjdHVhbFZlcnNpb25Gb3JUcmFuc2FjdGlvbihTdHJpbmcmIHZlcnNpb24pOwogCisgICAgdm9p
ZCBsb2dFcnJvcihjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlRXJyb3JDb2RlLCBjb25z
dCBjaGFyKiBzcWxpdGVFcnJvck1lc3NhZ2UpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRh
dGFiYXNlSW5mb1RhYmxlTmFtZSgpOwogCiAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ+IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCShyZXZpc2lvbiA5OTc0MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MCwxMyArNTAsMTMgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVByZWZsaQogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogCiAgICAgaWYgKCF0cmFuc2FjdGlv
bi0+ZGF0YWJhc2UoKS0+Z2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgewot
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byByZXRyaWV2ZSBhY3R1YWwgY3VycmVudCB2ZXJz
aW9uIGZyb20gZGF0YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHZlcmlmeSBjdXJyZW50IHZlcnNp
b24gb2YgZGF0YWJhc2UiKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHJlYWQgdGhlIGN1cnJlbnQgdmVyc2lv
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5k
YXRhYmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0
YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
ICAgICBpZiAoYWN0dWFsVmVyc2lvbiAhPSBtX29sZFZlcnNpb24pIHsKLSAgICAgICAgTE9HX0VS
Uk9SKCJPbGQgdmVyc2lvbiBkb2Vzbid0IG1hdGNoIGFjdHVhbCB2ZXJzaW9uIik7CiAgICAgICAg
IG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1
cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBk
byBub3QgbWF0Y2giKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTY5LDggKzY5
LDkgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBvc3RmbAogICAgIEFTU0VS
VCh0cmFuc2FjdGlvbiAmJiB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKSk7CiAKICAgICBpZiAoIXRy
YW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zZXRWZXJzaW9uSW5EYXRhYmFzZShtX25ld1ZlcnNpb24p
KSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBkYXRh
YmFzZSIpOwotICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNlIik7Cisg
ICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VS
UiwgInVuYWJsZSB0byBzZXQgbmV3IHZlcnNpb24gaW4gZGF0YWJhc2UiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRl
RGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCShyZXZpc2lvbiA5OTc0MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYsMzkg
Kzk2LDQ5IEBAIHZvaWQgRGF0YWJhc2VTeW5jOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFMKICAgICBB
U1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7CiAKICAg
ICBpZiAoc3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSkgeworICAgICAg
ICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gY2hhbmdlVmVyc2lvbiBmcm9tIHdpdGhp
biBhIHRyYW5zYWN0aW9uIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25T
eW5jPiB0cmFuc2FjdGlvbiA9IFNRTFRyYW5zYWN0aW9uU3luYzo6Y3JlYXRlKHRoaXMsIGNoYW5n
ZVZlcnNpb25DYWxsYmFjaywgZmFsc2UpOwotICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVn
aW4oKSkpCisgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5iZWdpbigpKSkgeworICAgICAgICBB
U1NFUlQoIWxhc3RFcnJvck1lc3NhZ2UoKS5pc0VtcHR5KCkpOwogICAgICAgICByZXR1cm47Cisg
ICAgfQogCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFnZXRWZXJzaW9uRnJv
bURhdGFiYXNlKGFjdHVhbFZlcnNpb24pKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2Uo
InVuYWJsZSB0byByZWFkIHRoZSBjdXJyZW50IHZlcnNpb24iLCBzcWxpdGVEYXRhYmFzZSgpLmxh
c3RFcnJvcigpLCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgZWMg
PSBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gb2xkVmVyc2lvbikgeworICAgICAgICBzZXRMYXN0RXJy
b3JNZXNzYWdlKCJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lv
bmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpW
RVJTSU9OX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgoZWMgPSB0cmFu
c2FjdGlvbi0+ZXhlY3V0ZSgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUo
KSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAg
ICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmICghc2V0VmVyc2lvbkluRGF0YWJhc2UobmV3
VmVyc2lvbikpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHNldCB2
ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+Y29t
bWl0KCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7
CiAgICAgICAgIHNldENhY2hlZFZlcnNpb24ob2xkVmVyc2lvbik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBzZXRFeHBlY3RlZFZlcnNpb24obmV3VmVyc2lvbik7CisgICAgc2V0TGFz
dEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjp0cmFuc2FjdGlvbihQ
YXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYgZWMpCkBAIC0xNDYsMTMgKzE1NiwxOCBAQCB2b2lkIERhdGFiYXNlU3luYzo6cnVuVHJh
bnNhY3Rpb24oUGFzc1JlCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXND
b250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25J
blByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHN0
YXJ0IGEgdHJhbnNhY3Rpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBl
YyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2Fj
dGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjYWxsYmFjaywgcmVhZE9ubHkpOwotICAgIGlmICgoZWMg
PSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkg
fHwgKGVjID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rp
b24tPmJlZ2luKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRy
YW5zYWN0aW9uLT5jb21taXQoKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdl
KCkuaXNFbXB0eSgpKTsKICAgICAgICAgdHJhbnNhY3Rpb24tPnJvbGxiYWNrKCk7CisgICAgfQor
CisgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjpt
YXJrQXNEZWxldGVkQW5kQ2xvc2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRh
YmFzZVN5bmMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNl
U3luYy5oCShyZXZpc2lvbiA5OTc0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJh
c2VTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDEwICs2NCwyMyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIG1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBj
bG9zZUltbWVkaWF0ZWx5KCk7CiAKKyAgICBjb25zdCBTdHJpbmcmIGxhc3RFcnJvck1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtX2xhc3RFcnJvck1lc3NhZ2U7IH0KKyAgICB2b2lkIHNldExhc3RF
cnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IG1fbGFzdEVycm9yTWVzc2FnZSA9
IG1lc3NhZ2U7IH0KKyAgICB2b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVz
c2FnZSwgaW50IHNxbGl0ZUNvZGUpCisgICAgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdl
KFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSkpOworICAgIH0K
KyAgICB2b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNx
bGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2UpCisgICAgeworICAgICAgICBzZXRM
YXN0RXJyb3JNZXNzYWdlKFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQsICVzKSIsIG1lc3NhZ2UsIHNx
bGl0ZUNvZGUsIHNxbGl0ZU1lc3NhZ2UpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgRGF0YWJh
c2VTeW5jKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLAogICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpOwogICAgIHZvaWQgcnVu
VHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjaz4sIGJvb2wg
cmVhZE9ubHksIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIFN0cmluZyBtX2xhc3RFcnJvck1lc3Nh
Z2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlU3luYy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsCShyZXZpc2lvbiA5OTc0MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIE5vU3RhdGljVGFibGVzCiAgICAgXSBEYXRhYmFz
ZVN5bmMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdEVycm9yTWVzc2FnZTsKICAg
ICAgICAgdm9pZCBjaGFuZ2VWZXJzaW9uKGluIERPTVN0cmluZyBvbGRWZXJzaW9uLCBpbiBET01T
dHJpbmcgbmV3VmVyc2lvbiwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU1FMVHJhbnNhY3Rpb25T
eW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHRyYW5zYWN0aW9uKGluIFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2Fs
bGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlv
bihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHJldmlz
aW9uIDk5NzQwKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSw2ICszOSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTUUxF
cnJvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTUUxFcnJvcj4gewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU1FMRXJyb3IoY29kZSwg
bWVzc2FnZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNp
Z25lZCBjb2RlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCkiLCBtZXNz
YWdlLCBzcWxpdGVDb2RlKSk7CisgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9y
PiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNv
ZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2UpCisgICAgeworICAgICAgICByZXR1cm4gY3Jl
YXRlKGNvZGUsIFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29k
ZSwgc3FsaXRlTWVzc2FnZSkpOworICAgIH0KIAogICAgIHVuc2lnbmVkIGNvZGUoKSBjb25zdCB7
IHJldHVybiBtX2NvZGU7IH0KICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bWVzc2FnZS5pc29sYXRlZENvcHkoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
UUxTdGF0ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FM
U3RhdGVtZW50LmNwcAkocmV2aXNpb24gOTk3NDApCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1NRTFN0YXRlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDEwIEBAIGJvb2wg
U1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlKiBkYikKIAogICAgIGlmIChyZXN1bHQgIT0g
U1FMUmVzdWx0T2spIHsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJVbmFibGUgdG8gdmVyaWZ5
IGNvcnJlY3RuZXNzIG9mIHN0YXRlbWVudCAlcyAtIGVycm9yICVpICglcykiLCBtX3N0YXRlbWVu
dC5hc2NpaSgpLmRhdGEoKSwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwotICAg
ICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJy
dXB0ID8gU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiA6IFNRTEVycm9yOjpTWU5UQVhfRVJSLCBkYXRh
YmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3VsdElu
dGVycnVwdCkKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9y
OjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsICJp
bnRlcnJ1cHRlZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwgImNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApAQCAtOTksNyArMTAyLDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4
ZWN1dGUoRGF0YWJhc2UqIGRiKQogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2sp
IHsKICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIGJpbmQgdmFsdWUgaW5k
ZXggJWkgdG8gc3RhdGVtZW50IGZvciBxdWVyeSAnJXMnIiwgaSArIDEsIG1fc3RhdGVtZW50LmFz
Y2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
ICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAi
Y291bGQgbm90IGJpbmQgdmFsdWUiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjMsNyAr
MTI2LDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogICAgICAg
ICB9IHdoaWxlIChyZXN1bHQgPT0gU1FMUmVzdWx0Um93KTsKIAogICAgICAgICBpZiAocmVzdWx0
ICE9IFNRTFJlc3VsdERvbmUpIHsKLSAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0Vf
RVJSLCAiY291bGQgbm90IGl0ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0g
ZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdERvbmUpIHsKQEAgLTEzNSw3ICsxMzgsNyBAQCBi
b29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAgICAgICAgIHNldEZhaWx1
cmVEdWVUb1F1b3RhKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgewotICAg
ICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBk
YXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNy
ZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGV4ZWN1dGUgc3RhdGVtZW50
IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5
bmMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50
U3luYy5jcHAJKHJldmlzaW9uIDk5NzQwKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxT
dGF0ZW1lbnRTeW5jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEsMTEgKzYxLDEzIEBAIFBhc3NS
ZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnRTeW4KICAgICBpbnQgcmVzdWx0ID0gc3Rh
dGVtZW50LnByZXBhcmUoKTsKICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAg
ICAgIGVjID0gKHJlc3VsdCA9PSBTUUxSZXN1bHRJbnRlcnJ1cHQgPyBTUUxFeGNlcHRpb246OkRB
VEFCQVNFX0VSUiA6IFNRTEV4Y2VwdGlvbjo6U1lOVEFYX0VSUik7CisgICAgICAgIGRiLT5zZXRM
YXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRh
dGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAg
IGlmIChzdGF0ZW1lbnQuYmluZFBhcmFtZXRlckNvdW50KCkgIT0gbV9hcmd1bWVudHMuc2l6ZSgp
KSB7CiAgICAgICAgIGVjID0gKGRiLT5pc0ludGVycnVwdGVkKCk/IFNRTEV4Y2VwdGlvbjo6REFU
QUJBU0VfRVJSIDogU1FMRXhjZXB0aW9uOjpTWU5UQVhfRVJSKTsKKyAgICAgICAgZGItPnNldExh
c3RFcnJvck1lc3NhZ2UoIm51bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBu
b3QgbWF0Y2ggYXJndW1lbnQgY291bnQiKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBA
IC03MywxMSArNzUsMTMgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5
bgogICAgICAgICByZXN1bHQgPSBzdGF0ZW1lbnQuYmluZFZhbHVlKGkgKyAxLCBtX2FyZ3VtZW50
c1tpXSk7CiAgICAgICAgIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0RnVsbCkgewogICAgICAgICAg
ICAgZWMgPSBTUUxFeGNlcHRpb246OlFVT1RBX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0
RXJyb3JNZXNzYWdlKCJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFj
ZSIpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVz
dWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFU
QUJBU0VfRVJSOworICAgICAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5v
dCBiaW5kIHZhbHVlIiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDIsNiArMTA2LDcgQEAgUGFz
c1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgogCiAgICAgICAgIGlmIChyZXN1
bHQgIT0gU1FMUmVzdWx0RG9uZSkgewogICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRB
VEFCQVNFX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBu
b3QgaXRlcmF0ZSByZXN1bHRzIiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9
PSBTUUxSZXN1bHREb25lKSB7CkBAIC0xMTEsOSArMTE2LDExIEBAIFBhc3NSZWZQdHI8U1FMUmVz
dWx0U2V0PiBTUUxTdGF0ZW1lbnRTeW4KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1
bHRGdWxsKSB7CiAgICAgICAgIC8vIFF1b3RhIGVycm9yLCB0aGUgZGVsZWdhdGUgd2lsbCBiZSBh
c2tlZCBmb3IgbW9yZSBzcGFjZSBhbmQgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgYmUgcmUtcnVuLgog
ICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6UVVPVEFfRVJSOworICAgICAgICBkYi0+c2V0TGFz
dEVycm9yTWVzc2FnZSgidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3Bh
Y2UiKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZWMgPSBTUUxF
eGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2Uo
ImNvdWxkIG5vdCBleGVjdXRlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gOTk3NDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1
LDggKzI2NSw5IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAg
ICAvLyBUcmFuc2FjdGlvbiBTdGVwcyAxKzIgLSBPcGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhlIGRh
dGFiYXNlLCBqdW1waW5nIHRvIHRoZSBlcnJvciBjYWxsYmFjayBpZiB0aGF0IGZhaWxzCiAgICAg
aWYgKCFtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKICAgICAgICAgQVNTRVJU
KCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsK
KyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUgZGF0YWJh
c2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNs
ZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhl
IGRhdGFiYXNlIik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjc2LDEwICsyNzcsMTEgQEAgdm9pZCBTUUxUcmFuc2Fj
dGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIHRoZSBhY3R1YWwgdmVyc2lvbi4gSW4g
c2luZ2xlLXByb2Nlc3MgYnJvd3NlcnMsIHRoaXMgaXMganVzdCBhIG1hcCBsb29rdXAuCiAgICAg
U3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFtX2RhdGFiYXNlLT5nZXRBY3R1YWxWZXJz
aW9uRm9yVHJhbnNhY3Rpb24oYWN0dWFsVmVyc2lvbikpIHsKKyAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxl
IHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRh
YmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIG1fZGF0YWJh
c2UtPmRpc2FibGVBdXRob3JpemVyKCk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xl
YXIoKTsKICAgICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwotICAgICAgICBt
X3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsICJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9u
RXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjk0LDcgKzI5Niw2IEBA
IHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAgICAgbV90cmFu
c2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJh
bnNhY3Rpb25FcnJvcikKICAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cmVkIHNl
dHRpbmcgdXAgdHJhbnNhY3Rpb24iKTsKLQogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9y
KGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MCw3ICs0NzEsNyBAQCB2b2lk
IFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0CiAgICAgaWYgKG1fd3JhcHBlciAm
JiAhbV93cmFwcGVyLT5wZXJmb3JtUG9zdGZsaWdodCh0aGlzKSkgewogICAgICAgICBtX3RyYW5z
YWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFu
c2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQgc2V0
dGluZyB1cCB0cmFuc2FjdGlvbiIpOworICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9j
Y3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQiKTsKICAgICAgICAgaGFuZGxlVHJh
bnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00ODcsNyAr
NDg4LDggQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdAogICAgICAg
ICBpZiAobV93cmFwcGVyKQogICAgICAgICAgICAgbV93cmFwcGVyLT5oYW5kbGVDb21taXRGYWls
ZWRBZnRlclBvc3RmbGlnaHQodGhpcyk7CiAgICAgICAgIG1fc3VjY2Vzc0NhbGxiYWNrV3JhcHBl
ci5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRl
KFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJmYWlsZWQgdG8gY29tbWl0IHRoZSB0cmFuc2FjdGlv
biIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpEQVRBQkFTRV9FUlIsICJmYWlsZWQgdG8gY29tbWl0IHRoZSB0cmFuc2FjdGlvbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+
c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2Uo
KS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2Up
OwogICAgICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
UUxUcmFuc2FjdGlvblN5bmMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAkocmV2aXNpb24gOTk3NDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1
LDEyICs3NSwxNyBAQCBTUUxUcmFuc2FjdGlvblN5bmM6On5TUUxUcmFuc2FjdGlvblN5bmMoCiBQ
YXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRlU1FMKGNv
bnN0IFN0cmluZyYgc3FsU3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVu
dHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKworICAgIG1fZGF0YWJhc2Ut
PnNldExhc3RFcnJvck1lc3NhZ2UoIiIpOworCiAgICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQo
KSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjYW5ub3QgZXhl
Y3V0ZVNRTCBiZWNhdXNlIHRoZSBkYXRhYmFzZSBpcyBub3Qgb3BlbiIpOwogICAgICAgICBlYyA9
IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAog
ICAgIGlmIChtX2hhc1ZlcnNpb25NaXNtYXRjaCkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRM
YXN0RXJyb3JNZXNzYWdlKCJjYW5ub3QgZXhlY3V0ZVNRTCBiZWNhdXNlIHRoZXJlIGlzIGEgdmVy
c2lvbiBtaXNtYXRjaCIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9FUlI7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTExMCw4ICsxMTUsMTAgQEAgUGFzc1JlZlB0
cjxTUUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9uUwogICAgICAgICAgICAgICAgIGlmIChtX3Ry
YW5zYWN0aW9uQ2xpZW50LT5kaWRFeGNlZWRRdW90YShkYXRhYmFzZSgpKSkgewogICAgICAgICAg
ICAgICAgICAgICBlYyA9IDA7CiAgICAgICAgICAgICAgICAgICAgIHJldHJ5U3RhdGVtZW50ID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVy
ZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMjcsOCArMTM0LDEwIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0
PiBTUUxUcmFuc2FjdGlvblMKIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdp
bigpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpCisgICAg
aWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0
RXJyb3JNZXNzYWdlKCJjYW5ub3QgYmVnaW4gdHJhbnNhY3Rpb24gYmVjYXVzZSB0aGUgZGF0YWJh
c2UgaXMgbm90IG9wZW4iKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9F
UlI7CisgICAgfQogCiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLnRy
YW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKIApAQCAtMTQ3LDYgKzE1Niw4IEBAIEV4Y2VwdGlvbkNv
ZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbigKICAgICAvLyBDaGVjayBpZiBiZWdpbigpIHN1
Y2NlZWRlZC4KICAgICBpZiAoIW1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgewog
ICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25J
blByb2dyZXNzKCkpOworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1
bmFibGUgdG8gb3BlbiBhIHRyYW5zYWN0aW9uIHRvIHRoZSBkYXRhYmFzZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2Uo
KS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgcmV0dXJu
IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE1Niw2ICsxNjcsOCBAQCBF
eGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gdGhlIGFjdHVh
bCB2ZXJzaW9uLiBJbiBzaW5nbGUtcHJvY2VzcyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFw
IGxvb2t1cC4KICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2Ut
PmdldEFjdHVhbFZlcnNpb25Gb3JUcmFuc2FjdGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAg
ICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9u
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5z
cWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcm9sbGJhY2soKTsKICAgICAgICAgcmV0dXJuIFNR
TEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE2OCw2ICsxODEsOCBAQCBFeGNl
cHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0CiB7CiAgICAgQVNTRVJUKG1fZGF0
YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwogICAg
IGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkgfHwgKG1fY2FsbGJhY2sgJiYgIW1fY2FsbGJhY2st
PmhhbmRsZUV2ZW50KHRoaXMpKSkgeworICAgICAgICBpZiAobV9kYXRhYmFzZS0+bGFzdEVycm9y
TWVzc2FnZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJv
ck1lc3NhZ2UoImZhaWxlZCB0byBleGVjdXRlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIik7CiAgICAg
ICAgIG1fY2FsbGJhY2sgPSAwOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dO
X0VSUjsKICAgICB9CkBAIC0xNzksOCArMTk0LDEwIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNh
Y3Rpb25TeW5jOjpleGVjdXQKIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQoKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKQorICAg
IGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFz
dEVycm9yTWVzc2FnZSgiY2Fubm90IGNvbW1pdCB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBkYXRh
YmFzZSBpcyBub3Qgb3Blbi4iKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5LTk9X
Tl9FUlI7CisgICAgfQogCiAgICAgQVNTRVJUKG1fc3FsaXRlVHJhbnNhY3Rpb24pOwogCkBAIC0x
ODksOCArMjA2LDExIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQK
ICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7CiAKICAgICAvLyBJZiB0aGUgY29t
bWl0IGZhaWxlZCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgc3RpbGwgYmUgbWFya2VkIGFzICJpbiBw
cm9ncmVzcyIKLSAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQorICAg
IGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgbV9kYXRh
YmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiZmFpbGVkIHRvIGNvbW1pdCB0aGUgdHJhbnNhY3Rp
b24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2Ut
PnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNl
KCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpEQVRBQkFT
RV9FUlI7CisgICAgfQogCiAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114558</attachid>
            <date>2011-11-10 13:44:53 -0800</date>
            <delta_ts>2011-11-10 13:49:42 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberrors2.txt</filename>
            <type>text/plain</type>
            <size>40403</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5ODk0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIFByb2R1Y2UgY29uc29sZSBsb2dnaW5nCisgICAgICAg
IGZvciBvcGVuRGF0YWJhc2UoKSBlcnJvcnMuIEFkZCBhIGxhc3RFcnJvck1lc3NhZ2UgYWNjZXNz
b3IKKyAgICAgICAgdG8gdGhlIERhdGFiYXNlU3luYyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBpbiB0aGUgd29ya3Ms
IGp1c3Qgbm90IGluIHRoaXMgc25hcHNob3QgeWV0LgorCisgICAgICAgICogcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpT
UUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6b3Blbik6
CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9ybWF0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFi
c3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yTWVzc2FnZSk6CisgICAgICAgICogc3RvcmFnZS9B
YnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBy
ZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVBvc3RmbGlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmg6Cisg
ICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VTeW5jOjpvcGVuRGF0YWJhc2VTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
U3luYzo6Y2hhbmdlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6OnJ1
blRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpsYXN0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlU3luYzo6c2V0TGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgICogc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VUYXNrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFz
ZU9wZW5UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNr
Ojpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGFzay5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OmNyZWF0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMU3RhdGVtZW50OjpleGVjdXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRl
bWVudFN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0
ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAg
ICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
UUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJh
bnNhY3Rpb25TeW5jOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5
bmM6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQpOgorCiAyMDExLTExLTEwICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb3ZlL2NvcHkvbWVyZ2UgU1ZHIGZpbHRlciByZW5kZXJpbmcgY29kZSB0byBnZW5lcmlj
IHJlbmRlcmluZwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiA5OTg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDggQEAg
Y29uc3QgaW50IFNRTFJlc3VsdFNjaGVtYSA9IFNRTElURV9TQ0hFTQogY29uc3QgaW50IFNRTFJl
c3VsdEZ1bGwgPSBTUUxJVEVfRlVMTDsKIGNvbnN0IGludCBTUUxSZXN1bHRJbnRlcnJ1cHQgPSBT
UUxJVEVfSU5URVJSVVBUOwogCitzdGF0aWMgY29uc3QgY2hhciBub3RPcGVuRXJyb3JNZXNzYWdl
W10gPSAiZGF0YWJhc2UgaXMgbm90IG9wZW4iOworCiBTUUxpdGVEYXRhYmFzZTo6U1FMaXRlRGF0
YWJhc2UoKQogICAgIDogbV9kYigwKQogICAgICwgbV9wYWdlU2l6ZSgtMSkKQEAgLTUzLDYgKzU1
LDggQEAgU1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAgICAsIG1fc2hhcmFibGUo
ZmFsc2UpCiAgICAgLCBtX29wZW5pbmdUaHJlYWQoMCkKICAgICAsIG1faW50ZXJydXB0ZWQoZmFs
c2UpCisgICAgLCBtX29wZW5FcnJvcihTUUxJVEVfRVJST1IpCisgICAgLCBtX29wZW5FcnJvck1l
c3NhZ2Uobm90T3BlbkVycm9yTWVzc2FnZSkKIHsKIH0KIApAQCAtNjUsMTUgKzY5LDIwIEBAIGJv
b2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4oY29uc3QgU3RyaW5nJgogewogICAgIGNsb3NlKCk7CiAK
LSAgICBpZiAoU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAmbV9kYiwg
Zm9yV2ViU1FMRGF0YWJhc2UpICE9IFNRTElURV9PSykgeworICAgIG1fb3BlbkVycm9yID0gU1FM
aXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAmbV9kYiwgZm9yV2ViU1FMRGF0
YWJhc2UpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9v
cGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CiAgICAgICAgIExPR19FUlJP
UigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBsb2FkIGZyb20gJXNcbkNhdXNlIC0gJXMiLCBm
aWxlbmFtZS5hc2NpaSgpLmRhdGEoKSwKLSAgICAgICAgICAgIHNxbGl0ZTNfZXJybXNnKG1fZGIp
KTsKKyAgICAgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCkpOwogICAgICAgICBzcWxp
dGUzX2Nsb3NlKG1fZGIpOwogICAgICAgICBtX2RiID0gMDsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkg
IT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9y
IHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBzcWxpdGUzX2Vycm1zZyhtX2Ri
KSk7CisKKyAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1f
ZGIsIDEpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9v
cGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIExPR19FUlJP
UigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0g
JXMiLCBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19jbG9zZSht
X2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYg
KzkwLDggQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmCiAKICAgICBp
ZiAoaXNPcGVuKCkpCiAgICAgICAgIG1fb3BlbmluZ1RocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsK
KyAgICBlbHNlCisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9ICJzcWxpdGUzKiBpcyBudWxs
IjsKIAogICAgIGlmICghU1FMaXRlU3RhdGVtZW50KCp0aGlzLCAiUFJBR01BIHRlbXBfc3RvcmUg
PSBNRU1PUlk7IikuZXhlY3V0ZUNvbW1hbmQoKSkKICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUg
ZGF0YWJhc2UgY291bGQgbm90IHNldCB0ZW1wX3N0b3JlIHRvIG1lbW9yeSIpOwpAQCAtMTAyLDYg
KzExMyw4IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKCkKICAgICB9CiAKICAgICBtX29w
ZW5pbmdUaHJlYWQgPSAwOworICAgIG1fb3BlbkVycm9yID0gU1FMSVRFX0VSUk9SOworICAgIG1f
b3BlbkVycm9yTWVzc2FnZSA9IG5vdE9wZW5FcnJvck1lc3NhZ2U7CiB9CiAKIHZvaWQgU1FMaXRl
RGF0YWJhc2U6OmludGVycnVwdCgpCkBAIC0zMTQsMTIgKzMyNywxMiBAQCBpbnQgU1FMaXRlRGF0
YWJhc2U6Omxhc3RDaGFuZ2VzKCkKIAogaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IoKQog
ewotICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogU1FMSVRFX0VSUk9S
OworICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogbV9vcGVuRXJyb3I7
CiB9CiAKIGNvbnN0IGNoYXIqIFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3JNc2coKQogeyAKLSAg
ICByZXR1cm4gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgcmV0dXJuIG1fZGIgPyBzcWxpdGUz
X2Vycm1zZyhtX2RiKSA6IG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCk7CiB9CiAKICNpZm5kZWYg
TkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuaAkocmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBT
UUxpdGVEYXRhYmFzZV9oCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBD
T01QSUxFUihNU1ZDKQpAQCAtMTUzLDcgKzE1NCwxMCBAQCBwcml2YXRlOgogCiAgICAgTXV0ZXgg
bV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKICAgICBib29sIG1faW50ZXJydXB0ZWQ7Ci19OyAvLyBj
bGFzcyBTUUxpdGVEYXRhYmFzZQorCisgICAgaW50IG1fb3BlbkVycm9yOworICAgIENTdHJpbmcg
bV9vcGVuRXJyb3JNZXNzYWdlOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5jcHAJKHJldmlzaW9u
IDk5ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIKICNpbmNsdWRlICJTUUxpdGVUcmFuc2FjdGlvbi5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC01Miw2ICs1MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMg
Y29uc3QgY2hhciB2ZXJzaW9uS2V5W10gPSAiV2ViS2l0RGF0YWJhc2VWZXJzaW9uS2V5IjsKIHN0
YXRpYyBjb25zdCBjaGFyIGluZm9UYWJsZU5hbWVbXSA9ICJfX1dlYktpdERhdGFiYXNlSW5mb1Rh
YmxlX18iOwogCitzdGF0aWMgU3RyaW5nIGZvcm1hdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBt
ZXNzYWdlLCBpbnQgc3FsaXRlRXJyb3JDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVFcnJvck1lc3Nh
Z2UpCit7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwg
c3FsaXRlRXJyb3JDb2RlLCBzcWxpdGVFcnJvck1lc3NhZ2UpOworfQorCiBzdGF0aWMgYm9vbCBy
ZXRyaWV2ZVRleHRSZXN1bHRGcm9tRGF0YWJhc2UoU1FMaXRlRGF0YWJhc2UmIGRiLCBjb25zdCBT
dHJpbmcmIHF1ZXJ5LCBTdHJpbmcmIHJlc3VsdFN0cmluZykKIHsKICAgICBTUUxpdGVTdGF0ZW1l
bnQgc3RhdGVtZW50KGRiLCBxdWVyeSk7CkBAIC0yNDQsMTcgKzI1MCwxOSBAQCBTdHJpbmcgQWJz
dHJhY3REYXRhYmFzZTo6dmVyc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGdldENhY2hlZFZlcnNp
b24oKTsKIH0KIAotYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShi
b29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jv
b2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzaG91bGRTZXRW
ZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYgZWMsIFN0cmluZyYgZXJyb3JNZXNz
YWdlKQogeworICAgIEFTU0VSVChlcnJvck1lc3NhZ2UuaXNFbXB0eSgpKTsKKwogICAgIGNvbnN0
IGludCBtYXhTcWxpdGVCdXN5V2FpdFRpbWUgPSAzMDAwMDsKIAogICAgIGlmICghbV9zcWxpdGVE
YXRhYmFzZS5vcGVuKG1fZmlsZW5hbWUsIHRydWUpKSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgYXQgcGF0aCAlcyIsIG1fZmlsZW5hbWUuYXNjaWkoKS5kYXRh
KCkpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVE
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNl
LnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpKQotICAgICAgICBMT0dfRVJST1IoIlVuYWJs
ZSB0byB0dXJuIG9uIGluY3JlbWVudGFsIGF1dG8tdmFjdXVtIGZvciBkYXRhYmFzZSAlcyIsIG1f
ZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byB0
dXJuIG9uIGluY3JlbWVudGFsIGF1dG8tdmFjdXVtICglZCAlcykiLCBtX3NxbGl0ZURhdGFiYXNl
Lmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIG1f
c3FsaXRlRGF0YWJhc2Uuc2V0QnVzeVRpbWVvdXQobWF4U3FsaXRlQnVzeVdhaXRUaW1lKTsKIApA
QCAtMjkwLDcgKzI5OCw3IEBAIGJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRW
ZXIKICAgICAgICAgICAgIFNRTGl0ZVRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKG1fc3FsaXRlRGF0
YWJhc2UpOwogICAgICAgICAgICAgdHJhbnNhY3Rpb24uYmVnaW4oKTsKICAgICAgICAgICAgIGlm
ICghdHJhbnNhY3Rpb24uaW5Qcm9ncmVzcygpKSB7Ci0gICAgICAgICAgICAgICAgTE9HX0VSUk9S
KCJVbmFibGUgdG8gYmVnaW4gdHJhbnNhY3Rpb24gd2hpbGUgb3BlbmluZyAlcyIsIGRhdGFiYXNl
RGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0
byBzdGFydCB0cmFuc2FjdGlvbiIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3Fs
aXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CiAgICAgICAgICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMwMSwxNCArMzA5LDE0IEBAIGJvb2wg
QWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAgICAgICAgICAgICBtX25l
dyA9IHRydWU7CiAKICAgICAgICAgICAgICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSAiICsgdGFibGVOYW1lICsgIiAoa2V5IFRFWFQgTk9UIE5V
TEwgT04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSx2YWx1ZSBURVhU
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpOyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSB0YWJsZSAlcyBpbiBkYXRhYmFzZSAlcyIsIGluZm9U
YWJsZU5hbWUsIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlLCBmYWlsZWQgdG8gY3JlYXRlICdpbmZvJyB0YWJsZSIsIG1fc3FsaXRlRGF0
YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICBtX3NxbGl0
ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFnZXRWZXJzaW9uRnJvbURh
dGFiYXNlKGN1cnJlbnRWZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBnZXQgY3VycmVudCB2ZXJzaW9uIGZyb20gZGF0YWJhc2UgJXMiLCBkYXRh
YmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCBmYWls
ZWQgdG8gcmVhZCBjdXJyZW50IHZlcnNpb24iLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigp
LCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJvbGxiYWNr
KCk7CiAgICAgICAgICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzIwLDcg
KzMyOCw3IEBAIGJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoIW1fbmV3IHx8IHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNl
KSB7CiAgICAgICAgICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJTZXR0aW5nIHZlcnNpb24gJXMg
aW4gZGF0YWJhc2UgJXMgdGhhdCB3YXMganVzdCBjcmVhdGVkIiwgbV9leHBlY3RlZFZlcnNpb24u
YXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOwogICAg
ICAgICAgICAgICAgIGlmICghc2V0VmVyc2lvbkluRGF0YWJhc2UobV9leHBlY3RlZFZlcnNpb24s
IGZhbHNlKSkgewotICAgICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZXQg
dmVyc2lvbiAlcyBpbiBkYXRhYmFzZSAlcyIsIG1fZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0
YSgpLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSwgZmFpbGVkIHRvIHdyaXRlIGN1cnJlbnQgdmVyc2lvbiIsIG1fc3FsaXRlRGF0YWJh
c2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgICAg
ICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICBtX3NxbGl0ZURh
dGFiYXNlLmNsb3NlKCk7CkBAIC0zNDEsOCArMzQ5LDcgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNl
OjpwZXJmb3JtT3BlbkFuZFZlcgogICAgIC8vIElmIHRoZSBleHBlY3RlZCB2ZXJzaW9uIGlzbid0
IHRoZSBlbXB0eSBzdHJpbmcsIGVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IGRhdGFiYXNlIHZlcnNp
b24gd2UgaGF2ZSBtYXRjaGVzIHRoYXQgdmVyc2lvbi4gT3RoZXJ3aXNlLCBzZXQgYW4gZXhjZXB0
aW9uLgogICAgIC8vIElmIHRoZSBleHBlY3RlZCB2ZXJzaW9uIGlzIHRoZSBlbXB0eSBzdHJpbmcs
IHRoZW4gd2UgYWx3YXlzIHJldHVybiB3aXRoIHdoYXRldmVyIHZlcnNpb24gb2YgdGhlIGRhdGFi
YXNlIHdlIGhhdmUuCiAgICAgaWYgKCghbV9uZXcgfHwgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0
YWJhc2UpICYmIG1fZXhwZWN0ZWRWZXJzaW9uLmxlbmd0aCgpICYmIG1fZXhwZWN0ZWRWZXJzaW9u
ICE9IGN1cnJlbnRWZXJzaW9uKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAicGFnZSBleHBl
Y3RzIHZlcnNpb24gJXMgZnJvbSBkYXRhYmFzZSAlcywgd2hpY2ggYWN0dWFsbHkgaGFzIHZlcnNp
b24gbmFtZSAlcyAtIG9wZW5EYXRhYmFzZSgpIGNhbGwgd2lsbCBmYWlsIiwgbV9leHBlY3RlZFZl
cnNpb24uYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAgICBkYXRhYmFzZURlYnVnTmFtZSgpLmFz
Y2lpKCkuZGF0YSgpLCBjdXJyZW50VmVyc2lvbi5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9ICJ1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwg
JyIgKyBtX2V4cGVjdGVkVmVyc2lvbiArICInIGRvZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50VmVy
c2lvbiBvZiAnIiArIGN1cnJlbnRWZXJzaW9uICsgIiciOwogICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwogICAgICAgICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTUzOSw2ICs1NDYsMTEgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpp
c0ludGVycnVwdGVkKCkKICAgICByZXR1cm4gbV9zcWxpdGVEYXRhYmFzZS5pc0ludGVycnVwdGVk
KCk7CiB9CiAKK3ZvaWQgQWJzdHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3Nh
Z2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIDAsIFN0cmluZygpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCShyZXZpc2lvbiA5OTg4OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5
NSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY2xvc2VEYXRhYmFzZSgpOwogCi0gICAgdmly
dHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3
RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybU9w
ZW5BbmRWZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9u
Q29kZSYgZWMsIFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgIGJvb2wgZ2V0VmVyc2lvbkZy
b21EYXRhYmFzZShTdHJpbmcmIHZlcnNpb24sIGJvb2wgc2hvdWxkQ2FjaGVWZXJzaW9uID0gdHJ1
ZSk7CiAgICAgYm9vbCBzZXRWZXJzaW9uSW5EYXRhYmFzZShjb25zdCBTdHJpbmcmIHZlcnNpb24s
IGJvb2wgc2hvdWxkQ2FjaGVWZXJzaW9uID0gdHJ1ZSk7CkBAIC0xMDUsNiArMTA1LDggQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgc2V0Q2FjaGVkVmVyc2lvbihjb25zdCBTdHJpbmcmKTsKICAgICBi
b29sIGdldEFjdHVhbFZlcnNpb25Gb3JUcmFuc2FjdGlvbihTdHJpbmcmIHZlcnNpb24pOwogCisg
ICAgdm9pZCBsb2dFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKwogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBkYXRhYmFzZUluZm9UYWJsZU5hbWUoKTsKIAogICAgIFJlZlB0cjxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAkocmV2
aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFw
cGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTMgKzUwLDEzIEBAIGJvb2wgQ2hhbmdlVmVy
c2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGkKICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKIAog
ICAgIGlmICghdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPmdldFZlcnNpb25Gcm9tRGF0YWJhc2Uo
YWN0dWFsVmVyc2lvbikpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gcmV0cmlldmUg
YWN0dWFsIGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byB2
ZXJpZnkgY3VycmVudCB2ZXJzaW9uIG9mIGRhdGFiYXNlIik7CisgICAgICAgIG1fc3FsRXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byByZWFk
IHRoZSBjdXJyZW50IHZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3Io
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24tPmRh
dGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCiAgICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gbV9vbGRWZXJzaW9u
KSB7Ci0gICAgICAgIExPR19FUlJPUigiT2xkIHZlcnNpb24gZG9lc24ndCBtYXRjaCBhY3R1YWwg
dmVyc2lvbiIpOwogICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xk
VmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CkBAIC02OSw4ICs2OSw5IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZv
cm1Qb3N0ZmwKICAgICBBU1NFUlQodHJhbnNhY3Rpb24gJiYgdHJhbnNhY3Rpb24tPmRhdGFiYXNl
KCkpOwogCiAgICAgaWYgKCF0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c2V0VmVyc2lvbkluRGF0
YWJhc2UobV9uZXdWZXJzaW9uKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzZXQg
bmV3IHZlcnNpb24gaW4gZGF0YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lv
biBpbiBkYXRhYmFzZSIpOworICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFi
YXNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24t
PmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zcWxpdGVE
YXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDk5ODg5KQor
KysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk4LDggKzk4LDkgQEAgUGFzc1JlZlB0cjxEYXRhYmFzZT4gRGF0YWJhc2U6Om9wZW5EYXRhYgog
CiAgICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZSA9IGFkb3B0UmVmKG5ldyBEYXRhYmFzZShj
b250ZXh0LCBuYW1lLCBleHBlY3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXpl
KSk7CiAKLSAgICBpZiAoIWRhdGFiYXNlLT5vcGVuQW5kVmVyaWZ5VmVyc2lvbighY3JlYXRpb25D
YWxsYmFjaywgZSkpIHsKLSAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJGYWlsZWQgdG8gb3BlbiBh
bmQgdmVyaWZ5IHZlcnNpb24gKGV4cGVjdGVkICVzKSBvZiBkYXRhYmFzZSAlcyIsIGV4cGVjdGVk
VmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2UtPmRhdGFiYXNlRGVidWdOYW1lKCkuYXNj
aWkoKS5kYXRhKCkpOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFkYXRhYmFz
ZS0+b3BlbkFuZFZlcmlmeVZlcnNpb24oIWNyZWF0aW9uQ2FsbGJhY2ssIGUsIGVycm9yTWVzc2Fn
ZSkpIHsKKyAgICAgICAgZGF0YWJhc2UtPmxvZ0Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwog
ICAgICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5yZW1vdmVPcGVuRGF0YWJhc2UoZGF0
YWJhc2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xNzMsMTQgKzE3NCwx
NCBAQCBTdHJpbmcgRGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBBYnN0cmFj
dERhdGFiYXNlOjp2ZXJzaW9uKCk7CiB9CiAKLWJvb2wgRGF0YWJhc2U6Om9wZW5BbmRWZXJpZnlW
ZXJzaW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUpCiti
b29sIERhdGFiYXNlOjpvcGVuQW5kVmVyaWZ5VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0Rh
dGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBE
YXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIgc3luY2hyb25pemVyOwogICAgIGlmICghbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpIHx8IG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+ZGF0YWJhc2VUaHJlYWQoKS0+dGVybWluYXRpb25SZXF1ZXN0ZWQoJnN5bmNocm9uaXpl
cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwot
ICAgIE93blB0cjxEYXRhYmFzZU9wZW5UYXNrPiB0YXNrID0gRGF0YWJhc2VPcGVuVGFzazo6Y3Jl
YXRlKHRoaXMsIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCAmc3luY2hyb25pemVyLCBlLCBzdWNj
ZXNzKTsKKyAgICBPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gdGFzayA9IERhdGFiYXNlT3BlblRh
c2s6OmNyZWF0ZSh0aGlzLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgJnN5bmNocm9uaXplciwg
ZSwgZXJyb3JNZXNzYWdlLCBzdWNjZXNzKTsKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmRhdGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlSW1tZWRpYXRlVGFzayh0YXNrLnJlbGVhc2UoKSk7
CiAgICAgc3luY2hyb25pemVyLndhaXRGb3JUYXNrQ29tcGxldGlvbigpOwogCkBAIC0yMzgsOSAr
MjM5LDkgQEAgdW5zaWduZWQgbG9uZyBsb25nIERhdGFiYXNlOjptYXhpbXVtU2l6ZQogICAgIHJl
dHVybiBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5nZXRNYXhTaXplRm9yRGF0YWJhc2UodGhp
cyk7CiB9CiAKLWJvb2wgRGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVy
c2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUpCitib29sIERhdGFiYXNlOjpwZXJm
b3JtT3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25D
b2RlJiBlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBpZiAoQWJzdHJhY3REYXRhYmFz
ZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkoc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIGUpKSB7Cisg
ICAgaWYgKEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KHNldFZlcnNpb25J
bk5ld0RhdGFiYXNlLCBlLCBlcnJvck1lc3NhZ2UpKSB7CiAgICAgICAgIGlmIChtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmRhdGFiYXNlVGhyZWFkKCkpCiAgICAgICAgICAgICBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPmRhdGFiYXNlVGhyZWFkKCktPnJlY29yZERhdGFiYXNlT3Blbih0aGlz
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaAkocmV2aXNpb24gOTk4ODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1
LDggKzk1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8
U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrPiwKICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNr
PiBzdWNjZXNzQ2FsbGJhY2ssIGJvb2wgcmVhZE9ubHkpOwogCi0gICAgYm9vbCBvcGVuQW5kVmVy
aWZ5VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lvbklu
TmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIG9wZW5BbmRWZXJpZnlWZXJz
aW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcm
IGVycm9yTWVzc2FnZSk7CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJv
b2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9y
TWVzc2FnZSk7CiAKICAgICB2b2lkIGluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZCgpOwog
ICAgIHZvaWQgc2NoZWR1bGVUcmFuc2FjdGlvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvRGF0YWJhc2VTeW5jLmNwcAkocmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlU3luYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDggKzU5LDkgQEAg
UGFzc1JlZlB0cjxEYXRhYmFzZVN5bmM+IERhdGFiYXNlU3luYzo6bwogCiAgICAgUmVmUHRyPERh
dGFiYXNlU3luYz4gZGF0YWJhc2UgPSBhZG9wdFJlZihuZXcgRGF0YWJhc2VTeW5jKGNvbnRleHQs
IG5hbWUsIGV4cGVjdGVkVmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpKTsKIAot
ICAgIGlmICghZGF0YWJhc2UtPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KCFjcmVhdGlvbkNhbGxiYWNr
LCBlYykpIHsKLSAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJGYWlsZWQgdG8gb3BlbiBhbmQgdmVy
aWZ5IHZlcnNpb24gKGV4cGVjdGVkICVzKSBvZiBkYXRhYmFzZSAlcyIsIGV4cGVjdGVkVmVyc2lv
bi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2UtPmRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5k
YXRhKCkpOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFkYXRhYmFzZS0+cGVy
Zm9ybU9wZW5BbmRWZXJpZnkoIWNyZWF0aW9uQ2FsbGJhY2ssIGVjLCBlcnJvck1lc3NhZ2UpKSB7
CisgICAgICAgIGRhdGFiYXNlLT5sb2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAg
ICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkucmVtb3ZlT3BlbkRhdGFiYXNlKGRhdGFiYXNl
LmdldCgpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtOTYsMzkgKzk3LDQ5IEBAIHZv
aWQgRGF0YWJhc2VTeW5jOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFMKICAgICBBU1NFUlQobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7CiAKICAgICBpZiAoc3FsaXRl
RGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSkgeworICAgICAgICBzZXRMYXN0RXJy
b3JNZXNzYWdlKCJ1bmFibGUgdG8gY2hhbmdlVmVyc2lvbiBmcm9tIHdpdGhpbiBhIHRyYW5zYWN0
aW9uIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25TeW5jPiB0cmFuc2Fj
dGlvbiA9IFNRTFRyYW5zYWN0aW9uU3luYzo6Y3JlYXRlKHRoaXMsIGNoYW5nZVZlcnNpb25DYWxs
YmFjaywgZmFsc2UpOwotICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkpCisgICAg
aWYgKChlYyA9IHRyYW5zYWN0aW9uLT5iZWdpbigpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RF
cnJvck1lc3NhZ2UoKS5pc0VtcHR5KCkpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAg
U3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFnZXRWZXJzaW9uRnJvbURhdGFiYXNlKGFj
dHVhbFZlcnNpb24pKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBy
ZWFkIHRoZSBjdXJyZW50IHZlcnNpb24iLCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBz
cWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRp
b246OlVOS05PV05fRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGFjdHVh
bFZlcnNpb24gIT0gb2xkVmVyc2lvbikgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJj
dXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQg
ZG8gbm90IG1hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpWRVJTSU9OX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+ZXhl
Y3V0ZSgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkpIHsKKyAgICAg
ICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAgICAgcmV0dXJu
OworICAgIH0KIAogICAgIGlmICghc2V0VmVyc2lvbkluRGF0YWJhc2UobmV3VmVyc2lvbikpIHsK
KyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHNldCB0aGUgbmV3IHZlcnNp
b24iLCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5jb21taXQo
KSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAg
ICAgICAgc2V0Q2FjaGVkVmVyc2lvbihvbGRWZXJzaW9uKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIHNldEV4cGVjdGVkVmVyc2lvbihuZXdWZXJzaW9uKTsKKyAgICBzZXRMYXN0RXJy
b3JNZXNzYWdlKCIiKTsKIH0KIAogdm9pZCBEYXRhYmFzZVN5bmM6OnRyYW5zYWN0aW9uKFBhc3NS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2s+IGNhbGxiYWNrLCBFeGNlcHRpb25Db2Rl
JiBlYykKQEAgLTE0NiwxMyArMTU3LDE4IEBAIHZvaWQgRGF0YWJhc2VTeW5jOjpydW5UcmFuc2Fj
dGlvbihQYXNzUmUKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRl
eHRUaHJlYWQoKSk7CiAKICAgICBpZiAoc3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJv
Z3Jlc3MoKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gc3RhcnQg
YSB0cmFuc2FjdGlvbiBmcm9tIHdpdGhpbiBhIHRyYW5zYWN0aW9uIik7CiAgICAgICAgIGVjID0g
U1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25TeW5jPiB0cmFuc2FjdGlvbiA9IFNRTFRyYW5zYWN0aW9u
U3luYzo6Y3JlYXRlKHRoaXMsIGNhbGxiYWNrLCByZWFkT25seSk7Ci0gICAgaWYgKChlYyA9IHRy
YW5zYWN0aW9uLT5iZWdpbigpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+ZXhlY3V0ZSgpKSB8fCAo
ZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+
YmVnaW4oKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkgfHwgKGVjID0gdHJhbnNh
Y3Rpb24tPmNvbW1pdCgpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJvck1lc3NhZ2UoKS5p
c0VtcHR5KCkpOwogICAgICAgICB0cmFuc2FjdGlvbi0+cm9sbGJhY2soKTsKKyAgICB9CisKKyAg
ICBzZXRMYXN0RXJyb3JNZXNzYWdlKCIiKTsKIH0KIAogdm9pZCBEYXRhYmFzZVN5bmM6Om1hcmtB
c0RlbGV0ZWRBbmRDbG9zZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNl
U3luYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5j
LmgJKHJldmlzaW9uIDk5ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5
bmMuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTAgKzY0LDIzIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgbWFya0FzRGVsZXRlZEFuZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3Nl
SW1tZWRpYXRlbHkoKTsKIAorICAgIGNvbnN0IFN0cmluZyYgbGFzdEVycm9yTWVzc2FnZSgpIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdEVycm9yTWVzc2FnZTsgfQorICAgIHZvaWQgc2V0TGFzdEVycm9y
TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9sYXN0RXJyb3JNZXNzYWdlID0gbWVz
c2FnZTsgfQorICAgIHZvaWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdl
LCBpbnQgc3FsaXRlQ29kZSkKKyAgICB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoU3Ry
aW5nOjpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7CisgICAgfQorICAg
IHZvaWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRl
Q29kZSwgY29uc3QgY2hhciogc3FsaXRlTWVzc2FnZSkKKyAgICB7CisgICAgICAgIHNldExhc3RF
cnJvck1lc3NhZ2UoU3RyaW5nOjpmb3JtYXQoIiVzICglZCwgJXMpIiwgbWVzc2FnZSwgc3FsaXRl
Q29kZSwgc3FsaXRlTWVzc2FnZSkpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBEYXRhYmFzZVN5
bmMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiBleHBlY3RlZFZlcnNpb24sCiAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZGlz
cGxheU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSk7CiAgICAgdm9pZCBydW5UcmFu
c2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiwgYm9vbCByZWFk
T25seSwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgU3RyaW5nIG1fbGFzdEVycm9yTWVzc2FnZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvRGF0YWJhc2VTeW5jLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0RhdGFiYXNlU3luYy5pZGwJKHJldmlzaW9uIDk5ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG1v
ZHVsZSBzdG9yYWdlIHsKICAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIERhdGFiYXNlU3lu
YyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVyc2lvbjsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0RXJyb3JNZXNzYWdlOwogICAgICAg
ICB2b2lkIGNoYW5nZVZlcnNpb24oaW4gRE9NU3RyaW5nIG9sZFZlcnNpb24sIGluIERPTVN0cmlu
ZyBuZXdWZXJzaW9uLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvblN5bmND
YWxsYmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgdHJh
bnNhY3Rpb24oaW4gW0NhbGxiYWNrXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxsYmFj
aykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKGlu
IFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhE
T01FeGNlcHRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNw
cAkocmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFz
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDEwICs5OCwxMSBAQCB2b2lkIERhdGFiYXNlVGFz
azo6cGVyZm9ybVRhc2soKQogLy8gKioqIERhdGFiYXNlT3BlblRhc2sgKioqCiAvLyBPcGVucyB0
aGUgZGF0YWJhc2UgZmlsZSBhbmQgdmVyaWZpZXMgdGhlIHZlcnNpb24gbWF0Y2hlcyB0aGUgZXhw
ZWN0ZWQgdmVyc2lvbi4KIAotRGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OkRhdGFiYXNlT3Bl
blRhc2soRGF0YWJhc2UqIGRhdGFiYXNlLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBE
YXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNocm9uaXplciwgRXhjZXB0aW9uQ29kZSYgY29k
ZSwgYm9vbCYgc3VjY2VzcykKK0RhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFzZU9w
ZW5UYXNrKERhdGFiYXNlKiBkYXRhYmFzZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwg
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNv
ZGUsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBib29sJiBzdWNjZXNzKQogICAgIDogRGF0YWJhc2VU
YXNrKGRhdGFiYXNlLCBzeW5jaHJvbml6ZXIpCiAgICAgLCBtX3NldFZlcnNpb25Jbk5ld0RhdGFi
YXNlKHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlKQogICAgICwgbV9jb2RlKGNvZGUpCisgICAgLCBt
X2Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpCiAgICAgLCBtX3N1Y2Nlc3Moc3VjY2VzcykKIHsK
ICAgICBBU1NFUlQoc3luY2hyb25pemVyKTsgLy8gQSB0YXNrIHdpdGggb3V0cHV0IHBhcmFtZXRl
cnMgaXMgc3VwcG9zZWQgdG8gYmUgc3luY2hyb25vdXMuCkBAIC0xMDksNyArMTEwLDEwIEBAIERh
dGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW4KIAogdm9pZCBEYXRhYmFzZTo6
RGF0YWJhc2VPcGVuVGFzazo6ZG9QZXJmb3JtVGFzaygpCiB7Ci0gICAgbV9zdWNjZXNzID0gZGF0
YWJhc2UoKS0+cGVyZm9ybU9wZW5BbmRWZXJpZnkobV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwg
bV9jb2RlKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIG1fc3VjY2VzcyA9IGRhdGFi
YXNlKCktPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KG1fc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIG1f
Y29kZSwgZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAoIW1fc3VjY2VzcykKKyAgICAgICAgbV9lcnJv
ck1lc3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCk7CiB9CiAKICNpZiAhTE9HX0RJ
U0FCTEVECkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmgJKHJldmlzaW9u
IDk5ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAwLDEzICsxMDAsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGF0YWJhc2U6
OkRhdGFiYXNlT3BlblRhc2sgOiBwdWJsaWMgRGF0YWJhc2VUYXNrIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxEYXRhYmFzZU9wZW5UYXNrPiBjcmVhdGUoRGF0YWJhc2UqIGRiLCBi
b29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5
bmNocm9uaXplciwgRXhjZXB0aW9uQ29kZSYgY29kZSwgYm9vbCYgc3VjY2VzcykKKyAgICBzdGF0
aWMgUGFzc093blB0cjxEYXRhYmFzZU9wZW5UYXNrPiBjcmVhdGUoRGF0YWJhc2UqIGRiLCBib29s
IHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNo
cm9uaXplciwgRXhjZXB0aW9uQ29kZSYgY29kZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wm
IHN1Y2Nlc3MpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGFiYXNlT3Bl
blRhc2soZGIsIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBzeW5jaHJvbml6ZXIsIGNvZGUsIHN1
Y2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRhYmFzZU9wZW5UYXNrKGRi
LCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgc3luY2hyb25pemVyLCBjb2RlLCBlcnJvck1lc3Nh
Z2UsIHN1Y2Nlc3MpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgRGF0YWJhc2VPcGVuVGFzayhE
YXRhYmFzZSosIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5bmNo
cm9uaXplciosIEV4Y2VwdGlvbkNvZGUmLCBib29sJiBzdWNjZXNzKTsKKyAgICBEYXRhYmFzZU9w
ZW5UYXNrKERhdGFiYXNlKiwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VU
YXNrU3luY2hyb25pemVyKiwgRXhjZXB0aW9uQ29kZSYsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBi
b29sJiBzdWNjZXNzKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb1BlcmZvcm1UYXNrKCk7CiAjaWYg
IUxPR19ESVNBQkxFRApAQCAtMTE1LDYgKzExNSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
c2V0VmVyc2lvbkluTmV3RGF0YWJhc2U7CiAgICAgRXhjZXB0aW9uQ29kZSYgbV9jb2RlOworICAg
IFN0cmluZyYgbV9lcnJvck1lc3NhZ2U7CiAgICAgYm9vbCYgbV9zdWNjZXNzOwogfTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAkocmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNRTEVycm9yIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFNRTEVycm9yPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTUUxFcnJvcihjb2RlLCBtZXNzYWdlKSk7IH0KKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNvbnN0IGNoYXIq
IG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShj
b2RlLCBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkKSIsIG1lc3NhZ2UsIHNxbGl0ZUNvZGUpKTsKKyAg
ICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2Rl
LCBjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSwgY29uc3QgY2hhciogc3FsaXRl
TWVzc2FnZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3RyaW5nOjpmb3Jt
YXQoIiVzICglZCAlcykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7Cisg
ICAgfQogCiAgICAgdW5zaWduZWQgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQogICAg
IFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlLmlzb2xhdGVkQ29weSgp
OyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCShyZXZpc2lv
biA5OTg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzgsNyArNzgsMTAgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUo
RGF0YWJhc2UqIGRiKQogCiAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAg
ICBMT0coU3RvcmFnZUFQSSwgIlVuYWJsZSB0byB2ZXJpZnkgY29ycmVjdG5lc3Mgb2Ygc3RhdGVt
ZW50ICVzIC0gZXJyb3IgJWkgKCVzKSIsIG1fc3RhdGVtZW50LmFzY2lpKCkuZGF0YSgpLCByZXN1
bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIG1fZXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKHJlc3VsdCA9PSBTUUxSZXN1bHRJbnRlcnJ1cHQgPyBTUUxFcnJvcjo6REFUQUJB
U0VfRVJSIDogU1FMRXJyb3I6OlNZTlRBWF9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0KQorICAgICAgICAgICAg
bV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgImludGVycnVwdGVkIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpT
WU5UQVhfRVJSLCAiY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFz
ZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC05
OSw3ICsxMDIsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAK
ICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICAgICAgTE9HKFN0
b3JhZ2VBUEksICJGYWlsZWQgdG8gYmluZCB2YWx1ZSBpbmRleCAlaSB0byBzdGF0ZW1lbnQgZm9y
IHF1ZXJ5ICclcyciLCBpICsgMSwgbV9zdGF0ZW1lbnQuYXNjaWkoKS5kYXRhKCkpOwotICAgICAg
ICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwg
ZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgYmluZCB2YWx1ZSIs
IHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMyw3ICsxMjYsNyBAQCBib29sIFNRTFN0YXRl
bWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAgICAgICAgIH0gd2hpbGUgKHJlc3VsdCA9PSBT
UUxSZXN1bHRSb3cpOwogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0RG9uZSkgewot
ICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNF
X0VSUiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIG1fZXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgaXRlcmF0
ZSByZXN1bHRzIiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gU1FM
UmVzdWx0RG9uZSkgewpAQCAtMTM1LDcgKzEzOCw3IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVj
dXRlKERhdGFiYXNlKiBkYikKICAgICAgICAgc2V0RmFpbHVyZUR1ZVRvUXVvdGEoKTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fZXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2co
KSk7CisgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFT
RV9FUlIsICJjb3VsZCBub3QgZXhlY3V0ZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcAkocmV2aXNpb24gOTk4
ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MSwxMSArNjEsMTMgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNR
TFN0YXRlbWVudFN5bgogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQucHJlcGFyZSgpOwogICAg
IGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgZWMgPSAocmVzdWx0ID09IFNR
TFJlc3VsdEludGVycnVwdCA/IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSIDogU1FMRXhjZXB0
aW9uOjpTWU5UQVhfRVJSKTsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgaWYgKHN0YXRlbWVudC5iaW5kUGFy
YW1ldGVyQ291bnQoKSAhPSBtX2FyZ3VtZW50cy5zaXplKCkpIHsKICAgICAgICAgZWMgPSAoZGIt
PmlzSW50ZXJydXB0ZWQoKT8gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlIgOiBTUUxFeGNlcHRp
b246OlNZTlRBWF9FUlIpOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgibnVtYmVy
IG9mICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBhcmd1bWVudCBjb3Vu
dCIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTczLDExICs3NSwxMyBAQCBQYXNz
UmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgICAgIHJlc3VsdCA9IHN0
YXRlbWVudC5iaW5kVmFsdWUoaSArIDEsIG1fYXJndW1lbnRzW2ldKTsKICAgICAgICAgaWYgKHJl
c3VsdCA9PSBTUUxSZXN1bHRGdWxsKSB7CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6
UVVPVEFfRVJSOworICAgICAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdh
cyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgICAgICByZXR1
cm4gMDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsK
ICAgICAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgICAg
ICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IGJpbmQgdmFsdWUiLCByZXN1bHQs
IGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQogICAgIH0KQEAgLTEwMiw2ICsxMDYsNyBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4g
U1FMU3RhdGVtZW50U3luCiAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHREb25lKSB7
CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAgICAg
ICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBpdGVyYXRlIHJlc3VsdHMiLCBy
ZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdERvbmUpIHsKQEAg
LTExMSw5ICsxMTYsMTEgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5
bgogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEZ1bGwpIHsKICAgICAgICAgLy8g
UXVvdGEgZXJyb3IsIHRoZSBkZWxlZ2F0ZSB3aWxsIGJlIGFza2VkIGZvciBtb3JlIHNwYWNlIGFu
ZCB0aGlzIHN0YXRlbWVudCBtaWdodCBiZSByZS1ydW4uCiAgICAgICAgIGVjID0gU1FMRXhjZXB0
aW9uOjpRVU9UQV9FUlI7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVyZSB3
YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9IGVsc2UgewogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJS
OworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IGV4ZWN1dGUgc3Rh
dGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rp
b24uY3BwCShyZXZpc2lvbiA5OTg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJh
bnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjUsOCArMjY1LDkgQEAgdm9pZCBTUUxU
cmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIFRyYW5zYWN0aW9uIFN0ZXBz
IDErMiAtIE9wZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUgZGF0YWJhc2UsIGp1bXBpbmcgdG8gdGhl
IGVycm9yIGNhbGxiYWNrIGlmIHRoYXQgZmFpbHMKICAgICBpZiAoIW1fc3FsaXRlVHJhbnNhY3Rp
b24tPmluUHJvZ3Jlc3MoKSkgewogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOworICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUg
dG8gYmVnaW4gdHJhbnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1f
ZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBtX3Nx
bGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBvcGVuIGEg
dHJhbnNhY3Rpb24gdG8gdGhlIGRhdGFiYXNlIik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9u
RXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjc2LDEwICsyNzcsMTEg
QEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIHRoZSBh
Y3R1YWwgdmVyc2lvbi4gSW4gc2luZ2xlLXByb2Nlc3MgYnJvd3NlcnMsIHRoaXMgaXMganVzdCBh
IG1hcCBsb29rdXAuCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFtX2RhdGFi
YXNlLT5nZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oYWN0dWFsVmVyc2lvbikpIHsKKyAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFU
QUJBU0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgIG1fZGF0YWJhc2UtPmRpc2FibGVBdXRob3JpemVyKCk7CiAgICAgICAgIG1fc3Fs
aXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9y
aXplcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIik7CiAgICAgICAg
IGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjkzLDggKzI5NSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFu
ZFAKICAgICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3Ry
YW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90
cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQg
c2V0dGluZyB1cCB0cmFuc2FjdGlvbiIpOwotCisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJy
b3Igb2NjdXJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0Iik7CiAgICAgICAgIGhhbmRs
ZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDcw
LDcgKzQ3MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQKICAg
ICBpZiAobV93cmFwcGVyICYmICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KHRoaXMpKSB7
CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsKICAg
ICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24g
ZXJyb3Igb2NjdXJlZCBzZXR0aW5nIHVwIHRyYW5zYWN0aW9uIik7CisgICAgICAgICAgICBtX3Ry
YW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwg
InVua25vd24gZXJyb3Igb2NjdXJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCIpOwog
ICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTQ4Nyw3ICs0ODgsOCBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0
QW5kQ29tbWl0CiAgICAgICAgIGlmIChtX3dyYXBwZXIpCiAgICAgICAgICAgICBtX3dyYXBwZXIt
PmhhbmRsZUNvbW1pdEZhaWxlZEFmdGVyUG9zdGZsaWdodCh0aGlzKTsKICAgICAgICAgbV9zdWNj
ZXNzQ2FsbGJhY2tXcmFwcGVyLmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9
IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImZhaWxlZCB0byBjb21t
aXQgdGhlIHRyYW5zYWN0aW9uIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVy
cm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBjb21taXQgdHJh
bnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNx
bGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBoYW5kbGVUcmFuc2FjdGlv
bkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAJKHJldmlzaW9uIDk5ODg5KQor
KysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03NSwxMiArNzUsMTcgQEAgU1FMVHJhbnNhY3Rpb25TeW5jOjp+U1FMVHJhbnNh
Y3Rpb25TeW5jKAogUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9uU3luYzo6
ZXhlY3V0ZVNRTChjb25zdCBTdHJpbmcmIHNxbFN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZh
bHVlPiYgYXJndW1lbnRzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQobV9kYXRh
YmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CisKKyAg
ICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCIiKTsKKwogICAgIGlmICghbV9kYXRh
YmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2Fn
ZSgiY2Fubm90IGV4ZWN1dGVTUUwgYmVjYXVzZSB0aGUgZGF0YWJhc2UgaXMgbm90IG9wZW4iKTsK
ICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKICAgICBpZiAobV9oYXNWZXJzaW9uTWlzbWF0Y2gpIHsKKyAgICAgICAgbV9k
YXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY2Fubm90IGV4ZWN1dGVTUUwgYmVjYXVzZSB0
aGVyZSBpcyBhIHZlcnNpb24gbWlzbWF0Y2giKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246
OlZFUlNJT05fRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xMTAsOCArMTE1LDEw
IEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblMKICAgICAgICAgICAg
ICAgICBpZiAobV90cmFuc2FjdGlvbkNsaWVudC0+ZGlkRXhjZWVkUXVvdGEoZGF0YWJhc2UoKSkp
IHsKICAgICAgICAgICAgICAgICAgICAgZWMgPSAwOwogICAgICAgICAgICAgICAgICAgICByZXRy
eVN0YXRlbWVudCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UiKTsK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTI3LDggKzEzNCwxMCBAQCBQYXNzUmVmUHRy
PFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0
aW9uU3luYzo6YmVnaW4oKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJhc2UtPm9w
ZW5lZCgpKQorICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRh
YmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY2Fubm90IGJlZ2luIHRyYW5zYWN0aW9uIGJlY2F1
c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuIik7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRp
b246OlVOS05PV05fRVJSOworICAgIH0KIAogICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRl
RGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSk7CiAKQEAgLTE0Nyw2ICsxNTYsOCBA
QCBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gQ2hlY2sg
aWYgYmVnaW4oKSBzdWNjZWVkZWQuCiAgICAgaWYgKCFtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblBy
b2dyZXNzKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
LnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVy
cm9yTWVzc2FnZSgidW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxh
c3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwogICAgICAgICByZXR1cm4gU1FM
RXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQpAQCAtMTU2LDYgKzE2Nyw4IEBAIEV4Y2Vw
dGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbigKICAgICAvLyB0aGUgYWN0dWFsIHZl
cnNpb24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1c3QgYSBtYXAgbG9v
a3VwLgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9kYXRhYmFzZS0+Z2V0
QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7CisgICAgICAgIG1f
ZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byByZWFkIHZlcnNpb24iLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0
ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICByb2xsYmFjaygpOwogICAgICAgICByZXR1cm4gU1FMRXhj
ZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQpAQCAtMTY4LDYgKzE4MSw4IEBAIEV4Y2VwdGlv
bkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXQKIHsKICAgICBBU1NFUlQobV9kYXRhYmFz
ZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CiAgICAgaWYg
KCFtX2RhdGFiYXNlLT5vcGVuZWQoKSB8fCAobV9jYWxsYmFjayAmJiAhbV9jYWxsYmFjay0+aGFu
ZGxlRXZlbnQodGhpcykpKSB7CisgICAgICAgIGlmIChtX2RhdGFiYXNlLT5sYXN0RXJyb3JNZXNz
YWdlKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVz
c2FnZSgiZmFpbGVkIHRvIGV4ZWN1dGUgdHJhbnNhY3Rpb24gY2FsbGJhY2siKTsKICAgICAgICAg
bV9jYWxsYmFjayA9IDA7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OlVOS05PV05fRVJS
OwogICAgIH0KQEAgLTE3OSw4ICsxOTQsMTAgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlv
blN5bmM6OmV4ZWN1dAogRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmNvbW1pdCgp
CiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXND
b250ZXh0VGhyZWFkKCkpOwotICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpCisgICAgaWYg
KCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJy
b3JNZXNzYWdlKCJ1bmFibGUgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGJlY2F1c2UgdGhlIGRhdGFi
YXNlIGlzIG5vdCBvcGVuLiIpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dO
X0VSUjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9zcWxpdGVUcmFuc2FjdGlvbik7CiAKQEAgLTE4
OSw4ICsyMDYsMTEgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmNvbW1pdAog
ICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKIAogICAgIC8vIElmIHRoZSBjb21t
aXQgZmFpbGVkLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBzdGlsbCBiZSBtYXJrZWQgYXMgImluIHBy
b2dyZXNzIgotICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpCisgICAg
aWYgKG1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgeworICAgICAgICBtX2RhdGFi
YXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gY29tbWl0IHRyYW5zYWN0aW9uIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxp
dGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJS
OworICAgIH0KIAogICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114560</attachid>
            <date>2011-11-10 13:49:42 -0800</date>
            <delta_ts>2011-11-10 14:54:42 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberrors2.txt</filename>
            <type>text/plain</type>
            <size>40400</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5ODk0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIFByb2R1Y2UgY29uc29sZSBsb2dnaW5nCisgICAgICAg
IGZvciBvcGVuRGF0YWJhc2UoKSBlcnJvcnMuIEFkZCBhIGxhc3RFcnJvck1lc3NhZ2UgYWNjZXNz
b3IKKyAgICAgICAgdG8gdGhlIERhdGFiYXNlU3luYyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBpbiB0aGUgd29ya3Ms
IGp1c3Qgbm90IGluIHRoaXMgc25hcHNob3QgeWV0LgorCisgICAgICAgICogcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpT
UUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6b3Blbik6
CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9ybWF0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFi
c3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yTWVzc2FnZSk6CisgICAgICAgICogc3RvcmFnZS9B
YnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBy
ZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVBvc3RmbGlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmg6Cisg
ICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VTeW5jOjpvcGVuRGF0YWJhc2VTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
U3luYzo6Y2hhbmdlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6OnJ1
blRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpsYXN0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlU3luYzo6c2V0TGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgICogc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VUYXNrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFz
ZU9wZW5UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNr
Ojpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGFzay5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OmNyZWF0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMU3RhdGVtZW50OjpleGVjdXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRl
bWVudFN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0
ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAg
ICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
UUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJh
bnNhY3Rpb25TeW5jOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5
bmM6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQpOgorCiAyMDExLTExLTEwICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb3ZlL2NvcHkvbWVyZ2UgU1ZHIGZpbHRlciByZW5kZXJpbmcgY29kZSB0byBnZW5lcmlj
IHJlbmRlcmluZwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCShyZXZpc2lvbiA5OTg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDggQEAg
Y29uc3QgaW50IFNRTFJlc3VsdFNjaGVtYSA9IFNRTElURV9TQ0hFTQogY29uc3QgaW50IFNRTFJl
c3VsdEZ1bGwgPSBTUUxJVEVfRlVMTDsKIGNvbnN0IGludCBTUUxSZXN1bHRJbnRlcnJ1cHQgPSBT
UUxJVEVfSU5URVJSVVBUOwogCitzdGF0aWMgY29uc3QgY2hhciBub3RPcGVuRXJyb3JNZXNzYWdl
W10gPSAiZGF0YWJhc2UgaXMgbm90IG9wZW4iOworCiBTUUxpdGVEYXRhYmFzZTo6U1FMaXRlRGF0
YWJhc2UoKQogICAgIDogbV9kYigwKQogICAgICwgbV9wYWdlU2l6ZSgtMSkKQEAgLTUzLDYgKzU1
LDggQEAgU1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAgICAsIG1fc2hhcmFibGUo
ZmFsc2UpCiAgICAgLCBtX29wZW5pbmdUaHJlYWQoMCkKICAgICAsIG1faW50ZXJydXB0ZWQoZmFs
c2UpCisgICAgLCBtX29wZW5FcnJvcihTUUxJVEVfRVJST1IpCisgICAgLCBtX29wZW5FcnJvck1l
c3NhZ2Uobm90T3BlbkVycm9yTWVzc2FnZSkKIHsKIH0KIApAQCAtNjUsMTUgKzY5LDIwIEBAIGJv
b2wgU1FMaXRlRGF0YWJhc2U6Om9wZW4oY29uc3QgU3RyaW5nJgogewogICAgIGNsb3NlKCk7CiAK
LSAgICBpZiAoU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAmbV9kYiwg
Zm9yV2ViU1FMRGF0YWJhc2UpICE9IFNRTElURV9PSykgeworICAgIG1fb3BlbkVycm9yID0gU1FM
aXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAmbV9kYiwgZm9yV2ViU1FMRGF0
YWJhc2UpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9v
cGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CiAgICAgICAgIExPR19FUlJP
UigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBsb2FkIGZyb20gJXNcbkNhdXNlIC0gJXMiLCBm
aWxlbmFtZS5hc2NpaSgpLmRhdGEoKSwKLSAgICAgICAgICAgIHNxbGl0ZTNfZXJybXNnKG1fZGIp
KTsKKyAgICAgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCkpOwogICAgICAgICBzcWxp
dGUzX2Nsb3NlKG1fZGIpOwogICAgICAgICBtX2RiID0gMDsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkg
IT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9y
IHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBzcWxpdGUzX2Vycm1zZyhtX2Ri
KSk7CisKKyAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1f
ZGIsIDEpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9v
cGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIExPR19FUlJP
UigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0g
JXMiLCBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19jbG9zZSht
X2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYg
KzkwLDggQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmCiAKICAgICBp
ZiAoaXNPcGVuKCkpCiAgICAgICAgIG1fb3BlbmluZ1RocmVhZCA9IGN1cnJlbnRUaHJlYWQoKTsK
KyAgICBlbHNlCisgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZSA9ICJzcWxpdGUzKiBpcyBudWxs
IjsKIAogICAgIGlmICghU1FMaXRlU3RhdGVtZW50KCp0aGlzLCAiUFJBR01BIHRlbXBfc3RvcmUg
PSBNRU1PUlk7IikuZXhlY3V0ZUNvbW1hbmQoKSkKICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUg
ZGF0YWJhc2UgY291bGQgbm90IHNldCB0ZW1wX3N0b3JlIHRvIG1lbW9yeSIpOwpAQCAtMTAyLDYg
KzExMyw4IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OmNsb3NlKCkKICAgICB9CiAKICAgICBtX29w
ZW5pbmdUaHJlYWQgPSAwOworICAgIG1fb3BlbkVycm9yID0gU1FMSVRFX0VSUk9SOworICAgIG1f
b3BlbkVycm9yTWVzc2FnZSA9IG5vdE9wZW5FcnJvck1lc3NhZ2U7CiB9CiAKIHZvaWQgU1FMaXRl
RGF0YWJhc2U6OmludGVycnVwdCgpCkBAIC0zMTQsMTIgKzMyNywxMiBAQCBpbnQgU1FMaXRlRGF0
YWJhc2U6Omxhc3RDaGFuZ2VzKCkKIAogaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IoKQog
ewotICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogU1FMSVRFX0VSUk9S
OworICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogbV9vcGVuRXJyb3I7
CiB9CiAKIGNvbnN0IGNoYXIqIFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3JNc2coKQogeyAKLSAg
ICByZXR1cm4gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgcmV0dXJuIG1fZGIgPyBzcWxpdGUz
X2Vycm1zZyhtX2RiKSA6IG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCk7CiB9CiAKICNpZm5kZWYg
TkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuaAkocmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBT
UUxpdGVEYXRhYmFzZV9oCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBD
T01QSUxFUihNU1ZDKQpAQCAtMTUzLDcgKzE1NCwxMCBAQCBwcml2YXRlOgogCiAgICAgTXV0ZXgg
bV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKICAgICBib29sIG1faW50ZXJydXB0ZWQ7Ci19OyAvLyBj
bGFzcyBTUUxpdGVEYXRhYmFzZQorCisgICAgaW50IG1fb3BlbkVycm9yOworICAgIENTdHJpbmcg
bV9vcGVuRXJyb3JNZXNzYWdlOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5jcHAJKHJldmlzaW9u
IDk5ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIKICNpbmNsdWRlICJTUUxpdGVUcmFuc2FjdGlvbi5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC01Miw2ICs1MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMg
Y29uc3QgY2hhciB2ZXJzaW9uS2V5W10gPSAiV2ViS2l0RGF0YWJhc2VWZXJzaW9uS2V5IjsKIHN0
YXRpYyBjb25zdCBjaGFyIGluZm9UYWJsZU5hbWVbXSA9ICJfX1dlYktpdERhdGFiYXNlSW5mb1Rh
YmxlX18iOwogCitzdGF0aWMgU3RyaW5nIGZvcm1hdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBt
ZXNzYWdlLCBpbnQgc3FsaXRlRXJyb3JDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVFcnJvck1lc3Nh
Z2UpCit7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwg
c3FsaXRlRXJyb3JDb2RlLCBzcWxpdGVFcnJvck1lc3NhZ2UpOworfQorCiBzdGF0aWMgYm9vbCBy
ZXRyaWV2ZVRleHRSZXN1bHRGcm9tRGF0YWJhc2UoU1FMaXRlRGF0YWJhc2UmIGRiLCBjb25zdCBT
dHJpbmcmIHF1ZXJ5LCBTdHJpbmcmIHJlc3VsdFN0cmluZykKIHsKICAgICBTUUxpdGVTdGF0ZW1l
bnQgc3RhdGVtZW50KGRiLCBxdWVyeSk7CkBAIC0yNDQsMTcgKzI1MCwxOSBAQCBTdHJpbmcgQWJz
dHJhY3REYXRhYmFzZTo6dmVyc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIGdldENhY2hlZFZlcnNp
b24oKTsKIH0KIAotYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShi
b29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlYykKK2Jv
b2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzaG91bGRTZXRW
ZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYgZWMsIFN0cmluZyYgZXJyb3JNZXNz
YWdlKQogeworICAgIEFTU0VSVChlcnJvck1lc3NhZ2UuaXNFbXB0eSgpKTsKKwogICAgIGNvbnN0
IGludCBtYXhTcWxpdGVCdXN5V2FpdFRpbWUgPSAzMDAwMDsKIAogICAgIGlmICghbV9zcWxpdGVE
YXRhYmFzZS5vcGVuKG1fZmlsZW5hbWUsIHRydWUpKSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5h
YmxlIHRvIG9wZW4gZGF0YWJhc2UgYXQgcGF0aCAlcyIsIG1fZmlsZW5hbWUuYXNjaWkoKS5kYXRh
KCkpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVE
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNl
LnR1cm5PbkluY3JlbWVudGFsQXV0b1ZhY3V1bSgpKQotICAgICAgICBMT0dfRVJST1IoIlVuYWJs
ZSB0byB0dXJuIG9uIGluY3JlbWVudGFsIGF1dG8tdmFjdXVtIGZvciBkYXRhYmFzZSAlcyIsIG1f
ZmlsZW5hbWUuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byB0
dXJuIG9uIGluY3JlbWVudGFsIGF1dG8tdmFjdXVtICglZCAlcykiLCBtX3NxbGl0ZURhdGFiYXNl
Lmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKIAogICAgIG1f
c3FsaXRlRGF0YWJhc2Uuc2V0QnVzeVRpbWVvdXQobWF4U3FsaXRlQnVzeVdhaXRUaW1lKTsKIApA
QCAtMjkwLDcgKzI5OCw3IEBAIGJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRW
ZXIKICAgICAgICAgICAgIFNRTGl0ZVRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uKG1fc3FsaXRlRGF0
YWJhc2UpOwogICAgICAgICAgICAgdHJhbnNhY3Rpb24uYmVnaW4oKTsKICAgICAgICAgICAgIGlm
ICghdHJhbnNhY3Rpb24uaW5Qcm9ncmVzcygpKSB7Ci0gICAgICAgICAgICAgICAgTE9HX0VSUk9S
KCJVbmFibGUgdG8gYmVnaW4gdHJhbnNhY3Rpb24gd2hpbGUgb3BlbmluZyAlcyIsIGRhdGFiYXNl
RGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0
byBzdGFydCB0cmFuc2FjdGlvbiIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3Fs
aXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CiAgICAgICAgICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTMwMSwxNCArMzA5LDE0IEBAIGJvb2wg
QWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAgICAgICAgICAgICBtX25l
dyA9IHRydWU7CiAKICAgICAgICAgICAgICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSAiICsgdGFibGVOYW1lICsgIiAoa2V5IFRFWFQgTk9UIE5V
TEwgT04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSx2YWx1ZSBURVhU
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpOyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSB0YWJsZSAlcyBpbiBkYXRhYmFzZSAlcyIsIGluZm9U
YWJsZU5hbWUsIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAg
ICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBv
cGVuIGRhdGFiYXNlLCBmYWlsZWQgdG8gY3JlYXRlICdpbmZvJyB0YWJsZSIsIG1fc3FsaXRlRGF0
YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICBtX3NxbGl0
ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFnZXRWZXJzaW9uRnJvbURh
dGFiYXNlKGN1cnJlbnRWZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICBMT0dfRVJS
T1IoIkZhaWxlZCB0byBnZXQgY3VycmVudCB2ZXJzaW9uIGZyb20gZGF0YWJhc2UgJXMiLCBkYXRh
YmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBlcnJvck1l
c3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCBmYWls
ZWQgdG8gcmVhZCBjdXJyZW50IHZlcnNpb24iLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigp
LCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJvbGxiYWNr
KCk7CiAgICAgICAgICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzIwLDcg
KzMyOCw3IEBAIGJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoIW1fbmV3IHx8IHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNl
KSB7CiAgICAgICAgICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJTZXR0aW5nIHZlcnNpb24gJXMg
aW4gZGF0YWJhc2UgJXMgdGhhdCB3YXMganVzdCBjcmVhdGVkIiwgbV9leHBlY3RlZFZlcnNpb24u
YXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOwogICAg
ICAgICAgICAgICAgIGlmICghc2V0VmVyc2lvbkluRGF0YWJhc2UobV9leHBlY3RlZFZlcnNpb24s
IGZhbHNlKSkgewotICAgICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZXQg
dmVyc2lvbiAlcyBpbiBkYXRhYmFzZSAlcyIsIG1fZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0
YSgpLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSwgZmFpbGVkIHRvIHdyaXRlIGN1cnJlbnQgdmVyc2lvbiIsIG1fc3FsaXRlRGF0YWJh
c2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICAgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgICAg
ICB0cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgICAgICBtX3NxbGl0ZURh
dGFiYXNlLmNsb3NlKCk7CkBAIC0zNDEsOCArMzQ5LDcgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNl
OjpwZXJmb3JtT3BlbkFuZFZlcgogICAgIC8vIElmIHRoZSBleHBlY3RlZCB2ZXJzaW9uIGlzbid0
IHRoZSBlbXB0eSBzdHJpbmcsIGVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IGRhdGFiYXNlIHZlcnNp
b24gd2UgaGF2ZSBtYXRjaGVzIHRoYXQgdmVyc2lvbi4gT3RoZXJ3aXNlLCBzZXQgYW4gZXhjZXB0
aW9uLgogICAgIC8vIElmIHRoZSBleHBlY3RlZCB2ZXJzaW9uIGlzIHRoZSBlbXB0eSBzdHJpbmcs
IHRoZW4gd2UgYWx3YXlzIHJldHVybiB3aXRoIHdoYXRldmVyIHZlcnNpb24gb2YgdGhlIGRhdGFi
YXNlIHdlIGhhdmUuCiAgICAgaWYgKCghbV9uZXcgfHwgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0
YWJhc2UpICYmIG1fZXhwZWN0ZWRWZXJzaW9uLmxlbmd0aCgpICYmIG1fZXhwZWN0ZWRWZXJzaW9u
ICE9IGN1cnJlbnRWZXJzaW9uKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAicGFnZSBleHBl
Y3RzIHZlcnNpb24gJXMgZnJvbSBkYXRhYmFzZSAlcywgd2hpY2ggYWN0dWFsbHkgaGFzIHZlcnNp
b24gbmFtZSAlcyAtIG9wZW5EYXRhYmFzZSgpIGNhbGwgd2lsbCBmYWlsIiwgbV9leHBlY3RlZFZl
cnNpb24uYXNjaWkoKS5kYXRhKCksCi0gICAgICAgICAgICBkYXRhYmFzZURlYnVnTmFtZSgpLmFz
Y2lpKCkuZGF0YSgpLCBjdXJyZW50VmVyc2lvbi5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGVy
cm9yTWVzc2FnZSA9ICJ1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwg
JyIgKyBtX2V4cGVjdGVkVmVyc2lvbiArICInIGRvZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50VmVy
c2lvbiBvZiAnIiArIGN1cnJlbnRWZXJzaW9uICsgIiciOwogICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwogICAgICAgICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTUzOSw2ICs1NDYsMTEgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpp
c0ludGVycnVwdGVkKCkKICAgICByZXR1cm4gbV9zcWxpdGVEYXRhYmFzZS5pc0ludGVycnVwdGVk
KCk7CiB9CiAKK3ZvaWQgQWJzdHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3Nh
Z2UoT3RoZXJNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIDAsIFN0cmluZygpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCShyZXZpc2lvbiA5OTg4OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5
NSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgY2xvc2VEYXRhYmFzZSgpOwogCi0gICAgdmly
dHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3
RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKTsKKyAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybU9w
ZW5BbmRWZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9u
Q29kZSYsIFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgIGJvb2wgZ2V0VmVyc2lvbkZyb21E
YXRhYmFzZShTdHJpbmcmIHZlcnNpb24sIGJvb2wgc2hvdWxkQ2FjaGVWZXJzaW9uID0gdHJ1ZSk7
CiAgICAgYm9vbCBzZXRWZXJzaW9uSW5EYXRhYmFzZShjb25zdCBTdHJpbmcmIHZlcnNpb24sIGJv
b2wgc2hvdWxkQ2FjaGVWZXJzaW9uID0gdHJ1ZSk7CkBAIC0xMDUsNiArMTA1LDggQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgc2V0Q2FjaGVkVmVyc2lvbihjb25zdCBTdHJpbmcmKTsKICAgICBib29s
IGdldEFjdHVhbFZlcnNpb25Gb3JUcmFuc2FjdGlvbihTdHJpbmcmIHZlcnNpb24pOwogCisgICAg
dm9pZCBsb2dFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKwogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBkYXRhYmFzZUluZm9UYWJsZU5hbWUoKTsKIAogICAgIFJlZlB0cjxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0PiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAkocmV2aXNp
b24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0NoYW5nZVZlcnNpb25XcmFwcGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsMTMgKzUwLDEzIEBAIGJvb2wgQ2hhbmdlVmVyc2lv
bldyYXBwZXI6OnBlcmZvcm1QcmVmbGkKICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKIAogICAg
IGlmICghdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPmdldFZlcnNpb25Gcm9tRGF0YWJhc2UoYWN0
dWFsVmVyc2lvbikpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gcmV0cmlldmUgYWN0
dWFsIGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byB2ZXJp
ZnkgY3VycmVudCB2ZXJzaW9uIG9mIGRhdGFiYXNlIik7CisgICAgICAgIG1fc3FsRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byByZWFkIHRo
ZSBjdXJyZW50IHZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24tPmRhdGFi
YXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCiAgICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gbV9vbGRWZXJzaW9uKSB7
Ci0gICAgICAgIExPR19FUlJPUigiT2xkIHZlcnNpb24gZG9lc24ndCBtYXRjaCBhY3R1YWwgdmVy
c2lvbiIpOwogICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVy
c2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC02OSw4ICs2OSw5IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1Q
b3N0ZmwKICAgICBBU1NFUlQodHJhbnNhY3Rpb24gJiYgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCkp
OwogCiAgICAgaWYgKCF0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c2V0VmVyc2lvbkluRGF0YWJh
c2UobV9uZXdWZXJzaW9uKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzZXQgbmV3
IHZlcnNpb24gaW4gZGF0YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBp
biBkYXRhYmFzZSIpOworICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24tPmRh
dGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zcWxpdGVEYXRh
YmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDk5ODg5KQorKysg
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4
LDggKzk4LDkgQEAgUGFzc1JlZlB0cjxEYXRhYmFzZT4gRGF0YWJhc2U6Om9wZW5EYXRhYgogCiAg
ICAgUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZSA9IGFkb3B0UmVmKG5ldyBEYXRhYmFzZShjb250
ZXh0LCBuYW1lLCBleHBlY3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7
CiAKLSAgICBpZiAoIWRhdGFiYXNlLT5vcGVuQW5kVmVyaWZ5VmVyc2lvbighY3JlYXRpb25DYWxs
YmFjaywgZSkpIHsKLSAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJGYWlsZWQgdG8gb3BlbiBhbmQg
dmVyaWZ5IHZlcnNpb24gKGV4cGVjdGVkICVzKSBvZiBkYXRhYmFzZSAlcyIsIGV4cGVjdGVkVmVy
c2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2UtPmRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWko
KS5kYXRhKCkpOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFkYXRhYmFzZS0+
b3BlbkFuZFZlcmlmeVZlcnNpb24oIWNyZWF0aW9uQ2FsbGJhY2ssIGUsIGVycm9yTWVzc2FnZSkp
IHsKKyAgICAgICAgZGF0YWJhc2UtPmxvZ0Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwogICAg
ICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5yZW1vdmVPcGVuRGF0YWJhc2UoZGF0YWJh
c2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xNzMsMTQgKzE3NCwxNCBA
QCBTdHJpbmcgRGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBBYnN0cmFjdERh
dGFiYXNlOjp2ZXJzaW9uKCk7CiB9CiAKLWJvb2wgRGF0YWJhc2U6Om9wZW5BbmRWZXJpZnlWZXJz
aW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUpCitib29s
IERhdGFiYXNlOjpvcGVuQW5kVmVyaWZ5VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFi
YXNlLCBFeGNlcHRpb25Db2RlJiBlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBEYXRh
YmFzZVRhc2tTeW5jaHJvbml6ZXIgc3luY2hyb25pemVyOwogICAgIGlmICghbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpIHx8IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+ZGF0YWJhc2VUaHJlYWQoKS0+dGVybWluYXRpb25SZXF1ZXN0ZWQoJnN5bmNocm9uaXplcikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAg
IE93blB0cjxEYXRhYmFzZU9wZW5UYXNrPiB0YXNrID0gRGF0YWJhc2VPcGVuVGFzazo6Y3JlYXRl
KHRoaXMsIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCAmc3luY2hyb25pemVyLCBlLCBzdWNjZXNz
KTsKKyAgICBPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gdGFzayA9IERhdGFiYXNlT3BlblRhc2s6
OmNyZWF0ZSh0aGlzLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgJnN5bmNocm9uaXplciwgZSwg
ZXJyb3JNZXNzYWdlLCBzdWNjZXNzKTsKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRh
dGFiYXNlVGhyZWFkKCktPnNjaGVkdWxlSW1tZWRpYXRlVGFzayh0YXNrLnJlbGVhc2UoKSk7CiAg
ICAgc3luY2hyb25pemVyLndhaXRGb3JUYXNrQ29tcGxldGlvbigpOwogCkBAIC0yMzgsOSArMjM5
LDkgQEAgdW5zaWduZWQgbG9uZyBsb25nIERhdGFiYXNlOjptYXhpbXVtU2l6ZQogICAgIHJldHVy
biBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5nZXRNYXhTaXplRm9yRGF0YWJhc2UodGhpcyk7
CiB9CiAKLWJvb2wgRGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lv
bkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUpCitib29sIERhdGFiYXNlOjpwZXJmb3Jt
T3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2Rl
JiBlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKLSAgICBpZiAoQWJzdHJhY3REYXRhYmFzZTo6
cGVyZm9ybU9wZW5BbmRWZXJpZnkoc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIGUpKSB7CisgICAg
aWYgKEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KHNldFZlcnNpb25Jbk5l
d0RhdGFiYXNlLCBlLCBlcnJvck1lc3NhZ2UpKSB7CiAgICAgICAgIGlmIChtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPmRhdGFiYXNlVGhyZWFkKCkpCiAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQtPmRhdGFiYXNlVGhyZWFkKCktPnJlY29yZERhdGFiYXNlT3Blbih0aGlzKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaAkocmV2aXNpb24gOTk4ODkpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDgg
Kzk1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FM
VHJhbnNhY3Rpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrPiwKICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBz
dWNjZXNzQ2FsbGJhY2ssIGJvb2wgcmVhZE9ubHkpOwogCi0gICAgYm9vbCBvcGVuQW5kVmVyaWZ5
VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lvbkluTmV3
RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIG9wZW5BbmRWZXJpZnlWZXJzaW9u
KGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wg
c2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVz
c2FnZSk7CiAKICAgICB2b2lkIGluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZCgpOwogICAg
IHZvaWQgc2NoZWR1bGVUcmFuc2FjdGlvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9EYXRhYmFzZVN5bmMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
RGF0YWJhc2VTeW5jLmNwcAkocmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0RhdGFiYXNlU3luYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5LDggKzU5LDkgQEAgUGFz
c1JlZlB0cjxEYXRhYmFzZVN5bmM+IERhdGFiYXNlU3luYzo6bwogCiAgICAgUmVmUHRyPERhdGFi
YXNlU3luYz4gZGF0YWJhc2UgPSBhZG9wdFJlZihuZXcgRGF0YWJhc2VTeW5jKGNvbnRleHQsIG5h
bWUsIGV4cGVjdGVkVmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpKTsKIAotICAg
IGlmICghZGF0YWJhc2UtPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KCFjcmVhdGlvbkNhbGxiYWNrLCBl
YykpIHsKLSAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJGYWlsZWQgdG8gb3BlbiBhbmQgdmVyaWZ5
IHZlcnNpb24gKGV4cGVjdGVkICVzKSBvZiBkYXRhYmFzZSAlcyIsIGV4cGVjdGVkVmVyc2lvbi5h
c2NpaSgpLmRhdGEoKSwgZGF0YWJhc2UtPmRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRh
KCkpOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFkYXRhYmFzZS0+cGVyZm9y
bU9wZW5BbmRWZXJpZnkoIWNyZWF0aW9uQ2FsbGJhY2ssIGVjLCBlcnJvck1lc3NhZ2UpKSB7Cisg
ICAgICAgIGRhdGFiYXNlLT5sb2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAgICAgICAg
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkucmVtb3ZlT3BlbkRhdGFiYXNlKGRhdGFiYXNlLmdl
dCgpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtOTYsMzkgKzk3LDQ5IEBAIHZvaWQg
RGF0YWJhc2VTeW5jOjpjaGFuZ2VWZXJzaW9uKGNvbnN0IFMKICAgICBBU1NFUlQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRUaHJlYWQoKSk7CiAKICAgICBpZiAoc3FsaXRlRGF0
YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JN
ZXNzYWdlKCJ1bmFibGUgdG8gY2hhbmdlVmVyc2lvbiBmcm9tIHdpdGhpbiBhIHRyYW5zYWN0aW9u
Iik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBSZWZQdHI8U1FMVHJhbnNhY3Rpb25TeW5jPiB0cmFuc2FjdGlv
biA9IFNRTFRyYW5zYWN0aW9uU3luYzo6Y3JlYXRlKHRoaXMsIGNoYW5nZVZlcnNpb25DYWxsYmFj
aywgZmFsc2UpOwotICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkpCisgICAgaWYg
KChlYyA9IHRyYW5zYWN0aW9uLT5iZWdpbigpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJv
ck1lc3NhZ2UoKS5pc0VtcHR5KCkpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgU3Ry
aW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFnZXRWZXJzaW9uRnJvbURhdGFiYXNlKGFjdHVh
bFZlcnNpb24pKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byByZWFk
IHRoZSBjdXJyZW50IHZlcnNpb24iLCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBzcWxp
dGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246
OlVOS05PV05fRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGFjdHVhbFZl
cnNpb24gIT0gb2xkVmVyc2lvbikgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJjdXJy
ZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8g
bm90IG1hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpWRVJTSU9OX0VSUjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+ZXhlY3V0
ZSgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkpIHsKKyAgICAgICAg
QVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAogICAgIGlmICghc2V0VmVyc2lvbkluRGF0YWJhc2UobmV3VmVyc2lvbikpIHsKKyAg
ICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHNldCB0aGUgbmV3IHZlcnNpb24i
LCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBzcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5jb21taXQoKSkp
IHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAg
ICAgc2V0Q2FjaGVkVmVyc2lvbihvbGRWZXJzaW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIHNldEV4cGVjdGVkVmVyc2lvbihuZXdWZXJzaW9uKTsKKyAgICBzZXRMYXN0RXJyb3JN
ZXNzYWdlKCIiKTsKIH0KIAogdm9pZCBEYXRhYmFzZVN5bmM6OnRyYW5zYWN0aW9uKFBhc3NSZWZQ
dHI8U1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2s+IGNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJiBl
YykKQEAgLTE0NiwxMyArMTU3LDE4IEBAIHZvaWQgRGF0YWJhc2VTeW5jOjpydW5UcmFuc2FjdGlv
bihQYXNzUmUKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRleHRU
aHJlYWQoKSk7CiAKICAgICBpZiAoc3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jl
c3MoKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gc3RhcnQgYSB0
cmFuc2FjdGlvbiBmcm9tIHdpdGhpbiBhIHRyYW5zYWN0aW9uIik7CiAgICAgICAgIGVjID0gU1FM
RXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBS
ZWZQdHI8U1FMVHJhbnNhY3Rpb25TeW5jPiB0cmFuc2FjdGlvbiA9IFNRTFRyYW5zYWN0aW9uU3lu
Yzo6Y3JlYXRlKHRoaXMsIGNhbGxiYWNrLCByZWFkT25seSk7Ci0gICAgaWYgKChlYyA9IHRyYW5z
YWN0aW9uLT5iZWdpbigpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+ZXhlY3V0ZSgpKSB8fCAoZWMg
PSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVn
aW4oKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkgfHwgKGVjID0gdHJhbnNhY3Rp
b24tPmNvbW1pdCgpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJvck1lc3NhZ2UoKS5pc0Vt
cHR5KCkpOwogICAgICAgICB0cmFuc2FjdGlvbi0+cm9sbGJhY2soKTsKKyAgICB9CisKKyAgICBz
ZXRMYXN0RXJyb3JNZXNzYWdlKCIiKTsKIH0KIAogdm9pZCBEYXRhYmFzZVN5bmM6Om1hcmtBc0Rl
bGV0ZWRBbmRDbG9zZSgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3lu
Yy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmgJ
KHJldmlzaW9uIDk5ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMu
aAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTAgKzY0LDIzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgbWFya0FzRGVsZXRlZEFuZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlSW1t
ZWRpYXRlbHkoKTsKIAorICAgIGNvbnN0IFN0cmluZyYgbGFzdEVycm9yTWVzc2FnZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdEVycm9yTWVzc2FnZTsgfQorICAgIHZvaWQgc2V0TGFzdEVycm9yTWVz
c2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9sYXN0RXJyb3JNZXNzYWdlID0gbWVzc2Fn
ZTsgfQorICAgIHZvaWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlLCBp
bnQgc3FsaXRlQ29kZSkKKyAgICB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoU3RyaW5n
Ojpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7CisgICAgfQorICAgIHZv
aWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29k
ZSwgY29uc3QgY2hhciogc3FsaXRlTWVzc2FnZSkKKyAgICB7CisgICAgICAgIHNldExhc3RFcnJv
ck1lc3NhZ2UoU3RyaW5nOjpmb3JtYXQoIiVzICglZCwgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29k
ZSwgc3FsaXRlTWVzc2FnZSkpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBEYXRhYmFzZVN5bmMo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBleHBlY3RlZFZlcnNpb24sCiAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZGlzcGxh
eU5hbWUsIHVuc2lnbmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSk7CiAgICAgdm9pZCBydW5UcmFuc2Fj
dGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiwgYm9vbCByZWFkT25s
eSwgRXhjZXB0aW9uQ29kZSYpOworCisgICAgU3RyaW5nIG1fbGFzdEVycm9yTWVzc2FnZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
RGF0YWJhc2VTeW5jLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Rh
dGFiYXNlU3luYy5pZGwJKHJldmlzaW9uIDk5ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9EYXRhYmFzZVN5bmMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVs
ZSBzdG9yYWdlIHsKICAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIERhdGFiYXNlU3luYyB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVyc2lvbjsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYXN0RXJyb3JNZXNzYWdlOwogICAgICAgICB2
b2lkIGNoYW5nZVZlcnNpb24oaW4gRE9NU3RyaW5nIG9sZFZlcnNpb24sIGluIERPTVN0cmluZyBu
ZXdWZXJzaW9uLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxs
YmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgdHJhbnNh
Y3Rpb24oaW4gW0NhbGxiYWNrXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxsYmFjaykg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKGluIFtD
YWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01F
eGNlcHRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNwcAko
cmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDEwICs5OCwxMSBAQCB2b2lkIERhdGFiYXNlVGFzazo6
cGVyZm9ybVRhc2soKQogLy8gKioqIERhdGFiYXNlT3BlblRhc2sgKioqCiAvLyBPcGVucyB0aGUg
ZGF0YWJhc2UgZmlsZSBhbmQgdmVyaWZpZXMgdGhlIHZlcnNpb24gbWF0Y2hlcyB0aGUgZXhwZWN0
ZWQgdmVyc2lvbi4KIAotRGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OkRhdGFiYXNlT3BlblRh
c2soRGF0YWJhc2UqIGRhdGFiYXNlLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRh
YmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNocm9uaXplciwgRXhjZXB0aW9uQ29kZSYgY29kZSwg
Ym9vbCYgc3VjY2VzcykKK0RhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW5U
YXNrKERhdGFiYXNlKiBkYXRhYmFzZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0
YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUs
IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBib29sJiBzdWNjZXNzKQogICAgIDogRGF0YWJhc2VUYXNr
KGRhdGFiYXNlLCBzeW5jaHJvbml6ZXIpCiAgICAgLCBtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNl
KHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlKQogICAgICwgbV9jb2RlKGNvZGUpCisgICAgLCBtX2Vy
cm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpCiAgICAgLCBtX3N1Y2Nlc3Moc3VjY2VzcykKIHsKICAg
ICBBU1NFUlQoc3luY2hyb25pemVyKTsgLy8gQSB0YXNrIHdpdGggb3V0cHV0IHBhcmFtZXRlcnMg
aXMgc3VwcG9zZWQgdG8gYmUgc3luY2hyb25vdXMuCkBAIC0xMDksNyArMTEwLDEwIEBAIERhdGFi
YXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW4KIAogdm9pZCBEYXRhYmFzZTo6RGF0
YWJhc2VPcGVuVGFzazo6ZG9QZXJmb3JtVGFzaygpCiB7Ci0gICAgbV9zdWNjZXNzID0gZGF0YWJh
c2UoKS0+cGVyZm9ybU9wZW5BbmRWZXJpZnkobV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgbV9j
b2RlKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIG1fc3VjY2VzcyA9IGRhdGFiYXNl
KCktPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KG1fc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIG1fY29k
ZSwgZXJyb3JNZXNzYWdlKTsKKyAgICBpZiAoIW1fc3VjY2VzcykKKyAgICAgICAgbV9lcnJvck1l
c3NhZ2UgPSBlcnJvck1lc3NhZ2UuaXNvbGF0ZWRDb3B5KCk7CiB9CiAKICNpZiAhTE9HX0RJU0FC
TEVECkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmgJKHJldmlzaW9uIDk5
ODg5KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAkod29ya2luZyBj
b3B5KQpAQCAtMTAwLDEzICsxMDAsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGF0YWJhc2U6OkRh
dGFiYXNlT3BlblRhc2sgOiBwdWJsaWMgRGF0YWJhc2VUYXNrIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc093blB0cjxEYXRhYmFzZU9wZW5UYXNrPiBjcmVhdGUoRGF0YWJhc2UqIGRiLCBib29s
IHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNo
cm9uaXplciwgRXhjZXB0aW9uQ29kZSYgY29kZSwgYm9vbCYgc3VjY2VzcykKKyAgICBzdGF0aWMg
UGFzc093blB0cjxEYXRhYmFzZU9wZW5UYXNrPiBjcmVhdGUoRGF0YWJhc2UqIGRiLCBib29sIHNl
dFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNocm9u
aXplciwgRXhjZXB0aW9uQ29kZSYgY29kZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wmIHN1
Y2Nlc3MpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGFiYXNlT3BlblRh
c2soZGIsIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBzeW5jaHJvbml6ZXIsIGNvZGUsIHN1Y2Nl
c3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRhYmFzZU9wZW5UYXNrKGRiLCBz
ZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgc3luY2hyb25pemVyLCBjb2RlLCBlcnJvck1lc3NhZ2Us
IHN1Y2Nlc3MpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgRGF0YWJhc2VPcGVuVGFzayhEYXRh
YmFzZSosIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5bmNocm9u
aXplciosIEV4Y2VwdGlvbkNvZGUmLCBib29sJiBzdWNjZXNzKTsKKyAgICBEYXRhYmFzZU9wZW5U
YXNrKERhdGFiYXNlKiwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNr
U3luY2hyb25pemVyKiwgRXhjZXB0aW9uQ29kZSYsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBib29s
JiBzdWNjZXNzKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb1BlcmZvcm1UYXNrKCk7CiAjaWYgIUxP
R19ESVNBQkxFRApAQCAtMTE1LDYgKzExNSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc2V0
VmVyc2lvbkluTmV3RGF0YWJhc2U7CiAgICAgRXhjZXB0aW9uQ29kZSYgbV9jb2RlOworICAgIFN0
cmluZyYgbV9lcnJvck1lc3NhZ2U7CiAgICAgYm9vbCYgbV9zdWNjZXNzOwogfTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAkocmV2aXNpb24gOTk4ODkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNRTEVycm9yIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFNRTEVycm9yPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FM
RXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTUUxFcnJvcihjb2RlLCBtZXNzYWdlKSk7IH0KKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNvbnN0IGNoYXIqIG1l
c3NhZ2UsIGludCBzcWxpdGVDb2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2Rl
LCBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkKSIsIG1lc3NhZ2UsIHNxbGl0ZUNvZGUpKTsKKyAgICB9
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBj
b25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSwgY29uc3QgY2hhciogc3FsaXRlTWVz
c2FnZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3RyaW5nOjpmb3JtYXQo
IiVzICglZCAlcykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7CisgICAg
fQogCiAgICAgdW5zaWduZWQgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQogICAgIFN0
cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlLmlzb2xhdGVkQ29weSgpOyB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiA5
OTg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNzgsNyArNzgsMTAgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0
YWJhc2UqIGRiKQogCiAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICBM
T0coU3RvcmFnZUFQSSwgIlVuYWJsZSB0byB2ZXJpZnkgY29ycmVjdG5lc3Mgb2Ygc3RhdGVtZW50
ICVzIC0gZXJyb3IgJWkgKCVzKSIsIG1fc3RhdGVtZW50LmFzY2lpKCkuZGF0YSgpLCByZXN1bHQs
IGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKHJlc3VsdCA9PSBTUUxSZXN1bHRJbnRlcnJ1cHQgPyBTUUxFcnJvcjo6REFUQUJBU0Vf
RVJSIDogU1FMRXJyb3I6OlNZTlRBWF9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0KQorICAgICAgICAgICAgbV9l
cnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgImludGVycnVwdGVkIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5U
QVhfRVJSLCAiY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+
bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC05OSw3
ICsxMDIsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAKICAg
ICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICAgICAgTE9HKFN0b3Jh
Z2VBUEksICJGYWlsZWQgdG8gYmluZCB2YWx1ZSBpbmRleCAlaSB0byBzdGF0ZW1lbnQgZm9yIHF1
ZXJ5ICclcyciLCBpICsgMSwgbV9zdGF0ZW1lbnQuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAg
ICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgZGF0
YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgYmluZCB2YWx1ZSIsIHJl
c3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMyw3ICsxMjYsNyBAQCBib29sIFNRTFN0YXRlbWVu
dDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAgICAgICAgIH0gd2hpbGUgKHJlc3VsdCA9PSBTUUxS
ZXN1bHRSb3cpOwogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0RG9uZSkgewotICAg
ICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VS
UiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgaXRlcmF0ZSBy
ZXN1bHRzIiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gU1FMUmVz
dWx0RG9uZSkgewpAQCAtMTM1LDcgKzEzOCw3IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRl
KERhdGFiYXNlKiBkYikKICAgICAgICAgc2V0RmFpbHVyZUR1ZVRvUXVvdGEoKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7
CisgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsICJjb3VsZCBub3QgZXhlY3V0ZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcAkocmV2aXNpb24gOTk4ODkp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02MSwxMSArNjEsMTMgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0
YXRlbWVudFN5bgogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQucHJlcGFyZSgpOwogICAgIGlm
IChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgZWMgPSAocmVzdWx0ID09IFNRTFJl
c3VsdEludGVycnVwdCA/IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSIDogU1FMRXhjZXB0aW9u
OjpTWU5UQVhfRVJSKTsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgaWYgKHN0YXRlbWVudC5iaW5kUGFyYW1l
dGVyQ291bnQoKSAhPSBtX2FyZ3VtZW50cy5zaXplKCkpIHsKICAgICAgICAgZWMgPSAoZGItPmlz
SW50ZXJydXB0ZWQoKT8gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlIgOiBTUUxFeGNlcHRpb246
OlNZTlRBWF9FUlIpOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgibnVtYmVyIG9m
ICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBhcmd1bWVudCBjb3VudCIp
OwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTczLDExICs3NSwxMyBAQCBQYXNzUmVm
UHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgICAgIHJlc3VsdCA9IHN0YXRl
bWVudC5iaW5kVmFsdWUoaSArIDEsIG1fYXJndW1lbnRzW2ldKTsKICAgICAgICAgaWYgKHJlc3Vs
dCA9PSBTUUxSZXN1bHRGdWxsKSB7CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6UVVP
VEFfRVJSOworICAgICAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdhcyBu
b3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAg
ICAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgICAgICBk
Yi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IGJpbmQgdmFsdWUiLCByZXN1bHQsIGRh
dGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQogICAgIH0KQEAgLTEwMiw2ICsxMDYsNyBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FM
U3RhdGVtZW50U3luCiAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHREb25lKSB7CiAg
ICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAgICAgICAg
ZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBpdGVyYXRlIHJlc3VsdHMiLCByZXN1
bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdERvbmUpIHsKQEAgLTEx
MSw5ICsxMTYsMTEgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgog
ICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEZ1bGwpIHsKICAgICAgICAgLy8gUXVv
dGEgZXJyb3IsIHRoZSBkZWxlZ2F0ZSB3aWxsIGJlIGFza2VkIGZvciBtb3JlIHNwYWNlIGFuZCB0
aGlzIHN0YXRlbWVudCBtaWdodCBiZSByZS1ydW4uCiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9u
OjpRVU9UQV9FUlI7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVyZSB3YXMg
bm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICByZXR1cm4gMDsK
ICAgICB9IGVsc2UgewogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwor
ICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IGV4ZWN1dGUgc3RhdGVt
ZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24u
Y3BwCShyZXZpc2lvbiA5OTg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNh
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjUsOCArMjY1LDkgQEAgdm9pZCBTUUxUcmFu
c2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIFRyYW5zYWN0aW9uIFN0ZXBzIDEr
MiAtIE9wZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUgZGF0YWJhc2UsIGp1bXBpbmcgdG8gdGhlIGVy
cm9yIGNhbGxiYWNrIGlmIHRoYXQgZmFpbHMKICAgICBpZiAoIW1fc3FsaXRlVHJhbnNhY3Rpb24t
PmluUHJvZ3Jlc3MoKSkgewogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFi
YXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8g
YmVnaW4gdHJhbnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBtX3NxbGl0
ZVRyYW5zYWN0aW9uLmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVy
cm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJh
bnNhY3Rpb24gdG8gdGhlIGRhdGFiYXNlIik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJy
b3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjc2LDEwICsyNzcsMTEgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIHRoZSBhY3R1
YWwgdmVyc2lvbi4gSW4gc2luZ2xlLXByb2Nlc3MgYnJvd3NlcnMsIHRoaXMgaXMganVzdCBhIG1h
cCBsb29rdXAuCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFtX2RhdGFiYXNl
LT5nZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oYWN0dWFsVmVyc2lvbikpIHsKKyAgICAg
ICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJB
U0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0
RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIG1fZGF0YWJhc2UtPmRpc2FibGVBdXRob3JpemVyKCk7CiAgICAgICAgIG1fc3FsaXRl
VHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXpl
cigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIik7CiAgICAgICAgIGhh
bmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MjkzLDggKzI5NSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAK
ICAgICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3RyYW5z
YWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFu
c2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQgc2V0
dGluZyB1cCB0cmFuc2FjdGlvbiIpOwotCisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Ig
b2NjdXJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0Iik7CiAgICAgICAgIGhhbmRsZVRy
YW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDcwLDcg
KzQ3MSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQKICAgICBp
ZiAobV93cmFwcGVyICYmICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KHRoaXMpKSB7CiAg
ICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAg
ICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJy
b3Igb2NjdXJlZCBzZXR0aW5nIHVwIHRyYW5zYWN0aW9uIik7CisgICAgICAgICAgICBtX3RyYW5z
YWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVu
a25vd24gZXJyb3Igb2NjdXJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCIpOwogICAg
ICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTQ4Nyw3ICs0ODgsOCBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5k
Q29tbWl0CiAgICAgICAgIGlmIChtX3dyYXBwZXIpCiAgICAgICAgICAgICBtX3dyYXBwZXItPmhh
bmRsZUNvbW1pdEZhaWxlZEFmdGVyUG9zdGZsaWdodCh0aGlzKTsKICAgICAgICAgbV9zdWNjZXNz
Q2FsbGJhY2tXcmFwcGVyLmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImZhaWxlZCB0byBjb21taXQg
dGhlIHRyYW5zYWN0aW9uIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBjb21taXQgdHJhbnNh
Y3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
ZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0
ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVy
cm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAJKHJldmlzaW9uIDk5ODg5KQorKysg
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03NSwxMiArNzUsMTcgQEAgU1FMVHJhbnNhY3Rpb25TeW5jOjp+U1FMVHJhbnNhY3Rp
b25TeW5jKAogUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhl
Y3V0ZVNRTChjb25zdCBTdHJpbmcmIHNxbFN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZhbHVl
PiYgYXJndW1lbnRzLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBBU1NFUlQobV9kYXRhYmFz
ZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CisKKyAgICBt
X2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCIiKTsKKwogICAgIGlmICghbV9kYXRhYmFz
ZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgi
Y2Fubm90IGV4ZWN1dGVTUUwgYmVjYXVzZSB0aGUgZGF0YWJhc2UgaXMgbm90IG9wZW4iKTsKICAg
ICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwogICAgICAgICByZXR1cm4gMDsK
ICAgICB9CiAKICAgICBpZiAobV9oYXNWZXJzaW9uTWlzbWF0Y2gpIHsKKyAgICAgICAgbV9kYXRh
YmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY2Fubm90IGV4ZWN1dGVTUUwgYmVjYXVzZSB0aGVy
ZSBpcyBhIHZlcnNpb24gbWlzbWF0Y2giKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlZF
UlNJT05fRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xMTAsOCArMTE1LDEwIEBA
IFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblMKICAgICAgICAgICAgICAg
ICBpZiAobV90cmFuc2FjdGlvbkNsaWVudC0+ZGlkRXhjZWVkUXVvdGEoZGF0YWJhc2UoKSkpIHsK
ICAgICAgICAgICAgICAgICAgICAgZWMgPSAwOwogICAgICAgICAgICAgICAgICAgICByZXRyeVN0
YXRlbWVudCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVz
c2FnZSgidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UiKTsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTI3LDggKzEzNCwxMCBAQCBQYXNzUmVmUHRyPFNR
TFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9u
U3luYzo6YmVnaW4oKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5l
ZCgpKQorICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFz
ZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY2Fubm90IGJlZ2luIHRyYW5zYWN0aW9uIGJlY2F1c2Ug
dGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuIik7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246
OlVOS05PV05fRVJSOworICAgIH0KIAogICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0
YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSk7CiAKQEAgLTE0Nyw2ICsxNTYsOCBAQCBF
eGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gQ2hlY2sgaWYg
YmVnaW4oKSBzdWNjZWVkZWQuCiAgICAgaWYgKCFtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dy
ZXNzKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLnRy
YW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgidW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RF
cnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwogICAgICAgICByZXR1cm4gU1FMRXhj
ZXB0aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQpAQCAtMTU2LDYgKzE2Nyw4IEBAIEV4Y2VwdGlv
bkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbigKICAgICAvLyB0aGUgYWN0dWFsIHZlcnNp
b24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1c3QgYSBtYXAgbG9va3Vw
LgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9kYXRhYmFzZS0+Z2V0QWN0
dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7CisgICAgICAgIG1fZGF0
YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byByZWFkIHZlcnNpb24iLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVy
cm9yTXNnKCkpOwogICAgICAgICByb2xsYmFjaygpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0
aW9uOjpEQVRBQkFTRV9FUlI7CiAgICAgfQpAQCAtMTY4LDYgKzE4MSw4IEBAIEV4Y2VwdGlvbkNv
ZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXQKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7CiAgICAgaWYgKCFt
X2RhdGFiYXNlLT5vcGVuZWQoKSB8fCAobV9jYWxsYmFjayAmJiAhbV9jYWxsYmFjay0+aGFuZGxl
RXZlbnQodGhpcykpKSB7CisgICAgICAgIGlmIChtX2RhdGFiYXNlLT5sYXN0RXJyb3JNZXNzYWdl
KCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2Fn
ZSgiZmFpbGVkIHRvIGV4ZWN1dGUgdHJhbnNhY3Rpb24gY2FsbGJhY2siKTsKICAgICAgICAgbV9j
YWxsYmFjayA9IDA7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwog
ICAgIH0KQEAgLTE3OSw4ICsxOTQsMTAgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5
bmM6OmV4ZWN1dAogRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmNvbW1pdCgpCiB7
CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250
ZXh0VGhyZWFkKCkpOwotICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpCisgICAgaWYgKCFt
X2RhdGFiYXNlLT5vcGVuZWQoKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JN
ZXNzYWdlKCJ1bmFibGUgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGJlY2F1c2UgdGhlIGRhdGFiYXNl
IGlzIG5vdCBvcGVuLiIpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VS
UjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9zcWxpdGVUcmFuc2FjdGlvbik7CiAKQEAgLTE4OSw4
ICsyMDYsMTEgQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmNvbW1pdAogICAg
IG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKIAogICAgIC8vIElmIHRoZSBjb21taXQg
ZmFpbGVkLCB0aGUgdHJhbnNhY3Rpb24gd2lsbCBzdGlsbCBiZSBtYXJrZWQgYXMgImluIHByb2dy
ZXNzIgotICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpCisgICAgaWYg
KG1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgeworICAgICAgICBtX2RhdGFiYXNl
LT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gY29tbWl0IHRyYW5zYWN0aW9uIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVE
YXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwor
ICAgIH0KIAogICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114581</attachid>
            <date>2011-11-10 14:54:42 -0800</date>
            <delta_ts>2011-11-10 15:47:12 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberror.txt</filename>
            <type>text/plain</type>
            <size>58919</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIFByb2R1Y2UgY29uc29sZSBsb2dnaW5nCisgICAgICAg
IGZvciBvcGVuRGF0YWJhc2UoKSBlcnJvcnMuIEFkZCBhIGxhc3RFcnJvck1lc3NhZ2UgYWNjZXNz
b3IKKyAgICAgICAgdG8gdGhlIERhdGFiYXNlU3luYyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBpbiB0aGUgd29ya3Ms
IGp1c3Qgbm90IGluIHRoaXMgc25hcHNob3QgeWV0LgorCisgICAgICAgICogcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpT
UUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6b3Blbik6
CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9ybWF0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFi
c3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yTWVzc2FnZSk6CisgICAgICAgICogc3RvcmFnZS9B
YnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBy
ZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVBvc3RmbGlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmg6Cisg
ICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VTeW5jOjpvcGVuRGF0YWJhc2VTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
U3luYzo6Y2hhbmdlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6OnJ1
blRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpsYXN0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlU3luYzo6c2V0TGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgICogc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VUYXNrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFz
ZU9wZW5UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNr
Ojpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGFzay5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OmNyZWF0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMU3RhdGVtZW50OjpleGVjdXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRl
bWVudFN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0
ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAg
ICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
UUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJh
bnNhY3Rpb25TeW5jOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5
bmM6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQpOgorCiAyMDExLTExLTEwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBEbyBub3Qgc2hhcmUgQ1NTIHN0eWxlIGZvciBNZWRpYUVsZW1lbnQgYmFj
a2VkIGJ5IGEgcGx1Z2luCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYs
OCBAQCBjb25zdCBpbnQgU1FMUmVzdWx0U2NoZW1hID0gU1FMSVRFX1NDSEVNCiBjb25zdCBpbnQg
U1FMUmVzdWx0RnVsbCA9IFNRTElURV9GVUxMOwogY29uc3QgaW50IFNRTFJlc3VsdEludGVycnVw
dCA9IFNRTElURV9JTlRFUlJVUFQ7CiAKK3N0YXRpYyBjb25zdCBjaGFyIG5vdE9wZW5FcnJvck1l
c3NhZ2VbXSA9ICJkYXRhYmFzZSBpcyBub3Qgb3BlbiI7CisKIFNRTGl0ZURhdGFiYXNlOjpTUUxp
dGVEYXRhYmFzZSgpCiAgICAgOiBtX2RiKDApCiAgICAgLCBtX3BhZ2VTaXplKC0xKQpAQCAtNTMs
NiArNTUsOCBAQCBTUUxpdGVEYXRhYmFzZTo6U1FMaXRlRGF0YWJhc2UoKQogICAgICwgbV9zaGFy
YWJsZShmYWxzZSkKICAgICAsIG1fb3BlbmluZ1RocmVhZCgwKQogICAgICwgbV9pbnRlcnJ1cHRl
ZChmYWxzZSkKKyAgICAsIG1fb3BlbkVycm9yKFNRTElURV9FUlJPUikKKyAgICAsIG1fb3BlbkVy
cm9yTWVzc2FnZShub3RPcGVuRXJyb3JNZXNzYWdlKQogewogfQogCkBAIC02NSwxNSArNjksMjAg
QEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIAogewogICAgIGNsb3Nl
KCk7CiAKLSAgICBpZiAoU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAm
bV9kYiwgZm9yV2ViU1FMRGF0YWJhc2UpICE9IFNRTElURV9PSykgeworICAgIG1fb3BlbkVycm9y
ID0gU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAmbV9kYiwgZm9yV2Vi
U1FMRGF0YWJhc2UpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAg
ICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CiAgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBsb2FkIGZyb20gJXNcbkNhdXNlIC0g
JXMiLCBmaWxlbmFtZS5hc2NpaSgpLmRhdGEoKSwKLSAgICAgICAgICAgIHNxbGl0ZTNfZXJybXNn
KG1fZGIpKTsKKyAgICAgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCkpOwogICAgICAg
ICBzcWxpdGUzX2Nsb3NlKG1fZGIpOwogICAgICAgICBtX2RiID0gMDsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9k
YiwgMSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNl
IGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBzcWxpdGUzX2Vycm1z
ZyhtX2RiKSk7CisKKyAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2Nv
ZGVzKG1fZGIsIDEpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAg
ICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJy
b3JzIC0gJXMiLCBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19j
bG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTgxLDYgKzkwLDggQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIAog
CiAgICAgaWYgKGlzT3BlbigpKQogICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBjdXJyZW50VGhy
ZWFkKCk7CisgICAgZWxzZQorICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlMyog
aXMgbnVsbCI7CiAKICAgICBpZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSB0ZW1w
X3N0b3JlID0gTUVNT1JZOyIpLmV4ZWN1dGVDb21tYW5kKCkpCiAgICAgICAgIExPR19FUlJPUigi
U1FMaXRlIGRhdGFiYXNlIGNvdWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0byBtZW1vcnkiKTsKQEAg
LTEwMiw2ICsxMTMsOCBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgfQogCiAg
ICAgbV9vcGVuaW5nVGhyZWFkID0gMDsKKyAgICBtX29wZW5FcnJvciA9IFNRTElURV9FUlJPUjsK
KyAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNzYWdlOwogfQogCiB2b2lk
IFNRTGl0ZURhdGFiYXNlOjppbnRlcnJ1cHQoKQpAQCAtMzE0LDEyICszMjcsMTIgQEAgaW50IFNR
TGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCiAKIGludCBTUUxpdGVEYXRhYmFzZTo6bGFzdEVy
cm9yKCkKIHsKLSAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2RiKSA6IFNRTElU
RV9FUlJPUjsKKyAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2RiKSA6IG1fb3Bl
bkVycm9yOwogfQogCiBjb25zdCBjaGFyKiBTUUxpdGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKCkK
IHsgCi0gICAgcmV0dXJuIHNxbGl0ZTNfZXJybXNnKG1fZGIpOworICAgIHJldHVybiBtX2RiID8g
c3FsaXRlM19lcnJtc2cobV9kYikgOiBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpOwogfQogCiAj
aWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNk
ZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTE1Myw3ICsxNTQsMTAgQEAgcHJpdmF0ZToKIAogICAg
IE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXg7CiAgICAgYm9vbCBtX2ludGVycnVwdGVkOwot
fTsgLy8gY2xhc3MgU1FMaXRlRGF0YWJhc2UKKworICAgIGludCBtX29wZW5FcnJvcjsKKyAgICBD
U3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCShy
ZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRlVHJhbnNh
Y3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtNTIsNiArNTMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
c3RhdGljIGNvbnN0IGNoYXIgdmVyc2lvbktleVtdID0gIldlYktpdERhdGFiYXNlVmVyc2lvbktl
eSI7CiBzdGF0aWMgY29uc3QgY2hhciBpbmZvVGFibGVOYW1lW10gPSAiX19XZWJLaXREYXRhYmFz
ZUluZm9UYWJsZV9fIjsKIAorc3RhdGljIFN0cmluZyBmb3JtYXRFcnJvck1lc3NhZ2UoY29uc3Qg
Y2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUVycm9yQ29kZSwgY29uc3QgY2hhciogc3FsaXRlRXJy
b3JNZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkICVzKSIsIG1l
c3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3FsaXRlRXJyb3JNZXNzYWdlKTsKK30KKwogc3RhdGlj
IGJvb2wgcmV0cmlldmVUZXh0UmVzdWx0RnJvbURhdGFiYXNlKFNRTGl0ZURhdGFiYXNlJiBkYiwg
Y29uc3QgU3RyaW5nJiBxdWVyeSwgU3RyaW5nJiByZXN1bHRTdHJpbmcpCiB7CiAgICAgU1FMaXRl
U3RhdGVtZW50IHN0YXRlbWVudChkYiwgcXVlcnkpOwpAQCAtMjQ0LDE3ICsyNTAsMTkgQEAgU3Ry
aW5nIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBnZXRDYWNo
ZWRWZXJzaW9uKCk7CiB9CiAKLWJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRW
ZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCitib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hv
dWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKIHsKKyAgICBBU1NFUlQoZXJyb3JNZXNzYWdlLmlzRW1wdHkoKSk7CisKICAg
ICBjb25zdCBpbnQgbWF4U3FsaXRlQnVzeVdhaXRUaW1lID0gMzAwMDA7CiAKICAgICBpZiAoIW1f
c3FsaXRlRGF0YWJhc2Uub3BlbihtX2ZpbGVuYW1lLCB0cnVlKSkgewotICAgICAgICBMT0dfRVJS
T1IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGF0IHBhdGggJXMiLCBtX2ZpbGVuYW1lLmFzY2lp
KCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1f
c3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICghbV9zcWxpdGVE
YXRhYmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKLSAgICAgICAgTE9HX0VSUk9S
KCJVbmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSBmb3IgZGF0YWJhc2Ug
JXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFi
bGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSAoJWQgJXMpIiwgbV9zcWxpdGVE
YXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAK
ICAgICBtX3NxbGl0ZURhdGFiYXNlLnNldEJ1c3lUaW1lb3V0KG1heFNxbGl0ZUJ1c3lXYWl0VGlt
ZSk7CiAKQEAgLTI5MCw3ICsyOTgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1P
cGVuQW5kVmVyCiAgICAgICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbihtX3Nx
bGl0ZURhdGFiYXNlKTsKICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmJlZ2luKCk7CiAgICAgICAg
ICAgICBpZiAoIXRyYW5zYWN0aW9uLmluUHJvZ3Jlc3MoKSkgewotICAgICAgICAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIHdoaWxlIG9wZW5pbmcgJXMiLCBk
YXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCBm
YWlsZWQgdG8gc3RhcnQgdHJhbnNhY3Rpb24iLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigp
LCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xv
c2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDEsMTQgKzMwOSwxNCBA
QCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAgICAgICAgICAgICAg
ICAgbV9uZXcgPSB0cnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNl
LmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgIiArIHRhYmxlTmFtZSArICIgKGtleSBURVhU
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0UsdmFs
dWUgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiKSkgewotICAgICAgICAgICAgICAg
ICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgdGFibGUgJXMgaW4gZGF0YWJhc2UgJXMi
LCBpbmZvVGFibGVOYW1lLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIGNyZWF0ZSAnaW5mbycgdGFibGUiLCBtX3Nx
bGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAg
ICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAg
bV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICghZ2V0VmVyc2lv
bkZyb21EYXRhYmFzZShjdXJyZW50VmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNlICVz
IiwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSwgZmFpbGVkIHRvIHJlYWQgY3VycmVudCB2ZXJzaW9uIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0
RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5y
b2xsYmFjaygpOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKQEAg
LTMyMCw3ICszMjgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVy
CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtX25ldyB8fCBzaG91bGRTZXRWZXJzaW9uSW5OZXdE
YXRhYmFzZSkgewogICAgICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiU2V0dGluZyB2ZXJz
aW9uICVzIGluIGRhdGFiYXNlICVzIHRoYXQgd2FzIGp1c3QgY3JlYXRlZCIsIG1fZXhwZWN0ZWRW
ZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgp
KTsKICAgICAgICAgICAgICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG1fZXhwZWN0ZWRW
ZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gc2V0IHZlcnNpb24gJXMgaW4gZGF0YWJhc2UgJXMiLCBtX2V4cGVjdGVkVmVyc2lvbi5hc2Np
aSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byB3cml0ZSBjdXJyZW50IHZlcnNpb24iLCBtX3NxbGl0
ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgbV9z
cWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzQxLDggKzM0OSw3IEBAIGJvb2wgQWJzdHJhY3RE
YXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lv
biBpc24ndCB0aGUgZW1wdHkgc3RyaW5nLCBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBkYXRhYmFz
ZSB2ZXJzaW9uIHdlIGhhdmUgbWF0Y2hlcyB0aGF0IHZlcnNpb24uIE90aGVyd2lzZSwgc2V0IGFu
IGV4Y2VwdGlvbi4KICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lvbiBpcyB0aGUgZW1wdHkg
c3RyaW5nLCB0aGVuIHdlIGFsd2F5cyByZXR1cm4gd2l0aCB3aGF0ZXZlciB2ZXJzaW9uIG9mIHRo
ZSBkYXRhYmFzZSB3ZSBoYXZlLgogICAgIGlmICgoIW1fbmV3IHx8IHNob3VsZFNldFZlcnNpb25J
bk5ld0RhdGFiYXNlKSAmJiBtX2V4cGVjdGVkVmVyc2lvbi5sZW5ndGgoKSAmJiBtX2V4cGVjdGVk
VmVyc2lvbiAhPSBjdXJyZW50VmVyc2lvbikgewotICAgICAgICBMT0coU3RvcmFnZUFQSSwgInBh
Z2UgZXhwZWN0cyB2ZXJzaW9uICVzIGZyb20gZGF0YWJhc2UgJXMsIHdoaWNoIGFjdHVhbGx5IGhh
cyB2ZXJzaW9uIG5hbWUgJXMgLSBvcGVuRGF0YWJhc2UoKSBjYWxsIHdpbGwgZmFpbCIsIG1fZXhw
ZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLAotICAgICAgICAgICAgZGF0YWJhc2VEZWJ1Z05h
bWUoKS5hc2NpaSgpLmRhdGEoKSwgY3VycmVudFZlcnNpb24uYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSAidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlz
bWF0Y2gsICciICsgbV9leHBlY3RlZFZlcnNpb24gKyAiJyBkb2VzIG5vdCBtYXRjaCB0aGUgY3Vy
cmVudFZlcnNpb24gb2YgJyIgKyBjdXJyZW50VmVyc2lvbiArICInIjsKICAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC01MzksNiArNTQ2LDExIEBAIGJvb2wgQWJzdHJhY3REYXRh
YmFzZTo6aXNJbnRlcnJ1cHRlZCgpCiAgICAgcmV0dXJuIG1fc3FsaXRlRGF0YWJhc2UuaXNJbnRl
cnJ1cHRlZCgpOwogfQogCit2b2lkIEFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yTWVzc2FnZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5h
ZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmcoKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
OTUsNyArOTUsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNsb3NlRGF0YWJhc2UoKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdmlydHVhbCBib29sIHBl
cmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4
Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBib29sIGdldFZlcnNp
b25Gcm9tRGF0YWJhc2UoU3RyaW5nJiB2ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9
IHRydWUpOwogICAgIGJvb2wgc2V0VmVyc2lvbkluRGF0YWJhc2UoY29uc3QgU3RyaW5nJiB2ZXJz
aW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9IHRydWUpOwpAQCAtMTA1LDYgKzEwNSw4IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHNldENhY2hlZFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAg
ICAgYm9vbCBnZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oU3RyaW5nJiB2ZXJzaW9uKTsK
IAorICAgIHZvaWQgbG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VJbmZvVGFibGVOYW1lKCk7CiAKICAgICBSZWZQ
dHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJ
KHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9u
V3JhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDEzICs1MCwxMyBAQCBib29sIENoYW5n
ZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247
CiAKICAgICBpZiAoIXRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5nZXRWZXJzaW9uRnJvbURhdGFi
YXNlKGFjdHVhbFZlcnNpb24pKSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHJldHJp
ZXZlIGFjdHVhbCBjdXJyZW50IHZlcnNpb24gZnJvbSBkYXRhYmFzZSIpOwotICAgICAgICBtX3Nx
bEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUg
dG8gdmVyaWZ5IGN1cnJlbnQgdmVyc2lvbiBvZiBkYXRhYmFzZSIpOworICAgICAgICBtX3NxbEVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8g
cmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVy
cm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9u
LT5kYXRhYmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVy
c2lvbikgewotICAgICAgICBMT0dfRVJST1IoIk9sZCB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggYWN0
dWFsIHZlcnNpb24iKTsKICAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQg
YG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpAQCAtNjksOCArNjksOSBAQCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpw
ZXJmb3JtUG9zdGZsCiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uICYmIHRyYW5zYWN0aW9uLT5kYXRh
YmFzZSgpKTsKIAogICAgIGlmICghdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNldFZlcnNpb25J
bkRhdGFiYXNlKG1fbmV3VmVyc2lvbikpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8g
c2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBzZXQgbmV3IHZl
cnNpb24gaW4gZGF0YWJhc2UiKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBk
YXRhYmFzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLT5kYXRhYmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3Fs
aXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCShyZXZpc2lvbiA5OTg5
NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05OCw4ICs5OCw5IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlOjpvcGVuRGF0
YWIKIAogICAgIFJlZlB0cjxEYXRhYmFzZT4gZGF0YWJhc2UgPSBhZG9wdFJlZihuZXcgRGF0YWJh
c2UoY29udGV4dCwgbmFtZSwgZXhwZWN0ZWRWZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVk
U2l6ZSkpOwogCi0gICAgaWYgKCFkYXRhYmFzZS0+b3BlbkFuZFZlcmlmeVZlcnNpb24oIWNyZWF0
aW9uQ2FsbGJhY2ssIGUpKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIG9w
ZW4gYW5kIHZlcmlmeSB2ZXJzaW9uIChleHBlY3RlZCAlcykgb2YgZGF0YWJhc2UgJXMiLCBleHBl
Y3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlLT5kYXRhYmFzZURlYnVnTmFtZSgp
LmFzY2lpKCkuZGF0YSgpKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghZGF0
YWJhc2UtPm9wZW5BbmRWZXJpZnlWZXJzaW9uKCFjcmVhdGlvbkNhbGxiYWNrLCBlLCBlcnJvck1l
c3NhZ2UpKSB7CisgICAgICAgIGRhdGFiYXNlLT5sb2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdl
KTsKICAgICAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkucmVtb3ZlT3BlbkRhdGFiYXNl
KGRhdGFiYXNlLmdldCgpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTczLDE0ICsx
NzQsMTQgQEAgU3RyaW5nIERhdGFiYXNlOjp2ZXJzaW9uKCkgY29uc3QKICAgICByZXR1cm4gQWJz
dHJhY3REYXRhYmFzZTo6dmVyc2lvbigpOwogfQogCi1ib29sIERhdGFiYXNlOjpvcGVuQW5kVmVy
aWZ5VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBl
KQorYm9vbCBEYXRhYmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5O
ZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYgZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAg
ICAgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyIHN5bmNocm9uaXplcjsKICAgICBpZiAoIW1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQoKSB8fCBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmRhdGFiYXNlVGhyZWFkKCktPnRlcm1pbmF0aW9uUmVxdWVzdGVkKCZzeW5jaHJv
bml6ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHN1Y2Nlc3MgPSBmYWxz
ZTsKLSAgICBPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gdGFzayA9IERhdGFiYXNlT3BlblRhc2s6
OmNyZWF0ZSh0aGlzLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgJnN5bmNocm9uaXplciwgZSwg
c3VjY2Vzcyk7CisgICAgT3duUHRyPERhdGFiYXNlT3BlblRhc2s+IHRhc2sgPSBEYXRhYmFzZU9w
ZW5UYXNrOjpjcmVhdGUodGhpcywgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsICZzeW5jaHJvbml6
ZXIsIGUsIGVycm9yTWVzc2FnZSwgc3VjY2Vzcyk7CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5kYXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZUltbWVkaWF0ZVRhc2sodGFzay5yZWxlYXNl
KCkpOwogICAgIHN5bmNocm9uaXplci53YWl0Rm9yVGFza0NvbXBsZXRpb24oKTsKIApAQCAtMjM4
LDkgKzIzOSw5IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZTo6bWF4aW11bVNpemUKICAg
ICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZ2V0TWF4U2l6ZUZvckRhdGFiYXNl
KHRoaXMpOwogfQogCi1ib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNl
dFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlKQorYm9vbCBEYXRhYmFzZTo6
cGVyZm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0
aW9uQ29kZSYgZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAgaWYgKEFic3RyYWN0RGF0
YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBlKSkg
eworICAgIGlmIChBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShzZXRWZXJz
aW9uSW5OZXdEYXRhYmFzZSwgZSwgZXJyb3JNZXNzYWdlKSkgewogICAgICAgICBpZiAobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpKQogICAgICAgICAgICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpLT5yZWNvcmREYXRhYmFzZU9wZW4o
dGhpcyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDk5ODk2
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC05NSw4ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5UcmFuc2FjdGlvbihQYXNzUmVm
UHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFjaz4sCiAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFZvaWRDYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBib29sIHJlYWRPbmx5KTsKIAotICAgIGJvb2wgb3BlbkFu
ZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBvcGVuQW5kVmVyaWZ5
VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlm
eShib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpOwogCiAgICAgdm9pZCBpblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQo
KTsKICAgICB2b2lkIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlU3luYy5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw5
IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2VTeW5jPiBEYXRhYmFzZVN5bmM6Om8KIAogICAgIFJlZlB0
cjxEYXRhYmFzZVN5bmM+IGRhdGFiYXNlID0gYWRvcHRSZWYobmV3IERhdGFiYXNlU3luYyhjb250
ZXh0LCBuYW1lLCBleHBlY3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7
CiAKLSAgICBpZiAoIWRhdGFiYXNlLT5wZXJmb3JtT3BlbkFuZFZlcmlmeSghY3JlYXRpb25DYWxs
YmFjaywgZWMpKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIG9wZW4gYW5k
IHZlcmlmeSB2ZXJzaW9uIChleHBlY3RlZCAlcykgb2YgZGF0YWJhc2UgJXMiLCBleHBlY3RlZFZl
cnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlLT5kYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lp
KCkuZGF0YSgpKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghZGF0YWJhc2Ut
PnBlcmZvcm1PcGVuQW5kVmVyaWZ5KCFjcmVhdGlvbkNhbGxiYWNrLCBlYywgZXJyb3JNZXNzYWdl
KSkgeworICAgICAgICBkYXRhYmFzZS0+bG9nRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAg
ICAgICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRh
YmFzZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTk2LDM5ICs5Nyw0OSBA
QCB2b2lkIERhdGFiYXNlU3luYzo6Y2hhbmdlVmVyc2lvbihjb25zdCBTCiAgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNx
bGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFz
dEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNoYW5nZVZlcnNpb24gZnJvbSB3aXRoaW4gYSB0cmFu
c2FjdGlvbiIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJh
bnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjaGFuZ2VWZXJzaW9u
Q2FsbGJhY2ssIGZhbHNlKTsKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpKQor
ICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkpIHsKKyAgICAgICAgQVNTRVJUKCFs
YXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAog
ICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghZ2V0VmVyc2lvbkZyb21EYXRhYmFz
ZShhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUg
dG8gcmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3Io
KSwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhj
ZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChh
Y3R1YWxWZXJzaW9uICE9IG9sZFZlcnNpb24pIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2Fn
ZSgiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3Vt
ZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24t
PmV4ZWN1dGUoKSkpCisgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpKSB7Cisg
ICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG5ld1ZlcnNpb24p
KSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBzZXQgdGhlIG5ldyB2
ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+Y29t
bWl0KCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7
CiAgICAgICAgIHNldENhY2hlZFZlcnNpb24ob2xkVmVyc2lvbik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBzZXRFeHBlY3RlZFZlcnNpb24obmV3VmVyc2lvbik7CisgICAgc2V0TGFz
dEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjp0cmFuc2FjdGlvbihQ
YXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYgZWMpCkBAIC0xNDYsMTMgKzE1NywxOCBAQCB2b2lkIERhdGFiYXNlU3luYzo6cnVuVHJh
bnNhY3Rpb24oUGFzc1JlCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXND
b250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25J
blByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHN0
YXJ0IGEgdHJhbnNhY3Rpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBl
YyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2Fj
dGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjYWxsYmFjaywgcmVhZE9ubHkpOwotICAgIGlmICgoZWMg
PSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkg
fHwgKGVjID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rp
b24tPmJlZ2luKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRy
YW5zYWN0aW9uLT5jb21taXQoKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdl
KCkuaXNFbXB0eSgpKTsKICAgICAgICAgdHJhbnNhY3Rpb24tPnJvbGxiYWNrKCk7CisgICAgfQor
CisgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjpt
YXJrQXNEZWxldGVkQW5kQ2xvc2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRh
YmFzZVN5bmMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNl
U3luYy5oCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJh
c2VTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDEwICs2NCwyMyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIG1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBj
bG9zZUltbWVkaWF0ZWx5KCk7CiAKKyAgICBjb25zdCBTdHJpbmcmIGxhc3RFcnJvck1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtX2xhc3RFcnJvck1lc3NhZ2U7IH0KKyAgICB2b2lkIHNldExhc3RF
cnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IG1fbGFzdEVycm9yTWVzc2FnZSA9
IG1lc3NhZ2U7IH0KKyAgICB2b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVz
c2FnZSwgaW50IHNxbGl0ZUNvZGUpCisgICAgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdl
KFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSkpOworICAgIH0K
KyAgICB2b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNx
bGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2UpCisgICAgeworICAgICAgICBzZXRM
YXN0RXJyb3JNZXNzYWdlKFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQsICVzKSIsIG1lc3NhZ2UsIHNx
bGl0ZUNvZGUsIHNxbGl0ZU1lc3NhZ2UpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgRGF0YWJh
c2VTeW5jKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLAogICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpOwogICAgIHZvaWQgcnVu
VHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjaz4sIGJvb2wg
cmVhZE9ubHksIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIFN0cmluZyBtX2xhc3RFcnJvck1lc3Nh
Z2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlU3luYy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIE5vU3RhdGljVGFibGVzCiAgICAgXSBEYXRhYmFz
ZVN5bmMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdEVycm9yTWVzc2FnZTsKICAg
ICAgICAgdm9pZCBjaGFuZ2VWZXJzaW9uKGluIERPTVN0cmluZyBvbGRWZXJzaW9uLCBpbiBET01T
dHJpbmcgbmV3VmVyc2lvbiwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU1FMVHJhbnNhY3Rpb25T
eW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHRyYW5zYWN0aW9uKGluIFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2Fs
bGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlv
bihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VU
YXNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFz
ay5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFz
ZVRhc2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCwxMCArOTgsMTEgQEAgdm9pZCBEYXRhYmFz
ZVRhc2s6OnBlcmZvcm1UYXNrKCkKIC8vICoqKiBEYXRhYmFzZU9wZW5UYXNrICoqKgogLy8gT3Bl
bnMgdGhlIGRhdGFiYXNlIGZpbGUgYW5kIHZlcmlmaWVzIHRoZSB2ZXJzaW9uIG1hdGNoZXMgdGhl
IGV4cGVjdGVkIHZlcnNpb24uCiAKLURhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFz
ZU9wZW5UYXNrKERhdGFiYXNlKiBkYXRhYmFzZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFz
ZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUm
IGNvZGUsIGJvb2wmIHN1Y2Nlc3MpCitEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJh
c2VPcGVuVGFzayhEYXRhYmFzZSogZGF0YWJhc2UsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2Rl
JiBjb2RlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IERhdGFi
YXNlVGFzayhkYXRhYmFzZSwgc3luY2hyb25pemVyKQogICAgICwgbV9zZXRWZXJzaW9uSW5OZXdE
YXRhYmFzZShzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSkKICAgICAsIG1fY29kZShjb2RlKQorICAg
ICwgbV9lcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKQogICAgICwgbV9zdWNjZXNzKHN1Y2Nlc3Mp
CiB7CiAgICAgQVNTRVJUKHN5bmNocm9uaXplcik7IC8vIEEgdGFzayB3aXRoIG91dHB1dCBwYXJh
bWV0ZXJzIGlzIHN1cHBvc2VkIHRvIGJlIHN5bmNocm9ub3VzLgpAQCAtMTA5LDcgKzExMCwxMCBA
QCBEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuCiAKIHZvaWQgRGF0YWJh
c2U6OkRhdGFiYXNlT3BlblRhc2s6OmRvUGVyZm9ybVRhc2soKQogewotICAgIG1fc3VjY2VzcyA9
IGRhdGFiYXNlKCktPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KG1fc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsIG1fY29kZSk7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBtX3N1Y2Nlc3MgPSBk
YXRhYmFzZSgpLT5wZXJmb3JtT3BlbkFuZFZlcmlmeShtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNl
LCBtX2NvZGUsIGVycm9yTWVzc2FnZSk7CisgICAgaWYgKCFtX3N1Y2Nlc3MpCisgICAgICAgIG1f
ZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpOwogfQogCiAjaWYgIUxP
R19ESVNBQkxFRApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCShyZXZp
c2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwMCwxMyArMTAwLDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIERhdGFi
YXNlOjpEYXRhYmFzZU9wZW5UYXNrIDogcHVibGljIERhdGFiYXNlVGFzayB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gY3JlYXRlKERhdGFiYXNlKiBk
YiwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVy
KiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIGJvb2wmIHN1Y2Nlc3MpCisgICAg
c3RhdGljIFBhc3NPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gY3JlYXRlKERhdGFiYXNlKiBkYiwg
Ym9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBz
eW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBi
b29sJiBzdWNjZXNzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRhYmFz
ZU9wZW5UYXNrKGRiLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgc3luY2hyb25pemVyLCBjb2Rl
LCBzdWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0YWJhc2VPcGVuVGFz
ayhkYiwgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIHN5bmNocm9uaXplciwgY29kZSwgZXJyb3JN
ZXNzYWdlLCBzdWNjZXNzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIERhdGFiYXNlT3BlblRh
c2soRGF0YWJhc2UqLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXIqLCBFeGNlcHRpb25Db2RlJiwgYm9vbCYgc3VjY2Vzcyk7CisgICAgRGF0YWJh
c2VPcGVuVGFzayhEYXRhYmFzZSosIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFi
YXNlVGFza1N5bmNocm9uaXplciosIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgYm9vbCYgc3VjY2Vzcyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9QZXJmb3JtVGFzaygpOwog
I2lmICFMT0dfRElTQUJMRUQKQEAgLTExNSw2ICsxMTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNlOwogICAgIEV4Y2VwdGlvbkNvZGUmIG1fY29kZTsK
KyAgICBTdHJpbmcmIG1fZXJyb3JNZXNzYWdlOwogICAgIGJvb2wmIG1fc3VjY2VzczsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHJldmlzaW9uIDk5ODk2KQorKysgU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTUUxFcnJvciA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxTUUxFcnJvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU1FMRXJyb3IoY29kZSwgbWVzc2FnZSkpOyB9CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBj
aGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVh
dGUoY29kZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7
CisgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQg
Y29kZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNx
bGl0ZU1lc3NhZ2UpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6
Zm9ybWF0KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSwgc3FsaXRlTWVzc2FnZSkp
OworICAgIH0KIAogICAgIHVuc2lnbmVkIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0K
ICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZS5pc29sYXRlZENv
cHkoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkocmV2
aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDEwIEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVj
dXRlKERhdGFiYXNlKiBkYikKIAogICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAg
ICAgICAgTE9HKFN0b3JhZ2VBUEksICJVbmFibGUgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHN0
YXRlbWVudCAlcyAtIGVycm9yICVpICglcykiLCBtX3N0YXRlbWVudC5hc2NpaSgpLmRhdGEoKSwg
cmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwotICAgICAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0ID8gU1FMRXJyb3I6OkRB
VEFCQVNFX0VSUiA6IFNRTEVycm9yOjpTWU5UQVhfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNn
KCkpOworICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEludGVycnVwdCkKKyAgICAgICAg
ICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsICJpbnRlcnJ1cHRlZCIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6U1lOVEFYX0VSUiwgImNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0
YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtOTksNyArMTAyLDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRi
KQogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgICAgIExP
RyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIGJpbmQgdmFsdWUgaW5kZXggJWkgdG8gc3RhdGVtZW50
IGZvciBxdWVyeSAnJXMnIiwgaSArIDEsIG1fc3RhdGVtZW50LmFzY2lpKCkuZGF0YSgpKTsKLSAg
ICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGJpbmQgdmFs
dWUiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjMsNyArMTI2LDcgQEAgYm9vbCBTUUxT
dGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogICAgICAgICB9IHdoaWxlIChyZXN1bHQg
PT0gU1FMUmVzdWx0Um93KTsKIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUp
IHsKLSAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRB
QkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGl0
ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09
IFNRTFJlc3VsdERvbmUpIHsKQEAgLTEzNSw3ICsxMzgsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6
ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAgICAgICAgIHNldEZhaWx1cmVEdWVUb1F1b3RhKCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9y
TXNnKCkpOworICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFU
QUJBU0VfRVJSLCAiY291bGQgbm90IGV4ZWN1dGUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFz
ZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHJldmlzaW9u
IDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjEsMTEgKzYxLDEzIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0
PiBTUUxTdGF0ZW1lbnRTeW4KICAgICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnByZXBhcmUoKTsK
ICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgIGVjID0gKHJlc3VsdCA9
PSBTUUxSZXN1bHRJbnRlcnJ1cHQgPyBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUiA6IFNRTEV4
Y2VwdGlvbjo6U1lOVEFYX0VSUik7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGlmIChzdGF0ZW1lbnQuYmlu
ZFBhcmFtZXRlckNvdW50KCkgIT0gbV9hcmd1bWVudHMuc2l6ZSgpKSB7CiAgICAgICAgIGVjID0g
KGRiLT5pc0ludGVycnVwdGVkKCk/IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSIDogU1FMRXhj
ZXB0aW9uOjpTWU5UQVhfRVJSKTsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoIm51
bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQg
Y291bnQiKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC03MywxMSArNzUsMTMgQEAg
UGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgogICAgICAgICByZXN1bHQg
PSBzdGF0ZW1lbnQuYmluZFZhbHVlKGkgKyAxLCBtX2FyZ3VtZW50c1tpXSk7CiAgICAgICAgIGlm
IChyZXN1bHQgPT0gU1FMUmVzdWx0RnVsbCkgewogICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRp
b246OlFVT1RBX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVy
ZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9r
KSB7CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAg
ICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBiaW5kIHZhbHVlIiwgcmVz
dWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xMDIsNiArMTA2LDcgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRT
ZXQ+IFNRTFN0YXRlbWVudFN5bgogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0RG9u
ZSkgewogICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICAg
ICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgaXRlcmF0ZSByZXN1bHRz
IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHREb25lKSB7
CkBAIC0xMTEsOSArMTE2LDExIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1l
bnRTeW4KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHRGdWxsKSB7CiAgICAgICAg
IC8vIFF1b3RhIGVycm9yLCB0aGUgZGVsZWdhdGUgd2lsbCBiZSBhc2tlZCBmb3IgbW9yZSBzcGFj
ZSBhbmQgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgYmUgcmUtcnVuLgogICAgICAgICBlYyA9IFNRTEV4
Y2VwdGlvbjo6UVVPVEFfRVJSOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgidGhl
cmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UiKTsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNF
X0VSUjsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBleGVjdXRl
IHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5z
YWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5z
YWN0aW9uLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1LDggKzI2NSw5IEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyBUcmFuc2FjdGlvbiBT
dGVwcyAxKzIgLSBPcGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhlIGRhdGFiYXNlLCBqdW1waW5nIHRv
IHRoZSBlcnJvciBjYWxsYmFjayBpZiB0aGF0IGZhaWxzCiAgICAgaWYgKCFtX3NxbGl0ZVRyYW5z
YWN0aW9uLT5pblByb2dyZXNzKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxp
dGVEYXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKKyAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5h
YmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigp
LCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
bV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gb3Bl
biBhIHRyYW5zYWN0aW9uIHRvIHRoZSBkYXRhYmFzZSIpOwogICAgICAgICBoYW5kbGVUcmFuc2Fj
dGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3NiwxMCArMjc3
LDExIEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyB0
aGUgYWN0dWFsIHZlcnNpb24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1
c3QgYSBtYXAgbG9va3VwLgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9k
YXRhYmFzZS0+Z2V0QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7
CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byByZWFkIHZlcnNpb24iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNl
KCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNn
KCkpOwogICAgICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXplcigpOwogICAgICAgICBt
X3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1
dGhvcml6ZXIoKTsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIpOwogICAg
ICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTI5Myw4ICsyOTUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rp
b25BbmRQCiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAg
bV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAo
IW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1
cmVkIHNldHRpbmcgdXAgdHJhbnNhY3Rpb24iKTsKLQorICAgICAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3du
IGVycm9yIG9jY3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCIpOwogICAgICAgICBo
YW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTQ3MCw3ICs0NzEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0
CiAgICAgaWYgKG1fd3JhcHBlciAmJiAhbV93cmFwcGVyLT5wZXJmb3JtUG9zdGZsaWdodCh0aGlz
KSkgewogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7
CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtu
b3duIGVycm9yIG9jY3VyZWQgc2V0dGluZyB1cCB0cmFuc2FjdGlvbiIpOworICAgICAgICAgICAg
bV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9F
UlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQi
KTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC00ODcsNyArNDg4LDggQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZs
aWdodEFuZENvbW1pdAogICAgICAgICBpZiAobV93cmFwcGVyKQogICAgICAgICAgICAgbV93cmFw
cGVyLT5oYW5kbGVDb21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQodGhpcyk7CiAgICAgICAgIG1f
c3VjY2Vzc0NhbGxiYWNrV3JhcHBlci5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJmYWlsZWQgdG8g
Y29tbWl0IHRoZSB0cmFuc2FjdGlvbiIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gY29tbWl0
IHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNl
LT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgaGFuZGxlVHJhbnNh
Y3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCShyZXZpc2lvbiA5OTg5
NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzUsMTIgKzc1LDE3IEBAIFNRTFRyYW5zYWN0aW9uU3luYzo6flNRTFRy
YW5zYWN0aW9uU3luYygKIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblN5
bmM6OmV4ZWN1dGVTUUwoY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxT
UUxWYWx1ZT4mIGFyZ3VtZW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKG1f
ZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwor
CisgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CisKICAgICBpZiAoIW1f
ZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1l
c3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVu
Iik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogCiAgICAgaWYgKG1faGFzVmVyc2lvbk1pc21hdGNoKSB7CisgICAgICAg
IG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1
c2UgdGhlcmUgaXMgYSB2ZXJzaW9uIG1pc21hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0
aW9uOjpWRVJTSU9OX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTEwLDggKzEx
NSwxMCBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiAgICAgICAg
ICAgICAgICAgaWYgKG1fdHJhbnNhY3Rpb25DbGllbnQtPmRpZEV4Y2VlZFF1b3RhKGRhdGFiYXNl
KCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIGVjID0gMDsKICAgICAgICAgICAgICAgICAgICAg
cmV0cnlTdGF0ZW1lbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RF
cnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNl
Iik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTEyNyw4ICsxMzQsMTAgQEAgUGFzc1Jl
ZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9uUwogRXhjZXB0aW9uQ29kZSBTUUxUcmFu
c2FjdGlvblN5bmM6OmJlZ2luKCkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFiYXNl
LT5vcGVuZWQoKSkKKyAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1f
ZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBiZWdpbiB0cmFuc2FjdGlvbiBi
ZWNhdXNlIHRoZSBkYXRhYmFzZSBpcyBub3Qgb3BlbiIpOwogICAgICAgICByZXR1cm4gU1FMRXhj
ZXB0aW9uOjpVTktOT1dOX0VSUjsKKyAgICB9CiAKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNx
bGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOwogCkBAIC0xNDcsNiArMTU2
LDggQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKAogICAgIC8vIENo
ZWNrIGlmIGJlZ2luKCkgc3VjY2VlZGVkLgogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+
aW5Qcm9ncmVzcygpKSB7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJh
c2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSk7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExh
c3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBiZWdpbiB0cmFuc2FjdGlvbiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2Uo
KS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgcmV0dXJu
IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE1Niw2ICsxNjcsOCBAQCBF
eGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gdGhlIGFjdHVh
bCB2ZXJzaW9uLiBJbiBzaW5nbGUtcHJvY2VzcyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFw
IGxvb2t1cC4KICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2Ut
PmdldEFjdHVhbFZlcnNpb25Gb3JUcmFuc2FjdGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAg
ICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9u
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5z
cWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcm9sbGJhY2soKTsKICAgICAgICAgcmV0dXJuIFNR
TEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE2OCw2ICsxODEsOCBAQCBFeGNl
cHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0CiB7CiAgICAgQVNTRVJUKG1fZGF0
YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwogICAg
IGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkgfHwgKG1fY2FsbGJhY2sgJiYgIW1fY2FsbGJhY2st
PmhhbmRsZUV2ZW50KHRoaXMpKSkgeworICAgICAgICBpZiAobV9kYXRhYmFzZS0+bGFzdEVycm9y
TWVzc2FnZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJv
ck1lc3NhZ2UoImZhaWxlZCB0byBleGVjdXRlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIik7CiAgICAg
ICAgIG1fY2FsbGJhY2sgPSAwOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dO
X0VSUjsKICAgICB9CkBAIC0xNzksOCArMTk0LDEwIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNh
Y3Rpb25TeW5jOjpleGVjdXQKIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQoKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKQorICAg
IGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFz
dEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBk
YXRhYmFzZSBpcyBub3Qgb3Blbi4iKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5L
Tk9XTl9FUlI7CisgICAgfQogCiAgICAgQVNTRVJUKG1fc3FsaXRlVHJhbnNhY3Rpb24pOwogCkBA
IC0xODksOCArMjA2LDExIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQKICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7CiAKICAgICAvLyBJZiB0aGUg
Y29tbWl0IGZhaWxlZCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgc3RpbGwgYmUgbWFya2VkIGFzICJp
biBwcm9ncmVzcyIKLSAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQor
ICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgbV9k
YXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlv
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+
c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2Uo
KS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNF
X0VSUjsKKyAgICB9CiAKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDk5ODk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hh
ZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxheW91dCB0ZXN0cyBmb3Igd2Vic3Fs
IG5ldyBlcnJvciBtZXNzYWdlcyBhbmQgY29uc29sZSBsb2dnaW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1NzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL2No
YW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stc3lu
Yy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRh
YmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zeW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3dvcmtlcnMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHN0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHN0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dy
aXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBl
Y3RlZC50eHQ6CisKIDIwMTEtMTEtMTAgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQcmUtZW1wdGl2ZWx5IG1hcmsgYSBjYW52
YXMgdGVzdCBhcyBmYWlsaW5nIGZvciBuZXh0IFNraWEgcm9sbC4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9y
YWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2NoYW5nZS12
ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNiBAQAogVGhpcyB0ZXN0cyB0aGF0IGEgZGF0YWJhc2UgY2FuIGJlIGFjY2Vzc2Vk
IGFmdGVyIGNoYW5naW5nIGl0cyB2ZXJzaW9uLiBZb3Ugc2hvdWxkIHNlZSBhbiBlcnJvciBhYm91
dCBGb29CYXIgdGFibGUgYmVsb3csIG5vdCBhYm91dCBtaXNtYXRjaGluZyB2ZXJzaW9ucy4KIGNo
YW5nZVZlcnNpb246IHRyYW5zYWN0aW9uIGNhbGxiYWNrCiBjaGFuZ2VWZXJzaW9uOiBzdWNjZXNz
IGNhbGxiYWNrCi10cmFuc2FjdGlvbjogc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrOiBubyBzdWNo
IHRhYmxlOiBGb29CYXIKK3RyYW5zYWN0aW9uOiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2s6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBubyBzdWNoIHRhYmxlOiBGb29CYXIpCiBURVNU
IENPTVBMRVRFLgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVu
LWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRp
b24tY2FsbGJhY2stc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFj
ay1zeW5jLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQgQEAKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwgdmVyc2lvbiBtaXNt
YXRjaCwgJzEuMCcgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9uIG9mICcnCiBUaGlz
IHRlc3QgdGVzdHMgb3BlbkRhdGFiYXNlU3luYygpJ3MgY3JlYXRpb24gY2FsbGJhY2suCiBQQVNT
OiBDcmVhdGlvbiBjYWxsYmFjayB3YXMgY2FsbGVkLgogUEFTUzogVmVyc2lvbiBzZXQgdG8gZW1w
dHkgc3RyaW5nIGFzIGV4cGVjdGVkLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0
b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zeW5jLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFi
YXNlLXNldC1lbXB0eS12ZXJzaW9uLXN5bmMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikK
KysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVt
cHR5LXZlcnNpb24tc3luYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZl
cnNpb24gbWlzbWF0Y2gsICd0ZXN0JyBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVudFZlcnNpb24g
b2YgJycKIFRoaXMgdGVzdHMgdGhhdCBjYWxsaW5nIG9wZW5EYXRhYmFzZSB3aXRoIGFuIGVtcHR5
IHZlcnNpb24gc3RyaW5nIHNldHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGF0IGRhdGFiYXNl
IHRvIHRoZSBlbXB0eSBzdHJpbmcgYW5kIHN1YnNlcXVlbnQgYXR0ZW1wdHMgdG8gb3BlbiB0aGUg
ZGF0YWJhc2Ugd2l0aCBhIGRpZmZlcmVudCBleHBlY3RlZCB2ZXJzaW9uIHRocm93IGFuIGV4Y2Vw
dGlvbi4KIFBBU1MKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvdGVz
dC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5
OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXpl
ci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsMjAgKzYsMjAgQEAgU1FMSVRFX0NS
RUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IHN1YwogU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcg
c3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVf
Q1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NS
RUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBT
UUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfREVMRVRFIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVf
VVBEQVRFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQUxURVJf
VEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQg
c3VjY2VlZGVkLgotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRo
b3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1T
UUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfVFJB
TlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9ERVRBQ0gg
c3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0
aG9yaXplZCkKIFNRTElURV9SRUlOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQU5B
TFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0FOQUxZWkUgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKIFNRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJP
UF9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9URU1QX1RSSUdH
RVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KQEAgLTI4LDQxICsyOCw0MSBAQCBTUUxJVEVfRFJPUF9U
UklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBz
dWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogV3JpdGUg
dHJhbnNhY3Rpb24gc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1lbnQgZmFp
bGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVf
Q1JFQVRFX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JFQVRFX0lOREVYIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVEVNUF9UUklH
R0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBf
VklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9UUklH
R0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1ZJRVcg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX0lOREVYIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90
IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9URU1Q
X1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgx
IG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxl
ZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElU
RV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQ1JFQVRFX0lOREVYIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRl
ZC4KIFNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJ
VEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9U
UklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFQUQgc3Rh
dGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNR
TElURV9ERUxFVEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9JTlNF
UlQgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9VUERBVEUgc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9QUkFHTUEgc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vIHN1
Y2ggdGFibGU6IFRlc3RUYWJsZQotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRo
b3JpemVkCi1TUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1T
UUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FO
QUxZWkUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX0lOREVY
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1RBQkxF
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1RSSUdH
RVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RFTVBfVklF
VyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVFJJR0dFUiBz
dGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IGZh
aWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9ERUxFVEUgc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9JTlNF
UlQgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9VUERBVEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9QUkFHTUEgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFy
ZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBubyBzdWNoIHRhYmxl
OiBUZXN0VGFibGUpCitTUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BVFRBQ0gg
c3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0
aG9yaXplZCkKK1NRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9SRUlOREVYIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQp
CitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RFTVBfVFJJR0dFUiBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9UUklH
R0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9UQUJM
RSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBh
dXRob3JpemVkKQogUmVhZCB0cmFuc2FjdGlvbnMgc3VjY2VlZGVkLgogCkluZGV4OiBMYXlvdXRU
ZXN0cy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1
c2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
Y2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSw2ICsxLDYgQEAKIFRoaXMgdGVzdHMgdGhhdCBhIGRhdGFiYXNlIGNhbiBiZSBhY2Nlc3Nl
ZCBhZnRlciBjaGFuZ2luZyBpdHMgdmVyc2lvbi4gWW91IHNob3VsZCBzZWUgYW4gZXJyb3IgYWJv
dXQgRm9vQmFyIHRhYmxlIGJlbG93LCBub3QgYWJvdXQgbWlzbWF0Y2hpbmcgdmVyc2lvbnMuCiBj
aGFuZ2VWZXJzaW9uOiB0cmFuc2FjdGlvbiBjYWxsYmFjawogY2hhbmdlVmVyc2lvbjogc3VjY2Vz
cyBjYWxsYmFjawotdHJhbnNhY3Rpb246IHN0YXRlbWVudCBlcnJvciBjYWxsYmFjazogbm8gc3Vj
aCB0YWJsZTogRm9vQmFyCit0cmFuc2FjdGlvbjogc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrOiBj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm8gc3VjaCB0YWJsZTogRm9vQmFyKQogVEVT
VCBDT01QTEVURS4KIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNy
ZWF0aW9uLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlv
bi1jYWxsYmFjay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24g
bWlzbWF0Y2gsICcxLjAnIGRvZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50VmVyc2lvbiBvZiAnJwog
VGhpcyB0ZXN0IHRlc3RzIG9wZW5EYXRhYmFzZSgpJ3MgY3JlYXRpb24gY2FsbGJhY2suCiAKSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFi
YXNlLXNldC1lbXB0eS12ZXJzaW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBM
YXlvdXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDA6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAndGVzdCcg
ZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9uIG9mICcnCiBUaGlzIHRlc3RzIHRoYXQg
Y2FsbGluZyBvcGVuRGF0YWJhc2Ugd2l0aCBhbiBlbXB0eSB2ZXJzaW9uIHN0cmluZyBzZXRzIHRo
ZSBjdXJyZW50IHZlcnNpb24gb2YgdGhhdCBkYXRhYmFzZSB0byB0aGUgZW1wdHkgc3RyaW5nIGFu
ZCBzdWJzZXF1ZW50IGF0dGVtcHRzIHRvIG9wZW4gdGhlIGRhdGFiYXNlIHdpdGggYSBkaWZmZXJl
bnQgZXhwZWN0ZWQgdmVyc2lvbiB0aHJvdyBhbiBleGNlcHRpb24uCiBTVUNDRVNTLCBhbiBleGNl
cHRpb24gd2FzIHRocm93bi4gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5v
d3JpdGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvcHJp
dmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRl
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMiwxNCArMiwxNCBAQCBUaGlzIHRlc3Qg
bWFrZXMgc3VyZSB0aGF0IGF0dGVtcHRzIHRvIGNoCiBTZXR1cCBzdGF0ZW1lbnQgMSBjb21wbGV0
ZWQgc3VjY2Vzc2Z1bGx5CiBTZXR1cCBzdGF0ZW1lbnQgMiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5
CiBQcml2YXRlIGJyb3dzaW5nIHN0YXRlbWVudCAxIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1u
b3QgYXV0aG9yaXplZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3Jp
emVkKQogUHJpdmF0ZSBicm93c2luZyBzdGF0ZW1lbnQgMiBjb21wbGV0ZWQgd2l0aCBhbiBlcnJv
cgotbm90IGF1dGhvcml6ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1
dGhvcml6ZWQpCiBQcml2YXRlIGJyb3dzaW5nIHN0YXRlbWVudCAzIGNvbXBsZXRlZCB3aXRoIGFu
IGVycm9yCi1ub3QgYXV0aG9yaXplZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBu
b3QgYXV0aG9yaXplZCkKIFByaXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDQgY29tcGxldGVkIHdp
dGggYW4gZXJyb3IKLW5vdCBhdXRob3JpemVkCitjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQogUHJpdmF0ZSBicm93c2luZyBzdGF0ZW1lbnQgNSBjb21wbGV0
ZWQgd2l0aCBhbiBlcnJvcgotYWNjZXNzIHRvIFByaXZhdGVUZXN0MS5yYW5kb21EYXRhIGlzIHBy
b2hpYml0ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgYWNjZXNzIHRvIFByaXZh
dGVUZXN0MS5yYW5kb21EYXRhIGlzIHByb2hpYml0ZWQpCiBUZXN0IGVuZGVkCiAKSW5kZXg6IExh
eW91dFRlc3RzL3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDIwICs2LDIwIEBAIFNRTElURV9DUkVBVEVf
VEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWMKIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRl
bWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRl
ZC4KIFNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFU
RV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVf
VlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRF
X1NFTEVDVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1VQREFU
RSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAorU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0FMVEVSX1RBQkxF
IHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IHN1Y2Nl
ZWRlZC4KLVNRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX1RSQU5TQUNU
SU9OIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBw
cmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfREVUQUNIIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCiBTUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0FOQUxZWkUg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9BTkFMWVpFIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQp
CiBTUUxJVEVfRFJPUF9JTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVN
UF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0
YXRlbWVudCBzdWNjZWVkZWQuCkBAIC0yOCw0MSArMjgsNDEgQEAgU1FMSVRFX0RST1BfVFJJR0dF
UiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgc3VjY2Vl
ZGVkLgogU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFdyaXRlIHRyYW5z
YWN0aW9uIHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDog
bm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0NSRUFU
RV9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRl
bWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBz
dGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVFJJR0dFUiBz
dGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRl
bWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQor
U1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVw
YXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9UUklH
R0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JF
QVRFX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVf
Q1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBT
UUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NS
RUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dF
UiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9y
aXplZAorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBTUUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVf
REVMRVRFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfSU5TRVJUIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKLVNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBubyBzdWNoIHRh
YmxlOiBUZXN0VGFibGUKLVNRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAotU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X1JFSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTkFMWVpF
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9JTkRFWCBzdGF0
ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0
ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1ZJRVcgc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1ZJRVcgc3RhdGVtZW50IGZh
aWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCitTUUxJVEVfREVMRVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfSU5TRVJUIHN0
YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhv
cml6ZWQpCitTUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitT
UUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm8gc3VjaCB0YWJsZTogVGVz
dFRhYmxlKQorU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBw
cmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQVRUQUNIIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCitTUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FM
SVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVf
RFJPUF9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1RSSUdHRVIgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9EUk9QX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJl
cGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVFJJR0dFUiBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQorU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJl
cGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEFCTEUgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKIFJlYWQgdHJhbnNhY3Rpb25zIHN1Y2NlZWRlZC4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114589</attachid>
            <date>2011-11-10 15:47:12 -0800</date>
            <delta_ts>2011-11-11 15:02:42 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberror.txt</filename>
            <type>text/plain</type>
            <size>63179</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIFByb2R1Y2UgY29uc29sZSBsb2dnaW5nCisgICAgICAg
IGZvciBvcGVuRGF0YWJhc2UoKSBlcnJvcnMuIEFkZCBhIGxhc3RFcnJvck1lc3NhZ2UgYWNjZXNz
b3IKKyAgICAgICAgdG8gdGhlIERhdGFiYXNlU3luYyBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGFyZSBpbiB0aGUgd29ya3Ms
IGp1c3Qgbm90IGluIHRoaXMgc25hcHNob3QgeWV0LgorCisgICAgICAgICogcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpT
UUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6b3Blbik6
CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Zm9ybWF0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFi
c3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6
OkFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yTWVzc2FnZSk6CisgICAgICAgICogc3RvcmFnZS9B
YnN0cmFjdERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBy
ZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVBvc3RmbGlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmg6Cisg
ICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VTeW5jOjpvcGVuRGF0YWJhc2VTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
U3luYzo6Y2hhbmdlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6OnJ1
blRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5oOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpsYXN0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlU3luYzo6c2V0TGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgICogc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2VUYXNrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFz
ZU9wZW5UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNr
Ojpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVGFzay5oOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OmNyZWF0ZSk6CisgICAg
ICAgICogc3RvcmFnZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNy
ZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMU3RhdGVtZW50OjpleGVjdXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRl
bWVudFN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0
ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAg
ICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
UUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJh
bnNhY3Rpb25TeW5jOjpiZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5
bmM6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQpOgorCiAyMDExLTExLTEwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBEbyBub3Qgc2hhcmUgQ1NTIHN0eWxlIGZvciBNZWRpYUVsZW1lbnQgYmFj
a2VkIGJ5IGEgcGx1Z2luCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYs
OCBAQCBjb25zdCBpbnQgU1FMUmVzdWx0U2NoZW1hID0gU1FMSVRFX1NDSEVNCiBjb25zdCBpbnQg
U1FMUmVzdWx0RnVsbCA9IFNRTElURV9GVUxMOwogY29uc3QgaW50IFNRTFJlc3VsdEludGVycnVw
dCA9IFNRTElURV9JTlRFUlJVUFQ7CiAKK3N0YXRpYyBjb25zdCBjaGFyIG5vdE9wZW5FcnJvck1l
c3NhZ2VbXSA9ICJkYXRhYmFzZSBpcyBub3Qgb3BlbiI7CisKIFNRTGl0ZURhdGFiYXNlOjpTUUxp
dGVEYXRhYmFzZSgpCiAgICAgOiBtX2RiKDApCiAgICAgLCBtX3BhZ2VTaXplKC0xKQpAQCAtNTMs
NiArNTUsOCBAQCBTUUxpdGVEYXRhYmFzZTo6U1FMaXRlRGF0YWJhc2UoKQogICAgICwgbV9zaGFy
YWJsZShmYWxzZSkKICAgICAsIG1fb3BlbmluZ1RocmVhZCgwKQogICAgICwgbV9pbnRlcnJ1cHRl
ZChmYWxzZSkKKyAgICAsIG1fb3BlbkVycm9yKFNRTElURV9FUlJPUikKKyAgICAsIG1fb3BlbkVy
cm9yTWVzc2FnZShub3RPcGVuRXJyb3JNZXNzYWdlKQogewogfQogCkBAIC02NSwxNSArNjksMjAg
QEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIAogewogICAgIGNsb3Nl
KCk7CiAKLSAgICBpZiAoU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAm
bV9kYiwgZm9yV2ViU1FMRGF0YWJhc2UpICE9IFNRTElURV9PSykgeworICAgIG1fb3BlbkVycm9y
ID0gU1FMaXRlRmlsZVN5c3RlbTo6b3BlbkRhdGFiYXNlKGZpbGVuYW1lLCAmbV9kYiwgZm9yV2Vi
U1FMRGF0YWJhc2UpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAg
ICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CiAgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBsb2FkIGZyb20gJXNcbkNhdXNlIC0g
JXMiLCBmaWxlbmFtZS5hc2NpaSgpLmRhdGEoKSwKLSAgICAgICAgICAgIHNxbGl0ZTNfZXJybXNn
KG1fZGIpKTsKKyAgICAgICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCkpOwogICAgICAg
ICBzcWxpdGUzX2Nsb3NlKG1fZGIpOwogICAgICAgICBtX2RiID0gMDsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9k
YiwgMSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNl
IGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBzcWxpdGUzX2Vycm1z
ZyhtX2RiKSk7CisKKyAgICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2Nv
ZGVzKG1fZGIsIDEpOworICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAg
ICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIExP
R19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJy
b3JzIC0gJXMiLCBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19j
bG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTgxLDYgKzkwLDggQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIAog
CiAgICAgaWYgKGlzT3BlbigpKQogICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBjdXJyZW50VGhy
ZWFkKCk7CisgICAgZWxzZQorICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlMyog
aXMgbnVsbCI7CiAKICAgICBpZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSB0ZW1w
X3N0b3JlID0gTUVNT1JZOyIpLmV4ZWN1dGVDb21tYW5kKCkpCiAgICAgICAgIExPR19FUlJPUigi
U1FMaXRlIGRhdGFiYXNlIGNvdWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0byBtZW1vcnkiKTsKQEAg
LTEwMiw2ICsxMTMsOCBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgfQogCiAg
ICAgbV9vcGVuaW5nVGhyZWFkID0gMDsKKyAgICBtX29wZW5FcnJvciA9IFNRTElURV9FUlJPUjsK
KyAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNzYWdlOwogfQogCiB2b2lk
IFNRTGl0ZURhdGFiYXNlOjppbnRlcnJ1cHQoKQpAQCAtMzE0LDEyICszMjcsMTIgQEAgaW50IFNR
TGl0ZURhdGFiYXNlOjpsYXN0Q2hhbmdlcygpCiAKIGludCBTUUxpdGVEYXRhYmFzZTo6bGFzdEVy
cm9yKCkKIHsKLSAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2RiKSA6IFNRTElU
RV9FUlJPUjsKKyAgICByZXR1cm4gbV9kYiA/IHNxbGl0ZTNfZXJyY29kZShtX2RiKSA6IG1fb3Bl
bkVycm9yOwogfQogCiBjb25zdCBjaGFyKiBTUUxpdGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKCkK
IHsgCi0gICAgcmV0dXJuIHNxbGl0ZTNfZXJybXNnKG1fZGIpOworICAgIHJldHVybiBtX2RiID8g
c3FsaXRlM19lcnJtc2cobV9kYikgOiBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgpOwogfQogCiAj
aWZuZGVmIE5ERUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURh
dGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNk
ZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTE1Myw3ICsxNTQsMTAgQEAgcHJpdmF0ZToKIAogICAg
IE11dGV4IG1fZGF0YWJhc2VDbG9zaW5nTXV0ZXg7CiAgICAgYm9vbCBtX2ludGVycnVwdGVkOwot
fTsgLy8gY2xhc3MgU1FMaXRlRGF0YWJhc2UKKworICAgIGludCBtX29wZW5FcnJvcjsKKyAgICBD
U3RyaW5nIG1fb3BlbkVycm9yTWVzc2FnZTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCShy
ZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFz
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRlVHJhbnNh
Y3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtNTIsNiArNTMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
c3RhdGljIGNvbnN0IGNoYXIgdmVyc2lvbktleVtdID0gIldlYktpdERhdGFiYXNlVmVyc2lvbktl
eSI7CiBzdGF0aWMgY29uc3QgY2hhciBpbmZvVGFibGVOYW1lW10gPSAiX19XZWJLaXREYXRhYmFz
ZUluZm9UYWJsZV9fIjsKIAorc3RhdGljIFN0cmluZyBmb3JtYXRFcnJvck1lc3NhZ2UoY29uc3Qg
Y2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUVycm9yQ29kZSwgY29uc3QgY2hhciogc3FsaXRlRXJy
b3JNZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkICVzKSIsIG1l
c3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3FsaXRlRXJyb3JNZXNzYWdlKTsKK30KKwogc3RhdGlj
IGJvb2wgcmV0cmlldmVUZXh0UmVzdWx0RnJvbURhdGFiYXNlKFNRTGl0ZURhdGFiYXNlJiBkYiwg
Y29uc3QgU3RyaW5nJiBxdWVyeSwgU3RyaW5nJiByZXN1bHRTdHJpbmcpCiB7CiAgICAgU1FMaXRl
U3RhdGVtZW50IHN0YXRlbWVudChkYiwgcXVlcnkpOwpAQCAtMjQ0LDE3ICsyNTAsMTkgQEAgU3Ry
aW5nIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBnZXRDYWNo
ZWRWZXJzaW9uKCk7CiB9CiAKLWJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRW
ZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCitib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hv
dWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKIHsKKyAgICBBU1NFUlQoZXJyb3JNZXNzYWdlLmlzRW1wdHkoKSk7CisKICAg
ICBjb25zdCBpbnQgbWF4U3FsaXRlQnVzeVdhaXRUaW1lID0gMzAwMDA7CiAKICAgICBpZiAoIW1f
c3FsaXRlRGF0YWJhc2Uub3BlbihtX2ZpbGVuYW1lLCB0cnVlKSkgewotICAgICAgICBMT0dfRVJS
T1IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGF0IHBhdGggJXMiLCBtX2ZpbGVuYW1lLmFzY2lp
KCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1f
c3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICghbV9zcWxpdGVE
YXRhYmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKLSAgICAgICAgTE9HX0VSUk9S
KCJVbmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSBmb3IgZGF0YWJhc2Ug
JXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFi
bGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSAoJWQgJXMpIiwgbV9zcWxpdGVE
YXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAK
ICAgICBtX3NxbGl0ZURhdGFiYXNlLnNldEJ1c3lUaW1lb3V0KG1heFNxbGl0ZUJ1c3lXYWl0VGlt
ZSk7CiAKQEAgLTI5MCw3ICsyOTgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1P
cGVuQW5kVmVyCiAgICAgICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbihtX3Nx
bGl0ZURhdGFiYXNlKTsKICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmJlZ2luKCk7CiAgICAgICAg
ICAgICBpZiAoIXRyYW5zYWN0aW9uLmluUHJvZ3Jlc3MoKSkgewotICAgICAgICAgICAgICAgIExP
R19FUlJPUigiVW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIHdoaWxlIG9wZW5pbmcgJXMiLCBk
YXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCBm
YWlsZWQgdG8gc3RhcnQgdHJhbnNhY3Rpb24iLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigp
LCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xv
c2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDEsMTQgKzMwOSwxNCBA
QCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAgICAgICAgICAgICAg
ICAgbV9uZXcgPSB0cnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNl
LmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgIiArIHRhYmxlTmFtZSArICIgKGtleSBURVhU
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0UsdmFs
dWUgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiKSkgewotICAgICAgICAgICAgICAg
ICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgdGFibGUgJXMgaW4gZGF0YWJhc2UgJXMi
LCBpbmZvVGFibGVOYW1lLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIGNyZWF0ZSAnaW5mbycgdGFibGUiLCBtX3Nx
bGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAg
ICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAg
bV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICghZ2V0VmVyc2lv
bkZyb21EYXRhYmFzZShjdXJyZW50VmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAg
TE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNlICVz
IiwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAg
ZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSwgZmFpbGVkIHRvIHJlYWQgY3VycmVudCB2ZXJzaW9uIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0
RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5y
b2xsYmFjaygpOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKQEAg
LTMyMCw3ICszMjgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVy
CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtX25ldyB8fCBzaG91bGRTZXRWZXJzaW9uSW5OZXdE
YXRhYmFzZSkgewogICAgICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiU2V0dGluZyB2ZXJz
aW9uICVzIGluIGRhdGFiYXNlICVzIHRoYXQgd2FzIGp1c3QgY3JlYXRlZCIsIG1fZXhwZWN0ZWRW
ZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgp
KTsKICAgICAgICAgICAgICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG1fZXhwZWN0ZWRW
ZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gc2V0IHZlcnNpb24gJXMgaW4gZGF0YWJhc2UgJXMiLCBtX2V4cGVjdGVkVmVyc2lvbi5hc2Np
aSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRv
IG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byB3cml0ZSBjdXJyZW50IHZlcnNpb24iLCBtX3NxbGl0
ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAgbV9z
cWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzQxLDggKzM0OSw3IEBAIGJvb2wgQWJzdHJhY3RE
YXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lv
biBpc24ndCB0aGUgZW1wdHkgc3RyaW5nLCBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBkYXRhYmFz
ZSB2ZXJzaW9uIHdlIGhhdmUgbWF0Y2hlcyB0aGF0IHZlcnNpb24uIE90aGVyd2lzZSwgc2V0IGFu
IGV4Y2VwdGlvbi4KICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lvbiBpcyB0aGUgZW1wdHkg
c3RyaW5nLCB0aGVuIHdlIGFsd2F5cyByZXR1cm4gd2l0aCB3aGF0ZXZlciB2ZXJzaW9uIG9mIHRo
ZSBkYXRhYmFzZSB3ZSBoYXZlLgogICAgIGlmICgoIW1fbmV3IHx8IHNob3VsZFNldFZlcnNpb25J
bk5ld0RhdGFiYXNlKSAmJiBtX2V4cGVjdGVkVmVyc2lvbi5sZW5ndGgoKSAmJiBtX2V4cGVjdGVk
VmVyc2lvbiAhPSBjdXJyZW50VmVyc2lvbikgewotICAgICAgICBMT0coU3RvcmFnZUFQSSwgInBh
Z2UgZXhwZWN0cyB2ZXJzaW9uICVzIGZyb20gZGF0YWJhc2UgJXMsIHdoaWNoIGFjdHVhbGx5IGhh
cyB2ZXJzaW9uIG5hbWUgJXMgLSBvcGVuRGF0YWJhc2UoKSBjYWxsIHdpbGwgZmFpbCIsIG1fZXhw
ZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLAotICAgICAgICAgICAgZGF0YWJhc2VEZWJ1Z05h
bWUoKS5hc2NpaSgpLmRhdGEoKSwgY3VycmVudFZlcnNpb24uYXNjaWkoKS5kYXRhKCkpOworICAg
ICAgICBlcnJvck1lc3NhZ2UgPSAidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlz
bWF0Y2gsICciICsgbV9leHBlY3RlZFZlcnNpb24gKyAiJyBkb2VzIG5vdCBtYXRjaCB0aGUgY3Vy
cmVudFZlcnNpb24gb2YgJyIgKyBjdXJyZW50VmVyc2lvbiArICInIjsKICAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC01MzksNiArNTQ2LDExIEBAIGJvb2wgQWJzdHJhY3REYXRh
YmFzZTo6aXNJbnRlcnJ1cHRlZCgpCiAgICAgcmV0dXJuIG1fc3FsaXRlRGF0YWJhc2UuaXNJbnRl
cnJ1cHRlZCgpOwogfQogCit2b2lkIEFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yTWVzc2FnZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5h
ZGRNZXNzYWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCAwLCBTdHJpbmcoKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
OTUsNyArOTUsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNsb3NlRGF0YWJhc2UoKTsKIAot
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdmlydHVhbCBib29sIHBl
cmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4
Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBib29sIGdldFZlcnNp
b25Gcm9tRGF0YWJhc2UoU3RyaW5nJiB2ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9
IHRydWUpOwogICAgIGJvb2wgc2V0VmVyc2lvbkluRGF0YWJhc2UoY29uc3QgU3RyaW5nJiB2ZXJz
aW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9IHRydWUpOwpAQCAtMTA1LDYgKzEwNSw4IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIHNldENhY2hlZFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAg
ICAgYm9vbCBnZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oU3RyaW5nJiB2ZXJzaW9uKTsK
IAorICAgIHZvaWQgbG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogZGF0YWJhc2VJbmZvVGFibGVOYW1lKCk7CiAKICAgICBSZWZQ
dHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwpJbmRl
eDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJ
KHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9u
V3JhcHBlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDEzICs1MCwxMyBAQCBib29sIENoYW5n
ZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247
CiAKICAgICBpZiAoIXRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5nZXRWZXJzaW9uRnJvbURhdGFi
YXNlKGFjdHVhbFZlcnNpb24pKSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHJldHJp
ZXZlIGFjdHVhbCBjdXJyZW50IHZlcnNpb24gZnJvbSBkYXRhYmFzZSIpOwotICAgICAgICBtX3Nx
bEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUg
dG8gdmVyaWZ5IGN1cnJlbnQgdmVyc2lvbiBvZiBkYXRhYmFzZSIpOworICAgICAgICBtX3NxbEVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8g
cmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVy
cm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9u
LT5kYXRhYmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVy
c2lvbikgewotICAgICAgICBMT0dfRVJST1IoIk9sZCB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggYWN0
dWFsIHZlcnNpb24iKTsKICAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQg
YG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpAQCAtNjksOCArNjksOSBAQCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpw
ZXJmb3JtUG9zdGZsCiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uICYmIHRyYW5zYWN0aW9uLT5kYXRh
YmFzZSgpKTsKIAogICAgIGlmICghdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNldFZlcnNpb25J
bkRhdGFiYXNlKG1fbmV3VmVyc2lvbikpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8g
c2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBzZXQgbmV3IHZl
cnNpb24gaW4gZGF0YWJhc2UiKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBk
YXRhYmFzZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLT5kYXRhYmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3Fs
aXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCShyZXZpc2lvbiA5OTg5
NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05OCw4ICs5OCw5IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlOjpvcGVuRGF0
YWIKIAogICAgIFJlZlB0cjxEYXRhYmFzZT4gZGF0YWJhc2UgPSBhZG9wdFJlZihuZXcgRGF0YWJh
c2UoY29udGV4dCwgbmFtZSwgZXhwZWN0ZWRWZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVk
U2l6ZSkpOwogCi0gICAgaWYgKCFkYXRhYmFzZS0+b3BlbkFuZFZlcmlmeVZlcnNpb24oIWNyZWF0
aW9uQ2FsbGJhY2ssIGUpKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIG9w
ZW4gYW5kIHZlcmlmeSB2ZXJzaW9uIChleHBlY3RlZCAlcykgb2YgZGF0YWJhc2UgJXMiLCBleHBl
Y3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlLT5kYXRhYmFzZURlYnVnTmFtZSgp
LmFzY2lpKCkuZGF0YSgpKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghZGF0
YWJhc2UtPm9wZW5BbmRWZXJpZnlWZXJzaW9uKCFjcmVhdGlvbkNhbGxiYWNrLCBlLCBlcnJvck1l
c3NhZ2UpKSB7CisgICAgICAgIGRhdGFiYXNlLT5sb2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdl
KTsKICAgICAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkucmVtb3ZlT3BlbkRhdGFiYXNl
KGRhdGFiYXNlLmdldCgpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTczLDE0ICsx
NzQsMTQgQEAgU3RyaW5nIERhdGFiYXNlOjp2ZXJzaW9uKCkgY29uc3QKICAgICByZXR1cm4gQWJz
dHJhY3REYXRhYmFzZTo6dmVyc2lvbigpOwogfQogCi1ib29sIERhdGFiYXNlOjpvcGVuQW5kVmVy
aWZ5VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBl
KQorYm9vbCBEYXRhYmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5O
ZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYgZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAg
ICAgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyIHN5bmNocm9uaXplcjsKICAgICBpZiAoIW1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQoKSB8fCBtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmRhdGFiYXNlVGhyZWFkKCktPnRlcm1pbmF0aW9uUmVxdWVzdGVkKCZzeW5jaHJv
bml6ZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHN1Y2Nlc3MgPSBmYWxz
ZTsKLSAgICBPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gdGFzayA9IERhdGFiYXNlT3BlblRhc2s6
OmNyZWF0ZSh0aGlzLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgJnN5bmNocm9uaXplciwgZSwg
c3VjY2Vzcyk7CisgICAgT3duUHRyPERhdGFiYXNlT3BlblRhc2s+IHRhc2sgPSBEYXRhYmFzZU9w
ZW5UYXNrOjpjcmVhdGUodGhpcywgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsICZzeW5jaHJvbml6
ZXIsIGUsIGVycm9yTWVzc2FnZSwgc3VjY2Vzcyk7CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0LT5kYXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZUltbWVkaWF0ZVRhc2sodGFzay5yZWxlYXNl
KCkpOwogICAgIHN5bmNocm9uaXplci53YWl0Rm9yVGFza0NvbXBsZXRpb24oKTsKIApAQCAtMjM4
LDkgKzIzOSw5IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZTo6bWF4aW11bVNpemUKICAg
ICByZXR1cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZ2V0TWF4U2l6ZUZvckRhdGFiYXNl
KHRoaXMpOwogfQogCi1ib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNl
dFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlKQorYm9vbCBEYXRhYmFzZTo6
cGVyZm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0
aW9uQ29kZSYgZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAgaWYgKEFic3RyYWN0RGF0
YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBlKSkg
eworICAgIGlmIChBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShzZXRWZXJz
aW9uSW5OZXdEYXRhYmFzZSwgZSwgZXJyb3JNZXNzYWdlKSkgewogICAgICAgICBpZiAobV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpKQogICAgICAgICAgICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpLT5yZWNvcmREYXRhYmFzZU9wZW4o
dGhpcyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDk5ODk2
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC05NSw4ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5UcmFuc2FjdGlvbihQYXNzUmVm
UHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFjaz4sCiAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFZvaWRDYWxs
YmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBib29sIHJlYWRPbmx5KTsKIAotICAgIGJvb2wgb3BlbkFu
ZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBvcGVuQW5kVmVyaWZ5
VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3Ry
aW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlm
eShib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpOwogCiAgICAgdm9pZCBpblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQo
KTsKICAgICB2b2lkIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlU3luYy5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw5
IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2VTeW5jPiBEYXRhYmFzZVN5bmM6Om8KIAogICAgIFJlZlB0
cjxEYXRhYmFzZVN5bmM+IGRhdGFiYXNlID0gYWRvcHRSZWYobmV3IERhdGFiYXNlU3luYyhjb250
ZXh0LCBuYW1lLCBleHBlY3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7
CiAKLSAgICBpZiAoIWRhdGFiYXNlLT5wZXJmb3JtT3BlbkFuZFZlcmlmeSghY3JlYXRpb25DYWxs
YmFjaywgZWMpKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIG9wZW4gYW5k
IHZlcmlmeSB2ZXJzaW9uIChleHBlY3RlZCAlcykgb2YgZGF0YWJhc2UgJXMiLCBleHBlY3RlZFZl
cnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlLT5kYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lp
KCkuZGF0YSgpKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghZGF0YWJhc2Ut
PnBlcmZvcm1PcGVuQW5kVmVyaWZ5KCFjcmVhdGlvbkNhbGxiYWNrLCBlYywgZXJyb3JNZXNzYWdl
KSkgeworICAgICAgICBkYXRhYmFzZS0+bG9nRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAg
ICAgICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRh
YmFzZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTk2LDM5ICs5Nyw0OSBA
QCB2b2lkIERhdGFiYXNlU3luYzo6Y2hhbmdlVmVyc2lvbihjb25zdCBTCiAgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNx
bGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFz
dEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNoYW5nZVZlcnNpb24gZnJvbSB3aXRoaW4gYSB0cmFu
c2FjdGlvbiIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJh
bnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjaGFuZ2VWZXJzaW9u
Q2FsbGJhY2ssIGZhbHNlKTsKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpKQor
ICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkpIHsKKyAgICAgICAgQVNTRVJUKCFs
YXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAog
ICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghZ2V0VmVyc2lvbkZyb21EYXRhYmFz
ZShhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUg
dG8gcmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3Io
KSwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhj
ZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChh
Y3R1YWxWZXJzaW9uICE9IG9sZFZlcnNpb24pIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2Fn
ZSgiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3Vt
ZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24t
PmV4ZWN1dGUoKSkpCisgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpKSB7Cisg
ICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG5ld1ZlcnNpb24p
KSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBzZXQgdGhlIG5ldyB2
ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+Y29t
bWl0KCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7
CiAgICAgICAgIHNldENhY2hlZFZlcnNpb24ob2xkVmVyc2lvbik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBzZXRFeHBlY3RlZFZlcnNpb24obmV3VmVyc2lvbik7CisgICAgc2V0TGFz
dEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjp0cmFuc2FjdGlvbihQ
YXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYgZWMpCkBAIC0xNDYsMTMgKzE1NywxOCBAQCB2b2lkIERhdGFiYXNlU3luYzo6cnVuVHJh
bnNhY3Rpb24oUGFzc1JlCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXND
b250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25J
blByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHN0
YXJ0IGEgdHJhbnNhY3Rpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBl
YyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2Fj
dGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjYWxsYmFjaywgcmVhZE9ubHkpOwotICAgIGlmICgoZWMg
PSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkg
fHwgKGVjID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rp
b24tPmJlZ2luKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRy
YW5zYWN0aW9uLT5jb21taXQoKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdl
KCkuaXNFbXB0eSgpKTsKICAgICAgICAgdHJhbnNhY3Rpb24tPnJvbGxiYWNrKCk7CisgICAgfQor
CisgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjpt
YXJrQXNEZWxldGVkQW5kQ2xvc2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRh
YmFzZVN5bmMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNl
U3luYy5oCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJh
c2VTeW5jLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDEwICs2NCwyMyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIG1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBj
bG9zZUltbWVkaWF0ZWx5KCk7CiAKKyAgICBjb25zdCBTdHJpbmcmIGxhc3RFcnJvck1lc3NhZ2Uo
KSBjb25zdCB7IHJldHVybiBtX2xhc3RFcnJvck1lc3NhZ2U7IH0KKyAgICB2b2lkIHNldExhc3RF
cnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IG1fbGFzdEVycm9yTWVzc2FnZSA9
IG1lc3NhZ2U7IH0KKyAgICB2b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVz
c2FnZSwgaW50IHNxbGl0ZUNvZGUpCisgICAgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdl
KFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSkpOworICAgIH0K
KyAgICB2b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNx
bGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2UpCisgICAgeworICAgICAgICBzZXRM
YXN0RXJyb3JNZXNzYWdlKFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQsICVzKSIsIG1lc3NhZ2UsIHNx
bGl0ZUNvZGUsIHNxbGl0ZU1lc3NhZ2UpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgRGF0YWJh
c2VTeW5jKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgZXhwZWN0ZWRWZXJzaW9uLAogICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpOwogICAgIHZvaWQgcnVu
VHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjaz4sIGJvb2wg
cmVhZE9ubHksIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIFN0cmluZyBtX2xhc3RFcnJvck1lc3Nh
Z2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlU3luYy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuaWRsCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBA
QCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIE5vU3RhdGljVGFibGVzCiAgICAgXSBEYXRhYmFz
ZVN5bmMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdEVycm9yTWVzc2FnZTsKICAg
ICAgICAgdm9pZCBjaGFuZ2VWZXJzaW9uKGluIERPTVN0cmluZyBvbGRWZXJzaW9uLCBpbiBET01T
dHJpbmcgbmV3VmVyc2lvbiwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU1FMVHJhbnNhY3Rpb25T
eW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHRyYW5zYWN0aW9uKGluIFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2Fs
bGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlv
bihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VU
YXNrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFz
ay5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFz
ZVRhc2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCwxMCArOTgsMTEgQEAgdm9pZCBEYXRhYmFz
ZVRhc2s6OnBlcmZvcm1UYXNrKCkKIC8vICoqKiBEYXRhYmFzZU9wZW5UYXNrICoqKgogLy8gT3Bl
bnMgdGhlIGRhdGFiYXNlIGZpbGUgYW5kIHZlcmlmaWVzIHRoZSB2ZXJzaW9uIG1hdGNoZXMgdGhl
IGV4cGVjdGVkIHZlcnNpb24uCiAKLURhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFz
ZU9wZW5UYXNrKERhdGFiYXNlKiBkYXRhYmFzZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFz
ZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUm
IGNvZGUsIGJvb2wmIHN1Y2Nlc3MpCitEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJh
c2VPcGVuVGFzayhEYXRhYmFzZSogZGF0YWJhc2UsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2Rl
JiBjb2RlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IERhdGFi
YXNlVGFzayhkYXRhYmFzZSwgc3luY2hyb25pemVyKQogICAgICwgbV9zZXRWZXJzaW9uSW5OZXdE
YXRhYmFzZShzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSkKICAgICAsIG1fY29kZShjb2RlKQorICAg
ICwgbV9lcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKQogICAgICwgbV9zdWNjZXNzKHN1Y2Nlc3Mp
CiB7CiAgICAgQVNTRVJUKHN5bmNocm9uaXplcik7IC8vIEEgdGFzayB3aXRoIG91dHB1dCBwYXJh
bWV0ZXJzIGlzIHN1cHBvc2VkIHRvIGJlIHN5bmNocm9ub3VzLgpAQCAtMTA5LDcgKzExMCwxMCBA
QCBEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuCiAKIHZvaWQgRGF0YWJh
c2U6OkRhdGFiYXNlT3BlblRhc2s6OmRvUGVyZm9ybVRhc2soKQogewotICAgIG1fc3VjY2VzcyA9
IGRhdGFiYXNlKCktPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KG1fc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsIG1fY29kZSk7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBtX3N1Y2Nlc3MgPSBk
YXRhYmFzZSgpLT5wZXJmb3JtT3BlbkFuZFZlcmlmeShtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNl
LCBtX2NvZGUsIGVycm9yTWVzc2FnZSk7CisgICAgaWYgKCFtX3N1Y2Nlc3MpCisgICAgICAgIG1f
ZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpOwogfQogCiAjaWYgIUxP
R19ESVNBQkxFRApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCShyZXZp
c2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEwMCwxMyArMTAwLDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIERhdGFi
YXNlOjpEYXRhYmFzZU9wZW5UYXNrIDogcHVibGljIERhdGFiYXNlVGFzayB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gY3JlYXRlKERhdGFiYXNlKiBk
YiwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVy
KiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIGJvb2wmIHN1Y2Nlc3MpCisgICAg
c3RhdGljIFBhc3NPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gY3JlYXRlKERhdGFiYXNlKiBkYiwg
Ym9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBz
eW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBi
b29sJiBzdWNjZXNzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRhYmFz
ZU9wZW5UYXNrKGRiLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgc3luY2hyb25pemVyLCBjb2Rl
LCBzdWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0YWJhc2VPcGVuVGFz
ayhkYiwgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIHN5bmNocm9uaXplciwgY29kZSwgZXJyb3JN
ZXNzYWdlLCBzdWNjZXNzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIERhdGFiYXNlT3BlblRh
c2soRGF0YWJhc2UqLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXIqLCBFeGNlcHRpb25Db2RlJiwgYm9vbCYgc3VjY2Vzcyk7CisgICAgRGF0YWJh
c2VPcGVuVGFzayhEYXRhYmFzZSosIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFi
YXNlVGFza1N5bmNocm9uaXplciosIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgYm9vbCYgc3VjY2Vzcyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9QZXJmb3JtVGFzaygpOwog
I2lmICFMT0dfRElTQUJMRUQKQEAgLTExNSw2ICsxMTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNlOwogICAgIEV4Y2VwdGlvbkNvZGUmIG1fY29kZTsK
KyAgICBTdHJpbmcmIG1fZXJyb3JNZXNzYWdlOwogICAgIGJvb2wmIG1fc3VjY2VzczsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHJldmlzaW9uIDk5ODk2KQorKysgU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTUUxFcnJvciA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxTUUxFcnJvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU1FMRXJyb3IoY29kZSwgbWVzc2FnZSkpOyB9CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBj
aGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVh
dGUoY29kZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7
CisgICAgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQg
Y29kZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNx
bGl0ZU1lc3NhZ2UpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6
Zm9ybWF0KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSwgc3FsaXRlTWVzc2FnZSkp
OworICAgIH0KIAogICAgIHVuc2lnbmVkIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0K
ICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZS5pc29sYXRlZENv
cHkoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkocmV2
aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDEwIEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVj
dXRlKERhdGFiYXNlKiBkYikKIAogICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAg
ICAgICAgTE9HKFN0b3JhZ2VBUEksICJVbmFibGUgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHN0
YXRlbWVudCAlcyAtIGVycm9yICVpICglcykiLCBtX3N0YXRlbWVudC5hc2NpaSgpLmRhdGEoKSwg
cmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwotICAgICAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0ID8gU1FMRXJyb3I6OkRB
VEFCQVNFX0VSUiA6IFNRTEVycm9yOjpTWU5UQVhfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNn
KCkpOworICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEludGVycnVwdCkKKyAgICAgICAg
ICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsICJpbnRlcnJ1cHRlZCIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6U1lOVEFYX0VSUiwgImNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0
YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtOTksNyArMTAyLDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRi
KQogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgICAgIExP
RyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIGJpbmQgdmFsdWUgaW5kZXggJWkgdG8gc3RhdGVtZW50
IGZvciBxdWVyeSAnJXMnIiwgaSArIDEsIG1fc3RhdGVtZW50LmFzY2lpKCkuZGF0YSgpKTsKLSAg
ICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGJpbmQgdmFs
dWUiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjMsNyArMTI2LDcgQEAgYm9vbCBTUUxT
dGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogICAgICAgICB9IHdoaWxlIChyZXN1bHQg
PT0gU1FMUmVzdWx0Um93KTsKIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUp
IHsKLSAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRB
QkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGl0
ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09
IFNRTFJlc3VsdERvbmUpIHsKQEAgLTEzNSw3ICsxMzgsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6
ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAgICAgICAgIHNldEZhaWx1cmVEdWVUb1F1b3RhKCk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9y
TXNnKCkpOworICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFU
QUJBU0VfRVJSLCAiY291bGQgbm90IGV4ZWN1dGUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFz
ZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHJldmlzaW9u
IDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjEsMTEgKzYxLDEzIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0
PiBTUUxTdGF0ZW1lbnRTeW4KICAgICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnByZXBhcmUoKTsK
ICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgIGVjID0gKHJlc3VsdCA9
PSBTUUxSZXN1bHRJbnRlcnJ1cHQgPyBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUiA6IFNRTEV4
Y2VwdGlvbjo6U1lOVEFYX0VSUik7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGlmIChzdGF0ZW1lbnQuYmlu
ZFBhcmFtZXRlckNvdW50KCkgIT0gbV9hcmd1bWVudHMuc2l6ZSgpKSB7CiAgICAgICAgIGVjID0g
KGRiLT5pc0ludGVycnVwdGVkKCk/IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSIDogU1FMRXhj
ZXB0aW9uOjpTWU5UQVhfRVJSKTsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoIm51
bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQg
Y291bnQiKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC03MywxMSArNzUsMTMgQEAg
UGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgogICAgICAgICByZXN1bHQg
PSBzdGF0ZW1lbnQuYmluZFZhbHVlKGkgKyAxLCBtX2FyZ3VtZW50c1tpXSk7CiAgICAgICAgIGlm
IChyZXN1bHQgPT0gU1FMUmVzdWx0RnVsbCkgewogICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRp
b246OlFVT1RBX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVy
ZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9r
KSB7CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAg
ICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBiaW5kIHZhbHVlIiwgcmVz
dWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0xMDIsNiArMTA2LDcgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRT
ZXQ+IFNRTFN0YXRlbWVudFN5bgogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0RG9u
ZSkgewogICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICAg
ICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgaXRlcmF0ZSByZXN1bHRz
IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHREb25lKSB7
CkBAIC0xMTEsOSArMTE2LDExIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1l
bnRTeW4KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHRGdWxsKSB7CiAgICAgICAg
IC8vIFF1b3RhIGVycm9yLCB0aGUgZGVsZWdhdGUgd2lsbCBiZSBhc2tlZCBmb3IgbW9yZSBzcGFj
ZSBhbmQgdGhpcyBzdGF0ZW1lbnQgbWlnaHQgYmUgcmUtcnVuLgogICAgICAgICBlYyA9IFNRTEV4
Y2VwdGlvbjo6UVVPVEFfRVJSOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgidGhl
cmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UiKTsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNF
X0VSUjsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBleGVjdXRl
IHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5z
YWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5z
YWN0aW9uLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1LDggKzI2NSw5IEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyBUcmFuc2FjdGlvbiBT
dGVwcyAxKzIgLSBPcGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhlIGRhdGFiYXNlLCBqdW1waW5nIHRv
IHRoZSBlcnJvciBjYWxsYmFjayBpZiB0aGF0IGZhaWxzCiAgICAgaWYgKCFtX3NxbGl0ZVRyYW5z
YWN0aW9uLT5pblByb2dyZXNzKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxp
dGVEYXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKKyAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5h
YmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigp
LCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
bV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gb3Bl
biBhIHRyYW5zYWN0aW9uIHRvIHRoZSBkYXRhYmFzZSIpOwogICAgICAgICBoYW5kbGVUcmFuc2Fj
dGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3NiwxMCArMjc3
LDExIEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyB0
aGUgYWN0dWFsIHZlcnNpb24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1
c3QgYSBtYXAgbG9va3VwLgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9k
YXRhYmFzZS0+Z2V0QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7
CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byByZWFkIHZlcnNpb24iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNl
KCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNn
KCkpOwogICAgICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXplcigpOwogICAgICAgICBt
X3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1
dGhvcml6ZXIoKTsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIpOwogICAg
ICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTI5Myw4ICsyOTUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rp
b25BbmRQCiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAg
bV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAo
IW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1
cmVkIHNldHRpbmcgdXAgdHJhbnNhY3Rpb24iKTsKLQorICAgICAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3du
IGVycm9yIG9jY3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCIpOwogICAgICAgICBo
YW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTQ3MCw3ICs0NzEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0
CiAgICAgaWYgKG1fd3JhcHBlciAmJiAhbV93cmFwcGVyLT5wZXJmb3JtUG9zdGZsaWdodCh0aGlz
KSkgewogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7
CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtu
b3duIGVycm9yIG9jY3VyZWQgc2V0dGluZyB1cCB0cmFuc2FjdGlvbiIpOworICAgICAgICAgICAg
bV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9F
UlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQi
KTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC00ODcsNyArNDg4LDggQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZs
aWdodEFuZENvbW1pdAogICAgICAgICBpZiAobV93cmFwcGVyKQogICAgICAgICAgICAgbV93cmFw
cGVyLT5oYW5kbGVDb21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQodGhpcyk7CiAgICAgICAgIG1f
c3VjY2Vzc0NhbGxiYWNrV3JhcHBlci5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJmYWlsZWQgdG8g
Y29tbWl0IHRoZSB0cmFuc2FjdGlvbiIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gY29tbWl0
IHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNl
LT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgaGFuZGxlVHJhbnNh
Y3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCShyZXZpc2lvbiA5OTg5
NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzUsMTIgKzc1LDE3IEBAIFNRTFRyYW5zYWN0aW9uU3luYzo6flNRTFRy
YW5zYWN0aW9uU3luYygKIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblN5
bmM6OmV4ZWN1dGVTUUwoY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxT
UUxWYWx1ZT4mIGFyZ3VtZW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKG1f
ZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwor
CisgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CisKICAgICBpZiAoIW1f
ZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1l
c3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVu
Iik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogCiAgICAgaWYgKG1faGFzVmVyc2lvbk1pc21hdGNoKSB7CisgICAgICAg
IG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1
c2UgdGhlcmUgaXMgYSB2ZXJzaW9uIG1pc21hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0
aW9uOjpWRVJTSU9OX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTEwLDggKzEx
NSwxMCBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiAgICAgICAg
ICAgICAgICAgaWYgKG1fdHJhbnNhY3Rpb25DbGllbnQtPmRpZEV4Y2VlZFF1b3RhKGRhdGFiYXNl
KCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIGVjID0gMDsKICAgICAgICAgICAgICAgICAgICAg
cmV0cnlTdGF0ZW1lbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RF
cnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNl
Iik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTEyNyw4ICsxMzQsMTAgQEAgUGFzc1Jl
ZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9uUwogRXhjZXB0aW9uQ29kZSBTUUxUcmFu
c2FjdGlvblN5bmM6OmJlZ2luKCkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFiYXNl
LT5vcGVuZWQoKSkKKyAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1f
ZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBiZWdpbiB0cmFuc2FjdGlvbiBi
ZWNhdXNlIHRoZSBkYXRhYmFzZSBpcyBub3Qgb3BlbiIpOwogICAgICAgICByZXR1cm4gU1FMRXhj
ZXB0aW9uOjpVTktOT1dOX0VSUjsKKyAgICB9CiAKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNx
bGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOwogCkBAIC0xNDcsNiArMTU2
LDggQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKAogICAgIC8vIENo
ZWNrIGlmIGJlZ2luKCkgc3VjY2VlZGVkLgogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+
aW5Qcm9ncmVzcygpKSB7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJh
c2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSk7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExh
c3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBiZWdpbiB0cmFuc2FjdGlvbiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2Uo
KS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2co
KSk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgcmV0dXJu
IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE1Niw2ICsxNjcsOCBAQCBF
eGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gdGhlIGFjdHVh
bCB2ZXJzaW9uLiBJbiBzaW5nbGUtcHJvY2VzcyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFw
IGxvb2t1cC4KICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2Ut
PmdldEFjdHVhbFZlcnNpb25Gb3JUcmFuc2FjdGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAg
ICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9u
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5z
cWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
Lmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcm9sbGJhY2soKTsKICAgICAgICAgcmV0dXJuIFNR
TEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE2OCw2ICsxODEsOCBAQCBFeGNl
cHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0CiB7CiAgICAgQVNTRVJUKG1fZGF0
YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwogICAg
IGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkgfHwgKG1fY2FsbGJhY2sgJiYgIW1fY2FsbGJhY2st
PmhhbmRsZUV2ZW50KHRoaXMpKSkgeworICAgICAgICBpZiAobV9kYXRhYmFzZS0+bGFzdEVycm9y
TWVzc2FnZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJv
ck1lc3NhZ2UoImZhaWxlZCB0byBleGVjdXRlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIik7CiAgICAg
ICAgIG1fY2FsbGJhY2sgPSAwOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dO
X0VSUjsKICAgICB9CkBAIC0xNzksOCArMTk0LDEwIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNh
Y3Rpb25TeW5jOjpleGVjdXQKIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQoKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKQorICAg
IGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFz
dEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBk
YXRhYmFzZSBpcyBub3Qgb3Blbi4iKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5L
Tk9XTl9FUlI7CisgICAgfQogCiAgICAgQVNTRVJUKG1fc3FsaXRlVHJhbnNhY3Rpb24pOwogCkBA
IC0xODksOCArMjA2LDExIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21t
aXQKICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7CiAKICAgICAvLyBJZiB0aGUg
Y29tbWl0IGZhaWxlZCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgc3RpbGwgYmUgbWFya2VkIGFzICJp
biBwcm9ncmVzcyIKLSAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQor
ICAgIGlmIChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgbV9k
YXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlv
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+
c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2Uo
KS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNF
X0VSUjsKKyAgICB9CiAKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDk5ODk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hh
ZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxheW91dCB0ZXN0cyBmb3Igd2Vic3Fs
IG5ldyBlcnJvciBtZXNzYWdlcyBhbmQgY29uc29sZSBsb2dnaW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1NzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL2No
YW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3Qvd29ya2Vycy9zdG9yYWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1l
bnQtc3luYy5odG1sOgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL2V4ZWN1dGVzcWwt
YWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zeW5j
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFi
YXNlLXNldC1lbXB0eS12ZXJzaW9uLXN5bmMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
d29ya2Vycy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC93b3JrZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy5odG1s
OgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0
aW9uLXN5bmMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvY2hhbmdlLXZlcnNpb24t
aGFuZGxlLXJldXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL29wZW4tZGF0YWJh
c2UtY3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uvb3Bl
bi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Rv
cmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBzdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMTEtMTAg
IFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2No
cm9taXVtXSBQcmUtZW1wdGl2ZWx5IG1hcmsgYSBjYW52YXMgdGVzdCBhcyBmYWlsaW5nIGZvciBu
ZXh0IFNraWEgcm9sbC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2No
YW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRs
ZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3Jr
ZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhpcyB0ZXN0
cyB0aGF0IGEgZGF0YWJhc2UgY2FuIGJlIGFjY2Vzc2VkIGFmdGVyIGNoYW5naW5nIGl0cyB2ZXJz
aW9uLiBZb3Ugc2hvdWxkIHNlZSBhbiBlcnJvciBhYm91dCBGb29CYXIgdGFibGUgYmVsb3csIG5v
dCBhYm91dCBtaXNtYXRjaGluZyB2ZXJzaW9ucy4KIGNoYW5nZVZlcnNpb246IHRyYW5zYWN0aW9u
IGNhbGxiYWNrCiBjaGFuZ2VWZXJzaW9uOiBzdWNjZXNzIGNhbGxiYWNrCi10cmFuc2FjdGlvbjog
c3RhdGVtZW50IGVycm9yIGNhbGxiYWNrOiBubyBzdWNoIHRhYmxlOiBGb29CYXIKK3RyYW5zYWN0
aW9uOiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2s6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMSBubyBzdWNoIHRhYmxlOiBGb29CYXIpCiBURVNUIENPTVBMRVRFLgogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUt
c3RhdGVtZW50LXN5bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy9zdG9yYWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQt
c3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5j
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogVGVzdCB0aGF0
IGV4ZWN1dGVTcWwoKSBhY2NlcHRzIG9ubHkgb25lIHN0YXRlbWVudC4KLVBBU1M6IElOU0VSVCBJ
TlRPIFRlc3QgVkFMVUVTICgxKQotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDIpOwot
UEFTUzogICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDMpICAgIAotUEFTUzogICAgSU5TRVJU
IElOVE8gVGVzdCBWQUxVRVMgKDQpOyAgIAotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMg
KDUpICAgOwotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDYpOyBnYXJiYWdlCi1QQVNT
OiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNyk7IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg4
KQotUEFTUzogICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoOSk7ICAgSU5TRVJUIElOVE8gVGVz
dCBWQUxVRVMgKDEwKTsgICAKK1BBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgxKSwgCitQ
QVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMik7LCAKK1BBU1M6ICAgIElOU0VSVCBJTlRP
IFRlc3QgVkFMVUVTICgzKSAgICAsIAorUEFTUzogICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMg
KDQpOyAgICwgCitQQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNSkgICA7LCAKK1BBU1M6
IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg2KTsgZ2FyYmFnZSwgY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgxLCBub3QgYW4gZXJyb3IpCitQQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVF
UyAoNyk7IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg4KSwgY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50ICgxLCBub3QgYW4gZXJyb3IpCitQQVNTOiAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVT
ICg5KTsgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMTApOyAgICwgY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgxLCBub3QgYW4gZXJyb3IpCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
d29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stc3luYy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uv
b3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zeW5jLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFi
YXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IHVuYWJsZSB0byBvcGVuIGRh
dGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAnMS4wJyBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVu
dFZlcnNpb24gb2YgJycKIFRoaXMgdGVzdCB0ZXN0cyBvcGVuRGF0YWJhc2VTeW5jKCkncyBjcmVh
dGlvbiBjYWxsYmFjay4KIFBBU1M6IENyZWF0aW9uIGNhbGxiYWNrIHdhcyBjYWxsZWQuCiBQQVNT
OiBWZXJzaW9uIHNldCB0byBlbXB0eSBzdHJpbmcgYXMgZXhwZWN0ZWQuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9u
LXN5bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3luYy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uv
b3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zeW5jLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUg
dG8gb3BlbiBkYXRhYmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwgJ3Rlc3QnIGRvZXMgbm90IG1hdGNo
IHRoZSBjdXJyZW50VmVyc2lvbiBvZiAnJwogVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgb3BlbkRh
dGFiYXNlIHdpdGggYW4gZW1wdHkgdmVyc2lvbiBzdHJpbmcgc2V0cyB0aGUgY3VycmVudCB2ZXJz
aW9uIG9mIHRoYXQgZGF0YWJhc2UgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgc3Vic2VxdWVudCBh
dHRlbXB0cyB0byBvcGVuIHRoZSBkYXRhYmFzZSB3aXRoIGEgZGlmZmVyZW50IGV4cGVjdGVkIHZl
cnNpb24gdGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0
b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiwy
MCArNiwyMCBAQCBTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjCiBTUUxJ
VEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9U
UklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFQUQgc3Rh
dGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNR
TElURV9ERUxFVEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9JTlNFUlQgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KIFNRTElURV9VUERBVEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9Q
UkFHTUEgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9QUkFHTUEgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKIFNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0FM
VEVSX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKK1NRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FUVEFDSCBzdGF0
ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFSU5ERVggc3RhdGVtZW50IHN1
Y2NlZWRlZC4KLVNRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
CitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IHN1
Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNR
TElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgpAQCAtMjgsNDEgKzI4
LDQxIEBAIFNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9E
Uk9QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBXcml0ZSB0cmFuc2FjdGlvbiBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JFQVRF
X1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1RB
QkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3Qg
YXV0aG9yaXplZCkKIFNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNR
TElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9DUkVBVEVfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
LVNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
Ci1TUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
LVNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElU
RV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9UQUJMRSBzdGF0ZW1l
bnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQp
CitTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBf
VklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5v
dCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVB
VEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIz
IG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9D
UkVBVEVfSU5ERVggc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9UQUJM
RSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVt
ZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9D
UkVBVEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9WVEFCTEUgc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1NFTEVDVCBzdGF0
ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0
aG9yaXplZAotU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAot
U1FMSVRFX1VQREFURSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX1BS
QUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FMVEVSX1RBQkxF
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQUxURVJfVEFCTEUgc3Rh
dGVtZW50IGZhaWxlZDogbm8gc3VjaCB0YWJsZTogVGVzdFRhYmxlCi1TUUxJVEVfVFJBTlNBQ1RJ
T04gc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BVFRBQ0ggc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9SRUlOREVYIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNR
TElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNR
TElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAot
U1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1T
UUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJ
VEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJP
UF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0RFTEVURSBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQorU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFy
ZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX1VQREFURSBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQor
U1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgxIG5vIHN1Y2ggdGFibGU6IFRlc3RUYWJsZSkKK1NRTElURV9UUkFOU0FDVElPTiBzdGF0
ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FM
SVRFX1JFSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJP
UF9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIz
IG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1ZJRVcgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1ZJRVcgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBSZWFkIHRyYW5zYWN0aW9ucyBzdWNjZWVk
ZWQuCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3RyYW5zYWN0aW9u
LWluLXRyYW5zYWN0aW9uLXN5bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy9zdG9yYWdlL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMyBAQAogVGVzdCB0aGF0IHRyeWluZyB0byBydW4gYSB0
cmFuc2FjdGlvbiBpbnNpZGUgYW5vdGhlciB0cmFuc2FjdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9u
LgotUEFTUzogRXhjZXB0aW9uIHRocm93biB3aGlsZSB0cnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRy
YW5zYWN0aW9uLgorUEFTUzogRXhjZXB0aW9uIHRocm93biB3aGlsZSB0cnlpbmcgdG8gcnVuIGEg
bmVzdGVkIHRyYW5zYWN0aW9uICh1bmFibGUgdG8gc3RhcnQgYSB0cmFuc2FjdGlvbiBmcm9tIHdp
dGhpbiBhIHRyYW5zYWN0aW9uKS4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0
b3JhZ2UvcmVzb3VyY2VzL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3lu
Yy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNv
dXJjZXMvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmpzCShyZXZp
c2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNl
cy9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTEgKzEsMTMgQEAKIGZ1bmN0aW9uIGV4ZWN1dGVTdGF0ZW1lbnQodHgsIGV4
cGVjdGVkVG9QYXNzLCBzdGF0ZW1lbnQpCiB7CisgICAgdmFyIG1lc3NhZ2U7CiAgICAgdHJ5IHsK
ICAgICAgICAgdHguZXhlY3V0ZVNxbChzdGF0ZW1lbnQpOwotICAgICAgICBwb3N0TWVzc2FnZShl
eHBlY3RlZFRvUGFzcyA/ICJQQVNTOiAiICsgc3RhdGVtZW50IDogIkZBSUw6ICIgKyBzdGF0ZW1l
bnQpOworICAgICAgICBtZXNzYWdlID0gZXhwZWN0ZWRUb1Bhc3MgPyAiUEFTUzogIiA6ICJGQUlM
OiAiOwogICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgICBwb3N0TWVzc2FnZSghZXhwZWN0ZWRU
b1Bhc3MgPyAiUEFTUzogIiArIHN0YXRlbWVudCA6ICJGQUlMOiAiICsgc3RhdGVtZW50KTsKKyAg
ICAgICAgbWVzc2FnZSA9ICFleHBlY3RlZFRvUGFzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICI7CiAg
ICAgfQorICAgIHBvc3RNZXNzYWdlKG1lc3NhZ2UgKyBzdGF0ZW1lbnQgKyAiLCAiICsgZGIubGFz
dEVycm9yTWVzc2FnZSk7CiB9CiAKIHZhciBkYiA9IG9wZW5EYXRhYmFzZVN5bmMoIkV4ZWN1dGVT
UUxBY2NlcHRzT25seU9uZVN0YXRlbWVudFRlc3QiLCAiMS4wIiwgIiIsIDEpOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWluLXRy
YW5zYWN0aW9uLXN5bmMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJz
L3N0b3JhZ2UvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMuanMJKHJl
dmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVzb3Vy
Y2VzL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTIsOSArMiw5IEBAIHZhciBkYiA9IG9wZW5EYXRhYmFzZVN5bmMoIlRyYW5zYWN0aW9uSW4KIGRi
LnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7CiAgICAgdHJ5IHsKICAgICAgICAgZGIudHJhbnNh
Y3Rpb24oZnVuY3Rpb24obmVzdGVkVHgpIHsgfSk7Ci0gICAgICAgIHBvc3RNZXNzYWdlKCJGQUlM
OiBUcnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRyYW5zYWN0aW9uIHNob3VsZCB0aHJvdyBhbiBleGNl
cHRpb24uIik7CisgICAgICAgIHBvc3RNZXNzYWdlKCJGQUlMOiBUcnlpbmcgdG8gcnVuIGEgbmVz
dGVkIHRyYW5zYWN0aW9uIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIiArIGRiLmxhc3RFcnJv
ck1lc3NhZ2UpOwogICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgICBwb3N0TWVzc2FnZSgiUEFT
UzogRXhjZXB0aW9uIHRocm93biB3aGlsZSB0cnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRyYW5zYWN0
aW9uLiIpOworICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogRXhjZXB0aW9uIHRocm93biB3aGls
ZSB0cnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRyYW5zYWN0aW9uICgiICsgZGIubGFzdEVycm9yTWVz
c2FnZSArICIpLiIpOwogICAgIH0KIH0pOwogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2No
YW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24t
aGFuZGxlLXJldXNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAK
IFRoaXMgdGVzdHMgdGhhdCBhIGRhdGFiYXNlIGNhbiBiZSBhY2Nlc3NlZCBhZnRlciBjaGFuZ2lu
ZyBpdHMgdmVyc2lvbi4gWW91IHNob3VsZCBzZWUgYW4gZXJyb3IgYWJvdXQgRm9vQmFyIHRhYmxl
IGJlbG93LCBub3QgYWJvdXQgbWlzbWF0Y2hpbmcgdmVyc2lvbnMuCiBjaGFuZ2VWZXJzaW9uOiB0
cmFuc2FjdGlvbiBjYWxsYmFjawogY2hhbmdlVmVyc2lvbjogc3VjY2VzcyBjYWxsYmFjawotdHJh
bnNhY3Rpb246IHN0YXRlbWVudCBlcnJvciBjYWxsYmFjazogbm8gc3VjaCB0YWJsZTogRm9vQmFy
Cit0cmFuc2FjdGlvbjogc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrOiBjb3VsZCBub3QgcHJlcGFy
ZSBzdGF0ZW1lbnQgKDEgbm8gc3VjaCB0YWJsZTogRm9vQmFyKQogVEVTVCBDT01QTEVURS4KIApJ
bmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNr
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0
YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysr
IExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlzbWF0Y2gsICcxLjAn
IGRvZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50VmVyc2lvbiBvZiAnJwogVGhpcyB0ZXN0IHRlc3Rz
IG9wZW5EYXRhYmFzZSgpJ3MgY3JlYXRpb24gY2FsbGJhY2suCiAKSW5kZXg6IExheW91dFRlc3Rz
L3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12
ZXJzaW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9zdG9y
YWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAndGVzdCcgZG9lcyBub3QgbWF0Y2gg
dGhlIGN1cnJlbnRWZXJzaW9uIG9mICcnCiBUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBvcGVuRGF0
YWJhc2Ugd2l0aCBhbiBlbXB0eSB2ZXJzaW9uIHN0cmluZyBzZXRzIHRoZSBjdXJyZW50IHZlcnNp
b24gb2YgdGhhdCBkYXRhYmFzZSB0byB0aGUgZW1wdHkgc3RyaW5nIGFuZCBzdWJzZXF1ZW50IGF0
dGVtcHRzIHRvIG9wZW4gdGhlIGRhdGFiYXNlIHdpdGggYSBkaWZmZXJlbnQgZXhwZWN0ZWQgdmVy
c2lvbiB0aHJvdyBhbiBleGNlcHRpb24uCiBTVUNDRVNTLCBhbiBleGNlcHRpb24gd2FzIHRocm93
bi4gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExCkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1u
b3JlYWQtbm93cml0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMiwxNCArMiwxNCBAQCBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0
IGF0dGVtcHRzIHRvIGNoCiBTZXR1cCBzdGF0ZW1lbnQgMSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5
CiBTZXR1cCBzdGF0ZW1lbnQgMiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiBQcml2YXRlIGJyb3dz
aW5nIHN0YXRlbWVudCAxIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1ub3QgYXV0aG9yaXplZAor
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQogUHJpdmF0ZSBi
cm93c2luZyBzdGF0ZW1lbnQgMiBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgotbm90IGF1dGhvcml6
ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBQcml2
YXRlIGJyb3dzaW5nIHN0YXRlbWVudCAzIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1ub3QgYXV0
aG9yaXplZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
IFByaXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDQgY29tcGxldGVkIHdpdGggYW4gZXJyb3IKLW5v
dCBhdXRob3JpemVkCitjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3Jp
emVkKQogUHJpdmF0ZSBicm93c2luZyBzdGF0ZW1lbnQgNSBjb21wbGV0ZWQgd2l0aCBhbiBlcnJv
cgotYWNjZXNzIHRvIFByaXZhdGVUZXN0MS5yYW5kb21EYXRhIGlzIHByb2hpYml0ZWQKK2NvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgYWNjZXNzIHRvIFByaXZhdGVUZXN0MS5yYW5kb21E
YXRhIGlzIHByb2hpYml0ZWQpCiBUZXN0IGVuZGVkCiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3Jh
Z2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC02LDIwICs2LDIwIEBAIFNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0
YXRlbWVudCBzdWMKIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQu
CiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVB
VEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQp
CiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1NFTEVDVCBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgogU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRF
X0lOU0VSVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1VQREFURSBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgotU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAor
U1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCiBTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9U
UkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FUVEFD
SCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RFVEFDSCBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitT
UUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfUkVJ
TkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfRFJPUF9J
TkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCkBAIC0yOCw0MSArMjgsNDEgQEAgU1FMSVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RS
T1BfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFdyaXRlIHRyYW5zYWN0aW9uIHN1Y2NlZWRl
ZC4KLVNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
K1NRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9U
RU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVw
YXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQogU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRF
X0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RF
TVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcg
c3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVf
Q1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NS
RUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBT
UUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfREVMRVRFIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRo
b3JpemVkCi1TUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1T
UUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBubyBzdWNoIHRhYmxlOiBUZXN0VGFibGUK
LVNRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RFVEFD
SCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX1JFSU5ERVggc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDog
bm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90
IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhv
cml6ZWQKLVNRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
CitTUUxJVEVfREVMRVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVf
VVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQUxURVJfVEFC
TEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm8gc3VjaCB0YWJsZTogVGVzdFRhYmxlKQorU1FMSVRF
X1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfREVU
QUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FOQUxZWkUgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKK1NRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVw
YXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1RBQkxF
IHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1
dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9Q
X1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0RST1BfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFJlYWQgdHJh
bnNhY3Rpb25zIHN1Y2NlZWRlZC4KIAo=
</data>
<flag name="review"
          id="113280"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114781</attachid>
            <date>2011-11-11 15:02:42 -0800</date>
            <delta_ts>2011-11-11 15:08:15 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberror.txt</filename>
            <type>text/plain</type>
            <size>66451</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzggQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIFByb2R1Y2UgY29uc29sZSBsb2dnaW5nCisgICAgICAg
IGZvciBvcGVuRGF0YWJhc2UoKSBlcnJvcnMgYW5kIHZhY3V1bSBlcnJvcnMuIEFkZCBhIGxhc3RF
cnJvck1lc3NhZ2UKKyAgICAgICAgYWNjZXNzb3IgdG8gdGhlIERhdGFiYXNlU3luYyBpbnRlcmZh
Y2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllcywg
c2VlIExheW91dFRlc3RzL0NoYW5nZUxvZyBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgICogcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlOjpTUUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKToKKyAgICAgICAgKFdlYkNvcmU6OlNR
TGl0ZURhdGFiYXNlOjogcnVuVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6IHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIFJlZmxl
Y3QgZXJyb3JzIGluIHRoZSBvcGVuKCkgbWV0aG9kIGluIGxhc3RFcnJvcigpIGFuZCBsYXN0RXJy
b3JNc2coKS4KKyAgICAgICAgUmV0dXJuIGFuIGVycm9yIGNvZGVzIGZvciBydW5WYWN1dW1Db21t
YW5kKCkgYW5kIHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpLgorCisgICAgICAgICogcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9BYnN0cmFjdERh
dGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdEVycm9yTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlOjpsb2dFcnJvck1lc3NhZ2UpOgorICAg
ICAgICBEdXJpbmcgb3BlbkFuZFZlcmlmeSwgcHJvZHVjZSBmb3JtYXR0ZWQgZXJyb3IgbWVzc2Fn
ZXMgdGhhdCBpbmNsdWRlIHdoYXQgd2FzIGJlaW5nIGRvbmUsIHRoZSBzcWxpdGUgZXJyb3IgY29k
ZSwKKyAgICAgICAgYW5kIHRoZSBzcWxpdGUgZXJyb3IgbWVzc2FnZS4gQWRkIGEgaGVscGVyIHRv
IGxvZyBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLgorCisgICAgICAgICogc3RvcmFnZS9BYnN0cmFj
dERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZsaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBvc3Rm
bGlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6
b3BlbkFuZFZlcmlmeVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnBlcmZv
cm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmg6CisgICAgICAg
ICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VT
eW5jOjpvcGVuRGF0YWJhc2VTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU3luYzo6
Y2hhbmdlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6OnJ1blRyYW5z
YWN0aW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VTeW5jOjpsYXN0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFiYXNlU3luYzo6c2V0TGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgICogc3RvcmFnZS9E
YXRhYmFzZVN5bmMuaWRsOgorICAgICAgICBBZGQgYSBsYXN0RXJyb3JNZXNzYWdlIGF0dHJpYnV0
ZSBzbyBqYXZhc2NyaXB0IGNhbGxlcnMgY2FuCisgICAgICAgIHJldHJpZXZlIG1vcmUgZGV0YWls
ZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCB3ZW50IHdyb25nLgorCisgICAgICAgICogc3RvcmFn
ZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNl
T3BlblRhc2s6OkRhdGFiYXNlT3BlblRhc2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OkRhdGFiYXNlT3BlblRhc2s6OmRvUGVyZm9ybVRhc2spOgorICAgICAgICAqIHN0b3JhZ2UvRGF0
YWJhc2VUYXNrLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFz
azo6Y3JlYXRlKToKKyAgICAgICAgUmV0dXJuIGFuIGVycm9yTWVzc2FnZSBpbiBhZGRpdGlvbiB0
byB0aGUgZXhjZXB0aW9uIGNvZGUuCisKKyAgICAgICAgKiBzdG9yYWdlL1NRTEVycm9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgQWRkIGhlbHBlcnMg
dG8gcHJvZHVjZWQgZm9ybWF0dGVkIGVycm9yIG1lc3NhZ2VzLgorCisgICAgICAgICogc3RvcmFn
ZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpleGVj
dXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0ZSk6CisgICAgICAgICogc3RvcmFnZS9T
UUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6b3Bl
blRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0
aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0
aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1
dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQpOgorCiAyMDExLTExLTEwICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBEbyBub3Qgc2hh
cmUgQ1NTIHN0eWxlIGZvciBNZWRpYUVsZW1lbnQgYmFja2VkIGJ5IGEgcGx1Z2luCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTM1OSw3ICsxMzU5LDYgQEAKIAkJNTAxQkFB
QTkxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MDhDQ0E0RjEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEQxM0NGMTA2QjAwMzE1
MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCAqLzsgfTsKIAkJNTA4Q0NBNTAxM0NGMTA2QjAwMzE1
MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dU
aHJlYWQuY3BwICovOyB9OwotCQk1MEI0MjE1ODE0Njk3Njk2MDA4N0U2MDQgLyogV2ViS2l0Q1NT
U2hhZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUwQjQyMTU3MTQ2OTc2OTYwMDg3RTYwNCAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oICov
OyB9OwogCQk1MEU1NjZENjEzOUUzOEM1MDAyMTQ0MzMgLyogQ1NTV3JhcFNoYXBlcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDFCQUFCMTEzOTUx
MTRCMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5jcHAgKi87IH07CiAJCTUxMDE4NDY5MEIwODYw
MkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMDE4
NDZBMEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY4MEIwODYwMkEwMDRBODI1RiAvKiBD
YWNoZWRQYWdlLmNwcCAqLzsgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2
ICs0Niw4IEBAIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVfU0NIRU0KIGNvbnN0
IGludCBTUUxSZXN1bHRGdWxsID0gU1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQgU1FMUmVzdWx0SW50
ZXJydXB0ID0gU1FMSVRFX0lOVEVSUlVQVDsKIAorc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVy
cm9yTWVzc2FnZVtdID0gImRhdGFiYXNlIGlzIG5vdCBvcGVuIjsKKwogU1FMaXRlRGF0YWJhc2U6
OlNRTGl0ZURhdGFiYXNlKCkKICAgICA6IG1fZGIoMCkKICAgICAsIG1fcGFnZVNpemUoLTEpCkBA
IC01Myw2ICs1NSw4IEBAIFNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAgICAgLCBt
X3NoYXJhYmxlKGZhbHNlKQogICAgICwgbV9vcGVuaW5nVGhyZWFkKDApCiAgICAgLCBtX2ludGVy
cnVwdGVkKGZhbHNlKQorICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQorICAgICwgbV9v
cGVuRXJyb3JNZXNzYWdlKG5vdE9wZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAKQEAgLTY1LDE1ICs2
OSwyMCBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgCiB7CiAgICAg
Y2xvc2UoKTsKIAotICAgIGlmIChTUUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5h
bWUsICZtX2RiLCBmb3JXZWJTUUxEYXRhYmFzZSkgIT0gU1FMSVRFX09LKSB7CisgICAgbV9vcGVu
RXJyb3IgPSBTUUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBm
b3JXZWJTUUxEYXRhYmFzZSk7CisgICAgaWYgKG1fb3BlbkVycm9yICE9IFNRTElURV9PSykgewor
ICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikg
OiAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAgICAgICAgIExPR19FUlJPUigiU1FMaXRl
IGRhdGFiYXNlIGZhaWxlZCB0byBsb2FkIGZyb20gJXNcbkNhdXNlIC0gJXMiLCBmaWxlbmFtZS5h
c2NpaSgpLmRhdGEoKSwKLSAgICAgICAgICAgIHNxbGl0ZTNfZXJybXNnKG1fZGIpKTsKKyAgICAg
ICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCkpOwogICAgICAgICBzcWxpdGUzX2Nsb3Nl
KG1fZGIpOwogICAgICAgICBtX2RiID0gMDsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
LSAgICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkgIT0gU1FMSVRF
X09LKSB7Ci0gICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5h
YmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBzcWxpdGUzX2Vycm1zZyhtX2RiKSk7CisKKyAg
ICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1fZGIsIDEpOwor
ICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9vcGVuRXJyb3JN
ZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIExPR19FUlJPUigiU1FMaXRl
IGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBtX29w
ZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAg
ICAgICAgbV9kYiA9IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYgKzkwLDggQEAg
Ym9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIAogCiAgICAgaWYgKGlzT3Bl
bigpKQogICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CisgICAgZWxz
ZQorICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVs
bCI7CiAKICAgICBpZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSB0ZW1wX3N0b3Jl
ID0gTUVNT1JZOyIpLmV4ZWN1dGVDb21tYW5kKCkpCiAgICAgICAgIExPR19FUlJPUigiU1FMaXRl
IGRhdGFiYXNlIGNvdWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0byBtZW1vcnkiKTsKQEAgLTEwMiw2
ICsxMTMsOCBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgfQogCiAgICAgbV9v
cGVuaW5nVGhyZWFkID0gMDsKKyAgICBtX29wZW5FcnJvciA9IFNRTElURV9FUlJPUjsKKyAgICBt
X29wZW5FcnJvck1lc3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNzYWdlOwogfQogCiB2b2lkIFNRTGl0
ZURhdGFiYXNlOjppbnRlcnJ1cHQoKQpAQCAtMjgxLDEzICsyOTQsMTQgQEAgdm9pZCBTUUxpdGVE
YXRhYmFzZTo6Y2xlYXJBbGxUYWJsZXMoKQogICAgIH0KIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFz
ZTo6cnVuVmFjdXVtQ29tbWFuZCgpCitpbnQgU1FMaXRlRGF0YWJhc2U6OnJ1blZhY3V1bUNvbW1h
bmQoKQogewogICAgIGlmICghZXhlY3V0ZUNvbW1hbmQoIlZBQ1VVTTsiKSkKICAgICAgICAgTE9H
KFNRTERhdGFiYXNlLCAiVW5hYmxlIHRvIHZhY3V1bSBkYXRhYmFzZSAtICVzIiwgbGFzdEVycm9y
TXNnKCkpOworICAgIHJldHVybiBsYXN0RXJyb3IoKTsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFz
ZTo6cnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCkKK2ludCBTUUxpdGVEYXRhYmFzZTo6cnVu
SW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9h
dXRob3JpemVyTG9jayk7CiAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CkBAIC0yOTYsNiAr
MzEwLDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dQogICAgICAg
ICBMT0coU1FMRGF0YWJhc2UsICJVbmFibGUgdG8gcnVuIGluY3JlbWVudGFsIHZhY3V1bSAtICVz
IiwgbGFzdEVycm9yTXNnKCkpOwogCiAgICAgZW5hYmxlQXV0aG9yaXplcih0cnVlKTsKKyAgICBy
ZXR1cm4gbGFzdEVycm9yKCk7CiB9CiAKIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6Omxhc3RJbnNl
cnRSb3dJRCgpCkBAIC0zMTQsMTIgKzMyOSwxMiBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6Omxhc3RD
aGFuZ2VzKCkKIAogaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IoKQogewotICAgIHJldHVy
biBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogU1FMSVRFX0VSUk9SOworICAgIHJldHVy
biBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogbV9vcGVuRXJyb3I7CiB9CiAKIGNvbnN0
IGNoYXIqIFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3JNc2coKQogeyAKLSAgICByZXR1cm4gc3Fs
aXRlM19lcnJtc2cobV9kYik7CisgICAgcmV0dXJuIG1fZGIgPyBzcWxpdGUzX2Vycm1zZyhtX2Ri
KSA6IG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkocmV2aXNp
b24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBTUUxpdGVEYXRhYmFz
ZV9oCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBDT01QSUxFUihNU1ZD
KQpAQCAtNjgsOCArNjksOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCB0YWJsZUV4aXN0cyhj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFyQWxsVGFibGVzKCk7Ci0gICAgdm9pZCBydW5W
YWN1dW1Db21tYW5kKCk7Ci0gICAgdm9pZCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQoKTsK
KyAgICBpbnQgcnVuVmFjdXVtQ29tbWFuZCgpOworICAgIGludCBydW5JbmNyZW1lbnRhbFZhY3V1
bUNvbW1hbmQoKTsKICAgICAKICAgICBib29sIHRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOyB9CiAgICAgCkBAIC0xNTMsNyArMTU0
LDEwIEBAIHByaXZhdGU6CiAKICAgICBNdXRleCBtX2RhdGFiYXNlQ2xvc2luZ011dGV4OwogICAg
IGJvb2wgbV9pbnRlcnJ1cHRlZDsKLX07IC8vIGNsYXNzIFNRTGl0ZURhdGFiYXNlCisKKyAgICBp
bnQgbV9vcGVuRXJyb3I7CisgICAgQ1N0cmluZyBtX29wZW5FcnJvck1lc3NhZ2U7Cit9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJz
dHJhY3REYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9B
YnN0cmFjdERhdGFiYXNlLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVudC5oIgog
I2luY2x1ZGUgIlNRTGl0ZVRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNr
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTUyLDYgKzUzLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBjaGFyIHZlcnNpb25LZXlbXSA9ICJX
ZWJLaXREYXRhYmFzZVZlcnNpb25LZXkiOwogc3RhdGljIGNvbnN0IGNoYXIgaW5mb1RhYmxlTmFt
ZVtdID0gIl9fV2ViS2l0RGF0YWJhc2VJbmZvVGFibGVfXyI7CiAKK3N0YXRpYyBTdHJpbmcgZm9y
bWF0RXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVFcnJvckNvZGUs
IGNvbnN0IGNoYXIqIHNxbGl0ZUVycm9yTWVzc2FnZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIiVzICglZCAlcykiLCBtZXNzYWdlLCBzcWxpdGVFcnJvckNvZGUsIHNxbGl0ZUVycm9y
TWVzc2FnZSk7Cit9CisKIHN0YXRpYyBib29sIHJldHJpZXZlVGV4dFJlc3VsdEZyb21EYXRhYmFz
ZShTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IFN0cmluZyYgcXVlcnksIFN0cmluZyYgcmVzdWx0
U3RyaW5nKQogewogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoZGIsIHF1ZXJ5KTsKQEAg
LTI0NCwxNyArMjUwLDE5IEBAIFN0cmluZyBBYnN0cmFjdERhdGFiYXNlOjp2ZXJzaW9uKCkgY29u
c3QKICAgICByZXR1cm4gZ2V0Q2FjaGVkVmVyc2lvbigpOwogfQogCi1ib29sIEFic3RyYWN0RGF0
YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0
YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3Jt
T3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRp
b25Db2RlJiBlYywgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CisgICAgQVNTRVJUKGVycm9yTWVz
c2FnZS5pc0VtcHR5KCkpOworCiAgICAgY29uc3QgaW50IG1heFNxbGl0ZUJ1c3lXYWl0VGltZSA9
IDMwMDAwOwogCiAgICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNlLm9wZW4obV9maWxlbmFtZSwgdHJ1
ZSkpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gb3BlbiBkYXRhYmFzZSBhdCBwYXRo
ICVzIiwgbV9maWxlbmFtZS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGVycm9yTWVzc2FnZSA9
IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UiLCBtX3NxbGl0ZURh
dGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2UudHVybk9uSW5jcmVtZW50YWxBdXRvVmFjdXVt
KCkpCi0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHR1cm4gb24gaW5jcmVtZW50YWwgYXV0
by12YWN1dW0gZm9yIGRhdGFiYXNlICVzIiwgbV9maWxlbmFtZS5hc2NpaSgpLmRhdGEoKSk7Cisg
ICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHR1cm4gb24gaW5jcmVtZW50YWwgYXV0by12YWN1
dW0gKCVkICVzKSIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwogCiAgICAgbV9zcWxpdGVEYXRhYmFzZS5zZXRCdXN5VGltZW91
dChtYXhTcWxpdGVCdXN5V2FpdFRpbWUpOwogCkBAIC0yOTAsNyArMjk4LDcgQEAgYm9vbCBBYnN0
cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgICAgICAgICAgU1FMaXRlVHJhbnNh
Y3Rpb24gdHJhbnNhY3Rpb24obV9zcWxpdGVEYXRhYmFzZSk7CiAgICAgICAgICAgICB0cmFuc2Fj
dGlvbi5iZWdpbigpOwogICAgICAgICAgICAgaWYgKCF0cmFuc2FjdGlvbi5pblByb2dyZXNzKCkp
IHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBiZWdpbiB0cmFuc2FjdGlv
biB3aGlsZSBvcGVuaW5nICVzIiwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7
CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIHN0YXJ0IHRyYW5zYWN0aW9uIiwgbV9zcWxp
dGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgICAg
ICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzAxLDE0ICszMDksMTQgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3Bl
bkFuZFZlcgogICAgICAgICAgICAgICAgIG1fbmV3ID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAg
IGlmICghbV9zcWxpdGVEYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JFQVRFIFRBQkxFICIgKyB0
YWJsZU5hbWUgKyAiIChrZXkgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMIFVOSVFVRSBP
TiBDT05GTElDVCBSRVBMQUNFLHZhbHVlIFRFWFQgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCk7
IikpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHRh
YmxlICVzIGluIGRhdGFiYXNlICVzIiwgaW5mb1RhYmxlTmFtZSwgZGF0YWJhc2VEZWJ1Z05hbWUo
KS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZv
cm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byBjcmVh
dGUgJ2luZm8nIHRhYmxlIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVE
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CiAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJvbGxiYWNrKCk7
CiAgICAgICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0gZWxzZSBpZiAoIWdldFZlcnNpb25Gcm9tRGF0YWJhc2UoY3VycmVudFZlcnNpb24sIGZhbHNl
KSkgewotICAgICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGdldCBjdXJyZW50IHZl
cnNpb24gZnJvbSBkYXRhYmFzZSAlcyIsIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRh
KCkpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgi
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byByZWFkIGN1cnJlbnQgdmVyc2lvbiIs
IG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICBtX3NxbGl0
ZURhdGFiYXNlLmNsb3NlKCk7CkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBBYnN0cmFjdERhdGFi
YXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgICAgICAgICAgfSBlbHNlIGlmICghbV9uZXcgfHwg
c2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UpIHsKICAgICAgICAgICAgICAgICBMT0coU3Rv
cmFnZUFQSSwgIlNldHRpbmcgdmVyc2lvbiAlcyBpbiBkYXRhYmFzZSAlcyB0aGF0IHdhcyBqdXN0
IGNyZWF0ZWQiLCBtX2V4cGVjdGVkVmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1
Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXRWZXJzaW9u
SW5EYXRhYmFzZShtX2V4cGVjdGVkVmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNldCB2ZXJzaW9uICVzIGluIGRhdGFiYXNlICVzIiwg
bV9leHBlY3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNj
aWkoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXRF
cnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCBmYWlsZWQgdG8gd3JpdGUgY3Vy
cmVudCB2ZXJzaW9uIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CiAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJvbGxiYWNrKCk7CiAg
ICAgICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKQEAgLTM0MSw4ICsz
NDksNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAgICAgLy8g
SWYgdGhlIGV4cGVjdGVkIHZlcnNpb24gaXNuJ3QgdGhlIGVtcHR5IHN0cmluZywgZW5zdXJlIHRo
YXQgdGhlIGN1cnJlbnQgZGF0YWJhc2UgdmVyc2lvbiB3ZSBoYXZlIG1hdGNoZXMgdGhhdCB2ZXJz
aW9uLiBPdGhlcndpc2UsIHNldCBhbiBleGNlcHRpb24uCiAgICAgLy8gSWYgdGhlIGV4cGVjdGVk
IHZlcnNpb24gaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbiB3ZSBhbHdheXMgcmV0dXJuIHdpdGgg
d2hhdGV2ZXIgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2Ugd2UgaGF2ZS4KICAgICBpZiAoKCFtX25l
dyB8fCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSkgJiYgbV9leHBlY3RlZFZlcnNpb24u
bGVuZ3RoKCkgJiYgbV9leHBlY3RlZFZlcnNpb24gIT0gY3VycmVudFZlcnNpb24pIHsKLSAgICAg
ICAgTE9HKFN0b3JhZ2VBUEksICJwYWdlIGV4cGVjdHMgdmVyc2lvbiAlcyBmcm9tIGRhdGFiYXNl
ICVzLCB3aGljaCBhY3R1YWxseSBoYXMgdmVyc2lvbiBuYW1lICVzIC0gb3BlbkRhdGFiYXNlKCkg
Y2FsbCB3aWxsIGZhaWwiLCBtX2V4cGVjdGVkVmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwKLSAgICAg
ICAgICAgIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCksIGN1cnJlbnRWZXJzaW9u
LmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gInVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAnIiArIG1fZXhwZWN0ZWRWZXJzaW9uICsgIicg
ZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9uIG9mICciICsgY3VycmVudFZlcnNpb24g
KyAiJyI7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIG1fc3FsaXRl
RGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTM5LDYgKzU0Niwx
MSBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OmlzSW50ZXJydXB0ZWQoKQogICAgIHJldHVybiBt
X3NxbGl0ZURhdGFiYXNlLmlzSW50ZXJydXB0ZWQoKTsKIH0KIAordm9pZCBBYnN0cmFjdERhdGFi
YXNlOjpsb2dFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+YWRkTWVzc2FnZShPdGhlck1lc3NhZ2VTb3VyY2UsIExvZ01l
c3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMCwgU3RyaW5nKCksIDApOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1FMX0RBVEFC
QVNFKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNlLmgJKHJl
dmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9BYnN0cmFjdERhdGFiYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9p
ZCBjbG9zZURhdGFiYXNlKCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybU9wZW5BbmRWZXJp
ZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYgZWMp
OworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZl
cnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
OwogCiAgICAgYm9vbCBnZXRWZXJzaW9uRnJvbURhdGFiYXNlKFN0cmluZyYgdmVyc2lvbiwgYm9v
bCBzaG91bGRDYWNoZVZlcnNpb24gPSB0cnVlKTsKICAgICBib29sIHNldFZlcnNpb25JbkRhdGFi
YXNlKGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgYm9vbCBzaG91bGRDYWNoZVZlcnNpb24gPSB0cnVl
KTsKQEAgLTEwNSw2ICsxMDUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRDYWNoZWRWZXJz
aW9uKGNvbnN0IFN0cmluZyYpOwogICAgIGJvb2wgZ2V0QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0
aW9uKFN0cmluZyYgdmVyc2lvbik7CiAKKyAgICB2b2lkIGxvZ0Vycm9yTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRhdGFiYXNlSW5mb1Rh
YmxlTmFtZSgpOwogCiAgICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVy
c2lvbldyYXBwZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQ2hh
bmdlVmVyc2lvbldyYXBwZXIuY3BwCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwx
MyArNTAsMTMgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZsaQogICAg
IFN0cmluZyBhY3R1YWxWZXJzaW9uOwogCiAgICAgaWYgKCF0cmFuc2FjdGlvbi0+ZGF0YWJhc2Uo
KS0+Z2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgewotICAgICAgICBMT0df
RVJST1IoIlVuYWJsZSB0byByZXRyaWV2ZSBhY3R1YWwgY3VycmVudCB2ZXJzaW9uIGZyb20gZGF0
YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHZlcmlmeSBjdXJyZW50IHZlcnNpb24gb2YgZGF0YWJh
c2UiKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVO
S05PV05fRVJSLCAidW5hYmxlIHRvIHJlYWQgdGhlIGN1cnJlbnQgdmVyc2lvbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5z
cWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBpZiAoYWN0
dWFsVmVyc2lvbiAhPSBtX29sZFZlcnNpb24pIHsKLSAgICAgICAgTE9HX0VSUk9SKCJPbGQgdmVy
c2lvbiBkb2Vzbid0IG1hdGNoIGFjdHVhbCB2ZXJzaW9uIik7CiAgICAgICAgIG1fc3FsRXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lv
biBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2gi
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTY5LDggKzY5LDkgQEAgYm9vbCBD
aGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBvc3RmbAogICAgIEFTU0VSVCh0cmFuc2FjdGlv
biAmJiB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKSk7CiAKICAgICBpZiAoIXRyYW5zYWN0aW9uLT5k
YXRhYmFzZSgpLT5zZXRWZXJzaW9uSW5EYXRhYmFzZShtX25ld1ZlcnNpb24pKSB7Ci0gICAgICAg
IExPR19FUlJPUigiVW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBkYXRhYmFzZSIpOwotICAg
ICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIs
ICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNlIik7CisgICAgICAgIG1fc3Fs
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0
byBzZXQgbmV3IHZlcnNpb24gaW4gZGF0YWJhc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3IoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNh
Y3Rpb24tPmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0RhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFi
YXNlLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFi
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsOCArOTgsOSBAQCBQYXNzUmVmUHRyPERhdGFi
YXNlPiBEYXRhYmFzZTo6b3BlbkRhdGFiCiAKICAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFiYXNl
ID0gYWRvcHRSZWYobmV3IERhdGFiYXNlKGNvbnRleHQsIG5hbWUsIGV4cGVjdGVkVmVyc2lvbiwg
ZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpKTsKIAotICAgIGlmICghZGF0YWJhc2UtPm9wZW5B
bmRWZXJpZnlWZXJzaW9uKCFjcmVhdGlvbkNhbGxiYWNrLCBlKSkgewotICAgICAgICBMT0coU3Rv
cmFnZUFQSSwgIkZhaWxlZCB0byBvcGVuIGFuZCB2ZXJpZnkgdmVyc2lvbiAoZXhwZWN0ZWQgJXMp
IG9mIGRhdGFiYXNlICVzIiwgZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRhYmFz
ZS0+ZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKKyAgICBpZiAoIWRhdGFiYXNlLT5vcGVuQW5kVmVyaWZ5VmVyc2lvbighY3JlYXRp
b25DYWxsYmFjaywgZSwgZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkYXRhYmFzZS0+bG9nRXJy
b3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRhYmFzZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KQEAgLTE3MywxNCArMTc0LDE0IEBAIFN0cmluZyBEYXRhYmFzZTo6dmVyc2lvbigp
IGNvbnN0CiAgICAgcmV0dXJuIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24oKTsKIH0KIAotYm9v
bCBEYXRhYmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRh
YmFzZSwgRXhjZXB0aW9uQ29kZSYgZSkKK2Jvb2wgRGF0YWJhc2U6Om9wZW5BbmRWZXJpZnlWZXJz
aW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUsIFN0cmlu
ZyYgZXJyb3JNZXNzYWdlKQogewogICAgIERhdGFiYXNlVGFza1N5bmNocm9uaXplciBzeW5jaHJv
bml6ZXI7CiAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRhdGFiYXNlVGhyZWFk
KCkgfHwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpLT50ZXJtaW5h
dGlvblJlcXVlc3RlZCgmc3luY2hyb25pemVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgT3duUHRyPERhdGFiYXNlT3BlblRhc2s+IHRh
c2sgPSBEYXRhYmFzZU9wZW5UYXNrOjpjcmVhdGUodGhpcywgc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsICZzeW5jaHJvbml6ZXIsIGUsIHN1Y2Nlc3MpOworICAgIE93blB0cjxEYXRhYmFzZU9wZW5U
YXNrPiB0YXNrID0gRGF0YWJhc2VPcGVuVGFzazo6Y3JlYXRlKHRoaXMsIHNldFZlcnNpb25Jbk5l
d0RhdGFiYXNlLCAmc3luY2hyb25pemVyLCBlLCBlcnJvck1lc3NhZ2UsIHN1Y2Nlc3MpOwogICAg
IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQoKS0+c2NoZWR1bGVJbW1l
ZGlhdGVUYXNrKHRhc2sucmVsZWFzZSgpKTsKICAgICBzeW5jaHJvbml6ZXIud2FpdEZvclRhc2tD
b21wbGV0aW9uKCk7CiAKQEAgLTIzOCw5ICsyMzksOSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgRGF0
YWJhc2U6Om1heGltdW1TaXplCiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigp
LmdldE1heFNpemVGb3JEYXRhYmFzZSh0aGlzKTsKIH0KIAotYm9vbCBEYXRhYmFzZTo6cGVyZm9y
bU9wZW5BbmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29k
ZSYgZSkKK2Jvb2wgRGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lv
bkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQog
ewotICAgIGlmIChBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShzZXRWZXJz
aW9uSW5OZXdEYXRhYmFzZSwgZSkpIHsKKyAgICBpZiAoQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9y
bU9wZW5BbmRWZXJpZnkoc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIGUsIGVycm9yTWVzc2FnZSkp
IHsKICAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQo
KSkKICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQo
KS0+cmVjb3JkRGF0YWJhc2VPcGVuKHRoaXMpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0RhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRh
YmFzZS5oCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJh
c2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsOCArOTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cnVuVHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiwgUGFzc1Jl
ZlB0cjxTUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2s+LAogICAgICAgICAgICAgICAgICAgICAg
ICAgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgYm9vbCByZWFkT25s
eSk7CiAKLSAgICBib29sIG9wZW5BbmRWZXJpZnlWZXJzaW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3
RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybU9wZW5B
bmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIGJvb2wgb3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFz
ZSwgRXhjZXB0aW9uQ29kZSYsIFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2aXJ0dWFsIGJv
b2wgcGVyZm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhj
ZXB0aW9uQ29kZSYsIFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKIAogICAgIHZvaWQgaW5Qcm9ncmVz
c1RyYW5zYWN0aW9uQ29tcGxldGVkKCk7CiAgICAgdm9pZCBzY2hlZHVsZVRyYW5zYWN0aW9uKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCShyZXZpc2lvbiA5
OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTksOCArNTksOSBAQCBQYXNzUmVmUHRyPERhdGFiYXNlU3luYz4gRGF0YWJh
c2VTeW5jOjpvCiAKICAgICBSZWZQdHI8RGF0YWJhc2VTeW5jPiBkYXRhYmFzZSA9IGFkb3B0UmVm
KG5ldyBEYXRhYmFzZVN5bmMoY29udGV4dCwgbmFtZSwgZXhwZWN0ZWRWZXJzaW9uLCBkaXNwbGF5
TmFtZSwgZXN0aW1hdGVkU2l6ZSkpOwogCi0gICAgaWYgKCFkYXRhYmFzZS0+cGVyZm9ybU9wZW5B
bmRWZXJpZnkoIWNyZWF0aW9uQ2FsbGJhY2ssIGVjKSkgewotICAgICAgICBMT0coU3RvcmFnZUFQ
SSwgIkZhaWxlZCB0byBvcGVuIGFuZCB2ZXJpZnkgdmVyc2lvbiAoZXhwZWN0ZWQgJXMpIG9mIGRh
dGFiYXNlICVzIiwgZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRhYmFzZS0+ZGF0
YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKKyAgICBpZiAoIWRhdGFiYXNlLT5wZXJmb3JtT3BlbkFuZFZlcmlmeSghY3JlYXRpb25DYWxs
YmFjaywgZWMsIGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZGF0YWJhc2UtPmxvZ0Vycm9yTWVz
c2FnZShlcnJvck1lc3NhZ2UpOwogICAgICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5y
ZW1vdmVPcGVuRGF0YWJhc2UoZGF0YWJhc2UuZ2V0KCkpOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CkBAIC05NiwzOSArOTcsNDkgQEAgdm9pZCBEYXRhYmFzZVN5bmM6OmNoYW5nZVZlcnNpb24o
Y29uc3QgUwogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRo
cmVhZCgpKTsKIAogICAgIGlmIChzcWxpdGVEYXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVz
cygpKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBjaGFuZ2VWZXJz
aW9uIGZyb20gd2l0aGluIGEgdHJhbnNhY3Rpb24iKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRp
b246OkRBVEFCQVNFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZlB0cjxT
UUxUcmFuc2FjdGlvblN5bmM+IHRyYW5zYWN0aW9uID0gU1FMVHJhbnNhY3Rpb25TeW5jOjpjcmVh
dGUodGhpcywgY2hhbmdlVmVyc2lvbkNhbGxiYWNrLCBmYWxzZSk7Ci0gICAgaWYgKChlYyA9IHRy
YW5zYWN0aW9uLT5iZWdpbigpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkp
KSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAg
ICAgIHJldHVybjsKKyAgICB9CiAKICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAo
IWdldFZlcnNpb25Gcm9tRGF0YWJhc2UoYWN0dWFsVmVyc2lvbikpIHsKKyAgICAgICAgc2V0TGFz
dEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHJlYWQgdGhlIGN1cnJlbnQgdmVyc2lvbiIsIHNxbGl0
ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkp
OwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBpZiAoYWN0dWFsVmVyc2lvbiAhPSBvbGRWZXJzaW9uKSB7CisgICAg
ICAgIHNldExhc3RFcnJvck1lc3NhZ2UoImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2Ug
YW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giKTsKICAgICAgICAgZWMgPSBT
UUxFeGNlcHRpb246OlZFUlNJT05fRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
aWYgKChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2Fj
dGlvbi0+ZXhlY3V0ZSgpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJvck1lc3NhZ2UoKS5p
c0VtcHR5KCkpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKCFzZXRWZXJzaW9u
SW5EYXRhYmFzZShuZXdWZXJzaW9uKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1
bmFibGUgdG8gc2V0IHRoZSBuZXcgdmVyc2lvbiIsIHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9y
KCksIHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9IFNRTEV4
Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAo
KGVjID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RFcnJv
ck1lc3NhZ2UoKS5pc0VtcHR5KCkpOwogICAgICAgICBzZXRDYWNoZWRWZXJzaW9uKG9sZFZlcnNp
b24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgc2V0RXhwZWN0ZWRWZXJzaW9uKG5l
d1ZlcnNpb24pOworICAgIHNldExhc3RFcnJvck1lc3NhZ2UoIiIpOwogfQogCiB2b2lkIERhdGFi
YXNlU3luYzo6dHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFj
az4gY2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTQ2LDEzICsxNTcsMTggQEAgdm9p
ZCBEYXRhYmFzZVN5bmM6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZQogICAgIEFTU0VSVChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKIAogICAgIGlmIChzcWxpdGVE
YXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKSB7CisgICAgICAgIHNldExhc3RFcnJv
ck1lc3NhZ2UoInVuYWJsZSB0byBzdGFydCBhIHRyYW5zYWN0aW9uIGZyb20gd2l0aGluIGEgdHJh
bnNhY3Rpb24iKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmM+IHRy
YW5zYWN0aW9uID0gU1FMVHJhbnNhY3Rpb25TeW5jOjpjcmVhdGUodGhpcywgY2FsbGJhY2ssIHJl
YWRPbmx5KTsKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpIHx8IChlYyA9IHRy
YW5zYWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5jb21taXQoKSkpCisg
ICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5iZWdpbigpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+
ZXhlY3V0ZSgpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkpKSB7CisgICAgICAgIEFT
U0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHRyYW5zYWN0aW9u
LT5yb2xsYmFjaygpOworICAgIH0KKworICAgIHNldExhc3RFcnJvck1lc3NhZ2UoIiIpOwogfQog
CiB2b2lkIERhdGFiYXNlU3luYzo6bWFya0FzRGVsZXRlZEFuZENsb3NlKCkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCwxMCAr
NjQsMjMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYXJrQXNEZWxldGVkQW5kQ2xvc2Uo
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VJbW1lZGlhdGVseSgpOwogCisgICAgY29uc3QgU3Ry
aW5nJiBsYXN0RXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXJyb3JNZXNzYWdl
OyB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkg
eyBtX2xhc3RFcnJvck1lc3NhZ2UgPSBtZXNzYWdlOyB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JN
ZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlKQorICAgIHsKKyAgICAg
ICAgc2V0TGFzdEVycm9yTWVzc2FnZShTdHJpbmc6OmZvcm1hdCgiJXMgKCVkKSIsIG1lc3NhZ2Us
IHNxbGl0ZUNvZGUpKTsKKyAgICB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNzYWdlKGNvbnN0
IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVNZXNzYWdl
KQorICAgIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZShTdHJpbmc6OmZvcm1hdCgiJXMg
KCVkLCAlcykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7CisgICAgfQor
CiBwcml2YXRlOgogICAgIERhdGFiYXNlU3luYyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwKICAgICAgICAg
ICAgICAgICAgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBlc3RpbWF0
ZWRTaXplKTsKICAgICB2b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rp
b25TeW5jQ2FsbGJhY2s+LCBib29sIHJlYWRPbmx5LCBFeGNlcHRpb25Db2RlJik7CisKKyAgICBT
dHJpbmcgbV9sYXN0RXJyb3JNZXNzYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAkocmV2aXNpb24gOTk4
OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDYgKzM2LDcgQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBOb1N0YXRp
Y1RhYmxlcwogICAgIF0gRGF0YWJhc2VTeW5jIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyB2ZXJzaW9uOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGxhc3RFcnJvck1lc3NhZ2U7CiAgICAgICAgIHZvaWQgY2hhbmdlVmVyc2lvbihpbiBET01TdHJp
bmcgb2xkVmVyc2lvbiwgaW4gRE9NU3RyaW5nIG5ld1ZlcnNpb24sIGluIFtDYWxsYmFjaywgT3B0
aW9uYWxdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgdm9pZCB0cmFuc2FjdGlvbihpbiBbQ2FsbGJhY2tdIFNRTFRyYW5z
YWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgdm9pZCByZWFkVHJhbnNhY3Rpb24oaW4gW0NhbGxiYWNrXSBTUUxUcmFuc2FjdGlvblN5bmND
YWxsYmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suY3BwCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsMTAg
Kzk4LDExIEBAIHZvaWQgRGF0YWJhc2VUYXNrOjpwZXJmb3JtVGFzaygpCiAvLyAqKiogRGF0YWJh
c2VPcGVuVGFzayAqKioKIC8vIE9wZW5zIHRoZSBkYXRhYmFzZSBmaWxlIGFuZCB2ZXJpZmllcyB0
aGUgdmVyc2lvbiBtYXRjaGVzIHRoZSBleHBlY3RlZCB2ZXJzaW9uLgogCi1EYXRhYmFzZTo6RGF0
YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuVGFzayhEYXRhYmFzZSogZGF0YWJhc2UsIGJvb2wg
c2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hy
b25pemVyLCBFeGNlcHRpb25Db2RlJiBjb2RlLCBib29sJiBzdWNjZXNzKQorRGF0YWJhc2U6OkRh
dGFiYXNlT3BlblRhc2s6OkRhdGFiYXNlT3BlblRhc2soRGF0YWJhc2UqIGRhdGFiYXNlLCBib29s
IHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNo
cm9uaXplciwgRXhjZXB0aW9uQ29kZSYgY29kZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wm
IHN1Y2Nlc3MpCiAgICAgOiBEYXRhYmFzZVRhc2soZGF0YWJhc2UsIHN5bmNocm9uaXplcikKICAg
ICAsIG1fc2V0VmVyc2lvbkluTmV3RGF0YWJhc2Uoc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UpCiAg
ICAgLCBtX2NvZGUoY29kZSkKKyAgICAsIG1fZXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSkKICAg
ICAsIG1fc3VjY2VzcyhzdWNjZXNzKQogewogICAgIEFTU0VSVChzeW5jaHJvbml6ZXIpOyAvLyBB
IHRhc2sgd2l0aCBvdXRwdXQgcGFyYW1ldGVycyBpcyBzdXBwb3NlZCB0byBiZSBzeW5jaHJvbm91
cy4KQEAgLTEwOSw3ICsxMTAsMTAgQEAgRGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OkRhdGFi
YXNlT3BlbgogCiB2b2lkIERhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpkb1BlcmZvcm1UYXNr
KCkKIHsKLSAgICBtX3N1Y2Nlc3MgPSBkYXRhYmFzZSgpLT5wZXJmb3JtT3BlbkFuZFZlcmlmeSht
X3NldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBtX2NvZGUpOworICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2U7CisgICAgbV9zdWNjZXNzID0gZGF0YWJhc2UoKS0+cGVyZm9ybU9wZW5BbmRWZXJpZnkobV9z
ZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgbV9jb2RlLCBlcnJvck1lc3NhZ2UpOworICAgIGlmICgh
bV9zdWNjZXNzKQorICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IGVycm9yTWVzc2FnZS5pc29sYXRl
ZENvcHkoKTsKIH0KIAogI2lmICFMT0dfRElTQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvRGF0YWJhc2VUYXNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9EYXRhYmFzZVRhc2suaAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0RhdGFiYXNlVGFzay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTMgKzEwMCwxMyBAQCBw
cml2YXRlOgogCiBjbGFzcyBEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzayA6IHB1YmxpYyBEYXRh
YmFzZVRhc2sgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPERhdGFiYXNlT3BlblRh
c2s+IGNyZWF0ZShEYXRhYmFzZSogZGIsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERh
dGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2RlJiBjb2Rl
LCBib29sJiBzdWNjZXNzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPERhdGFiYXNlT3BlblRhc2s+
IGNyZWF0ZShEYXRhYmFzZSogZGIsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFi
YXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2RlJiBjb2RlLCBT
dHJpbmcmIGVycm9yTWVzc2FnZSwgYm9vbCYgc3VjY2VzcykKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRGF0YWJhc2VPcGVuVGFzayhkYiwgc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsIHN5bmNocm9uaXplciwgY29kZSwgc3VjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IERhdGFiYXNlT3BlblRhc2soZGIsIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBzeW5j
aHJvbml6ZXIsIGNvZGUsIGVycm9yTWVzc2FnZSwgc3VjY2VzcykpOwogICAgIH0KIAogcHJpdmF0
ZToKLSAgICBEYXRhYmFzZU9wZW5UYXNrKERhdGFiYXNlKiwgYm9vbCBzZXRWZXJzaW9uSW5OZXdE
YXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiwgRXhjZXB0aW9uQ29kZSYsIGJvb2wm
IHN1Y2Nlc3MpOworICAgIERhdGFiYXNlT3BlblRhc2soRGF0YWJhc2UqLCBib29sIHNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqLCBFeGNlcHRpb25Db2Rl
JiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wmIHN1Y2Nlc3MpOwogCiAgICAgdmlydHVhbCB2
b2lkIGRvUGVyZm9ybVRhc2soKTsKICNpZiAhTE9HX0RJU0FCTEVECkBAIC0xMTUsNiArMTE1LDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFzZTsKICAgICBF
eGNlcHRpb25Db2RlJiBtX2NvZGU7CisgICAgU3RyaW5nJiBtX2Vycm9yTWVzc2FnZTsKICAgICBi
b29sJiBtX3N1Y2Nlc3M7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVy
cm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCShy
ZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzksNiArMzksMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
U1FMRXJyb3IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1FMRXJyb3I+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNRTEVycm9yKGNv
ZGUsIG1lc3NhZ2UpKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUo
dW5zaWduZWQgY29kZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNvZGUpCisgICAg
eworICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQpIiwg
bWVzc2FnZSwgc3FsaXRlQ29kZSkpOworICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTUUxF
cnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxp
dGVDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVNZXNzYWdlKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGNyZWF0ZShjb2RlLCBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkICVzKSIsIG1lc3NhZ2UsIHNxbGl0
ZUNvZGUsIHNxbGl0ZU1lc3NhZ2UpKTsKKyAgICB9CiAKICAgICB1bnNpZ25lZCBjb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9jb2RlOyB9CiAgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVy
biBtX21lc3NhZ2UuaXNvbGF0ZWRDb3B5KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU1FMU3RhdGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1NRTFN0YXRlbWVudC5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TUUxTdGF0ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCwxMCBAQCBi
b29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAKICAgICBpZiAocmVzdWx0
ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiVW5hYmxlIHRvIHZl
cmlmeSBjb3JyZWN0bmVzcyBvZiBzdGF0ZW1lbnQgJXMgLSBlcnJvciAlaSAoJXMpIiwgbV9zdGF0
ZW1lbnQuYXNjaWkoKS5kYXRhKCksIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsK
LSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUocmVzdWx0ID09IFNRTFJlc3VsdElu
dGVycnVwdCA/IFNRTEVycm9yOjpEQVRBQkFTRV9FUlIgOiBTUUxFcnJvcjo6U1lOVEFYX0VSUiwg
ZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBTUUxSZXN1
bHRJbnRlcnJ1cHQpCisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50IiwgcmVzdWx0
LCAiaW50ZXJydXB0ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9lcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIsICJjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTk5LDcgKzEwMiw3IEBAIGJvb2wgU1FMU3RhdGVtZW50
OjpleGVjdXRlKERhdGFiYXNlKiBkYikKIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3Vs
dE9rKSB7CiAgICAgICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkZhaWxlZCB0byBiaW5kIHZhbHVl
IGluZGV4ICVpIHRvIHN0YXRlbWVudCBmb3IgcXVlcnkgJyVzJyIsIGkgKyAxLCBtX3N0YXRlbWVu
dC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAg
ICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VS
UiwgImNvdWxkIG5vdCBiaW5kIHZhbHVlIiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNn
KCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTIz
LDcgKzEyNiw3IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlKiBkYikKICAg
ICAgICAgfSB3aGlsZSAocmVzdWx0ID09IFNRTFJlc3VsdFJvdyk7CiAKICAgICAgICAgaWYgKHJl
c3VsdCAhPSBTUUxSZXN1bHREb25lKSB7Ci0gICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkp
OworICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFC
QVNFX0VSUiwgImNvdWxkIG5vdCBpdGVyYXRlIHJlc3VsdHMiLCByZXN1bHQsIGRhdGFiYXNlLT5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHREb25lKSB7CkBAIC0xMzUsNyArMTM4LDcg
QEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogICAgICAgICBzZXRG
YWlsdXJlRHVlVG9RdW90YSgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VS
UiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgbV9lcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5vdCBleGVjdXRlIHN0YXRl
bWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1l
bnRTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRl
bWVudFN5bmMuY3BwCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U1FMU3RhdGVtZW50U3luYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDExICs2MSwxMyBAQCBQ
YXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgaW50IHJlc3VsdCA9
IHN0YXRlbWVudC5wcmVwYXJlKCk7CiAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewog
ICAgICAgICBlYyA9IChyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0ID8gU1FMRXhjZXB0aW9u
OjpEQVRBQkFTRV9FUlIgOiBTUUxFeGNlcHRpb246OlNZTlRBWF9FUlIpOworICAgICAgICBkYi0+
c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50IiwgcmVzdWx0
LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK
ICAgICBpZiAoc3RhdGVtZW50LmJpbmRQYXJhbWV0ZXJDb3VudCgpICE9IG1fYXJndW1lbnRzLnNp
emUoKSkgewogICAgICAgICBlYyA9IChkYi0+aXNJbnRlcnJ1cHRlZCgpPyBTUUxFeGNlcHRpb246
OkRBVEFCQVNFX0VSUiA6IFNRTEV4Y2VwdGlvbjo6U1lOVEFYX0VSUik7CisgICAgICAgIGRiLT5z
ZXRMYXN0RXJyb3JNZXNzYWdlKCJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1lbnQgc3RyaW5nIGRv
ZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50Iik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0K
IApAQCAtNzMsMTEgKzc1LDEzIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1l
bnRTeW4KICAgICAgICAgcmVzdWx0ID0gc3RhdGVtZW50LmJpbmRWYWx1ZShpICsgMSwgbV9hcmd1
bWVudHNbaV0pOwogICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEZ1bGwpIHsKICAgICAg
ICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpRVU9UQV9FUlI7CisgICAgICAgICAgICBkYi0+c2V0
TGFzdEVycm9yTWVzc2FnZSgidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ug
c3BhY2UiKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246
OkRBVEFCQVNFX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3Vs
ZCBub3QgYmluZCB2YWx1ZSIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAyLDYgKzEwNiw3IEBA
IFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnRTeW4KIAogICAgICAgICBpZiAo
cmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpIHsKICAgICAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9u
OjpEQVRBQkFTRV9FUlI7CisgICAgICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291
bGQgbm90IGl0ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChyZXN1
bHQgPT0gU1FMUmVzdWx0RG9uZSkgewpAQCAtMTExLDkgKzExNiwxMSBAQCBQYXNzUmVmUHRyPFNR
TFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gU1FM
UmVzdWx0RnVsbCkgewogICAgICAgICAvLyBRdW90YSBlcnJvciwgdGhlIGRlbGVnYXRlIHdpbGwg
YmUgYXNrZWQgZm9yIG1vcmUgc3BhY2UgYW5kIHRoaXMgc3RhdGVtZW50IG1pZ2h0IGJlIHJlLXJ1
bi4KICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlFVT1RBX0VSUjsKKyAgICAgICAgZGItPnNl
dExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdl
IHNwYWNlIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGVjID0g
U1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNz
YWdlKCJjb3VsZCBub3QgZXhlY3V0ZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2NSw4ICsyNjUsOSBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQ
CiAgICAgLy8gVHJhbnNhY3Rpb24gU3RlcHMgMSsyIC0gT3BlbiBhIHRyYW5zYWN0aW9uIHRvIHRo
ZSBkYXRhYmFzZSwganVtcGluZyB0byB0aGUgZXJyb3IgY2FsbGJhY2sgaWYgdGhhdCBmYWlscwog
ICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7CiAgICAgICAgIEFT
U0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJvZ3Jlc3Mo
KSk7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBiZWdpbiB0cmFuc2FjdGlvbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRl
RGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKLSAgICAg
ICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJB
U0VfRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUgZGF0YWJhc2UiKTsK
ICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0yNzYsMTAgKzI3NywxMSBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJh
bnNhY3Rpb25BbmRQCiAgICAgLy8gdGhlIGFjdHVhbCB2ZXJzaW9uLiBJbiBzaW5nbGUtcHJvY2Vz
cyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFwIGxvb2t1cC4KICAgICBTdHJpbmcgYWN0dWFs
VmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2UtPmdldEFjdHVhbFZlcnNpb25Gb3JUcmFuc2Fj
dGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gcmVhZCB2ZXJz
aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2Rh
dGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVE
YXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgbV9kYXRhYmFzZS0+ZGlzYWJsZUF1
dGhvcml6ZXIoKTsKICAgICAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwogICAgICAg
ICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25F
cnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0
byByZWFkIHZlcnNpb24iKTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yOTMsOCArMjk1LDcgQEAgdm9pZCBTUUxUcmFu
c2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgICAgICBtX2RhdGFiYXNlLT5lbmFibGVB
dXRob3JpemVyKCk7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3Fs
RXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBt
X3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VS
UiwgInVua25vd24gZXJyb3Igb2NjdXJlZCBzZXR0aW5nIHVwIHRyYW5zYWN0aW9uIik7Ci0KKyAg
ICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cmVkIGR1cmluZyB0cmFuc2FjdGlvbiBw
cmVmbGlnaHQiKTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC00NzAsNyArNDcxLDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlv
bjo6cG9zdGZsaWdodEFuZENvbW1pdAogICAgIGlmIChtX3dyYXBwZXIgJiYgIW1fd3JhcHBlci0+
cGVyZm9ybVBvc3RmbGlnaHQodGhpcykpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
bV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikK
LSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cmVkIHNldHRpbmcgdXAgdHJhbnNh
Y3Rpb24iKTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cmVkIGR1cmluZyB0
cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Iik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3Io
ZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDg3LDcgKzQ4OCw4IEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQKICAgICAgICAgaWYgKG1fd3JhcHBl
cikKICAgICAgICAgICAgIG1fd3JhcHBlci0+aGFuZGxlQ29tbWl0RmFpbGVkQWZ0ZXJQb3N0Zmxp
Z2h0KHRoaXMpOwogICAgICAgICBtX3N1Y2Nlc3NDYWxsYmFja1dyYXBwZXIuY2xlYXIoKTsKLSAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFU
QUJBU0VfRVJSLCAiZmFpbGVkIHRvIGNvbW1pdCB0aGUgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAg
bV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0Vf
RVJSLCAidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25T
eW5jLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRy
YW5zYWN0aW9uU3luYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc1LDEyICs3NSwxNyBAQCBTUUxU
cmFuc2FjdGlvblN5bmM6On5TUUxUcmFuc2FjdGlvblN5bmMoCiBQYXNzUmVmUHRyPFNRTFJlc3Vs
dFNldD4gU1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRlU1FMKGNvbnN0IFN0cmluZyYgc3FsU3Rh
dGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmlzQ29udGV4dFRocmVhZCgpKTsKKworICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3Nh
Z2UoIiIpOworCiAgICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkgeworICAgICAgICBtX2Rh
dGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjYW5ub3QgZXhlY3V0ZVNRTCBiZWNhdXNlIHRo
ZSBkYXRhYmFzZSBpcyBub3Qgb3BlbiIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VU5L
Tk9XTl9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGlmIChtX2hhc1ZlcnNp
b25NaXNtYXRjaCkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJj
YW5ub3QgZXhlY3V0ZVNRTCBiZWNhdXNlIHRoZXJlIGlzIGEgdmVyc2lvbiBtaXNtYXRjaCIpOwog
ICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9FUlI7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KQEAgLTExMCw4ICsxMTUsMTAgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNR
TFRyYW5zYWN0aW9uUwogICAgICAgICAgICAgICAgIGlmIChtX3RyYW5zYWN0aW9uQ2xpZW50LT5k
aWRFeGNlZWRRdW90YShkYXRhYmFzZSgpKSkgewogICAgICAgICAgICAgICAgICAgICBlYyA9IDA7
CiAgICAgICAgICAgICAgICAgICAgIHJldHJ5U3RhdGVtZW50ID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAg
ICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVyZSB3YXMgbm90IGVub3VnaCBy
ZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0x
MjcsOCArMTM0LDEwIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblMK
IEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbigpCiB7CiAgICAgQVNTRVJU
KG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkp
OwotICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkpCisgICAgaWYgKCFtX2RhdGFiYXNlLT5v
cGVuZWQoKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjYW5u
b3QgYmVnaW4gdHJhbnNhY3Rpb24gYmVjYXVzZSB0aGUgZGF0YWJhc2UgaXMgbm90IG9wZW4iKTsK
ICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CisgICAgfQogCiAgICAg
QVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVz
cygpKTsKIApAQCAtMTQ3LDYgKzE1Niw4IEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25T
eW5jOjpiZWdpbigKICAgICAvLyBDaGVjayBpZiBiZWdpbigpIHN1Y2NlZWRlZC4KICAgICBpZiAo
IW1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkgewogICAgICAgICBBU1NFUlQoIW1f
ZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOworICAg
ICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gYmVnaW4gdHJh
bnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNs
ZWFyKCk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKICAgICB9
CkBAIC0xNTYsNiArMTY3LDggQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJl
Z2luKAogICAgIC8vIHRoZSBhY3R1YWwgdmVyc2lvbi4gSW4gc2luZ2xlLXByb2Nlc3MgYnJvd3Nl
cnMsIHRoaXMgaXMganVzdCBhIG1hcCBsb29rdXAuCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247
CiAgICAgaWYgKCFtX2RhdGFiYXNlLT5nZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oYWN0
dWFsVmVyc2lvbikpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgi
dW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRh
YmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJvbGxiYWNr
KCk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKICAgICB9CkBA
IC0xNjgsNiArMTgxLDggQEAgRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1
dAogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlz
Q29udGV4dFRocmVhZCgpKTsKICAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpIHx8IChtX2Nh
bGxiYWNrICYmICFtX2NhbGxiYWNrLT5oYW5kbGVFdmVudCh0aGlzKSkpIHsKKyAgICAgICAgaWYg
KG1fZGF0YWJhc2UtPmxhc3RFcnJvck1lc3NhZ2UoKS5pc0VtcHR5KCkpCisgICAgICAgICAgICBt
X2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJmYWlsZWQgdG8gZXhlY3V0ZSB0cmFuc2Fj
dGlvbiBjYWxsYmFjayIpOwogICAgICAgICBtX2NhbGxiYWNrID0gMDsKICAgICAgICAgcmV0dXJu
IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgfQpAQCAtMTc5LDggKzE5NCwxMCBAQCBF
eGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0CiBFeGNlcHRpb25Db2RlIFNR
TFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0KCkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2Rh
dGFiYXNlLT5vcGVuZWQoKSkKKyAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAg
ICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBjb21taXQgdHJh
bnNhY3Rpb24gYmVjYXVzZSB0aGUgZGF0YWJhc2UgaXMgbm90IG9wZW4uIik7CiAgICAgICAgIHJl
dHVybiBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOworICAgIH0KIAogICAgIEFTU0VSVChtX3Nx
bGl0ZVRyYW5zYWN0aW9uKTsKIApAQCAtMTg5LDggKzIwNiwxMSBAQCBFeGNlcHRpb25Db2RlIFNR
TFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0CiAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXpl
cigpOwogCiAgICAgLy8gSWYgdGhlIGNvbW1pdCBmYWlsZWQsIHRoZSB0cmFuc2FjdGlvbiB3aWxs
IHN0aWxsIGJlIG1hcmtlZCBhcyAiaW4gcHJvZ3Jlc3MiCi0gICAgaWYgKG1fc3FsaXRlVHJhbnNh
Y3Rpb24tPmluUHJvZ3Jlc3MoKSkKKyAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9n
cmVzcygpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJs
ZSB0byBjb21taXQgdHJhbnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4g
U1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgfQogCiAgICAgbV9zcWxpdGVUcmFuc2Fj
dGlvbi5jbGVhcigpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5OTg5OSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDExLTExLTEwICBN
aWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBs
YXlvdXQgdGVzdHMgZm9yICBuZXcgd2Vic3FsIGVycm9yIG1lc3NhZ2VzIGFuZCBjb25zb2xlIGxv
Z2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MTU3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLXdvcmtlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1h
Y2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmh0bWw6CisgICAgICAgICogZmFzdC93b3Jr
ZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNl
LWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvd29y
a2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3luYy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFnZS90cmFuc2FjdGlvbi1p
bi10cmFuc2FjdGlvbi1zeW5jLmh0bWw6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2Uv
dHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
c3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1leHBlY3RlZC50eHQ6
CisgICAgICAgICogc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3Jp
dGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVj
dGVkLnR4dDoKKwogMjAxMS0xMS0xMCAgU3RlcGhlbiBXaGl0ZSAgPHNlbm9yYmxhbmNvQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFByZS1lbXB0aXZlbHkgbWFyayBhIGNhbnZh
cyB0ZXN0IGFzIGZhaWxpbmcgZm9yIG5leHQgU2tpYSByb2xsLgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLXdvcmtlci1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3Jh
Z2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLXdvcmtlci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZl
cnNpb24taGFuZGxlLXJldXNlLXdvcmtlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw2IEBACiBUaGlzIHRlc3RzIHRoYXQgYSBkYXRhYmFzZSBjYW4gYmUgYWNjZXNzZWQg
YWZ0ZXIgY2hhbmdpbmcgaXRzIHZlcnNpb24uIFlvdSBzaG91bGQgc2VlIGFuIGVycm9yIGFib3V0
IEZvb0JhciB0YWJsZSBiZWxvdywgbm90IGFib3V0IG1pc21hdGNoaW5nIHZlcnNpb25zLgogY2hh
bmdlVmVyc2lvbjogdHJhbnNhY3Rpb24gY2FsbGJhY2sKIGNoYW5nZVZlcnNpb246IHN1Y2Nlc3Mg
Y2FsbGJhY2sKLXRyYW5zYWN0aW9uOiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2s6IG5vIHN1Y2gg
dGFibGU6IEZvb0JhcgordHJhbnNhY3Rpb246IHN0YXRlbWVudCBlcnJvciBjYWxsYmFjazogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vIHN1Y2ggdGFibGU6IEZvb0JhcikKIFRFU1Qg
Q09NUExFVEUuCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2V4ZWN1
dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2Nl
cHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4OTYp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9leGVjdXRlc3FsLWFjY2VwdHMt
b25seS1vbmUtc3RhdGVtZW50LXN5bmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDEwICsxLDEwIEBACiBUZXN0IHRoYXQgZXhlY3V0ZVNxbCgpIGFjY2VwdHMgb25seSBvbmUgc3Rh
dGVtZW50LgotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDEpCi1QQVNTOiBJTlNFUlQg
SU5UTyBUZXN0IFZBTFVFUyAoMik7Ci1QQVNTOiAgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAo
MykgICAgCi1QQVNTOiAgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNCk7ICAgCi1QQVNTOiBJ
TlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNSkgICA7Ci1QQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZB
TFVFUyAoNik7IGdhcmJhZ2UKLVBBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg3KTsgSU5T
RVJUIElOVE8gVGVzdCBWQUxVRVMgKDgpCi1QQVNTOiAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVT
ICg5KTsgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMTApOyAgIAorUEFTUzogSU5TRVJUIElO
VE8gVGVzdCBWQUxVRVMgKDEpLCAKK1BBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgyKTss
IAorUEFTUzogICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDMpICAgICwgCitQQVNTOiAgICBJ
TlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNCk7ICAgLCAKK1BBU1M6IElOU0VSVCBJTlRPIFRlc3Qg
VkFMVUVTICg1KSAgIDssIAorUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDYpOyBnYXJi
YWdlLCBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEsIG5vdCBhbiBlcnJvcikKK1BBU1M6
IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg3KTsgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDgp
LCBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEsIG5vdCBhbiBlcnJvcikKK1BBU1M6ICAg
SU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDkpOyAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgx
MCk7ICAgLCBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEsIG5vdCBhbiBlcnJvcikKIApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVh
dGlvbi1jYWxsYmFjay1zeW5jLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN5
bmMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stc3luYy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlzbWF0Y2gsICcxLjAnIGRv
ZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50VmVyc2lvbiBvZiAnJwogVGhpcyB0ZXN0IHRlc3RzIG9w
ZW5EYXRhYmFzZVN5bmMoKSdzIGNyZWF0aW9uIGNhbGxiYWNrLgogUEFTUzogQ3JlYXRpb24gY2Fs
bGJhY2sgd2FzIGNhbGxlZC4KIFBBU1M6IFZlcnNpb24gc2V0IHRvIGVtcHR5IHN0cmluZyBhcyBl
eHBlY3RlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0
YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3luYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHkt
dmVyc2lvbi1zeW5jLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLXN5
bmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDA6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNo
LCAndGVzdCcgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9uIG9mICcnCiBUaGlzIHRl
c3RzIHRoYXQgY2FsbGluZyBvcGVuRGF0YWJhc2Ugd2l0aCBhbiBlbXB0eSB2ZXJzaW9uIHN0cmlu
ZyBzZXRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhhdCBkYXRhYmFzZSB0byB0aGUgZW1wdHkg
c3RyaW5nIGFuZCBzdWJzZXF1ZW50IGF0dGVtcHRzIHRvIG9wZW4gdGhlIGRhdGFiYXNlIHdpdGgg
YSBkaWZmZXJlbnQgZXhwZWN0ZWQgdmVyc2lvbiB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTCiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3Jh
Z2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC02LDIwICs2LDIwIEBAIFNRTElURV9DUkVBVEVfVEVNUF9UUklH
R0VSIHN0YXRlbWVudCBzdWMKIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElU
RV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9WVEFCTEUg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfVlRBQkxFIHN0
YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhv
cml6ZWQpCiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1NFTEVDVCBz
dGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgog
U1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1VQREFURSBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgotU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9y
aXplZAorU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNR
TElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RFVEFDSCBz
dGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCitTUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJ
VEVfUkVJTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50
IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVf
RFJPUF9JTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBz
dGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBz
dWNjZWVkZWQuCkBAIC0yOCw0MSArMjgsNDEgQEAgU1FMSVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FM
SVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFdyaXRlIHRyYW5zYWN0aW9uIHN1
Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhv
cml6ZWQKK1NRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0NSRUFURV9UQUJMRSBz
dGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQg
ZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50
IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQg
ZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NS
RUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBw
cmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RSSUdH
RVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBh
dXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZU
QUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5v
dCBhdXRob3JpemVkKQogU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgog
U1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JF
QVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1Q
X1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1T
UUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FM
SVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCiBTUUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfREVMRVRFIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3Jp
emVkCi1TUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
LVNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBubyBzdWNoIHRhYmxlOiBUZXN0
VGFibGUKLVNRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX1JFSU5ERVgg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTkFMWVpFIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9JTkRFWCBzdGF0ZW1lbnQgZmFp
bGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFp
bGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1ZJRVcgc3RhdGVtZW50IGZh
aWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogbm90
IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRo
b3JpemVkCitTUUxJVEVfREVMRVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitT
UUxJVEVfVVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQUxU
RVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm8gc3VjaCB0YWJsZTogVGVzdFRhYmxlKQor
U1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3Vs
ZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FOQUxZ
WkUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1Q
X1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxl
ZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElU
RV9EUk9QX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQor
U1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFJl
YWQgdHJhbnNhY3Rpb25zIHN1Y2NlZWRlZC4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvdHJhbnNhY3Rp
b24taW4tdHJhbnNhY3Rpb24tc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rp
b24tc3luYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzIEBACiBUZXN0
IHRoYXQgdHJ5aW5nIHRvIHJ1biBhIHRyYW5zYWN0aW9uIGluc2lkZSBhbm90aGVyIHRyYW5zYWN0
aW9uIHRocm93cyBhbiBleGNlcHRpb24uCi1QQVNTOiBFeGNlcHRpb24gdGhyb3duIHdoaWxlIHRy
eWluZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rpb24uCitQQVNTOiBFeGNlcHRpb24gdGhyb3du
IHdoaWxlIHRyeWluZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rpb24gKHVuYWJsZSB0byBzdGFy
dCBhIHRyYW5zYWN0aW9uIGZyb20gd2l0aGluIGEgdHJhbnNhY3Rpb24pLgogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvZXhlY3V0ZXNxbC1hY2NlcHRz
LW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNlcy9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUt
c3RhdGVtZW50LXN5bmMuanMJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3N0b3JhZ2UvcmVzb3VyY2VzL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0
ZW1lbnQtc3luYy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwxMSArMSwxMyBAQAogZnVuY3Rpb24g
ZXhlY3V0ZVN0YXRlbWVudCh0eCwgZXhwZWN0ZWRUb1Bhc3MsIHN0YXRlbWVudCkKIHsKKyAgICB2
YXIgbWVzc2FnZTsKICAgICB0cnkgewogICAgICAgICB0eC5leGVjdXRlU3FsKHN0YXRlbWVudCk7
Ci0gICAgICAgIHBvc3RNZXNzYWdlKGV4cGVjdGVkVG9QYXNzID8gIlBBU1M6ICIgKyBzdGF0ZW1l
bnQgOiAiRkFJTDogIiArIHN0YXRlbWVudCk7CisgICAgICAgIG1lc3NhZ2UgPSBleHBlY3RlZFRv
UGFzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICI7CiAgICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAg
IHBvc3RNZXNzYWdlKCFleHBlY3RlZFRvUGFzcyA/ICJQQVNTOiAiICsgc3RhdGVtZW50IDogIkZB
SUw6ICIgKyBzdGF0ZW1lbnQpOworICAgICAgICBtZXNzYWdlID0gIWV4cGVjdGVkVG9QYXNzID8g
IlBBU1M6ICIgOiAiRkFJTDogIjsKICAgICB9CisgICAgcG9zdE1lc3NhZ2UobWVzc2FnZSArIHN0
YXRlbWVudCArICIsICIgKyBkYi5sYXN0RXJyb3JNZXNzYWdlKTsKIH0KIAogdmFyIGRiID0gb3Bl
bkRhdGFiYXNlU3luYygiRXhlY3V0ZVNRTEFjY2VwdHNPbmx5T25lU3RhdGVtZW50VGVzdCIsICIx
LjAiLCAiIiwgMSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNv
dXJjZXMvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvdHJhbnNhY3Rpb24taW4t
dHJhbnNhY3Rpb24tc3luYy5qcwkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3lu
Yy5qcwkod29ya2luZyBjb3B5KQpAQCAtMiw5ICsyLDkgQEAgdmFyIGRiID0gb3BlbkRhdGFiYXNl
U3luYygiVHJhbnNhY3Rpb25JbgogZGIudHJhbnNhY3Rpb24oZnVuY3Rpb24odHgpIHsKICAgICB0
cnkgewogICAgICAgICBkYi50cmFuc2FjdGlvbihmdW5jdGlvbihuZXN0ZWRUeCkgeyB9KTsKLSAg
ICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IFRyeWluZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rp
b24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4iKTsKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZB
SUw6IFRyeWluZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rpb24gc2hvdWxkIHRocm93IGFuIGV4
Y2VwdGlvbi4iICsgZGIubGFzdEVycm9yTWVzc2FnZSk7CiAgICAgfSBjYXRjaCAoZXJyKSB7Ci0g
ICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiBFeGNlcHRpb24gdGhyb3duIHdoaWxlIHRyeWluZyB0
byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rpb24uIik7CisgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNT
OiBFeGNlcHRpb24gdGhyb3duIHdoaWxlIHRyeWluZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rp
b24gKCIgKyBkYi5sYXN0RXJyb3JNZXNzYWdlICsgIikuIik7CiAgICAgfQogfSk7CiAKSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhh
bmRsZS1yZXVzZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMv
c3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhpcyB0ZXN0cyB0aGF0IGEgZGF0YWJhc2UgY2FuIGJl
IGFjY2Vzc2VkIGFmdGVyIGNoYW5naW5nIGl0cyB2ZXJzaW9uLiBZb3Ugc2hvdWxkIHNlZSBhbiBl
cnJvciBhYm91dCBGb29CYXIgdGFibGUgYmVsb3csIG5vdCBhYm91dCBtaXNtYXRjaGluZyB2ZXJz
aW9ucy4KIGNoYW5nZVZlcnNpb246IHRyYW5zYWN0aW9uIGNhbGxiYWNrCiBjaGFuZ2VWZXJzaW9u
OiBzdWNjZXNzIGNhbGxiYWNrCi10cmFuc2FjdGlvbjogc3RhdGVtZW50IGVycm9yIGNhbGxiYWNr
OiBubyBzdWNoIHRhYmxlOiBGb29CYXIKK3RyYW5zYWN0aW9uOiBzdGF0ZW1lbnQgZXJyb3IgY2Fs
bGJhY2s6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBubyBzdWNoIHRhYmxlOiBGb29C
YXIpCiBURVNUIENPTVBMRVRFLgogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0
YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNl
LWNyZWF0aW9uLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyICsx
LDMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwg
dmVyc2lvbiBtaXNtYXRjaCwgJzEuMCcgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9u
IG9mICcnCiBUaGlzIHRlc3QgdGVzdHMgb3BlbkRhdGFiYXNlKCkncyBjcmVhdGlvbiBjYWxsYmFj
ay4KIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12
ZXJzaW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL29w
ZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5
NikKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lv
bi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlzbWF0Y2gs
ICd0ZXN0JyBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVudFZlcnNpb24gb2YgJycKIFRoaXMgdGVz
dHMgdGhhdCBjYWxsaW5nIG9wZW5EYXRhYmFzZSB3aXRoIGFuIGVtcHR5IHZlcnNpb24gc3RyaW5n
IHNldHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGF0IGRhdGFiYXNlIHRvIHRoZSBlbXB0eSBz
dHJpbmcgYW5kIHN1YnNlcXVlbnQgYXR0ZW1wdHMgdG8gb3BlbiB0aGUgZGF0YWJhc2Ugd2l0aCBh
IGRpZmZlcmVudCBleHBlY3RlZCB2ZXJzaW9uIHRocm93IGFuIGV4Y2VwdGlvbi4KIFNVQ0NFU1Ms
IGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBF
eGNlcHRpb24gMTEKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1u
b3JlYWQtbm93cml0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Rv
cmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFk
LW5vd3JpdGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yLDE0ICsyLDE0IEBAIFRo
aXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgYXR0ZW1wdHMgdG8gY2gKIFNldHVwIHN0YXRlbWVudCAx
IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKIFNldHVwIHN0YXRlbWVudCAyIGNvbXBsZXRlZCBzdWNj
ZXNzZnVsbHkKIFByaXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDEgY29tcGxldGVkIHdpdGggYW4g
ZXJyb3IKLW5vdCBhdXRob3JpemVkCitjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90
IGF1dGhvcml6ZWQpCiBQcml2YXRlIGJyb3dzaW5nIHN0YXRlbWVudCAyIGNvbXBsZXRlZCB3aXRo
IGFuIGVycm9yCi1ub3QgYXV0aG9yaXplZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKIFByaXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDMgY29tcGxldGVk
IHdpdGggYW4gZXJyb3IKLW5vdCBhdXRob3JpemVkCitjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQogUHJpdmF0ZSBicm93c2luZyBzdGF0ZW1lbnQgNCBjb21w
bGV0ZWQgd2l0aCBhbiBlcnJvcgotbm90IGF1dGhvcml6ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBQcml2YXRlIGJyb3dzaW5nIHN0YXRlbWVudCA1
IGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1hY2Nlc3MgdG8gUHJpdmF0ZVRlc3QxLnJhbmRvbURh
dGEgaXMgcHJvaGliaXRlZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBhY2Nlc3Mg
dG8gUHJpdmF0ZVRlc3QxLnJhbmRvbURhdGEgaXMgcHJvaGliaXRlZCkKIFRlc3QgZW5kZWQKIApJ
bmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3Rlc3QtYXV0aG9y
aXplci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsMjAgKzYsMjAgQEAgU1FMSVRF
X0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IHN1YwogU1FMSVRFX0NSRUFURV9URU1QX1ZJ
RVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQg
c3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJ
VEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRF
X0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVudCBzdWNjZWVkZWQu
CiBTUUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfREVMRVRFIHN0YXRl
bWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJ
VEVfVVBEQVRFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfUFJBR01BIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQUxU
RVJfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
Ci1TUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVf
VFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9ERVRB
Q0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKIFNRTElURV9SRUlOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVf
QU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0FOQUxZWkUg
c3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0
aG9yaXplZCkKIFNRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVf
RFJPUF9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9URU1QX1RS
SUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KQEAgLTI4LDQxICsyOCw0MSBAQCBTUUxJVEVfRFJP
UF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogV3Jp
dGUgdHJhbnNhY3Rpb24gc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1lbnQg
ZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCiBTUUxJ
VEVfQ1JFQVRFX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JFQVRFX0lOREVY
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVEFC
TEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVEVNUF9U
UklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RF
TVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9U
UklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1ZJ
RVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVlRBQkxF
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX0lOREVYIHN0
YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhv
cml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9U
RU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50
IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
K1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQ1JFQVRFX0lOREVYIHN0YXRl
bWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IHN1Y2Nl
ZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBT
UUxJVEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFU
RV9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVt
ZW50IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3Vs
ZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFQUQg
c3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50IHN1Y2NlZWRlZC4K
LVNRTElURV9ERUxFVEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9J
TlNFUlQgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9VUERBVEUgc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9QUkFHTUEgc3RhdGVtZW50IGZh
aWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5v
IHN1Y2ggdGFibGU6IFRlc3RUYWJsZQotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
Ci1TUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX0lO
REVYIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1RB
QkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1RS
SUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RFTVBf
VklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVFJJR0dF
UiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVklFVyBzdGF0
ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50
IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9ERUxFVEUgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9J
TlNFUlQgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBu
b3QgYXV0aG9yaXplZCkKK1NRTElURV9VUERBVEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90
IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9QUkFHTUEgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJl
cGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVSX1RBQkxFIHN0
YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBubyBzdWNoIHRh
YmxlOiBUZXN0VGFibGUpCitTUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BVFRB
Q0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9SRUlOREVYIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50
IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
K1NRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RFTVBfVFJJR0dF
UiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBh
dXRob3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9U
UklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9U
QUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5v
dCBhdXRob3JpemVkKQogUmVhZCB0cmFuc2FjdGlvbnMgc3VjY2VlZGVkLgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114782</attachid>
            <date>2011-11-11 15:08:15 -0800</date>
            <delta_ts>2011-11-11 15:16:21 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberror.txt</filename>
            <type>text/plain</type>
            <size>67050</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzggQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwg
Tm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV0dXJuIG1vcmUgY29t
cGxldGUgZXJyb3IgYW5kIGV4Y2VwdGlvbiBtZXNzYWdlcyB3aGVuIGEKKyAgICAgICAgV2ViU1FM
RGF0YWJhc2UgZnVuY3Rpb24gZmFpbHMuIFByb2R1Y2UgY29uc29sZSBsb2dnaW5nCisgICAgICAg
IGZvciBvcGVuRGF0YWJhc2UoKSBlcnJvcnMgYW5kIHZhY3V1bSBlcnJvcnMuIEFkZCBhIGxhc3RF
cnJvck1lc3NhZ2UKKyAgICAgICAgYWNjZXNzb3IgdG8gdGhlIERhdGFiYXNlU3luYyBpbnRlcmZh
Y2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFllcywg
c2VlIExheW91dFRlc3RzL0NoYW5nZUxvZyBpbiB0aGlzIHBhdGNoLgorCisgICAgICAgICogcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURh
dGFiYXNlOjpTUUxpdGVEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFz
ZTo6b3Blbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvcik6CisgICAgICAgIChXZWJD
b3JlOjpTUUxpdGVEYXRhYmFzZTo6bGFzdEVycm9yTXNnKToKKyAgICAgICAgKFdlYkNvcmU6OlNR
TGl0ZURhdGFiYXNlOjogcnVuVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6IHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCk6CisgICAgICAgIFJlZmxl
Y3QgZXJyb3JzIGluIHRoZSBvcGVuKCkgbWV0aG9kIGluIGxhc3RFcnJvcigpIGFuZCBsYXN0RXJy
b3JNc2coKS4KKyAgICAgICAgUmV0dXJuIGFuIGVycm9yIGNvZGVzIGZvciBydW5WYWN1dW1Db21t
YW5kKCkgYW5kIHJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpLgorCisgICAgICAgICogcGxh
dGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9BYnN0cmFjdERh
dGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdEVycm9yTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBYnN0cmFjdERhdGFiYXNlOjpsb2dFcnJvck1lc3NhZ2UpOgorICAg
ICAgICBEdXJpbmcgb3BlbkFuZFZlcmlmeSwgcHJvZHVjZSBmb3JtYXR0ZWQgZXJyb3IgbWVzc2Fn
ZXMgdGhhdCBpbmNsdWRlIHdoYXQgd2FzIGJlaW5nIGRvbmUsIHRoZSBzcWxpdGUgZXJyb3IgY29k
ZSwKKyAgICAgICAgYW5kIHRoZSBzcWxpdGUgZXJyb3IgbWVzc2FnZS4gQWRkIGEgaGVscGVyIHRv
IGxvZyBtZXNzYWdlIHRvIHRoZSBjb25zb2xlLgorCisgICAgICAgICogc3RvcmFnZS9BYnN0cmFj
dERhdGFiYXNlLmg6CisgICAgICAgICogc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZsaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBvc3Rm
bGlnaHQpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6
b3BlbkFuZFZlcmlmeVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnBlcmZv
cm1PcGVuQW5kVmVyaWZ5KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmg6CisgICAgICAg
ICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VT
eW5jOjpvcGVuRGF0YWJhc2VTeW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU3luYzo6
Y2hhbmdlVmVyc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6OnJ1blRyYW5z
YWN0aW9uKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlU3luYy5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2VTeW5jOjpsYXN0RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFiYXNlU3luYzo6c2V0TGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgICogc3RvcmFnZS9E
YXRhYmFzZVN5bmMuaWRsOgorICAgICAgICBBZGQgYSBsYXN0RXJyb3JNZXNzYWdlIGF0dHJpYnV0
ZSBzbyBqYXZhc2NyaXB0IGNhbGxlcnMgY2FuCisgICAgICAgIHJldHJpZXZlIG1vcmUgZGV0YWls
ZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCB3ZW50IHdyb25nLgorCisgICAgICAgICogc3RvcmFn
ZS9EYXRhYmFzZVRhc2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNl
T3BlblRhc2s6OkRhdGFiYXNlT3BlblRhc2spOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
OkRhdGFiYXNlT3BlblRhc2s6OmRvUGVyZm9ybVRhc2spOgorICAgICAgICAqIHN0b3JhZ2UvRGF0
YWJhc2VUYXNrLmg6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFz
azo6Y3JlYXRlKToKKyAgICAgICAgUmV0dXJuIGFuIGVycm9yTWVzc2FnZSBpbiBhZGRpdGlvbiB0
byB0aGUgZXhjZXB0aW9uIGNvZGUuCisKKyAgICAgICAgKiBzdG9yYWdlL1NRTEVycm9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgQWRkIGhlbHBlcnMg
dG8gcHJvZHVjZWQgZm9ybWF0dGVkIGVycm9yIG1lc3NhZ2VzLgorCisgICAgICAgICogc3RvcmFn
ZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpleGVj
dXRlKToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1FMU3RhdGVtZW50U3luYzo6ZXhlY3V0ZSk6CisgICAgICAgICogc3RvcmFnZS9T
UUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6b3Bl
blRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0
aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5zYWN0
aW9uU3luYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1
dGVTUUwpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQpOgorCiAyMDExLTExLTEwICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBEbyBub3Qgc2hh
cmUgQ1NTIHN0eWxlIGZvciBNZWRpYUVsZW1lbnQgYmFja2VkIGJ5IGEgcGx1Z2luCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTM1OSw3ICsxMzU5LDYgQEAKIAkJNTAxQkFB
QTkxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MDhDQ0E0RjEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEQxM0NGMTA2QjAwMzE1
MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCAqLzsgfTsKIAkJNTA4Q0NBNTAxM0NGMTA2QjAwMzE1
MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dU
aHJlYWQuY3BwICovOyB9OwotCQk1MEI0MjE1ODE0Njk3Njk2MDA4N0U2MDQgLyogV2ViS2l0Q1NT
U2hhZGVyVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUwQjQyMTU3MTQ2OTc2OTYwMDg3RTYwNCAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oICov
OyB9OwogCQk1MEU1NjZENjEzOUUzOEM1MDAyMTQ0MzMgLyogQ1NTV3JhcFNoYXBlcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDFCQUFCMTEzOTUx
MTRCMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5jcHAgKi87IH07CiAJCTUxMDE4NDY5MEIwODYw
MkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTAxODQ2NzBCMDg2MDJBMDA0QTgyNUYgLyogQ2FjaGVkUGFnZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMDE4
NDZBMEIwODYwMkEwMDRBODI1RiAvKiBDYWNoZWRQYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDE4NDY4MEIwODYwMkEwMDRBODI1RiAvKiBD
YWNoZWRQYWdlLmNwcCAqLzsgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3FsL1NRTGl0ZURhdGFiYXNlLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2
ICs0Niw4IEBAIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVfU0NIRU0KIGNvbnN0
IGludCBTUUxSZXN1bHRGdWxsID0gU1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQgU1FMUmVzdWx0SW50
ZXJydXB0ID0gU1FMSVRFX0lOVEVSUlVQVDsKIAorc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVy
cm9yTWVzc2FnZVtdID0gImRhdGFiYXNlIGlzIG5vdCBvcGVuIjsKKwogU1FMaXRlRGF0YWJhc2U6
OlNRTGl0ZURhdGFiYXNlKCkKICAgICA6IG1fZGIoMCkKICAgICAsIG1fcGFnZVNpemUoLTEpCkBA
IC01Myw2ICs1NSw4IEBAIFNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAgICAgLCBt
X3NoYXJhYmxlKGZhbHNlKQogICAgICwgbV9vcGVuaW5nVGhyZWFkKDApCiAgICAgLCBtX2ludGVy
cnVwdGVkKGZhbHNlKQorICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQorICAgICwgbV9v
cGVuRXJyb3JNZXNzYWdlKG5vdE9wZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAKQEAgLTY1LDE1ICs2
OSwyMCBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgCiB7CiAgICAg
Y2xvc2UoKTsKIAotICAgIGlmIChTUUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5h
bWUsICZtX2RiLCBmb3JXZWJTUUxEYXRhYmFzZSkgIT0gU1FMSVRFX09LKSB7CisgICAgbV9vcGVu
RXJyb3IgPSBTUUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBm
b3JXZWJTUUxEYXRhYmFzZSk7CisgICAgaWYgKG1fb3BlbkVycm9yICE9IFNRTElURV9PSykgewor
ICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikg
OiAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAgICAgICAgIExPR19FUlJPUigiU1FMaXRl
IGRhdGFiYXNlIGZhaWxlZCB0byBsb2FkIGZyb20gJXNcbkNhdXNlIC0gJXMiLCBmaWxlbmFtZS5h
c2NpaSgpLmRhdGEoKSwKLSAgICAgICAgICAgIHNxbGl0ZTNfZXJybXNnKG1fZGIpKTsKKyAgICAg
ICAgICAgIG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCkpOwogICAgICAgICBzcWxpdGUzX2Nsb3Nl
KG1fZGIpOwogICAgICAgICBtX2RiID0gMDsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
LSAgICBpZiAoc3FsaXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkgIT0gU1FMSVRF
X09LKSB7Ci0gICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5h
YmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBzcWxpdGUzX2Vycm1zZyhtX2RiKSk7CisKKyAg
ICBtX29wZW5FcnJvciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1fZGIsIDEpOwor
ICAgIGlmIChtX29wZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9vcGVuRXJyb3JN
ZXNzYWdlID0gc3FsaXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIExPR19FUlJPUigiU1FMaXRl
IGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBtX29w
ZW5FcnJvck1lc3NhZ2UuZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAg
ICAgICAgbV9kYiA9IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYgKzkwLDggQEAg
Ym9vbCBTUUxpdGVEYXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIAogCiAgICAgaWYgKGlzT3Bl
bigpKQogICAgICAgICBtX29wZW5pbmdUaHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CisgICAgZWxz
ZQorICAgICAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVs
bCI7CiAKICAgICBpZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSB0ZW1wX3N0b3Jl
ID0gTUVNT1JZOyIpLmV4ZWN1dGVDb21tYW5kKCkpCiAgICAgICAgIExPR19FUlJPUigiU1FMaXRl
IGRhdGFiYXNlIGNvdWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0byBtZW1vcnkiKTsKQEAgLTEwMiw2
ICsxMTMsOCBAQCB2b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgfQogCiAgICAgbV9v
cGVuaW5nVGhyZWFkID0gMDsKKyAgICBtX29wZW5FcnJvciA9IFNRTElURV9FUlJPUjsKKyAgICBt
X29wZW5FcnJvck1lc3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNzYWdlOwogfQogCiB2b2lkIFNRTGl0
ZURhdGFiYXNlOjppbnRlcnJ1cHQoKQpAQCAtMjgxLDEzICsyOTQsMTQgQEAgdm9pZCBTUUxpdGVE
YXRhYmFzZTo6Y2xlYXJBbGxUYWJsZXMoKQogICAgIH0KIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFz
ZTo6cnVuVmFjdXVtQ29tbWFuZCgpCitpbnQgU1FMaXRlRGF0YWJhc2U6OnJ1blZhY3V1bUNvbW1h
bmQoKQogewogICAgIGlmICghZXhlY3V0ZUNvbW1hbmQoIlZBQ1VVTTsiKSkKICAgICAgICAgTE9H
KFNRTERhdGFiYXNlLCAiVW5hYmxlIHRvIHZhY3V1bSBkYXRhYmFzZSAtICVzIiwgbGFzdEVycm9y
TXNnKCkpOworICAgIHJldHVybiBsYXN0RXJyb3IoKTsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFz
ZTo6cnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCkKK2ludCBTUUxpdGVEYXRhYmFzZTo6cnVu
SW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9h
dXRob3JpemVyTG9jayk7CiAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CkBAIC0yOTYsNiAr
MzEwLDcgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dQogICAgICAg
ICBMT0coU1FMRGF0YWJhc2UsICJVbmFibGUgdG8gcnVuIGluY3JlbWVudGFsIHZhY3V1bSAtICVz
IiwgbGFzdEVycm9yTXNnKCkpOwogCiAgICAgZW5hYmxlQXV0aG9yaXplcih0cnVlKTsKKyAgICBy
ZXR1cm4gbGFzdEVycm9yKCk7CiB9CiAKIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6Omxhc3RJbnNl
cnRSb3dJRCgpCkBAIC0zMTQsMTIgKzMyOSwxMiBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6Omxhc3RD
aGFuZ2VzKCkKIAogaW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IoKQogewotICAgIHJldHVy
biBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogU1FMSVRFX0VSUk9SOworICAgIHJldHVy
biBtX2RiID8gc3FsaXRlM19lcnJjb2RlKG1fZGIpIDogbV9vcGVuRXJyb3I7CiB9CiAKIGNvbnN0
IGNoYXIqIFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3JNc2coKQogeyAKLSAgICByZXR1cm4gc3Fs
aXRlM19lcnJtc2cobV9kYik7CisgICAgcmV0dXJuIG1fZGIgPyBzcWxpdGUzX2Vycm1zZyhtX2Ri
KSA6IG1fb3BlbkVycm9yTWVzc2FnZS5kYXRhKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkocmV2aXNp
b24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2RlZmluZSBTUUxpdGVEYXRhYmFz
ZV9oCiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKICNpZiBDT01QSUxFUihNU1ZD
KQpAQCAtNjgsOCArNjksOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCB0YWJsZUV4aXN0cyhj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNsZWFyQWxsVGFibGVzKCk7Ci0gICAgdm9pZCBydW5W
YWN1dW1Db21tYW5kKCk7Ci0gICAgdm9pZCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQoKTsK
KyAgICBpbnQgcnVuVmFjdXVtQ29tbWFuZCgpOworICAgIGludCBydW5JbmNyZW1lbnRhbFZhY3V1
bUNvbW1hbmQoKTsKICAgICAKICAgICBib29sIHRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpIGNvbnN0
IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JblByb2dyZXNzOyB9CiAgICAgCkBAIC0xNTMsNyArMTU0
LDEwIEBAIHByaXZhdGU6CiAKICAgICBNdXRleCBtX2RhdGFiYXNlQ2xvc2luZ011dGV4OwogICAg
IGJvb2wgbV9pbnRlcnJ1cHRlZDsKLX07IC8vIGNsYXNzIFNRTGl0ZURhdGFiYXNlCisKKyAgICBp
bnQgbV9vcGVuRXJyb3I7CisgICAgQ1N0cmluZyBtX29wZW5FcnJvck1lc3NhZ2U7Cit9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJz
dHJhY3REYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9B
YnN0cmFjdERhdGFiYXNlLmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVudC5oIgog
I2luY2x1ZGUgIlNRTGl0ZVRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNr
LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTUyLDYgKzUzLDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBjaGFyIHZlcnNpb25LZXlbXSA9ICJX
ZWJLaXREYXRhYmFzZVZlcnNpb25LZXkiOwogc3RhdGljIGNvbnN0IGNoYXIgaW5mb1RhYmxlTmFt
ZVtdID0gIl9fV2ViS2l0RGF0YWJhc2VJbmZvVGFibGVfXyI7CiAKK3N0YXRpYyBTdHJpbmcgZm9y
bWF0RXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVFcnJvckNvZGUs
IGNvbnN0IGNoYXIqIHNxbGl0ZUVycm9yTWVzc2FnZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIiVzICglZCAlcykiLCBtZXNzYWdlLCBzcWxpdGVFcnJvckNvZGUsIHNxbGl0ZUVycm9y
TWVzc2FnZSk7Cit9CisKIHN0YXRpYyBib29sIHJldHJpZXZlVGV4dFJlc3VsdEZyb21EYXRhYmFz
ZShTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IFN0cmluZyYgcXVlcnksIFN0cmluZyYgcmVzdWx0
U3RyaW5nKQogewogICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQoZGIsIHF1ZXJ5KTsKQEAg
LTI0NCwxNyArMjUwLDE5IEBAIFN0cmluZyBBYnN0cmFjdERhdGFiYXNlOjp2ZXJzaW9uKCkgY29u
c3QKICAgICByZXR1cm4gZ2V0Q2FjaGVkVmVyc2lvbigpOwogfQogCi1ib29sIEFic3RyYWN0RGF0
YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0
YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3Jt
T3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRp
b25Db2RlJiBlYywgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CisgICAgQVNTRVJUKGVycm9yTWVz
c2FnZS5pc0VtcHR5KCkpOworCiAgICAgY29uc3QgaW50IG1heFNxbGl0ZUJ1c3lXYWl0VGltZSA9
IDMwMDAwOwogCiAgICAgaWYgKCFtX3NxbGl0ZURhdGFiYXNlLm9wZW4obV9maWxlbmFtZSwgdHJ1
ZSkpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gb3BlbiBkYXRhYmFzZSBhdCBwYXRo
ICVzIiwgbV9maWxlbmFtZS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIGVycm9yTWVzc2FnZSA9
IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UiLCBtX3NxbGl0ZURh
dGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2UudHVybk9uSW5jcmVtZW50YWxBdXRvVmFjdXVt
KCkpCi0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHR1cm4gb24gaW5jcmVtZW50YWwgYXV0
by12YWN1dW0gZm9yIGRhdGFiYXNlICVzIiwgbV9maWxlbmFtZS5hc2NpaSgpLmRhdGEoKSk7Cisg
ICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHR1cm4gb24gaW5jcmVtZW50YWwgYXV0by12YWN1
dW0gKCVkICVzKSIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJh
c2UubGFzdEVycm9yTXNnKCkpOwogCiAgICAgbV9zcWxpdGVEYXRhYmFzZS5zZXRCdXN5VGltZW91
dChtYXhTcWxpdGVCdXN5V2FpdFRpbWUpOwogCkBAIC0yOTAsNyArMjk4LDcgQEAgYm9vbCBBYnN0
cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgICAgICAgICAgU1FMaXRlVHJhbnNh
Y3Rpb24gdHJhbnNhY3Rpb24obV9zcWxpdGVEYXRhYmFzZSk7CiAgICAgICAgICAgICB0cmFuc2Fj
dGlvbi5iZWdpbigpOwogICAgICAgICAgICAgaWYgKCF0cmFuc2FjdGlvbi5pblByb2dyZXNzKCkp
IHsKLSAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBiZWdpbiB0cmFuc2FjdGlv
biB3aGlsZSBvcGVuaW5nICVzIiwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7
CisgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFi
bGUgdG8gb3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIHN0YXJ0IHRyYW5zYWN0aW9uIiwgbV9zcWxp
dGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgICAg
ICBtX3NxbGl0ZURhdGFiYXNlLmNsb3NlKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMzAxLDE0ICszMDksMTQgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3Bl
bkFuZFZlcgogICAgICAgICAgICAgICAgIG1fbmV3ID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAg
IGlmICghbV9zcWxpdGVEYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JFQVRFIFRBQkxFICIgKyB0
YWJsZU5hbWUgKyAiIChrZXkgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMIFVOSVFVRSBP
TiBDT05GTElDVCBSRVBMQUNFLHZhbHVlIFRFWFQgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCk7
IikpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHRh
YmxlICVzIGluIGRhdGFiYXNlICVzIiwgaW5mb1RhYmxlTmFtZSwgZGF0YWJhc2VEZWJ1Z05hbWUo
KS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZv
cm1hdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byBjcmVh
dGUgJ2luZm8nIHRhYmxlIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVE
YXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CiAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJvbGxiYWNrKCk7
CiAgICAgICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0gZWxzZSBpZiAoIWdldFZlcnNpb25Gcm9tRGF0YWJhc2UoY3VycmVudFZlcnNpb24sIGZhbHNl
KSkgewotICAgICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGdldCBjdXJyZW50IHZl
cnNpb24gZnJvbSBkYXRhYmFzZSAlcyIsIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRh
KCkpOworICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgi
dW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byByZWFkIGN1cnJlbnQgdmVyc2lvbiIs
IG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAg
ICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICBtX3NxbGl0
ZURhdGFiYXNlLmNsb3NlKCk7CkBAIC0zMjAsNyArMzI4LDcgQEAgYm9vbCBBYnN0cmFjdERhdGFi
YXNlOjpwZXJmb3JtT3BlbkFuZFZlcgogICAgICAgICAgICAgfSBlbHNlIGlmICghbV9uZXcgfHwg
c2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UpIHsKICAgICAgICAgICAgICAgICBMT0coU3Rv
cmFnZUFQSSwgIlNldHRpbmcgdmVyc2lvbiAlcyBpbiBkYXRhYmFzZSAlcyB0aGF0IHdhcyBqdXN0
IGNyZWF0ZWQiLCBtX2V4cGVjdGVkVmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1
Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzZXRWZXJzaW9u
SW5EYXRhYmFzZShtX2V4cGVjdGVkVmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHNldCB2ZXJzaW9uICVzIGluIGRhdGFiYXNlICVzIiwg
bV9leHBlY3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNj
aWkoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXRF
cnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCBmYWlsZWQgdG8gd3JpdGUgY3Vy
cmVudCB2ZXJzaW9uIiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRh
YmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CiAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJvbGxiYWNrKCk7CiAg
ICAgICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsKQEAgLTM0MSw4ICsz
NDksNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAgICAgLy8g
SWYgdGhlIGV4cGVjdGVkIHZlcnNpb24gaXNuJ3QgdGhlIGVtcHR5IHN0cmluZywgZW5zdXJlIHRo
YXQgdGhlIGN1cnJlbnQgZGF0YWJhc2UgdmVyc2lvbiB3ZSBoYXZlIG1hdGNoZXMgdGhhdCB2ZXJz
aW9uLiBPdGhlcndpc2UsIHNldCBhbiBleGNlcHRpb24uCiAgICAgLy8gSWYgdGhlIGV4cGVjdGVk
IHZlcnNpb24gaXMgdGhlIGVtcHR5IHN0cmluZywgdGhlbiB3ZSBhbHdheXMgcmV0dXJuIHdpdGgg
d2hhdGV2ZXIgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2Ugd2UgaGF2ZS4KICAgICBpZiAoKCFtX25l
dyB8fCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSkgJiYgbV9leHBlY3RlZFZlcnNpb24u
bGVuZ3RoKCkgJiYgbV9leHBlY3RlZFZlcnNpb24gIT0gY3VycmVudFZlcnNpb24pIHsKLSAgICAg
ICAgTE9HKFN0b3JhZ2VBUEksICJwYWdlIGV4cGVjdHMgdmVyc2lvbiAlcyBmcm9tIGRhdGFiYXNl
ICVzLCB3aGljaCBhY3R1YWxseSBoYXMgdmVyc2lvbiBuYW1lICVzIC0gb3BlbkRhdGFiYXNlKCkg
Y2FsbCB3aWxsIGZhaWwiLCBtX2V4cGVjdGVkVmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwKLSAgICAg
ICAgICAgIGRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCksIGN1cnJlbnRWZXJzaW9u
LmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gInVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAnIiArIG1fZXhwZWN0ZWRWZXJzaW9uICsgIicg
ZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9uIG9mICciICsgY3VycmVudFZlcnNpb24g
KyAiJyI7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIG1fc3FsaXRl
RGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNTI0LDggKzUzMSwx
MSBAQCB2b2lkIEFic3RyYWN0RGF0YWJhc2U6OmluY3JlbWVudGFsVmFjdXVtCiB7CiAgICAgaW50
NjRfdCBmcmVlU3BhY2VTaXplID0gbV9zcWxpdGVEYXRhYmFzZS5mcmVlU3BhY2VTaXplKCk7CiAg
ICAgaW50NjRfdCB0b3RhbFNpemUgPSBtX3NxbGl0ZURhdGFiYXNlLnRvdGFsU2l6ZSgpOwotICAg
IGlmICh0b3RhbFNpemUgPD0gMTAgKiBmcmVlU3BhY2VTaXplKQotICAgICAgICBtX3NxbGl0ZURh
dGFiYXNlLnJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpOworICAgIGlmICh0b3RhbFNpemUg
PD0gMTAgKiBmcmVlU3BhY2VTaXplKSB7CisgICAgICAgIGludCByZXN1bHQgPSBtX3NxbGl0ZURh
dGFiYXNlLnJ1bkluY3JlbWVudGFsVmFjdXVtQ29tbWFuZCgpOworICAgICAgICBpZiAocmVzdWx0
ICE9IFNRTFJlc3VsdE9LKQorICAgICAgICAgICAgbG9nRXJyb3JNZXNzYWdlKGZvcm1hdEVycm9y
TWVzc2FnZSgiZXJyb3IgdmFjdXVtaW5nIGRhdGFiYXNlIiwgcmVzdWx0LCBtX3NxbGl0ZURhdGFi
YXNlLmxhc3RFcnJvck1zZygpKSk7CisgICAgfQogfQogCiB2b2lkIEFic3RyYWN0RGF0YWJhc2U6
OmludGVycnVwdCgpCkBAIC01MzksNiArNTQ5LDExIEBAIGJvb2wgQWJzdHJhY3REYXRhYmFzZTo6
aXNJbnRlcnJ1cHRlZCgpCiAgICAgcmV0dXJuIG1fc3FsaXRlRGF0YWJhc2UuaXNJbnRlcnJ1cHRl
ZCgpOwogfQogCit2b2lkIEFic3RyYWN0RGF0YWJhc2U6OmxvZ0Vycm9yTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCit7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5hZGRNZXNz
YWdlKE90aGVyTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCBtZXNzYWdlLCAwLCBTdHJpbmcoKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyAr
OTUsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNsb3NlRGF0YWJhc2UoKTsKIAotICAgIHZp
cnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5l
d0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1P
cGVuQW5kVmVyaWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlv
bkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBib29sIGdldFZlcnNpb25Gcm9t
RGF0YWJhc2UoU3RyaW5nJiB2ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9IHRydWUp
OwogICAgIGJvb2wgc2V0VmVyc2lvbkluRGF0YWJhc2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBi
b29sIHNob3VsZENhY2hlVmVyc2lvbiA9IHRydWUpOwpAQCAtMTA1LDYgKzEwNSw4IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHNldENhY2hlZFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAgICAgYm9v
bCBnZXRBY3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oU3RyaW5nJiB2ZXJzaW9uKTsKIAorICAg
IHZvaWQgbG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKICAgICBzdGF0
aWMgY29uc3QgY2hhciogZGF0YWJhc2VJbmZvVGFibGVOYW1lKCk7CiAKICAgICBSZWZQdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHJldmlz
aW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDEzICs1MCwxMyBAQCBib29sIENoYW5nZVZlcnNp
b25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAKICAg
ICBpZiAoIXRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5nZXRWZXJzaW9uRnJvbURhdGFiYXNlKGFj
dHVhbFZlcnNpb24pKSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHJldHJpZXZlIGFj
dHVhbCBjdXJyZW50IHZlcnNpb24gZnJvbSBkYXRhYmFzZSIpOwotICAgICAgICBtX3NxbEVycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gdmVy
aWZ5IGN1cnJlbnQgdmVyc2lvbiBvZiBkYXRhYmFzZSIpOworICAgICAgICBtX3NxbEVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gcmVhZCB0
aGUgY3VycmVudCB2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5kYXRh
YmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVyc2lvbikg
ewotICAgICAgICBMT0dfRVJST1IoIk9sZCB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggYWN0dWFsIHZl
cnNpb24iKTsKICAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZl
cnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpAQCAtNjksOCArNjksOSBAQCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3Jt
UG9zdGZsCiAgICAgQVNTRVJUKHRyYW5zYWN0aW9uICYmIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgp
KTsKIAogICAgIGlmICghdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNldFZlcnNpb25JbkRhdGFi
YXNlKG1fbmV3VmVyc2lvbikpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gc2V0IG5l
dyB2ZXJzaW9uIGluIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBzZXQgbmV3IHZlcnNpb24g
aW4gZGF0YWJhc2UiKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBkYXRhYmFz
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5k
YXRhYmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0
YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCShyZXZpc2lvbiA5OTg5NikKKysr
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
OCw4ICs5OCw5IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlOjpvcGVuRGF0YWIKIAog
ICAgIFJlZlB0cjxEYXRhYmFzZT4gZGF0YWJhc2UgPSBhZG9wdFJlZihuZXcgRGF0YWJhc2UoY29u
dGV4dCwgbmFtZSwgZXhwZWN0ZWRWZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSkp
OwogCi0gICAgaWYgKCFkYXRhYmFzZS0+b3BlbkFuZFZlcmlmeVZlcnNpb24oIWNyZWF0aW9uQ2Fs
bGJhY2ssIGUpKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIG9wZW4gYW5k
IHZlcmlmeSB2ZXJzaW9uIChleHBlY3RlZCAlcykgb2YgZGF0YWJhc2UgJXMiLCBleHBlY3RlZFZl
cnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlLT5kYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lp
KCkuZGF0YSgpKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghZGF0YWJhc2Ut
Pm9wZW5BbmRWZXJpZnlWZXJzaW9uKCFjcmVhdGlvbkNhbGxiYWNrLCBlLCBlcnJvck1lc3NhZ2Up
KSB7CisgICAgICAgIGRhdGFiYXNlLT5sb2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKICAg
ICAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkucmVtb3ZlT3BlbkRhdGFiYXNlKGRhdGFi
YXNlLmdldCgpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTczLDE0ICsxNzQsMTQg
QEAgU3RyaW5nIERhdGFiYXNlOjp2ZXJzaW9uKCkgY29uc3QKICAgICByZXR1cm4gQWJzdHJhY3RE
YXRhYmFzZTo6dmVyc2lvbigpOwogfQogCi1ib29sIERhdGFiYXNlOjpvcGVuQW5kVmVyaWZ5VmVy
c2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlKQorYm9v
bCBEYXRhYmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRh
YmFzZSwgRXhjZXB0aW9uQ29kZSYgZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7CiAgICAgRGF0
YWJhc2VUYXNrU3luY2hyb25pemVyIHN5bmNocm9uaXplcjsKICAgICBpZiAoIW1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQoKSB8fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmRhdGFiYXNlVGhyZWFkKCktPnRlcm1pbmF0aW9uUmVxdWVzdGVkKCZzeW5jaHJvbml6ZXIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKLSAg
ICBPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gdGFzayA9IERhdGFiYXNlT3BlblRhc2s6OmNyZWF0
ZSh0aGlzLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgJnN5bmNocm9uaXplciwgZSwgc3VjY2Vz
cyk7CisgICAgT3duUHRyPERhdGFiYXNlT3BlblRhc2s+IHRhc2sgPSBEYXRhYmFzZU9wZW5UYXNr
OjpjcmVhdGUodGhpcywgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsICZzeW5jaHJvbml6ZXIsIGUs
IGVycm9yTWVzc2FnZSwgc3VjY2Vzcyk7CiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5k
YXRhYmFzZVRocmVhZCgpLT5zY2hlZHVsZUltbWVkaWF0ZVRhc2sodGFzay5yZWxlYXNlKCkpOwog
ICAgIHN5bmNocm9uaXplci53YWl0Rm9yVGFza0NvbXBsZXRpb24oKTsKIApAQCAtMjM4LDkgKzIz
OSw5IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBEYXRhYmFzZTo6bWF4aW11bVNpemUKICAgICByZXR1
cm4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuZ2V0TWF4U2l6ZUZvckRhdGFiYXNlKHRoaXMp
OwogfQogCi1ib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlKQorYm9vbCBEYXRhYmFzZTo6cGVyZm9y
bU9wZW5BbmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29k
ZSYgZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCiB7Ci0gICAgaWYgKEFic3RyYWN0RGF0YWJhc2U6
OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBlKSkgeworICAg
IGlmIChBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShzZXRWZXJzaW9uSW5O
ZXdEYXRhYmFzZSwgZSwgZXJyb3JNZXNzYWdlKSkgewogICAgICAgICBpZiAobV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpKQogICAgICAgICAgICAgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpLT5yZWNvcmREYXRhYmFzZU9wZW4odGhpcyk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDk5ODk2KQorKysg
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw4
ICs5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNR
TFRyYW5zYWN0aW9uQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxs
YmFjaz4sCiAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4g
c3VjY2Vzc0NhbGxiYWNrLCBib29sIHJlYWRPbmx5KTsKIAotICAgIGJvb2wgb3BlbkFuZFZlcmlm
eVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNpb25Jbk5l
d0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBvcGVuQW5kVmVyaWZ5VmVyc2lv
bihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBl
cnJvck1lc3NhZ2UpOworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29s
IHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpOwogCiAgICAgdm9pZCBpblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQoKTsKICAg
ICB2b2lkIHNjaGVkdWxlVHJhbnNhY3Rpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvRGF0YWJhc2VTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0RhdGFiYXNlU3luYy5jcHAJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVN5bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw5IEBAIFBh
c3NSZWZQdHI8RGF0YWJhc2VTeW5jPiBEYXRhYmFzZVN5bmM6Om8KIAogICAgIFJlZlB0cjxEYXRh
YmFzZVN5bmM+IGRhdGFiYXNlID0gYWRvcHRSZWYobmV3IERhdGFiYXNlU3luYyhjb250ZXh0LCBu
YW1lLCBleHBlY3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7CiAKLSAg
ICBpZiAoIWRhdGFiYXNlLT5wZXJmb3JtT3BlbkFuZFZlcmlmeSghY3JlYXRpb25DYWxsYmFjaywg
ZWMpKSB7Ci0gICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIG9wZW4gYW5kIHZlcmlm
eSB2ZXJzaW9uIChleHBlY3RlZCAlcykgb2YgZGF0YWJhc2UgJXMiLCBleHBlY3RlZFZlcnNpb24u
YXNjaWkoKS5kYXRhKCksIGRhdGFiYXNlLT5kYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0
YSgpKTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghZGF0YWJhc2UtPnBlcmZv
cm1PcGVuQW5kVmVyaWZ5KCFjcmVhdGlvbkNhbGxiYWNrLCBlYywgZXJyb3JNZXNzYWdlKSkgewor
ICAgICAgICBkYXRhYmFzZS0+bG9nRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAg
IERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRhYmFzZS5n
ZXQoKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTk2LDM5ICs5Nyw0OSBAQCB2b2lk
IERhdGFiYXNlU3luYzo6Y2hhbmdlVmVyc2lvbihjb25zdCBTCiAgICAgQVNTRVJUKG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURh
dGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9y
TWVzc2FnZSgidW5hYmxlIHRvIGNoYW5nZVZlcnNpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlv
biIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rp
b24gPSBTUUxUcmFuc2FjdGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjaGFuZ2VWZXJzaW9uQ2FsbGJh
Y2ssIGZhbHNlKTsKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpKQorICAgIGlm
ICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJy
b3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFN0
cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghZ2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1
YWxWZXJzaW9uKSkgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVh
ZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3Fs
aXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9u
OjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhY3R1YWxW
ZXJzaW9uICE9IG9sZFZlcnNpb24pIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiY3Vy
cmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRv
IG5vdCBtYXRjaCIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9FUlI7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1
dGUoKSkpCisgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpKSB7CisgICAgICAg
IEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAKICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG5ld1ZlcnNpb24pKSB7Cisg
ICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBzZXQgdGhlIG5ldyB2ZXJzaW9u
Iiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkp
KSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAg
ICAgIHNldENhY2hlZFZlcnNpb24ob2xkVmVyc2lvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBzZXRFeHBlY3RlZFZlcnNpb24obmV3VmVyc2lvbik7CisgICAgc2V0TGFzdEVycm9y
TWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjp0cmFuc2FjdGlvbihQYXNzUmVm
UHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYg
ZWMpCkBAIC0xNDYsMTMgKzE1NywxOCBAQCB2b2lkIERhdGFiYXNlU3luYzo6cnVuVHJhbnNhY3Rp
b24oUGFzc1JlCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0
VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dy
ZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHN0YXJ0IGEg
dHJhbnNhY3Rpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBlYyA9IFNR
TEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
UmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvblN5
bmM6OmNyZWF0ZSh0aGlzLCBjYWxsYmFjaywgcmVhZE9ubHkpOwotICAgIGlmICgoZWMgPSB0cmFu
c2FjdGlvbi0+YmVnaW4oKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkgfHwgKGVj
ID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJl
Z2luKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRyYW5zYWN0
aW9uLT5jb21taXQoKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNF
bXB0eSgpKTsKICAgICAgICAgdHJhbnNhY3Rpb24tPnJvbGxiYWNrKCk7CisgICAgfQorCisgICAg
c2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjptYXJrQXNE
ZWxldGVkQW5kQ2xvc2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5
bmMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5o
CShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5j
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDEwICs2NCwyMyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG1hcmtBc0RlbGV0ZWRBbmRDbG9zZSgpOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZUlt
bWVkaWF0ZWx5KCk7CiAKKyAgICBjb25zdCBTdHJpbmcmIGxhc3RFcnJvck1lc3NhZ2UoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RFcnJvck1lc3NhZ2U7IH0KKyAgICB2b2lkIHNldExhc3RFcnJvck1l
c3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IG1fbGFzdEVycm9yTWVzc2FnZSA9IG1lc3Nh
Z2U7IH0KKyAgICB2b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSwg
aW50IHNxbGl0ZUNvZGUpCisgICAgeworICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKFN0cmlu
Zzo6Zm9ybWF0KCIlcyAoJWQpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSkpOworICAgIH0KKyAgICB2
b2lkIHNldExhc3RFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNv
ZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2UpCisgICAgeworICAgICAgICBzZXRMYXN0RXJy
b3JNZXNzYWdlKFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQsICVzKSIsIG1lc3NhZ2UsIHNxbGl0ZUNv
ZGUsIHNxbGl0ZU1lc3NhZ2UpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgRGF0YWJhc2VTeW5j
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgZXhwZWN0ZWRWZXJzaW9uLAogICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGRpc3Bs
YXlOYW1lLCB1bnNpZ25lZCBsb25nIGVzdGltYXRlZFNpemUpOwogICAgIHZvaWQgcnVuVHJhbnNh
Y3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjaz4sIGJvb2wgcmVhZE9u
bHksIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIFN0cmluZyBtX2xhc3RFcnJvck1lc3NhZ2U7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L0RhdGFiYXNlU3luYy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9E
YXRhYmFzZVN5bmMuaWRsCShyZXZpc2lvbiA5OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvRGF0YWJhc2VTeW5jLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBtb2R1
bGUgc3RvcmFnZSB7CiAgICAgICAgIE5vU3RhdGljVGFibGVzCiAgICAgXSBEYXRhYmFzZVN5bmMg
ewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFzdEVycm9yTWVzc2FnZTsKICAgICAgICAg
dm9pZCBjaGFuZ2VWZXJzaW9uKGluIERPTVN0cmluZyBvbGRWZXJzaW9uLCBpbiBET01TdHJpbmcg
bmV3VmVyc2lvbiwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU1FMVHJhbnNhY3Rpb25TeW5jQ2Fs
bGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHRyYW5z
YWN0aW9uKGluIFtDYWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2sp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihpbiBb
Q2FsbGJhY2tdIFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5jcHAJ
KHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCwxMCArOTgsMTEgQEAgdm9pZCBEYXRhYmFzZVRhc2s6
OnBlcmZvcm1UYXNrKCkKIC8vICoqKiBEYXRhYmFzZU9wZW5UYXNrICoqKgogLy8gT3BlbnMgdGhl
IGRhdGFiYXNlIGZpbGUgYW5kIHZlcmlmaWVzIHRoZSB2ZXJzaW9uIG1hdGNoZXMgdGhlIGV4cGVj
dGVkIHZlcnNpb24uCiAKLURhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW5U
YXNrKERhdGFiYXNlKiBkYXRhYmFzZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0
YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUs
IGJvb2wmIHN1Y2Nlc3MpCitEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVu
VGFzayhEYXRhYmFzZSogZGF0YWJhc2UsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERh
dGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2RlJiBjb2Rl
LCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IERhdGFiYXNlVGFz
ayhkYXRhYmFzZSwgc3luY2hyb25pemVyKQogICAgICwgbV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFz
ZShzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSkKICAgICAsIG1fY29kZShjb2RlKQorICAgICwgbV9l
cnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKQogICAgICwgbV9zdWNjZXNzKHN1Y2Nlc3MpCiB7CiAg
ICAgQVNTRVJUKHN5bmNocm9uaXplcik7IC8vIEEgdGFzayB3aXRoIG91dHB1dCBwYXJhbWV0ZXJz
IGlzIHN1cHBvc2VkIHRvIGJlIHN5bmNocm9ub3VzLgpAQCAtMTA5LDcgKzExMCwxMCBAQCBEYXRh
YmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuCiAKIHZvaWQgRGF0YWJhc2U6OkRh
dGFiYXNlT3BlblRhc2s6OmRvUGVyZm9ybVRhc2soKQogewotICAgIG1fc3VjY2VzcyA9IGRhdGFi
YXNlKCktPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KG1fc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIG1f
Y29kZSk7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBtX3N1Y2Nlc3MgPSBkYXRhYmFz
ZSgpLT5wZXJmb3JtT3BlbkFuZFZlcmlmeShtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBtX2Nv
ZGUsIGVycm9yTWVzc2FnZSk7CisgICAgaWYgKCFtX3N1Y2Nlc3MpCisgICAgICAgIG1fZXJyb3JN
ZXNzYWdlID0gZXJyb3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpOwogfQogCiAjaWYgIUxPR19ESVNB
QkxFRApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiA5
OTg5NikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMCwxMyArMTAwLDEzIEBAIHByaXZhdGU6CiAKIGNsYXNzIERhdGFiYXNlOjpE
YXRhYmFzZU9wZW5UYXNrIDogcHVibGljIERhdGFiYXNlVGFzayB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gY3JlYXRlKERhdGFiYXNlKiBkYiwgYm9v
bCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5j
aHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIGJvb2wmIHN1Y2Nlc3MpCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8RGF0YWJhc2VPcGVuVGFzaz4gY3JlYXRlKERhdGFiYXNlKiBkYiwgYm9vbCBz
ZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBzeW5jaHJv
bml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBib29sJiBz
dWNjZXNzKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRhYmFzZU9wZW5U
YXNrKGRiLCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgc3luY2hyb25pemVyLCBjb2RlLCBzdWNj
ZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0YWJhc2VPcGVuVGFzayhkYiwg
c2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIHN5bmNocm9uaXplciwgY29kZSwgZXJyb3JNZXNzYWdl
LCBzdWNjZXNzKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIERhdGFiYXNlT3BlblRhc2soRGF0
YWJhc2UqLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJv
bml6ZXIqLCBFeGNlcHRpb25Db2RlJiwgYm9vbCYgc3VjY2Vzcyk7CisgICAgRGF0YWJhc2VPcGVu
VGFzayhEYXRhYmFzZSosIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFz
a1N5bmNocm9uaXplciosIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgYm9v
bCYgc3VjY2Vzcyk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9QZXJmb3JtVGFzaygpOwogI2lmICFM
T0dfRElTQUJMRUQKQEAgLTExNSw2ICsxMTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3Nl
dFZlcnNpb25Jbk5ld0RhdGFiYXNlOwogICAgIEV4Y2VwdGlvbkNvZGUmIG1fY29kZTsKKyAgICBT
dHJpbmcmIG1fZXJyb3JNZXNzYWdlOwogICAgIGJvb2wmIG1fc3VjY2VzczsKIH07CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTEVycm9yLmgJKHJldmlzaW9uIDk5ODk2KQorKysgU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxNCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTUUxFcnJvciA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxTUUxFcnJvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNR
TEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU1FMRXJyb3IoY29kZSwgbWVzc2FnZSkpOyB9CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBjaGFyKiBt
ZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoY29k
ZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7CisgICAg
fQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwg
Y29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1l
c3NhZ2UpCisgICAgeworICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6Zm9ybWF0
KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSwgc3FsaXRlTWVzc2FnZSkpOworICAg
IH0KIAogICAgIHVuc2lnbmVkIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KICAgICBT
dHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZS5pc29sYXRlZENvcHkoKTsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkocmV2aXNpb24g
OTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTc4LDcgKzc4LDEwIEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERh
dGFiYXNlKiBkYikKIAogICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAg
TE9HKFN0b3JhZ2VBUEksICJVbmFibGUgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHN0YXRlbWVu
dCAlcyAtIGVycm9yICVpICglcykiLCBtX3N0YXRlbWVudC5hc2NpaSgpLmRhdGEoKSwgcmVzdWx0
LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0ID8gU1FMRXJyb3I6OkRBVEFCQVNF
X0VSUiA6IFNRTEVycm9yOjpTWU5UQVhfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwor
ICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEludGVycnVwdCkKKyAgICAgICAgICAgIG1f
ZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsICJpbnRlcnJ1cHRlZCIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lO
VEFYX0VSUiwgImNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2Ut
Pmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtOTks
NyArMTAyLDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogCiAg
ICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgICAgIExPRyhTdG9y
YWdlQVBJLCAiRmFpbGVkIHRvIGJpbmQgdmFsdWUgaW5kZXggJWkgdG8gc3RhdGVtZW50IGZvciBx
dWVyeSAnJXMnIiwgaSArIDEsIG1fc3RhdGVtZW50LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAg
ICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRh
dGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGJpbmQgdmFsdWUiLCBy
ZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjMsNyArMTI2LDcgQEAgYm9vbCBTUUxTdGF0ZW1l
bnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogICAgICAgICB9IHdoaWxlIChyZXN1bHQgPT0gU1FM
UmVzdWx0Um93KTsKIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpIHsKLSAg
ICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGl0ZXJhdGUg
cmVzdWx0cyIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJl
c3VsdERvbmUpIHsKQEAgLTEzNSw3ICsxMzgsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0
ZShEYXRhYmFzZSogZGIpCiAgICAgICAgIHNldEZhaWx1cmVEdWVUb1F1b3RhKCk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkp
OworICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0Vf
RVJSLCAiY291bGQgbm90IGV4ZWN1dGUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFz
dEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHJldmlzaW9uIDk5ODk2
KQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsMTEgKzYxLDEzIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxT
dGF0ZW1lbnRTeW4KICAgICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnByZXBhcmUoKTsKICAgICBp
ZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgIGVjID0gKHJlc3VsdCA9PSBTUUxS
ZXN1bHRJbnRlcnJ1cHQgPyBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUiA6IFNRTEV4Y2VwdGlv
bjo6U1lOVEFYX0VSUik7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGlmIChzdGF0ZW1lbnQuYmluZFBhcmFt
ZXRlckNvdW50KCkgIT0gbV9hcmd1bWVudHMuc2l6ZSgpKSB7CiAgICAgICAgIGVjID0gKGRiLT5p
c0ludGVycnVwdGVkKCk/IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSIDogU1FMRXhjZXB0aW9u
OjpTWU5UQVhfRVJSKTsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoIm51bWJlciBv
ZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQgY291bnQi
KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC03MywxMSArNzUsMTMgQEAgUGFzc1Jl
ZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgogICAgICAgICByZXN1bHQgPSBzdGF0
ZW1lbnQuYmluZFZhbHVlKGkgKyAxLCBtX2FyZ3VtZW50c1tpXSk7CiAgICAgICAgIGlmIChyZXN1
bHQgPT0gU1FMUmVzdWx0RnVsbCkgewogICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlFV
T1RBX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVyZSB3YXMg
bm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICAgICAgcmV0dXJu
IDA7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAg
ICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAgICAgICAg
ZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBiaW5kIHZhbHVlIiwgcmVzdWx0LCBk
YXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAg
IH0KICAgICB9CkBAIC0xMDIsNiArMTA2LDcgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNR
TFN0YXRlbWVudFN5bgogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0RG9uZSkgewog
ICAgICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICAgICAgICAg
IGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgaXRlcmF0ZSByZXN1bHRzIiwgcmVz
dWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHREb25lKSB7CkBAIC0x
MTEsOSArMTE2LDExIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnRTeW4K
ICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHRGdWxsKSB7CiAgICAgICAgIC8vIFF1
b3RhIGVycm9yLCB0aGUgZGVsZWdhdGUgd2lsbCBiZSBhc2tlZCBmb3IgbW9yZSBzcGFjZSBhbmQg
dGhpcyBzdGF0ZW1lbnQgbWlnaHQgYmUgcmUtcnVuLgogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlv
bjo6UVVPVEFfRVJSOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgidGhlcmUgd2Fz
IG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UiKTsKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsK
KyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBleGVjdXRlIHN0YXRl
bWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9u
LmNwcAkocmV2aXNpb24gOTk4OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5z
YWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1LDggKzI2NSw5IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyBUcmFuc2FjdGlvbiBTdGVwcyAx
KzIgLSBPcGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhlIGRhdGFiYXNlLCBqdW1waW5nIHRvIHRoZSBl
cnJvciBjYWxsYmFjayBpZiB0aGF0IGZhaWxzCiAgICAgaWYgKCFtX3NxbGl0ZVRyYW5zYWN0aW9u
LT5pblByb2dyZXNzKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRh
YmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRv
IGJlZ2luIHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2Rh
dGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgbV9zcWxp
dGVUcmFuc2FjdGlvbi5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gb3BlbiBhIHRy
YW5zYWN0aW9uIHRvIHRoZSBkYXRhYmFzZSIpOwogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVy
cm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3NiwxMCArMjc3LDExIEBA
IHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyB0aGUgYWN0
dWFsIHZlcnNpb24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1c3QgYSBt
YXAgbG9va3VwLgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9kYXRhYmFz
ZS0+Z2V0QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7CisgICAg
ICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFC
QVNFX0VSUiwgInVuYWJsZSB0byByZWFkIHZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFz
dEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3NxbGl0
ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6
ZXIoKTsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIpOwogICAgICAgICBo
YW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTI5Myw4ICsyOTUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQ
CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAgbV90cmFu
c2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJh
bnNhY3Rpb25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cmVkIHNl
dHRpbmcgdXAgdHJhbnNhY3Rpb24iKTsKLQorICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9y
IG9jY3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCIpOwogICAgICAgICBoYW5kbGVU
cmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MCw3
ICs0NzEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0CiAgICAg
aWYgKG1fd3JhcHBlciAmJiAhbV93cmFwcGVyLT5wZXJmb3JtUG9zdGZsaWdodCh0aGlzKSkgewog
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAg
ICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVy
cm9yIG9jY3VyZWQgc2V0dGluZyB1cCB0cmFuc2FjdGlvbiIpOworICAgICAgICAgICAgbV90cmFu
c2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1
bmtub3duIGVycm9yIG9jY3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQiKTsKICAg
ICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC00ODcsNyArNDg4LDggQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdodEFu
ZENvbW1pdAogICAgICAgICBpZiAobV93cmFwcGVyKQogICAgICAgICAgICAgbV93cmFwcGVyLT5o
YW5kbGVDb21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQodGhpcyk7CiAgICAgICAgIG1fc3VjY2Vz
c0NhbGxiYWNrV3JhcHBlci5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJmYWlsZWQgdG8gY29tbWl0
IHRoZSB0cmFuc2FjdGlvbiIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gY29tbWl0IHRyYW5z
YWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxp
dGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25F
cnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCShyZXZpc2lvbiA5OTg5NikKKysr
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzUsMTIgKzc1LDE3IEBAIFNRTFRyYW5zYWN0aW9uU3luYzo6flNRTFRyYW5zYWN0
aW9uU3luYygKIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblN5bmM6OmV4
ZWN1dGVTUUwoY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1
ZT4mIGFyZ3VtZW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJh
c2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAg
bV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CisKICAgICBpZiAoIW1fZGF0YWJh
c2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2Uo
ImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuIik7CiAg
ICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQogCiAgICAgaWYgKG1faGFzVmVyc2lvbk1pc21hdGNoKSB7CisgICAgICAgIG1fZGF0
YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1c2UgdGhl
cmUgaXMgYSB2ZXJzaW9uIG1pc21hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpW
RVJTSU9OX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTEwLDggKzExNSwxMCBA
QCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiAgICAgICAgICAgICAg
ICAgaWYgKG1fdHJhbnNhY3Rpb25DbGllbnQtPmRpZEV4Y2VlZFF1b3RhKGRhdGFiYXNlKCkpKSB7
CiAgICAgICAgICAgICAgICAgICAgIGVjID0gMDsKICAgICAgICAgICAgICAgICAgICAgcmV0cnlT
dGF0ZW1lbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1l
c3NhZ2UoInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTEyNyw4ICsxMzQsMTAgQEAgUGFzc1JlZlB0cjxT
UUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9uUwogRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlv
blN5bmM6OmJlZ2luKCkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVu
ZWQoKSkKKyAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJh
c2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBiZWdpbiB0cmFuc2FjdGlvbiBiZWNhdXNl
IHRoZSBkYXRhYmFzZSBpcyBub3Qgb3BlbiIpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9u
OjpVTktOT1dOX0VSUjsKKyAgICB9CiAKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOwogCkBAIC0xNDcsNiArMTU2LDggQEAg
RXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKAogICAgIC8vIENoZWNrIGlm
IGJlZ2luKCkgc3VjY2VlZGVkLgogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9n
cmVzcygpKSB7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50
cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSk7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJv
ck1lc3NhZ2UoInVuYWJsZSB0byBiZWdpbiB0cmFuc2FjdGlvbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0
RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgcmV0dXJuIFNRTEV4
Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE1Niw2ICsxNjcsOCBAQCBFeGNlcHRp
b25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gdGhlIGFjdHVhbCB2ZXJz
aW9uLiBJbiBzaW5nbGUtcHJvY2VzcyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFwIGxvb2t1
cC4KICAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2UtPmdldEFj
dHVhbFZlcnNpb25Gb3JUcmFuc2FjdGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBtX2Rh
dGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVE
YXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgcm9sbGJhY2soKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2Vw
dGlvbjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE2OCw2ICsxODEsOCBAQCBFeGNlcHRpb25D
b2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0CiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2Ut
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwogICAgIGlmICgh
bV9kYXRhYmFzZS0+b3BlbmVkKCkgfHwgKG1fY2FsbGJhY2sgJiYgIW1fY2FsbGJhY2stPmhhbmRs
ZUV2ZW50KHRoaXMpKSkgeworICAgICAgICBpZiAobV9kYXRhYmFzZS0+bGFzdEVycm9yTWVzc2Fn
ZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3Nh
Z2UoImZhaWxlZCB0byBleGVjdXRlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIik7CiAgICAgICAgIG1f
Y2FsbGJhY2sgPSAwOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsK
ICAgICB9CkBAIC0xNzksOCArMTk0LDEwIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25T
eW5jOjpleGVjdXQKIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQoKQog
ewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29u
dGV4dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKQorICAgIGlmICgh
bV9kYXRhYmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBkYXRhYmFz
ZSBpcyBub3Qgb3Blbi4iKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9F
UlI7CisgICAgfQogCiAgICAgQVNTRVJUKG1fc3FsaXRlVHJhbnNhY3Rpb24pOwogCkBAIC0xODks
OCArMjA2LDExIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQKICAg
ICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7CiAKICAgICAvLyBJZiB0aGUgY29tbWl0
IGZhaWxlZCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgc3RpbGwgYmUgbWFya2VkIGFzICJpbiBwcm9n
cmVzcyIKLSAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQorICAgIGlm
IChtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgbV9kYXRhYmFz
ZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRl
RGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsK
KyAgICB9CiAKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk5ODk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMTAgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxheW91dCB0ZXN0cyBmb3IgIG5ldyB3ZWJzcWwg
ZXJyb3IgbWVzc2FnZXMgYW5kIGNvbnNvbGUgbG9nZ2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFnZS9jaGFuZ2Ut
dmVyc2lvbi1oYW5kbGUtcmV1c2Utd29ya2VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L3dvcmtlcnMvc3RvcmFnZS9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5
bmMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFnZS9leGVjdXRlc3FsLWFjY2Vw
dHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
d29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stc3luYy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1z
ZXQtZW1wdHktdmVyc2lvbi1zeW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtl
cnMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
d29ya2Vycy9zdG9yYWdlL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFnZS90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1z
eW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRs
ZS1yZXVzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNy
ZWF0aW9uLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL29wZW4tZGF0
YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
cHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
c3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0OgorCiAyMDExLTExLTEwICBTdGVw
aGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gUHJlLWVtcHRpdmVseSBtYXJrIGEgY2FudmFzIHRlc3QgYXMgZmFpbGluZyBmb3IgbmV4dCBT
a2lhIHJvbGwuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9jaGFuZ2Ut
dmVyc2lvbi1oYW5kbGUtcmV1c2Utd29ya2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1
c2Utd29ya2VyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2Utd29ya2VyLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIFRoaXMgdGVzdHMgdGhh
dCBhIGRhdGFiYXNlIGNhbiBiZSBhY2Nlc3NlZCBhZnRlciBjaGFuZ2luZyBpdHMgdmVyc2lvbi4g
WW91IHNob3VsZCBzZWUgYW4gZXJyb3IgYWJvdXQgRm9vQmFyIHRhYmxlIGJlbG93LCBub3QgYWJv
dXQgbWlzbWF0Y2hpbmcgdmVyc2lvbnMuCiBjaGFuZ2VWZXJzaW9uOiB0cmFuc2FjdGlvbiBjYWxs
YmFjawogY2hhbmdlVmVyc2lvbjogc3VjY2VzcyBjYWxsYmFjawotdHJhbnNhY3Rpb246IHN0YXRl
bWVudCBlcnJvciBjYWxsYmFjazogbm8gc3VjaCB0YWJsZTogRm9vQmFyCit0cmFuc2FjdGlvbjog
c3RhdGVtZW50IGVycm9yIGNhbGxiYWNrOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEg
bm8gc3VjaCB0YWJsZTogRm9vQmFyKQogVEVTVCBDT01QTEVURS4KIApJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRl
bWVudC1zeW5jLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvc3RvcmFnZS9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vy
cy9zdG9yYWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIFRlc3QgdGhhdCBleGVj
dXRlU3FsKCkgYWNjZXB0cyBvbmx5IG9uZSBzdGF0ZW1lbnQuCi1QQVNTOiBJTlNFUlQgSU5UTyBU
ZXN0IFZBTFVFUyAoMSkKLVBBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgyKTsKLVBBU1M6
ICAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgzKSAgICAKLVBBU1M6ICAgIElOU0VSVCBJTlRP
IFRlc3QgVkFMVUVTICg0KTsgICAKLVBBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg1KSAg
IDsKLVBBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg2KTsgZ2FyYmFnZQotUEFTUzogSU5T
RVJUIElOVE8gVGVzdCBWQUxVRVMgKDcpOyBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoOCkKLVBB
U1M6ICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDkpOyAgIElOU0VSVCBJTlRPIFRlc3QgVkFM
VUVTICgxMCk7ICAgCitQQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMSksIAorUEFTUzog
SU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDIpOywgCitQQVNTOiAgICBJTlNFUlQgSU5UTyBUZXN0
IFZBTFVFUyAoMykgICAgLCAKK1BBU1M6ICAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg0KTsg
ICAsIAorUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDUpICAgOywgCitQQVNTOiBJTlNF
UlQgSU5UTyBUZXN0IFZBTFVFUyAoNik7IGdhcmJhZ2UsIGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCAoMSwgbm90IGFuIGVycm9yKQorUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDcp
OyBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoOCksIGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMSwgbm90IGFuIGVycm9yKQorUEFTUzogICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoOSk7
ICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDEwKTsgICAsIGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMSwgbm90IGFuIGVycm9yKQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4t
ZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5
ODk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1j
cmVhdGlvbi1jYWxsYmFjay1zeW5jLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFz
ZSwgdmVyc2lvbiBtaXNtYXRjaCwgJzEuMCcgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJz
aW9uIG9mICcnCiBUaGlzIHRlc3QgdGVzdHMgb3BlbkRhdGFiYXNlU3luYygpJ3MgY3JlYXRpb24g
Y2FsbGJhY2suCiBQQVNTOiBDcmVhdGlvbiBjYWxsYmFjayB3YXMgY2FsbGVkLgogUEFTUzogVmVy
c2lvbiBzZXQgdG8gZW1wdHkgc3RyaW5nIGFzIGV4cGVjdGVkLgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zeW5j
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3Rv
cmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLXN5bmMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4t
ZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3luYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlzbWF0Y2gsICd0ZXN0JyBkb2VzIG5vdCBtYXRjaCB0aGUg
Y3VycmVudFZlcnNpb24gb2YgJycKIFRoaXMgdGVzdHMgdGhhdCBjYWxsaW5nIG9wZW5EYXRhYmFz
ZSB3aXRoIGFuIGVtcHR5IHZlcnNpb24gc3RyaW5nIHNldHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBv
ZiB0aGF0IGRhdGFiYXNlIHRvIHRoZSBlbXB0eSBzdHJpbmcgYW5kIHN1YnNlcXVlbnQgYXR0ZW1w
dHMgdG8gb3BlbiB0aGUgZGF0YWJhc2Ugd2l0aCBhIGRpZmZlcmVudCBleHBlY3RlZCB2ZXJzaW9u
IHRocm93IGFuIGV4Y2VwdGlvbi4KIFBBU1MKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdl
L3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsMjAgKzYs
MjAgQEAgU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IHN1YwogU1FMSVRFX0NS
RUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dF
UiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9y
aXplZAorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBTUUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVf
REVMRVRFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCiBTUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfUFJBR01B
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfUFJBR01BIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQp
CiBTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9BTFRFUl9U
QUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3Jp
emVkCitTUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BVFRBQ0ggc3RhdGVtZW50
IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
K1NRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUlOREVYIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCi1TUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FM
SVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCiBTUUxJVEVfRFJPUF9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVf
RFJPUF9URU1QX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KQEAgLTI4LDQxICsyOCw0MSBA
QCBTUUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9W
SUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogV3JpdGUgdHJhbnNhY3Rpb24gc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9UQUJM
RSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9UQUJMRSBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhv
cml6ZWQpCiBTUUxJVEVfQ1JFQVRFX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVf
Q1JFQVRFX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JF
QVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9D
UkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJ
VEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJ
VEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9D
UkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JF
QVRFX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FM
SVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcg
c3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0
aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZJ
RVcgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQ1JFQVRF
X0lOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3Rh
dGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBz
dWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgog
U1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRF
X1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQog
U1FMSVRFX1JFQUQgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KLVNRTElURV9ERUxFVEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6
ZWQKLVNRTElURV9JTlNFUlQgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9VUERBVEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9QUkFHTUEg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTFRFUl9UQUJMRSBzdGF0
ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vIHN1Y2ggdGFibGU6IFRlc3RUYWJsZQotU1FMSVRFX1RSQU5TQUNUSU9OIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9y
aXplZAotU1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNR
TElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVf
RFJPUF9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVf
RFJPUF9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9EUk9QX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RS
T1BfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEFC
TEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9ERUxFVEUgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9JTlNFUlQgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9VUERBVEUgc3RhdGVtZW50IGZhaWxl
ZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElU
RV9QUkFHTUEgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FM
VEVSX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MSBubyBzdWNoIHRhYmxlOiBUZXN0VGFibGUpCitTUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50
IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
K1NRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9S
RUlOREVYIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfSU5E
RVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9Q
X1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitT
UUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitT
UUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogUmVhZCB0cmFuc2FjdGlvbnMgc3VjY2VlZGVkLgog
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS90cmFuc2FjdGlvbi1pbi10
cmFuc2FjdGlvbi1zeW5jLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3dvcmtlcnMvc3RvcmFnZS90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3Rv
cmFnZS90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMgQEAKIFRlc3QgdGhhdCB0cnlpbmcgdG8gcnVuIGEgdHJhbnNh
Y3Rpb24gaW5zaWRlIGFub3RoZXIgdHJhbnNhY3Rpb24gdGhyb3dzIGFuIGV4Y2VwdGlvbi4KLVBB
U1M6IEV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5aW5nIHRvIHJ1biBhIG5lc3RlZCB0cmFuc2Fj
dGlvbi4KK1BBU1M6IEV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5aW5nIHRvIHJ1biBhIG5lc3Rl
ZCB0cmFuc2FjdGlvbiAodW5hYmxlIHRvIHN0YXJ0IGEgdHJhbnNhY3Rpb24gZnJvbSB3aXRoaW4g
YSB0cmFuc2FjdGlvbikuCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdl
L3Jlc291cmNlcy9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVzb3VyY2Vz
L2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy5qcwkocmV2aXNpb24g
OTk4OTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvZXhl
Y3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDExICsxLDEzIEBACiBmdW5jdGlvbiBleGVjdXRlU3RhdGVtZW50KHR4LCBleHBlY3Rl
ZFRvUGFzcywgc3RhdGVtZW50KQogeworICAgIHZhciBtZXNzYWdlOwogICAgIHRyeSB7CiAgICAg
ICAgIHR4LmV4ZWN1dGVTcWwoc3RhdGVtZW50KTsKLSAgICAgICAgcG9zdE1lc3NhZ2UoZXhwZWN0
ZWRUb1Bhc3MgPyAiUEFTUzogIiArIHN0YXRlbWVudCA6ICJGQUlMOiAiICsgc3RhdGVtZW50KTsK
KyAgICAgICAgbWVzc2FnZSA9IGV4cGVjdGVkVG9QYXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIjsK
ICAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgICAgcG9zdE1lc3NhZ2UoIWV4cGVjdGVkVG9QYXNz
ID8gIlBBU1M6ICIgKyBzdGF0ZW1lbnQgOiAiRkFJTDogIiArIHN0YXRlbWVudCk7CisgICAgICAg
IG1lc3NhZ2UgPSAhZXhwZWN0ZWRUb1Bhc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiOwogICAgIH0K
KyAgICBwb3N0TWVzc2FnZShtZXNzYWdlICsgc3RhdGVtZW50ICsgIiwgIiArIGRiLmxhc3RFcnJv
ck1lc3NhZ2UpOwogfQogCiB2YXIgZGIgPSBvcGVuRGF0YWJhc2VTeW5jKCJFeGVjdXRlU1FMQWNj
ZXB0c09ubHlPbmVTdGF0ZW1lbnRUZXN0IiwgIjEuMCIsICIiLCAxKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNlcy90cmFuc2FjdGlvbi1pbi10cmFuc2Fj
dGlvbi1zeW5jLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9y
YWdlL3Jlc291cmNlcy90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLmpzCShyZXZpc2lv
biA5OTg5NikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNlcy90
cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkg
KzIsOSBAQCB2YXIgZGIgPSBvcGVuRGF0YWJhc2VTeW5jKCJUcmFuc2FjdGlvbkluCiBkYi50cmFu
c2FjdGlvbihmdW5jdGlvbih0eCkgewogICAgIHRyeSB7CiAgICAgICAgIGRiLnRyYW5zYWN0aW9u
KGZ1bmN0aW9uKG5lc3RlZFR4KSB7IH0pOwotICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogVHJ5
aW5nIHRvIHJ1biBhIG5lc3RlZCB0cmFuc2FjdGlvbiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9u
LiIpOworICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogVHJ5aW5nIHRvIHJ1biBhIG5lc3RlZCB0
cmFuc2FjdGlvbiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiIgKyBkYi5sYXN0RXJyb3JNZXNz
YWdlKTsKICAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IEV4
Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5aW5nIHRvIHJ1biBhIG5lc3RlZCB0cmFuc2FjdGlvbi4i
KTsKKyAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IEV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5
aW5nIHRvIHJ1biBhIG5lc3RlZCB0cmFuc2FjdGlvbiAoIiArIGRiLmxhc3RFcnJvck1lc3NhZ2Ug
KyAiKS4iKTsKICAgICB9CiB9KTsKIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9jaGFuZ2Ut
dmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gOTk4OTYpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRs
ZS1yZXVzZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiBUaGlz
IHRlc3RzIHRoYXQgYSBkYXRhYmFzZSBjYW4gYmUgYWNjZXNzZWQgYWZ0ZXIgY2hhbmdpbmcgaXRz
IHZlcnNpb24uIFlvdSBzaG91bGQgc2VlIGFuIGVycm9yIGFib3V0IEZvb0JhciB0YWJsZSBiZWxv
dywgbm90IGFib3V0IG1pc21hdGNoaW5nIHZlcnNpb25zLgogY2hhbmdlVmVyc2lvbjogdHJhbnNh
Y3Rpb24gY2FsbGJhY2sKIGNoYW5nZVZlcnNpb246IHN1Y2Nlc3MgY2FsbGJhY2sKLXRyYW5zYWN0
aW9uOiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2s6IG5vIHN1Y2ggdGFibGU6IEZvb0JhcgordHJh
bnNhY3Rpb246IHN0YXRlbWVudCBlcnJvciBjYWxsYmFjazogY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50ICgxIG5vIHN1Y2ggdGFibGU6IEZvb0JhcikKIFRFU1QgQ09NUExFVEUuCiAKSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNl
LWNyZWF0aW9uLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTk4OTYpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDA6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAnMS4wJyBkb2Vz
IG5vdCBtYXRjaCB0aGUgY3VycmVudFZlcnNpb24gb2YgJycKIFRoaXMgdGVzdCB0ZXN0cyBvcGVu
RGF0YWJhc2UoKSdzIGNyZWF0aW9uIGNhbGxiYWNrLgogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9y
YWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lv
bi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5ODk2KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9v
cGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSwyICsxLDMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUgdG8gb3Bl
biBkYXRhYmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwgJ3Rlc3QnIGRvZXMgbm90IG1hdGNoIHRoZSBj
dXJyZW50VmVyc2lvbiBvZiAnJwogVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgb3BlbkRhdGFiYXNl
IHdpdGggYW4gZW1wdHkgdmVyc2lvbiBzdHJpbmcgc2V0cyB0aGUgY3VycmVudCB2ZXJzaW9uIG9m
IHRoYXQgZGF0YWJhc2UgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgc3Vic2VxdWVudCBhdHRlbXB0
cyB0byBvcGVuIHRoZSBkYXRhYmFzZSB3aXRoIGEgZGlmZmVyZW50IGV4cGVjdGVkIHZlcnNpb24g
dGhyb3cgYW4gZXhjZXB0aW9uLgogU1VDQ0VTUywgYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24uIEVy
cm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFk
LW5vd3JpdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExheW91dFRlc3RzL3N0
b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTIsMTQgKzIsMTQgQEAgVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBhdHRl
bXB0cyB0byBjaAogU2V0dXAgc3RhdGVtZW50IDEgY29tcGxldGVkIHN1Y2Nlc3NmdWxseQogU2V0
dXAgc3RhdGVtZW50IDIgY29tcGxldGVkIHN1Y2Nlc3NmdWxseQogUHJpdmF0ZSBicm93c2luZyBz
dGF0ZW1lbnQgMSBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgotbm90IGF1dGhvcml6ZWQKK2NvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKIFByaXZhdGUgYnJvd3Np
bmcgc3RhdGVtZW50IDIgY29tcGxldGVkIHdpdGggYW4gZXJyb3IKLW5vdCBhdXRob3JpemVkCitj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogUHJpdmF0ZSBi
cm93c2luZyBzdGF0ZW1lbnQgMyBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgotbm90IGF1dGhvcml6
ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBQcml2
YXRlIGJyb3dzaW5nIHN0YXRlbWVudCA0IGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1ub3QgYXV0
aG9yaXplZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
IFByaXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDUgY29tcGxldGVkIHdpdGggYW4gZXJyb3IKLWFj
Y2VzcyB0byBQcml2YXRlVGVzdDEucmFuZG9tRGF0YSBpcyBwcm9oaWJpdGVkCitjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIGFjY2VzcyB0byBQcml2YXRlVGVzdDEucmFuZG9tRGF0YSBp
cyBwcm9oaWJpdGVkKQogVGVzdCBlbmRlZAogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3Rl
c3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3Rv
cmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5OTg5NikKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtNiwyMCArNiwyMCBAQCBTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1l
bnQgc3VjCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FM
SVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1ZJ
RVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FM
SVRFX1JFQUQgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50IHN1
Y2NlZWRlZC4KIFNRTElURV9ERUxFVEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9JTlNF
UlQgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9VUERBVEUgc3RhdGVtZW50IHN1Y2NlZWRl
ZC4KLVNRTElURV9QUkFHTUEgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElU
RV9QUkFHTUEgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVk
LgogU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfVFJBTlNB
Q1RJT04gc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BVFRBQ0ggc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZh
aWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIz
IG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFSU5ERVgg
c3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0RST1BfSU5ERVgg
c3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IHN1
Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgpA
QCAtMjgsNDEgKzI4LDQxIEBAIFNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRl
ZC4KIFNRTElURV9EUk9QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RB
QkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBXcml0ZSB0cmFuc2FjdGlvbiBzdWNjZWVkZWQuCi1T
UUxJVEVfQ1JFQVRFX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJ
VEVfQ1JFQVRFX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCAoMSBub3QgYXV0aG9yaXplZCkKIFNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IHN1
Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhv
cml6ZWQKLVNRTElURV9DUkVBVEVfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0
aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90
IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90
IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0
aG9yaXplZAotU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhv
cml6ZWQKK1NRTElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9U
QUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVf
Q1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkK
K1NRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKIFNRTElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVB
VEVfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1RS
SUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRl
bWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRl
ZC4KIFNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFU
RV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVf
VlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRF
X1NFTEVDVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgZmFp
bGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAotU1FMSVRFX1VQREFURSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQUxU
RVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm8gc3VjaCB0YWJsZTogVGVzdFRhYmxlCi1TUUxJ
VEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9B
VFRBQ0ggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0ggc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9SRUlOREVYIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKLVNRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKLVNRTElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRo
b3JpemVkCi1TUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
Ci1TUUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FM
SVRFX0RFTEVURSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3Vs
ZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX1VQREFU
RSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBh
dXRob3JpemVkKQorU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJl
cGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVSX1RBQkxFIHN0
YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhv
cml6ZWQpCitTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgxIG5vIHN1Y2ggdGFibGU6IFRlc3RUYWJsZSkKK1NRTElURV9UUkFO
U0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIz
IG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RFVEFDSCBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQorU1FMSVRFX1JFSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTkFMWVpFIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQp
CitTUUxJVEVfRFJPUF9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0
ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1Q
X1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBu
b3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9Q
X1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBu
b3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBSZWFkIHRyYW5zYWN0
aW9ucyBzdWNjZWVkZWQuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114784</attachid>
            <date>2011-11-11 15:16:21 -0800</date>
            <delta_ts>2011-11-11 17:26:19 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberror.txt</filename>
            <type>text/plain</type>
            <size>65638</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDExLTExLTEwICBNaWNoYWVs
IE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldHVybiBtb3JlIGNv
bXBsZXRlIGVycm9yIGFuZCBleGNlcHRpb24gbWVzc2FnZXMgd2hlbiBhCisgICAgICAgIFdlYlNR
TERhdGFiYXNlIGZ1bmN0aW9uIGZhaWxzLiBQcm9kdWNlIGNvbnNvbGUgbG9nZ2luZworICAgICAg
ICBmb3Igb3BlbkRhdGFiYXNlKCkgZXJyb3JzIGFuZCB2YWN1dW0gZXJyb3JzLiBBZGQgYSBsYXN0
RXJyb3JNZXNzYWdlCisgICAgICAgIGFjY2Vzc29yIHRvIHRoZSBEYXRhYmFzZVN5bmMgaW50ZXJm
YWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBZZXMs
IHNlZSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIHBs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVE
YXRhYmFzZTo6U1FMaXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJh
c2U6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvck1zZyk6CisgICAgICAgIChXZWJDb3JlOjpT
UUxpdGVEYXRhYmFzZTo6IHJ1blZhY3V1bUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6U1FM
aXRlRGF0YWJhc2U6OiBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQpOgorICAgICAgICBSZWZs
ZWN0IGVycm9ycyBpbiB0aGUgb3BlbigpIG1ldGhvZCBpbiBsYXN0RXJyb3IoKSBhbmQgbGFzdEVy
cm9yTXNnKCkuCisgICAgICAgIFJldHVybiBhbiBlcnJvciBjb2RlcyBmb3IgcnVuVmFjdXVtQ29t
bWFuZCgpIGFuZCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQoKS4KKworICAgICAgICAqIHBs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAgICAgICAqIHN0b3JhZ2UvQWJzdHJhY3RE
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRFcnJvck1lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkpOgor
ICAgICAgICAoV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKToKKyAg
ICAgICAgRHVyaW5nIG9wZW5BbmRWZXJpZnksIHByb2R1Y2UgZm9ybWF0dGVkIGVycm9yIG1lc3Nh
Z2VzIHRoYXQgaW5jbHVkZSB3aGF0IHdhcyBiZWluZyBkb25lLCB0aGUgc3FsaXRlIGVycm9yIGNv
ZGUsCisgICAgICAgIGFuZCB0aGUgc3FsaXRlIGVycm9yIG1lc3NhZ2UuIEFkZCBhIGhlbHBlciB0
byBsb2cgbWVzc2FnZSB0byB0aGUgY29uc29sZS4KKworICAgICAgICAqIHN0b3JhZ2UvQWJzdHJh
Y3REYXRhYmFzZS5oOgorICAgICAgICAqIHN0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1Qb3N0
ZmxpZ2h0KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
Om9wZW5BbmRWZXJpZnlWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpwZXJm
b3JtT3BlbkFuZFZlcmlmeSk6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZS5oOgorICAgICAg
ICAqIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
U3luYzo6b3BlbkRhdGFiYXNlU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6
OmNoYW5nZVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpydW5UcmFu
c2FjdGlvbik6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlU3luYzo6bGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZVN5bmM6OnNldExhc3RFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHN0b3JhZ2Uv
RGF0YWJhc2VTeW5jLmlkbDoKKyAgICAgICAgQWRkIGEgbGFzdEVycm9yTWVzc2FnZSBhdHRyaWJ1
dGUgc28gamF2YXNjcmlwdCBjYWxsZXJzIGNhbgorICAgICAgICByZXRyaWV2ZSBtb3JlIGRldGFp
bGVkIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgd2VudCB3cm9uZy4KKworICAgICAgICAqIHN0b3Jh
Z2UvRGF0YWJhc2VUYXNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFz
ZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW5UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
OjpEYXRhYmFzZU9wZW5UYXNrOjpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKiBzdG9yYWdlL0Rh
dGFiYXNlVGFzay5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlT3BlblRh
c2s6OmNyZWF0ZSk6CisgICAgICAgIFJldHVybiBhbiBlcnJvck1lc3NhZ2UgaW4gYWRkaXRpb24g
dG8gdGhlIGV4Y2VwdGlvbiBjb2RlLgorCisgICAgICAgICogc3RvcmFnZS9TUUxFcnJvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIEFkZCBoZWxwZXJz
IHRvIHByb2R1Y2VkIGZvcm1hdHRlZCBlcnJvciBtZXNzYWdlcy4KKworICAgICAgICAqIHN0b3Jh
Z2UvU1FMU3RhdGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhl
Y3V0ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFN0YXRlbWVudFN5bmM6OmV4ZWN1dGUpOgorICAgICAgICAqIHN0b3JhZ2Uv
U1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Om9w
ZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2Fj
dGlvblN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVj
dXRlU1FMKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0KToKKwogMjAxMS0xMS0xMSAgSmVm
ZiBUaW1hbnVzICA8dHdpekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQYXRj
aCB0aGF0IGltcGxlbWVudGluZyB0aGUgY2hhbmdlcyByZXF1aXJlZCB0byBhbGxvdyBXZWJHTApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3Bw
CShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw4IEBAIGNvbnN0IGludCBT
UUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVfU0NIRU0KIGNvbnN0IGludCBTUUxSZXN1bHRGdWxsID0g
U1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQgU1FMUmVzdWx0SW50ZXJydXB0ID0gU1FMSVRFX0lOVEVS
UlVQVDsKIAorc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVycm9yTWVzc2FnZVtdID0gImRhdGFi
YXNlIGlzIG5vdCBvcGVuIjsKKwogU1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAg
ICA6IG1fZGIoMCkKICAgICAsIG1fcGFnZVNpemUoLTEpCkBAIC01Myw2ICs1NSw4IEBAIFNRTGl0
ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAgICAgLCBtX3NoYXJhYmxlKGZhbHNlKQogICAg
ICwgbV9vcGVuaW5nVGhyZWFkKDApCiAgICAgLCBtX2ludGVycnVwdGVkKGZhbHNlKQorICAgICwg
bV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQorICAgICwgbV9vcGVuRXJyb3JNZXNzYWdlKG5vdE9w
ZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAKQEAgLTY1LDE1ICs2OSwyMCBAQCBib29sIFNRTGl0ZURh
dGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgCiB7CiAgICAgY2xvc2UoKTsKIAotICAgIGlmIChT
UUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBmb3JXZWJTUUxE
YXRhYmFzZSkgIT0gU1FMSVRFX09LKSB7CisgICAgbV9vcGVuRXJyb3IgPSBTUUxpdGVGaWxlU3lz
dGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBmb3JXZWJTUUxEYXRhYmFzZSk7Cisg
ICAgaWYgKG1fb3BlbkVycm9yICE9IFNRTElURV9PSykgeworICAgICAgICBtX29wZW5FcnJvck1l
c3NhZ2UgPSBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiAic3FsaXRlX29wZW4gcmV0dXJu
ZWQgbnVsbCI7CiAgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBs
b2FkIGZyb20gJXNcbkNhdXNlIC0gJXMiLCBmaWxlbmFtZS5hc2NpaSgpLmRhdGEoKSwKLSAgICAg
ICAgICAgIHNxbGl0ZTNfZXJybXNnKG1fZGIpKTsKKyAgICAgICAgICAgIG1fb3BlbkVycm9yTWVz
c2FnZS5kYXRhKCkpOwogICAgICAgICBzcWxpdGUzX2Nsb3NlKG1fZGIpOwogICAgICAgICBtX2Ri
ID0gMDsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBpZiAoc3FsaXRlM19leHRl
bmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIExPR19F
UlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3Jz
IC0gJXMiLCBzcWxpdGUzX2Vycm1zZyhtX2RiKSk7CisKKyAgICBtX29wZW5FcnJvciA9IHNxbGl0
ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1fZGIsIDEpOworICAgIGlmIChtX29wZW5FcnJvciAh
PSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJt
c2cobV9kYik7CisgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4g
ZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgp
KTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYgKzkwLDggQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6
b3Blbihjb25zdCBTdHJpbmcmIAogCiAgICAgaWYgKGlzT3BlbigpKQogICAgICAgICBtX29wZW5p
bmdUaHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CisgICAgZWxzZQorICAgICAgICBtX29wZW5FcnJv
ck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAKICAgICBpZiAoIVNRTGl0
ZVN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSB0ZW1wX3N0b3JlID0gTUVNT1JZOyIpLmV4ZWN1dGVD
b21tYW5kKCkpCiAgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGNvdWxkIG5vdCBz
ZXQgdGVtcF9zdG9yZSB0byBtZW1vcnkiKTsKQEAgLTEwMiw2ICsxMTMsOCBAQCB2b2lkIFNRTGl0
ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgfQogCiAgICAgbV9vcGVuaW5nVGhyZWFkID0gMDsKKyAg
ICBtX29wZW5FcnJvciA9IFNRTElURV9FUlJPUjsKKyAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBu
b3RPcGVuRXJyb3JNZXNzYWdlOwogfQogCiB2b2lkIFNRTGl0ZURhdGFiYXNlOjppbnRlcnJ1cHQo
KQpAQCAtMjgxLDEzICsyOTQsMTQgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6Y2xlYXJBbGxUYWJs
ZXMoKQogICAgIH0KIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuVmFjdXVtQ29tbWFuZCgp
CitpbnQgU1FMaXRlRGF0YWJhc2U6OnJ1blZhY3V1bUNvbW1hbmQoKQogewogICAgIGlmICghZXhl
Y3V0ZUNvbW1hbmQoIlZBQ1VVTTsiKSkKICAgICAgICAgTE9HKFNRTERhdGFiYXNlLCAiVW5hYmxl
IHRvIHZhY3V1bSBkYXRhYmFzZSAtICVzIiwgbGFzdEVycm9yTXNnKCkpOworICAgIHJldHVybiBs
YXN0RXJyb3IoKTsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1
dW1Db21tYW5kKCkKK2ludCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dW1Db21t
YW5kKCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAg
ZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CkBAIC0yOTYsNiArMzEwLDcgQEAgdm9pZCBTUUxpdGVE
YXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dQogICAgICAgICBMT0coU1FMRGF0YWJhc2UsICJV
bmFibGUgdG8gcnVuIGluY3JlbWVudGFsIHZhY3V1bSAtICVzIiwgbGFzdEVycm9yTXNnKCkpOwog
CiAgICAgZW5hYmxlQXV0aG9yaXplcih0cnVlKTsKKyAgICByZXR1cm4gbGFzdEVycm9yKCk7CiB9
CiAKIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6Omxhc3RJbnNlcnRSb3dJRCgpCkBAIC0zMTQsMTIg
KzMyOSwxMiBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6Omxhc3RDaGFuZ2VzKCkKIAogaW50IFNRTGl0
ZURhdGFiYXNlOjpsYXN0RXJyb3IoKQogewotICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJj
b2RlKG1fZGIpIDogU1FMSVRFX0VSUk9SOworICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJj
b2RlKG1fZGIpIDogbV9vcGVuRXJyb3I7CiB9CiAKIGNvbnN0IGNoYXIqIFNRTGl0ZURhdGFiYXNl
OjpsYXN0RXJyb3JNc2coKQogeyAKLSAgICByZXR1cm4gc3FsaXRlM19lcnJtc2cobV9kYik7Cisg
ICAgcmV0dXJuIG1fZGIgPyBzcWxpdGUzX2Vycm1zZyhtX2RiKSA6IG1fb3BlbkVycm9yTWVzc2Fn
ZS5kYXRhKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkocmV2aXNpb24gMTAwMDMzKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTY4LDggKzY5LDggQEAg
cHVibGljOgogICAgIAogICAgIGJvb2wgdGFibGVFeGlzdHMoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBjbGVhckFsbFRhYmxlcygpOwotICAgIHZvaWQgcnVuVmFjdXVtQ29tbWFuZCgpOwotICAg
IHZvaWQgcnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CisgICAgaW50IHJ1blZhY3V1bUNv
bW1hbmQoKTsKKyAgICBpbnQgcnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CiAgICAgCiAg
ICAgYm9vbCB0cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0
aW9uSW5Qcm9ncmVzczsgfQogICAgIApAQCAtMTUzLDcgKzE1NCwxMCBAQCBwcml2YXRlOgogCiAg
ICAgTXV0ZXggbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKICAgICBib29sIG1faW50ZXJydXB0ZWQ7
Ci19OyAvLyBjbGFzcyBTUUxpdGVEYXRhYmFzZQorCisgICAgaW50IG1fb3BlbkVycm9yOworICAg
IENTdHJpbmcgbV9vcGVuRXJyb3JNZXNzYWdlOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5jcHAJ
KHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRlVHJh
bnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTIsNiArNTMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RhdGljIGNvbnN0IGNoYXIgdmVyc2lvbktleVtdID0gIldlYktpdERhdGFiYXNlVmVyc2lv
bktleSI7CiBzdGF0aWMgY29uc3QgY2hhciBpbmZvVGFibGVOYW1lW10gPSAiX19XZWJLaXREYXRh
YmFzZUluZm9UYWJsZV9fIjsKIAorc3RhdGljIFN0cmluZyBmb3JtYXRFcnJvck1lc3NhZ2UoY29u
c3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUVycm9yQ29kZSwgY29uc3QgY2hhciogc3FsaXRl
RXJyb3JNZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkICVzKSIs
IG1lc3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3FsaXRlRXJyb3JNZXNzYWdlKTsKK30KKwogc3Rh
dGljIGJvb2wgcmV0cmlldmVUZXh0UmVzdWx0RnJvbURhdGFiYXNlKFNRTGl0ZURhdGFiYXNlJiBk
YiwgY29uc3QgU3RyaW5nJiBxdWVyeSwgU3RyaW5nJiByZXN1bHRTdHJpbmcpCiB7CiAgICAgU1FM
aXRlU3RhdGVtZW50IHN0YXRlbWVudChkYiwgcXVlcnkpOwpAQCAtMjQ0LDE3ICsyNTAsMTkgQEAg
U3RyaW5nIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBnZXRD
YWNoZWRWZXJzaW9uKCk7CiB9CiAKLWJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5B
bmRWZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wg
c2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTdHJpbmcm
IGVycm9yTWVzc2FnZSkKIHsKKyAgICBBU1NFUlQoZXJyb3JNZXNzYWdlLmlzRW1wdHkoKSk7CisK
ICAgICBjb25zdCBpbnQgbWF4U3FsaXRlQnVzeVdhaXRUaW1lID0gMzAwMDA7CiAKICAgICBpZiAo
IW1fc3FsaXRlRGF0YWJhc2Uub3BlbihtX2ZpbGVuYW1lLCB0cnVlKSkgewotICAgICAgICBMT0df
RVJST1IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGF0IHBhdGggJXMiLCBtX2ZpbGVuYW1lLmFz
Y2lpKCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdl
KCJ1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCks
IG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICghbV9zcWxp
dGVEYXRhYmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKLSAgICAgICAgTE9HX0VS
Uk9SKCJVbmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSBmb3IgZGF0YWJh
c2UgJXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSAoJWQgJXMpIiwgbV9zcWxp
dGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAKICAgICBtX3NxbGl0ZURhdGFiYXNlLnNldEJ1c3lUaW1lb3V0KG1heFNxbGl0ZUJ1c3lXYWl0
VGltZSk7CiAKQEAgLTI5MCw3ICsyOTgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZv
cm1PcGVuQW5kVmVyCiAgICAgICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbiht
X3NxbGl0ZURhdGFiYXNlKTsKICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmJlZ2luKCk7CiAgICAg
ICAgICAgICBpZiAoIXRyYW5zYWN0aW9uLmluUHJvZ3Jlc3MoKSkgewotICAgICAgICAgICAgICAg
IExPR19FUlJPUigiVW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIHdoaWxlIG9wZW5pbmcgJXMi
LCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
LCBmYWlsZWQgdG8gc3RhcnQgdHJhbnNhY3Rpb24iLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJv
cigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2Uu
Y2xvc2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDEsMTQgKzMwOSwx
NCBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAgICAgICAgICAg
ICAgICAgbV9uZXcgPSB0cnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCFtX3NxbGl0ZURhdGFi
YXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgIiArIHRhYmxlTmFtZSArICIgKGtleSBU
RVhUIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0Us
dmFsdWUgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiKSkgewotICAgICAgICAgICAg
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgdGFibGUgJXMgaW4gZGF0YWJhc2Ug
JXMiLCBpbmZvVGFibGVOYW1lLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIGNyZWF0ZSAnaW5mbycgdGFibGUiLCBt
X3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAg
ICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAg
ICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICghZ2V0VmVy
c2lvbkZyb21EYXRhYmFzZShjdXJyZW50VmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAg
ICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNl
ICVzIiwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSwgZmFpbGVkIHRvIHJlYWQgY3VycmVudCB2ZXJzaW9uIiwgbV9zcWxpdGVEYXRhYmFzZS5s
YXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgICAgICB0cmFuc2FjdGlv
bi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsK
QEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5k
VmVyCiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtX25ldyB8fCBzaG91bGRTZXRWZXJzaW9uSW5O
ZXdEYXRhYmFzZSkgewogICAgICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiU2V0dGluZyB2
ZXJzaW9uICVzIGluIGRhdGFiYXNlICVzIHRoYXQgd2FzIGp1c3QgY3JlYXRlZCIsIG1fZXhwZWN0
ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG1fZXhwZWN0
ZWRWZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gc2V0IHZlcnNpb24gJXMgaW4gZGF0YWJhc2UgJXMiLCBtX2V4cGVjdGVkVmVyc2lvbi5h
c2NpaSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAg
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byB3cml0ZSBjdXJyZW50IHZlcnNpb24iLCBtX3Nx
bGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAg
ICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAg
bV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzQxLDggKzM0OSw3IEBAIGJvb2wgQWJzdHJh
Y3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVy
c2lvbiBpc24ndCB0aGUgZW1wdHkgc3RyaW5nLCBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBkYXRh
YmFzZSB2ZXJzaW9uIHdlIGhhdmUgbWF0Y2hlcyB0aGF0IHZlcnNpb24uIE90aGVyd2lzZSwgc2V0
IGFuIGV4Y2VwdGlvbi4KICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lvbiBpcyB0aGUgZW1w
dHkgc3RyaW5nLCB0aGVuIHdlIGFsd2F5cyByZXR1cm4gd2l0aCB3aGF0ZXZlciB2ZXJzaW9uIG9m
IHRoZSBkYXRhYmFzZSB3ZSBoYXZlLgogICAgIGlmICgoIW1fbmV3IHx8IHNob3VsZFNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlKSAmJiBtX2V4cGVjdGVkVmVyc2lvbi5sZW5ndGgoKSAmJiBtX2V4cGVj
dGVkVmVyc2lvbiAhPSBjdXJyZW50VmVyc2lvbikgewotICAgICAgICBMT0coU3RvcmFnZUFQSSwg
InBhZ2UgZXhwZWN0cyB2ZXJzaW9uICVzIGZyb20gZGF0YWJhc2UgJXMsIHdoaWNoIGFjdHVhbGx5
IGhhcyB2ZXJzaW9uIG5hbWUgJXMgLSBvcGVuRGF0YWJhc2UoKSBjYWxsIHdpbGwgZmFpbCIsIG1f
ZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLAotICAgICAgICAgICAgZGF0YWJhc2VEZWJ1
Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSwgY3VycmVudFZlcnNpb24uYXNjaWkoKS5kYXRhKCkpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSAidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24g
bWlzbWF0Y2gsICciICsgbV9leHBlY3RlZFZlcnNpb24gKyAiJyBkb2VzIG5vdCBtYXRjaCB0aGUg
Y3VycmVudFZlcnNpb24gb2YgJyIgKyBjdXJyZW50VmVyc2lvbiArICInIjsKICAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjQsOCArNTMxLDExIEBAIHZvaWQgQWJzdHJhY3RE
YXRhYmFzZTo6aW5jcmVtZW50YWxWYWN1dW0KIHsKICAgICBpbnQ2NF90IGZyZWVTcGFjZVNpemUg
PSBtX3NxbGl0ZURhdGFiYXNlLmZyZWVTcGFjZVNpemUoKTsKICAgICBpbnQ2NF90IHRvdGFsU2l6
ZSA9IG1fc3FsaXRlRGF0YWJhc2UudG90YWxTaXplKCk7Ci0gICAgaWYgKHRvdGFsU2l6ZSA8PSAx
MCAqIGZyZWVTcGFjZVNpemUpCi0gICAgICAgIG1fc3FsaXRlRGF0YWJhc2UucnVuSW5jcmVtZW50
YWxWYWN1dW1Db21tYW5kKCk7CisgICAgaWYgKHRvdGFsU2l6ZSA8PSAxMCAqIGZyZWVTcGFjZVNp
emUpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG1fc3FsaXRlRGF0YWJhc2UucnVuSW5jcmVtZW50
YWxWYWN1dW1Db21tYW5kKCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T0spCisg
ICAgICAgICAgICBsb2dFcnJvck1lc3NhZ2UoZm9ybWF0RXJyb3JNZXNzYWdlKCJlcnJvciB2YWN1
dW1pbmcgZGF0YWJhc2UiLCByZXN1bHQsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
KTsKKyAgICB9CiB9CiAKIHZvaWQgQWJzdHJhY3REYXRhYmFzZTo6aW50ZXJydXB0KCkKQEAgLTUz
OSw2ICs1NDksMTEgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjppc0ludGVycnVwdGVkKCkKICAg
ICByZXR1cm4gbV9zcWxpdGVEYXRhYmFzZS5pc0ludGVycnVwdGVkKCk7CiB9CiAKK3ZvaWQgQWJz
dHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sK
KyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIFN0cmlu
ZygpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5oCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3Ry
YWN0RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIGNsb3NlRGF0YWJhc2UoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jt
T3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRp
b25Db2RlJiBlYyk7CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wg
c2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7CiAKICAgICBib29sIGdldFZlcnNpb25Gcm9tRGF0YWJhc2UoU3RyaW5nJiB2
ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9IHRydWUpOwogICAgIGJvb2wgc2V0VmVy
c2lvbkluRGF0YWJhc2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVy
c2lvbiA9IHRydWUpOwpAQCAtMTA1LDYgKzEwNSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNl
dENhY2hlZFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBnZXRBY3R1YWxWZXJzaW9u
Rm9yVHJhbnNhY3Rpb24oU3RyaW5nJiB2ZXJzaW9uKTsKIAorICAgIHZvaWQgbG9nRXJyb3JNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0
YWJhc2VJbmZvVGFibGVOYW1lKCk7CiAKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHJldmlzaW9uIDEwMDAzMykKKysrIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MCwxMyArNTAsMTMgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVByZWZsaQogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogCiAgICAgaWYgKCF0cmFuc2FjdGlv
bi0+ZGF0YWJhc2UoKS0+Z2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgewot
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byByZXRyaWV2ZSBhY3R1YWwgY3VycmVudCB2ZXJz
aW9uIGZyb20gZGF0YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHZlcmlmeSBjdXJyZW50IHZlcnNp
b24gb2YgZGF0YWJhc2UiKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHJlYWQgdGhlIGN1cnJlbnQgdmVyc2lv
biIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5k
YXRhYmFzZSgpLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0
YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
ICAgICBpZiAoYWN0dWFsVmVyc2lvbiAhPSBtX29sZFZlcnNpb24pIHsKLSAgICAgICAgTE9HX0VS
Uk9SKCJPbGQgdmVyc2lvbiBkb2Vzbid0IG1hdGNoIGFjdHVhbCB2ZXJzaW9uIik7CiAgICAgICAg
IG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1
cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBk
byBub3QgbWF0Y2giKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTY5LDggKzY5
LDkgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVBvc3RmbAogICAgIEFTU0VS
VCh0cmFuc2FjdGlvbiAmJiB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKSk7CiAKICAgICBpZiAoIXRy
YW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zZXRWZXJzaW9uSW5EYXRhYmFzZShtX25ld1ZlcnNpb24p
KSB7Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBkYXRh
YmFzZSIpOwotICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNlIik7Cisg
ICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VS
UiwgInVuYWJsZSB0byBzZXQgbmV3IHZlcnNpb24gaW4gZGF0YWJhc2UiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c3FsaXRl
RGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0RhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlLmNwcAkocmV2aXNpb24gMTAwMDMzKQorKysgU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDggKzk4LDkgQEAgUGFz
c1JlZlB0cjxEYXRhYmFzZT4gRGF0YWJhc2U6Om9wZW5EYXRhYgogCiAgICAgUmVmUHRyPERhdGFi
YXNlPiBkYXRhYmFzZSA9IGFkb3B0UmVmKG5ldyBEYXRhYmFzZShjb250ZXh0LCBuYW1lLCBleHBl
Y3RlZFZlcnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7CiAKLSAgICBpZiAoIWRh
dGFiYXNlLT5vcGVuQW5kVmVyaWZ5VmVyc2lvbighY3JlYXRpb25DYWxsYmFjaywgZSkpIHsKLSAg
ICAgICAgTE9HKFN0b3JhZ2VBUEksICJGYWlsZWQgdG8gb3BlbiBhbmQgdmVyaWZ5IHZlcnNpb24g
KGV4cGVjdGVkICVzKSBvZiBkYXRhYmFzZSAlcyIsIGV4cGVjdGVkVmVyc2lvbi5hc2NpaSgpLmRh
dGEoKSwgZGF0YWJhc2UtPmRhdGFiYXNlRGVidWdOYW1lKCkuYXNjaWkoKS5kYXRhKCkpOworICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgaWYgKCFkYXRhYmFzZS0+b3BlbkFuZFZlcmlmeVZl
cnNpb24oIWNyZWF0aW9uQ2FsbGJhY2ssIGUsIGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZGF0
YWJhc2UtPmxvZ0Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwogICAgICAgICBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXIoKS5yZW1vdmVPcGVuRGF0YWJhc2UoZGF0YWJhc2UuZ2V0KCkpOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xNzMsMTQgKzE3NCwxNCBAQCBTdHJpbmcgRGF0YWJh
c2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBBYnN0cmFjdERhdGFiYXNlOjp2ZXJzaW9u
KCk7CiB9CiAKLWJvb2wgRGF0YWJhc2U6Om9wZW5BbmRWZXJpZnlWZXJzaW9uKGJvb2wgc2V0VmVy
c2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUpCitib29sIERhdGFiYXNlOjpvcGVu
QW5kVmVyaWZ5VmVyc2lvbihib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25D
b2RlJiBlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKICAgICBEYXRhYmFzZVRhc2tTeW5jaHJv
bml6ZXIgc3luY2hyb25pemVyOwogICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5k
YXRhYmFzZVRocmVhZCgpIHx8IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJl
YWQoKS0+dGVybWluYXRpb25SZXF1ZXN0ZWQoJnN5bmNocm9uaXplcikpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOwotICAgIE93blB0cjxEYXRhYmFz
ZU9wZW5UYXNrPiB0YXNrID0gRGF0YWJhc2VPcGVuVGFzazo6Y3JlYXRlKHRoaXMsIHNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCAmc3luY2hyb25pemVyLCBlLCBzdWNjZXNzKTsKKyAgICBPd25QdHI8
RGF0YWJhc2VPcGVuVGFzaz4gdGFzayA9IERhdGFiYXNlT3BlblRhc2s6OmNyZWF0ZSh0aGlzLCBz
ZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgJnN5bmNocm9uaXplciwgZSwgZXJyb3JNZXNzYWdlLCBz
dWNjZXNzKTsKICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRhdGFiYXNlVGhyZWFkKCkt
PnNjaGVkdWxlSW1tZWRpYXRlVGFzayh0YXNrLnJlbGVhc2UoKSk7CiAgICAgc3luY2hyb25pemVy
LndhaXRGb3JUYXNrQ29tcGxldGlvbigpOwogCkBAIC0yMzgsOSArMjM5LDkgQEAgdW5zaWduZWQg
bG9uZyBsb25nIERhdGFiYXNlOjptYXhpbXVtU2l6ZQogICAgIHJldHVybiBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS5nZXRNYXhTaXplRm9yRGF0YWJhc2UodGhpcyk7CiB9CiAKLWJvb2wgRGF0
YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2Us
IEV4Y2VwdGlvbkNvZGUmIGUpCitib29sIERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShi
b29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiBlLCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKIHsKLSAgICBpZiAoQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRW
ZXJpZnkoc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIGUpKSB7CisgICAgaWYgKEFic3RyYWN0RGF0
YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBlLCBl
cnJvck1lc3NhZ2UpKSB7CiAgICAgICAgIGlmIChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRh
dGFiYXNlVGhyZWFkKCkpCiAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRh
dGFiYXNlVGhyZWFkKCktPnJlY29yZERhdGFiYXNlT3Blbih0aGlzKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2UuaAkocmV2aXNpb24gMTAwMDMzKQorKysgU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05NSw4ICs5NSw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBydW5UcmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaz4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNr
LCBib29sIHJlYWRPbmx5KTsKIAotICAgIGJvb2wgb3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBz
ZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgYm9v
bCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNl
cHRpb25Db2RlJik7CisgICAgYm9vbCBvcGVuQW5kVmVyaWZ5VmVyc2lvbihib29sIHNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwor
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNldFZlcnNpb25Jbk5l
d0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAg
dm9pZCBpblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQoKTsKICAgICB2b2lkIHNjaGVkdWxl
VHJhbnNhY3Rpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5j
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5j
cHAJKHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VT
eW5jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksOCArNTksOSBAQCBQYXNzUmVmUHRyPERhdGFi
YXNlU3luYz4gRGF0YWJhc2VTeW5jOjpvCiAKICAgICBSZWZQdHI8RGF0YWJhc2VTeW5jPiBkYXRh
YmFzZSA9IGFkb3B0UmVmKG5ldyBEYXRhYmFzZVN5bmMoY29udGV4dCwgbmFtZSwgZXhwZWN0ZWRW
ZXJzaW9uLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSkpOwogCi0gICAgaWYgKCFkYXRhYmFz
ZS0+cGVyZm9ybU9wZW5BbmRWZXJpZnkoIWNyZWF0aW9uQ2FsbGJhY2ssIGVjKSkgewotICAgICAg
ICBMT0coU3RvcmFnZUFQSSwgIkZhaWxlZCB0byBvcGVuIGFuZCB2ZXJpZnkgdmVyc2lvbiAoZXhw
ZWN0ZWQgJXMpIG9mIGRhdGFiYXNlICVzIiwgZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgp
LCBkYXRhYmFzZS0+ZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgU3Ry
aW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWRhdGFiYXNlLT5wZXJmb3JtT3BlbkFuZFZlcmlm
eSghY3JlYXRpb25DYWxsYmFjaywgZWMsIGVycm9yTWVzc2FnZSkpIHsKKyAgICAgICAgZGF0YWJh
c2UtPmxvZ0Vycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwogICAgICAgICBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS5yZW1vdmVPcGVuRGF0YWJhc2UoZGF0YWJhc2UuZ2V0KCkpOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CkBAIC05NiwzOSArOTcsNDkgQEAgdm9pZCBEYXRhYmFzZVN5bmM6
OmNoYW5nZVZlcnNpb24oY29uc3QgUwogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQtPmlzQ29udGV4dFRocmVhZCgpKTsKIAogICAgIGlmIChzcWxpdGVEYXRhYmFzZSgpLnRyYW5z
YWN0aW9uSW5Qcm9ncmVzcygpKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJs
ZSB0byBjaGFuZ2VWZXJzaW9uIGZyb20gd2l0aGluIGEgdHJhbnNhY3Rpb24iKTsKICAgICAgICAg
ZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIFJlZlB0cjxTUUxUcmFuc2FjdGlvblN5bmM+IHRyYW5zYWN0aW9uID0gU1FMVHJhbnNh
Y3Rpb25TeW5jOjpjcmVhdGUodGhpcywgY2hhbmdlVmVyc2lvbkNhbGxiYWNrLCBmYWxzZSk7Ci0g
ICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5iZWdpbigpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNh
Y3Rpb24tPmJlZ2luKCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlz
RW1wdHkoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBTdHJpbmcgYWN0dWFsVmVy
c2lvbjsKICAgICBpZiAoIWdldFZlcnNpb25Gcm9tRGF0YWJhc2UoYWN0dWFsVmVyc2lvbikpIHsK
KyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHJlYWQgdGhlIGN1cnJlbnQg
dmVyc2lvbiIsIHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIHNxbGl0ZURhdGFiYXNlKCku
bGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYWN0dWFsVmVyc2lvbiAhPSBvbGRW
ZXJzaW9uKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoImN1cnJlbnQgdmVyc2lvbiBv
ZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giKTsK
ICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlZFUlNJT05fRVJSOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpKQorICAgIGlm
ICgoZWMgPSB0cmFuc2FjdGlvbi0+ZXhlY3V0ZSgpKSkgeworICAgICAgICBBU1NFUlQoIWxhc3RF
cnJvck1lc3NhZ2UoKS5pc0VtcHR5KCkpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAg
aWYgKCFzZXRWZXJzaW9uSW5EYXRhYmFzZShuZXdWZXJzaW9uKSkgeworICAgICAgICBzZXRMYXN0
RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gc2V0IHRoZSBuZXcgdmVyc2lvbiIsIHNxbGl0ZURhdGFi
YXNlKCkubGFzdEVycm9yKCksIHNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgpKSkgeworICAgICAgICBB
U1NFUlQoIWxhc3RFcnJvck1lc3NhZ2UoKS5pc0VtcHR5KCkpOwogICAgICAgICBzZXRDYWNoZWRW
ZXJzaW9uKG9sZFZlcnNpb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgc2V0RXhw
ZWN0ZWRWZXJzaW9uKG5ld1ZlcnNpb24pOworICAgIHNldExhc3RFcnJvck1lc3NhZ2UoIiIpOwog
fQogCiB2b2lkIERhdGFiYXNlU3luYzo6dHJhbnNhY3Rpb24oUGFzc1JlZlB0cjxTUUxUcmFuc2Fj
dGlvblN5bmNDYWxsYmFjaz4gY2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTQ2LDEz
ICsxNTcsMTggQEAgdm9pZCBEYXRhYmFzZVN5bmM6OnJ1blRyYW5zYWN0aW9uKFBhc3NSZQogICAg
IEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKIAog
ICAgIGlmIChzcWxpdGVEYXRhYmFzZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKSB7CisgICAg
ICAgIHNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBzdGFydCBhIHRyYW5zYWN0aW9uIGZy
b20gd2l0aGluIGEgdHJhbnNhY3Rpb24iKTsKICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OkRB
VEFCQVNFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFJlZlB0cjxTUUxUcmFu
c2FjdGlvblN5bmM+IHRyYW5zYWN0aW9uID0gU1FMVHJhbnNhY3Rpb25TeW5jOjpjcmVhdGUodGhp
cywgY2FsbGJhY2ssIHJlYWRPbmx5KTsKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2lu
KCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9u
LT5jb21taXQoKSkpCisgICAgaWYgKChlYyA9IHRyYW5zYWN0aW9uLT5iZWdpbigpKSB8fCAoZWMg
PSB0cmFuc2FjdGlvbi0+ZXhlY3V0ZSgpKSB8fCAoZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkp
KSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAg
ICAgIHRyYW5zYWN0aW9uLT5yb2xsYmFjaygpOworICAgIH0KKworICAgIHNldExhc3RFcnJvck1l
c3NhZ2UoIiIpOwogfQogCiB2b2lkIERhdGFiYXNlU3luYzo6bWFya0FzRGVsZXRlZEFuZENsb3Nl
KCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaAkocmV2aXNpb24gMTAw
MDMzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaAkod29ya2luZyBj
b3B5KQpAQCAtNjQsMTAgKzY0LDIzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWFya0Fz
RGVsZXRlZEFuZENsb3NlKCk7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlSW1tZWRpYXRlbHkoKTsK
IAorICAgIGNvbnN0IFN0cmluZyYgbGFzdEVycm9yTWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bGFzdEVycm9yTWVzc2FnZTsgfQorICAgIHZvaWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpIHsgbV9sYXN0RXJyb3JNZXNzYWdlID0gbWVzc2FnZTsgfQorICAgIHZv
aWQgc2V0TGFzdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29k
ZSkKKyAgICB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoU3RyaW5nOjpmb3JtYXQoIiVz
ICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7CisgICAgfQorICAgIHZvaWQgc2V0TGFzdEVy
cm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSwgY29uc3QgY2hh
ciogc3FsaXRlTWVzc2FnZSkKKyAgICB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3NhZ2UoU3Ry
aW5nOjpmb3JtYXQoIiVzICglZCwgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSwgc3FsaXRlTWVz
c2FnZSkpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBEYXRhYmFzZVN5bmMoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBleHBlY3RlZFZl
cnNpb24sCiAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2ln
bmVkIGxvbmcgZXN0aW1hdGVkU2l6ZSk7CiAgICAgdm9pZCBydW5UcmFuc2FjdGlvbihQYXNzUmVm
UHRyPFNRTFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrPiwgYm9vbCByZWFkT25seSwgRXhjZXB0aW9u
Q29kZSYpOworCisgICAgU3RyaW5nIG1fbGFzdEVycm9yTWVzc2FnZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5j
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5p
ZGwJKHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VT
eW5jLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBtb2R1bGUgc3RvcmFnZSB7
CiAgICAgICAgIE5vU3RhdGljVGFibGVzCiAgICAgXSBEYXRhYmFzZVN5bmMgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgbGFzdEVycm9yTWVzc2FnZTsKICAgICAgICAgdm9pZCBjaGFuZ2VW
ZXJzaW9uKGluIERPTVN0cmluZyBvbGRWZXJzaW9uLCBpbiBET01TdHJpbmcgbmV3VmVyc2lvbiwg
aW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJh
Y2spIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHRyYW5zYWN0aW9uKGluIFtD
YWxsYmFja10gU1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICB2b2lkIHJlYWRUcmFuc2FjdGlvbihpbiBbQ2FsbGJhY2tdIFNR
TFRyYW5zYWN0aW9uU3luY0NhbGxiYWNrIGNhbGxiYWNrKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5jcHAJKHJldmlzaW9uIDEw
MDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTgsMTAgKzk4LDExIEBAIHZvaWQgRGF0YWJhc2VUYXNrOjpwZXJmb3JtVGFz
aygpCiAvLyAqKiogRGF0YWJhc2VPcGVuVGFzayAqKioKIC8vIE9wZW5zIHRoZSBkYXRhYmFzZSBm
aWxlIGFuZCB2ZXJpZmllcyB0aGUgdmVyc2lvbiBtYXRjaGVzIHRoZSBleHBlY3RlZCB2ZXJzaW9u
LgogCi1EYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuVGFzayhEYXRhYmFz
ZSogZGF0YWJhc2UsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5
bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2RlJiBjb2RlLCBib29sJiBzdWNj
ZXNzKQorRGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OkRhdGFiYXNlT3BlblRhc2soRGF0YWJh
c2UqIGRhdGFiYXNlLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tT
eW5jaHJvbml6ZXIqIHN5bmNocm9uaXplciwgRXhjZXB0aW9uQ29kZSYgY29kZSwgU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGJvb2wmIHN1Y2Nlc3MpCiAgICAgOiBEYXRhYmFzZVRhc2soZGF0YWJhc2Us
IHN5bmNocm9uaXplcikKICAgICAsIG1fc2V0VmVyc2lvbkluTmV3RGF0YWJhc2Uoc2V0VmVyc2lv
bkluTmV3RGF0YWJhc2UpCiAgICAgLCBtX2NvZGUoY29kZSkKKyAgICAsIG1fZXJyb3JNZXNzYWdl
KGVycm9yTWVzc2FnZSkKICAgICAsIG1fc3VjY2VzcyhzdWNjZXNzKQogewogICAgIEFTU0VSVChz
eW5jaHJvbml6ZXIpOyAvLyBBIHRhc2sgd2l0aCBvdXRwdXQgcGFyYW1ldGVycyBpcyBzdXBwb3Nl
ZCB0byBiZSBzeW5jaHJvbm91cy4KQEAgLTEwOSw3ICsxMTAsMTAgQEAgRGF0YWJhc2U6OkRhdGFi
YXNlT3BlblRhc2s6OkRhdGFiYXNlT3BlbgogCiB2b2lkIERhdGFiYXNlOjpEYXRhYmFzZU9wZW5U
YXNrOjpkb1BlcmZvcm1UYXNrKCkKIHsKLSAgICBtX3N1Y2Nlc3MgPSBkYXRhYmFzZSgpLT5wZXJm
b3JtT3BlbkFuZFZlcmlmeShtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBtX2NvZGUpOworICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7CisgICAgbV9zdWNjZXNzID0gZGF0YWJhc2UoKS0+cGVyZm9y
bU9wZW5BbmRWZXJpZnkobV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgbV9jb2RlLCBlcnJvck1l
c3NhZ2UpOworICAgIGlmICghbV9zdWNjZXNzKQorICAgICAgICBtX2Vycm9yTWVzc2FnZSA9IGVy
cm9yTWVzc2FnZS5pc29sYXRlZENvcHkoKTsKIH0KIAogI2lmICFMT0dfRElTQUJMRUQKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAkocmV2aXNpb24gMTAwMDMzKQorKysg
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAkod29ya2luZyBjb3B5KQpAQCAt
MTAwLDEzICsxMDAsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgRGF0YWJhc2U6OkRhdGFiYXNlT3Bl
blRhc2sgOiBwdWJsaWMgRGF0YWJhc2VUYXNrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxEYXRhYmFzZU9wZW5UYXNrPiBjcmVhdGUoRGF0YWJhc2UqIGRiLCBib29sIHNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNocm9uaXplciwg
RXhjZXB0aW9uQ29kZSYgY29kZSwgYm9vbCYgc3VjY2VzcykKKyAgICBzdGF0aWMgUGFzc093blB0
cjxEYXRhYmFzZU9wZW5UYXNrPiBjcmVhdGUoRGF0YWJhc2UqIGRiLCBib29sIHNldFZlcnNpb25J
bk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIHN5bmNocm9uaXplciwgRXhj
ZXB0aW9uQ29kZSYgY29kZSwgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wmIHN1Y2Nlc3MpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGFiYXNlT3BlblRhc2soZGIsIHNl
dFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBzeW5jaHJvbml6ZXIsIGNvZGUsIHN1Y2Nlc3MpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRhYmFzZU9wZW5UYXNrKGRiLCBzZXRWZXJzaW9u
SW5OZXdEYXRhYmFzZSwgc3luY2hyb25pemVyLCBjb2RlLCBlcnJvck1lc3NhZ2UsIHN1Y2Nlc3Mp
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgRGF0YWJhc2VPcGVuVGFzayhEYXRhYmFzZSosIGJv
b2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciosIEV4
Y2VwdGlvbkNvZGUmLCBib29sJiBzdWNjZXNzKTsKKyAgICBEYXRhYmFzZU9wZW5UYXNrKERhdGFi
YXNlKiwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25p
emVyKiwgRXhjZXB0aW9uQ29kZSYsIFN0cmluZyYgZXJyb3JNZXNzYWdlLCBib29sJiBzdWNjZXNz
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBkb1BlcmZvcm1UYXNrKCk7CiAjaWYgIUxPR19ESVNBQkxF
RApAQCAtMTE1LDYgKzExNSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fc2V0VmVyc2lvbklu
TmV3RGF0YWJhc2U7CiAgICAgRXhjZXB0aW9uQ29kZSYgbV9jb2RlOworICAgIFN0cmluZyYgbV9l
cnJvck1lc3NhZ2U7CiAgICAgYm9vbCYgbV9zdWNjZXNzOwogfTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9TUUxFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU1FMRXJyb3IuaAkocmV2aXNpb24gMTAwMDMzKQorKysgU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TUUxFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTUUxFcnJvciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxTUUxFcnJvcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBj
cmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgU1FMRXJyb3IoY29kZSwgbWVzc2FnZSkpOyB9CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBjaGFyKiBtZXNzYWdlLCBp
bnQgc3FsaXRlQ29kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3RyaW5n
Ojpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7CisgICAgfQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgY2hh
ciogbWVzc2FnZSwgaW50IHNxbGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2UpCisg
ICAgeworICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQg
JXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSwgc3FsaXRlTWVzc2FnZSkpOworICAgIH0KIAogICAg
IHVuc2lnbmVkIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KICAgICBTdHJpbmcgbWVz
c2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZS5pc29sYXRlZENvcHkoKTsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50LmNwcAkocmV2aXNpb24gMTAwMDMzKQor
KysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OCw3ICs3OCwxMCBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSog
ZGIpCiAKICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgIExPRyhTdG9y
YWdlQVBJLCAiVW5hYmxlIHRvIHZlcmlmeSBjb3JyZWN0bmVzcyBvZiBzdGF0ZW1lbnQgJXMgLSBl
cnJvciAlaSAoJXMpIiwgbV9zdGF0ZW1lbnQuYXNjaWkoKS5kYXRhKCksIHJlc3VsdCwgZGF0YWJh
c2UtPmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
cmVzdWx0ID09IFNRTFJlc3VsdEludGVycnVwdCA/IFNRTEVycm9yOjpEQVRBQkFTRV9FUlIgOiBT
UUxFcnJvcjo6U1lOVEFYX0VSUiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAg
aWYgKHJlc3VsdCA9PSBTUUxSZXN1bHRJbnRlcnJ1cHQpCisgICAgICAgICAgICBtX2Vycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50IiwgcmVzdWx0LCAiaW50ZXJydXB0ZWQiKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIs
ICJjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJy
b3JNc2coKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTk5LDcgKzEwMiw3
IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlKiBkYikKIAogICAgICAgICBp
ZiAocmVzdWx0ICE9IFNRTFJlc3VsdE9rKSB7CiAgICAgICAgICAgICBMT0coU3RvcmFnZUFQSSwg
IkZhaWxlZCB0byBiaW5kIHZhbHVlIGluZGV4ICVpIHRvIHN0YXRlbWVudCBmb3IgcXVlcnkgJyVz
JyIsIGkgKyAxLCBtX3N0YXRlbWVudC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBtX2Vy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+
bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5vdCBiaW5kIHZhbHVlIiwgcmVzdWx0LCBk
YXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMTIzLDcgKzEyNiw3IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVj
dXRlKERhdGFiYXNlKiBkYikKICAgICAgICAgfSB3aGlsZSAocmVzdWx0ID09IFNRTFJlc3VsdFJv
dyk7CiAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHREb25lKSB7Ci0gICAgICAgICAg
ICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRh
YmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNvdWxkIG5vdCBpdGVyYXRlIHJlc3VsdHMi
LCByZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBTUUxSZXN1bHREb25l
KSB7CkBAIC0xMzUsNyArMTM4LDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJh
c2UqIGRiKQogICAgICAgICBzZXRGYWlsdXJlRHVlVG9RdW90YSgpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImNv
dWxkIG5vdCBleGVjdXRlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCShyZXZpc2lvbiAxMDAwMzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MSwxMSArNjEsMTMgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVu
dFN5bgogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQucHJlcGFyZSgpOwogICAgIGlmIChyZXN1
bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgZWMgPSAocmVzdWx0ID09IFNRTFJlc3VsdElu
dGVycnVwdCA/IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSIDogU1FMRXhjZXB0aW9uOjpTWU5U
QVhfRVJSKTsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBwcmVw
YXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgaWYgKHN0YXRlbWVudC5iaW5kUGFyYW1ldGVyQ291
bnQoKSAhPSBtX2FyZ3VtZW50cy5zaXplKCkpIHsKICAgICAgICAgZWMgPSAoZGItPmlzSW50ZXJy
dXB0ZWQoKT8gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlIgOiBTUUxFeGNlcHRpb246OlNZTlRB
WF9FUlIpOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgibnVtYmVyIG9mICc/J3Mg
aW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBhcmd1bWVudCBjb3VudCIpOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTczLDExICs3NSwxMyBAQCBQYXNzUmVmUHRyPFNR
TFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgICAgIHJlc3VsdCA9IHN0YXRlbWVudC5i
aW5kVmFsdWUoaSArIDEsIG1fYXJndW1lbnRzW2ldKTsKICAgICAgICAgaWYgKHJlc3VsdCA9PSBT
UUxSZXN1bHRGdWxsKSB7CiAgICAgICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6UVVPVEFfRVJS
OworICAgICAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5v
dWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAg
ICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgICAgICBkYi0+c2V0
TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IGJpbmQgdmFsdWUiLCByZXN1bHQsIGRhdGFiYXNl
LT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAg
IH0KQEAgLTEwMiw2ICsxMDYsNyBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVt
ZW50U3luCiAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHREb25lKSB7CiAgICAgICAg
ICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAgICAgICAgZGItPnNl
dExhc3RFcnJvck1lc3NhZ2UoImNvdWxkIG5vdCBpdGVyYXRlIHJlc3VsdHMiLCByZXN1bHQsIGRh
dGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdERvbmUpIHsKQEAgLTExMSw5ICsx
MTYsMTEgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFN0YXRlbWVudFN5bgogICAgIH0g
ZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEZ1bGwpIHsKICAgICAgICAgLy8gUXVvdGEgZXJy
b3IsIHRoZSBkZWxlZ2F0ZSB3aWxsIGJlIGFza2VkIGZvciBtb3JlIHNwYWNlIGFuZCB0aGlzIHN0
YXRlbWVudCBtaWdodCBiZSByZS1ydW4uCiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpRVU9U
QV9FUlI7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ0aGVyZSB3YXMgbm90IGVu
b3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9
IGVsc2UgewogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOworICAgICAg
ICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IGV4ZWN1dGUgc3RhdGVtZW50Iiwg
cmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCShy
ZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY1LDggKzI2NSw5IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyBUcmFuc2FjdGlvbiBTdGVwcyAxKzIgLSBP
cGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhlIGRhdGFiYXNlLCBqdW1waW5nIHRvIHRoZSBlcnJvciBj
YWxsYmFjayBpZiB0aGF0IGZhaWxzCiAgICAgaWYgKCFtX3NxbGl0ZVRyYW5zYWN0aW9uLT5pblBy
b2dyZXNzKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgp
LnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIGJlZ2lu
IHRyYW5zYWN0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNl
LT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgbV9zcWxpdGVUcmFu
c2FjdGlvbi5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gb3BlbiBhIHRyYW5zYWN0
aW9uIHRvIHRoZSBkYXRhYmFzZSIpOwogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZh
bHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI3NiwxMCArMjc3LDExIEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAvLyB0aGUgYWN0dWFsIHZl
cnNpb24uIEluIHNpbmdsZS1wcm9jZXNzIGJyb3dzZXJzLCB0aGlzIGlzIGp1c3QgYSBtYXAgbG9v
a3VwLgogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAgIGlmICghbV9kYXRhYmFzZS0+Z2V0
QWN0dWFsVmVyc2lvbkZvclRyYW5zYWN0aW9uKGFjdHVhbFZlcnNpb24pKSB7CisgICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VS
UiwgInVuYWJsZSB0byByZWFkIHZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9y
KCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICBtX2RhdGFiYXNlLT5kaXNhYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3NxbGl0ZVRyYW5z
YWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsK
LSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
REFUQUJBU0VfRVJSLCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIpOwogICAgICAgICBoYW5kbGVU
cmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI5Myw4
ICsyOTUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQCiAgICAg
ICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rp
b25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cmVkIHNldHRpbmcg
dXAgdHJhbnNhY3Rpb24iKTsKLQorICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3Vy
ZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCIpOwogICAgICAgICBoYW5kbGVUcmFuc2Fj
dGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MCw3ICs0NzEs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0CiAgICAgaWYgKG1f
d3JhcHBlciAmJiAhbV93cmFwcGVyLT5wZXJmb3JtUG9zdGZsaWdodCh0aGlzKSkgewogICAgICAg
ICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlm
ICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9j
Y3VyZWQgc2V0dGluZyB1cCB0cmFuc2FjdGlvbiIpOworICAgICAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3du
IGVycm9yIG9jY3VyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQiKTsKICAgICAgICAg
aGFuZGxlVHJhbnNhY3Rpb25FcnJvcihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC00ODcsNyArNDg4LDggQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdodEFuZENvbW1p
dAogICAgICAgICBpZiAobV93cmFwcGVyKQogICAgICAgICAgICAgbV93cmFwcGVyLT5oYW5kbGVD
b21taXRGYWlsZWRBZnRlclBvc3RmbGlnaHQodGhpcyk7CiAgICAgICAgIG1fc3VjY2Vzc0NhbGxi
YWNrV3JhcHBlci5jbGVhcigpOwotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJmYWlsZWQgdG8gY29tbWl0IHRoZSB0
cmFuc2FjdGlvbiIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gY29tbWl0IHRyYW5zYWN0aW9u
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFi
YXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRh
YmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcihm
YWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TUUxUcmFuc2FjdGlvblN5bmMuY3BwCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc1LDEyICs3NSwxNyBAQCBTUUxUcmFuc2FjdGlvblN5bmM6On5TUUxUcmFuc2FjdGlvblN5
bmMoCiBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRl
U1FMKGNvbnN0IFN0cmluZyYgc3FsU3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBh
cmd1bWVudHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKKworICAgIG1fZGF0
YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoIiIpOworCiAgICAgaWYgKCFtX2RhdGFiYXNlLT5v
cGVuZWQoKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjYW5u
b3QgZXhlY3V0ZVNRTCBiZWNhdXNlIHRoZSBkYXRhYmFzZSBpcyBub3Qgb3BlbiIpOwogICAgICAg
ICBlYyA9IFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KIAogICAgIGlmIChtX2hhc1ZlcnNpb25NaXNtYXRjaCkgeworICAgICAgICBtX2RhdGFiYXNl
LT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjYW5ub3QgZXhlY3V0ZVNRTCBiZWNhdXNlIHRoZXJlIGlz
IGEgdmVyc2lvbiBtaXNtYXRjaCIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lP
Tl9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTExMCw4ICsxMTUsMTAgQEAgUGFz
c1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNRTFRyYW5zYWN0aW9uUwogICAgICAgICAgICAgICAgIGlm
IChtX3RyYW5zYWN0aW9uQ2xpZW50LT5kaWRFeGNlZWRRdW90YShkYXRhYmFzZSgpKSkgewogICAg
ICAgICAgICAgICAgICAgICBlYyA9IDA7CiAgICAgICAgICAgICAgICAgICAgIHJldHJ5U3RhdGVt
ZW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdl
KCJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSIpOwogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjcsOCArMTM0LDEwIEBAIFBhc3NSZWZQdHI8U1FMUmVz
dWx0U2V0PiBTUUxUcmFuc2FjdGlvblMKIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5j
OjpiZWdpbigpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIGlmICghbV9kYXRhYmFzZS0+b3BlbmVkKCkp
CisgICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5z
ZXRMYXN0RXJyb3JNZXNzYWdlKCJjYW5ub3QgYmVnaW4gdHJhbnNhY3Rpb24gYmVjYXVzZSB0aGUg
ZGF0YWJhc2UgaXMgbm90IG9wZW4iKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5L
Tk9XTl9FUlI7CisgICAgfQogCiAgICAgQVNTRVJUKCFtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFz
ZSgpLnRyYW5zYWN0aW9uSW5Qcm9ncmVzcygpKTsKIApAQCAtMTQ3LDYgKzE1Niw4IEBAIEV4Y2Vw
dGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpiZWdpbigKICAgICAvLyBDaGVjayBpZiBiZWdp
bigpIHN1Y2NlZWRlZC4KICAgICBpZiAoIW1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3Mo
KSkgewogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNh
Y3Rpb25JblByb2dyZXNzKCkpOworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNz
YWdlKCJ1bmFibGUgdG8gYmVnaW4gdHJhbnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9y
KCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRp
b246OkRBVEFCQVNFX0VSUjsKICAgICB9CkBAIC0xNTYsNiArMTY3LDggQEAgRXhjZXB0aW9uQ29k
ZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKAogICAgIC8vIHRoZSBhY3R1YWwgdmVyc2lvbi4g
SW4gc2luZ2xlLXByb2Nlc3MgYnJvd3NlcnMsIHRoaXMgaXMganVzdCBhIG1hcCBsb29rdXAuCiAg
ICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFtX2RhdGFiYXNlLT5nZXRBY3R1YWxW
ZXJzaW9uRm9yVHJhbnNhY3Rpb24oYWN0dWFsVmVyc2lvbikpIHsKKyAgICAgICAgbV9kYXRhYmFz
ZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJh
c2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIHJvbGxiYWNrKCk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246
OkRBVEFCQVNFX0VSUjsKICAgICB9CkBAIC0xNjgsNiArMTgxLDggQEAgRXhjZXB0aW9uQ29kZSBT
UUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dAogewogICAgIEFTU0VSVChtX2RhdGFiYXNlLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKICAgICBpZiAoIW1fZGF0
YWJhc2UtPm9wZW5lZCgpIHx8IChtX2NhbGxiYWNrICYmICFtX2NhbGxiYWNrLT5oYW5kbGVFdmVu
dCh0aGlzKSkpIHsKKyAgICAgICAgaWYgKG1fZGF0YWJhc2UtPmxhc3RFcnJvck1lc3NhZ2UoKS5p
c0VtcHR5KCkpCisgICAgICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJm
YWlsZWQgdG8gZXhlY3V0ZSB0cmFuc2FjdGlvbiBjYWxsYmFjayIpOwogICAgICAgICBtX2NhbGxi
YWNrID0gMDsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CiAgICAg
fQpAQCAtMTc5LDggKzE5NCwxMCBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6
ZXhlY3V0CiBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0KCkKIHsKICAg
ICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRU
aHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkKKyAgICBpZiAoIW1fZGF0
YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3Nh
Z2UoInVuYWJsZSB0byBjb21taXQgdHJhbnNhY3Rpb24gYmVjYXVzZSB0aGUgZGF0YWJhc2UgaXMg
bm90IG9wZW4uIik7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OlVOS05PV05fRVJSOwor
ICAgIH0KIAogICAgIEFTU0VSVChtX3NxbGl0ZVRyYW5zYWN0aW9uKTsKIApAQCAtMTg5LDggKzIw
NiwxMSBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0CiAgICAgbV9k
YXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogCiAgICAgLy8gSWYgdGhlIGNvbW1pdCBmYWls
ZWQsIHRoZSB0cmFuc2FjdGlvbiB3aWxsIHN0aWxsIGJlIG1hcmtlZCBhcyAiaW4gcHJvZ3Jlc3Mi
Ci0gICAgaWYgKG1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkKKyAgICBpZiAobV9z
cWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNl
dExhc3RFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBjb21taXQgdHJhbnNhY3Rpb24iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFi
YXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9y
TXNnKCkpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAg
fQogCiAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5jbGVhcigpOwogCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAxMDAwMzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyNCBAQAorMjAxMS0xMS0xMCAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xl
LmNvbT4KKworICAgICAgICBVcGRhdGUgbGF5b3V0IHRlc3RzIGZvciAgbmV3IHdlYnNxbCBlcnJv
ciBtZXNzYWdlcyBhbmQgY29uc29sZSBsb2dnaW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL2NoYW5nZS12ZXJz
aW9uLWhhbmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvd29y
a2Vycy9zdG9yYWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy5o
dG1sOgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1v
bmx5LW9uZS1zdGF0ZW1lbnQtc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3Jr
ZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zeW5jLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1l
bXB0eS12ZXJzaW9uLXN5bmMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9z
dG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3Jr
ZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy5odG1sOgorICAgICAg
ICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJl
dXNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRp
b24tY2FsbGJhY2stZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uvb3Blbi1kYXRhYmFz
ZS1zZXQtZW1wdHktdmVyc2lvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9wcml2
YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9y
YWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQ6CisKIDIwMTEtMTEtMTEgIE9qYW4gVmFm
YWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByOTk5NTMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9jaGFuZ2Ut
dmVyc2lvbi1oYW5kbGUtcmV1c2Utd29ya2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1
c2Utd29ya2VyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAwMDMzKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLXdvcmtlci1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiBUaGlzIHRlc3RzIHRo
YXQgYSBkYXRhYmFzZSBjYW4gYmUgYWNjZXNzZWQgYWZ0ZXIgY2hhbmdpbmcgaXRzIHZlcnNpb24u
IFlvdSBzaG91bGQgc2VlIGFuIGVycm9yIGFib3V0IEZvb0JhciB0YWJsZSBiZWxvdywgbm90IGFi
b3V0IG1pc21hdGNoaW5nIHZlcnNpb25zLgogY2hhbmdlVmVyc2lvbjogdHJhbnNhY3Rpb24gY2Fs
bGJhY2sKIGNoYW5nZVZlcnNpb246IHN1Y2Nlc3MgY2FsbGJhY2sKLXRyYW5zYWN0aW9uOiBzdGF0
ZW1lbnQgZXJyb3IgY2FsbGJhY2s6IG5vIHN1Y2ggdGFibGU6IEZvb0JhcgordHJhbnNhY3Rpb246
IHN0YXRlbWVudCBlcnJvciBjYWxsYmFjazogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgx
IG5vIHN1Y2ggdGFibGU6IEZvb0JhcikKIFRFU1QgQ09NUExFVEUuCiAKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0
ZW1lbnQtc3luYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5j
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAwMDMzKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3Jr
ZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogVGVzdCB0aGF0IGV4
ZWN1dGVTcWwoKSBhY2NlcHRzIG9ubHkgb25lIHN0YXRlbWVudC4KLVBBU1M6IElOU0VSVCBJTlRP
IFRlc3QgVkFMVUVTICgxKQotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDIpOwotUEFT
UzogICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDMpICAgIAotUEFTUzogICAgSU5TRVJUIElO
VE8gVGVzdCBWQUxVRVMgKDQpOyAgIAotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDUp
ICAgOwotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDYpOyBnYXJiYWdlCi1QQVNTOiBJ
TlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNyk7IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg4KQot
UEFTUzogICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoOSk7ICAgSU5TRVJUIElOVE8gVGVzdCBW
QUxVRVMgKDEwKTsgICAKK1BBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgxKSwgCitQQVNT
OiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMik7LCAKK1BBU1M6ICAgIElOU0VSVCBJTlRPIFRl
c3QgVkFMVUVTICgzKSAgICAsIAorUEFTUzogICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDQp
OyAgICwgCitQQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNSkgICA7LCAKK1BBU1M6IElO
U0VSVCBJTlRPIFRlc3QgVkFMVUVTICg2KTsgZ2FyYmFnZSwgY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50ICgxLCBub3QgYW4gZXJyb3IpCitQQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAo
Nyk7IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg4KSwgY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgxLCBub3QgYW4gZXJyb3IpCitQQVNTOiAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg5
KTsgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMTApOyAgICwgY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgxLCBub3QgYW4gZXJyb3IpCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stc3luYy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Bl
bi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zeW5jLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTAwMDMzKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFz
ZS1jcmVhdGlvbi1jYWxsYmFjay1zeW5jLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwgJzEuMCcgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRW
ZXJzaW9uIG9mICcnCiBUaGlzIHRlc3QgdGVzdHMgb3BlbkRhdGFiYXNlU3luYygpJ3MgY3JlYXRp
b24gY2FsbGJhY2suCiBQQVNTOiBDcmVhdGlvbiBjYWxsYmFjayB3YXMgY2FsbGVkLgogUEFTUzog
VmVyc2lvbiBzZXQgdG8gZW1wdHkgc3RyaW5nIGFzIGV4cGVjdGVkLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1z
eW5jLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
c3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLXN5bmMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9v
cGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLXN5bmMtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IHVuYWJsZSB0
byBvcGVuIGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAndGVzdCcgZG9lcyBub3QgbWF0Y2gg
dGhlIGN1cnJlbnRWZXJzaW9uIG9mICcnCiBUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBvcGVuRGF0
YWJhc2Ugd2l0aCBhbiBlbXB0eSB2ZXJzaW9uIHN0cmluZyBzZXRzIHRoZSBjdXJyZW50IHZlcnNp
b24gb2YgdGhhdCBkYXRhYmFzZSB0byB0aGUgZW1wdHkgc3RyaW5nIGFuZCBzdWJzZXF1ZW50IGF0
dGVtcHRzIHRvIG9wZW4gdGhlIGRhdGFiYXNlIHdpdGggYSBkaWZmZXJlbnQgZXhwZWN0ZWQgdmVy
c2lvbiB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
d29ya2Vycy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTAwMDMzKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0
b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNiwy
MCArNiwyMCBAQCBTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjCiBTUUxJ
VEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9U
UklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFQUQgc3Rh
dGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNR
TElURV9ERUxFVEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9JTlNFUlQgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KIFNRTElURV9VUERBVEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9Q
UkFHTUEgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9QUkFHTUEgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKIFNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0FM
VEVSX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKK1NRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FUVEFDSCBzdGF0
ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFSU5ERVggc3RhdGVtZW50IHN1
Y2NlZWRlZC4KLVNRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
CitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IHN1
Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNR
TElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgpAQCAtMjgsNDEgKzI4
LDQxIEBAIFNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9E
Uk9QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBXcml0ZSB0cmFuc2FjdGlvbiBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JFQVRF
X1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1RB
QkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3Qg
YXV0aG9yaXplZCkKIFNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNR
TElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9DUkVBVEVfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
LVNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
Ci1TUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
LVNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElU
RV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9UQUJMRSBzdGF0ZW1l
bnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQp
CitTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBf
VklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5v
dCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVB
VEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIz
IG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9D
UkVBVEVfSU5ERVggc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9UQUJM
RSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVt
ZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9D
UkVBVEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9WVEFCTEUgc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1NFTEVDVCBzdGF0
ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0
aG9yaXplZAotU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAot
U1FMSVRFX1VQREFURSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX1BS
QUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FMVEVSX1RBQkxF
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQUxURVJfVEFCTEUgc3Rh
dGVtZW50IGZhaWxlZDogbm8gc3VjaCB0YWJsZTogVGVzdFRhYmxlCi1TUUxJVEVfVFJBTlNBQ1RJ
T04gc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BVFRBQ0ggc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9SRUlOREVYIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNR
TElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNR
TElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAot
U1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1T
UUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJ
VEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJP
UF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0RFTEVURSBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQorU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFy
ZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX1VQREFURSBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQor
U1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgxIG5vIHN1Y2ggdGFibGU6IFRlc3RUYWJsZSkKK1NRTElURV9UUkFOU0FDVElPTiBzdGF0
ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FM
SVRFX1JFSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJP
UF9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIz
IG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1ZJRVcgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1ZJRVcgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBSZWFkIHRyYW5zYWN0aW9ucyBzdWNjZWVk
ZWQuCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3RyYW5zYWN0aW9u
LWluLXRyYW5zYWN0aW9uLXN5bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc3RvcmFnZS90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMgQEAKIFRlc3QgdGhhdCB0cnlpbmcgdG8gcnVuIGEg
dHJhbnNhY3Rpb24gaW5zaWRlIGFub3RoZXIgdHJhbnNhY3Rpb24gdGhyb3dzIGFuIGV4Y2VwdGlv
bi4KLVBBU1M6IEV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5aW5nIHRvIHJ1biBhIG5lc3RlZCB0
cmFuc2FjdGlvbi4KK1BBU1M6IEV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5aW5nIHRvIHJ1biBh
IG5lc3RlZCB0cmFuc2FjdGlvbiAodW5hYmxlIHRvIHN0YXJ0IGEgdHJhbnNhY3Rpb24gZnJvbSB3
aXRoaW4gYSB0cmFuc2FjdGlvbikuCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9z
dG9yYWdlL3Jlc291cmNlcy9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5
bmMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVz
b3VyY2VzL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy5qcwkocmV2
aXNpb24gMTAwMDMzKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVzb3Vy
Y2VzL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMSArMSwxMyBAQAogZnVuY3Rpb24gZXhlY3V0ZVN0YXRlbWVudCh0eCwg
ZXhwZWN0ZWRUb1Bhc3MsIHN0YXRlbWVudCkKIHsKKyAgICB2YXIgbWVzc2FnZTsKICAgICB0cnkg
ewogICAgICAgICB0eC5leGVjdXRlU3FsKHN0YXRlbWVudCk7Ci0gICAgICAgIHBvc3RNZXNzYWdl
KGV4cGVjdGVkVG9QYXNzID8gIlBBU1M6ICIgKyBzdGF0ZW1lbnQgOiAiRkFJTDogIiArIHN0YXRl
bWVudCk7CisgICAgICAgIG1lc3NhZ2UgPSBleHBlY3RlZFRvUGFzcyA/ICJQQVNTOiAiIDogIkZB
SUw6ICI7CiAgICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAgIHBvc3RNZXNzYWdlKCFleHBlY3Rl
ZFRvUGFzcyA/ICJQQVNTOiAiICsgc3RhdGVtZW50IDogIkZBSUw6ICIgKyBzdGF0ZW1lbnQpOwor
ICAgICAgICBtZXNzYWdlID0gIWV4cGVjdGVkVG9QYXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIjsK
ICAgICB9CisgICAgcG9zdE1lc3NhZ2UobWVzc2FnZSArIHN0YXRlbWVudCArICIsICIgKyBkYi5s
YXN0RXJyb3JNZXNzYWdlKTsKIH0KIAogdmFyIGRiID0gb3BlbkRhdGFiYXNlU3luYygiRXhlY3V0
ZVNRTEFjY2VwdHNPbmx5T25lU3RhdGVtZW50VGVzdCIsICIxLjAiLCAiIiwgMSk7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvdHJhbnNhY3Rpb24taW4t
dHJhbnNhY3Rpb24tc3luYy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc3RvcmFnZS9yZXNvdXJjZXMvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy5qcwko
cmV2aXNpb24gMTAwMDMzKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVz
b3VyY2VzL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTIsOSArMiw5IEBAIHZhciBkYiA9IG9wZW5EYXRhYmFzZVN5bmMoIlRyYW5zYWN0aW9uSW4K
IGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7CiAgICAgdHJ5IHsKICAgICAgICAgZGIudHJh
bnNhY3Rpb24oZnVuY3Rpb24obmVzdGVkVHgpIHsgfSk7Ci0gICAgICAgIHBvc3RNZXNzYWdlKCJG
QUlMOiBUcnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRyYW5zYWN0aW9uIHNob3VsZCB0aHJvdyBhbiBl
eGNlcHRpb24uIik7CisgICAgICAgIHBvc3RNZXNzYWdlKCJGQUlMOiBUcnlpbmcgdG8gcnVuIGEg
bmVzdGVkIHRyYW5zYWN0aW9uIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24uIiArIGRiLmxhc3RF
cnJvck1lc3NhZ2UpOwogICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgICBwb3N0TWVzc2FnZSgi
UEFTUzogRXhjZXB0aW9uIHRocm93biB3aGlsZSB0cnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRyYW5z
YWN0aW9uLiIpOworICAgICAgICBwb3N0TWVzc2FnZSgiUEFTUzogRXhjZXB0aW9uIHRocm93biB3
aGlsZSB0cnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRyYW5zYWN0aW9uICgiICsgZGIubGFzdEVycm9y
TWVzc2FnZSArICIpLiIpOwogICAgIH0KIH0pOwogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2NoYW5nZS12ZXJz
aW9uLWhhbmRsZS1yZXVzZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2
IEBACiBUaGlzIHRlc3RzIHRoYXQgYSBkYXRhYmFzZSBjYW4gYmUgYWNjZXNzZWQgYWZ0ZXIgY2hh
bmdpbmcgaXRzIHZlcnNpb24uIFlvdSBzaG91bGQgc2VlIGFuIGVycm9yIGFib3V0IEZvb0JhciB0
YWJsZSBiZWxvdywgbm90IGFib3V0IG1pc21hdGNoaW5nIHZlcnNpb25zLgogY2hhbmdlVmVyc2lv
bjogdHJhbnNhY3Rpb24gY2FsbGJhY2sKIGNoYW5nZVZlcnNpb246IHN1Y2Nlc3MgY2FsbGJhY2sK
LXRyYW5zYWN0aW9uOiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2s6IG5vIHN1Y2ggdGFibGU6IEZv
b0JhcgordHJhbnNhY3Rpb246IHN0YXRlbWVudCBlcnJvciBjYWxsYmFjazogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgxIG5vIHN1Y2ggdGFibGU6IEZvb0JhcikKIFRFU1QgQ09NUExFVEUu
CiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxs
YmFjay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVu
LWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAwMDMz
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNr
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyICsxLDMgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAwOiB1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwg
JzEuMCcgZG9lcyBub3QgbWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9uIG9mICcnCiBUaGlzIHRlc3Qg
dGVzdHMgb3BlbkRhdGFiYXNlKCkncyBjcmVhdGlvbiBjYWxsYmFjay4KIApJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVt
cHR5LXZlcnNpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IHVu
YWJsZSB0byBvcGVuIGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAndGVzdCcgZG9lcyBub3Qg
bWF0Y2ggdGhlIGN1cnJlbnRWZXJzaW9uIG9mICcnCiBUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBv
cGVuRGF0YWJhc2Ugd2l0aCBhbiBlbXB0eSB2ZXJzaW9uIHN0cmluZyBzZXRzIHRoZSBjdXJyZW50
IHZlcnNpb24gb2YgdGhhdCBkYXRhYmFzZSB0byB0aGUgZW1wdHkgc3RyaW5nIGFuZCBzdWJzZXF1
ZW50IGF0dGVtcHRzIHRvIG9wZW4gdGhlIGRhdGFiYXNlIHdpdGggYSBkaWZmZXJlbnQgZXhwZWN0
ZWQgdmVyc2lvbiB0aHJvdyBhbiBleGNlcHRpb24uCiBTVUNDRVNTLCBhbiBleGNlcHRpb24gd2Fz
IHRocm93bi4gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExCkluZGV4
OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93
c2luZy1ub3JlYWQtbm93cml0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMDAzMykKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIsMTQgKzIsMTQgQEAgVGhpcyB0ZXN0IG1ha2VzIHN1
cmUgdGhhdCBhdHRlbXB0cyB0byBjaAogU2V0dXAgc3RhdGVtZW50IDEgY29tcGxldGVkIHN1Y2Nl
c3NmdWxseQogU2V0dXAgc3RhdGVtZW50IDIgY29tcGxldGVkIHN1Y2Nlc3NmdWxseQogUHJpdmF0
ZSBicm93c2luZyBzdGF0ZW1lbnQgMSBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgotbm90IGF1dGhv
cml6ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKIFBy
aXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDIgY29tcGxldGVkIHdpdGggYW4gZXJyb3IKLW5vdCBh
dXRob3JpemVkCitjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVk
KQogUHJpdmF0ZSBicm93c2luZyBzdGF0ZW1lbnQgMyBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgot
bm90IGF1dGhvcml6ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhv
cml6ZWQpCiBQcml2YXRlIGJyb3dzaW5nIHN0YXRlbWVudCA0IGNvbXBsZXRlZCB3aXRoIGFuIGVy
cm9yCi1ub3QgYXV0aG9yaXplZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKIFByaXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDUgY29tcGxldGVkIHdpdGgg
YW4gZXJyb3IKLWFjY2VzcyB0byBQcml2YXRlVGVzdDEucmFuZG9tRGF0YSBpcyBwcm9oaWJpdGVk
Citjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIGFjY2VzcyB0byBQcml2YXRlVGVzdDEu
cmFuZG9tRGF0YSBpcyBwcm9oaWJpdGVkKQogVGVzdCBlbmRlZAogCkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
MDAwMzMpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsMjAgKzYsMjAgQEAgU1FMSVRFX0NSRUFURV9URU1QX1RS
SUdHRVIgc3RhdGVtZW50IHN1YwogU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IHN1
Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FM
SVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JFQVRFX1ZUQUJM
RSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9WVEFCTEUg
c3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0
aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfU0VMRUNU
IHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfREVMRVRFIHN0YXRlbWVudCBzdWNjZWVkZWQu
CiBTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfVVBEQVRFIHN0YXRl
bWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRo
b3JpemVkCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVt
ZW50IHN1Y2NlZWRlZC4KIFNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgot
U1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJ
VEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfREVUQUNI
IHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfVFJBTlNBQ1RJT04gc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKK1NRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNR
TElURV9SRUlOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQU5BTFlaRSBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxl
ZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElU
RV9EUk9QX0lOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9URU1QX1RBQkxF
IHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9URU1QX1RSSUdHRVIgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KQEAgLTI4LDQxICsyOCw0MSBAQCBTUUxJVEVfRFJPUF9UUklHR0VSIHN0YXRl
bWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBT
UUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogV3JpdGUgdHJhbnNhY3Rpb24g
c3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0
aG9yaXplZAorU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQ1JFQVRFX1RBQkxF
IHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JFQVRFX0lOREVYIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZh
aWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50IGZh
aWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVf
Q1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3Rh
dGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90
IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVFJJ
R0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVf
VlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQ1JFQVRFX0lOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQu
CiBTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9D
UkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RF
TVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRl
bWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4K
LVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitT
UUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFQUQgc3RhdGVtZW50IHN1Y2Nl
ZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9ERUxFVEUg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9JTlNFUlQgc3RhdGVtZW50
IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9VUERBVEUgc3RhdGVtZW50IGZhaWxlZDog
bm90IGF1dGhvcml6ZWQKLVNRTElURV9QUkFHTUEgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhv
cml6ZWQKLVNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vIHN1Y2ggdGFibGU6IFRl
c3RUYWJsZQotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3Jp
emVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJ
VEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfUkVJTkRF
WCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FOQUxZWkUgc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1RBQkxFIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1RSSUdHRVIgc3RhdGVtZW50
IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RFTVBfVklFVyBzdGF0ZW1lbnQg
ZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgZmFp
bGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKK1NRTElURV9ERUxFVEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9JTlNFUlQgc3RhdGVtZW50
IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
K1NRTElURV9VUERBVEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9QUkFHTUEgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9B
TFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBubyBzdWNoIHRhYmxlOiBUZXN0VGFibGUp
CitTUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9SRUlOREVYIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQU5B
TFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5v
dCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RF
TVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FM
SVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQp
CitTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQog
UmVhZCB0cmFuc2FjdGlvbnMgc3VjY2VlZGVkLgogCg==
</data>
<flag name="review"
          id="113528"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="113537"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114805</attachid>
            <date>2011-11-11 17:26:19 -0800</date>
            <delta_ts>2011-11-14 10:31:54 -0800</delta_ts>
            <desc>dberrors</desc>
            <filename>dberror.txt</filename>
            <type>text/plain</type>
            <size>66027</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDExLTExLTEwICBNaWNoYWVs
IE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldHVybiBtb3JlIGNv
bXBsZXRlIGVycm9yIGFuZCBleGNlcHRpb24gbWVzc2FnZXMgd2hlbiBhCisgICAgICAgIFdlYlNR
TERhdGFiYXNlIGZ1bmN0aW9uIGZhaWxzLiBQcm9kdWNlIGNvbnNvbGUgbG9nZ2luZworICAgICAg
ICBmb3Igb3BlbkRhdGFiYXNlKCkgZXJyb3JzIGFuZCB2YWN1dW0gZXJyb3JzLiBBZGQgYSBsYXN0
RXJyb3JNZXNzYWdlCisgICAgICAgIGFjY2Vzc29yIHRvIHRoZSBEYXRhYmFzZVN5bmMgaW50ZXJm
YWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBZZXMs
IHNlZSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIHBs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVE
YXRhYmFzZTo6U1FMaXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJh
c2U6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvck1zZyk6CisgICAgICAgIChXZWJDb3JlOjpT
UUxpdGVEYXRhYmFzZTo6IHJ1blZhY3V1bUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6U1FM
aXRlRGF0YWJhc2U6OiBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQpOgorICAgICAgICBSZWZs
ZWN0IGVycm9ycyBpbiB0aGUgb3BlbigpIG1ldGhvZCBpbiBsYXN0RXJyb3IoKSBhbmQgbGFzdEVy
cm9yTXNnKCkuCisgICAgICAgIFJldHVybiBhbiBlcnJvciBjb2RlcyBmb3IgcnVuVmFjdXVtQ29t
bWFuZCgpIGFuZCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQoKS4KKworICAgICAgICAqIHBs
YXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAgICAgICAqIHN0b3JhZ2UvQWJzdHJhY3RE
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRFcnJvck1lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkpOgor
ICAgICAgICAoV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKToKKyAg
ICAgICAgRHVyaW5nIG9wZW5BbmRWZXJpZnksIHByb2R1Y2UgZm9ybWF0dGVkIGVycm9yIG1lc3Nh
Z2VzIHRoYXQgaW5jbHVkZSB3aGF0IHdhcyBiZWluZyBkb25lLCB0aGUgc3FsaXRlIGVycm9yIGNv
ZGUsCisgICAgICAgIGFuZCB0aGUgc3FsaXRlIGVycm9yIG1lc3NhZ2UuIEFkZCBhIGhlbHBlciB0
byBsb2cgbWVzc2FnZSB0byB0aGUgY29uc29sZS4KKworICAgICAgICAqIHN0b3JhZ2UvQWJzdHJh
Y3REYXRhYmFzZS5oOgorICAgICAgICAqIHN0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1Qb3N0
ZmxpZ2h0KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6
Om9wZW5BbmRWZXJpZnlWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpwZXJm
b3JtT3BlbkFuZFZlcmlmeSk6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZS5oOgorICAgICAg
ICAqIHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
U3luYzo6b3BlbkRhdGFiYXNlU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6
OmNoYW5nZVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpydW5UcmFu
c2FjdGlvbik6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFiYXNlU3luYzo6bGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhYmFzZVN5bmM6OnNldExhc3RFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHN0b3JhZ2Uv
RGF0YWJhc2VTeW5jLmlkbDoKKyAgICAgICAgQWRkIGEgbGFzdEVycm9yTWVzc2FnZSBhdHRyaWJ1
dGUgc28gamF2YXNjcmlwdCBjYWxsZXJzIGNhbgorICAgICAgICByZXRyaWV2ZSBtb3JlIGRldGFp
bGVkIGluZm9ybWF0aW9uIGFib3V0IHdoYXQgd2VudCB3cm9uZy4KKworICAgICAgICAqIHN0b3Jh
Z2UvRGF0YWJhc2VUYXNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFz
ZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW5UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNl
OjpEYXRhYmFzZU9wZW5UYXNrOjpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKiBzdG9yYWdlL0Rh
dGFiYXNlVGFzay5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlT3BlblRh
c2s6OmNyZWF0ZSk6CisgICAgICAgIFJldHVybiBhbiBlcnJvck1lc3NhZ2UgaW4gYWRkaXRpb24g
dG8gdGhlIGV4Y2VwdGlvbiBjb2RlLgorCisgICAgICAgICogc3RvcmFnZS9TUUxFcnJvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIEFkZCBoZWxwZXJz
IHRvIHByb2R1Y2VkIGZvcm1hdHRlZCBlcnJvciBtZXNzYWdlcy4KKworICAgICAgICAqIHN0b3Jh
Z2UvU1FMU3RhdGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhl
Y3V0ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFN0YXRlbWVudFN5bmM6OmV4ZWN1dGUpOgorICAgICAgICAqIHN0b3JhZ2Uv
U1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Om9w
ZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2Fj
dGlvblN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVj
dXRlU1FMKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4pOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0KToKKwogMjAxMS0xMS0xMSAgSmVm
ZiBUaW1hbnVzICA8dHdpekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQYXRj
aCB0aGF0IGltcGxlbWVudGluZyB0aGUgY2hhbmdlcyByZXF1aXJlZCB0byBhbGxvdyBXZWJHTApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3Bw
CShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw4IEBAIGNvbnN0IGludCBT
UUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVfU0NIRU0KIGNvbnN0IGludCBTUUxSZXN1bHRGdWxsID0g
U1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQgU1FMUmVzdWx0SW50ZXJydXB0ID0gU1FMSVRFX0lOVEVS
UlVQVDsKIAorc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVycm9yTWVzc2FnZVtdID0gImRhdGFi
YXNlIGlzIG5vdCBvcGVuIjsKKwogU1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFiYXNlKCkKICAg
ICA6IG1fZGIoMCkKICAgICAsIG1fcGFnZVNpemUoLTEpCkBAIC01Myw2ICs1NSw4IEBAIFNRTGl0
ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAgICAgLCBtX3NoYXJhYmxlKGZhbHNlKQogICAg
ICwgbV9vcGVuaW5nVGhyZWFkKDApCiAgICAgLCBtX2ludGVycnVwdGVkKGZhbHNlKQorICAgICwg
bV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQorICAgICwgbV9vcGVuRXJyb3JNZXNzYWdlKG5vdE9w
ZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAKQEAgLTY1LDE1ICs2OSwyMCBAQCBib29sIFNRTGl0ZURh
dGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgCiB7CiAgICAgY2xvc2UoKTsKIAotICAgIGlmIChT
UUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBmb3JXZWJTUUxE
YXRhYmFzZSkgIT0gU1FMSVRFX09LKSB7CisgICAgbV9vcGVuRXJyb3IgPSBTUUxpdGVGaWxlU3lz
dGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBmb3JXZWJTUUxEYXRhYmFzZSk7Cisg
ICAgaWYgKG1fb3BlbkVycm9yICE9IFNRTElURV9PSykgeworICAgICAgICBtX29wZW5FcnJvck1l
c3NhZ2UgPSBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiAic3FsaXRlX29wZW4gcmV0dXJu
ZWQgbnVsbCI7CiAgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZhaWxlZCB0byBs
b2FkIGZyb20gJXNcbkNhdXNlIC0gJXMiLCBmaWxlbmFtZS5hc2NpaSgpLmRhdGEoKSwKLSAgICAg
ICAgICAgIHNxbGl0ZTNfZXJybXNnKG1fZGIpKTsKKyAgICAgICAgICAgIG1fb3BlbkVycm9yTWVz
c2FnZS5kYXRhKCkpOwogICAgICAgICBzcWxpdGUzX2Nsb3NlKG1fZGIpOwogICAgICAgICBtX2Ri
ID0gMDsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBpZiAoc3FsaXRlM19leHRl
bmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIExPR19F
UlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3Jz
IC0gJXMiLCBzcWxpdGUzX2Vycm1zZyhtX2RiKSk7CisKKyAgICBtX29wZW5FcnJvciA9IHNxbGl0
ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1fZGIsIDEpOworICAgIGlmIChtX29wZW5FcnJvciAh
PSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3FsaXRlM19lcnJt
c2cobV9kYik7CisgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4g
ZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBtX29wZW5FcnJvck1lc3NhZ2UuZGF0YSgp
KTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9IDA7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYgKzkwLDggQEAgYm9vbCBTUUxpdGVEYXRhYmFzZTo6
b3Blbihjb25zdCBTdHJpbmcmIAogCiAgICAgaWYgKGlzT3BlbigpKQogICAgICAgICBtX29wZW5p
bmdUaHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CisgICAgZWxzZQorICAgICAgICBtX29wZW5FcnJv
ck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAKICAgICBpZiAoIVNRTGl0
ZVN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSB0ZW1wX3N0b3JlID0gTUVNT1JZOyIpLmV4ZWN1dGVD
b21tYW5kKCkpCiAgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGNvdWxkIG5vdCBz
ZXQgdGVtcF9zdG9yZSB0byBtZW1vcnkiKTsKQEAgLTEwMiw2ICsxMTMsOCBAQCB2b2lkIFNRTGl0
ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgfQogCiAgICAgbV9vcGVuaW5nVGhyZWFkID0gMDsKKyAg
ICBtX29wZW5FcnJvciA9IFNRTElURV9FUlJPUjsKKyAgICBtX29wZW5FcnJvck1lc3NhZ2UgPSBu
b3RPcGVuRXJyb3JNZXNzYWdlOwogfQogCiB2b2lkIFNRTGl0ZURhdGFiYXNlOjppbnRlcnJ1cHQo
KQpAQCAtMjgxLDEzICsyOTQsMTQgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6Y2xlYXJBbGxUYWJs
ZXMoKQogICAgIH0KIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuVmFjdXVtQ29tbWFuZCgp
CitpbnQgU1FMaXRlRGF0YWJhc2U6OnJ1blZhY3V1bUNvbW1hbmQoKQogewogICAgIGlmICghZXhl
Y3V0ZUNvbW1hbmQoIlZBQ1VVTTsiKSkKICAgICAgICAgTE9HKFNRTERhdGFiYXNlLCAiVW5hYmxl
IHRvIHZhY3V1bSBkYXRhYmFzZSAtICVzIiwgbGFzdEVycm9yTXNnKCkpOworICAgIHJldHVybiBs
YXN0RXJyb3IoKTsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1
dW1Db21tYW5kKCkKK2ludCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dW1Db21t
YW5kKCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9jayk7CiAgICAg
ZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CkBAIC0yOTYsNiArMzEwLDcgQEAgdm9pZCBTUUxpdGVE
YXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dQogICAgICAgICBMT0coU1FMRGF0YWJhc2UsICJV
bmFibGUgdG8gcnVuIGluY3JlbWVudGFsIHZhY3V1bSAtICVzIiwgbGFzdEVycm9yTXNnKCkpOwog
CiAgICAgZW5hYmxlQXV0aG9yaXplcih0cnVlKTsKKyAgICByZXR1cm4gbGFzdEVycm9yKCk7CiB9
CiAKIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6Omxhc3RJbnNlcnRSb3dJRCgpCkBAIC0zMTQsMTIg
KzMyOSwxMiBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6Omxhc3RDaGFuZ2VzKCkKIAogaW50IFNRTGl0
ZURhdGFiYXNlOjpsYXN0RXJyb3IoKQogewotICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJj
b2RlKG1fZGIpIDogU1FMSVRFX0VSUk9SOworICAgIHJldHVybiBtX2RiID8gc3FsaXRlM19lcnJj
b2RlKG1fZGIpIDogbV9vcGVuRXJyb3I7CiB9CiAKIGNvbnN0IGNoYXIqIFNRTGl0ZURhdGFiYXNl
OjpsYXN0RXJyb3JNc2coKQogeyAKLSAgICByZXR1cm4gc3FsaXRlM19lcnJtc2cobV9kYik7Cisg
ICAgcmV0dXJuIG1fZGIgPyBzcWxpdGUzX2Vycm1zZyhtX2RiKSA6IG1fb3BlbkVycm9yTWVzc2Fn
ZS5kYXRhKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkocmV2aXNpb24gMTAwMDMzKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogCiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTY4LDggKzY5LDggQEAg
cHVibGljOgogICAgIAogICAgIGJvb2wgdGFibGVFeGlzdHMoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBjbGVhckFsbFRhYmxlcygpOwotICAgIHZvaWQgcnVuVmFjdXVtQ29tbWFuZCgpOwotICAg
IHZvaWQgcnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CisgICAgaW50IHJ1blZhY3V1bUNv
bW1hbmQoKTsKKyAgICBpbnQgcnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CiAgICAgCiAg
ICAgYm9vbCB0cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0
aW9uSW5Qcm9ncmVzczsgfQogICAgIApAQCAtMTUzLDcgKzE1NCwxMCBAQCBwcml2YXRlOgogCiAg
ICAgTXV0ZXggbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKICAgICBib29sIG1faW50ZXJydXB0ZWQ7
Ci19OyAvLyBjbGFzcyBTUUxpdGVEYXRhYmFzZQorCisgICAgaW50IG1fb3BlbkVycm9yOworICAg
IENTdHJpbmcgbV9vcGVuRXJyb3JNZXNzYWdlOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRhYmFzZS5jcHAJ
KHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRlVHJh
bnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTIsNiArNTMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RhdGljIGNvbnN0IGNoYXIgdmVyc2lvbktleVtdID0gIldlYktpdERhdGFiYXNlVmVyc2lv
bktleSI7CiBzdGF0aWMgY29uc3QgY2hhciBpbmZvVGFibGVOYW1lW10gPSAiX19XZWJLaXREYXRh
YmFzZUluZm9UYWJsZV9fIjsKIAorc3RhdGljIFN0cmluZyBmb3JtYXRFcnJvck1lc3NhZ2UoY29u
c3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUVycm9yQ29kZSwgY29uc3QgY2hhciogc3FsaXRl
RXJyb3JNZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkICVzKSIs
IG1lc3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3FsaXRlRXJyb3JNZXNzYWdlKTsKK30KKwogc3Rh
dGljIGJvb2wgcmV0cmlldmVUZXh0UmVzdWx0RnJvbURhdGFiYXNlKFNRTGl0ZURhdGFiYXNlJiBk
YiwgY29uc3QgU3RyaW5nJiBxdWVyeSwgU3RyaW5nJiByZXN1bHRTdHJpbmcpCiB7CiAgICAgU1FM
aXRlU3RhdGVtZW50IHN0YXRlbWVudChkYiwgcXVlcnkpOwpAQCAtMjQ0LDE3ICsyNTAsMTkgQEAg
U3RyaW5nIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJldHVybiBnZXRD
YWNoZWRWZXJzaW9uKCk7CiB9CiAKLWJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5B
bmRWZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wg
c2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVjLCBTdHJpbmcm
IGVycm9yTWVzc2FnZSkKIHsKKyAgICBBU1NFUlQoZXJyb3JNZXNzYWdlLmlzRW1wdHkoKSk7CisK
ICAgICBjb25zdCBpbnQgbWF4U3FsaXRlQnVzeVdhaXRUaW1lID0gMzAwMDA7CiAKICAgICBpZiAo
IW1fc3FsaXRlRGF0YWJhc2Uub3BlbihtX2ZpbGVuYW1lLCB0cnVlKSkgewotICAgICAgICBMT0df
RVJST1IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGF0IHBhdGggJXMiLCBtX2ZpbGVuYW1lLmFz
Y2lpKCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdl
KCJ1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSIsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yKCks
IG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlmICghbV9zcWxp
dGVEYXRhYmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKLSAgICAgICAgTE9HX0VS
Uk9SKCJVbmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSBmb3IgZGF0YWJh
c2UgJXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTE9HX0VSUk9SKCJV
bmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSAoJWQgJXMpIiwgbV9zcWxp
dGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7
CiAKICAgICBtX3NxbGl0ZURhdGFiYXNlLnNldEJ1c3lUaW1lb3V0KG1heFNxbGl0ZUJ1c3lXYWl0
VGltZSk7CiAKQEAgLTI5MCw3ICsyOTgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZv
cm1PcGVuQW5kVmVyCiAgICAgICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbiB0cmFuc2FjdGlvbiht
X3NxbGl0ZURhdGFiYXNlKTsKICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmJlZ2luKCk7CiAgICAg
ICAgICAgICBpZiAoIXRyYW5zYWN0aW9uLmluUHJvZ3Jlc3MoKSkgewotICAgICAgICAgICAgICAg
IExPR19FUlJPUigiVW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIHdoaWxlIG9wZW5pbmcgJXMi
LCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBl
cnJvck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVuIGRhdGFiYXNl
LCBmYWlsZWQgdG8gc3RhcnQgdHJhbnNhY3Rpb24iLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJv
cigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2Uu
Y2xvc2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDEsMTQgKzMwOSwx
NCBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAgICAgICAgICAg
ICAgICAgbV9uZXcgPSB0cnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCFtX3NxbGl0ZURhdGFi
YXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgIiArIHRhYmxlTmFtZSArICIgKGtleSBU
RVhUIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0Us
dmFsdWUgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiKSkgewotICAgICAgICAgICAg
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgdGFibGUgJXMgaW4gZGF0YWJhc2Ug
JXMiLCBpbmZvVGFibGVOYW1lLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1
bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIGNyZWF0ZSAnaW5mbycgdGFibGUiLCBt
X3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAg
ICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAg
ICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlmICghZ2V0VmVy
c2lvbkZyb21EYXRhYmFzZShjdXJyZW50VmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAg
ICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9tIGRhdGFiYXNl
ICVzIiwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAg
ICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBkYXRh
YmFzZSwgZmFpbGVkIHRvIHJlYWQgY3VycmVudCB2ZXJzaW9uIiwgbV9zcWxpdGVEYXRhYmFzZS5s
YXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgICAgICB0cmFuc2FjdGlv
bi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2UuY2xvc2UoKTsK
QEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5k
VmVyCiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtX25ldyB8fCBzaG91bGRTZXRWZXJzaW9uSW5O
ZXdEYXRhYmFzZSkgewogICAgICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiU2V0dGluZyB2
ZXJzaW9uICVzIGluIGRhdGFiYXNlICVzIHRoYXQgd2FzIGp1c3QgY3JlYXRlZCIsIG1fZXhwZWN0
ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0
YSgpKTsKICAgICAgICAgICAgICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG1fZXhwZWN0
ZWRWZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gc2V0IHZlcnNpb24gJXMgaW4gZGF0YWJhc2UgJXMiLCBtX2V4cGVjdGVkVmVyc2lvbi5h
c2NpaSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAg
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZvcm1hdEVycm9yTWVzc2FnZSgidW5hYmxl
IHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byB3cml0ZSBjdXJyZW50IHZlcnNpb24iLCBtX3Nx
bGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygp
KTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAg
ICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAgICAgICAgICAg
bV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzQxLDggKzM0OSw3IEBAIGJvb2wgQWJzdHJh
Y3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVy
c2lvbiBpc24ndCB0aGUgZW1wdHkgc3RyaW5nLCBlbnN1cmUgdGhhdCB0aGUgY3VycmVudCBkYXRh
YmFzZSB2ZXJzaW9uIHdlIGhhdmUgbWF0Y2hlcyB0aGF0IHZlcnNpb24uIE90aGVyd2lzZSwgc2V0
IGFuIGV4Y2VwdGlvbi4KICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lvbiBpcyB0aGUgZW1w
dHkgc3RyaW5nLCB0aGVuIHdlIGFsd2F5cyByZXR1cm4gd2l0aCB3aGF0ZXZlciB2ZXJzaW9uIG9m
IHRoZSBkYXRhYmFzZSB3ZSBoYXZlLgogICAgIGlmICgoIW1fbmV3IHx8IHNob3VsZFNldFZlcnNp
b25Jbk5ld0RhdGFiYXNlKSAmJiBtX2V4cGVjdGVkVmVyc2lvbi5sZW5ndGgoKSAmJiBtX2V4cGVj
dGVkVmVyc2lvbiAhPSBjdXJyZW50VmVyc2lvbikgewotICAgICAgICBMT0coU3RvcmFnZUFQSSwg
InBhZ2UgZXhwZWN0cyB2ZXJzaW9uICVzIGZyb20gZGF0YWJhc2UgJXMsIHdoaWNoIGFjdHVhbGx5
IGhhcyB2ZXJzaW9uIG5hbWUgJXMgLSBvcGVuRGF0YWJhc2UoKSBjYWxsIHdpbGwgZmFpbCIsIG1f
ZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLAotICAgICAgICAgICAgZGF0YWJhc2VEZWJ1
Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSwgY3VycmVudFZlcnNpb24uYXNjaWkoKS5kYXRhKCkpOwor
ICAgICAgICBlcnJvck1lc3NhZ2UgPSAidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24g
bWlzbWF0Y2gsICciICsgbV9leHBlY3RlZFZlcnNpb24gKyAiJyBkb2VzIG5vdCBtYXRjaCB0aGUg
Y3VycmVudFZlcnNpb24gb2YgJyIgKyBjdXJyZW50VmVyc2lvbiArICInIjsKICAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjQsOCArNTMxLDExIEBAIHZvaWQgQWJzdHJhY3RE
YXRhYmFzZTo6aW5jcmVtZW50YWxWYWN1dW0KIHsKICAgICBpbnQ2NF90IGZyZWVTcGFjZVNpemUg
PSBtX3NxbGl0ZURhdGFiYXNlLmZyZWVTcGFjZVNpemUoKTsKICAgICBpbnQ2NF90IHRvdGFsU2l6
ZSA9IG1fc3FsaXRlRGF0YWJhc2UudG90YWxTaXplKCk7Ci0gICAgaWYgKHRvdGFsU2l6ZSA8PSAx
MCAqIGZyZWVTcGFjZVNpemUpCi0gICAgICAgIG1fc3FsaXRlRGF0YWJhc2UucnVuSW5jcmVtZW50
YWxWYWN1dW1Db21tYW5kKCk7CisgICAgaWYgKHRvdGFsU2l6ZSA8PSAxMCAqIGZyZWVTcGFjZVNp
emUpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG1fc3FsaXRlRGF0YWJhc2UucnVuSW5jcmVtZW50
YWxWYWN1dW1Db21tYW5kKCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spCisg
ICAgICAgICAgICBsb2dFcnJvck1lc3NhZ2UoZm9ybWF0RXJyb3JNZXNzYWdlKCJlcnJvciB2YWN1
dW1pbmcgZGF0YWJhc2UiLCByZXN1bHQsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkp
KTsKKyAgICB9CiB9CiAKIHZvaWQgQWJzdHJhY3REYXRhYmFzZTo6aW50ZXJydXB0KCkKQEAgLTUz
OSw2ICs1NDksMTEgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjppc0ludGVycnVwdGVkKCkKICAg
ICByZXR1cm4gbV9zcWxpdGVEYXRhYmFzZS5pc0ludGVycnVwdGVkKCk7CiB9CiAKK3ZvaWQgQWJz
dHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sK
KyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDAsIFN0cmlu
ZygpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5oCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3Ry
YWN0RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICB2b2lkIGNsb3NlRGF0YWJhc2UoKTsKIAotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jt
T3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRp
b25Db2RlJiBlYyk7CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wg
c2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSk7CiAKICAgICBib29sIGdldFZlcnNpb25Gcm9tRGF0YWJhc2UoU3RyaW5nJiB2
ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9IHRydWUpOwogICAgIGJvb2wgc2V0VmVy
c2lvbkluRGF0YWJhc2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVy
c2lvbiA9IHRydWUpOwpAQCAtMTA1LDYgKzEwNSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNl
dENhY2hlZFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBnZXRBY3R1YWxWZXJzaW9u
Rm9yVHJhbnNhY3Rpb24oU3RyaW5nJiB2ZXJzaW9uKTsKIAorICAgIHZvaWQgbG9nRXJyb3JNZXNz
YWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGF0
YWJhc2VJbmZvVGFibGVOYW1lKCk7CiAKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHJldmlzaW9uIDEwMDAzMykKKysrIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00NywxNiArNDcsMTcgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9y
bVByZWZsaQogewogICAgIEFTU0VSVCh0cmFuc2FjdGlvbiAmJiB0cmFuc2FjdGlvbi0+ZGF0YWJh
c2UoKSk7CiAKLSAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKKyAgICBEYXRhYmFzZSogZGF0YWJh
c2UgPSB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKTsKIAotICAgIGlmICghdHJhbnNhY3Rpb24tPmRh
dGFiYXNlKCktPmdldFZlcnNpb25Gcm9tRGF0YWJhc2UoYWN0dWFsVmVyc2lvbikpIHsKLSAgICAg
ICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gcmV0cmlldmUgYWN0dWFsIGN1cnJlbnQgdmVyc2lvbiBm
cm9tIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byB2ZXJpZnkgY3VycmVudCB2ZXJzaW9uIG9m
IGRhdGFiYXNlIik7CisgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CisgICAgaWYgKCFkYXRhYmFz
ZS0+Z2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBtX3Nx
bEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUg
dG8gcmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlLT5zcWxpdGVEYXRhYmFz
ZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAg
IGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVyc2lvbikgewotICAgICAgICBMT0dfRVJST1Io
Ik9sZCB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggYWN0dWFsIHZlcnNpb24iKTsKICAgICAgICAgbV9z
cWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVu
dCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5v
dCBtYXRjaCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNjgsMTMgKzY5LDE2
IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1Qb3N0ZmwKIHsKICAgICBBU1NF
UlQodHJhbnNhY3Rpb24gJiYgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCkpOwogCi0gICAgaWYgKCF0
cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c2V0VmVyc2lvbkluRGF0YWJhc2UobV9uZXdWZXJzaW9u
KSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzZXQgbmV3IHZlcnNpb24gaW4gZGF0
YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBkYXRhYmFzZSIpOwor
ICAgIERhdGFiYXNlKiBkYXRhYmFzZSA9IHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpOworCisgICAg
aWYgKCFkYXRhYmFzZS0+c2V0VmVyc2lvbkluRGF0YWJhc2UobV9uZXdWZXJzaW9uKSkgeworICAg
ICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIs
ICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVy
cm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlLT5z
cWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zZXRFeHBlY3RlZFZlcnNpb24o
bV9uZXdWZXJzaW9uKTsKKyAgICBkYXRhYmFzZS0+c2V0RXhwZWN0ZWRWZXJzaW9uKG1fbmV3VmVy
c2lvbik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0
YWJhc2UuY3BwCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Rh
dGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsOCArOTgsOSBAQCBQYXNzUmVmUHRyPERh
dGFiYXNlPiBEYXRhYmFzZTo6b3BlbkRhdGFiCiAKICAgICBSZWZQdHI8RGF0YWJhc2U+IGRhdGFi
YXNlID0gYWRvcHRSZWYobmV3IERhdGFiYXNlKGNvbnRleHQsIG5hbWUsIGV4cGVjdGVkVmVyc2lv
biwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpKTsKIAotICAgIGlmICghZGF0YWJhc2UtPm9w
ZW5BbmRWZXJpZnlWZXJzaW9uKCFjcmVhdGlvbkNhbGxiYWNrLCBlKSkgewotICAgICAgICBMT0co
U3RvcmFnZUFQSSwgIkZhaWxlZCB0byBvcGVuIGFuZCB2ZXJpZnkgdmVyc2lvbiAoZXhwZWN0ZWQg
JXMpIG9mIGRhdGFiYXNlICVzIiwgZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRh
YmFzZS0+ZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgU3RyaW5nIGVy
cm9yTWVzc2FnZTsKKyAgICBpZiAoIWRhdGFiYXNlLT5vcGVuQW5kVmVyaWZ5VmVyc2lvbighY3Jl
YXRpb25DYWxsYmFjaywgZSwgZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkYXRhYmFzZS0+bG9n
RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRhYmFzZS5nZXQoKSk7CiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KQEAgLTE3MywxNCArMTc0LDE0IEBAIFN0cmluZyBEYXRhYmFzZTo6dmVyc2lv
bigpIGNvbnN0CiAgICAgcmV0dXJuIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24oKTsKIH0KIAot
Ym9vbCBEYXRhYmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJzaW9uSW5OZXdE
YXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYgZSkKK2Jvb2wgRGF0YWJhc2U6Om9wZW5BbmRWZXJpZnlW
ZXJzaW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUsIFN0
cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIERhdGFiYXNlVGFza1N5bmNocm9uaXplciBzeW5j
aHJvbml6ZXI7CiAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRhdGFiYXNlVGhy
ZWFkKCkgfHwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVhZCgpLT50ZXJt
aW5hdGlvblJlcXVlc3RlZCgmc3luY2hyb25pemVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgT3duUHRyPERhdGFiYXNlT3BlblRhc2s+
IHRhc2sgPSBEYXRhYmFzZU9wZW5UYXNrOjpjcmVhdGUodGhpcywgc2V0VmVyc2lvbkluTmV3RGF0
YWJhc2UsICZzeW5jaHJvbml6ZXIsIGUsIHN1Y2Nlc3MpOworICAgIE93blB0cjxEYXRhYmFzZU9w
ZW5UYXNrPiB0YXNrID0gRGF0YWJhc2VPcGVuVGFzazo6Y3JlYXRlKHRoaXMsIHNldFZlcnNpb25J
bk5ld0RhdGFiYXNlLCAmc3luY2hyb25pemVyLCBlLCBlcnJvck1lc3NhZ2UsIHN1Y2Nlc3MpOwog
ICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQoKS0+c2NoZWR1bGVJ
bW1lZGlhdGVUYXNrKHRhc2sucmVsZWFzZSgpKTsKICAgICBzeW5jaHJvbml6ZXIud2FpdEZvclRh
c2tDb21wbGV0aW9uKCk7CiAKQEAgLTIzOCw5ICsyMzksOSBAQCB1bnNpZ25lZCBsb25nIGxvbmcg
RGF0YWJhc2U6Om1heGltdW1TaXplCiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLmdldE1heFNpemVGb3JEYXRhYmFzZSh0aGlzKTsKIH0KIAotYm9vbCBEYXRhYmFzZTo6cGVy
Zm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9u
Q29kZSYgZSkKK2Jvb2wgRGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVy
c2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUsIFN0cmluZyYgZXJyb3JNZXNzYWdl
KQogewotICAgIGlmIChBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZlcmlmeShzZXRW
ZXJzaW9uSW5OZXdEYXRhYmFzZSwgZSkpIHsKKyAgICBpZiAoQWJzdHJhY3REYXRhYmFzZTo6cGVy
Zm9ybU9wZW5BbmRWZXJpZnkoc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIGUsIGVycm9yTWVzc2Fn
ZSkpIHsKICAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJl
YWQoKSkKICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJl
YWQoKS0+cmVjb3JkRGF0YWJhc2VPcGVuKHRoaXMpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9E
YXRhYmFzZS5oCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Rh
dGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4sIFBh
c3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiwKICAgICAgICAgICAgICAgICAg
ICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIGJvb2wgcmVh
ZE9ubHkpOwogCi0gICAgYm9vbCBvcGVuQW5kVmVyaWZ5VmVyc2lvbihib29sIHNldFZlcnNpb25J
bk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCBib29sIHBlcmZvcm1P
cGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBib29sIG9wZW5BbmRWZXJpZnlWZXJzaW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0
YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CisgICAgdmlydHVh
bCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2Us
IEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICB2b2lkIGluUHJv
Z3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZCgpOwogICAgIHZvaWQgc2NoZWR1bGVUcmFuc2FjdGlv
bigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcAkocmV2aXNp
b24gMTAwMDMzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw5IEBAIFBhc3NSZWZQdHI8RGF0YWJhc2VTeW5jPiBE
YXRhYmFzZVN5bmM6Om8KIAogICAgIFJlZlB0cjxEYXRhYmFzZVN5bmM+IGRhdGFiYXNlID0gYWRv
cHRSZWYobmV3IERhdGFiYXNlU3luYyhjb250ZXh0LCBuYW1lLCBleHBlY3RlZFZlcnNpb24sIGRp
c3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7CiAKLSAgICBpZiAoIWRhdGFiYXNlLT5wZXJmb3Jt
T3BlbkFuZFZlcmlmeSghY3JlYXRpb25DYWxsYmFjaywgZWMpKSB7Ci0gICAgICAgIExPRyhTdG9y
YWdlQVBJLCAiRmFpbGVkIHRvIG9wZW4gYW5kIHZlcmlmeSB2ZXJzaW9uIChleHBlY3RlZCAlcykg
b2YgZGF0YWJhc2UgJXMiLCBleHBlY3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCksIGRhdGFiYXNl
LT5kYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICBTdHJpbmcgZXJyb3JN
ZXNzYWdlOworICAgIGlmICghZGF0YWJhc2UtPnBlcmZvcm1PcGVuQW5kVmVyaWZ5KCFjcmVhdGlv
bkNhbGxiYWNrLCBlYywgZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkYXRhYmFzZS0+bG9nRXJy
b3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRhYmFzZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KQEAgLTk2LDM5ICs5Nyw0OSBAQCB2b2lkIERhdGFiYXNlU3luYzo6Y2hhbmdlVmVy
c2lvbihjb25zdCBTCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250
ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblBy
b2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNoYW5n
ZVZlcnNpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBlYyA9IFNRTEV4
Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVm
UHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvblN5bmM6
OmNyZWF0ZSh0aGlzLCBjaGFuZ2VWZXJzaW9uQ2FsbGJhY2ssIGZhbHNlKTsKLSAgICBpZiAoKGVj
ID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVn
aW4oKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsK
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFN0cmluZyBhY3R1YWxWZXJzaW9uOwogICAg
IGlmICghZ2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBz
ZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwg
c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG9sZFZlcnNpb24pIHsK
KyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRh
YmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICBl
YyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkpCisgICAgaWYgKChlYyA9IHRy
YW5zYWN0aW9uLT5leGVjdXRlKCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVycm9yTWVzc2Fn
ZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBpZiAoIXNldFZl
cnNpb25JbkRhdGFiYXNlKG5ld1ZlcnNpb24pKSB7CisgICAgICAgIHNldExhc3RFcnJvck1lc3Nh
Z2UoInVuYWJsZSB0byBzZXQgdGhlIG5ldyB2ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0
RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0g
U1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFz
dEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHNldENhY2hlZFZlcnNpb24ob2xk
VmVyc2lvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzZXRFeHBlY3RlZFZlcnNp
b24obmV3VmVyc2lvbik7CisgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CiB9CiAKIHZvaWQg
RGF0YWJhc2VTeW5jOjp0cmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luY0Nh
bGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNDYsMTMgKzE1NywxOCBA
QCB2b2lkIERhdGFiYXNlU3luYzo6cnVuVHJhbnNhY3Rpb24oUGFzc1JlCiAgICAgQVNTRVJUKG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNx
bGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFz
dEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHN0YXJ0IGEgdHJhbnNhY3Rpb24gZnJvbSB3aXRoaW4g
YSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJS
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3lu
Yz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjYWxsYmFj
aywgcmVhZE9ubHkpOwotICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVnaW4oKSkgfHwgKGVj
ID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmNvbW1pdCgp
KSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpIHx8IChlYyA9IHRyYW5zYWN0
aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5jb21taXQoKSkpIHsKKyAgICAg
ICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAgICAgdHJhbnNh
Y3Rpb24tPnJvbGxiYWNrKCk7CisgICAgfQorCisgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiIik7
CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjptYXJrQXNEZWxldGVkQW5kQ2xvc2UoKQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5oCShyZXZpc2lvbiAxMDAwMzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NCwxMCArNjQsMjMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYXJrQXNEZWxldGVkQW5k
Q2xvc2UoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VJbW1lZGlhdGVseSgpOwogCisgICAgY29u
c3QgU3RyaW5nJiBsYXN0RXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0RXJyb3JN
ZXNzYWdlOyB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkgeyBtX2xhc3RFcnJvck1lc3NhZ2UgPSBtZXNzYWdlOyB9CisgICAgdm9pZCBzZXRMYXN0
RXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlKQorICAgIHsK
KyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZShTdHJpbmc6OmZvcm1hdCgiJXMgKCVkKSIsIG1l
c3NhZ2UsIHNxbGl0ZUNvZGUpKTsKKyAgICB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNzYWdl
KGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVN
ZXNzYWdlKQorICAgIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZShTdHJpbmc6OmZvcm1h
dCgiJXMgKCVkLCAlcykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7Cisg
ICAgfQorCiBwcml2YXRlOgogICAgIERhdGFiYXNlU3luYyhTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVyc2lvbiwKICAg
ICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBl
c3RpbWF0ZWRTaXplKTsKICAgICB2b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJh
bnNhY3Rpb25TeW5jQ2FsbGJhY2s+LCBib29sIHJlYWRPbmx5LCBFeGNlcHRpb25Db2RlJik7CisK
KyAgICBTdHJpbmcgbV9sYXN0RXJyb3JNZXNzYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlkbAkocmV2aXNp
b24gMTAwMDMzKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAg
Tm9TdGF0aWNUYWJsZXMKICAgICBdIERhdGFiYXNlU3luYyB7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgdmVyc2lvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBsYXN0RXJyb3JNZXNzYWdlOwogICAgICAgICB2b2lkIGNoYW5nZVZlcnNpb24oaW4g
RE9NU3RyaW5nIG9sZFZlcnNpb24sIGluIERPTVN0cmluZyBuZXdWZXJzaW9uLCBpbiBbQ2FsbGJh
Y2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxsYmFjaykgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgdHJhbnNhY3Rpb24oaW4gW0NhbGxiYWNrXSBT
UUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKGluIFtDYWxsYmFja10gU1FMVHJhbnNhY3Rp
b25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNwcAkocmV2aXNpb24gMTAwMDMzKQorKysg
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC05OCwxMCArOTgsMTEgQEAgdm9pZCBEYXRhYmFzZVRhc2s6OnBlcmZvcm1UYXNrKCkKIC8vICoq
KiBEYXRhYmFzZU9wZW5UYXNrICoqKgogLy8gT3BlbnMgdGhlIGRhdGFiYXNlIGZpbGUgYW5kIHZl
cmlmaWVzIHRoZSB2ZXJzaW9uIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHZlcnNpb24uCiAKLURhdGFi
YXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW5UYXNrKERhdGFiYXNlKiBkYXRhYmFz
ZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVy
KiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIGJvb2wmIHN1Y2Nlc3MpCitEYXRh
YmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuVGFzayhEYXRhYmFzZSogZGF0YWJh
c2UsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXpl
ciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2RlJiBjb2RlLCBTdHJpbmcmIGVycm9yTWVzc2Fn
ZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IERhdGFiYXNlVGFzayhkYXRhYmFzZSwgc3luY2hyb25p
emVyKQogICAgICwgbV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFzZShzZXRWZXJzaW9uSW5OZXdEYXRh
YmFzZSkKICAgICAsIG1fY29kZShjb2RlKQorICAgICwgbV9lcnJvck1lc3NhZ2UoZXJyb3JNZXNz
YWdlKQogICAgICwgbV9zdWNjZXNzKHN1Y2Nlc3MpCiB7CiAgICAgQVNTRVJUKHN5bmNocm9uaXpl
cik7IC8vIEEgdGFzayB3aXRoIG91dHB1dCBwYXJhbWV0ZXJzIGlzIHN1cHBvc2VkIHRvIGJlIHN5
bmNocm9ub3VzLgpAQCAtMTA5LDcgKzExMCwxMCBAQCBEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFz
azo6RGF0YWJhc2VPcGVuCiAKIHZvaWQgRGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6OmRvUGVy
Zm9ybVRhc2soKQogewotICAgIG1fc3VjY2VzcyA9IGRhdGFiYXNlKCktPnBlcmZvcm1PcGVuQW5k
VmVyaWZ5KG1fc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIG1fY29kZSk7CisgICAgU3RyaW5nIGVy
cm9yTWVzc2FnZTsKKyAgICBtX3N1Y2Nlc3MgPSBkYXRhYmFzZSgpLT5wZXJmb3JtT3BlbkFuZFZl
cmlmeShtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBtX2NvZGUsIGVycm9yTWVzc2FnZSk7Cisg
ICAgaWYgKCFtX3N1Y2Nlc3MpCisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdl
Lmlzb2xhdGVkQ29weSgpOwogfQogCiAjaWYgIUxPR19ESVNBQkxFRApJbmRleDogU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsMTMgKzEw
MCwxMyBAQCBwcml2YXRlOgogCiBjbGFzcyBEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzayA6IHB1
YmxpYyBEYXRhYmFzZVRhc2sgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPERhdGFi
YXNlT3BlblRhc2s+IGNyZWF0ZShEYXRhYmFzZSogZGIsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0
YWJhc2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25D
b2RlJiBjb2RlLCBib29sJiBzdWNjZXNzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPERhdGFiYXNl
T3BlblRhc2s+IGNyZWF0ZShEYXRhYmFzZSogZGIsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJh
c2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2Rl
JiBjb2RlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgYm9vbCYgc3VjY2VzcykKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0YWJhc2VPcGVuVGFzayhkYiwgc2V0VmVyc2lvbklu
TmV3RGF0YWJhc2UsIHN5bmNocm9uaXplciwgY29kZSwgc3VjY2VzcykpOworICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IERhdGFiYXNlT3BlblRhc2soZGIsIHNldFZlcnNpb25Jbk5ld0RhdGFi
YXNlLCBzeW5jaHJvbml6ZXIsIGNvZGUsIGVycm9yTWVzc2FnZSwgc3VjY2VzcykpOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBEYXRhYmFzZU9wZW5UYXNrKERhdGFiYXNlKiwgYm9vbCBzZXRWZXJz
aW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiwgRXhjZXB0aW9uQ29k
ZSYsIGJvb2wmIHN1Y2Nlc3MpOworICAgIERhdGFiYXNlT3BlblRhc2soRGF0YWJhc2UqLCBib29s
IHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqLCBFeGNl
cHRpb25Db2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wmIHN1Y2Nlc3MpOwogCiAgICAg
dmlydHVhbCB2b2lkIGRvUGVyZm9ybVRhc2soKTsKICNpZiAhTE9HX0RJU0FCTEVECkBAIC0xMTUs
NiArMTE1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFz
ZTsKICAgICBFeGNlcHRpb25Db2RlJiBtX2NvZGU7CisgICAgU3RyaW5nJiBtX2Vycm9yTWVzc2Fn
ZTsKICAgICBib29sJiBtX3N1Y2Nlc3M7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1NRTEVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxF
cnJvci5oCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTEVy
cm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFNRTEVycm9yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTEVycm9y
PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNp
Z25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
UUxFcnJvcihjb2RlLCBtZXNzYWdlKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTUUxFcnJv
cj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVD
b2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBTdHJpbmc6OmZvcm1hdCgi
JXMgKCVkKSIsIG1lc3NhZ2UsIHNxbGl0ZUNvZGUpKTsKKyAgICB9CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBjaGFyKiBtZXNzYWdl
LCBpbnQgc3FsaXRlQ29kZSwgY29uc3QgY2hhciogc3FsaXRlTWVzc2FnZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCAlcykiLCBtZXNz
YWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7CisgICAgfQogCiAgICAgdW5zaWduZWQg
Y29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQogICAgIFN0cmluZyBtZXNzYWdlKCkgY29u
c3QgeyByZXR1cm4gbV9tZXNzYWdlLmlzb2xhdGVkQ29weSgpOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxMDAwMzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDcg
Kzc4LDEwIEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlKiBkYikKIAogICAg
IGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJV
bmFibGUgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHN0YXRlbWVudCAlcyAtIGVycm9yICVpICgl
cykiLCBtX3N0YXRlbWVudC5hc2NpaSgpLmRhdGEoKSwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVy
cm9yTXNnKCkpOwotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShyZXN1bHQgPT0g
U1FMUmVzdWx0SW50ZXJydXB0ID8gU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiA6IFNRTEVycm9yOjpT
WU5UQVhfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICBpZiAocmVzdWx0
ID09IFNRTFJlc3VsdEludGVycnVwdCkKKyAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQiLCByZXN1bHQsICJpbnRlcnJ1cHRlZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBt
X2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwgImNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtOTksNyArMTAyLDcgQEAgYm9vbCBT
UUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogCiAgICAgICAgIGlmIChyZXN1bHQg
IT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRv
IGJpbmQgdmFsdWUgaW5kZXggJWkgdG8gc3RhdGVtZW50IGZvciBxdWVyeSAnJXMnIiwgaSArIDEs
IG1fc3RhdGVtZW50LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIG1fZXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0RXJyb3JN
c2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGJpbmQgdmFsdWUiLCByZXN1bHQsIGRhdGFiYXNlLT5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0xMjMsNyArMTI2LDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJh
c2UqIGRiKQogICAgICAgICB9IHdoaWxlIChyZXN1bHQgPT0gU1FMUmVzdWx0Um93KTsKIAogICAg
ICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpIHsKLSAgICAgICAgICAgIG1fZXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFiYXNlLT5sYXN0
RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGl0ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwg
ZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdERvbmUpIHsKQEAgLTEz
NSw3ICsxMzgsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSogZGIpCiAg
ICAgICAgIHNldEZhaWx1cmVEdWVUb1F1b3RhKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9IGVsc2UgewotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICBtX2Vycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGV4
ZWN1dGUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1NRTFN0YXRlbWVudFN5bmMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDEx
ICs2MSwxMyBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAg
aW50IHJlc3VsdCA9IHN0YXRlbWVudC5wcmVwYXJlKCk7CiAgICAgaWYgKHJlc3VsdCAhPSBTUUxS
ZXN1bHRPaykgewogICAgICAgICBlYyA9IChyZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0ID8g
U1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlIgOiBTUUxFeGNlcHRpb246OlNZTlRBWF9FUlIpOwor
ICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKICAgICBpZiAoc3RhdGVtZW50LmJpbmRQYXJhbWV0ZXJDb3VudCgpICE9IG1f
YXJndW1lbnRzLnNpemUoKSkgewogICAgICAgICBlYyA9IChkYi0+aXNJbnRlcnJ1cHRlZCgpPyBT
UUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUiA6IFNRTEV4Y2VwdGlvbjo6U1lOVEFYX0VSUik7Cisg
ICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1l
bnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50Iik7CiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KIApAQCAtNzMsMTEgKzc1LDEzIEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0
PiBTUUxTdGF0ZW1lbnRTeW4KICAgICAgICAgcmVzdWx0ID0gc3RhdGVtZW50LmJpbmRWYWx1ZShp
ICsgMSwgbV9hcmd1bWVudHNbaV0pOwogICAgICAgICBpZiAocmVzdWx0ID09IFNRTFJlc3VsdEZ1
bGwpIHsKICAgICAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpRVU9UQV9FUlI7CisgICAgICAg
ICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWlu
aW5nIHN0b3JhZ2Ugc3BhY2UiKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICAgICAgZWMgPSBT
UUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JN
ZXNzYWdlKCJjb3VsZCBub3QgYmluZCB2YWx1ZSIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQpAQCAtMTAy
LDYgKzEwNiw3IEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnRTeW4KIAog
ICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpIHsKICAgICAgICAgICAgIGVjID0g
U1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgICAgICBkYi0+c2V0TGFzdEVycm9y
TWVzc2FnZSgiY291bGQgbm90IGl0ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwgZGF0YWJhc2UtPmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0RG9uZSkgewpAQCAtMTExLDkgKzExNiwxMSBAQCBQ
YXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgfSBlbHNlIGlmIChy
ZXN1bHQgPT0gU1FMUmVzdWx0RnVsbCkgewogICAgICAgICAvLyBRdW90YSBlcnJvciwgdGhlIGRl
bGVnYXRlIHdpbGwgYmUgYXNrZWQgZm9yIG1vcmUgc3BhY2UgYW5kIHRoaXMgc3RhdGVtZW50IG1p
Z2h0IGJlIHJlLXJ1bi4KICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlFVT1RBX0VSUjsKKyAg
ICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFp
bmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgIGRiLT5zZXRM
YXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgZXhlY3V0ZSBzdGF0ZW1lbnQiLCByZXN1bHQsIGRh
dGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHJldmlzaW9uIDEw
MDAzMykKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjUsOCArMjY1LDkgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRy
YW5zYWN0aW9uQW5kUAogICAgIC8vIFRyYW5zYWN0aW9uIFN0ZXBzIDErMiAtIE9wZW4gYSB0cmFu
c2FjdGlvbiB0byB0aGUgZGF0YWJhc2UsIGp1bXBpbmcgdG8gdGhlIGVycm9yIGNhbGxiYWNrIGlm
IHRoYXQgZmFpbHMKICAgICBpZiAoIW1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkg
ewogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rp
b25JblByb2dyZXNzKCkpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gYmVnaW4gdHJhbnNhY3Rp
b24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0
YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURh
dGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNs
ZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24gdG8gdGhl
IGRhdGFiYXNlIik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjc2LDEwICsyNzcsMTEgQEAgdm9pZCBTUUxUcmFuc2Fj
dGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIHRoZSBhY3R1YWwgdmVyc2lvbi4gSW4g
c2luZ2xlLXByb2Nlc3MgYnJvd3NlcnMsIHRoaXMgaXMganVzdCBhIG1hcCBsb29rdXAuCiAgICAg
U3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFtX2RhdGFiYXNlLT5nZXRBY3R1YWxWZXJz
aW9uRm9yVHJhbnNhY3Rpb24oYWN0dWFsVmVyc2lvbikpIHsKKyAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidW5hYmxl
IHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRh
YmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIG1fZGF0YWJh
c2UtPmRpc2FibGVBdXRob3JpemVyKCk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xl
YXIoKTsKICAgICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwotICAgICAgICBt
X3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsICJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9u
RXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjkzLDggKzI5NSw3IEBA
IHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAgICAgbV9kYXRh
YmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBt
X3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQot
ICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQgc2V0dGluZyB1cCB0cmFuc2Fj
dGlvbiIpOwotCisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJlZCBkdXJpbmcg
dHJhbnNhY3Rpb24gcHJlZmxpZ2h0Iik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3Io
ZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDcwLDcgKzQ3MSw3IEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQKICAgICBpZiAobV93cmFwcGVyICYm
ICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KHRoaXMpKSB7CiAgICAgICAgIG1fdHJhbnNh
Y3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5z
YWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJlZCBzZXR0
aW5nIHVwIHRyYW5zYWN0aW9uIik7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2Nj
dXJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCIpOwogICAgICAgICBoYW5kbGVUcmFu
c2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ4Nyw3ICs0
ODgsOCBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0CiAgICAgICAg
IGlmIChtX3dyYXBwZXIpCiAgICAgICAgICAgICBtX3dyYXBwZXItPmhhbmRsZUNvbW1pdEZhaWxl
ZEFmdGVyUG9zdGZsaWdodCh0aGlzKTsKICAgICAgICAgbV9zdWNjZXNzQ2FsbGJhY2tXcmFwcGVy
LmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImZhaWxlZCB0byBjb21taXQgdGhlIHRyYW5zYWN0aW9u
Iik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBjb21taXQgdHJhbnNhY3Rpb24iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNxbGl0
ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFz
dEVycm9yTXNnKCkpOwogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJh
bnNhY3Rpb25TeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NR
TFRyYW5zYWN0aW9uU3luYy5jcHAJKHJldmlzaW9uIDEwMDAzMykKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsMTIg
Kzc1LDE3IEBAIFNRTFRyYW5zYWN0aW9uU3luYzo6flNRTFRyYW5zYWN0aW9uU3luYygKIFBhc3NS
ZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGVTUUwoY29uc3Qg
U3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAgbV9kYXRhYmFzZS0+c2V0
TGFzdEVycm9yTWVzc2FnZSgiIik7CisKICAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7
CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBleGVjdXRl
U1FMIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuIik7CiAgICAgICAgIGVjID0gU1FM
RXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAg
aWYgKG1faGFzVmVyc2lvbk1pc21hdGNoKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RF
cnJvck1lc3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1c2UgdGhlcmUgaXMgYSB2ZXJzaW9u
IG1pc21hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpWRVJTSU9OX0VSUjsKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTEwLDggKzExNSwxMCBAQCBQYXNzUmVmUHRyPFNR
TFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiAgICAgICAgICAgICAgICAgaWYgKG1fdHJhbnNh
Y3Rpb25DbGllbnQtPmRpZEV4Y2VlZFF1b3RhKGRhdGFiYXNlKCkpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGVjID0gMDsKICAgICAgICAgICAgICAgICAgICAgcmV0cnlTdGF0ZW1lbnQgPSB0cnVl
OwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdh
cyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KQEAgLTEyNyw4ICsxMzQsMTAgQEAgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IFNR
TFRyYW5zYWN0aW9uUwogRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKCkK
IHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0Nv
bnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkKKyAgICBpZiAo
IW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJv
ck1lc3NhZ2UoImNhbm5vdCBiZWdpbiB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBkYXRhYmFzZSBp
cyBub3Qgb3BlbiIpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsK
KyAgICB9CiAKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkudHJhbnNh
Y3Rpb25JblByb2dyZXNzKCkpOwogCkBAIC0xNDcsNiArMTU2LDggQEAgRXhjZXB0aW9uQ29kZSBT
UUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKAogICAgIC8vIENoZWNrIGlmIGJlZ2luKCkgc3VjY2Vl
ZGVkLgogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7CiAgICAg
ICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50cmFuc2FjdGlvbkluUHJv
Z3Jlc3MoKSk7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoInVuYWJs
ZSB0byBiZWdpbiB0cmFuc2FjdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRh
YmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIG1fc3FsaXRl
VHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6REFUQUJB
U0VfRVJSOwogICAgIH0KQEAgLTE1Niw2ICsxNjcsOCBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5z
YWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gdGhlIGFjdHVhbCB2ZXJzaW9uLiBJbiBzaW5nbGUt
cHJvY2VzcyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFwIGxvb2t1cC4KICAgICBTdHJpbmcg
YWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2UtPmdldEFjdHVhbFZlcnNpb25Gb3JU
cmFuc2FjdGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBtX2RhdGFiYXNlLT5zZXRMYXN0
RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RF
cnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAg
ICAgICAgcm9sbGJhY2soKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6REFUQUJBU0Vf
RVJSOwogICAgIH0KQEAgLTE2OCw2ICsxODEsOCBAQCBFeGNlcHRpb25Db2RlIFNRTFRyYW5zYWN0
aW9uU3luYzo6ZXhlY3V0CiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwogICAgIGlmICghbV9kYXRhYmFzZS0+b3Bl
bmVkKCkgfHwgKG1fY2FsbGJhY2sgJiYgIW1fY2FsbGJhY2stPmhhbmRsZUV2ZW50KHRoaXMpKSkg
eworICAgICAgICBpZiAobV9kYXRhYmFzZS0+bGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImZhaWxlZCB0byBl
eGVjdXRlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIik7CiAgICAgICAgIG1fY2FsbGJhY2sgPSAwOwog
ICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICB9CkBAIC0xNzks
OCArMTk0LDEwIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXQKIEV4
Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQoKQogewogICAgIEFTU0VSVCht
X2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsK
LSAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKQorICAgIGlmICghbV9kYXRhYmFzZS0+b3Bl
bmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxl
IHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBkYXRhYmFzZSBpcyBub3Qgb3Blbi4i
KTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7CisgICAgfQogCiAg
ICAgQVNTRVJUKG1fc3FsaXRlVHJhbnNhY3Rpb24pOwogCkBAIC0xODksOCArMjA2LDExIEBAIEV4
Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQKICAgICBtX2RhdGFiYXNlLT5l
bmFibGVBdXRob3JpemVyKCk7CiAKICAgICAvLyBJZiB0aGUgY29tbWl0IGZhaWxlZCwgdGhlIHRy
YW5zYWN0aW9uIHdpbGwgc3RpbGwgYmUgbWFya2VkIGFzICJpbiBwcm9ncmVzcyIKLSAgICBpZiAo
bV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQorICAgIGlmIChtX3NxbGl0ZVRyYW5z
YWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9y
TWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0
RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICB9CiAKICAgICBt
X3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDAzMykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDExLTExLTEwICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisg
ICAgICAgIFVwZGF0ZSBsYXlvdXQgdGVzdHMgZm9yICBuZXcgd2Vic3FsIGVycm9yIG1lc3NhZ2Vz
IGFuZCBjb25zb2xlIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTU3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxl
LXJldXNlLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3Jh
Z2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmh0bWw6CisgICAg
ICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0
YXRlbWVudC1zeW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFn
ZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNp
b24tc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2UvdGVz
dC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMvc3RvcmFn
ZS90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLmh0bWw6CisgICAgICAgICogZmFzdC93
b3JrZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFj
ay1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0
eS12ZXJzaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL3ByaXZhdGUtYnJvd3Np
bmctbm9yZWFkLW5vd3JpdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvdGVzdC1h
dXRob3JpemVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMS0xMSAgT2phbiBWYWZhaSAgPG9qYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5OTk1My4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhh
bmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtl
cnMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2Utd29ya2VyLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIFRoaXMgdGVzdHMgdGhhdCBhIGRhdGFi
YXNlIGNhbiBiZSBhY2Nlc3NlZCBhZnRlciBjaGFuZ2luZyBpdHMgdmVyc2lvbi4gWW91IHNob3Vs
ZCBzZWUgYW4gZXJyb3IgYWJvdXQgRm9vQmFyIHRhYmxlIGJlbG93LCBub3QgYWJvdXQgbWlzbWF0
Y2hpbmcgdmVyc2lvbnMuCiBjaGFuZ2VWZXJzaW9uOiB0cmFuc2FjdGlvbiBjYWxsYmFjawogY2hh
bmdlVmVyc2lvbjogc3VjY2VzcyBjYWxsYmFjawotdHJhbnNhY3Rpb246IHN0YXRlbWVudCBlcnJv
ciBjYWxsYmFjazogbm8gc3VjaCB0YWJsZTogRm9vQmFyCit0cmFuc2FjdGlvbjogc3RhdGVtZW50
IGVycm9yIGNhbGxiYWNrOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm8gc3VjaCB0
YWJsZTogRm9vQmFyKQogVEVTVCBDT01QTEVURS4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5j
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3Rv
cmFnZS9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFn
ZS9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDEwIEBACiBUZXN0IHRoYXQgZXhlY3V0ZVNxbCgp
IGFjY2VwdHMgb25seSBvbmUgc3RhdGVtZW50LgotUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxV
RVMgKDEpCi1QQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMik7Ci1QQVNTOiAgICBJTlNF
UlQgSU5UTyBUZXN0IFZBTFVFUyAoMykgICAgCi1QQVNTOiAgICBJTlNFUlQgSU5UTyBUZXN0IFZB
TFVFUyAoNCk7ICAgCi1QQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNSkgICA7Ci1QQVNT
OiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNik7IGdhcmJhZ2UKLVBBU1M6IElOU0VSVCBJTlRP
IFRlc3QgVkFMVUVTICg3KTsgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDgpCi1QQVNTOiAgIElO
U0VSVCBJTlRPIFRlc3QgVkFMVUVTICg5KTsgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMTAp
OyAgIAorUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDEpLCAKK1BBU1M6IElOU0VSVCBJ
TlRPIFRlc3QgVkFMVUVTICgyKTssIAorUEFTUzogICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMg
KDMpICAgICwgCitQQVNTOiAgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoNCk7ICAgLCAKK1BB
U1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg1KSAgIDssIAorUEFTUzogSU5TRVJUIElOVE8g
VGVzdCBWQUxVRVMgKDYpOyBnYXJiYWdlLCBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEs
IG5vdCBhbiBlcnJvcikKK1BBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg3KTsgSU5TRVJU
IElOVE8gVGVzdCBWQUxVRVMgKDgpLCBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEsIG5v
dCBhbiBlcnJvcikKK1BBU1M6ICAgSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDkpOyAgIElOU0VS
VCBJTlRPIFRlc3QgVkFMVUVTICgxMCk7ICAgLCBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDEsIG5vdCBhbiBlcnJvcikKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3Jh
Z2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zeW5jLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNl
LWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDAwMzMpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9u
LWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDA6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCB2ZXJz
aW9uIG1pc21hdGNoLCAnMS4wJyBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVudFZlcnNpb24gb2Yg
JycKIFRoaXMgdGVzdCB0ZXN0cyBvcGVuRGF0YWJhc2VTeW5jKCkncyBjcmVhdGlvbiBjYWxsYmFj
ay4KIFBBU1M6IENyZWF0aW9uIGNhbGxiYWNrIHdhcyBjYWxsZWQuCiBQQVNTOiBWZXJzaW9uIHNl
dCB0byBlbXB0eSBzdHJpbmcgYXMgZXhwZWN0ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dv
cmtlcnMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLXN5bmMtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29w
ZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDEwMDAzMykKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJh
c2Utc2V0LWVtcHR5LXZlcnNpb24tc3luYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0
YWJhc2UsIHZlcnNpb24gbWlzbWF0Y2gsICd0ZXN0JyBkb2VzIG5vdCBtYXRjaCB0aGUgY3VycmVu
dFZlcnNpb24gb2YgJycKIFRoaXMgdGVzdHMgdGhhdCBjYWxsaW5nIG9wZW5EYXRhYmFzZSB3aXRo
IGFuIGVtcHR5IHZlcnNpb24gc3RyaW5nIHNldHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGF0
IGRhdGFiYXNlIHRvIHRoZSBlbXB0eSBzdHJpbmcgYW5kIHN1YnNlcXVlbnQgYXR0ZW1wdHMgdG8g
b3BlbiB0aGUgZGF0YWJhc2Ugd2l0aCBhIGRpZmZlcmVudCBleHBlY3RlZCB2ZXJzaW9uIHRocm93
IGFuIGV4Y2VwdGlvbi4KIFBBU1MKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0
b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS90ZXN0
LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02LDIwICs2LDIwIEBA
IFNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWMKIFNRTElURV9DUkVBVEVf
VEVNUF9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3Rh
dGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVk
LgotU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
K1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX1NFTEVDVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RFTEVU
RSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgc3VjY2VlZGVk
LgogU1FMSVRFX1VQREFURSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX1BSQUdNQSBzdGF0
ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FM
SVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQUxURVJfVEFCTEUg
c3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0
aG9yaXplZAotU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAor
U1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgot
U1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9B
TkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfRFJPUF9JTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgog
U1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1Bf
VEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCkBAIC0yOCw0MSArMjgsNDEgQEAgU1FM
SVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVklFVyBz
dGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRl
ZC4KIFdyaXRlIHRyYW5zYWN0aW9uIHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVEFCTEUgc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVt
ZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVk
KQogU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFU
RV9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9U
RU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRF
X1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NS
RUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9D
UkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NS
RUFURV9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRF
X1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9J
TkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5v
dCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9D
UkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCitTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9WSUVXIHN0
YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhv
cml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0NSRUFURV9JTkRF
WCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVu
dCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2Vl
ZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElU
RV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVX
IHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFp
bGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxl
ZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElU
RV9SRUFEIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCi1TUUxJVEVfREVMRVRFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1T
UUxJVEVfSU5TRVJUIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfVVBE
QVRFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfUFJBR01BIHN0YXRl
bWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50
IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFp
bGVkOiBubyBzdWNoIHRhYmxlOiBUZXN0VGFibGUKLVNRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0
aG9yaXplZAotU1FMSVRFX1JFSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
LVNRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVf
RFJPUF9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1Bf
VEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1Bf
VEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJP
UF9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9Q
X1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1ZJ
RVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RBQkxFIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfREVMRVRFIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitT
UUxJVEVfSU5TRVJUIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUFJB
R01BIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTFRFUl9U
QUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm8g
c3VjaCB0YWJsZTogVGVzdFRhYmxlKQorU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUkVJTkRF
WCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBh
dXRob3JpemVkKQorU1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX0lOREVYIHN0
YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhv
cml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1Q
X1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0RST1BfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKIFJlYWQgdHJhbnNhY3Rpb25zIHN1Y2NlZWRlZC4KIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNh
Y3Rpb24tc3luYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93
b3JrZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDEwMDAzMykKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdl
L3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMyBAQAogVGVzdCB0aGF0IHRyeWluZyB0byBydW4gYSB0cmFuc2FjdGlv
biBpbnNpZGUgYW5vdGhlciB0cmFuc2FjdGlvbiB0aHJvd3MgYW4gZXhjZXB0aW9uLgotUEFTUzog
RXhjZXB0aW9uIHRocm93biB3aGlsZSB0cnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRyYW5zYWN0aW9u
LgorUEFTUzogRXhjZXB0aW9uIHRocm93biB3aGlsZSB0cnlpbmcgdG8gcnVuIGEgbmVzdGVkIHRy
YW5zYWN0aW9uICh1bmFibGUgdG8gc3RhcnQgYSB0cmFuc2FjdGlvbiBmcm9tIHdpdGhpbiBhIHRy
YW5zYWN0aW9uKS4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVz
b3VyY2VzL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvZXhl
Y3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmpzCShyZXZpc2lvbiAxMDAw
MzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvZXhlY3V0
ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDExICsxLDEzIEBACiBmdW5jdGlvbiBleGVjdXRlU3RhdGVtZW50KHR4LCBleHBlY3RlZFRv
UGFzcywgc3RhdGVtZW50KQogeworICAgIHZhciBtZXNzYWdlOwogICAgIHRyeSB7CiAgICAgICAg
IHR4LmV4ZWN1dGVTcWwoc3RhdGVtZW50KTsKLSAgICAgICAgcG9zdE1lc3NhZ2UoZXhwZWN0ZWRU
b1Bhc3MgPyAiUEFTUzogIiArIHN0YXRlbWVudCA6ICJGQUlMOiAiICsgc3RhdGVtZW50KTsKKyAg
ICAgICAgbWVzc2FnZSA9IGV4cGVjdGVkVG9QYXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIjsKICAg
ICB9IGNhdGNoIChlcnIpIHsKLSAgICAgICAgcG9zdE1lc3NhZ2UoIWV4cGVjdGVkVG9QYXNzID8g
IlBBU1M6ICIgKyBzdGF0ZW1lbnQgOiAiRkFJTDogIiArIHN0YXRlbWVudCk7CisgICAgICAgIG1l
c3NhZ2UgPSAhZXhwZWN0ZWRUb1Bhc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiOwogICAgIH0KKyAg
ICBwb3N0TWVzc2FnZShtZXNzYWdlICsgc3RhdGVtZW50ICsgIiwgIiArIGRiLmxhc3RFcnJvck1l
c3NhZ2UpOwogfQogCiB2YXIgZGIgPSBvcGVuRGF0YWJhc2VTeW5jKCJFeGVjdXRlU1FMQWNjZXB0
c09ubHlPbmVTdGF0ZW1lbnRUZXN0IiwgIjEuMCIsICIiLCAxKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNlcy90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlv
bi1zeW5jLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdl
L3Jlc291cmNlcy90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLmpzCShyZXZpc2lvbiAx
MDAwMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9yZXNvdXJjZXMvdHJh
bnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy5qcwkod29ya2luZyBjb3B5KQpAQCAtMiw5ICsy
LDkgQEAgdmFyIGRiID0gb3BlbkRhdGFiYXNlU3luYygiVHJhbnNhY3Rpb25JbgogZGIudHJhbnNh
Y3Rpb24oZnVuY3Rpb24odHgpIHsKICAgICB0cnkgewogICAgICAgICBkYi50cmFuc2FjdGlvbihm
dW5jdGlvbihuZXN0ZWRUeCkgeyB9KTsKLSAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IFRyeWlu
ZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rpb24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4i
KTsKKyAgICAgICAgcG9zdE1lc3NhZ2UoIkZBSUw6IFRyeWluZyB0byBydW4gYSBuZXN0ZWQgdHJh
bnNhY3Rpb24gc2hvdWxkIHRocm93IGFuIGV4Y2VwdGlvbi4iICsgZGIubGFzdEVycm9yTWVzc2Fn
ZSk7CiAgICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiBFeGNl
cHRpb24gdGhyb3duIHdoaWxlIHRyeWluZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rpb24uIik7
CisgICAgICAgIHBvc3RNZXNzYWdlKCJQQVNTOiBFeGNlcHRpb24gdGhyb3duIHdoaWxlIHRyeWlu
ZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rpb24gKCIgKyBkYi5sYXN0RXJyb3JNZXNzYWdlICsg
IikuIik7CiAgICAgfQogfSk7CiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvY2hhbmdlLXZl
cnNpb24taGFuZGxlLXJldXNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDEwMDAzMykKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxl
LXJldXNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIFRoaXMg
dGVzdHMgdGhhdCBhIGRhdGFiYXNlIGNhbiBiZSBhY2Nlc3NlZCBhZnRlciBjaGFuZ2luZyBpdHMg
dmVyc2lvbi4gWW91IHNob3VsZCBzZWUgYW4gZXJyb3IgYWJvdXQgRm9vQmFyIHRhYmxlIGJlbG93
LCBub3QgYWJvdXQgbWlzbWF0Y2hpbmcgdmVyc2lvbnMuCiBjaGFuZ2VWZXJzaW9uOiB0cmFuc2Fj
dGlvbiBjYWxsYmFjawogY2hhbmdlVmVyc2lvbjogc3VjY2VzcyBjYWxsYmFjawotdHJhbnNhY3Rp
b246IHN0YXRlbWVudCBlcnJvciBjYWxsYmFjazogbm8gc3VjaCB0YWJsZTogRm9vQmFyCit0cmFu
c2FjdGlvbjogc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0
ZW1lbnQgKDEgbm8gc3VjaCB0YWJsZTogRm9vQmFyKQogVEVTVCBDT01QTEVURS4KIApJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0YWJhc2Ut
Y3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDAwMzMpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDIgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDA6IHVuYWJsZSB0byBvcGVuIGRhdGFiYXNlLCB2ZXJzaW9uIG1pc21hdGNoLCAnMS4wJyBkb2Vz
IG5vdCBtYXRjaCB0aGUgY3VycmVudFZlcnNpb24gb2YgJycKIFRoaXMgdGVzdCB0ZXN0cyBvcGVu
RGF0YWJhc2UoKSdzIGNyZWF0aW9uIGNhbGxiYWNrLgogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9y
YWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lv
bi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMDAzMykKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
b3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMiArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogdW5hYmxlIHRvIG9w
ZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlzbWF0Y2gsICd0ZXN0JyBkb2VzIG5vdCBtYXRjaCB0aGUg
Y3VycmVudFZlcnNpb24gb2YgJycKIFRoaXMgdGVzdHMgdGhhdCBjYWxsaW5nIG9wZW5EYXRhYmFz
ZSB3aXRoIGFuIGVtcHR5IHZlcnNpb24gc3RyaW5nIHNldHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBv
ZiB0aGF0IGRhdGFiYXNlIHRvIHRoZSBlbXB0eSBzdHJpbmcgYW5kIHN1YnNlcXVlbnQgYXR0ZW1w
dHMgdG8gb3BlbiB0aGUgZGF0YWJhc2Ugd2l0aCBhIGRpZmZlcmVudCBleHBlY3RlZCB2ZXJzaW9u
IHRocm93IGFuIGV4Y2VwdGlvbi4KIFNVQ0NFU1MsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLiBF
cnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEKSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVh
ZC1ub3dyaXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAwMDMzKQorKysgTGF5b3V0VGVzdHMv
c3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMiwxNCArMiwxNCBAQCBUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGF0
dGVtcHRzIHRvIGNoCiBTZXR1cCBzdGF0ZW1lbnQgMSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiBT
ZXR1cCBzdGF0ZW1lbnQgMiBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CiBQcml2YXRlIGJyb3dzaW5n
IHN0YXRlbWVudCAxIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1ub3QgYXV0aG9yaXplZAorY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQogUHJpdmF0ZSBicm93
c2luZyBzdGF0ZW1lbnQgMiBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgotbm90IGF1dGhvcml6ZWQK
K2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBQcml2YXRl
IGJyb3dzaW5nIHN0YXRlbWVudCAzIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1ub3QgYXV0aG9y
aXplZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFBy
aXZhdGUgYnJvd3Npbmcgc3RhdGVtZW50IDQgY29tcGxldGVkIHdpdGggYW4gZXJyb3IKLW5vdCBh
dXRob3JpemVkCitjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVk
KQogUHJpdmF0ZSBicm93c2luZyBzdGF0ZW1lbnQgNSBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgot
YWNjZXNzIHRvIFByaXZhdGVUZXN0MS5yYW5kb21EYXRhIGlzIHByb2hpYml0ZWQKK2NvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgYWNjZXNzIHRvIFByaXZhdGVUZXN0MS5yYW5kb21EYXRh
IGlzIHByb2hpYml0ZWQpCiBUZXN0IGVuZGVkCiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uv
dGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
dG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMDAzMykKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNiwyMCArNiwyMCBAQCBTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0
ZW1lbnQgc3VjCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgog
U1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRF
X1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQg
ZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQog
U1FMSVRFX1JFQUQgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KIFNRTElURV9ERUxFVEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9J
TlNFUlQgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9VUERBVEUgc3RhdGVtZW50IHN1Y2Nl
ZWRlZC4KLVNRTElURV9QUkFHTUEgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NR
TElURV9QUkFHTUEgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgc3VjY2Vl
ZGVkLgogU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfVFJB
TlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BVFRBQ0gg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0ggc3RhdGVtZW50
IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FM
SVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RFVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3Vs
ZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX1JFSU5E
RVggc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0RST1BfSU5E
RVggc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KIFNRTElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVk
LgpAQCAtMjgsNDEgKzI4LDQxIEBAIFNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2Nl
ZWRlZC4KIFNRTElURV9EUk9QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9EUk9Q
X1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBXcml0ZSB0cmFuc2FjdGlvbiBzdWNjZWVkZWQu
Ci1TUUxJVEVfQ1JFQVRFX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitT
UUxJVEVfQ1JFQVRFX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKIFNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50
IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDog
bm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDog
bm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1
dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90
IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVN
UF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEg
bm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBz
dGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9UUklHR0VSIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXpl
ZCkKK1NRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFy
ZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKIFNRTElURV9DUkVBVEVfSU5ERVggc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9D
UkVBVEVfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1Q
X1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0
YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2Nl
ZWRlZC4KIFNRTElURV9DUkVBVEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NS
RUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVB
VEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FM
SVRFX1NFTEVDVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQg
ZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX1VQREFURSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9y
aXplZAotU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVf
QUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm8gc3VjaCB0YWJsZTogVGVzdFRhYmxlCi1T
UUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9ERVRBQ0gg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9SRUlOREVYIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfSU5ERVggc3RhdGVtZW50IGZhaWxlZDogbm90
IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90
IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3Jp
emVkCi1TUUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAor
U1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0lOU0VSVCBzdGF0ZW1lbnQgZmFpbGVkOiBj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX1VQ
REFURSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5v
dCBhdXRob3JpemVkKQorU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVSX1RBQkxF
IHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1
dGhvcml6ZWQpCitTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90
IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vIHN1Y2ggdGFibGU6IFRlc3RUYWJsZSkKK1NRTElURV9U
UkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3Vs
ZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RFVEFD
SCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBh
dXRob3JpemVkKQorU1FMSVRFX1JFSU5ERVggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHBy
ZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BTkFMWVpFIHN0YXRl
bWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCitTUUxJVEVfRFJPUF9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFy
ZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9U
RU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9E
Uk9QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBSZWFkIHRyYW5z
YWN0aW9ucyBzdWNjZWVkZWQuCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114978</attachid>
            <date>2011-11-14 10:31:54 -0800</date>
            <delta_ts>2011-11-14 11:47:05 -0800</delta_ts>
            <desc>dberrors (patch for landing)</desc>
            <filename>dberror.land.txt</filename>
            <type>text/plain</type>
            <size>65972</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDE2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4IEBACisyMDExLTExLTEwICBNaWNoYWVs
IE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldHVybiBtb3JlIGNv
bXBsZXRlIGVycm9yIGFuZCBleGNlcHRpb24gbWVzc2FnZXMgd2hlbiBhCisgICAgICAgIFdlYlNR
TERhdGFiYXNlIGZ1bmN0aW9uIGZhaWxzLiBQcm9kdWNlIGNvbnNvbGUgbG9nZ2luZworICAgICAg
ICBmb3Igb3BlbkRhdGFiYXNlKCkgZXJyb3JzIGFuZCB2YWN1dW0gZXJyb3JzLiBBZGQgYSBsYXN0
RXJyb3JNZXNzYWdlCisgICAgICAgIGFjY2Vzc29yIHRvIHRoZSBEYXRhYmFzZVN5bmMgaW50ZXJm
YWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE1
NzUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KKworICAgICAgICBZZXMsIHNl
ZSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgaW4gdGhpcyBwYXRjaC4KKworICAgICAgICAqIHBsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVEYXRh
YmFzZTo6U1FMaXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6
Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRGF0YWJhc2U6OmNsb3NlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMaXRlRGF0YWJhc2U6Omxhc3RFcnJvck1zZyk6CisgICAgICAgIChXZWJDb3JlOjpTUUxp
dGVEYXRhYmFzZTo6IHJ1blZhY3V1bUNvbW1hbmQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRl
RGF0YWJhc2U6OiBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQpOgorICAgICAgICBSZWZsZWN0
IGVycm9ycyBpbiB0aGUgb3BlbigpIG1ldGhvZCBpbiBsYXN0RXJyb3IoKSBhbmQgbGFzdEVycm9y
TXNnKCkuCisgICAgICAgIFJldHVybiBhbiBlcnJvciBjb2RlcyBmb3IgcnVuVmFjdXVtQ29tbWFu
ZCgpIGFuZCBydW5JbmNyZW1lbnRhbFZhY3V1bUNvbW1hbmQoKS4KKworICAgICAgICAqIHBsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorICAgICAgICAqIHN0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRFcnJvck1lc3NhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkpOgorICAg
ICAgICAoV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKToKKyAgICAg
ICAgRHVyaW5nIG9wZW5BbmRWZXJpZnksIHByb2R1Y2UgZm9ybWF0dGVkIGVycm9yIG1lc3NhZ2Vz
IHRoYXQgaW5jbHVkZSB3aGF0IHdhcyBiZWluZyBkb25lLCB0aGUgc3FsaXRlIGVycm9yIGNvZGUs
CisgICAgICAgIGFuZCB0aGUgc3FsaXRlIGVycm9yIG1lc3NhZ2UuIEFkZCBhIGhlbHBlciB0byBs
b2cgbWVzc2FnZSB0byB0aGUgY29uc29sZS4KKworICAgICAgICAqIHN0b3JhZ2UvQWJzdHJhY3RE
YXRhYmFzZS5oOgorICAgICAgICAqIHN0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1Qb3N0Zmxp
Z2h0KToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6Om9w
ZW5BbmRWZXJpZnlWZXJzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpwZXJmb3Jt
T3BlbkFuZFZlcmlmeSk6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZS5oOgorICAgICAgICAq
IHN0b3JhZ2UvRGF0YWJhc2VTeW5jLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlU3lu
Yzo6b3BlbkRhdGFiYXNlU3luYyk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVN5bmM6OmNo
YW5nZVZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VTeW5jOjpydW5UcmFuc2Fj
dGlvbik6CisgICAgICAgICogc3RvcmFnZS9EYXRhYmFzZVN5bmMuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFiYXNlU3luYzo6bGFzdEVycm9yTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZVN5bmM6OnNldExhc3RFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHN0b3JhZ2UvRGF0
YWJhc2VTeW5jLmlkbDoKKyAgICAgICAgQWRkIGEgbGFzdEVycm9yTWVzc2FnZSBhdHRyaWJ1dGUg
c28gamF2YXNjcmlwdCBjYWxsZXJzIGNhbgorICAgICAgICByZXRyaWV2ZSBtb3JlIGRldGFpbGVk
IGluZm9ybWF0aW9uIGFib3V0IHdoYXQgd2VudCB3cm9uZy4KKworICAgICAgICAqIHN0b3JhZ2Uv
RGF0YWJhc2VUYXNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZU9w
ZW5UYXNrOjpEYXRhYmFzZU9wZW5UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpE
YXRhYmFzZU9wZW5UYXNrOjpkb1BlcmZvcm1UYXNrKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFi
YXNlVGFzay5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlT3BlblRhc2s6
OmNyZWF0ZSk6CisgICAgICAgIFJldHVybiBhbiBlcnJvck1lc3NhZ2UgaW4gYWRkaXRpb24gdG8g
dGhlIGV4Y2VwdGlvbiBjb2RlLgorCisgICAgICAgICogc3RvcmFnZS9TUUxFcnJvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNyZWF0ZSk6CisgICAgICAgIEFkZCBoZWxwZXJzIHRv
IHByb2R1Y2VkIGZvcm1hdHRlZCBlcnJvciBtZXNzYWdlcy4KKworICAgICAgICAqIHN0b3JhZ2Uv
U1FMU3RhdGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhlY3V0
ZSk6CisgICAgICAgICogc3RvcmFnZS9TUUxTdGF0ZW1lbnRTeW5jLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFN0YXRlbWVudFN5bmM6OmV4ZWN1dGUpOgorICAgICAgICAqIHN0b3JhZ2UvU1FM
VHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Om9wZW5U
cmFuc2FjdGlvbkFuZFByZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlv
bjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogc3RvcmFnZS9TUUxUcmFuc2FjdGlv
blN5bmMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRl
U1FMKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFRyYW5zYWN0aW9uU3luYzo6Y29tbWl0KToKKwogMjAxMS0xMS0wOCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgTWVkaWFDb250
cm9sbGVyLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0
YWJhc2UuY3BwCShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw4IEBAIGNv
bnN0IGludCBTUUxSZXN1bHRTY2hlbWEgPSBTUUxJVEVfU0NIRU0KIGNvbnN0IGludCBTUUxSZXN1
bHRGdWxsID0gU1FMSVRFX0ZVTEw7CiBjb25zdCBpbnQgU1FMUmVzdWx0SW50ZXJydXB0ID0gU1FM
SVRFX0lOVEVSUlVQVDsKIAorc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVycm9yTWVzc2FnZVtd
ID0gImRhdGFiYXNlIGlzIG5vdCBvcGVuIjsKKwogU1FMaXRlRGF0YWJhc2U6OlNRTGl0ZURhdGFi
YXNlKCkKICAgICA6IG1fZGIoMCkKICAgICAsIG1fcGFnZVNpemUoLTEpCkBAIC01Myw2ICs1NSw4
IEBAIFNRTGl0ZURhdGFiYXNlOjpTUUxpdGVEYXRhYmFzZSgpCiAgICAgLCBtX3NoYXJhYmxlKGZh
bHNlKQogICAgICwgbV9vcGVuaW5nVGhyZWFkKDApCiAgICAgLCBtX2ludGVycnVwdGVkKGZhbHNl
KQorICAgICwgbV9vcGVuRXJyb3IoU1FMSVRFX0VSUk9SKQorICAgICwgbV9vcGVuRXJyb3JNZXNz
YWdlKG5vdE9wZW5FcnJvck1lc3NhZ2UpCiB7CiB9CiAKQEAgLTY1LDE1ICs2OSwyMCBAQCBib29s
IFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgCiB7CiAgICAgY2xvc2UoKTsKIAot
ICAgIGlmIChTUUxpdGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBm
b3JXZWJTUUxEYXRhYmFzZSkgIT0gU1FMSVRFX09LKSB7CisgICAgbV9vcGVuRXJyb3IgPSBTUUxp
dGVGaWxlU3lzdGVtOjpvcGVuRGF0YWJhc2UoZmlsZW5hbWUsICZtX2RiLCBmb3JXZWJTUUxEYXRh
YmFzZSk7CisgICAgaWYgKG1fb3BlbkVycm9yICE9IFNRTElURV9PSykgeworICAgICAgICBtX29w
ZW5FcnJvck1lc3NhZ2UgPSBtX2RiID8gc3FsaXRlM19lcnJtc2cobV9kYikgOiAic3FsaXRlX29w
ZW4gcmV0dXJuZWQgbnVsbCI7CiAgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGZh
aWxlZCB0byBsb2FkIGZyb20gJXNcbkNhdXNlIC0gJXMiLCBmaWxlbmFtZS5hc2NpaSgpLmRhdGEo
KSwKLSAgICAgICAgICAgIHNxbGl0ZTNfZXJybXNnKG1fZGIpKTsKKyAgICAgICAgICAgIG1fb3Bl
bkVycm9yTWVzc2FnZS5kYXRhKCkpOwogICAgICAgICBzcWxpdGUzX2Nsb3NlKG1fZGIpOwogICAg
ICAgICBtX2RiID0gMDsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBpZiAoc3Fs
aXRlM19leHRlbmRlZF9yZXN1bHRfY29kZXMobV9kYiwgMSkgIT0gU1FMSVRFX09LKSB7Ci0gICAg
ICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVycm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5k
ZWQgZXJyb3JzIC0gJXMiLCBzcWxpdGUzX2Vycm1zZyhtX2RiKSk7CisKKyAgICBtX29wZW5FcnJv
ciA9IHNxbGl0ZTNfZXh0ZW5kZWRfcmVzdWx0X2NvZGVzKG1fZGIsIDEpOworICAgIGlmIChtX29w
ZW5FcnJvciAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAgbV9vcGVuRXJyb3JNZXNzYWdlID0gc3Fs
aXRlM19lcnJtc2cobV9kYik7CisgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGVy
cm9yIHdoZW4gZW5hYmxpbmcgZXh0ZW5kZWQgZXJyb3JzIC0gJXMiLCBtX29wZW5FcnJvck1lc3Nh
Z2UuZGF0YSgpKTsKICAgICAgICAgc3FsaXRlM19jbG9zZShtX2RiKTsKICAgICAgICAgbV9kYiA9
IDA7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgxLDYgKzkwLDggQEAgYm9vbCBTUUxpdGVE
YXRhYmFzZTo6b3Blbihjb25zdCBTdHJpbmcmIAogCiAgICAgaWYgKGlzT3BlbigpKQogICAgICAg
ICBtX29wZW5pbmdUaHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CisgICAgZWxzZQorICAgICAgICBt
X29wZW5FcnJvck1lc3NhZ2UgPSAic3FsaXRlX29wZW4gcmV0dXJuZWQgbnVsbCI7CiAKICAgICBp
ZiAoIVNRTGl0ZVN0YXRlbWVudCgqdGhpcywgIlBSQUdNQSB0ZW1wX3N0b3JlID0gTUVNT1JZOyIp
LmV4ZWN1dGVDb21tYW5kKCkpCiAgICAgICAgIExPR19FUlJPUigiU1FMaXRlIGRhdGFiYXNlIGNv
dWxkIG5vdCBzZXQgdGVtcF9zdG9yZSB0byBtZW1vcnkiKTsKQEAgLTEwMiw2ICsxMTMsOCBAQCB2
b2lkIFNRTGl0ZURhdGFiYXNlOjpjbG9zZSgpCiAgICAgfQogCiAgICAgbV9vcGVuaW5nVGhyZWFk
ID0gMDsKKyAgICBtX29wZW5FcnJvciA9IFNRTElURV9FUlJPUjsKKyAgICBtX29wZW5FcnJvck1l
c3NhZ2UgPSBub3RPcGVuRXJyb3JNZXNzYWdlOwogfQogCiB2b2lkIFNRTGl0ZURhdGFiYXNlOjpp
bnRlcnJ1cHQoKQpAQCAtMjgxLDEzICsyOTQsMTQgQEAgdm9pZCBTUUxpdGVEYXRhYmFzZTo6Y2xl
YXJBbGxUYWJsZXMoKQogICAgIH0KIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuVmFjdXVt
Q29tbWFuZCgpCitpbnQgU1FMaXRlRGF0YWJhc2U6OnJ1blZhY3V1bUNvbW1hbmQoKQogewogICAg
IGlmICghZXhlY3V0ZUNvbW1hbmQoIlZBQ1VVTTsiKSkKICAgICAgICAgTE9HKFNRTERhdGFiYXNl
LCAiVW5hYmxlIHRvIHZhY3V1bSBkYXRhYmFzZSAtICVzIiwgbGFzdEVycm9yTXNnKCkpOworICAg
IHJldHVybiBsYXN0RXJyb3IoKTsKIH0KIAotdm9pZCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVt
ZW50YWxWYWN1dW1Db21tYW5kKCkKK2ludCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxW
YWN1dW1Db21tYW5kKCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9hdXRob3JpemVyTG9j
ayk7CiAgICAgZW5hYmxlQXV0aG9yaXplcihmYWxzZSk7CkBAIC0yOTYsNiArMzEwLDcgQEAgdm9p
ZCBTUUxpdGVEYXRhYmFzZTo6cnVuSW5jcmVtZW50YWxWYWN1dQogICAgICAgICBMT0coU1FMRGF0
YWJhc2UsICJVbmFibGUgdG8gcnVuIGluY3JlbWVudGFsIHZhY3V1bSAtICVzIiwgbGFzdEVycm9y
TXNnKCkpOwogCiAgICAgZW5hYmxlQXV0aG9yaXplcih0cnVlKTsKKyAgICByZXR1cm4gbGFzdEVy
cm9yKCk7CiB9CiAKIGludDY0X3QgU1FMaXRlRGF0YWJhc2U6Omxhc3RJbnNlcnRSb3dJRCgpCkBA
IC0zMTQsMTIgKzMyOSwxMiBAQCBpbnQgU1FMaXRlRGF0YWJhc2U6Omxhc3RDaGFuZ2VzKCkKIAog
aW50IFNRTGl0ZURhdGFiYXNlOjpsYXN0RXJyb3IoKQogewotICAgIHJldHVybiBtX2RiID8gc3Fs
aXRlM19lcnJjb2RlKG1fZGIpIDogU1FMSVRFX0VSUk9SOworICAgIHJldHVybiBtX2RiID8gc3Fs
aXRlM19lcnJjb2RlKG1fZGIpIDogbV9vcGVuRXJyb3I7CiB9CiAKIGNvbnN0IGNoYXIqIFNRTGl0
ZURhdGFiYXNlOjpsYXN0RXJyb3JNc2coKQogeyAKLSAgICByZXR1cm4gc3FsaXRlM19lcnJtc2co
bV9kYik7CisgICAgcmV0dXJuIG1fZGIgPyBzcWxpdGUzX2Vycm1zZyhtX2RiKSA6IG1fb3BlbkVy
cm9yTWVzc2FnZS5kYXRhKCk7CiB9CiAKICNpZm5kZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAkocmV2aXNpb24gMTAwMTYyKQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNkZWZpbmUgU1FMaXRlRGF0YWJhc2VfaAogCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgQ09NUElMRVIoTVNWQykKQEAgLTY4LDgg
KzY5LDggQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgdGFibGVFeGlzdHMoY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBjbGVhckFsbFRhYmxlcygpOwotICAgIHZvaWQgcnVuVmFjdXVtQ29tbWFu
ZCgpOwotICAgIHZvaWQgcnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CisgICAgaW50IHJ1
blZhY3V1bUNvbW1hbmQoKTsKKyAgICBpbnQgcnVuSW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7
CiAgICAgCiAgICAgYm9vbCB0cmFuc2FjdGlvbkluUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBt
X3RyYW5zYWN0aW9uSW5Qcm9ncmVzczsgfQogICAgIApAQCAtMTUzLDcgKzE1NCwxMCBAQCBwcml2
YXRlOgogCiAgICAgTXV0ZXggbV9kYXRhYmFzZUNsb3NpbmdNdXRleDsKICAgICBib29sIG1faW50
ZXJydXB0ZWQ7Ci19OyAvLyBjbGFzcyBTUUxpdGVEYXRhYmFzZQorCisgICAgaW50IG1fb3BlbkVy
cm9yOworICAgIENTdHJpbmcgbV9vcGVuRXJyb3JNZXNzYWdlOworfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0Fic3RyYWN0RGF0YWJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJzdHJhY3REYXRh
YmFzZS5jcHAJKHJldmlzaW9uIDEwMDE2MikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJz
dHJhY3REYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAi
U1FMaXRlVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTIsNiArNTMsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogc3RhdGljIGNvbnN0IGNoYXIgdmVyc2lvbktleVtdID0gIldlYktpdERhdGFi
YXNlVmVyc2lvbktleSI7CiBzdGF0aWMgY29uc3QgY2hhciBpbmZvVGFibGVOYW1lW10gPSAiX19X
ZWJLaXREYXRhYmFzZUluZm9UYWJsZV9fIjsKIAorc3RhdGljIFN0cmluZyBmb3JtYXRFcnJvck1l
c3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUVycm9yQ29kZSwgY29uc3QgY2hh
ciogc3FsaXRlRXJyb3JNZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMg
KCVkICVzKSIsIG1lc3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3FsaXRlRXJyb3JNZXNzYWdlKTsK
K30KKwogc3RhdGljIGJvb2wgcmV0cmlldmVUZXh0UmVzdWx0RnJvbURhdGFiYXNlKFNRTGl0ZURh
dGFiYXNlJiBkYiwgY29uc3QgU3RyaW5nJiBxdWVyeSwgU3RyaW5nJiByZXN1bHRTdHJpbmcpCiB7
CiAgICAgU1FMaXRlU3RhdGVtZW50IHN0YXRlbWVudChkYiwgcXVlcnkpOwpAQCAtMjQ0LDE3ICsy
NTAsMTkgQEAgU3RyaW5nIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24oKSBjb25zdAogICAgIHJl
dHVybiBnZXRDYWNoZWRWZXJzaW9uKCk7CiB9CiAKLWJvb2wgQWJzdHJhY3REYXRhYmFzZTo6cGVy
Zm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzaG91bGRTZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCitib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVy
aWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGVj
LCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKKyAgICBBU1NFUlQoZXJyb3JNZXNzYWdlLmlzRW1w
dHkoKSk7CisKICAgICBjb25zdCBpbnQgbWF4U3FsaXRlQnVzeVdhaXRUaW1lID0gMzAwMDA7CiAK
ICAgICBpZiAoIW1fc3FsaXRlRGF0YWJhc2Uub3BlbihtX2ZpbGVuYW1lLCB0cnVlKSkgewotICAg
ICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBvcGVuIGRhdGFiYXNlIGF0IHBhdGggJXMiLCBtX2Zp
bGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJy
b3JNZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSIsIG1fc3FsaXRlRGF0YWJhc2UubGFz
dEVycm9yKCksIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIGlm
ICghbV9zcWxpdGVEYXRhYmFzZS50dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKSkKLSAgICAg
ICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSBm
b3IgZGF0YWJhc2UgJXMiLCBtX2ZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTE9H
X0VSUk9SKCJVbmFibGUgdG8gdHVybiBvbiBpbmNyZW1lbnRhbCBhdXRvLXZhY3V1bSAoJWQgJXMp
IiwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJy
b3JNc2coKSk7CiAKICAgICBtX3NxbGl0ZURhdGFiYXNlLnNldEJ1c3lUaW1lb3V0KG1heFNxbGl0
ZUJ1c3lXYWl0VGltZSk7CiAKQEAgLTI5MCw3ICsyOTgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJh
c2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAgICAgICAgICAgICBTUUxpdGVUcmFuc2FjdGlvbiB0cmFu
c2FjdGlvbihtX3NxbGl0ZURhdGFiYXNlKTsKICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmJlZ2lu
KCk7CiAgICAgICAgICAgICBpZiAoIXRyYW5zYWN0aW9uLmluUHJvZ3Jlc3MoKSkgewotICAgICAg
ICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGJlZ2luIHRyYW5zYWN0aW9uIHdoaWxlIG9w
ZW5pbmcgJXMiLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgICAgICBlcnJvck1lc3NhZ2UgPSBmb3JtYXRFcnJvck1lc3NhZ2UoInVuYWJsZSB0byBvcGVu
IGRhdGFiYXNlLCBmYWlsZWQgdG8gc3RhcnQgdHJhbnNhY3Rpb24iLCBtX3NxbGl0ZURhdGFiYXNl
Lmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAg
ICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICAgICAgICAgIG1fc3FsaXRl
RGF0YWJhc2UuY2xvc2UoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMDEs
MTQgKzMwOSwxNCBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyCiAg
ICAgICAgICAgICAgICAgbV9uZXcgPSB0cnVlOwogCiAgICAgICAgICAgICAgICAgaWYgKCFtX3Nx
bGl0ZURhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgIiArIHRhYmxlTmFtZSAr
ICIgKGtleSBURVhUIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNU
IFJFUExBQ0UsdmFsdWUgVEVYVCBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiKSkgewotICAg
ICAgICAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgdGFibGUgJXMgaW4g
ZGF0YWJhc2UgJXMiLCBpbmZvVGFibGVOYW1lLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCku
ZGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JN
ZXNzYWdlKCJ1bmFibGUgdG8gb3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIGNyZWF0ZSAnaW5mbycg
dGFibGUiLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxh
c3RFcnJvck1zZygpKTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VS
UjsKICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAg
ICAgICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIGlm
ICghZ2V0VmVyc2lvbkZyb21EYXRhYmFzZShjdXJyZW50VmVyc2lvbiwgZmFsc2UpKSB7Ci0gICAg
ICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdmVyc2lvbiBmcm9t
IGRhdGFiYXNlICVzIiwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAg
ICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZm9ybWF0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSwgZmFpbGVkIHRvIHJlYWQgY3VycmVudCB2ZXJzaW9uIiwgbV9zcWxpdGVE
YXRhYmFzZS5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CiAg
ICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgICAgICAgICB0
cmFuc2FjdGlvbi5yb2xsYmFjaygpOwogICAgICAgICAgICAgICAgIG1fc3FsaXRlRGF0YWJhc2Uu
Y2xvc2UoKTsKQEAgLTMyMCw3ICszMjgsNyBAQCBib29sIEFic3RyYWN0RGF0YWJhc2U6OnBlcmZv
cm1PcGVuQW5kVmVyCiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtX25ldyB8fCBzaG91bGRTZXRW
ZXJzaW9uSW5OZXdEYXRhYmFzZSkgewogICAgICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAi
U2V0dGluZyB2ZXJzaW9uICVzIGluIGRhdGFiYXNlICVzIHRoYXQgd2FzIGp1c3QgY3JlYXRlZCIs
IG1fZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLCBkYXRhYmFzZURlYnVnTmFtZSgpLmFz
Y2lpKCkuZGF0YSgpKTsKICAgICAgICAgICAgICAgICBpZiAoIXNldFZlcnNpb25JbkRhdGFiYXNl
KG1fZXhwZWN0ZWRWZXJzaW9uLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgTE9HX0VS
Uk9SKCJGYWlsZWQgdG8gc2V0IHZlcnNpb24gJXMgaW4gZGF0YWJhc2UgJXMiLCBtX2V4cGVjdGVk
VmVyc2lvbi5hc2NpaSgpLmRhdGEoKSwgZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEo
KSk7CisgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGZvcm1hdEVycm9yTWVzc2Fn
ZSgidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIGZhaWxlZCB0byB3cml0ZSBjdXJyZW50IHZlcnNp
b24iLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RFcnJvcigpLCBtX3NxbGl0ZURhdGFiYXNlLmxhc3RF
cnJvck1zZygpKTsKICAgICAgICAgICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
ICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucm9sbGJhY2soKTsKICAgICAgICAgICAg
ICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5jbG9zZSgpOwpAQCAtMzQxLDggKzM0OSw3IEBAIGJv
b2wgQWJzdHJhY3REYXRhYmFzZTo6cGVyZm9ybU9wZW5BbmRWZXIKICAgICAvLyBJZiB0aGUgZXhw
ZWN0ZWQgdmVyc2lvbiBpc24ndCB0aGUgZW1wdHkgc3RyaW5nLCBlbnN1cmUgdGhhdCB0aGUgY3Vy
cmVudCBkYXRhYmFzZSB2ZXJzaW9uIHdlIGhhdmUgbWF0Y2hlcyB0aGF0IHZlcnNpb24uIE90aGVy
d2lzZSwgc2V0IGFuIGV4Y2VwdGlvbi4KICAgICAvLyBJZiB0aGUgZXhwZWN0ZWQgdmVyc2lvbiBp
cyB0aGUgZW1wdHkgc3RyaW5nLCB0aGVuIHdlIGFsd2F5cyByZXR1cm4gd2l0aCB3aGF0ZXZlciB2
ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSB3ZSBoYXZlLgogICAgIGlmICgoIW1fbmV3IHx8IHNob3Vs
ZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNlKSAmJiBtX2V4cGVjdGVkVmVyc2lvbi5sZW5ndGgoKSAm
JiBtX2V4cGVjdGVkVmVyc2lvbiAhPSBjdXJyZW50VmVyc2lvbikgewotICAgICAgICBMT0coU3Rv
cmFnZUFQSSwgInBhZ2UgZXhwZWN0cyB2ZXJzaW9uICVzIGZyb20gZGF0YWJhc2UgJXMsIHdoaWNo
IGFjdHVhbGx5IGhhcyB2ZXJzaW9uIG5hbWUgJXMgLSBvcGVuRGF0YWJhc2UoKSBjYWxsIHdpbGwg
ZmFpbCIsIG1fZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0YSgpLAotICAgICAgICAgICAgZGF0
YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSwgY3VycmVudFZlcnNpb24uYXNjaWkoKS5k
YXRhKCkpOworICAgICAgICBlcnJvck1lc3NhZ2UgPSAidW5hYmxlIHRvIG9wZW4gZGF0YWJhc2Us
IHZlcnNpb24gbWlzbWF0Y2gsICciICsgbV9leHBlY3RlZFZlcnNpb24gKyAiJyBkb2VzIG5vdCBt
YXRjaCB0aGUgY3VycmVudFZlcnNpb24gb2YgJyIgKyBjdXJyZW50VmVyc2lvbiArICInIjsKICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAgICAgICAgbV9zcWxpdGVEYXRhYmFzZS5j
bG9zZSgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC01MjQsOCArNTMxLDExIEBAIHZvaWQg
QWJzdHJhY3REYXRhYmFzZTo6aW5jcmVtZW50YWxWYWN1dW0KIHsKICAgICBpbnQ2NF90IGZyZWVT
cGFjZVNpemUgPSBtX3NxbGl0ZURhdGFiYXNlLmZyZWVTcGFjZVNpemUoKTsKICAgICBpbnQ2NF90
IHRvdGFsU2l6ZSA9IG1fc3FsaXRlRGF0YWJhc2UudG90YWxTaXplKCk7Ci0gICAgaWYgKHRvdGFs
U2l6ZSA8PSAxMCAqIGZyZWVTcGFjZVNpemUpCi0gICAgICAgIG1fc3FsaXRlRGF0YWJhc2UucnVu
SW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CisgICAgaWYgKHRvdGFsU2l6ZSA8PSAxMCAqIGZy
ZWVTcGFjZVNpemUpIHsKKyAgICAgICAgaW50IHJlc3VsdCA9IG1fc3FsaXRlRGF0YWJhc2UucnVu
SW5jcmVtZW50YWxWYWN1dW1Db21tYW5kKCk7CisgICAgICAgIGlmIChyZXN1bHQgIT0gU1FMUmVz
dWx0T2spCisgICAgICAgICAgICBsb2dFcnJvck1lc3NhZ2UoZm9ybWF0RXJyb3JNZXNzYWdlKCJl
cnJvciB2YWN1dW1pbmcgZGF0YWJhc2UiLCByZXN1bHQsIG1fc3FsaXRlRGF0YWJhc2UubGFzdEVy
cm9yTXNnKCkpKTsKKyAgICB9CiB9CiAKIHZvaWQgQWJzdHJhY3REYXRhYmFzZTo6aW50ZXJydXB0
KCkKQEAgLTUzOSw2ICs1NDksMTEgQEAgYm9vbCBBYnN0cmFjdERhdGFiYXNlOjppc0ludGVycnVw
dGVkKCkKICAgICByZXR1cm4gbV9zcWxpdGVEYXRhYmFzZS5pc0ludGVycnVwdGVkKCk7CiB9CiAK
K3ZvaWQgQWJzdHJhY3REYXRhYmFzZTo6bG9nRXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKK3sKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmFkZE1lc3NhZ2UoT3RoZXJN
ZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2Us
IDAsIFN0cmluZygpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJz
dHJhY3REYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQWJz
dHJhY3REYXRhYmFzZS5oCShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL0Fic3RyYWN0RGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICB2b2lkIGNsb3NlRGF0YWJhc2UoKTsKIAotICAgIHZpcnR1YWwgYm9v
bCBwZXJmb3JtT3BlbkFuZFZlcmlmeShib29sIHNob3VsZFNldFZlcnNpb25Jbk5ld0RhdGFiYXNl
LCBFeGNlcHRpb25Db2RlJiBlYyk7CisgICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVy
aWZ5KGJvb2wgc2hvdWxkU2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBT
dHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICBib29sIGdldFZlcnNpb25Gcm9tRGF0YWJhc2Uo
U3RyaW5nJiB2ZXJzaW9uLCBib29sIHNob3VsZENhY2hlVmVyc2lvbiA9IHRydWUpOwogICAgIGJv
b2wgc2V0VmVyc2lvbkluRGF0YWJhc2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uLCBib29sIHNob3Vs
ZENhY2hlVmVyc2lvbiA9IHRydWUpOwpAQCAtMTA1LDYgKzEwNSw4IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHNldENhY2hlZFZlcnNpb24oY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBnZXRBY3R1
YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oU3RyaW5nJiB2ZXJzaW9uKTsKIAorICAgIHZvaWQgbG9n
RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZGF0YWJhc2VJbmZvVGFibGVOYW1lKCk7CiAKICAgICBSZWZQdHI8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dD4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAJKHJldmlzaW9uIDEwMDE2
MikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NywxNiArNDcsMTcgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBl
cjo6cGVyZm9ybVByZWZsaQogewogICAgIEFTU0VSVCh0cmFuc2FjdGlvbiAmJiB0cmFuc2FjdGlv
bi0+ZGF0YWJhc2UoKSk7CiAKLSAgICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKKyAgICBEYXRhYmFz
ZSogZGF0YWJhc2UgPSB0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKTsKIAotICAgIGlmICghdHJhbnNh
Y3Rpb24tPmRhdGFiYXNlKCktPmdldFZlcnNpb25Gcm9tRGF0YWJhc2UoYWN0dWFsVmVyc2lvbikp
IHsKLSAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gcmV0cmlldmUgYWN0dWFsIGN1cnJlbnQg
dmVyc2lvbiBmcm9tIGRhdGFiYXNlIik7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byB2ZXJpZnkgY3VycmVudCB2
ZXJzaW9uIG9mIGRhdGFiYXNlIik7CisgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CisgICAgaWYg
KCFkYXRhYmFzZS0+Z2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgeworICAg
ICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIs
ICJ1bmFibGUgdG8gcmVhZCB0aGUgY3VycmVudCB2ZXJzaW9uIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9y
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlLT5zcWxp
dGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVyc2lvbikgewotICAgICAgICBM
T0dfRVJST1IoIk9sZCB2ZXJzaW9uIGRvZXNuJ3QgbWF0Y2ggYWN0dWFsIHZlcnNpb24iKTsKICAg
ICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJS
LCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3Vt
ZW50IGRvIG5vdCBtYXRjaCIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtNjgs
MTMgKzY5LDE2IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1Qb3N0ZmwKIHsK
ICAgICBBU1NFUlQodHJhbnNhY3Rpb24gJiYgdHJhbnNhY3Rpb24tPmRhdGFiYXNlKCkpOwogCi0g
ICAgaWYgKCF0cmFuc2FjdGlvbi0+ZGF0YWJhc2UoKS0+c2V0VmVyc2lvbkluRGF0YWJhc2UobV9u
ZXdWZXJzaW9uKSkgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzZXQgbmV3IHZlcnNp
b24gaW4gZGF0YWJhc2UiKTsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIHNldCBuZXcgdmVyc2lvbiBpbiBkYXRh
YmFzZSIpOworICAgIERhdGFiYXNlKiBkYXRhYmFzZSA9IHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgp
OworCisgICAgaWYgKCFkYXRhYmFzZS0+c2V0VmVyc2lvbkluRGF0YWJhc2UobV9uZXdWZXJzaW9u
KSkgeworICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5L
Tk9XTl9FUlIsICJ1bmFibGUgdG8gc2V0IG5ldyB2ZXJzaW9uIGluIGRhdGFiYXNlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNl
KCkubGFzdEVycm9yKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIAotICAgIHRyYW5zYWN0aW9uLT5kYXRhYmFzZSgpLT5zZXRFeHBlY3Rl
ZFZlcnNpb24obV9uZXdWZXJzaW9uKTsKKyAgICBkYXRhYmFzZS0+c2V0RXhwZWN0ZWRWZXJzaW9u
KG1fbmV3VmVyc2lvbik7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsOCArOTgsOSBAQCBQYXNz
UmVmUHRyPERhdGFiYXNlPiBEYXRhYmFzZTo6b3BlbkRhdGFiCiAKICAgICBSZWZQdHI8RGF0YWJh
c2U+IGRhdGFiYXNlID0gYWRvcHRSZWYobmV3IERhdGFiYXNlKGNvbnRleHQsIG5hbWUsIGV4cGVj
dGVkVmVyc2lvbiwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpKTsKIAotICAgIGlmICghZGF0
YWJhc2UtPm9wZW5BbmRWZXJpZnlWZXJzaW9uKCFjcmVhdGlvbkNhbGxiYWNrLCBlKSkgewotICAg
ICAgICBMT0coU3RvcmFnZUFQSSwgIkZhaWxlZCB0byBvcGVuIGFuZCB2ZXJpZnkgdmVyc2lvbiAo
ZXhwZWN0ZWQgJXMpIG9mIGRhdGFiYXNlICVzIiwgZXhwZWN0ZWRWZXJzaW9uLmFzY2lpKCkuZGF0
YSgpLCBkYXRhYmFzZS0+ZGF0YWJhc2VEZWJ1Z05hbWUoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAg
U3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIWRhdGFiYXNlLT5vcGVuQW5kVmVyaWZ5VmVy
c2lvbighY3JlYXRpb25DYWxsYmFjaywgZSwgZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkYXRh
YmFzZS0+bG9nRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIERhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlcigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRhYmFzZS5nZXQoKSk7CiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KQEAgLTE3MywxNCArMTc0LDE0IEBAIFN0cmluZyBEYXRhYmFz
ZTo6dmVyc2lvbigpIGNvbnN0CiAgICAgcmV0dXJuIEFic3RyYWN0RGF0YWJhc2U6OnZlcnNpb24o
KTsKIH0KIAotYm9vbCBEYXRhYmFzZTo6b3BlbkFuZFZlcmlmeVZlcnNpb24oYm9vbCBzZXRWZXJz
aW9uSW5OZXdEYXRhYmFzZSwgRXhjZXB0aW9uQ29kZSYgZSkKK2Jvb2wgRGF0YWJhc2U6Om9wZW5B
bmRWZXJpZnlWZXJzaW9uKGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNv
ZGUmIGUsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewogICAgIERhdGFiYXNlVGFza1N5bmNocm9u
aXplciBzeW5jaHJvbml6ZXI7CiAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmRh
dGFiYXNlVGhyZWFkKCkgfHwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5kYXRhYmFzZVRocmVh
ZCgpLT50ZXJtaW5hdGlvblJlcXVlc3RlZCgmc3luY2hyb25pemVyKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7Ci0gICAgT3duUHRyPERhdGFiYXNl
T3BlblRhc2s+IHRhc2sgPSBEYXRhYmFzZU9wZW5UYXNrOjpjcmVhdGUodGhpcywgc2V0VmVyc2lv
bkluTmV3RGF0YWJhc2UsICZzeW5jaHJvbml6ZXIsIGUsIHN1Y2Nlc3MpOworICAgIE93blB0cjxE
YXRhYmFzZU9wZW5UYXNrPiB0YXNrID0gRGF0YWJhc2VPcGVuVGFzazo6Y3JlYXRlKHRoaXMsIHNl
dFZlcnNpb25Jbk5ld0RhdGFiYXNlLCAmc3luY2hyb25pemVyLCBlLCBlcnJvck1lc3NhZ2UsIHN1
Y2Nlc3MpOwogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0YWJhc2VUaHJlYWQoKS0+
c2NoZWR1bGVJbW1lZGlhdGVUYXNrKHRhc2sucmVsZWFzZSgpKTsKICAgICBzeW5jaHJvbml6ZXIu
d2FpdEZvclRhc2tDb21wbGV0aW9uKCk7CiAKQEAgLTIzOCw5ICsyMzksOSBAQCB1bnNpZ25lZCBs
b25nIGxvbmcgRGF0YWJhc2U6Om1heGltdW1TaXplCiAgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tl
cjo6dHJhY2tlcigpLmdldE1heFNpemVGb3JEYXRhYmFzZSh0aGlzKTsKIH0KIAotYm9vbCBEYXRh
YmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkoYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwg
RXhjZXB0aW9uQ29kZSYgZSkKK2Jvb2wgRGF0YWJhc2U6OnBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJv
b2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmIGUsIFN0cmluZyYgZXJy
b3JNZXNzYWdlKQogewotICAgIGlmIChBYnN0cmFjdERhdGFiYXNlOjpwZXJmb3JtT3BlbkFuZFZl
cmlmeShzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgZSkpIHsKKyAgICBpZiAoQWJzdHJhY3REYXRh
YmFzZTo6cGVyZm9ybU9wZW5BbmRWZXJpZnkoc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIGUsIGVy
cm9yTWVzc2FnZSkpIHsKICAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0
YWJhc2VUaHJlYWQoKSkKICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGF0
YWJhc2VUaHJlYWQoKS0+cmVjb3JkRGF0YWJhc2VPcGVuKHRoaXMpOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5oCShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1LDggKzk1LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxs
YmFjaz4sIFBhc3NSZWZQdHI8U1FMVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrPiwKICAgICAgICAg
ICAgICAgICAgICAgICAgIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ss
IGJvb2wgcmVhZE9ubHkpOwogCi0gICAgYm9vbCBvcGVuQW5kVmVyaWZ5VmVyc2lvbihib29sIHNl
dFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCBib29s
IHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICBib29sIG9wZW5BbmRWZXJpZnlWZXJzaW9uKGJvb2wgc2V0VmVyc2lv
bkluTmV3RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7Cisg
ICAgdmlydHVhbCBib29sIHBlcmZvcm1PcGVuQW5kVmVyaWZ5KGJvb2wgc2V0VmVyc2lvbkluTmV3
RGF0YWJhc2UsIEV4Y2VwdGlvbkNvZGUmLCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7CiAKICAgICB2
b2lkIGluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZCgpOwogICAgIHZvaWQgc2NoZWR1bGVU
cmFuc2FjdGlvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmNw
cAkocmV2aXNpb24gMTAwMTYyKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5
bmMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw4ICs1OSw5IEBAIFBhc3NSZWZQdHI8RGF0YWJh
c2VTeW5jPiBEYXRhYmFzZVN5bmM6Om8KIAogICAgIFJlZlB0cjxEYXRhYmFzZVN5bmM+IGRhdGFi
YXNlID0gYWRvcHRSZWYobmV3IERhdGFiYXNlU3luYyhjb250ZXh0LCBuYW1lLCBleHBlY3RlZFZl
cnNpb24sIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSk7CiAKLSAgICBpZiAoIWRhdGFiYXNl
LT5wZXJmb3JtT3BlbkFuZFZlcmlmeSghY3JlYXRpb25DYWxsYmFjaywgZWMpKSB7Ci0gICAgICAg
IExPRyhTdG9yYWdlQVBJLCAiRmFpbGVkIHRvIG9wZW4gYW5kIHZlcmlmeSB2ZXJzaW9uIChleHBl
Y3RlZCAlcykgb2YgZGF0YWJhc2UgJXMiLCBleHBlY3RlZFZlcnNpb24uYXNjaWkoKS5kYXRhKCks
IGRhdGFiYXNlLT5kYXRhYmFzZURlYnVnTmFtZSgpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICBTdHJp
bmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghZGF0YWJhc2UtPnBlcmZvcm1PcGVuQW5kVmVyaWZ5
KCFjcmVhdGlvbkNhbGxiYWNrLCBlYywgZXJyb3JNZXNzYWdlKSkgeworICAgICAgICBkYXRhYmFz
ZS0+bG9nRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7CiAgICAgICAgIERhdGFiYXNlVHJhY2tl
cjo6dHJhY2tlcigpLnJlbW92ZU9wZW5EYXRhYmFzZShkYXRhYmFzZS5nZXQoKSk7CiAgICAgICAg
IHJldHVybiAwOwogICAgIH0KQEAgLTk2LDM5ICs5Nyw0OSBAQCB2b2lkIERhdGFiYXNlU3luYzo6
Y2hhbmdlVmVyc2lvbihjb25zdCBTCiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+aXNDb250ZXh0VGhyZWFkKCkpOwogCiAgICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNh
Y3Rpb25JblByb2dyZXNzKCkpIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxl
IHRvIGNoYW5nZVZlcnNpb24gZnJvbSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBl
YyA9IFNRTEV4Y2VwdGlvbjo6REFUQUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2Fj
dGlvblN5bmM6OmNyZWF0ZSh0aGlzLCBjaGFuZ2VWZXJzaW9uQ2FsbGJhY2ssIGZhbHNlKTsKLSAg
ICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpKQorICAgIGlmICgoZWMgPSB0cmFuc2Fj
dGlvbi0+YmVnaW4oKSkpIHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNF
bXB0eSgpKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFN0cmluZyBhY3R1YWxWZXJz
aW9uOwogICAgIGlmICghZ2V0VmVyc2lvbkZyb21EYXRhYmFzZShhY3R1YWxWZXJzaW9uKSkgewor
ICAgICAgICBzZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB0aGUgY3VycmVudCB2
ZXJzaW9uIiwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5s
YXN0RXJyb3JNc2coKSk7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG9sZFZl
cnNpb24pIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiY3VycmVudCB2ZXJzaW9uIG9m
IHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOwog
ICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6VkVSU0lPTl9FUlI7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkpCisgICAgaWYg
KChlYyA9IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpKSB7CisgICAgICAgIEFTU0VSVCghbGFzdEVy
cm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBp
ZiAoIXNldFZlcnNpb25JbkRhdGFiYXNlKG5ld1ZlcnNpb24pKSB7CisgICAgICAgIHNldExhc3RF
cnJvck1lc3NhZ2UoInVuYWJsZSB0byBzZXQgdGhlIG5ldyB2ZXJzaW9uIiwgc3FsaXRlRGF0YWJh
c2UoKS5sYXN0RXJyb3IoKSwgc3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAg
ICAgIGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+Y29tbWl0KCkpKSB7CisgICAgICAgIEFT
U0VSVCghbGFzdEVycm9yTWVzc2FnZSgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHNldENhY2hlZFZl
cnNpb24ob2xkVmVyc2lvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzZXRFeHBl
Y3RlZFZlcnNpb24obmV3VmVyc2lvbik7CisgICAgc2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CiB9
CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjp0cmFuc2FjdGlvbihQYXNzUmVmUHRyPFNRTFRyYW5zYWN0
aW9uU3luY0NhbGxiYWNrPiBjYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0xNDYsMTMg
KzE1NywxOCBAQCB2b2lkIERhdGFiYXNlU3luYzo6cnVuVHJhbnNhY3Rpb24oUGFzc1JlCiAgICAg
QVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpOwogCiAg
ICAgaWYgKHNxbGl0ZURhdGFiYXNlKCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpIHsKKyAgICAg
ICAgc2V0TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIHN0YXJ0IGEgdHJhbnNhY3Rpb24gZnJv
bSB3aXRoaW4gYSB0cmFuc2FjdGlvbiIpOwogICAgICAgICBlYyA9IFNRTEV4Y2VwdGlvbjo6REFU
QUJBU0VfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgUmVmUHRyPFNRTFRyYW5z
YWN0aW9uU3luYz4gdHJhbnNhY3Rpb24gPSBTUUxUcmFuc2FjdGlvblN5bmM6OmNyZWF0ZSh0aGlz
LCBjYWxsYmFjaywgcmVhZE9ubHkpOwotICAgIGlmICgoZWMgPSB0cmFuc2FjdGlvbi0+YmVnaW4o
KSkgfHwgKGVjID0gdHJhbnNhY3Rpb24tPmV4ZWN1dGUoKSkgfHwgKGVjID0gdHJhbnNhY3Rpb24t
PmNvbW1pdCgpKSkKKyAgICBpZiAoKGVjID0gdHJhbnNhY3Rpb24tPmJlZ2luKCkpIHx8IChlYyA9
IHRyYW5zYWN0aW9uLT5leGVjdXRlKCkpIHx8IChlYyA9IHRyYW5zYWN0aW9uLT5jb21taXQoKSkp
IHsKKyAgICAgICAgQVNTRVJUKCFsYXN0RXJyb3JNZXNzYWdlKCkuaXNFbXB0eSgpKTsKICAgICAg
ICAgdHJhbnNhY3Rpb24tPnJvbGxiYWNrKCk7CisgICAgfQorCisgICAgc2V0TGFzdEVycm9yTWVz
c2FnZSgiIik7CiB9CiAKIHZvaWQgRGF0YWJhc2VTeW5jOjptYXJrQXNEZWxldGVkQW5kQ2xvc2Uo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5oCShyZXZpc2lvbiAxMDAx
NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlU3luYy5oCSh3b3JraW5nIGNv
cHkpCkBAIC02NCwxMCArNjQsMjMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYXJrQXNE
ZWxldGVkQW5kQ2xvc2UoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VJbW1lZGlhdGVseSgpOwog
CisgICAgY29uc3QgU3RyaW5nJiBsYXN0RXJyb3JNZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0RXJyb3JNZXNzYWdlOyB9CisgICAgdm9pZCBzZXRMYXN0RXJyb3JNZXNzYWdlKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkgeyBtX2xhc3RFcnJvck1lc3NhZ2UgPSBtZXNzYWdlOyB9CisgICAgdm9p
ZCBzZXRMYXN0RXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2Rl
KQorICAgIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZShTdHJpbmc6OmZvcm1hdCgiJXMg
KCVkKSIsIG1lc3NhZ2UsIHNxbGl0ZUNvZGUpKTsKKyAgICB9CisgICAgdm9pZCBzZXRMYXN0RXJy
b3JNZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlLCBjb25zdCBjaGFy
KiBzcWxpdGVNZXNzYWdlKQorICAgIHsKKyAgICAgICAgc2V0TGFzdEVycm9yTWVzc2FnZShTdHJp
bmc6OmZvcm1hdCgiJXMgKCVkLCAlcykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNz
YWdlKSk7CisgICAgfQorCiBwcml2YXRlOgogICAgIERhdGFiYXNlU3luYyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkVmVy
c2lvbiwKICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWdu
ZWQgbG9uZyBlc3RpbWF0ZWRTaXplKTsKICAgICB2b2lkIHJ1blRyYW5zYWN0aW9uKFBhc3NSZWZQ
dHI8U1FMVHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2s+LCBib29sIHJlYWRPbmx5LCBFeGNlcHRpb25D
b2RlJik7CisKKyAgICBTdHJpbmcgbV9sYXN0RXJyb3JNZXNzYWdlOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5bmMu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VTeW5jLmlk
bAkocmV2aXNpb24gMTAwMTYyKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVN5
bmMuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBAIG1vZHVsZSBzdG9yYWdlIHsK
ICAgICAgICAgTm9TdGF0aWNUYWJsZXMKICAgICBdIERhdGFiYXNlU3luYyB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmVyc2lvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBsYXN0RXJyb3JNZXNzYWdlOwogICAgICAgICB2b2lkIGNoYW5nZVZl
cnNpb24oaW4gRE9NU3RyaW5nIG9sZFZlcnNpb24sIGluIERPTVN0cmluZyBuZXdWZXJzaW9uLCBp
biBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxsYmFj
aykgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgdHJhbnNhY3Rpb24oaW4gW0Nh
bGxiYWNrXSBTUUxUcmFuc2FjdGlvblN5bmNDYWxsYmFjayBjYWxsYmFjaykgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgcmVhZFRyYW5zYWN0aW9uKGluIFtDYWxsYmFja10gU1FM
VHJhbnNhY3Rpb25TeW5jQ2FsbGJhY2sgY2FsbGJhY2spIHJhaXNlcyhET01FeGNlcHRpb24pOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUYXNrLmNwcAkocmV2aXNpb24gMTAw
MTYyKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05OCwxMCArOTgsMTEgQEAgdm9pZCBEYXRhYmFzZVRhc2s6OnBlcmZvcm1UYXNr
KCkKIC8vICoqKiBEYXRhYmFzZU9wZW5UYXNrICoqKgogLy8gT3BlbnMgdGhlIGRhdGFiYXNlIGZp
bGUgYW5kIHZlcmlmaWVzIHRoZSB2ZXJzaW9uIG1hdGNoZXMgdGhlIGV4cGVjdGVkIHZlcnNpb24u
CiAKLURhdGFiYXNlOjpEYXRhYmFzZU9wZW5UYXNrOjpEYXRhYmFzZU9wZW5UYXNrKERhdGFiYXNl
KiBkYXRhYmFzZSwgYm9vbCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3lu
Y2hyb25pemVyKiBzeW5jaHJvbml6ZXIsIEV4Y2VwdGlvbkNvZGUmIGNvZGUsIGJvb2wmIHN1Y2Nl
c3MpCitEYXRhYmFzZTo6RGF0YWJhc2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuVGFzayhEYXRhYmFz
ZSogZGF0YWJhc2UsIGJvb2wgc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5
bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNlcHRpb25Db2RlJiBjb2RlLCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgYm9vbCYgc3VjY2VzcykKICAgICA6IERhdGFiYXNlVGFzayhkYXRhYmFzZSwg
c3luY2hyb25pemVyKQogICAgICwgbV9zZXRWZXJzaW9uSW5OZXdEYXRhYmFzZShzZXRWZXJzaW9u
SW5OZXdEYXRhYmFzZSkKICAgICAsIG1fY29kZShjb2RlKQorICAgICwgbV9lcnJvck1lc3NhZ2Uo
ZXJyb3JNZXNzYWdlKQogICAgICwgbV9zdWNjZXNzKHN1Y2Nlc3MpCiB7CiAgICAgQVNTRVJUKHN5
bmNocm9uaXplcik7IC8vIEEgdGFzayB3aXRoIG91dHB1dCBwYXJhbWV0ZXJzIGlzIHN1cHBvc2Vk
IHRvIGJlIHN5bmNocm9ub3VzLgpAQCAtMTA5LDcgKzExMCwxMCBAQCBEYXRhYmFzZTo6RGF0YWJh
c2VPcGVuVGFzazo6RGF0YWJhc2VPcGVuCiAKIHZvaWQgRGF0YWJhc2U6OkRhdGFiYXNlT3BlblRh
c2s6OmRvUGVyZm9ybVRhc2soKQogewotICAgIG1fc3VjY2VzcyA9IGRhdGFiYXNlKCktPnBlcmZv
cm1PcGVuQW5kVmVyaWZ5KG1fc2V0VmVyc2lvbkluTmV3RGF0YWJhc2UsIG1fY29kZSk7CisgICAg
U3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBtX3N1Y2Nlc3MgPSBkYXRhYmFzZSgpLT5wZXJmb3Jt
T3BlbkFuZFZlcmlmeShtX3NldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBtX2NvZGUsIGVycm9yTWVz
c2FnZSk7CisgICAgaWYgKCFtX3N1Y2Nlc3MpCisgICAgICAgIG1fZXJyb3JNZXNzYWdlID0gZXJy
b3JNZXNzYWdlLmlzb2xhdGVkQ29weSgpOwogfQogCiAjaWYgIUxPR19ESVNBQkxFRApJbmRleDog
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZVRhc2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCShyZXZpc2lvbiAxMDAxNjIpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlVGFzay5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDAsMTMgKzEwMCwxMyBAQCBwcml2YXRlOgogCiBjbGFzcyBEYXRhYmFzZTo6RGF0YWJhc2VPcGVu
VGFzayA6IHB1YmxpYyBEYXRhYmFzZVRhc2sgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPERhdGFiYXNlT3BlblRhc2s+IGNyZWF0ZShEYXRhYmFzZSogZGIsIGJvb2wgc2V0VmVyc2lv
bkluTmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBF
eGNlcHRpb25Db2RlJiBjb2RlLCBib29sJiBzdWNjZXNzKQorICAgIHN0YXRpYyBQYXNzT3duUHRy
PERhdGFiYXNlT3BlblRhc2s+IGNyZWF0ZShEYXRhYmFzZSogZGIsIGJvb2wgc2V0VmVyc2lvbklu
TmV3RGF0YWJhc2UsIERhdGFiYXNlVGFza1N5bmNocm9uaXplciogc3luY2hyb25pemVyLCBFeGNl
cHRpb25Db2RlJiBjb2RlLCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgYm9vbCYgc3VjY2VzcykKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0YWJhc2VPcGVuVGFzayhkYiwgc2V0
VmVyc2lvbkluTmV3RGF0YWJhc2UsIHN5bmNocm9uaXplciwgY29kZSwgc3VjY2VzcykpOworICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGFiYXNlT3BlblRhc2soZGIsIHNldFZlcnNpb25J
bk5ld0RhdGFiYXNlLCBzeW5jaHJvbml6ZXIsIGNvZGUsIGVycm9yTWVzc2FnZSwgc3VjY2Vzcykp
OwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBEYXRhYmFzZU9wZW5UYXNrKERhdGFiYXNlKiwgYm9v
bCBzZXRWZXJzaW9uSW5OZXdEYXRhYmFzZSwgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiwgRXhj
ZXB0aW9uQ29kZSYsIGJvb2wmIHN1Y2Nlc3MpOworICAgIERhdGFiYXNlT3BlblRhc2soRGF0YWJh
c2UqLCBib29sIHNldFZlcnNpb25Jbk5ld0RhdGFiYXNlLCBEYXRhYmFzZVRhc2tTeW5jaHJvbml6
ZXIqLCBFeGNlcHRpb25Db2RlJiwgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGJvb2wmIHN1Y2Nlc3Mp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRvUGVyZm9ybVRhc2soKTsKICNpZiAhTE9HX0RJU0FCTEVE
CkBAIC0xMTUsNiArMTE1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9zZXRWZXJzaW9uSW5O
ZXdEYXRhYmFzZTsKICAgICBFeGNlcHRpb25Db2RlJiBtX2NvZGU7CisgICAgU3RyaW5nJiBtX2Vy
cm9yTWVzc2FnZTsKICAgICBib29sJiBtX3N1Y2Nlc3M7CiB9OwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1NRTEVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TUUxFcnJvci5oCShyZXZpc2lvbiAxMDAxNjIpCisrKyBTb3VyY2UvV2ViQ29yZS9zdG9y
YWdlL1NRTEVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDE0IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIFNRTEVycm9yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFNRTEVycm9yPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNy
ZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTUUxFcnJvcihjb2RlLCBtZXNzYWdlKSk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGlu
dCBzcWxpdGVDb2RlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBTdHJpbmc6
OmZvcm1hdCgiJXMgKCVkKSIsIG1lc3NhZ2UsIHNxbGl0ZUNvZGUpKTsKKyAgICB9CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBjaGFy
KiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSwgY29uc3QgY2hhciogc3FsaXRlTWVzc2FnZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCAl
cykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7CisgICAgfQogCiAgICAg
dW5zaWduZWQgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQogICAgIFN0cmluZyBtZXNz
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlLmlzb2xhdGVkQ29weSgpOyB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxMDAxNjIpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1NRTFN0YXRlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc4LDcgKzc4LDEwIEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlKiBk
YikKIAogICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgTE9HKFN0b3Jh
Z2VBUEksICJVbmFibGUgdG8gdmVyaWZ5IGNvcnJlY3RuZXNzIG9mIHN0YXRlbWVudCAlcyAtIGVy
cm9yICVpICglcykiLCBtX3N0YXRlbWVudC5hc2NpaSgpLmRhdGEoKSwgcmVzdWx0LCBkYXRhYmFz
ZS0+bGFzdEVycm9yTXNnKCkpOwotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShy
ZXN1bHQgPT0gU1FMUmVzdWx0SW50ZXJydXB0ID8gU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiA6IFNR
TEVycm9yOjpTWU5UQVhfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICBp
ZiAocmVzdWx0ID09IFNRTFJlc3VsdEludGVycnVwdCkKKyAgICAgICAgICAgIG1fZXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJjb3VsZCBub3QgcHJlcGFy
ZSBzdGF0ZW1lbnQiLCByZXN1bHQsICJpbnRlcnJ1cHRlZCIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwg
ImNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCIsIHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJv
ck1zZygpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtOTksNyArMTAyLDcg
QEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UqIGRiKQogCiAgICAgICAgIGlm
IChyZXN1bHQgIT0gU1FMUmVzdWx0T2spIHsKICAgICAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAi
RmFpbGVkIHRvIGJpbmQgdmFsdWUgaW5kZXggJWkgdG8gc3RhdGVtZW50IGZvciBxdWVyeSAnJXMn
IiwgaSArIDEsIG1fc3RhdGVtZW50LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIG1fZXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFiYXNlLT5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGJpbmQgdmFsdWUiLCByZXN1bHQsIGRh
dGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMjMsNyArMTI2LDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1
dGUoRGF0YWJhc2UqIGRiKQogICAgICAgICB9IHdoaWxlIChyZXN1bHQgPT0gU1FMUmVzdWx0Um93
KTsKIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpIHsKLSAgICAgICAgICAg
IG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsIGRhdGFi
YXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNy
ZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291bGQgbm90IGl0ZXJhdGUgcmVzdWx0cyIs
IHJlc3VsdCwgZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAocmVzdWx0ID09IFNRTFJlc3VsdERvbmUp
IHsKQEAgLTEzNSw3ICsxMzgsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFz
ZSogZGIpCiAgICAgICAgIHNldEZhaWx1cmVEdWVUb1F1b3RhKCk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9IGVsc2UgewotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6REFUQUJBU0VfRVJSLCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOworICAgICAg
ICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAiY291
bGQgbm90IGV4ZWN1dGUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNn
KCkpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdG9yYWdlL1NRTFN0YXRlbWVudFN5bmMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHJldmlzaW9uIDEwMDE2MikKKysrIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMU3RhdGVtZW50U3luYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYxLDExICs2MSwxMyBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50
U3luCiAgICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5wcmVwYXJlKCk7CiAgICAgaWYgKHJlc3Vs
dCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICBlYyA9IChyZXN1bHQgPT0gU1FMUmVzdWx0SW50
ZXJydXB0ID8gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlIgOiBTUUxFeGNlcHRpb246OlNZTlRB
WF9FUlIpOworICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50IiwgcmVzdWx0LCBkYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICByZXR1cm4gMDsKICAgICB9CiAKICAgICBpZiAoc3RhdGVtZW50LmJpbmRQYXJhbWV0ZXJDb3Vu
dCgpICE9IG1fYXJndW1lbnRzLnNpemUoKSkgewogICAgICAgICBlYyA9IChkYi0+aXNJbnRlcnJ1
cHRlZCgpPyBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUiA6IFNRTEV4Y2VwdGlvbjo6U1lOVEFY
X0VSUik7CisgICAgICAgIGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJudW1iZXIgb2YgJz8ncyBp
biBzdGF0ZW1lbnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50Iik7CiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIApAQCAtNzMsMTEgKzc1LDEzIEBAIFBhc3NSZWZQdHI8U1FM
UmVzdWx0U2V0PiBTUUxTdGF0ZW1lbnRTeW4KICAgICAgICAgcmVzdWx0ID0gc3RhdGVtZW50LmJp
bmRWYWx1ZShpICsgMSwgbV9hcmd1bWVudHNbaV0pOwogICAgICAgICBpZiAocmVzdWx0ID09IFNR
TFJlc3VsdEZ1bGwpIHsKICAgICAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpRVU9UQV9FUlI7
CisgICAgICAgICAgICBkYi0+c2V0TGFzdEVycm9yTWVzc2FnZSgidGhlcmUgd2FzIG5vdCBlbm91
Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UiKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRPaykgewogICAgICAgICAg
ICAgZWMgPSBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICAgICAgICAgIGRiLT5zZXRM
YXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgYmluZCB2YWx1ZSIsIHJlc3VsdCwgZGF0YWJhc2Ut
Pmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAg
fQpAQCAtMTAyLDYgKzEwNiw3IEBAIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxTdGF0ZW1l
bnRTeW4KIAogICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpIHsKICAgICAgICAg
ICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAgICAgICBkYi0+c2V0
TGFzdEVycm9yTWVzc2FnZSgiY291bGQgbm90IGl0ZXJhdGUgcmVzdWx0cyIsIHJlc3VsdCwgZGF0
YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9
CiAgICAgfSBlbHNlIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0RG9uZSkgewpAQCAtMTExLDkgKzEx
NiwxMSBAQCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMU3RhdGVtZW50U3luCiAgICAgfSBl
bHNlIGlmIChyZXN1bHQgPT0gU1FMUmVzdWx0RnVsbCkgewogICAgICAgICAvLyBRdW90YSBlcnJv
ciwgdGhlIGRlbGVnYXRlIHdpbGwgYmUgYXNrZWQgZm9yIG1vcmUgc3BhY2UgYW5kIHRoaXMgc3Rh
dGVtZW50IG1pZ2h0IGJlIHJlLXJ1bi4KICAgICAgICAgZWMgPSBTUUxFeGNlcHRpb246OlFVT1RB
X0VSUjsKKyAgICAgICAgZGItPnNldExhc3RFcnJvck1lc3NhZ2UoInRoZXJlIHdhcyBub3QgZW5v
dWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpEQVRBQkFTRV9FUlI7CisgICAgICAg
IGRiLT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJjb3VsZCBub3QgZXhlY3V0ZSBzdGF0ZW1lbnQiLCBy
ZXN1bHQsIGRhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHJl
dmlzaW9uIDEwMDE2MikKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjUsOCArMjY1LDkgQEAgdm9pZCBTUUxUcmFuc2FjdGlv
bjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIFRyYW5zYWN0aW9uIFN0ZXBzIDErMiAtIE9w
ZW4gYSB0cmFuc2FjdGlvbiB0byB0aGUgZGF0YWJhc2UsIGp1bXBpbmcgdG8gdGhlIGVycm9yIGNh
bGxiYWNrIGlmIHRoYXQgZmFpbHMKICAgICBpZiAoIW1fc3FsaXRlVHJhbnNhY3Rpb24tPmluUHJv
Z3Jlc3MoKSkgewogICAgICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCku
dHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gYmVnaW4g
dHJhbnNhY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2Ut
PnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBtX3NxbGl0ZVRyYW5z
YWN0aW9uLmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rp
b24gdG8gdGhlIGRhdGFiYXNlIik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoZmFs
c2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjc2LDEwICsyNzcsMTEgQEAgdm9pZCBT
UUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIC8vIHRoZSBhY3R1YWwgdmVy
c2lvbi4gSW4gc2luZ2xlLXByb2Nlc3MgYnJvd3NlcnMsIHRoaXMgaXMganVzdCBhIG1hcCBsb29r
dXAuCiAgICAgU3RyaW5nIGFjdHVhbFZlcnNpb247CiAgICAgaWYgKCFtX2RhdGFiYXNlLT5nZXRB
Y3R1YWxWZXJzaW9uRm9yVHJhbnNhY3Rpb24oYWN0dWFsVmVyc2lvbikpIHsKKyAgICAgICAgbV90
cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJS
LCAidW5hYmxlIHRvIHJlYWQgdmVyc2lvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3Io
KSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
IG1fZGF0YWJhc2UtPmRpc2FibGVBdXRob3JpemVyKCk7CiAgICAgICAgIG1fc3FsaXRlVHJhbnNh
Y3Rpb24uY2xlYXIoKTsKICAgICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwot
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpE
QVRBQkFTRV9FUlIsICJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIik7CiAgICAgICAgIGhhbmRsZVRy
YW5zYWN0aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjkzLDgg
KzI5NSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFAKICAgICAg
ICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlv
bkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VyZWQgc2V0dGluZyB1
cCB0cmFuc2FjdGlvbiIpOwotCisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJl
ZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0Iik7CiAgICAgICAgIGhhbmRsZVRyYW5zYWN0
aW9uRXJyb3IoZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDcwLDcgKzQ3MSw3
IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQKICAgICBpZiAobV93
cmFwcGVyICYmICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KHRoaXMpKSB7CiAgICAgICAg
IG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYg
KCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2Nj
dXJlZCBzZXR0aW5nIHVwIHRyYW5zYWN0aW9uIik7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24g
ZXJyb3Igb2NjdXJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCIpOwogICAgICAgICBo
YW5kbGVUcmFuc2FjdGlvbkVycm9yKGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTQ4Nyw3ICs0ODgsOCBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0
CiAgICAgICAgIGlmIChtX3dyYXBwZXIpCiAgICAgICAgICAgICBtX3dyYXBwZXItPmhhbmRsZUNv
bW1pdEZhaWxlZEFmdGVyUG9zdGZsaWdodCh0aGlzKTsKICAgICAgICAgbV9zdWNjZXNzQ2FsbGJh
Y2tXcmFwcGVyLmNsZWFyKCk7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgImZhaWxlZCB0byBjb21taXQgdGhlIHRy
YW5zYWN0aW9uIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInVuYWJsZSB0byBjb21taXQgdHJhbnNhY3Rpb24i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJh
c2UtPnNxbGl0ZURhdGFiYXNlKCkubGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPnNxbGl0ZURhdGFi
YXNlKCkubGFzdEVycm9yTXNnKCkpOwogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKGZh
bHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1NRTFRyYW5zYWN0aW9uU3luYy5jcHAJKHJldmlzaW9uIDEwMDE2MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb25TeW5jLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNzUsMTIgKzc1LDE3IEBAIFNRTFRyYW5zYWN0aW9uU3luYzo6flNRTFRyYW5zYWN0aW9uU3lu
YygKIFBhc3NSZWZQdHI8U1FMUmVzdWx0U2V0PiBTUUxUcmFuc2FjdGlvblN5bmM6OmV4ZWN1dGVT
UUwoY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFy
Z3VtZW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOworCisgICAgbV9kYXRh
YmFzZS0+c2V0TGFzdEVycm9yTWVzc2FnZSgiIik7CisKICAgICBpZiAoIW1fZGF0YWJhc2UtPm9w
ZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5v
dCBleGVjdXRlU1FMIGJlY2F1c2UgdGhlIGRhdGFiYXNlIGlzIG5vdCBvcGVuIik7CiAgICAgICAg
IGVjID0gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCiAgICAgaWYgKG1faGFzVmVyc2lvbk1pc21hdGNoKSB7CisgICAgICAgIG1fZGF0YWJhc2Ut
PnNldExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBleGVjdXRlU1FMIGJlY2F1c2UgdGhlcmUgaXMg
YSB2ZXJzaW9uIG1pc21hdGNoIik7CiAgICAgICAgIGVjID0gU1FMRXhjZXB0aW9uOjpWRVJTSU9O
X0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTEwLDggKzExNSwxMCBAQCBQYXNz
UmVmUHRyPFNRTFJlc3VsdFNldD4gU1FMVHJhbnNhY3Rpb25TCiAgICAgICAgICAgICAgICAgaWYg
KG1fdHJhbnNhY3Rpb25DbGllbnQtPmRpZEV4Y2VlZFF1b3RhKGRhdGFiYXNlKCkpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGVjID0gMDsKICAgICAgICAgICAgICAgICAgICAgcmV0cnlTdGF0ZW1l
bnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2Uo
InRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlIik7CiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KQEAgLTEyNyw4ICsxMzQsMTAgQEAgUGFzc1JlZlB0cjxTUUxSZXN1
bHRTZXQ+IFNRTFRyYW5zYWN0aW9uUwogRXhjZXB0aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6
OmJlZ2luKCkKIHsKICAgICBBU1NFUlQobV9kYXRhYmFzZS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAgaWYgKCFtX2RhdGFiYXNlLT5vcGVuZWQoKSkK
KyAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKSB7CisgICAgICAgIG1fZGF0YWJhc2UtPnNl
dExhc3RFcnJvck1lc3NhZ2UoImNhbm5vdCBiZWdpbiB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBk
YXRhYmFzZSBpcyBub3Qgb3BlbiIpOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktO
T1dOX0VSUjsKKyAgICB9CiAKICAgICBBU1NFUlQoIW1fZGF0YWJhc2UtPnNxbGl0ZURhdGFiYXNl
KCkudHJhbnNhY3Rpb25JblByb2dyZXNzKCkpOwogCkBAIC0xNDcsNiArMTU2LDggQEAgRXhjZXB0
aW9uQ29kZSBTUUxUcmFuc2FjdGlvblN5bmM6OmJlZ2luKAogICAgIC8vIENoZWNrIGlmIGJlZ2lu
KCkgc3VjY2VlZGVkLgogICAgIGlmICghbV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygp
KSB7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS50cmFuc2Fj
dGlvbkluUHJvZ3Jlc3MoKSk7CisgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3Nh
Z2UoInVuYWJsZSB0byBiZWdpbiB0cmFuc2FjdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3Io
KSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAg
IG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlv
bjo6REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE1Niw2ICsxNjcsOCBAQCBFeGNlcHRpb25Db2Rl
IFNRTFRyYW5zYWN0aW9uU3luYzo6YmVnaW4oCiAgICAgLy8gdGhlIGFjdHVhbCB2ZXJzaW9uLiBJ
biBzaW5nbGUtcHJvY2VzcyBicm93c2VycywgdGhpcyBpcyBqdXN0IGEgbWFwIGxvb2t1cC4KICAg
ICBTdHJpbmcgYWN0dWFsVmVyc2lvbjsKICAgICBpZiAoIW1fZGF0YWJhc2UtPmdldEFjdHVhbFZl
cnNpb25Gb3JUcmFuc2FjdGlvbihhY3R1YWxWZXJzaW9uKSkgeworICAgICAgICBtX2RhdGFiYXNl
LT5zZXRMYXN0RXJyb3JNZXNzYWdlKCJ1bmFibGUgdG8gcmVhZCB2ZXJzaW9uIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFz
ZSgpLmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5zcWxpdGVEYXRhYmFzZSgpLmxhc3RFcnJvck1z
ZygpKTsKICAgICAgICAgcm9sbGJhY2soKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6
REFUQUJBU0VfRVJSOwogICAgIH0KQEAgLTE2OCw2ICsxODEsOCBAQCBFeGNlcHRpb25Db2RlIFNR
TFRyYW5zYWN0aW9uU3luYzo6ZXhlY3V0CiB7CiAgICAgQVNTRVJUKG1fZGF0YWJhc2UtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwogICAgIGlmICghbV9kYXRh
YmFzZS0+b3BlbmVkKCkgfHwgKG1fY2FsbGJhY2sgJiYgIW1fY2FsbGJhY2stPmhhbmRsZUV2ZW50
KHRoaXMpKSkgeworICAgICAgICBpZiAobV9kYXRhYmFzZS0+bGFzdEVycm9yTWVzc2FnZSgpLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgIG1fZGF0YWJhc2UtPnNldExhc3RFcnJvck1lc3NhZ2UoImZh
aWxlZCB0byBleGVjdXRlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIik7CiAgICAgICAgIG1fY2FsbGJh
Y2sgPSAwOwogICAgICAgICByZXR1cm4gU1FMRXhjZXB0aW9uOjpVTktOT1dOX0VSUjsKICAgICB9
CkBAIC0xNzksOCArMTk0LDEwIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpl
eGVjdXQKIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQoKQogewogICAg
IEFTU0VSVChtX2RhdGFiYXNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRo
cmVhZCgpKTsKLSAgICBpZiAoIW1fZGF0YWJhc2UtPm9wZW5lZCgpKQorICAgIGlmICghbV9kYXRh
YmFzZS0+b3BlbmVkKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0TGFzdEVycm9yTWVzc2Fn
ZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBiZWNhdXNlIHRoZSBkYXRhYmFzZSBpcyBu
b3Qgb3Blbi4iKTsKICAgICAgICAgcmV0dXJuIFNRTEV4Y2VwdGlvbjo6VU5LTk9XTl9FUlI7Cisg
ICAgfQogCiAgICAgQVNTRVJUKG1fc3FsaXRlVHJhbnNhY3Rpb24pOwogCkBAIC0xODksOCArMjA2
LDExIEBAIEV4Y2VwdGlvbkNvZGUgU1FMVHJhbnNhY3Rpb25TeW5jOjpjb21taXQKICAgICBtX2Rh
dGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7CiAKICAgICAvLyBJZiB0aGUgY29tbWl0IGZhaWxl
ZCwgdGhlIHRyYW5zYWN0aW9uIHdpbGwgc3RpbGwgYmUgbWFya2VkIGFzICJpbiBwcm9ncmVzcyIK
LSAgICBpZiAobV9zcWxpdGVUcmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKQorICAgIGlmIChtX3Nx
bGl0ZVRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgbV9kYXRhYmFzZS0+c2V0
TGFzdEVycm9yTWVzc2FnZSgidW5hYmxlIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJh
c2UoKS5sYXN0RXJyb3IoKSwgbV9kYXRhYmFzZS0+c3FsaXRlRGF0YWJhc2UoKS5sYXN0RXJyb3JN
c2coKSk7CiAgICAgICAgIHJldHVybiBTUUxFeGNlcHRpb246OkRBVEFCQVNFX0VSUjsKKyAgICB9
CiAKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLmNsZWFyKCk7CiAKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEwMDE2MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDExLTExLTEwICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUu
Y29tPgorCisgICAgICAgIFVwZGF0ZSBsYXlvdXQgdGVzdHMgZm9yICBuZXcgd2Vic3FsIGVycm9y
IG1lc3NhZ2VzIGFuZCBjb25zb2xlIGxvZ2dpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU3NQorCisgICAgICAgIFJldmlld2VkIGJ5IERhdmlk
IExldmluLgorCisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24t
aGFuZGxlLXJldXNlLXdvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJz
L3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmh0bWw6
CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3JhZ2UvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHkt
b25lLXN0YXRlbWVudC1zeW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMv
c3RvcmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5
LXZlcnNpb24tc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC93b3JrZXJzL3N0b3Jh
Z2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3dvcmtlcnMv
c3RvcmFnZS90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLmh0bWw6CisgICAgICAgICog
ZmFzdC93b3JrZXJzL3N0b3JhZ2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1j
YWxsYmFjay1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNl
dC1lbXB0eS12ZXJzaW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdG9yYWdlL3ByaXZhdGUt
YnJvd3Npbmctbm9yZWFkLW5vd3JpdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2Uv
dGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMS0xMSAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgTWVkaWFDb250cm9sbGVy
LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24t
aGFuZGxlLXJldXNlLXdvcmtlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLXdvcmtl
ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMDE2MikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29y
a2Vycy9zdG9yYWdlL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS13b3JrZXItZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhpcyB0ZXN0cyB0aGF0IGEgZGF0
YWJhc2UgY2FuIGJlIGFjY2Vzc2VkIGFmdGVyIGNoYW5naW5nIGl0cyB2ZXJzaW9uLiBZb3Ugc2hv
dWxkIHNlZSBhbiBlcnJvciBhYm91dCBGb29CYXIgdGFibGUgYmVsb3csIG5vdCBhYm91dCBtaXNt
YXRjaGluZyB2ZXJzaW9ucy4KIGNoYW5nZVZlcnNpb246IHRyYW5zYWN0aW9uIGNhbGxiYWNrCiBj
aGFuZ2VWZXJzaW9uOiBzdWNjZXNzIGNhbGxiYWNrCi10cmFuc2FjdGlvbjogc3RhdGVtZW50IGVy
cm9yIGNhbGxiYWNrOiBubyBzdWNoIHRhYmxlOiBGb29CYXIKK3RyYW5zYWN0aW9uOiBzdGF0ZW1l
bnQgZXJyb3IgY2FsbGJhY2s6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBubyBzdWNo
IHRhYmxlOiBGb29CYXIpCiBURVNUIENPTVBMRVRFLgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvc3RvcmFnZS9leGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5
bmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9z
dG9yYWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDEwMDE2MikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9y
YWdlL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3luYy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIFRlc3QgdGhhdCBleGVjdXRlU3Fs
KCkgYWNjZXB0cyBvbmx5IG9uZSBzdGF0ZW1lbnQuCi1QQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZB
TFVFUyAoMSkKLVBBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgyKTsKLVBBU1M6ICAgIElO
U0VSVCBJTlRPIFRlc3QgVkFMVUVTICgzKSAgICAKLVBBU1M6ICAgIElOU0VSVCBJTlRPIFRlc3Qg
VkFMVUVTICg0KTsgICAKLVBBU1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg1KSAgIDsKLVBB
U1M6IElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg2KTsgZ2FyYmFnZQotUEFTUzogSU5TRVJUIElO
VE8gVGVzdCBWQUxVRVMgKDcpOyBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoOCkKLVBBU1M6ICAg
SU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDkpOyAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICgx
MCk7ICAgCitQQVNTOiBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoMSksIAorUEFTUzogSU5TRVJU
IElOVE8gVGVzdCBWQUxVRVMgKDIpOywgCitQQVNTOiAgICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVF
UyAoMykgICAgLCAKK1BBU1M6ICAgIElOU0VSVCBJTlRPIFRlc3QgVkFMVUVTICg0KTsgICAsIAor
UEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDUpICAgOywgCitQQVNTOiBJTlNFUlQgSU5U
TyBUZXN0IFZBTFVFUyAoNik7IGdhcmJhZ2UsIGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MSwgbm90IGFuIGVycm9yKQorUEFTUzogSU5TRVJUIElOVE8gVGVzdCBWQUxVRVMgKDcpOyBJTlNF
UlQgSU5UTyBUZXN0IFZBTFVFUyAoOCksIGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSwg
bm90IGFuIGVycm9yKQorUEFTUzogICBJTlNFUlQgSU5UTyBUZXN0IFZBTFVFUyAoOSk7ICAgSU5T
RVJUIElOVE8gVGVzdCBWQUxVRVMgKDEwKTsgICAsIGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMSwgbm90IGFuIGVycm9yKQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3Rv
cmFnZS9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLXN5bmMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJh
c2UtY3JlYXRpb24tY2FsbGJhY2stc3luYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMDE2MikK
KysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRp
b24tY2FsbGJhY2stc3luYy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZl
cnNpb24gbWlzbWF0Y2gsICcxLjAnIGRvZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50VmVyc2lvbiBv
ZiAnJwogVGhpcyB0ZXN0IHRlc3RzIG9wZW5EYXRhYmFzZVN5bmMoKSdzIGNyZWF0aW9uIGNhbGxi
YWNrLgogUEFTUzogQ3JlYXRpb24gY2FsbGJhY2sgd2FzIGNhbGxlZC4KIFBBU1M6IFZlcnNpb24g
c2V0IHRvIGVtcHR5IHN0cmluZyBhcyBleHBlY3RlZC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
d29ya2Vycy9zdG9yYWdlL29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3luYy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uv
b3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zeW5jLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTAwMTYyKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3JhZ2Uvb3Blbi1kYXRh
YmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zeW5jLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUgdG8gb3BlbiBk
YXRhYmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwgJ3Rlc3QnIGRvZXMgbm90IG1hdGNoIHRoZSBjdXJy
ZW50VmVyc2lvbiBvZiAnJwogVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgb3BlbkRhdGFiYXNlIHdp
dGggYW4gZW1wdHkgdmVyc2lvbiBzdHJpbmcgc2V0cyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRo
YXQgZGF0YWJhc2UgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgc3Vic2VxdWVudCBhdHRlbXB0cyB0
byBvcGVuIHRoZSBkYXRhYmFzZSB3aXRoIGEgZGlmZmVyZW50IGV4cGVjdGVkIHZlcnNpb24gdGhy
b3cgYW4gZXhjZXB0aW9uLgogUEFTUwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMv
c3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Rlc3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDEwMDE2MikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Rl
c3QtYXV0aG9yaXplci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsMjAgKzYsMjAg
QEAgU1FMSVRFX0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IHN1YwogU1FMSVRFX0NSRUFU
RV9URU1QX1ZJRVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dFUiBz
dGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAorU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBh
cmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVudCBz
dWNjZWVkZWQuCiBTUUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfREVM
RVRFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCiBTUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfUFJBR01BIHN0
YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBT
UUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9BTFRFUl9UQUJM
RSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
CitTUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9BVFRBQ0ggc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUlOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQu
Ci1TUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRF
X0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgy
MyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBzdWNjZWVkZWQu
CiBTUUxJVEVfRFJPUF9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJP
UF9URU1QX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KQEAgLTI4LDQxICsyOCw0MSBAQCBT
UUxJVEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9WSUVX
IHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgc3VjY2Vl
ZGVkLgogV3JpdGUgdHJhbnNhY3Rpb24gc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9UQUJMRSBz
dGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0
ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6
ZWQpCiBTUUxJVEVfQ1JFQVRFX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfQ1JF
QVRFX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRF
X1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVB
VEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVf
Q1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRF
X0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVf
Q1JFQVRFX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVB
VEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRF
X0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxl
ZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0NSRUFURV9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKK1NRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZJRVcg
c3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0
aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfQ1JFQVRFX0lO
REVYIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVEFCTEUgc3RhdGVt
ZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RFTVBfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FM
SVRFX0NSRUFURV9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1ZJ
RVcgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVudCBm
YWlsZWQ6IG5vdCBhdXRob3JpemVkCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFp
bGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FM
SVRFX1JFQUQgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9TRUxFQ1Qgc3RhdGVtZW50IHN1
Y2NlZWRlZC4KLVNRTElURV9ERUxFVEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
LVNRTElURV9JTlNFUlQgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9V
UERBVEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9QUkFHTUEgc3Rh
dGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBm
YWlsZWQ6IG5vIHN1Y2ggdGFibGU6IFRlc3RUYWJsZQotU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRl
bWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBh
dXRob3JpemVkCi1TUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXpl
ZAotU1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9EUk9QX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJP
UF9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJP
UF9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9E
Uk9QX1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RS
T1BfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1Bf
VklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEFCTEUg
c3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9ERUxFVEUgc3RhdGVtZW50
IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkK
K1NRTElURV9JTlNFUlQgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVt
ZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9VUERBVEUgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9Q
UkFHTUEgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBu
b3QgYXV0aG9yaXplZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3Vs
ZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FMVEVS
X1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBu
byBzdWNoIHRhYmxlOiBUZXN0VGFibGUpCitTUUxJVEVfVFJBTlNBQ1RJT04gc3RhdGVtZW50IGZh
aWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9BVFRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9ERVRBQ0ggc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9SRUlO
REVYIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfQU5BTFlaRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfSU5ERVgg
c3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0
aG9yaXplZCkKK1NRTElURV9EUk9QX1RFTVBfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9QX1RF
TVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfRFJPUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9WSUVXIHN0YXRlbWVudCBmYWls
ZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJ
VEVfRFJPUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQogUmVhZCB0cmFuc2FjdGlvbnMgc3VjY2VlZGVkLgogCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS90cmFuc2FjdGlvbi1pbi10cmFu
c2FjdGlvbi1zeW5jLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3dvcmtlcnMvc3RvcmFnZS90cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTAwMTYyKQorKysgTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3Jh
Z2UvdHJhbnNhY3Rpb24taW4tdHJhbnNhY3Rpb24tc3luYy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzIEBACiBUZXN0IHRoYXQgdHJ5aW5nIHRvIHJ1biBhIHRyYW5zYWN0
aW9uIGluc2lkZSBhbm90aGVyIHRyYW5zYWN0aW9uIHRocm93cyBhbiBleGNlcHRpb24uCi1QQVNT
OiBFeGNlcHRpb24gdGhyb3duIHdoaWxlIHRyeWluZyB0byBydW4gYSBuZXN0ZWQgdHJhbnNhY3Rp
b24uCitQQVNTOiBFeGNlcHRpb24gdGhyb3duIHdoaWxlIHRyeWluZyB0byBydW4gYSBuZXN0ZWQg
dHJhbnNhY3Rpb24gKHVuYWJsZSB0byBzdGFydCBhIHRyYW5zYWN0aW9uIGZyb20gd2l0aGluIGEg
dHJhbnNhY3Rpb24pLgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dvcmtlcnMvc3RvcmFnZS9y
ZXNvdXJjZXMvZXhlY3V0ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zeW5jLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNlcy9l
eGVjdXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMuanMJKHJldmlzaW9uIDEw
MDE2MikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNlcy9leGVj
dXRlc3FsLWFjY2VwdHMtb25seS1vbmUtc3RhdGVtZW50LXN5bmMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTEsMTEgKzEsMTMgQEAKIGZ1bmN0aW9uIGV4ZWN1dGVTdGF0ZW1lbnQodHgsIGV4cGVjdGVk
VG9QYXNzLCBzdGF0ZW1lbnQpCiB7CisgICAgdmFyIG1lc3NhZ2U7CiAgICAgdHJ5IHsKICAgICAg
ICAgdHguZXhlY3V0ZVNxbChzdGF0ZW1lbnQpOwotICAgICAgICBwb3N0TWVzc2FnZShleHBlY3Rl
ZFRvUGFzcyA/ICJQQVNTOiAiICsgc3RhdGVtZW50IDogIkZBSUw6ICIgKyBzdGF0ZW1lbnQpOwor
ICAgICAgICBtZXNzYWdlID0gZXhwZWN0ZWRUb1Bhc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiOwog
ICAgIH0gY2F0Y2ggKGVycikgewotICAgICAgICBwb3N0TWVzc2FnZSghZXhwZWN0ZWRUb1Bhc3Mg
PyAiUEFTUzogIiArIHN0YXRlbWVudCA6ICJGQUlMOiAiICsgc3RhdGVtZW50KTsKKyAgICAgICAg
bWVzc2FnZSA9ICFleHBlY3RlZFRvUGFzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICI7CiAgICAgfQor
ICAgIHBvc3RNZXNzYWdlKG1lc3NhZ2UgKyBzdGF0ZW1lbnQgKyAiLCAiICsgZGIubGFzdEVycm9y
TWVzc2FnZSk7CiB9CiAKIHZhciBkYiA9IG9wZW5EYXRhYmFzZVN5bmMoIkV4ZWN1dGVTUUxBY2Nl
cHRzT25seU9uZVN0YXRlbWVudFRlc3QiLCAiMS4wIiwgIiIsIDEpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC93b3JrZXJzL3N0b3JhZ2UvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0
aW9uLXN5bmMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93b3JrZXJzL3N0b3Jh
Z2UvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWluLXRyYW5zYWN0aW9uLXN5bmMuanMJKHJldmlzaW9u
IDEwMDE2MikKKysrIExheW91dFRlc3RzL2Zhc3Qvd29ya2Vycy9zdG9yYWdlL3Jlc291cmNlcy90
cmFuc2FjdGlvbi1pbi10cmFuc2FjdGlvbi1zeW5jLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkg
KzIsOSBAQCB2YXIgZGIgPSBvcGVuRGF0YWJhc2VTeW5jKCJUcmFuc2FjdGlvbkluCiBkYi50cmFu
c2FjdGlvbihmdW5jdGlvbih0eCkgewogICAgIHRyeSB7CiAgICAgICAgIGRiLnRyYW5zYWN0aW9u
KGZ1bmN0aW9uKG5lc3RlZFR4KSB7IH0pOwotICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogVHJ5
aW5nIHRvIHJ1biBhIG5lc3RlZCB0cmFuc2FjdGlvbiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9u
LiIpOworICAgICAgICBwb3N0TWVzc2FnZSgiRkFJTDogVHJ5aW5nIHRvIHJ1biBhIG5lc3RlZCB0
cmFuc2FjdGlvbiBzaG91bGQgdGhyb3cgYW4gZXhjZXB0aW9uLiIgKyBkYi5sYXN0RXJyb3JNZXNz
YWdlKTsKICAgICB9IGNhdGNoIChlcnIpIHsKLSAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IEV4
Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5aW5nIHRvIHJ1biBhIG5lc3RlZCB0cmFuc2FjdGlvbi4i
KTsKKyAgICAgICAgcG9zdE1lc3NhZ2UoIlBBU1M6IEV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgdHJ5
aW5nIHRvIHJ1biBhIG5lc3RlZCB0cmFuc2FjdGlvbiAoIiArIGRiLmxhc3RFcnJvck1lc3NhZ2Ug
KyAiKS4iKTsKICAgICB9CiB9KTsKIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9jaGFuZ2Ut
dmVyc2lvbi1oYW5kbGUtcmV1c2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N0b3JhZ2UvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTAwMTYyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9jaGFuZ2UtdmVyc2lvbi1oYW5k
bGUtcmV1c2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogVGhp
cyB0ZXN0cyB0aGF0IGEgZGF0YWJhc2UgY2FuIGJlIGFjY2Vzc2VkIGFmdGVyIGNoYW5naW5nIGl0
cyB2ZXJzaW9uLiBZb3Ugc2hvdWxkIHNlZSBhbiBlcnJvciBhYm91dCBGb29CYXIgdGFibGUgYmVs
b3csIG5vdCBhYm91dCBtaXNtYXRjaGluZyB2ZXJzaW9ucy4KIGNoYW5nZVZlcnNpb246IHRyYW5z
YWN0aW9uIGNhbGxiYWNrCiBjaGFuZ2VWZXJzaW9uOiBzdWNjZXNzIGNhbGxiYWNrCi10cmFuc2Fj
dGlvbjogc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrOiBubyBzdWNoIHRhYmxlOiBGb29CYXIKK3Ry
YW5zYWN0aW9uOiBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2s6IGNvdWxkIG5vdCBwcmVwYXJlIHN0
YXRlbWVudCAoMSBubyBzdWNoIHRhYmxlOiBGb29CYXIpCiBURVNUIENPTVBMRVRFLgogCkluZGV4
OiBMYXlvdXRUZXN0cy9zdG9yYWdlL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2stZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFz
ZS1jcmVhdGlvbi1jYWxsYmFjay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMDE2MikKKysrIExh
eW91dFRlc3RzL3N0b3JhZ2Uvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMDogdW5hYmxlIHRvIG9wZW4gZGF0YWJhc2UsIHZlcnNpb24gbWlzbWF0Y2gsICcxLjAnIGRv
ZXMgbm90IG1hdGNoIHRoZSBjdXJyZW50VmVyc2lvbiBvZiAnJwogVGhpcyB0ZXN0IHRlc3RzIG9w
ZW5EYXRhYmFzZSgpJ3MgY3JlYXRpb24gY2FsbGJhY2suCiAKSW5kZXg6IExheW91dFRlc3RzL3N0
b3JhZ2Uvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJz
aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAwMTYyKQorKysgTGF5b3V0VGVzdHMvc3RvcmFn
ZS9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwyICsxLDMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAwOiB1bmFibGUgdG8g
b3BlbiBkYXRhYmFzZSwgdmVyc2lvbiBtaXNtYXRjaCwgJ3Rlc3QnIGRvZXMgbm90IG1hdGNoIHRo
ZSBjdXJyZW50VmVyc2lvbiBvZiAnJwogVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgb3BlbkRhdGFi
YXNlIHdpdGggYW4gZW1wdHkgdmVyc2lvbiBzdHJpbmcgc2V0cyB0aGUgY3VycmVudCB2ZXJzaW9u
IG9mIHRoYXQgZGF0YWJhc2UgdG8gdGhlIGVtcHR5IHN0cmluZyBhbmQgc3Vic2VxdWVudCBhdHRl
bXB0cyB0byBvcGVuIHRoZSBkYXRhYmFzZSB3aXRoIGEgZGlmZmVyZW50IGV4cGVjdGVkIHZlcnNp
b24gdGhyb3cgYW4gZXhjZXB0aW9uLgogU1VDQ0VTUywgYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24u
IEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMQpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9y
ZWFkLW5vd3JpdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDAxNjIpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL3ByaXZhdGUtYnJvd3Npbmctbm9yZWFkLW5vd3JpdGUtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0yLDE0ICsyLDE0IEBAIFRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQg
YXR0ZW1wdHMgdG8gY2gKIFNldHVwIHN0YXRlbWVudCAxIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkK
IFNldHVwIHN0YXRlbWVudCAyIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKIFByaXZhdGUgYnJvd3Np
bmcgc3RhdGVtZW50IDEgY29tcGxldGVkIHdpdGggYW4gZXJyb3IKLW5vdCBhdXRob3JpemVkCitj
b3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm90IGF1dGhvcml6ZWQpCiBQcml2YXRlIGJy
b3dzaW5nIHN0YXRlbWVudCAyIGNvbXBsZXRlZCB3aXRoIGFuIGVycm9yCi1ub3QgYXV0aG9yaXpl
ZAorY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFByaXZh
dGUgYnJvd3Npbmcgc3RhdGVtZW50IDMgY29tcGxldGVkIHdpdGggYW4gZXJyb3IKLW5vdCBhdXRo
b3JpemVkCitjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQog
UHJpdmF0ZSBicm93c2luZyBzdGF0ZW1lbnQgNCBjb21wbGV0ZWQgd2l0aCBhbiBlcnJvcgotbm90
IGF1dGhvcml6ZWQKK2NvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6
ZWQpCiBQcml2YXRlIGJyb3dzaW5nIHN0YXRlbWVudCA1IGNvbXBsZXRlZCB3aXRoIGFuIGVycm9y
Ci1hY2Nlc3MgdG8gUHJpdmF0ZVRlc3QxLnJhbmRvbURhdGEgaXMgcHJvaGliaXRlZAorY291bGQg
bm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBhY2Nlc3MgdG8gUHJpdmF0ZVRlc3QxLnJhbmRvbURh
dGEgaXMgcHJvaGliaXRlZCkKIFRlc3QgZW5kZWQKIApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFn
ZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N0b3JhZ2UvdGVzdC1hdXRob3JpemVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAwMTYyKQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS90ZXN0LWF1dGhvcml6ZXItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC02LDIwICs2LDIwIEBAIFNRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0
YXRlbWVudCBzdWMKIFNRTElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQu
CiBTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVB
VEVfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9WVEFCTEUgc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9DUkVBVEVfVlRBQkxFIHN0YXRlbWVu
dCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQp
CiBTUUxJVEVfUkVBRCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1NFTEVDVCBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgogU1FMSVRFX0RFTEVURSBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRF
X0lOU0VSVCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX1VQREFURSBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgotU1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAor
U1FMSVRFX1BSQUdNQSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1l
bnQgKDIzIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0FMVEVSX1RBQkxFIHN0YXRlbWVudCBzdWNj
ZWVkZWQuCiBTUUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KLVNRTElURV9U
UkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0FUVEFD
SCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RFVEFDSCBzdGF0ZW1l
bnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX1RSQU5TQUNUSU9OIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitT
UUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfREVUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfUkVJ
TkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgotU1FMSVRFX0FOQUxZWkUgc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKK1NRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxk
IG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCiBTUUxJVEVfRFJPUF9J
TkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgogU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBzdWNjZWVk
ZWQuCkBAIC0yOCw0MSArMjgsNDEgQEAgU1FMSVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX0RST1BfVklFVyBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0RS
T1BfVEFCTEUgc3RhdGVtZW50IHN1Y2NlZWRlZC4KIFdyaXRlIHRyYW5zYWN0aW9uIHN1Y2NlZWRl
ZC4KLVNRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQK
K1NRTElURV9DUkVBVEVfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUg
c3RhdGVtZW50ICgxIG5vdCBhdXRob3JpemVkKQogU1FMSVRFX0NSRUFURV9UQUJMRSBzdGF0ZW1l
bnQgc3VjY2VlZGVkLgotU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1RFTVBfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxl
ZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVk
OiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IG5v
dCBhdXRob3JpemVkCi1TUUxJVEVfQ1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3Qg
YXV0aG9yaXplZAorU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0NSRUFURV9U
RU1QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAo
MSBub3QgYXV0aG9yaXplZCkKK1NRTElURV9DUkVBVEVfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBm
YWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMSBub3QgYXV0aG9yaXplZCkKK1NR
TElURV9DUkVBVEVfVEVNUF9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJl
IHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1RSSUdHRVIgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgxIG5vdCBhdXRob3Jp
emVkKQorU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVw
YXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQ1JFQVRFX1ZUQUJMRSBz
dGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRo
b3JpemVkKQogU1FMSVRFX0NSRUFURV9JTkRFWCBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRF
X0NSRUFURV9URU1QX1RBQkxFIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBTUUxJVEVfQ1JFQVRFX1RF
TVBfVFJJR0dFUiBzdGF0ZW1lbnQgc3VjY2VlZGVkLgogU1FMSVRFX0NSRUFURV9URU1QX1ZJRVcg
c3RhdGVtZW50IHN1Y2NlZWRlZC4KIFNRTElURV9DUkVBVEVfVFJJR0dFUiBzdGF0ZW1lbnQgc3Vj
Y2VlZGVkLgogU1FMSVRFX0NSRUFURV9WSUVXIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVf
Q1JFQVRFX1ZUQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAorU1FMSVRFX0NS
RUFURV9WVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50
ICgyMyBub3QgYXV0aG9yaXplZCkKIFNRTElURV9SRUFEIHN0YXRlbWVudCBzdWNjZWVkZWQuCiBT
UUxJVEVfU0VMRUNUIHN0YXRlbWVudCBzdWNjZWVkZWQuCi1TUUxJVEVfREVMRVRFIHN0YXRlbWVu
dCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfVVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRo
b3JpemVkCi1TUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVkCi1T
UUxJVEVfQUxURVJfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElU
RV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBubyBzdWNoIHRhYmxlOiBUZXN0VGFibGUK
LVNRTElURV9UUkFOU0FDVElPTiBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FM
SVRFX0FUVEFDSCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX0RFVEFD
SCBzdGF0ZW1lbnQgZmFpbGVkOiBub3QgYXV0aG9yaXplZAotU1FMSVRFX1JFSU5ERVggc3RhdGVt
ZW50IGZhaWxlZDogbm90IGF1dGhvcml6ZWQKLVNRTElURV9BTkFMWVpFIHN0YXRlbWVudCBmYWls
ZWQ6IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9JTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBu
b3QgYXV0aG9yaXplZAotU1FMSVRFX0RST1BfVEVNUF9UUklHR0VSIHN0YXRlbWVudCBmYWlsZWQ6
IG5vdCBhdXRob3JpemVkCi1TUUxJVEVfRFJPUF9URU1QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDog
bm90IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogbm90
IGF1dGhvcml6ZWQKLVNRTElURV9EUk9QX1ZJRVcgc3RhdGVtZW50IGZhaWxlZDogbm90IGF1dGhv
cml6ZWQKLVNRTElURV9EUk9QX1RBQkxFIHN0YXRlbWVudCBmYWlsZWQ6IG5vdCBhdXRob3JpemVk
CitTUUxJVEVfREVMRVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRl
bWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfSU5TRVJUIHN0YXRlbWVudCBmYWlsZWQ6
IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVf
VVBEQVRFIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMg
bm90IGF1dGhvcml6ZWQpCitTUUxJVEVfUFJBR01BIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5v
dCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQUxURVJfVEFC
TEUgc3RhdGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3Qg
YXV0aG9yaXplZCkKK1NRTElURV9BTFRFUl9UQUJMRSBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBu
b3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDEgbm8gc3VjaCB0YWJsZTogVGVzdFRhYmxlKQorU1FMSVRF
X1RSQU5TQUNUSU9OIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVu
dCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfQVRUQUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNv
dWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfREVU
QUNIIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90
IGF1dGhvcml6ZWQpCitTUUxJVEVfUkVJTkRFWCBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3Qg
cHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0FOQUxZWkUgc3Rh
dGVtZW50IGZhaWxlZDogY291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9y
aXplZCkKK1NRTElURV9EUk9QX0lOREVYIHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVw
YXJlIHN0YXRlbWVudCAoMjMgbm90IGF1dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1RBQkxF
IHN0YXRlbWVudCBmYWlsZWQ6IGNvdWxkIG5vdCBwcmVwYXJlIHN0YXRlbWVudCAoMjMgbm90IGF1
dGhvcml6ZWQpCitTUUxJVEVfRFJPUF9URU1QX1RSSUdHRVIgc3RhdGVtZW50IGZhaWxlZDogY291
bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKK1NRTElURV9EUk9Q
X1RFTVBfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVFJJR0dFUiBzdGF0ZW1lbnQgZmFpbGVk
OiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQgKDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRF
X0RST1BfVklFVyBzdGF0ZW1lbnQgZmFpbGVkOiBjb3VsZCBub3QgcHJlcGFyZSBzdGF0ZW1lbnQg
KDIzIG5vdCBhdXRob3JpemVkKQorU1FMSVRFX0RST1BfVEFCTEUgc3RhdGVtZW50IGZhaWxlZDog
Y291bGQgbm90IHByZXBhcmUgc3RhdGVtZW50ICgyMyBub3QgYXV0aG9yaXplZCkKIFJlYWQgdHJh
bnNhY3Rpb25zIHN1Y2NlZWRlZC4KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>