<?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>47810</bug_id>
          
          <creation_ts>2010-10-18 04:01:05 -0700</creation_ts>
          <short_desc>[HTML5] Add DOMSettableTokenList</short_desc>
          <delta_ts>2010-10-29 03:51:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>29363</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>295429</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-18 04:01:05 -0700</bug_when>
    <thetext>Adding DOMSettableTokenList interface to implement &lt;output&gt; tag.

http://www.w3.org/TR/html5/common-dom-interfaces.html#domsettabletokenlist-0

This interface is required to implement HTML5 output element. See https://bugs.webkit.org/show_bug.cgi?id=29363 for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295459</commentid>
    <comment_count>1</comment_count>
      <attachid>71026</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-18 05:41:23 -0700</bug_when>
    <thetext>Created attachment 71026
Patch V0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295461</commentid>
    <comment_count>2</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-18 05:42:29 -0700</bug_when>
    <thetext>Hi,

The patch doesn&apos;t contain tests for DOMSettableTokenList interface because it is not able to generate its instance directory from JS so I couldn&apos;t come up with the way to write tests for this interface. I&apos;m planning to add tests for this interface when I implement &lt;output&gt; element, but please let me know if there are another way to write tests for this interface.

Thanks,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295474</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-18 06:15:04 -0700</bug_when>
    <thetext>Attachment 71026 did not build on qt:
Build output: http://queues.webkit.org/results/4458067</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295497</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-18 07:53:56 -0700</bug_when>
    <thetext>Attachment 71026 did not build on chromium:
Build output: http://queues.webkit.org/results/4459074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295826</commentid>
    <comment_count>5</comment_count>
      <attachid>71026</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-10-18 16:20:57 -0700</bug_when>
    <thetext>Comment on attachment 71026
Patch V0

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

&gt; WebCore/html/DOMSettableTokenList.cpp:87
&gt; +        remove(token, ec);

This causes another validation. Please refactor to use an internal remove so that we do not validate twice.

&gt; WebCore/html/DOMSettableTokenList.cpp:103
&gt; +        builder.append(&apos; &apos;);

I don&apos;t think this is correct. DOMTokenList has a pretty stupid API that requires that whitespace be preserved.

For example

tokenList = &apos;a   b c&apos;
tokenList.remove(&apos;c&apos;)
assertEquals(tokenList.toString(), &apos;a   b&apos;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295885</commentid>
    <comment_count>6</comment_count>
      <attachid>71026</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-18 18:25:52 -0700</bug_when>
    <thetext>Comment on attachment 71026
Patch V0

Some build files have no ClassList.cpp and/or ClassList.h.

We need a mock implementation for V8 binding to build Chromium successfully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296086</commentid>
    <comment_count>7</comment_count>
      <attachid>71149</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-19 03:19:17 -0700</bug_when>
    <thetext>Created attachment 71149
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296087</commentid>
    <comment_count>8</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-19 03:21:05 -0700</bug_when>
    <thetext>(In reply to comment #5)
Hi Erik,

&gt; &gt; WebCore/html/DOMSettableTokenList.cpp:87
&gt; &gt; +        remove(token, ec);
&gt; 
&gt; This causes another validation. Please refactor to use an internal remove so that we do not validate twice.

Done.

&gt; I don&apos;t think this is correct. DOMTokenList has a pretty stupid API that requires that whitespace be preserved.
&gt; 
&gt; For example
&gt; 
&gt; tokenList = &apos;a   b c&apos;
&gt; tokenList.remove(&apos;c&apos;)
&gt; assertEquals(tokenList.toString(), &apos;a   b&apos;);

Thank you for letting me know that. I didn&apos;t realize such behavior. I&apos;ve changed the code to save the original value to follow the requirement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296088</commentid>
    <comment_count>9</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-19 03:21:44 -0700</bug_when>
    <thetext>(In reply to comment #6)

Hi Kent-san,

&gt; (From update of attachment 71026 [details])
&gt; Some build files have no ClassList.cpp and/or ClassList.h.

I&apos;ve added newly-added files into build files as far as I know, but it might be incomplete, so please let me know there are oversights

&gt; We need a mock implementation for V8 binding to build Chromium successfully.

I&apos;ve added a mock implementation. Thank you for your comments!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296242</commentid>
    <comment_count>10</comment_count>
      <attachid>71149</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-10-19 09:51:47 -0700</bug_when>
    <thetext>Comment on attachment 71149
Patch V1

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

I&apos;m not sure we need to add add and remove to SpaceSplitString. I decided not to do it for classList since mutating the list always had to update the class attribute which triggers a lot of things (such as mutation events and style resolution). If you look at DOMTokenList and SpaceSplitString in isolation it does seem to make sense to not rebuild the SpaceSplitString for add and remove.

&gt; WebCore/html/DOMSettableTokenList.cpp:70
&gt; +        builder.append(m_value);

This is not right. Please check the spec.

The point is that you should not add a space if the last character is already a space.

All of this is implemented in the old DOMTokenList and covered by the layout tests. You should be able to reuse almost all of the tests for classList since DOMTokenList is a subset of SettableDOMTokenList.

&gt; WebCore/html/DOMSettableTokenList.cpp:74
&gt; +        m_tokens.set(builder.toString(), true);

Can we add an add to SpaceSplitString?

&gt; WebCore/html/DOMSettableTokenList.cpp:90
&gt; +    m_tokens.clear();

I think you could call setValue here and in addInternal to remove some duplicate code. I&apos;m not sure if it is really worth it though?

&gt; WebCore/html/DOMSettableTokenList.cpp:92
&gt; +    m_tokens.set(m_value, true);

Can we add a remove to SpaceSplitString?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296584</commentid>
    <comment_count>11</comment_count>
      <attachid>71149</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-19 18:16:43 -0700</bug_when>
    <thetext>Comment on attachment 71149
Patch V1

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

Hi Erik,

Thank you for your helpful comments! I&apos;ll post revised patch later.

&gt;&gt; WebCore/html/DOMSettableTokenList.cpp:70
&gt;&gt; +        builder.append(m_value);
&gt; 
&gt; This is not right. Please check the spec.
&gt; 
&gt; The point is that you should not add a space if the last character is already a space.
&gt; 
&gt; All of this is implemented in the old DOMTokenList and covered by the layout tests. You should be able to reuse almost all of the tests for classList since DOMTokenList is a subset of SettableDOMTokenList.

Thank you for correction. I should be more careful.. I&apos;ve modified the patch to reuse existing code.

&gt;&gt; WebCore/html/DOMSettableTokenList.cpp:74
&gt;&gt; +        m_tokens.set(builder.toString(), true);
&gt; 
&gt; Can we add an add to SpaceSplitString?

Added.

&gt;&gt; WebCore/html/DOMSettableTokenList.cpp:90
&gt;&gt; +    m_tokens.clear();
&gt; 
&gt; I think you could call setValue here and in addInternal to remove some duplicate code. I&apos;m not sure if it is really worth it though?

I reused existing code so the code no longer exists.

&gt;&gt; WebCore/html/DOMSettableTokenList.cpp:92
&gt;&gt; +    m_tokens.set(m_value, true);
&gt; 
&gt; Can we add a remove to SpaceSplitString?

Added.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296652</commentid>
    <comment_count>12</comment_count>
      <attachid>71255</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-19 23:32:24 -0700</bug_when>
    <thetext>Created attachment 71255
Patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296654</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-19 23:35:31 -0700</bug_when>
    <thetext>Attachment 71255 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/dom/SpaceSplitString.h:79:  More than one command on the same line in if  [whitespace/parens] [4]
WebCore/dom/SpaceSplitString.h:80:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 2 in 36 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>296807</commentid>
    <comment_count>14</comment_count>
      <attachid>71255</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-20 08:17:10 -0700</bug_when>
    <thetext>Comment on attachment 71255
Patch V2

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

I think WebCore/Android.mk and WebCore/CMakeList.txt need to have ClassLis.cpp.

&gt; WebCore/ChangeLog:12
&gt; +        * Android.derived.jscbindings.mk:

You should add a comment to each of files/functions in ChangeLog as possible.
In this case, you can add comments like
 - &quot;Add &lt;new files&gt;&quot; for build files
 - &quot;Moved from Foobar.cpp&quot; for copied functions
Such comments would be very helpful for reviewing.

&gt; WebCore/bindings/v8/custom/V8DOMSettableTokenListCustom.cpp:37
&gt; +    // TODO(bashi): Implement this function.

We don&apos;t use TODO(username): style in WebKit.  Just put FIXME: please.

&gt; WebCore/dom/SpaceSplitString.h:79
&gt; +        void add(const AtomicString&amp; string) { if (m_data) m_data-&gt;add(string); }

Please move the implementation to SpaceSplitString.cpp.

&gt; WebCore/dom/SpaceSplitString.h:80
&gt; +        void remove(const AtomicString&amp; string) { if (m_data) m_data-&gt;remove(string); }

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296911</commentid>
    <comment_count>15</comment_count>
      <attachid>71255</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-10-20 12:06:42 -0700</bug_when>
    <thetext>Comment on attachment 71255
Patch V2

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

Thanks for adding add and remove but...

&gt; WebCore/dom/SpaceSplitString.cpp:108
&gt; +    m_createdVector = false;

This kind of defeats my point.

If we add add and remove to SpaceSplitString/SpaceSplitStringData we should operate on the vector which allows us to do faster add and removes. I really don&apos;t want SpaceSplitString to carry the burden of the white space preserving semantics of DOMTokenList and I don&apos;t think it makes sense to tear down and rebuild the vector for adds and removes.

&gt; WebCore/dom/SpaceSplitString.cpp:111
&gt; +void SpaceSplitStringData::remove(const AtomicString&amp; string)

Lets keep this silly algorithm in DOMTokenList ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297191</commentid>
    <comment_count>16</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-20 18:21:51 -0700</bug_when>
    <thetext>Kent-san,

Thank you very much for reviewing!

(In reply to comment #14)
&gt; I think WebCore/Android.mk and WebCore/CMakeList.txt need to have ClassLis.cpp.

I&apos;ll add ClassList.cpp into these files in next patch. BTW, as for WebCore/Android.mk, it doesn&apos;t contain DOMTokenList.cpp so it was difficult to determine whether I have to put new files into WebCore/Android.mk (and other build files). Should I also include DOMTokenList.cpp in this file? Is there any guideline for that?

&gt; You should add a comment to each of files/functions in ChangeLog as possible.
&gt; In this case, you can add comments like
&gt;  - &quot;Add &lt;new files&gt;&quot; for build files
&gt;  - &quot;Moved from Foobar.cpp&quot; for copied functions
&gt; Such comments would be very helpful for reviewing.

Sorry for inconvenience you. I&apos;ll add a comment from next time.

&gt; We don&apos;t use TODO(username): style in WebKit.  Just put FIXME: please.

Done.

&gt; &gt; WebCore/dom/SpaceSplitString.h:79
&gt; &gt; +        void add(const AtomicString&amp; string) { if (m_data) m_data-&gt;add(string); }
&gt; 
&gt; Please move the implementation to SpaceSplitString.cpp.

Done.

&gt; &gt; WebCore/dom/SpaceSplitString.h:80
&gt; &gt; +        void remove(const AtomicString&amp; string) { if (m_data) m_data-&gt;remove(string); }
&gt; 
&gt; ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297210</commentid>
    <comment_count>17</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-20 20:02:45 -0700</bug_when>
    <thetext>Hi Erik,

(In reply to comment #15)
&gt; If we add add and remove to SpaceSplitString/SpaceSplitStringData we should operate on the vector which allows us to do faster add and removes. I really don&apos;t want SpaceSplitString to carry the burden of the white space preserving semantics of DOMTokenList and I don&apos;t think it makes sense to tear down and rebuild the vector for adds and removes.

Oh, I misunderstood what you were getting at. I&apos;ve modified add() and remove() following your suggestion.

&gt; &gt; WebCore/dom/SpaceSplitString.cpp:111
&gt; &gt; +void SpaceSplitStringData::remove(const AtomicString&amp; string)
&gt; 
&gt; Lets keep this silly algorithm in DOMTokenList ;-)

OK, I&apos;ve put it in DOMTokenList again:-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297248</commentid>
    <comment_count>18</comment_count>
      <attachid>71395</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-20 23:58:12 -0700</bug_when>
    <thetext>Created attachment 71395
Patch V3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297499</commentid>
    <comment_count>19</comment_count>
      <attachid>71395</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-10-21 10:38:23 -0700</bug_when>
    <thetext>Comment on attachment 71395
Patch V3

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

&gt; WebCore/dom/SpaceSplitString.cpp:110
&gt; +            break;

The vector can contain duplicates so we cannot break here.

&gt; WebCore/html/ClassList.cpp:95
&gt; +    m_classNamesForQuirksMode.add(token);

This needs more work.

m_element.setAttribute(classAttr...) cause the SpaceSplitString to be reset already and by calling add we recreate the vector immediately, even if we will never need it. One of the power of the SpaceSplitString is that it does not create the vector until needed the first time. This is important because it is used a lot in style resolutions for matching class names.

In a follow up patch I would like classList add/remove to keep the SpaceSplitString but that requires changes to how we reset the SpaceSplitString which I think is out of scope for this patch.

&gt; WebCore/html/ClassList.cpp:113
&gt; +    m_classNamesForQuirksMode.remove(token);

same here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297793</commentid>
    <comment_count>20</comment_count>
      <attachid>71395</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-21 19:34:00 -0700</bug_when>
    <thetext>Comment on attachment 71395
Patch V3

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

&gt;&gt; WebCore/dom/SpaceSplitString.cpp:110
&gt;&gt; +            break;
&gt; 
&gt; The vector can contain duplicates so we cannot break here.

Fixed.

&gt;&gt; WebCore/html/ClassList.cpp:95
&gt;&gt; +    m_classNamesForQuirksMode.add(token);
&gt; 
&gt; This needs more work.
&gt; 
&gt; m_element.setAttribute(classAttr...) cause the SpaceSplitString to be reset already and by calling add we recreate the vector immediately, even if we will never need it. One of the power of the SpaceSplitString is that it does not create the vector until needed the first time. This is important because it is used a lot in style resolutions for matching class names.
&gt; 
&gt; In a follow up patch I would like classList add/remove to keep the SpaceSplitString but that requires changes to how we reset the SpaceSplitString which I think is out of scope for this patch.

I see. Thanks for the advice. I&apos;ve introduced a flag which shows whether the SpaceSplitString is up-to-date, but it might be somewhat ugly. I would appreciate if you have another idea to address it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297808</commentid>
    <comment_count>21</comment_count>
      <attachid>71521</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-21 20:42:44 -0700</bug_when>
    <thetext>Created attachment 71521
Patch V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297825</commentid>
    <comment_count>22</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-21 22:26:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I&apos;ll add ClassList.cpp into these files in next patch. BTW, as for WebCore/Android.mk, it doesn&apos;t contain DOMTokenList.cpp so it was difficult to determine whether I have to put new files into WebCore/Android.mk (and other build files). Should I also include DOMTokenList.cpp in this file? Is there any guideline for that?

Probably Android build is just broken at this moment :-)  I think someone needs to add DOMTokenList.cpp to Android.mk. 

The latest patch looks fine to me.  I&apos;ll set r+ if Erik makes no more suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297831</commentid>
    <comment_count>23</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-21 22:38:31 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; Probably Android build is just broken at this moment :-)  I think someone needs to add DOMTokenList.cpp to Android.mk. 

Android build files have been removed by r70290.  Ishibashi-san needs to update the patch anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>297842</commentid>
    <comment_count>24</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-21 23:08:55 -0700</bug_when>
    <thetext>Kent-san,

(In reply to comment #23)
&gt; Android build files have been removed by r70290.  Ishibashi-san needs to update the patch anyway.

Thank you for the information. It&apos;s good to hear since it&apos;ll reduce a troublesome task:-) I&apos;d like to wait Erik&apos;s comment and will revise the patch later.

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298043</commentid>
    <comment_count>25</comment_count>
      <attachid>71521</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-10-22 10:24:26 -0700</bug_when>
    <thetext>Comment on attachment 71521
Patch V4

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

The more I think about this the more I think we could probably use SettableDOMTokenList for classList as well since we do allow setValue from C++. I don&apos;t really think we need DOMTokenList at all in C++.

For the ClassList class we could just override how we get the tokens and how we update the DOM.

&gt; WebCore/html/ClassList.cpp:63
&gt; +    if (!m_classNamesNeedsUpdate)

I think I may have misguided you.

SpaceSplitString is already smart enough to actually not build the vector until needed. When calling set() it will only clear the current vector and keep the string for the future.

The problem was that you were calling add and remove (which rebuild the vector) after we already called setAttribute (which in turn call set() on the SpaceSplitString) so we lost the optimization.

I think this whole method can be removed since classList is always up to date due to reset being called when someone sets the class attribute.

&gt; WebCore/html/ClassList.cpp:74
&gt; +    // We need this ulgy const_cast to conform with the className attribute

typo

&gt; WebCore/html/ClassList.cpp:89
&gt; +    // We need this ulgy const_cast to conform with the className attribute

typo

&gt; WebCore/html/ClassList.cpp:118
&gt; +    m_classNamesNeedsUpdate = true;

This line is not needed since reset gets called due to setAttribute

&gt; WebCore/html/ClassList.cpp:138
&gt; +    m_classNamesNeedsUpdate = true;

same here

... and now there are no more places where it gets set to true so that means that updateClassNamesForQuirksModeIfNeeded is a noop

&gt; WebCore/html/ClassList.h:57
&gt; +    void reset(const String&amp;);

why don&apos;t we rename this to setValue for consistency?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298304</commentid>
    <comment_count>26</comment_count>
      <attachid>71521</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-22 20:30:42 -0700</bug_when>
    <thetext>Comment on attachment 71521
Patch V4

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

Hi Erik,

Thank you for your comments. I&apos;ll follow your comment on removing the flag and unnecessary functions. But, as for integrating ClassList and DOMSettableTokenList, I am wondering that we should do it. There are several difference between them. ClassList has the reference of the element but DOMSettableTokenList needs not to have it. In addition, the way to handle reference counting is also different. So IMHO, it would have less benefits to integrate these classes.

I&apos;ll post revised patch after receiving responses.

&gt;&gt; WebCore/html/ClassList.cpp:63
&gt;&gt; +    if (!m_classNamesNeedsUpdate)
&gt; 
&gt; I think I may have misguided you.
&gt; 
&gt; SpaceSplitString is already smart enough to actually not build the vector until needed. When calling set() it will only clear the current vector and keep the string for the future.
&gt; 
&gt; The problem was that you were calling add and remove (which rebuild the vector) after we already called setAttribute (which in turn call set() on the SpaceSplitString) so we lost the optimization.
&gt; 
&gt; I think this whole method can be removed since classList is always up to date due to reset being called when someone sets the class attribute.

Thank you for collecting my mistake. I thought at first SpaceSplitString is not smart enough, but actually it is, as you explained above.  So I&apos;ve just removed these functions and the flag.

&gt;&gt; WebCore/html/ClassList.cpp:74
&gt;&gt; +    // We need this ulgy const_cast to conform with the className attribute
&gt; 
&gt; typo

The comment is no longer exist.

&gt;&gt; WebCore/html/ClassList.cpp:89
&gt;&gt; +    // We need this ulgy const_cast to conform with the className attribute
&gt; 
&gt; typo

Ditto.

&gt;&gt; WebCore/html/ClassList.cpp:138
&gt;&gt; +    m_classNamesNeedsUpdate = true;
&gt; 
&gt; same here
&gt; 
&gt; ... and now there are no more places where it gets set to true so that means that updateClassNamesForQuirksModeIfNeeded is a noop

Thank you for detailed explanation. I understand it.

&gt;&gt; WebCore/html/ClassList.h:57
&gt;&gt; +    void reset(const String&amp;);
&gt; 
&gt; why don&apos;t we rename this to setValue for consistency?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298737</commentid>
    <comment_count>27</comment_count>
      <attachid>71521</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-24 23:44:13 -0700</bug_when>
    <thetext>Comment on attachment 71521
Patch V4

r- because of Erik&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298922</commentid>
    <comment_count>28</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-10-25 09:50:55 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Thank you for your comments. I&apos;ll follow your comment on removing the flag and unnecessary functions. But, as for integrating ClassList and DOMSettableTokenList, I am wondering that we should do it. There are several difference between them. ClassList has the reference of the element but DOMSettableTokenList needs not to have it. In addition, the way to handle reference counting is also different. So IMHO, it would have less benefits to integrate these classes.

I was thinking that ClassList would extend SettableDOMTokenList and override a few methods so that it can hook the changes to the class attribute. Either way, I&apos;m fine either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299220</commentid>
    <comment_count>29</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-25 17:49:09 -0700</bug_when>
    <thetext>(In reply to comment #28)

&gt; I was thinking that ClassList would extend SettableDOMTokenList and override a few methods so that it can hook the changes to the class attribute. Either way, I&apos;m fine either way.

Thank you for your suggestion. However, I&apos;d like to stay them to be divided following reasons: (1) DOMSettableTokenList has a string member variable, which is not necessary for ClassList so it would waste memory. (2) The reference counting strategy is different between ClassList and DOMSettableTokenList, and RefCounted&lt;T&gt;, which is used by DOMSettableTokenList, defines it&apos;s ref() and deref() as non-virtual functions so we might need to modify RefCounted&lt;T&gt; class.

I&apos;ll post revised patch soon.

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299241</commentid>
    <comment_count>30</comment_count>
      <attachid>71833</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-25 19:30:26 -0700</bug_when>
    <thetext>Created attachment 71833
Patch V5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300881</commentid>
    <comment_count>31</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-27 22:17:31 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Created an attachment (id=71833) [details]
&gt; Patch V5

I&apos;ll set r+ tomorrow if no one objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301587</commentid>
    <comment_count>32</comment_count>
      <attachid>71833</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-28 22:29:51 -0700</bug_when>
    <thetext>Comment on attachment 71833
Patch V5

I confirmed that this patch conflicted with the latest WebKit tree.
Would you rebase the patch please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301635</commentid>
    <comment_count>33</comment_count>
      <attachid>72300</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-29 01:56:34 -0700</bug_when>
    <thetext>Created attachment 72300
Patch V6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301636</commentid>
    <comment_count>34</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2010-10-29 01:57:45 -0700</bug_when>
    <thetext>Kent-san,

I&apos;ve rebased. Thanks!

(In reply to comment #32)
&gt; (From update of attachment 71833 [details])
&gt; I confirmed that this patch conflicted with the latest WebKit tree.
&gt; Would you rebase the patch please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301637</commentid>
    <comment_count>35</comment_count>
      <attachid>72300</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-29 01:58:11 -0700</bug_when>
    <thetext>Comment on attachment 72300
Patch V6

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301642</commentid>
    <comment_count>36</comment_count>
      <attachid>72300</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-29 02:32:26 -0700</bug_when>
    <thetext>Comment on attachment 72300
Patch V6

Clearing flags on attachment: 72300

Committed r70854: &lt;http://trac.webkit.org/changeset/70854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301643</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-29 02:32:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301658</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-29 03:01:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70854 might have broken Qt Linux Release
The following tests are not passing:
fast/dom/Window/window-properties.html
fast/dom/Window/window-property-descriptors.html
fast/dom/prototype-inheritance.html
fast/js/global-constructors.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301672</commentid>
    <comment_count>39</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-29 03:51:21 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; http://trac.webkit.org/changeset/70854 might have broken Qt Linux Release
&gt; The following tests are not passing:
&gt; fast/dom/Window/window-properties.html
&gt; fast/dom/Window/window-property-descriptors.html
&gt; fast/dom/prototype-inheritance.html
&gt; fast/js/global-constructors.html

Fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71026</attachid>
            <date>2010-10-18 05:41:23 -0700</date>
            <delta_ts>2010-10-19 03:19:12 -0700</delta_ts>
            <desc>Patch V0</desc>
            <filename>bug-47810-20101018214121.patch</filename>
            <type>text/plain</type>
            <size>57309</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMmI3NTQ0MWJkMWM5ZmI1ZGFjOGQ0ZWUzNzgzNmIwZjM5ZGQ4ODgxLi4yNWZhNDU1
ZWM1NDhiYjhlYWE0YjRkODVjOWI3YmY2ZjdjNjUzNmRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTAtMTggIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBE
T01TZXR0YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc4MTAKKworICAgICAgICBVcGRhdGUgZXhwZWN0YXRpb25zLgorCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0OgorCiAyMDEwLTEwLTE4ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKaW5k
ZXggOTZkNjlkNDU4NzllMzNlNWFiNzZlYjlkZWM5NjRmZTVkYTU1OWI5YS4uYTI5N2IzMTc3YWM2
MGVhYzM3MzM5M2FmOTdkZDBjMTZhMDBjOWIxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC01
NTUsNiArNTU1LDE0IEBAIHdpbmRvdy5ET01JbXBsZW1lbnRhdGlvbi5wcm90b3R5cGUuaGFzRmVh
dHVyZSBbZnVuY3Rpb25dCiB3aW5kb3cuRE9NUGFyc2VyIFtvYmplY3QgRE9NUGFyc2VyQ29uc3Ry
dWN0b3JdCiB3aW5kb3cuRE9NUGFyc2VyLnByb3RvdHlwZSBbb2JqZWN0IERPTVBhcnNlclByb3Rv
dHlwZV0KIHdpbmRvdy5ET01QYXJzZXIucHJvdG90eXBlLnBhcnNlRnJvbVN0cmluZyBbZnVuY3Rp
b25dCit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QgW29iamVjdCBET01TZXR0YWJsZVRva2Vu
TGlzdENvbnN0cnVjdG9yXQord2luZG93LkRPTVNldHRhYmxlVG9rZW5MaXN0LnByb3RvdHlwZSBb
b2JqZWN0IERPTVNldHRhYmxlVG9rZW5MaXN0UHJvdG90eXBlXQord2luZG93LkRPTVNldHRhYmxl
VG9rZW5MaXN0LnByb3RvdHlwZS5hZGQgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9r
ZW5MaXN0LnByb3RvdHlwZS5jb250YWlucyBbZnVuY3Rpb25dCit3aW5kb3cuRE9NU2V0dGFibGVU
b2tlbkxpc3QucHJvdG90eXBlLml0ZW0gW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9r
ZW5MaXN0LnByb3RvdHlwZS5yZW1vdmUgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9r
ZW5MaXN0LnByb3RvdHlwZS50b1N0cmluZyBbZnVuY3Rpb25dCit3aW5kb3cuRE9NU2V0dGFibGVU
b2tlbkxpc3QucHJvdG90eXBlLnRvZ2dsZSBbZnVuY3Rpb25dCiB3aW5kb3cuRE9NU3RyaW5nTGlz
dCBbb2JqZWN0IERPTVN0cmluZ0xpc3RDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5ET01TdHJpbmdMaXN0
LnByb3RvdHlwZSBbb2JqZWN0IERPTVN0cmluZ0xpc3RQcm90b3R5cGVdCiB3aW5kb3cuRE9NU3Ry
aW5nTGlzdC5wcm90b3R5cGUuY29udGFpbnMgW2Z1bmN0aW9uXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2Ny
aXB0b3JzLWV4cGVjdGVkLnR4dAppbmRleCBiYmJmNGY3NDliNTBiYTdmMDliMWQwZmRhNDY1ZTI4
NmUxMTFhYTQ1Li5mYjUxODAxY2UzNTExNzJmZDgzYjJiMjYyZDIwZjFhMmExNGEyZGRiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2Ny
aXB0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dApAQCAtMzgsNiArMzgsNyBAQCBQ
QVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0NvdW50
ZXInKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcih3aW5kb3csICdET01FeGNlcHRpb24nKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01JbXBsZW1lbnRhdGlvbicp
IGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KHdpbmRvdywgJ0RPTVBhcnNlcicpIGlzICdvYmplY3QnCitQQVNTIHR5cGVvZiBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0RPTVNldHRhYmxlVG9rZW5MaXN0JykgaXMg
J29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2lu
ZG93LCAnRE9NU3RyaW5nTGlzdCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0RPTVN0cmluZ01hcCcpIGlzICdvYmplY3Qn
CiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0RP
TVRva2VuTGlzdCcpIGlzICdvYmplY3QnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKaW5kZXggY2IzMzM4NzQ1
MWFhZGQzZmMzNWRmNDI2NTBlOGRlOTdhNjE5NTQwYS4uNmQ4NjYwODczNGVhYjk2NTYyMzk0Y2Fi
NDg4NDg4YTgyMmMzYWZmYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90
eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dApAQCAtMjI2LDYgKzIyNiw3IEBA
IE5ldmVyIGZvdW5kIENhbnZhc0dyYWRpZW50CiBOZXZlciBmb3VuZCBDaGFyYWN0ZXJEYXRhCiBO
ZXZlciBmb3VuZCBDbGlwYm9hcmQKIE5ldmVyIGZvdW5kIERPTVBhcnNlcgorTmV2ZXIgZm91bmQg
RE9NU2V0dGFibGVUb2tlbkxpc3QKIE5ldmVyIGZvdW5kIERPTVN0cmluZ0xpc3QKIE5ldmVyIGZv
dW5kIERvY3VtZW50CiBOZXZlciBmb3VuZCBEb2N1bWVudEZyYWdtZW50CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApp
bmRleCBmYTY0NzZhZGRhNjgyMWQ3N2JmYjNjMjI2MGZkNzEzYzQ1ZjgxZDNmLi41M2M0MzM5NmU2
NTczODY2YzllZWQ0MzllNGJmMWVhZDkzNTg5M2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKQEAgLTczLDYg
KzczLDggQEAgUEFTUyBpbm5lci5ET01JbXBsZW1lbnRhdGlvbi5pc0lubmVyIGlzIHRydWUKIFBB
U1MgaW5uZXIuRE9NSW1wbGVtZW50YXRpb24uY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQ
QVNTIGlubmVyLkRPTVBhcnNlci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRE9NUGFyc2Vy
LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5ET01TZXR0YWJsZVRva2Vu
TGlzdC5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRE9NU2V0dGFibGVUb2tlbkxpc3QuY29u
c3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkRPTVN0cmluZ0xpc3QuaXNJbm5l
ciBpcyB0cnVlCiBQQVNTIGlubmVyLkRPTVN0cmluZ0xpc3QuY29uc3RydWN0b3IuaXNJbm5lciBp
cyB0cnVlCiBQQVNTIGlubmVyLkRPTVN0cmluZ01hcC5pc0lubmVyIGlzIHRydWUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDIxNDNiODZkMzUzYjc5ZGFlNGE4OTEzNTdiYjI0ZDYyYjU0MTc4ZjkuLjczNzEzYmUxZGM5
YmEyMzA1NjJhOGZlMmI0YWI3N2U2M2I1M2JiNDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dApAQCAtMzYsNiArMzYsNyBA
QCBQQVNTIENvdW50ZXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBDb3VudGVyQ29uc3RydWN0b3Jd
JwogUEFTUyBET01FeGNlcHRpb24udG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01FeGNlcHRpb25D
b25zdHJ1Y3Rvcl0nCiBQQVNTIERPTUltcGxlbWVudGF0aW9uLnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgRE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3Rvcl0nCiBQQVNTIERPTVBhcnNlci50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IERPTVBhcnNlckNvbnN0cnVjdG9yXScKK1BBU1MgRE9NU2V0dGFibGVU
b2tlbkxpc3QudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01TZXR0YWJsZVRva2VuTGlzdENvbnN0
cnVjdG9yXScKIFBBU1MgRE9NU3RyaW5nTGlzdC50b1N0cmluZygpIGlzICdbb2JqZWN0IERPTVN0
cmluZ0xpc3RDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTVN0cmluZ01hcC50b1N0cmluZygpIGlzICdb
b2JqZWN0IERPTVN0cmluZ01hcENvbnN0cnVjdG9yXScKIFBBU1MgRE9NVG9rZW5MaXN0LnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgRE9NVG9rZW5MaXN0Q29uc3RydWN0b3JdJwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQu
ZGVyaXZlZC5qc2NiaW5kaW5ncy5tawppbmRleCBhOTI3ZjExZDY3OTc2MDVhMjMwM2U3ZjYwZmIw
YmJiNDE2M2M5MTBlLi43YTg1MGEzYWRhYjAxOTMxMjA4YTQzMWNjMWEzYmUzNmJkMTFjYWE4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5taworKysgYi9X
ZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawpAQCAtMTU5LDYgKzE1OSw3IEBA
IEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTQmxvYi5oIFwKICAgICAkKGlu
dGVybWVkaWF0ZXMpL2h0bWwvSlNCbG9iQnVpbGRlci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMp
L2h0bWwvSlNET01Gb3JtRGF0YS5oIFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNET01T
ZXR0YWJsZVRva2VuTGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNET01Ub2tl
bkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRGF0YUdyaWRDb2x1bW4uaCBc
CiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRGF0YUdyaWRDb2x1bW5MaXN0LmggXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lk
LmpzY2JpbmRpbmdzLm1rCmluZGV4IDA4MTYxMTM0OTlmMzM1MDU0NWRhMDFkY2U5ZmE5ODkwZDQ0
OTA1OTcuLjhkZDBlODUzNjMyOGRjOTdmMmRlNGJlZDBiZjkxZjBmNzFiYjRiMGEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQu
anNjYmluZGluZ3MubWsKQEAgLTgzLDYgKzgzLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAli
aW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRh
Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIFwKKwliaW5k
aW5ncy9qcy9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01U
b2tlbkxpc3QuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIFwKIAliaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzYwMzNjZjY5Y2JkZjZh
NmI3MjBlOWRkOTc1NWE5ZjU3MzI1ZDM2NS4uNDFhMmNkMmI2NTliZDU5ZTg4NjYzNGUyOTRkN2Yw
NTI4MjE5ODI4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDYsNiArMjA2LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJ
TEVTCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5pZGwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1u
TGlzdC5pZGwKICAgICBodG1sL0RPTUZvcm1EYXRhLmlkbAorICAgIGh0bWwvRE9NU2V0dGFibGVU
b2tlbkxpc3QuaWRsCiAgICAgaHRtbC9ET01Ub2tlbkxpc3QuaWRsCiAgICAgaHRtbC9IVE1MQWxs
Q29sbGVjdGlvbi5pZGwKICAgICBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbApAQCAtOTU0LDYg
Kzk1NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0NvbG9ySW5wdXRUeXBlLmNw
cAogICAgIGh0bWwvRE9NRGF0YUdyaWREYXRhU291cmNlLmNwcAogICAgIGh0bWwvRE9NRm9ybURh
dGEuY3BwCisgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKICAgICBodG1sL0RPTVRv
a2VuTGlzdC5jcHAKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmNwcAogICAgIGh0bWwvRGF0YUdy
aWRDb2x1bW5MaXN0LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBiMjYwMGMzNjJiZGQwOTUxNGJjYjE1ZTdhYzhjNTIyZWM2YzBjMDVi
Li4xZWMyZTNlZTk2OTdlNTAyMzNiOGY5OWI2MmQ5ZGVmZGQ3ZTYxODIyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBA
CisyMDEwLTEwLTE4ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0hUTUw1XSBBZGQg
RE9NU2V0dGFibGVUb2tlbkxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ3ODEwCisKKyAgICAgICAgQWRkcyBET01TZXR0YWJsZVRva2VuTGlzdCBp
bnRlcmZhY2UgdG8gc3VwcG9ydCA8b3V0cHV0PiBlbGVtZW50LgorICAgICAgICBUaGUgRE9NVG9r
ZW5MaXN0IGludGVyZmFjZSB3YXMgcmVmYWN0b3JlZCBzaW5jZSBpdHMgd2FzIHRpZ2h0bHkgY291
cGxlZAorICAgICAgICB3aXRoIEhUTUxFbGVtZW50LmNsYXNzTGlzdCBwcm9wZXJ0eS4KKworICAg
ICAgICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lk
LmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
Y2xhc3NMaXN0KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgICog
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6
Y2xhc3NBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvQ2xhc3NMaXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
bGFzc0xpc3Q6OkNsYXNzTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnJlZik6
CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmRlcmVmKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsYXNzTGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6aXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNv
cmU6OkNsYXNzTGlzdDo6Y29udGFpbnNJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFz
c0xpc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmFkZEludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsYXNzTGlzdDo6cmVtb3ZlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0
Ojp0b2dnbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0Ojp0b1N0cmluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNz
TGlzdDo6Y2xhc3NOYW1lcyk6CisgICAgICAgICogaHRtbC9DbGFzc0xpc3QuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
bGFzc0xpc3Q6OmVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpET01T
ZXR0YWJsZVRva2VuTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlz
dDo6fkRPTVNldHRhYmxlVG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxl
VG9rZW5MaXN0OjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0
Ojpjb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6YWRk
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpyZW1vdmUpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnRvZ2dsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNl
dHRhYmxlVG9rZW5MaXN0OjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRv
a2VuTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJlZik6
CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6ZGVyZWYpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6Omxlbmd0aCk6CisgICAgICAgICogaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvRE9NVG9r
ZW5MaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tl
bik6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnJlbW92ZVRva2VuKToKKyAgICAg
ICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0
Ojp+RE9NVG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6ZWxlbWVu
dCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmlkbDoKKwogMjAxMC0xMC0xOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAppbmRleCAwMWY1MDIzOGY3NzNkMzAxZWIwZGE0Y2IwOTk5MDY0Zjk3ZDg0NGZjLi44MGMxMzA0
MjNmNjY2MGU4M2JlNmNiZWJiNmVkM2YzNTkwZjA3NjE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtOTIs
NiArOTIsNyBAQAogI2luY2x1ZGUgIkpTRE9NUGx1Z2luLmNwcCIKICNpbmNsdWRlICJKU0RPTVBs
dWdpbkFycmF5LmNwcCIKICNpbmNsdWRlICJKU0RPTVNlbGVjdGlvbi5jcHAiCisjaW5jbHVkZSAi
SlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNET01TdHJpbmdMaXN0LmNw
cCIKICNpbmNsdWRlICJKU0RPTVN0cmluZ01hcC5jcHAiCiAjaW5jbHVkZSAiSlNET01Ub2tlbkxp
c3QuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM0MmJiN2I1YTY5YmVhYTVmYTk1OGU0OTM2YzZk
NzllZjgwZGVmZDYuLjRlNzMyZGU1YTgwNmYzYTMyZDU5ODgxOTUyNmM0ZTlmYTJlMzdlOTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNSw2ICsxMjUsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBE
T01TZWxlY3Rpb24gXAogICAgIERPTVN0cmluZ0xpc3QgXAogICAgIERPTVN0cmluZ01hcCBcCisg
ICAgRE9NU2V0dGFibGVUb2tlbkxpc3QgXAogICAgIERPTVRva2VuTGlzdCBcCiAgICAgRE9NV2lu
ZG93IFwKICAgICBEYXRhYmFzZSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3MzVmNjFiM2VjYWVkODAyZGIyYTY0NzI1
MTUwOWFlNDVhYTIxZTk1Li5jODQ3MjM3YjY1ZTU0NzVmZGExZjQxMzg4YWI2YzU2ZDdmZWRmOTQ2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KQEAgLTIyMCw2ICsyMjAsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01QbHVnaW4uaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RPTVNlbGVjdGlvbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
T01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVNldHRhYmxlVG9rZW5M
aXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TdHJpbmdMaXN0LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVN0cmluZ0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RPTVN0cmluZ01hcC5jcHAgXApAQCAtMTQ2OSw2ICsxNDcxLDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQuaCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgXAogCVdlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaCBcCisJV2ViQ29yZS9odG1sL0RPTVNldHRhYmxl
VG9rZW5MaXN0LmNwcCBcCisJV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmggXAog
CVdlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIFwKIAlXZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmggXAogCVdlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA3ODgw
NjA2Nzg0NWRhNDFkNWY1YTBhNmI5ZTg2YmNmNGMyOTlkOTkyLi4zYTZkNTQ5MmFlNzcwOTU3NmRh
NTE2YTNmMDhlMGE3YmJiNDRmZDBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTE3LDYgKzExNyw3IEBACiAgICAgICAgICAg
ICAnZmlsZWFwaS9NZXRhZGF0YS5pZGwnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvTWV0YWRhdGFD
YWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuaWRsJywKKyAgICAg
ICAgICAgICdodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCcsCiAgICAgICAgICAgICAnaHRt
bC9ET01Ub2tlbkxpc3QuaWRsJywKICAgICAgICAgICAgICdodG1sL0RhdGFHcmlkQ29sdW1uLmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaWRsJywKQEAgLTE1NDgs
NiArMTU0OSw4IEBACiAgICAgICAgICAgICAnaHRtbC9CdXR0b25JbnB1dFR5cGUuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
Q2hlY2tib3hJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9DbGFzc0xpc3QuY3BwJywK
KyAgICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5oJywKICAgICAgICAgICAgICdodG1sL0NvbGxl
Y3Rpb25DYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvQ29sbGVjdGlvbkNhY2hlLmgnLAog
ICAgICAgICAgICAgJ2h0bWwvQ29sbGVjdGlvblR5cGUuaCcsCkBAIC0xNTU3LDYgKzE1NjAsOCBA
QAogICAgICAgICAgICAgJ2h0bWwvRE9NRGF0YUdyaWREYXRhU291cmNlLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvRE9NRm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICdodG1sL0RPTUZvcm1EYXRh
LmgnLAorICAgICAgICAgICAgJ2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwJywKKyAgICAg
ICAgICAgICdodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgnLAogICAgICAgICAgICAgJ2h0bWwv
RE9NVG9rZW5MaXN0LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9ET01Ub2tlbkxpc3QuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggMDUxZjRkOWMyNjVkM2Y2
MTFhMjAzNzc2NGQyMTliYjcwNmZjYmI3NS4uM2IzOGE0NTY0ODI1OGE1NzQzM2FkOGNmNzAzNWJh
NzYzMTY3MzMzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUucHJpCkBAIC0yMDcsNiArMjA3LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBo
dG1sL0RhdGFHcmlkQ29sdW1uLmlkbCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaWRs
IFwKICAgICBodG1sL0RPTUZvcm1EYXRhLmlkbCBcCisgICAgaHRtbC9ET01TZXR0YWJsZVRva2Vu
TGlzdC5pZGwgXAogICAgIGh0bWwvRE9NVG9rZW5MaXN0LmlkbCBcCiAgICAgaHRtbC9IVE1MQWxs
Q29sbGVjdGlvbi5pZGwgXAogICAgIGh0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZmE3
MzQ1MDY5M2IxMDZlNjgzOTlmYzhiMGFiZTQ3MWNkMGQ0MzQyZC4uMjEzOGEwNzZlNmFiNDg3ODMx
NjRjNzBmYzA3MTNmZjE0ZTAzODlhYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC04NDQsNiArODQ0LDcgQEAgU09VUkNFUyArPSBc
CiAgICAgaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvRE9NRGF0YUdyaWREYXRh
U291cmNlLmNwcCBcCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5jcHAgXAorICAgIGh0bWwvRE9NU2V0
dGFibGVUb2tlbkxpc3QuY3BwIFwKICAgICBodG1sL0RPTVRva2VuTGlzdC5jcHAgXAogICAgIGh0
bWwvRGF0YUdyaWRDb2x1bW4uY3BwIFwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAg
XApAQCAtMTc1MCw2ICsxNzUxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9EYXRlQ29tcG9u
ZW50cy5oIFwKICAgICBodG1sL0RPTURhdGFHcmlkRGF0YVNvdXJjZS5oIFwKICAgICBodG1sL0RP
TUZvcm1EYXRhLmggXAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAgICAgaHRt
bC9ET01Ub2tlbkxpc3QuaCBcCiAgICAgaHRtbC9Gb3JtRGF0YUxpc3QuaCBcCiAgICAgaHRtbC9G
VFBEaXJlY3RvcnlEb2N1bWVudC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGE3Y2ZmNTIzOTVkYzZjNWZhYmEzN2RkMDA3NjQ1YTZjNTQ5NTk3N2YuLmE5MWFiZGRl
YzAxM2QwMGM1ZTA2MjlkYWY2ZTU4MDE1NDU3MGRhNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMzk1OSw2ICszOTU5LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiDQor
CQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
X0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01TZXR0YWJsZVRva2VuTGlz
dC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0i
JChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RP
TVN0cmluZ0xpc3QuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTQ4
MTIzLDYgKzQ4MTc5LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ2xhc3NMaXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ2xhc3NMaXN0LmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXENv
bGxlY3Rpb25DYWNoZS5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAt
NDgyODcsNiArNDgzNTEsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caHRtbFxET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXERPTVNl
dHRhYmxlVG9rZW5MaXN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXERPTVRva2VuTGlzdC5jcHAiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMzIz
Yzk0NTgyYTY1MzU5NmRkYTYyZTNlZTQ0MDFjYWUzZWNlMWFhLi5mODEyZjI1OTE4MGM0MDJjYjJk
NTczMDRhYzkxZjMzODE5YTY5Mzk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTEwMyw2ICsxMTAzLDEyIEBACiAJCTQ5RkZCRjNGMTFDOTNFRTMwMDZB
NzExOCAvKiBXZWJHTExheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OUZGQkYzRDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oICovOyB9
OwogCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNFMTFDOTNFRTMwMDZB
NzExOCAvKiBXZWJHTExheWVyLm1tICovOyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAg
LyogU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBOEM5NkVBMEJFNjkwMzIwMDRFRUZGMCAvKiBTZWxlY3Rpb25D
b250cm9sbGVyTWFjLm1tICovOyB9OworCQk0QTk4MzNEODEyNkM3MzZEMDA4NkMxOTEgLyogQ2xh
c3NMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBOTgzM0Q2MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3QuY3BwICovOyB9OworCQk0QTk4
MzNEOTEyNkM3MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNENzEyNkM3MzZEMDA4NkMxOTEgLyogQ2xh
c3NMaXN0LmggKi87IH07CisJCTRBOTgzM0REMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJs
ZVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QTk4MzNEQTEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3Bw
ICovOyB9OworCQk0QTk4MzNERTEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOTgz
M0RCMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovOyB9OworCQk0
QTk4MzNFMjEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNFMDEyNkM3
M0FGMDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi87IH07CisJCTRBOTgz
M0UzMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNFMTEyNkM3M0FGMDA4
NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5oICovOyB9OwogCQk0QjI3MDhDNzBBRjE5
RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQu
aCAqLzsgfTsKIAkJNEIyNzA5ODMwQUYyRTVFMDAwNjUxMjdGIC8qIFBhc3RlYm9hcmRNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjI3MDk4MTBB
RjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLzsgfTsKIAkJNEIzMDQzQzcwQUUw
MzcwMzAwQTgyNjQ3IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QjMwNDNDNjBBRTAzNzAzMDBBODI2NDcgLyogU291bmQuaCAqLzsgfTsK
QEAgLTcxNTcsNiArNzE2MywxMyBAQAogCQk0OUZGQkYzRDExQzkzRUUzMDA2QTcxMTggLyogV2Vi
R0xMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTExheWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAv
KiBXZWJHTExheWVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViR0xMYXllci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE4Qzk2RUEwQkU2
OTAzMjAwNEVFRkYwIC8qIFNlbGVjdGlvbkNvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbTsgcGF0
aCA9IG1hYy9TZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0QTk4MzNENjEyNkM3MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsYXNzTGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTRBOTgzM0Q3MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBOTgzM0RBMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0
YWJsZVRva2VuTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
T01TZXR0YWJsZVRva2VuTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
OTgzM0RCMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTk4MzNEQzEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0
dGFibGVUb2tlbkxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVNldHRhYmxlVG9r
ZW5MaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5ODMzRTAxMjZDNzNB
RjAwODZDMTkxIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBOTgzM0UxMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNl
dHRhYmxlVG9rZW5MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9N
U2V0dGFibGVUb2tlbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEIyNzA4
QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QjI3MDk4MTBBRjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhc3RlYm9hcmRNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRCMzA0M0M2MEFFMDM3MDMwMEE4MjY0NyAvKiBTb3VuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291bmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE0NTE2LDYgKzE0NTI5LDggQEAKIAkJCQlGNTVCM0Q3QzEyNTFGMTJE
MDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmggKi8sCiAJCQkJRjU1QjNEN0QxMjUxRjEyRDAw
M0VGMjY5IC8qIENoZWNrYm94SW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q3RTEyNTFGMTJE
MDAzRUYyNjkgLyogQ2hlY2tib3hJbnB1dFR5cGUuaCAqLywKKwkJCQk0QTk4MzNENjEyNkM3MzZE
MDA4NkMxOTEgLyogQ2xhc3NMaXN0LmNwcCAqLywKKwkJCQk0QTk4MzNENzEyNkM3MzZEMDA4NkMx
OTEgLyogQ2xhc3NMaXN0LmggKi8sCiAJCQkJOTNDNDQxRUQwRjgxM0ExQTAwQzFBNjM0IC8qIENv
bGxlY3Rpb25DYWNoZS5jcHAgKi8sCiAJCQkJOTNDNDQxRUUwRjgxM0ExQTAwQzFBNjM0IC8qIENv
bGxlY3Rpb25DYWNoZS5oICovLAogCQkJCTkzQzQ0MUZGMEY4MTNBRTEwMEMxQTYzNCAvKiBDb2xs
ZWN0aW9uVHlwZS5oICovLApAQCAtMTQ1NDEsNiArMTQ1NTYsOSBAQAogCQkJCTJFRDYwOUJBMTE0
NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5jcHAgKi8sCiAJCQkJMkVENjA5QkIxMTQ1QjA3
MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggKi8sCiAJCQkJMkUwODg4QzMxMTQ4ODNBOTAwQUY0
MjY1IC8qIERPTUZvcm1EYXRhLmlkbCAqLywKKwkJCQk0QTk4MzNEQTEyNkM3MzdDMDA4NkMxOTEg
LyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovLAorCQkJCTRBOTgzM0RCMTI2QzczN0MwMDg2
QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovLAorCQkJCTRBOTgzM0RDMTI2QzczN0Mw
MDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgKi8sCiAJCQkJNzZGQzJCMDgxMjM3
MERBMDAwNkE5OTFBIC8qIERPTVRva2VuTGlzdC5jcHAgKi8sCiAJCQkJNzZGQzJCMDkxMjM3MERB
MDAwNkE5OTFBIC8qIERPTVRva2VuTGlzdC5oICovLAogCQkJCTc2RkMyQjBBMTIzNzBEQTAwMDZB
OTkxQSAvKiBET01Ub2tlbkxpc3QuaWRsICovLApAQCAtMTUwOTEsNiArMTUxMDksOCBAQAogCQkJ
CUJDNzdEMTY4MEZGMTlGNTUwMDcwODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5oICovLAog
CQkJCTJFMDg4OEQyMTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCAqLywKIAkJ
CQkyRTA4ODhEMzExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5oICovLAorCQkJCTRB
OTgzM0UwMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywK
KwkJCQk0QTk4MzNFMTEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5o
ICovLAogCQkJCTc2OTQ1NjNBMTIxNEQ5N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5jcHAg
Ki8sCiAJCQkJNzY5NDU2M0IxMjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0LmggKi8s
CiAJCQkJNDlFRUNFRjQxMDUwNzBDNDAwMDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmNwcCAqLywK
QEAgLTE4Mzk1LDYgKzE4NDE1LDcgQEAKIAkJCQlBODE4NzIyMDA5NzdEM0MwMDA1ODI2RDkgLyog
Q2hpbGROb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTREODIzNTIwQUY5MkE3OTAwMDRG
MDU3IC8qIENocm9tZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTREODI0MDgwQUY5M0FFQjAwMDRG
MDU3IC8qIENocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE5ODMzRDkxMjZDNzM2
RDAwODZDMTkxIC8qIENsYXNzTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDRCNzcwRDEw
OTk4RjAwNjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzA2
NTdFMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0MwNjU4MTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICov
LApAQCAtMTg4MjIsNiArMTg4NDMsNyBAQAogCQkJCTg1NUQzNThBMEFENzA3MzEwMDE5QUFDNyAv
KiBET01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMEZDNEYwREJENzIwQjAwQjJG
NjMwIC8qIERPTVJHQkNvbG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUE4Njg1
MEMzMzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRB
OTgzM0RFMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdN
YXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjUwMjVCMTAyQkE5MDEwMDY2RjM5QSAvKiBET01T
dHlsZU1lZGlhLmggaW4gSGVhZGVycyAqLywKQEAgLTE5Njc2LDYgKzE5Njk4LDcgQEAKIAkJCQk5
RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFGMDYyMDEwRjVGMEI2NjAwQTA3RUFDIC8qIEluc3BlY3RvclJlc291
cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkFCMTc3NjEyNUM4MjY3MDBDNTA2OUQgLyogSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEZBM0I5MEIxMjVDRDEy
MjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUIwQjFD
MTEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4MkFCMTc3NDEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTMzQTgxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTk3ODEsNiArMTk4MDQsNyBAQAog
CQkJCUE5RDI0N0ZGMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTlEMjQ4MDEwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNUE4NkI2MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE5ODMzRTMxMjZDNzNBRjAwODZDMTkxIC8qIEpT
RE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1MTM3Q0YzMTFBNTgz
NzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2
NDk4MTFEODIzNDkwMDY0NTVCMCAvKiBKU0RPTVN0cmluZ01hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzY5NDU2M0QxMjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTIwMjAyLDYgKzIwMjI2LDcgQEAKIAkJCQkxQThGNkJDNjBEQjU1Q0RDMDAxREI3
OTQgLyogTWFuaWZlc3RQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODRDMDlENTY0
OUQwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8qIG1hcmt1cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGQUJFNzJGNTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkFCRTcyRjcxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTElubGlu
ZUNvbnRhaW5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY5MTA1OUMxRUIw
MEQ5OTlERCAvKiBNYXRoTUxNYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTA4MSw4
ICsyMTEwNiw2IEBACiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNz
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xU
VW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlB
NCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0RkEzQjkwQjEyNUNEMTIyMDAz
MDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3MjhDMzE0MTI2
OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MTQ5NSw2ICsyMTUxOCw3IEBACiAJCQkJQTgxODcyMjUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxk
Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTREODIzOEIwQUY5MkRGNjAwMDRGMDU3
IC8qIENocm9tZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBQkFGMjIwODBDMDNCMUM3MDBCMEJD
RjAgLyogQ2hyb21lTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNEE5ODMzRDgxMjZDNzM2RDAw
ODZDMTkxIC8qIENsYXNzTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzkwNEI3NjBEMTA5
OThGMDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Mw
NjU3RDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0MwNjU4MDBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yMTc2OCw2ICsyMTc5Miw3IEBACiAJCQkJODU4QzM4QTgwQUE4RjIwNDAwQjE4
N0E0IC8qIERPTVJlY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0FFRkNBRTEwMTZDRTRBMDA0
MEQzNEUgLyogRE9NUkdCQ29sb3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzVBODY4NDBDMzM2
NzYwMDBFRUE2NDkgLyogRE9NU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBOTgz
M0REMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDNTU2MTBGMTExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQwOTExRDdGMzA0MDA2NDU1QjAgLyogRE9NU3RyaW5n
TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjUwMjVDMTAyQkE5MDEwMDY2RjM5QSAvKiBE
T01TdHlsZU1lZGlhLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yMjI0Niw2ICsyMjI3MSw3IEBACiAJ
CQkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMDYyMDIwRjVGMEI2NjAwQTA3RUFDIC8qIEluc3BlY3Rv
clJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQUIxNzc1MTI1QzgyNjcwMEM1MDY5
RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRGQTNC
OTBBMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3QUIwQjFDMDEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yU3RvcmFnZUFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTgyQUIxNzczMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NDEzM0FBMTAyRTAwRjQwMDA3
NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjIz
NzYsNiArMjI0MDIsNyBAQAogCQkJCUE5QzZFNjRDMEQ3NDY1RTcwMDY0NDJFOSAvKiBKU0RPTVBs
dWdpbkFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNjREMEQ3NDY1RTcw
MDY0NDJFOSAvKiBKU0RPTVBsdWdpbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVB
ODZCNTBDMzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNEE5ODMzRTIxMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUxMzdDRjIxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9N
U3RyaW5nTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQ5NzExRDgyMzQ5MDA2NDU1
QjAgLyogSlNET01TdHJpbmdNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NDY0OUMxMUQ4
MjM4QzAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjI4NjMsNiArMjI4OTAsNyBAQAogCQkJCTkzRTIyN0UxMEFGNTg5QUQwMEQ0ODMyNCAvKiBN
YWluUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RjZCQzUwREI1NUNE
QzAwMURCNzk0IC8qIE1hbmlmZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5
REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTcy
OEMzMTMxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZBQkU3MkY0MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVtZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZBQkU3MkZEMTA1OUMyMTEwMEQ5OTlERCAvKiBNYXRoTUxFbGVt
ZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGNjEwNTlDMUVCMDBEOTk5
REQgLyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTIzNjI5LDggKzIzNjU3LDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNM
VFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RE
NEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk0RkEzQjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJOTcyOEMzMTMxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9y
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KaW5kZXggNTU3OWEzNWYxZmUwZDNmMjZkNjZjYWNmZmYxNWY5NDcyYjE2YzM0NC4u
ODJmNWI1ODA1OWNjODNmYTgzZTE2M2ZkNGViZmE5ZGNhNDczNThjNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yNDAsNyArMjQwLDcgQEAgc3Vi
IEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogCi0g
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iIG9yICR0eXBlIGVx
ICJNZWRpYUxpc3QiIG9yICR0eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIgb3IgJHR5
cGUgZXEgIkRPTVN0cmluZ0xpc3QiIG9yICR0eXBlIGVxICJET01Ub2tlbkxpc3QiOworICAgIHJl
dHVybiAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIiBvciAkdHlwZSBlcSAiTWVk
aWFMaXN0IiBvciAkdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iIG9yICR0eXBlIGVx
ICJET01TdHJpbmdMaXN0IiBvciAkdHlwZSBlcSAiRE9NVG9rZW5MaXN0IiBvciAkdHlwZSBlcSAi
RE9NU2V0dGFibGVUb2tlbkxpc3QiOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDgz
ZTEyOWU4ZTI4Y2ZhNTEwZWUwZDgxNTZkMjQzODVkMWU5M2RjZjkuLjc2ZDZlOWM4NGY1ZGI5ODgw
YmQyY2RlZWFkZTJjYWRjNGYwODE2Y2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVk
ZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkNsYXNzTGlzdC5oIgogI2luY2x1ZGUg
IkNsaWVudFJlY3QuaCIKICNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRP
TVRva2VuTGlzdC5oIgpAQCAtMTU4NSw3ICsxNTg2LDcgQEAgRE9NVG9rZW5MaXN0KiBFbGVtZW50
OjpjbGFzc0xpc3QoKQogewogICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJhcmVE
YXRhKCk7CiAgICAgaWYgKCFkYXRhLT5tX2NsYXNzTGlzdCkKLSAgICAgICAgZGF0YS0+bV9jbGFz
c0xpc3QgPSBET01Ub2tlbkxpc3Q6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgZGF0YS0+bV9jbGFz
c0xpc3QgPSBDbGFzc0xpc3Q6OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4gZGF0YS0+bV9jbGFz
c0xpc3QuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5oIGIvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggZjFlNjMzNDE4Y2MyNDY2
OTUzYTg5MjlhODBjM2NjY2M1NmViY2Q4YS4uMDZiZmUwYzdkYWI3MjgyNTE3NjZkN2U1YWVkZTRi
YzJlYzg2ZTYxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysr
IGIvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTIyLDcgKzIyLDcgQEAKICNpZm5k
ZWYgRWxlbWVudFJhcmVEYXRhX2gKICNkZWZpbmUgRWxlbWVudFJhcmVEYXRhX2gKIAotI2luY2x1
ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkNsYXNzTGlzdC5oIgogI2luY2x1ZGUgIkRh
dGFzZXRET01TdHJpbmdNYXAuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9k
ZVJhcmVEYXRhLmgiCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8UmVuZGVy
U3R5bGU+IG1fY29tcHV0ZWRTdHlsZTsKIAogICAgIE93blB0cjxEYXRhc2V0RE9NU3RyaW5nTWFw
PiBtX2RhdGFzZXRET01TdHJpbmdNYXA7Ci0gICAgT3duUHRyPERPTVRva2VuTGlzdD4gbV9jbGFz
c0xpc3Q7CisgICAgT3duUHRyPENsYXNzTGlzdD4gbV9jbGFzc0xpc3Q7CiB9OwogCiBpbmxpbmUg
SW50U2l6ZSBkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3Bw
CmluZGV4IDEyNzQ0Y2IwNjBjOWQ5MjBlNzNlMTQzNWEzNjQ1NGQ0MzhiMDk5NzMuLjczODRjMGJj
MmFiZmExNjg2NGViY2VjNTgyODk3M2NkZTAxMzkxYTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCkBA
IC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiAjaW5jbHVkZSAi
QXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDU1NWYWx1
ZUtleXdvcmRzLmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50OjpjbGFz
c0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdDbGFzc1N0cmluZykKICAg
ICBpZiAoaGFzQ2xhc3MpIHsKICAgICAgICAgYXR0cmlidXRlcygpLT5zZXRDbGFzcyhuZXdDbGFz
c1N0cmluZyk7CiAgICAgICAgIGlmIChET01Ub2tlbkxpc3QqIGNsYXNzTGlzdCA9IG9wdGlvbmFs
Q2xhc3NMaXN0KCkpCi0gICAgICAgICAgICBjbGFzc0xpc3QtPnJlc2V0KG5ld0NsYXNzU3RyaW5n
KTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PENsYXNzTGlzdCo+KGNsYXNzTGlzdCktPnJlc2V0
KG5ld0NsYXNzU3RyaW5nKTsKICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZU1hcCgpKQogICAgICAg
ICBhdHRyaWJ1dGVNYXAoKS0+Y2xlYXJDbGFzcygpOwogICAgIHNldE5lZWRzU3R5bGVSZWNhbGMo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuaAppbmRleCA0YjYyMzg4MTQ0NGUxODU0MDc2MzYzYzBjYzY5MjFiOTg3
M2QzMDYxLi44MDQwZGJmMWUzNjhhY2I3ZjRlYThlODM1N2ExYjE1YWY4MDQyZjAzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU3R5bGVk
RWxlbWVudC5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEF0dHJpYnV0ZTsKLWNsYXNzIENsYXNzTGlzdDsKIGNsYXNzIENTU01hcHBlZEF0dHJpYnV0ZURl
Y2xhcmF0aW9uOwogCiBjbGFzcyBTdHlsZWRFbGVtZW50IDogcHVibGljIEVsZW1lbnQgewpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAgYi9XZWJDb3JlL2h0bWwvQ2xhc3NM
aXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNTMwZDE0NjVjMTBiMjgxYzdmMTU4MmQ5NzMxZmY1ODI5YWQw
ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAKQEAgLTAs
MCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDbGFzc0xpc3QuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxp
dFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitDbGFzc0xpc3Q6
OkNsYXNzTGlzdChFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCit7
CisgICAgaWYgKG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisgICAgICAg
IG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0
ZShjbGFzc0F0dHIpLCBmYWxzZSk7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZWYoKQoreworICAg
IG1fZWxlbWVudC0+cmVmKCk7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpkZXJlZigpCit7CisgICAg
bV9lbGVtZW50LT5kZXJlZigpOworfQorCit1bnNpZ25lZCBDbGFzc0xpc3Q6Omxlbmd0aCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+aGFzQ2xhc3MoKSA/IGNsYXNzTmFtZXMoKS5z
aXplKCkgOiAwOworfQorCitjb25zdCBBdG9taWNTdHJpbmcgQ2xhc3NMaXN0OjppdGVtKHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAg
cmV0dXJuIEF0b21pY1N0cmluZygpOworICAgIHJldHVybiBjbGFzc05hbWVzKClbaW5kZXhdOwor
fQorCitib29sIENsYXNzTGlzdDo6Y29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2Vu
LCBlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gY29udGFpbnNJbnRlcm5h
bCh0b2tlbik7Cit9CisKK2Jvb2wgQ2xhc3NMaXN0Ojpjb250YWluc0ludGVybmFsKGNvbnN0IEF0
b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+aGFzQ2xh
c3MoKSAmJiBjbGFzc05hbWVzKCkuY29udGFpbnModG9rZW4pOworfQorCit2b2lkIENsYXNzTGlz
dDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAgICAgICByZXR1cm47CisgICAg
YWRkSW50ZXJuYWwodG9rZW4pOworfQorCit2b2lkIENsYXNzTGlzdDo6YWRkSW50ZXJuYWwoY29u
c3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKK3sKKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG9sZENsYXNzTmFtZShtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSk7Cisg
ICAgaWYgKG9sZENsYXNzTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIG1fZWxlbWVudC0+c2V0QXR0
cmlidXRlKGNsYXNzQXR0ciwgdG9rZW4pOworICAgIGVsc2UgaWYgKCFjb250YWluc0ludGVybmFs
KHRva2VuKSkgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKG9sZENsYXNzTmFtZSk7CisgICAgICAgIGlmIChvbGRDbGFzc05hbWVbb2xkQ2xh
c3NOYW1lLmxlbmd0aCgpIC0gMV0gIT0gJyAnKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
JyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQodG9rZW4pOworICAgICAgICBtX2VsZW1lbnQt
PnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgfQorfQor
Cit2b2lkIENsYXNzTGlzdDo6cmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAg
ICAgICByZXR1cm47CisgICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4pOworfQorCit2b2lkIENsYXNz
TGlzdDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKK3sK
KyAgICAvLyBDaGVjayB1c2luZyBjb250YWlucyBmaXJzdCBzaW5jZSBpdCB1c2VzIEF0b21pY1N0
cmluZyBjb21wYXJpc29ucyBpbnN0ZWFkCisgICAgLy8gb2YgY2hhcmFjdGVyIGJ5IGNoYXJhY3Rl
ciB0ZXN0aW5nLgorICAgIGlmICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikpCisgICAgICAgIHJl
dHVybjsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQgPSBtX2VsZW1lbnQtPmZhc3RH
ZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKTsKKyAgICBWZWN0b3I8VUNoYXI+IG91dHB1dDsKKworICAg
IHJlbW92ZVRva2VuKGlucHV0LCB0b2tlbiwgb3V0cHV0KTsKKworICAgIG1fZWxlbWVudC0+c2V0
QXR0cmlidXRlKGNsYXNzQXR0ciwgU3RyaW5nOjphZG9wdChvdXRwdXQpKTsKK30KKworYm9vbCBD
bGFzc0xpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKGNvbnRhaW5zSW50ZXJuYWwodG9rZW4pKSB7CisgICAgICAg
IHJlbW92ZUludGVybmFsKHRva2VuKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
ICBhZGRJbnRlcm5hbCh0b2tlbik7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1N0cmluZyBDbGFz
c0xpc3Q6OnRvU3RyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lbGVtZW50LT5mYXN0R2V0
QXR0cmlidXRlKGNsYXNzQXR0cik7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZXNldChjb25zdCBT
dHJpbmcmIG5ld0NsYXNzTmFtZSkKK3sKKyAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1aXJrc01v
ZGUuaXNOdWxsKCkpCisgICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG5ld0Ns
YXNzTmFtZSwgZmFsc2UpOworfQorCitjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBDbGFzc0xpc3Q6
OmNsYXNzTmFtZXMoKSBjb25zdAoreworICAgIEFTU0VSVChtX2VsZW1lbnQtPmhhc0NsYXNzKCkp
OworICAgIGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+
YXR0cmlidXRlTWFwKCktPmNsYXNzTmFtZXMoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oIGIvV2ViQ29yZS9odG1sL0Ns
YXNzTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMDgzNDlmN2NhNjc0MDAwZGI5MmMzMGI2OTgxNWZkZTk0
ZjA0MDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmgKQEAgLTAs
MCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDbGFzc0xpc3RfaAorI2RlZmluZSBD
bGFzc0xpc3RfaAorCisjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CisK
K2NsYXNzIENsYXNzTGlzdCA6IHB1YmxpYyBET01Ub2tlbkxpc3QgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzT3duUHRyPENsYXNzTGlzdD4gY3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENsYXNzTGlzdChlbGVtZW50KSk7CisgICAg
fQorCisgICAgdmlydHVhbCB2b2lkIHJlZigpOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpOwor
CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZpcnR1YWwgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisKKyAg
ICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KKworICAg
IHZvaWQgcmVzZXQoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6CisgICAgQ2xhc3NMaXN0KEVs
ZW1lbnQqKTsKKworICAgIHZvaWQgYWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29u
c3Q7CisgICAgYm9vbCBjb250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0
OworICAgIHZvaWQgcmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisK
KyAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzKCkgY29uc3Q7CisKKyAgICBF
bGVtZW50KiBtX2VsZW1lbnQ7CisgICAgU3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXNGb3JR
dWlya3NNb2RlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ2xh
c3NMaXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5j
cHAgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3
MWU5NGQ0ZDdlMmM2NDM3YzczMGQyZTFlYjVhMTYwZGY3ZTc1YTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCkBAIC0wLDAgKzEsMTIxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NU2V0dGFi
bGVUb2tlbkxpc3QuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitET01TZXR0YWJsZVRva2VuTGlzdDo6RE9NU2V0dGFibGVU
b2tlbkxpc3QoKQorICAgIDogbV90b2tlbnMoKQoreworfQorCitET01TZXR0YWJsZVRva2VuTGlz
dDo6fkRPTVNldHRhYmxlVG9rZW5MaXN0KCkKK3sKK30KKworY29uc3QgQXRvbWljU3RyaW5nIERP
TVNldHRhYmxlVG9rZW5MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlm
IChpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygiIik7Cisg
ICAgcmV0dXJuIG1fdG9rZW5zW2luZGV4XTsKK30KKworYm9vbCBET01TZXR0YWJsZVRva2VuTGlz
dDo6Y29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMp
IGNvbnN0Cit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV90b2tlbnMuY29udGFpbnModG9rZW4pOworfQorCit2
b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykg
fHwgbV90b2tlbnMuY29udGFpbnModG9rZW4pKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1f
dG9rZW5zLmlzTnVsbCgpKQorICAgICAgICBtX3Rva2Vucy5zZXQodG9rZW4sIHRydWUpOworICAg
IGVsc2UgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHRvU3RyaW5nKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCh0b2tlbik7CisgICAgICAgIG1fdG9rZW5zLnNldChidWlsZGVyLnRv
U3RyaW5nKCksIHRydWUpOworICAgIH0KK30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6
cmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpIHx8ICFtX3Rva2Vucy5jb250YWlucyh0
b2tlbikpCisgICAgICAgIHJldHVybjsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcgaW5wdXQgPSB0
b1N0cmluZygpOworICAgIFZlY3RvcjxVQ2hhcj4gb3V0cHV0OworCisgICAgcmVtb3ZlVG9rZW4o
aW5wdXQsIHRva2VuLCBvdXRwdXQpOworICAgIG1fdG9rZW5zLmNsZWFyKCk7CisgICAgbV90b2tl
bnMuc2V0KFN0cmluZzo6YWRvcHQob3V0cHV0KSwgdHJ1ZSk7Cit9CisKK2Jvb2wgRE9NU2V0dGFi
bGVUb2tlbkxpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChtX3Rva2Vucy5jb250YWlucyh0b2tlbikpIHsKKyAgICAg
ICAgcmVtb3ZlKHRva2VuLCBlYyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAg
YWRkKHRva2VuLCBlYyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1N0cmluZyBET01TZXR0YWJs
ZVRva2VuTGlzdDo6dG9TdHJpbmcoKSBjb25zdAoreworICAgIGlmIChtX3Rva2Vucy5zaXplKCkg
PD0gMCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygiIik7CisKKyAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7CisgICAgc2l6ZV90IGluZGV4OworICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IG1f
dG9rZW5zLnNpemUoKSAtIDE7ICsraW5kZXgpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobV90
b2tlbnNbaW5kZXhdKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICB9CisgICAg
YnVpbGRlci5hcHBlbmQobV90b2tlbnNbaW5kZXhdKTsKKyAgICByZXR1cm4gYnVpbGRlci50b1N0
cmluZygpOworfQorCitTdHJpbmcgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnZhbHVlKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdG9TdHJpbmcoKTsKK30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlz
dDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fdG9rZW5zLmlz
TnVsbCgpKQorICAgICAgICBtX3Rva2Vucy5jbGVhcigpOworICAgIG1fdG9rZW5zLnNldCh2YWx1
ZSwgdHJ1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIGIvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxl
VG9rZW5MaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ3NTFmMjVkOGU0OWMwZjdkNGNmMmVhYmY0NWI1Nzgz
MTJiOTE2NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2Vu
TGlzdC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NU2V0dGFi
bGVUb2tlbkxpc3RfaAorI2RlZmluZSBET01TZXR0YWJsZVRva2VuTGlzdF9oCisKKyNpbmNsdWRl
ICJET01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAi
U3BhY2VTcGxpdFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01TZXR0YWJsZVRva2VuTGlzdCA6IHB1
YmxpYyBET01Ub2tlbkxpc3QsIHB1YmxpYyBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+
IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVNldHRhYmxl
VG9rZW5MaXN0KCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5ET01TZXR0YWJsZVRva2VuTGlzdCgp
OworCisgICAgdmlydHVhbCB2b2lkIHJlZigpIHsgUmVmQ291bnRlZDxET01TZXR0YWJsZVRva2Vu
TGlzdD46OnJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBSZWZDb3VudGVkPERP
TVNldHRhYmxlVG9rZW5MaXN0Pjo6ZGVyZWYoKTsgfQorCisgICAgdmlydHVhbCB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Rva2Vucy5zaXplKCk7IH0KKyAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHZpcnR1YWwgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisK
KyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYpOworCitwcml2YXRlOgorICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KCk7CisKKyAgICBTcGFj
ZVNwbGl0U3RyaW5nIG1fdG9rZW5zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRE9NU2V0dGFibGVUb2tlbkxpc3RfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1s
L0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2Vu
TGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI2MDYyM2VlYjQ2M2Q3YzMwZDk2ZjkwMjgxOTEwMDFmNzFh
MzM5MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlz
dC5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvciwKKyAgICAgICAgSGFz
SW5kZXhHZXR0ZXIsCisgICAgICAgIEdlbmVyYXRlVG9KUworICAgIF0gRE9NU2V0dGFibGVUb2tl
bkxpc3QgOiBET01Ub2tlbkxpc3QgeworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVl
OworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3Bw
IGIvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggYWEwYTc0YjJhY2JiZDhhNTc5
ZGNhZTY2MGU1NTQ5NDI0NzQxZjcxYy4uODk5NjFlZDEyOGE4OGIxMGViNzAzOTZlOTNiNzI4NTU2
ZDMyMmM1MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTI1LDE3ICsyNSwxMSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgogCi0jaW5jbHVkZSAiRWxl
bWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKLSNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7Ci0KLXN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3Ry
aW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCitib29sIERPTVRva2VuTGlzdDo6dmFsaWRh
dGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBpZiAodG9rZW4uaXNFbXB0eSgpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKQEAg
LTUzLDg4ICs0NywxMSBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiB0cnVlOwogfQogCi1E
T01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlzdChFbGVtZW50KiBlbGVtZW50KQotICAgIDogbV9lbGVt
ZW50KGVsZW1lbnQpCi17Ci0gICAgaWYgKG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NN
b2RlKCkpCi0gICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG1fZWxlbWVudC0+
ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpLCBmYWxzZSk7Ci19Ci0KLXZvaWQgRE9NVG9rZW5M
aXN0OjpyZWYoKQotewotICAgIG1fZWxlbWVudC0+cmVmKCk7Ci19Ci0KLXZvaWQgRE9NVG9rZW5M
aXN0OjpkZXJlZigpCi17Ci0gICAgbV9lbGVtZW50LT5kZXJlZigpOwotfQotCi11bnNpZ25lZCBE
T01Ub2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+aGFz
Q2xhc3MoKSA/IGNsYXNzTmFtZXMoKS5zaXplKCkgOiAwOwotfQotCi1jb25zdCBBdG9taWNTdHJp
bmcgRE9NVG9rZW5MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotewotICAgIGlmIChp
bmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygpOwotICAgIHJl
dHVybiBjbGFzc05hbWVzKClbaW5kZXhdOwotfQotCi1ib29sIERPTVRva2VuTGlzdDo6Y29udGFp
bnMoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Ci17
Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICByZXR1cm4gY29udGFpbnNJbnRlcm5hbCh0b2tlbik7Ci19Ci0KLWJvb2wgRE9NVG9r
ZW5MaXN0Ojpjb250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBjbGFzc05hbWVzKCkuY29u
dGFpbnModG9rZW4pOwotfQotCi12b2lkIERPTVRva2VuTGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghdmFsaWRhdGVUb2tl
bih0b2tlbiwgZWMpKQotICAgICAgICByZXR1cm47Ci0gICAgYWRkSW50ZXJuYWwodG9rZW4pOwot
fQotCi12b2lkIERPTVRva2VuTGlzdDo6YWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbikgY29uc3QKK3ZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmVUb2tlbihjb25zdCBBdG9taWNT
dHJpbmcmIGlucHV0LCBjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBWZWN0b3I8VUNoYXI+JiBv
dXRwdXQpCiB7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRDbGFzc05hbWUobV9lbGVtZW50
LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cikpOwotICAgIGlmIChvbGRDbGFzc05hbWUuaXNF
bXB0eSgpKQotICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIHRva2Vu
KTsKLSAgICBlbHNlIGlmICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikpIHsKLSAgICAgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChvbGRDbGFzc05hbWUp
OwotICAgICAgICBpZiAob2xkQ2xhc3NOYW1lW29sZENsYXNzTmFtZS5sZW5ndGgoKSAtIDFdICE9
ICcgJykKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIu
YXBwZW5kKHRva2VuKTsKLSAgICAgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRy
LCBidWlsZGVyLnRvU3RyaW5nKCkpOwotICAgIH0KLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJl
bW92ZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHJl
bW92ZUludGVybmFsKHRva2VuKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZUludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0Ci17Ci0gICAgLy8gQ2hlY2sgdXNp
bmcgY29udGFpbnMgZmlyc3Qgc2luY2UgaXQgdXNlcyBBdG9taWNTdHJpbmcgY29tcGFyaXNvbnMg
aW5zdGVhZAotICAgIC8vIG9mIGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdGVzdGluZy4KLSAgICBp
ZiAoIWNvbnRhaW5zSW50ZXJuYWwodG9rZW4pKQotICAgICAgICByZXR1cm47Ci0KICAgICAvLyBB
bGdvcml0aG0gZGVmaW5lZCBhdCBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMv
Y3VycmVudC13b3JrL211bHRpcGFnZS9jb21tb24tbWljcm9zeW50YXhlcy5odG1sI3JlbW92ZS1h
LXRva2VuLWZyb20tYS1zdHJpbmcKIAotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQgPSBt
X2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKTsKICAgICB1bnNpZ25lZCBpbnB1
dExlbmd0aCA9IGlucHV0Lmxlbmd0aCgpOwotICAgIFZlY3RvcjxVQ2hhcj4gb3V0cHV0OyAvLyAz
CiAgICAgb3V0cHV0LnJlc2VydmVDYXBhY2l0eShpbnB1dExlbmd0aCk7CiAgICAgdW5zaWduZWQg
cG9zaXRpb24gPSAwOyAvLyA0CiAKQEAgLTE3MCwzOSArODcsNiBAQCB2b2lkIERPTVRva2VuTGlz
dDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKICAgICB9
CiAKICAgICBvdXRwdXQuc2hyaW5rVG9GaXQoKTsKLSAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0
ZShjbGFzc0F0dHIsIFN0cmluZzo6YWRvcHQob3V0cHV0KSk7Ci19Ci0KLWJvb2wgRE9NVG9rZW5M
aXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGlmIChjb250YWluc0ludGVybmFsKHRva2VuKSkgewotICAgICAgICByZW1v
dmVJbnRlcm5hbCh0b2tlbik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgYWRk
SW50ZXJuYWwodG9rZW4pOwotICAgIHJldHVybiB0cnVlOwotfQotCi1TdHJpbmcgRE9NVG9rZW5M
aXN0Ojp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+ZmFzdEdldEF0
dHJpYnV0ZShjbGFzc0F0dHIpOwotfQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVzZXQoY29uc3Qg
U3RyaW5nJiBuZXdDbGFzc05hbWUpCi17Ci0gICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLmlzTnVsbCgpKQotICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldChuZXdD
bGFzc05hbWUsIGZhbHNlKTsKLX0KLQotY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgRE9NVG9rZW5M
aXN0OjpjbGFzc05hbWVzKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5oYXNDbGFz
cygpKTsKLSAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuaXNOdWxsKCkpCi0gICAg
ICAgIHJldHVybiBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOwotICAgIHJldHVybiBtX2VsZW1l
bnQtPmF0dHJpYnV0ZU1hcCgpLT5jbGFzc05hbWVzKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaCBiL1dlYkNvcmUv
aHRtbC9ET01Ub2tlbkxpc3QuaAppbmRleCBmYWQ2OWNhOGI5NTk1ZTIxNzY5MmQxMDI0YjUwZmJi
ODYwNjYzZDUzLi4zZDZkN2RkYjk1MjljOGRmNTE4NjMwZmI1MTZhZjFkMzY5ZWU0ZDQ3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNiw5ICsyNiw5IEBACiAjZGVmaW5lIERPTVRva2VuTGlzdF9oCiAKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM2LDM3ICszNiwyNCBAQCBjbGFzcyBFbGVt
ZW50OwogCiBjbGFzcyBET01Ub2tlbkxpc3QgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPERPTVRva2VuTGlzdD4gY3JlYXRlKEVsZW1lbnQqIGVs
ZW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERPTVRva2VuTGlzdChl
bGVtZW50KSk7Ci0gICAgfQorICAgIHZpcnR1YWwgfkRPTVRva2VuTGlzdCgpIHt9OwogCi0gICAg
dm9pZCByZWYoKTsKLSAgICB2b2lkIGRlcmVmKCk7CisgICAgdmlydHVhbCB2b2lkIHJlZigpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSA9IDA7CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdDsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29u
c3Q7Ci0gICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
JikgY29uc3Q7Ci0gICAgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZvaWQgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5n
dGgoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNp
Z25lZCBpbmRleCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBB
dG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
CisgICAgdmlydHVhbCBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJikgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgPSAwOwogCi0g
ICAgdm9pZCByZXNldChjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1l
bnQoKSB7IHJldHVybiAwOyB9CiAKLSAgICBFbGVtZW50KiBlbGVtZW50KCkgeyByZXR1cm4gbV9l
bGVtZW50OyB9Ci0KLXByaXZhdGU6Ci0gICAgRE9NVG9rZW5MaXN0KEVsZW1lbnQqKTsKLQotICAg
IHZvaWQgYWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Ci0gICAgYm9vbCBj
b250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwotICAgIHZvaWQgcmVt
b3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Ci0KLSAgICBjb25zdCBTcGFj
ZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzKCkgY29uc3Q7Ci0KLSAgICBFbGVtZW50KiBtX2VsZW1l
bnQ7Ci0gICAgU3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOworcHJv
dGVjdGVkOgorICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYs
IGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxVQ2hhcj4mKTsKKyAgICBzdGF0aWMgYm9vbCB2
YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVj
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOWQ2YzYx
MGNiNTE5NDdlNzA0MzE1ZjQ1MjVkMWQzMzkwMzBmMGMyMy4uZGQzNDA0ZjJiMmRlYjlkNzFjMTI1
ZmQ0M2U4MGYzMzUzNGY1ZDk0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUu
aCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2Vu
TGlzdC5oIgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJET01UaW1lci5o
IgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAwZTgzNTU2NWU2
MjRjNjFhZDlmM2M3YjJlY2JiNDgzNmVkMmU4YzQ2Li4wZWNhYTcxMjQwMDczNGYzZTMwZTM0YWE4
MTY0MWE3ZjBhMGM5NTU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAor
KysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMzc4LDYgKzM3OCw3IEBAIG1vZHVs
ZSB3aW5kb3cgewogLy8gICAgICAgIGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbkxpc3RDb25z
dHJ1Y3RvciBET01JbXBsZW1lbnRhdGlvbkxpc3Q7CiAvLyAgICAgICAgYXR0cmlidXRlIERPTUlt
cGxlbWVudGF0aW9uU291cmNlQ29uc3RydWN0b3IgRE9NSW1wbGVtZW50YXRpb25Tb3VyY2U7CiAg
ICAgICAgIGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yIERPTUltcGxlbWVu
dGF0aW9uOworICAgICAgICBhdHRyaWJ1dGUgRE9NU2V0dGFibGVUb2tlbkxpc3RDb25zdHJ1Y3Rv
ciBET01TZXR0YWJsZVRva2VuTGlzdDsKICAgICAgICAgYXR0cmlidXRlIERPTVRva2VuTGlzdENv
bnN0cnVjdG9yIERPTVRva2VuTGlzdDsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50RnJhZ21l
bnRDb25zdHJ1Y3RvciBEb2N1bWVudEZyYWdtZW50OwogICAgICAgICBhdHRyaWJ1dGUgRG9jdW1l
bnRDb25zdHJ1Y3RvciBEb2N1bWVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71149</attachid>
            <date>2010-10-19 03:19:17 -0700</date>
            <delta_ts>2010-10-19 23:32:19 -0700</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug-47810-20101019191915.patch</filename>
            <type>text/plain</type>
            <size>63712</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiOTQyZGUwZDQxYzhlNGE0NTFiNzA4MDljZGMwZjc1OTdiNjg3NDRkLi4yMjIxMGJl
YTc2ZjkyMTdkNGZjNTE4NmQ3ZGVkOTcyODc4YjFkOTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTAtMTkgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBE
T01TZXR0YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc4MTAKKworICAgICAgICBVcGRhdGUgZXhwZWN0YXRpb25zLgorCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0OgorCiAyMDEwLTEwLTE5ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4
IDk2ZDY5ZDQ1ODc5ZTMzZTVhYjc2ZWI5ZGVjOTY0ZmU1ZGE1NTliOWEuLmEyOTdiMzE3N2FjNjBl
YWMzNzMzOTNhZjk3ZGQwYzE2YTAwYzliMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNTU1
LDYgKzU1NSwxNCBAQCB3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24ucHJvdG90eXBlLmhhc0ZlYXR1
cmUgW2Z1bmN0aW9uXQogd2luZG93LkRPTVBhcnNlciBbb2JqZWN0IERPTVBhcnNlckNvbnN0cnVj
dG9yXQogd2luZG93LkRPTVBhcnNlci5wcm90b3R5cGUgW29iamVjdCBET01QYXJzZXJQcm90b3R5
cGVdCiB3aW5kb3cuRE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmcgW2Z1bmN0aW9u
XQord2luZG93LkRPTVNldHRhYmxlVG9rZW5MaXN0IFtvYmplY3QgRE9NU2V0dGFibGVUb2tlbkxp
c3RDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUgW29i
amVjdCBET01TZXR0YWJsZVRva2VuTGlzdFByb3RvdHlwZV0KK3dpbmRvdy5ET01TZXR0YWJsZVRv
a2VuTGlzdC5wcm90b3R5cGUuYWRkIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2Vu
TGlzdC5wcm90b3R5cGUuY29udGFpbnMgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9r
ZW5MaXN0LnByb3RvdHlwZS5pdGVtIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2Vu
TGlzdC5wcm90b3R5cGUucmVtb3ZlIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2Vu
TGlzdC5wcm90b3R5cGUudG9TdHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9r
ZW5MaXN0LnByb3RvdHlwZS50b2dnbGUgW2Z1bmN0aW9uXQogd2luZG93LkRPTVN0cmluZ0xpc3Qg
W29iamVjdCBET01TdHJpbmdMaXN0Q29uc3RydWN0b3JdCiB3aW5kb3cuRE9NU3RyaW5nTGlzdC5w
cm90b3R5cGUgW29iamVjdCBET01TdHJpbmdMaXN0UHJvdG90eXBlXQogd2luZG93LkRPTVN0cmlu
Z0xpc3QucHJvdG90eXBlLmNvbnRhaW5zIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQKaW5kZXggYmJiZjRmNzQ5YjUwYmE3ZjA5YjFkMGZkYTQ2NWUyODZl
MTExYWE0NS4uZmI1MTgwMWNlMzUxMTcyZmQ4M2IyYjI2MmQyMGYxYTJhMTRhMmRkYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTM4LDYgKzM4LDcgQEAgUEFT
UyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdDb3VudGVy
JykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnRE9NRXhjZXB0aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NSW1wbGVtZW50YXRpb24nKSBp
cyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3csICdET01QYXJzZXInKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TZXR0YWJsZVRva2VuTGlzdCcpIGlzICdv
YmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ0RPTVN0cmluZ0xpc3QnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TdHJpbmdNYXAnKSBpcyAnb2JqZWN0Jwog
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01U
b2tlbkxpc3QnKSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CmluZGV4IGNiMzMzODc0NTFh
YWRkM2ZjMzVkZjQyNjUwZThkZTk3YTYxOTU0MGEuLjZkODY2MDg3MzRlYWI5NjU2MjM5NGNhYjQ4
ODQ4OGE4MjJjM2FmZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlw
ZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKQEAgLTIyNiw2ICsyMjYsNyBAQCBO
ZXZlciBmb3VuZCBDYW52YXNHcmFkaWVudAogTmV2ZXIgZm91bmQgQ2hhcmFjdGVyRGF0YQogTmV2
ZXIgZm91bmQgQ2xpcGJvYXJkCiBOZXZlciBmb3VuZCBET01QYXJzZXIKK05ldmVyIGZvdW5kIERP
TVNldHRhYmxlVG9rZW5MaXN0CiBOZXZlciBmb3VuZCBET01TdHJpbmdMaXN0CiBOZXZlciBmb3Vu
ZCBEb2N1bWVudAogTmV2ZXIgZm91bmQgRG9jdW1lbnRGcmFnbWVudApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5k
ZXggZmE2NDc2YWRkYTY4MjFkNzdiZmIzYzIyNjBmZDcxM2M0NWY4MWQzZi4uNTNjNDMzOTZlNjU3
Mzg2NmM5ZWVkNDM5ZTRiZjFlYWQ5MzU4OTNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC03Myw2ICs3
Myw4IEBAIFBBU1MgaW5uZXIuRE9NSW1wbGVtZW50YXRpb24uaXNJbm5lciBpcyB0cnVlCiBQQVNT
IGlubmVyLkRPTUltcGxlbWVudGF0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFT
UyBpbm5lci5ET01QYXJzZXIuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkRPTVBhcnNlci5j
b25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRE9NU2V0dGFibGVUb2tlbkxp
c3QuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLkRPTVNldHRhYmxlVG9rZW5MaXN0LmNvbnN0
cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdMaXN0LmlzSW5uZXIg
aXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdMaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdNYXAuaXNJbm5lciBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRl
eCAyMTQzYjg2ZDM1M2I3OWRhZTRhODkxMzU3YmIyNGQ2MmI1NDE3OGY5Li43MzcxM2JlMWRjOWJh
MjMwNTYyYThmZTJiNGFiNzdlNjNiNTNiYjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTM2LDYgKzM2LDcgQEAg
UEFTUyBDb3VudGVyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ291bnRlckNvbnN0cnVjdG9yXScK
IFBBU1MgRE9NRXhjZXB0aW9uLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NRXhjZXB0aW9uQ29u
c3RydWN0b3JdJwogUEFTUyBET01JbXBsZW1lbnRhdGlvbi50b1N0cmluZygpIGlzICdbb2JqZWN0
IERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBET01QYXJzZXIudG9TdHJpbmco
KSBpcyAnW29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0nCitQQVNTIERPTVNldHRhYmxlVG9r
ZW5MaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NU2V0dGFibGVUb2tlbkxpc3RDb25zdHJ1
Y3Rvcl0nCiBQQVNTIERPTVN0cmluZ0xpc3QudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01TdHJp
bmdMaXN0Q29uc3RydWN0b3JdJwogUEFTUyBET01TdHJpbmdNYXAudG9TdHJpbmcoKSBpcyAnW29i
amVjdCBET01TdHJpbmdNYXBDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTVRva2VuTGlzdC50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IERPTVRva2VuTGlzdENvbnN0cnVjdG9yXScKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRl
cml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYTkyN2YxMWQ2Nzk3NjA1YTIzMDNlN2Y2MGZiMGJi
YjQxNjNjOTEwZS4uN2E4NTBhM2FkYWIwMTkzMTIwOGE0MzFjYzFhM2JlMzZiZDExY2FhOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKKysrIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTE1OSw2ICsxNTksNyBAQCBH
RU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0Jsb2IuaCBcCiAgICAgJChpbnRl
cm1lZGlhdGVzKS9odG1sL0pTQmxvYkJ1aWxkZXIuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9o
dG1sL0pTRE9NRm9ybURhdGEuaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRE9NVG9rZW5M
aXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RhdGFHcmlkQ29sdW1uLmggXAog
ICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RhdGFHcmlkQ29sdW1uTGlzdC5oIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0Fu
ZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IGE3MzE1N2Q3MWFjZGViZmQ3YzI4NjE2
YWE2YTFkZDkzMWQ4YTI0NmUuLjRlZWRlNGM3NjRlMzE3ZWRlODUyOWFhZTdiZjE3ZDAwOThjNzE3
MjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysr
IGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMTQxLDYgKzE0MSw3
IEBAIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJsb2IuaCBcCiAg
ICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJsb2JCdWlsZGVyLmggXAogICAgICQoaW50
ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhET01Ub2tlbkxpc3QuaCBcCisgICAgJChpbnRlcm1lZGlh
dGVzKS9iaW5kaW5ncy9WOERPTVNldHRhYmxlVG9rZW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRp
YXRlcykvYmluZGluZ3MvVjhEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMp
L2JpbmRpbmdzL1Y4RGF0YUdyaWRDb2x1bW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykv
YmluZGluZ3MvVjhGaWxlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRp
bmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCmluZGV4IDA4MTYxMTM0OTlm
MzM1MDU0NWRhMDFkY2U5ZmE5ODkwZDQ0OTA1OTcuLjhkZDBlODUzNjMyOGRjOTdmMmRlNGJlZDBi
ZjkxZjBmNzFiYjRiMGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
aworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKQEAgLTgzLDYgKzgzLDcgQEAg
TE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIFwKIAli
aW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuY3BwIFwKKwliaW5kaW5ncy9qcy9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNw
cCBcCiAJYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3QuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggMjI4OWMyY2FjODYwZTM4MDRlN2ExZWQ4OGRlZDE3OTFmZDRlOTNmNy4uZThhZmUy
N2VjNWFjMjRlMzQyY2Y1M2UyNTBhOWE4ODAyNGY1M2QwYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDYsNiArMjA2
LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5pZGwK
ICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5pZGwKICAgICBodG1sL0RPTUZvcm1EYXRhLmlk
bAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCiAgICAgaHRtbC9ET01Ub2tlbkxp
c3QuaWRsCiAgICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwKICAgICBodG1sL0hUTUxBbmNo
b3JFbGVtZW50LmlkbApAQCAtOTU0LDYgKzk1NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcAogICAgIGh0bWwvRE9NRGF0YUdyaWREYXRhU291cmNl
LmNwcAogICAgIGh0bWwvRE9NRm9ybURhdGEuY3BwCisgICAgaHRtbC9ET01TZXR0YWJsZVRva2Vu
TGlzdC5jcHAKICAgICBodG1sL0RPTVRva2VuTGlzdC5jcHAKICAgICBodG1sL0RhdGFHcmlkQ29s
dW1uLmNwcAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmNwcApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzN2JhYzgxMjY1OWU4YTEw
OGI1MGFhYzZhZmMxMjhkZDU0OTMyYmMyLi5iOGRkZjVhNzA4ODcwODc2ODQzMDdlMGQ1NzQ1MjZk
NTA4ZGM3NWEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEwLTEwLTE5ICBLZW5pY2hpIElzaGliYXNoaSAg
PGJhc2hpQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW0hUTUw1XSBBZGQgRE9NU2V0dGFibGVUb2tlbkxpc3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3ODEwCisKKyAgICAgICAgQWRk
cyBET01TZXR0YWJsZVRva2VuTGlzdCBpbnRlcmZhY2UgdG8gc3VwcG9ydCA8b3V0cHV0PiBlbGVt
ZW50LgorICAgICAgICBUaGUgRE9NVG9rZW5MaXN0IGludGVyZmFjZSB3YXMgcmVmYWN0b3JlZCBz
aW5jZSBpdHMgd2FzIHRpZ2h0bHkgY291cGxlZAorICAgICAgICB3aXRoIEhUTUxFbGVtZW50LmNs
YXNzTGlzdCBwcm9wZXJ0eS4KKworICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5n
cy5tazoKKyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAg
KiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBX
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tl
bkxpc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmluZGV4ZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xhc3NMaXN0KToKKyAgICAgICAgKiBk
b20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6Y2xhc3NBdHRyaWJ1dGVDaGFuZ2VkKToK
KyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvQ2xhc3NMaXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OkNsYXNzTGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpDbGFz
c0xpc3Q6OmRlcmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6bGVuZ3RoKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDbGFz
c0xpc3Q6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y29udGFpbnNJ
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmFkZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDbGFzc0xpc3Q6OmFkZEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNz
TGlzdDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6cmVtb3ZlSW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0Ojp0b2dnbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xhc3NMaXN0Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6
OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y2xhc3NOYW1lcyk6CisgICAg
ICAgICogaHRtbC9DbGFzc0xpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xp
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmVsZW1lbnQpOgorICAg
ICAgICAqIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpET01TZXR0YWJsZVRva2VuTGlzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6fkRPTVNldHRhYmxlVG9rZW5MaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjppdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojpjb250YWlucyk6CisgICAgICAgIChX
ZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNldHRhYmxlVG9rZW5MaXN0OjphZGRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpET01T
ZXR0YWJsZVRva2VuTGlzdDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxl
VG9rZW5MaXN0OjpyZW1vdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJs
ZVRva2VuTGlzdDo6dG9nZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5M
aXN0Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6
dmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnNldFZhbHVl
KToKKyAgICAgICAgKiBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNl
dHRhYmxlVG9rZW5MaXN0OjpkZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRv
a2VuTGlzdDo6bGVuZ3RoKToKKyAgICAgICAgKiBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0Lmlk
bDogQWRkZWQuCisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVRva2VuTGlzdDo6cmVtb3ZlVG9rZW4pOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6On5ET01Ub2tlbkxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjplbGVtZW50KToKKyAgICAgICAgKiBwYWdlL0RPTVdp
bmRvdy5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEwLTEwLTE5ICBI
YXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggMDFmNTAyMzhmNzczZDMwMWViMGRhNGNiMDk5
OTA2NGY5N2Q4NDRmYy4uODBjMTMwNDIzZjY2NjBlODNiZTZjYmViYjZlZDNmMzU5MGYwNzYxNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlICJKU0RPTVBsdWdpbi5j
cHAiCiAjaW5jbHVkZSAiSlNET01QbHVnaW5BcnJheS5jcHAiCiAjaW5jbHVkZSAiSlNET01TZWxl
Y3Rpb24uY3BwIgorI2luY2x1ZGUgIkpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIgogI2luY2x1
ZGUgIkpTRE9NU3RyaW5nTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNET01TdHJpbmdNYXAuY3BwIgog
I2luY2x1ZGUgIkpTRE9NVG9rZW5MaXN0LmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAzNDJiYjdi
NWE2OWJlYWE1ZmE5NThlNDkzNmM2ZDc5ZWY4MGRlZmQ2Li40ZTczMmRlNWE4MDZmM2EzMmQ1OTg4
MTk1MjZjNGU5ZmEyZTM3ZTkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMjUsNiArMTI1LDcgQEAg
RE9NX0NMQVNTRVMgPSBcCiAgICAgRE9NU2VsZWN0aW9uIFwKICAgICBET01TdHJpbmdMaXN0IFwK
ICAgICBET01TdHJpbmdNYXAgXAorICAgIERPTVNldHRhYmxlVG9rZW5MaXN0IFwKICAgICBET01U
b2tlbkxpc3QgXAogICAgIERPTVdpbmRvdyBcCiAgICAgRGF0YWJhc2UgXApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMTUx
ZGY4ZTdmMDQ2OTVmNjRmODlmZTNlZTVhMzAzYzFiYTkxMDk0My4uYmI0ZWI1Yzg2YmQ4MmY3MzAx
YzI2OTYxOGQ1NmEyYTVmNTU5ODliNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yMjAsNiArMjIwLDggQEAgd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NUGx1Z2lu
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TZWxlY3Rpb24uY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU2VsZWN0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
RE9NU3RyaW5nTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TdHJpbmdM
aXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TdHJpbmdNYXAuY3BwIFwKQEAg
LTE0NjgsMTAgKzE0NzAsMTQgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNTdHlsZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaCBcCisJ
V2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCisJV2ViQ29yZS9odG1sL0RP
TVNldHRhYmxlVG9rZW5MaXN0LmggXAogCVdlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIFwK
IAlXZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmggXAogCVdlYkNvcmUvaHRtbC9DaGVja2JveElu
cHV0VHlwZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5oIFwKKwlXZWJD
b3JlL2h0bWwvQ2xhc3NMaXN0LmNwcCBcCisJV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oIFwKIAlX
ZWJDb3JlL2h0bWwvQ29sbGVjdGlvbkNhY2hlLmNwcCBcCiAJV2ViQ29yZS9odG1sL0NvbGxlY3Rp
b25DYWNoZS5oIFwKIAlXZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE5OWMy
NGMxYzNmZTcyMmQ0YjEwNTdlNDUxNzg1NTY1MWJiYjhjYjYuLjNkZTEyY2YyNWVhMzRiMTk1NWY2
YWRkN2M4NjkwZjAyZDE5N2UxODMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTcsNiArMTE3LDcgQEAKICAgICAgICAgICAg
ICdmaWxlYXBpL01ldGFkYXRhLmlkbCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9NZXRhZGF0YUNh
bGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9ET01Gb3JtRGF0YS5pZGwnLAorICAgICAg
ICAgICAgJ2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsJywKICAgICAgICAgICAgICdodG1s
L0RPTVRva2VuTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvRGF0YUdyaWRDb2x1bW4uaWRs
JywKICAgICAgICAgICAgICdodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5pZGwnLApAQCAtNzc1LDYg
Kzc3Niw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGlyZWN0b3J5RW50
cnlTeW5jQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RG9j
dW1lbnRMb2NhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwJywKQEAgLTE1NDgsNiAr
MTU1MCw4IEBACiAgICAgICAgICAgICAnaHRtbC9CdXR0b25JbnB1dFR5cGUuaCcsCiAgICAgICAg
ICAgICAnaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvQ2hl
Y2tib3hJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9DbGFzc0xpc3QuY3BwJywKKyAg
ICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5oJywKICAgICAgICAgICAgICdodG1sL0NvbGxlY3Rp
b25DYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvQ29sbGVjdGlvbkNhY2hlLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvQ29sbGVjdGlvblR5cGUuaCcsCkBAIC0xNTU3LDYgKzE1NjEsOCBAQAog
ICAgICAgICAgICAgJ2h0bWwvRE9NRGF0YUdyaWREYXRhU291cmNlLmgnLAogICAgICAgICAgICAg
J2h0bWwvRE9NRm9ybURhdGEuY3BwJywKICAgICAgICAgICAgICdodG1sL0RPTUZvcm1EYXRhLmgn
LAorICAgICAgICAgICAgJ2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwJywKKyAgICAgICAg
ICAgICdodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9N
VG9rZW5MaXN0LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9ET01Ub2tlbkxpc3QuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggMDUxZjRkOWMyNjVkM2Y2MTFh
MjAzNzc2NGQyMTliYjcwNmZjYmI3NS4uM2IzOGE0NTY0ODI1OGE1NzQzM2FkOGNmNzAzNWJhNzYz
MTY3MzMzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dl
YkNvcmUucHJpCkBAIC0yMDcsNiArMjA3LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBodG1s
L0RhdGFHcmlkQ29sdW1uLmlkbCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaWRsIFwK
ICAgICBodG1sL0RPTUZvcm1EYXRhLmlkbCBcCisgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlz
dC5pZGwgXAogICAgIGh0bWwvRE9NVG9rZW5MaXN0LmlkbCBcCiAgICAgaHRtbC9IVE1MQWxsQ29s
bGVjdGlvbi5pZGwgXAogICAgIGh0bWwvSFRNTEF1ZGlvRWxlbWVudC5pZGwgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNWFmNWEw
YWFlNzIyNmFhMzVmMzMwYzcxNThlNGU1MDE0OThlNTAyYi4uNjdiNWZlMjc5ZGMzZWUyYTZmNjdm
MjJmZWRiYmEwNmRiODM0ZmZkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysg
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MDIsNiArNDAyLDcgQEAgdjggewogICAgICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIFwKICAgICAg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuY3BwIFwK
KyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAK
IApAQCAtODQwLDEwICs4NDEsMTIgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9CYXNlVGV4dElu
cHV0VHlwZS5jcHAgXAogICAgIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9D
aGVja2JveElucHV0VHlwZS5jcHAgXAorICAgIGh0bWwvQ2xhc3NMaXN0LmNwcCBcCiAgICAgaHRt
bC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKICAgICBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAg
ICAgaHRtbC9ET01EYXRhR3JpZERhdGFTb3VyY2UuY3BwIFwKICAgICBodG1sL0RPTUZvcm1EYXRh
LmNwcCBcCisgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAogICAgIGh0bWwvRE9N
VG9rZW5MaXN0LmNwcCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5jcHAgXAogICAgIGh0bWwv
RGF0YUdyaWRDb2x1bW5MaXN0LmNwcCBcCkBAIC0xNzQ1LDEyICsxNzQ4LDE0IEBAIEhFQURFUlMg
Kz0gXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCBcCiAgICAgaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggXAogICAgIGh0bWwvY2FudmFzL0Nh
bnZhc1N0eWxlLmggXAorICAgIGh0bWwvQ2xhc3NMaXN0LmggXAogICAgIGh0bWwvQ29sbGVjdGlv
bkNhY2hlLmggXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW4uaCBcCiAgICAgaHRtbC9EYXRhR3Jp
ZENvbHVtbkxpc3QuaCBcCiAgICAgaHRtbC9EYXRlQ29tcG9uZW50cy5oIFwKICAgICBodG1sL0RP
TURhdGFHcmlkRGF0YVNvdXJjZS5oIFwKICAgICBodG1sL0RPTUZvcm1EYXRhLmggXAorICAgIGh0
bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAgICAgaHRtbC9ET01Ub2tlbkxpc3QuaCBcCiAg
ICAgaHRtbC9Gb3JtRGF0YUxpc3QuaCBcCiAgICAgaHRtbC9GVFBEaXJlY3RvcnlEb2N1bWVudC5o
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGZmM2I2NGE2NTRjNmJh
Yzc4NWFkMDYyNTUzNjgwMGU5YmMyOWQwZWIuLmNhNzJlNjExMzgwNzIzNGNlNjBiZmJhYjYwNWYw
NzViYjJlMjk3MTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzk1
OSw2ICszOTU5LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4N
CisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQor
CQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJ
CQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNET01TZXR0YWJsZVRva2VuTGlzdC5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9i
alwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVN0cmluZ0xpc3QuY3BwIg0KIAkJ
CQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTQ4MTIzLDYgKzQ4MTc5LDE0IEBACiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
Q2xhc3NMaXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcQ2xhc3NMaXN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXENvbGxlY3Rpb25DYWNoZS5jcHAiDQog
CQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtNDgyODcsNiArNDgzNTEsMTQgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXERPTVNldHRhYmxlVG9rZW5MaXN0LmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1s
XERPTVRva2VuTGlzdC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwNDI5YTJmNDljZmEzNzhkNWJiOWU4ZGZi
YWJhZDkzYWU5YWJjMWZkLi40OGFiZjE0NGEzZDk4NGM4ODU1ODJkZWU1ZjUyZmI2YjYwODBkYzVj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTEwMyw2
ICsxMTAzLDEyIEBACiAJCTQ5RkZCRjNGMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYzRDEx
QzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oICovOyB9OwogCQk0OUZGQkY0MDExQzkzRUUz
MDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1t
ICovOyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAgLyogU2VsZWN0aW9uQ29udHJvbGxl
ck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
OEM5NkVBMEJFNjkwMzIwMDRFRUZGMCAvKiBTZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tICovOyB9
OworCQk0QTk4MzNEODEyNkM3MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOTgzM0Q2MTI2QzczNkQwMDg2
QzE5MSAvKiBDbGFzc0xpc3QuY3BwICovOyB9OworCQk0QTk4MzNEOTEyNkM3MzZEMDA4NkMxOTEg
LyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QTk4MzNENzEyNkM3MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmggKi87IH07CisJCTRB
OTgzM0REMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNEQTEyNkM3MzdD
MDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovOyB9OworCQk0QTk4MzNERTEy
NkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOTgzM0RCMTI2QzczN0MwMDg2QzE5MSAv
KiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovOyB9OworCQk0QTk4MzNFMjEyNkM3M0FGMDA4NkMx
OTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNFMDEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01T
ZXR0YWJsZVRva2VuTGlzdC5jcHAgKi87IH07CisJCTRBOTgzM0UzMTI2QzczQUYwMDg2QzE5MSAv
KiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNFMTEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01TZXR0YWJs
ZVRva2VuTGlzdC5oICovOyB9OwogCQk0QjI3MDhDNzBBRjE5RUU0MDA2NTEyN0YgLyogUGFzdGVi
b2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEIy
NzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQuaCAqLzsgfTsKIAkJNEIyNzA5ODMw
QUYyRTVFMDAwNjUxMjdGIC8qIFBhc3RlYm9hcmRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjI3MDk4MTBBRjJFNUUwMDA2NTEyN0YgLyogUGFz
dGVib2FyZE1hYy5tbSAqLzsgfTsKIAkJNEIzMDQzQzcwQUUwMzcwMzAwQTgyNjQ3IC8qIFNvdW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjMwNDND
NjBBRTAzNzAzMDBBODI2NDcgLyogU291bmQuaCAqLzsgfTsKQEAgLTcxNTcsNiArNzE2MywxMyBA
QAogCQk0OUZGQkYzRDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTExheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViR0xMYXllci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE4Qzk2RUEwQkU2OTAzMjAwNEVFRkYwIC8qIFNlbGVj
dGlvbkNvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbTsgcGF0aCA9IG1hYy9TZWxlY3Rpb25Db250
cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTk4MzNENjEyNkM3
MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENsYXNzTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
OTgzM0Q3MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2xhc3NMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTRBOTgzM0RBMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBOTgzM0RCMTI2QzczN0MwMDg2QzE5
MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0QTk4MzNEQzEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVNldHRhYmxlVG9rZW5MaXN0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5ODMzRTAxMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9NU2V0
dGFibGVUb2tlbkxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTRBOTgzM0UxMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8q
IFBhc3RlYm9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFzdGVib2Fy
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QjI3MDk4MTBBRjJFNUUwMDA2NTEy
N0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBhc3RlYm9hcmRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRC
MzA0M0M2MEFFMDM3MDMwMEE4MjY0NyAvKiBTb3VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU291bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NTE2
LDYgKzE0NTI5LDggQEAKIAkJCQlGNTVCM0Q3QzEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5w
dXRUeXBlLmggKi8sCiAJCQkJRjU1QjNEN0QxMjUxRjEyRDAwM0VGMjY5IC8qIENoZWNrYm94SW5w
dXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q3RTEyNTFGMTJEMDAzRUYyNjkgLyogQ2hlY2tib3hJ
bnB1dFR5cGUuaCAqLywKKwkJCQk0QTk4MzNENjEyNkM3MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0
LmNwcCAqLywKKwkJCQk0QTk4MzNENzEyNkM3MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmggKi8s
CiAJCQkJOTNDNDQxRUQwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25DYWNoZS5jcHAgKi8s
CiAJCQkJOTNDNDQxRUUwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25DYWNoZS5oICovLAog
CQkJCTkzQzQ0MUZGMEY4MTNBRTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uVHlwZS5oICovLApAQCAt
MTQ1NDEsNiArMTQ1NTYsOSBAQAogCQkJCTJFRDYwOUJBMTE0NUIwNzEwMEM4Njg0RSAvKiBET01G
b3JtRGF0YS5jcHAgKi8sCiAJCQkJMkVENjA5QkIxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1E
YXRhLmggKi8sCiAJCQkJMkUwODg4QzMxMTQ4ODNBOTAwQUY0MjY1IC8qIERPTUZvcm1EYXRhLmlk
bCAqLywKKwkJCQk0QTk4MzNEQTEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxp
c3QuY3BwICovLAorCQkJCTRBOTgzM0RCMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRv
a2VuTGlzdC5oICovLAorCQkJCTRBOTgzM0RDMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJs
ZVRva2VuTGlzdC5pZGwgKi8sCiAJCQkJNzZGQzJCMDgxMjM3MERBMDAwNkE5OTFBIC8qIERPTVRv
a2VuTGlzdC5jcHAgKi8sCiAJCQkJNzZGQzJCMDkxMjM3MERBMDAwNkE5OTFBIC8qIERPTVRva2Vu
TGlzdC5oICovLAogCQkJCTc2RkMyQjBBMTIzNzBEQTAwMDZBOTkxQSAvKiBET01Ub2tlbkxpc3Qu
aWRsICovLApAQCAtMTUwOTEsNiArMTUxMDksOCBAQAogCQkJCUJDNzdEMTY4MEZGMTlGNTUwMDcw
ODg3QiAvKiBKU0RhdGFHcmlkQ29sdW1uTGlzdC5oICovLAogCQkJCTJFMDg4OEQyMTE0ODg0OEEw
MEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRTA4ODhEMzExNDg4NDhBMDBB
RjQyNjUgLyogSlNET01Gb3JtRGF0YS5oICovLAorCQkJCTRBOTgzM0UwMTI2QzczQUYwMDg2QzE5
MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywKKwkJCQk0QTk4MzNFMTEyNkM3M0FG
MDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5oICovLAogCQkJCTc2OTQ1NjNBMTIx
NEQ5N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5jcHAgKi8sCiAJCQkJNzY5NDU2M0IxMjE0
RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0LmggKi8sCiAJCQkJNDlFRUNFRjQxMDUwNzBD
NDAwMDk5RkFCIC8qIEpTRmxvYXQzMkFycmF5LmNwcCAqLywKQEAgLTE4Mzk1LDYgKzE4NDE1LDcg
QEAKIAkJCQlBODE4NzIyMDA5NzdEM0MwMDA1ODI2RDkgLyogQ2hpbGROb2RlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTREODIzNTIwQUY5MkE3OTAwMDRGMDU3IC8qIENocm9tZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTREODI0MDgwQUY5M0FFQjAwMDRGMDU3IC8qIENocm9tZUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNEE5ODMzRDkxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5MDRCNzcwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNz
Tm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzA2NTdFMEYzQ0UxQjcwMENEMkQ4NyAv
KiBDbGllbnRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MwNjU4MTBGM0NFMUI3MDBDRDJE
ODcgLyogQ2xpZW50UmVjdExpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMTg4MjIsNiArMTg4NDMs
NyBAQAogCQkJCTg1NUQzNThBMEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNEMEZDNEYwREJENzIwQjAwQjJGNjMwIC8qIERPTVJHQkNvbG9ySW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUE4Njg1MEMzMzY3NjAwMEVFQTY0OSAvKiBE
T01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRBOTgzM0RFMTI2QzczN0MwMDg2QzE5
MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU0NDI3NEIx
MUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRjUwMjVCMTAyQkE5MDEwMDY2RjM5QSAvKiBET01TdHlsZU1lZGlhLmggaW4gSGVhZGVy
cyAqLywKQEAgLTE5Njc1LDYgKzE5Njk3LDcgQEAKIAkJCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAy
ODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMDYy
MDEwRjVGMEI2NjAwQTA3RUFDIC8qIEluc3BlY3RvclJlc291cmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MkFCMTc3NjEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNEZBM0I5MEIxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3Rv
clN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUIwQjFDMTEyMTFBNjIyMDBBNzY5NDAgLyog
SW5zcGVjdG9yU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkFCMTc3NDEyNUM4
MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzU0MTMzQTgxMDJFMDBFODAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTk3ODAsNiArMTk4MDMsNyBAQAogCQkJCUE5RDI0N0ZGMEQ3NTdFNjkw
MEZERjk1OSAvKiBKU0RPTVBsdWdpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlEMjQ4MDEwRDc1
N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NUE4NkI2MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNEE5ODMzRTMxMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUM1MTM3Q0YzMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0
cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDk4MTFEODIzNDkwMDY0NTVCMCAv
KiBKU0RPTVN0cmluZ01hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzY5NDU2M0QxMjE0RDk3QzAw
MDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIwMjAxLDYgKzIw
MjI1LDcgQEAKIAkJCQkxQThGNkJDNjBEQjU1Q0RDMDAxREI3OTQgLyogTWFuaWZlc3RQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODRDMDlENTY0OUQwMDAzQUM4RCAvKiBNYXBwZWRB
dHRyaWJ1dGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZF
NTgxIC8qIG1hcmt1cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFF
ODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNTEw
NTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkFC
RTcyRjcxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY5MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxNYXRo
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTA4MCw4ICsyMTEwNSw2IEBACiAJCQkJOTNG
MTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3Rh
dGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJr
dXBBY2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMTQ5NCw2ICsyMTUxNyw3IEBACiAJ
CQkJQTgxODcyMjUwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTREODIzOEIwQUY5MkRGNjAwMDRGMDU3IC8qIENocm9tZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBQkFGMjIwODBDMDNCMUM3MDBCMEJDRjAgLyogQ2hyb21lTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJNEE5ODMzRDgxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzkwNEI3NjBEMTA5OThGMDA2ODBEMzIgLyogQ2xhc3NO
b2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU3RDBGM0NFMUI3MDBDRDJEODcg
LyogQ2xpZW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0MwNjU4MDBGM0NFMUI3MDBD
RDJEODcgLyogQ2xpZW50UmVjdExpc3QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMTc2Nyw2ICsy
MTc5MSw3IEBACiAJCQkJODU4QzM4QTgwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QubW0gaW4g
U291cmNlcyAqLywKIAkJCQlCQ0FFRkNBRTEwMTZDRTRBMDA0MEQzNEUgLyogRE9NUkdCQ29sb3Iu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzVBODY4NDBDMzM2NzYwMDBFRUE2NDkgLyogRE9NU2Vs
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBOTgzM0REMTI2QzczN0MwMDg2QzE5MSAv
KiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTU2MTBGMTEx
QTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzY0NjQwOTExRDdGMzA0MDA2NDU1QjAgLyogRE9NU3RyaW5nTWFwLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRjUwMjVDMTAyQkE5MDEwMDY2RjM5QSAvKiBET01TdHlsZU1lZGlhLm1tIGluIFNv
dXJjZXMgKi8sCkBAIC0yMjIzMSw2ICsyMjI1Niw3IEBACiAJCQkJQjg4NUU4RDQxMUUwNkREMjAw
OUZGQkY0IC8qIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QTc0RUNCQTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yQmFja2VuZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0RjcwN0E5OTExRUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJN0ExRjJCNTIxMjZDNjFC
MjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzgx
Qjk1QjBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk4MkFCMTc0MzEyNEI5OUVDMDBDNTA2OUQgLyogSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJCNjU4OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3Bl
Y3RvckNTU1N0b3JlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjIyNDUsNiArMjIyNzEsNyBAQAog
CQkJCTlGMEQ2QjJFMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxRjA2MjAyMEY1RjBCNjYwMEEwN0VBQyAvKiBJbnNwZWN0
b3JSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3NTEyNUM4MjY3MDBDNTA2
OUQgLyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0RkEz
QjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0FCMEIxQzAxMjExQTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvclN0b3JhZ2VBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVj
dG9yU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NTQxMzNBQTEwMkUwMEY0MDAw
NzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIy
Mzc1LDYgKzIyNDAyLDcgQEAKIAkJCQlBOUM2RTY0QzBENzQ2NUU3MDA2NDQyRTkgLyogSlNET01Q
bHVnaW5BcnJheUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTY0RDBENzQ2NUU3
MDA2NDQyRTkgLyogSlNET01QbHVnaW5DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1
QTg2QjUwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTRBOTgzM0UyMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1MTM3Q0YyMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RP
TVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NDY0OTcxMUQ4MjM0OTAwNjQ1
NUIwIC8qIEpTRE9NU3RyaW5nTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDlDMTFE
ODIzOEMwMDY0NTVCMCAvKiBKU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTIyODYyLDYgKzIyODkwLDcgQEAKIAkJCQk5M0UyMjdFMTBBRjU4OUFEMDBENDgzMjQgLyog
TWFpblJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEY2QkM1MERCNTVD
REMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMw
OURGNzA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3
MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGQUJFNzJGNDEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGRDEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxl
bWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkFCRTcyRjYxMDU5QzFFQjAwRDk5
OUREIC8qIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yMzYyOCw5ICsyMzY1Nyw2IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8qIFhT
TFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENGNkM1
MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdE
RDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNEZBM0I5MEExMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTk3MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3QTFGMkI1MjEyNkM2MUIyMDAwNkE3RTYgLyogSW5z
cGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dO
VW1ha2VmaWxlLmFtCmluZGV4IGQ4MDhlMTg5OWYzYWZiZDdhZjViODczZDZlZWY2Y2FhNTExNWJk
MzQuLjMzOGQ3Zjk0ZTkxYzE4OTM1NTlhOTAwMjU0NTdkZDIzMDAwYjRjMmYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KQEAgLTQ5LDYgKzQ5LDggQEAgd2Via2l0Z3Rr
X2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERP
TURPTVN0cmluZ0xpc3RQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01ET01TdHJpbmdNYXAuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9N
U3RyaW5nTWFwUHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
RE9NU2V0dGFibGVUb2tlbkxpc3RQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01ET01Ub2tlbkxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NRE9NVG9rZW5MaXN0UHJpdmF0ZS5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NRE9NV2luZG93LmNwcCBcCkBAIC0yNjMsNiArMjY1LDcgQEAgd2Via2l0Z3RrX2J1aWx0X2hf
YXBpICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmggXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5oIFwKKwlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTVN0cmluZ0xpc3QuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTVN0cmluZ01hcC5oIFwKIAlEZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNTU3OWEzNWYxZmUwZDNmMjZkNjZjYWNmZmYx
NWY5NDcyYjE2YzM0NC4uODJmNWI1ODA1OWNjODNmYTgzZTE2M2ZkNGViZmE5ZGNhNDczNThjNSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yNDAs
NyArMjQwLDcgQEAgc3ViIEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MKIHsKICAgICBteSAkdHlw
ZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRp
b24iIG9yICR0eXBlIGVxICJNZWRpYUxpc3QiIG9yICR0eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNs
YXJhdGlvbiIgb3IgJHR5cGUgZXEgIkRPTVN0cmluZ0xpc3QiIG9yICR0eXBlIGVxICJET01Ub2tl
bkxpc3QiOworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIiBv
ciAkdHlwZSBlcSAiTWVkaWFMaXN0IiBvciAkdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRp
b24iIG9yICR0eXBlIGVxICJET01TdHJpbmdMaXN0IiBvciAkdHlwZSBlcSAiRE9NVG9rZW5MaXN0
IiBvciAkdHlwZSBlcSAiRE9NU2V0dGFibGVUb2tlbkxpc3QiOwogICAgIHJldHVybiAwOwogfQog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVNldHRhYmxlVG9r
ZW5MaXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFi
bGVUb2tlbkxpc3RDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZGI3YjczMDAyOGJhMzcwMmJjYTlh
Y2ZkN2Y0M2JlODg2OTE1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOERPTVNldHRhYmxlVG9rZW5MaXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVjhET01TZXR0
YWJsZVRva2VuTGlzdC5oIgorCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKwor
I2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4UHJveHkuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01TZXR0YWJsZVRva2VuTGlz
dDo6aW5kZXhlZFByb3BlcnR5R2V0dGVyKHVpbnQzMl90IGluZGV4LCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQoreworICAgIC8vIFRPRE8oYmFzaGkpOiBJbXBsZW1lbnQgdGhpcyBmdW5j
dGlvbi4KKyAgICByZXR1cm4gdjhTdHJpbmcoIiIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDgzZTEyOWU4ZTI4Y2ZhNTEwZWUwZDgxNTZkMjQzODVkMWU5M2RjZjku
Ljc2ZDZlOWM4NGY1ZGI5ODgwYmQyY2RlZWFkZTJjYWRjNGYwODE2Y2UgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0
b3JMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkNsYXNz
TGlzdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRlICJDbGllbnRSZWN0TGlz
dC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgpAQCAtMTU4NSw3ICsxNTg2LDcgQEAgRE9N
VG9rZW5MaXN0KiBFbGVtZW50OjpjbGFzc0xpc3QoKQogewogICAgIEVsZW1lbnRSYXJlRGF0YSog
ZGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7CiAgICAgaWYgKCFkYXRhLT5tX2NsYXNzTGlzdCkKLSAg
ICAgICAgZGF0YS0+bV9jbGFzc0xpc3QgPSBET01Ub2tlbkxpc3Q6OmNyZWF0ZSh0aGlzKTsKKyAg
ICAgICAgZGF0YS0+bV9jbGFzc0xpc3QgPSBDbGFzc0xpc3Q6OmNyZWF0ZSh0aGlzKTsKICAgICBy
ZXR1cm4gZGF0YS0+bV9jbGFzc0xpc3QuZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5k
ZXggZjFlNjMzNDE4Y2MyNDY2OTUzYTg5MjlhODBjM2NjY2M1NmViY2Q4YS4uMDZiZmUwYzdkYWI3
MjgyNTE3NjZkN2U1YWVkZTRiYzJlYzg2ZTYxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTIy
LDcgKzIyLDcgQEAKICNpZm5kZWYgRWxlbWVudFJhcmVEYXRhX2gKICNkZWZpbmUgRWxlbWVudFJh
cmVEYXRhX2gKIAotI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkNsYXNzTGlz
dC5oIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdNYXAuaCIKICNpbmNsdWRlICJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoK
ICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY29tcHV0ZWRTdHlsZTsKIAogICAgIE93blB0cjxE
YXRhc2V0RE9NU3RyaW5nTWFwPiBtX2RhdGFzZXRET01TdHJpbmdNYXA7Ci0gICAgT3duUHRyPERP
TVRva2VuTGlzdD4gbV9jbGFzc0xpc3Q7CisgICAgT3duUHRyPENsYXNzTGlzdD4gbV9jbGFzc0xp
c3Q7CiB9OwogCiBpbmxpbmUgSW50U2l6ZSBkZWZhdWx0TWluaW11bVNpemVGb3JSZXNpemluZygp
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9t
L1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IDEyNzQ0Y2IwNjBjOWQ5MjBlNzNlMTQzNWEzNjQ1NGQ0
MzhiMDk5NzMuLjczODRjMGJjMmFiZmExNjg2NGViY2VjNTgyODk3M2NkZTAxMzkxYTEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1N0
eWxlZEVsZW1lbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVu
dC5oIgogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAj
aW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIK
ICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBT
dHlsZWRFbGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBu
ZXdDbGFzc1N0cmluZykKICAgICBpZiAoaGFzQ2xhc3MpIHsKICAgICAgICAgYXR0cmlidXRlcygp
LT5zZXRDbGFzcyhuZXdDbGFzc1N0cmluZyk7CiAgICAgICAgIGlmIChET01Ub2tlbkxpc3QqIGNs
YXNzTGlzdCA9IG9wdGlvbmFsQ2xhc3NMaXN0KCkpCi0gICAgICAgICAgICBjbGFzc0xpc3QtPnJl
c2V0KG5ld0NsYXNzU3RyaW5nKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PENsYXNzTGlzdCo+
KGNsYXNzTGlzdCktPnJlc2V0KG5ld0NsYXNzU3RyaW5nKTsKICAgICB9IGVsc2UgaWYgKGF0dHJp
YnV0ZU1hcCgpKQogICAgICAgICBhdHRyaWJ1dGVNYXAoKS0+Y2xlYXJDbGFzcygpOwogICAgIHNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1l
bnQuaCBiL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAppbmRleCA0YjYyMzg4MTQ0NGUxODU0
MDc2MzYzYzBjYzY5MjFiOTg3M2QzMDYxLi44MDQwZGJmMWUzNjhhY2I3ZjRlYThlODM1N2ExYjE1
YWY4MDQyZjAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysrIGIv
V2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEF0dHJpYnV0ZTsKLWNsYXNzIENsYXNzTGlzdDsKIGNsYXNzIENT
U01hcHBlZEF0dHJpYnV0ZURlY2xhcmF0aW9uOwogCiBjbGFzcyBTdHlsZWRFbGVtZW50IDogcHVi
bGljIEVsZW1lbnQgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAgYi9X
ZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTMwZDE0NjVjMTBiMjgxYzdm
MTU4MmQ5NzMxZmY1ODI5YWQwZWNjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0Ns
YXNzTGlzdC5jcHAKQEAgLTAsMCArMSwxNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDbGFzc0xpc3QuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisj
aW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOworCitDbGFzc0xpc3Q6OkNsYXNzTGlzdChFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9l
bGVtZW50KGVsZW1lbnQpCit7CisgICAgaWYgKG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWly
a3NNb2RlKCkpCisgICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG1fZWxlbWVu
dC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpLCBmYWxzZSk7Cit9CisKK3ZvaWQgQ2xhc3NM
aXN0OjpyZWYoKQoreworICAgIG1fZWxlbWVudC0+cmVmKCk7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0
OjpkZXJlZigpCit7CisgICAgbV9lbGVtZW50LT5kZXJlZigpOworfQorCit1bnNpZ25lZCBDbGFz
c0xpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+aGFzQ2xhc3Mo
KSA/IGNsYXNzTmFtZXMoKS5zaXplKCkgOiAwOworfQorCitjb25zdCBBdG9taWNTdHJpbmcgQ2xh
c3NMaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmIChpbmRleCA+PSBs
ZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygpOworICAgIHJldHVybiBjbGFz
c05hbWVzKClbaW5kZXhdOworfQorCitib29sIENsYXNzTGlzdDo6Y29udGFpbnMoY29uc3QgQXRv
bWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKCF2
YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gY29udGFpbnNJbnRlcm5hbCh0b2tlbik7Cit9CisKK2Jvb2wgQ2xhc3NMaXN0Ojpjb250YWlu
c0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBjbGFzc05hbWVzKCkuY29udGFpbnModG9rZW4pOwor
fQorCit2b2lkIENsYXNzTGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAg
ICAgICByZXR1cm47CisgICAgYWRkSW50ZXJuYWwodG9rZW4pOworfQorCit2b2lkIENsYXNzTGlz
dDo6YWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKK3sKKyAgICBj
b25zdCBBdG9taWNTdHJpbmcmIG9sZENsYXNzTmFtZShtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1
dGUoY2xhc3NBdHRyKSk7CisgICAgaWYgKG9sZENsYXNzTmFtZS5pc0VtcHR5KCkpCisgICAgICAg
IG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgdG9rZW4pOworICAgIGVsc2UgaWYg
KCFjb250YWluc0ludGVybmFsKHRva2VuKSkgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG9sZENsYXNzTmFtZSk7CisgICAgICAgIGlmIChv
bGRDbGFzc05hbWVbb2xkQ2xhc3NOYW1lLmxlbmd0aCgpIC0gMV0gIT0gJyAnKQorICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQodG9rZW4pOwor
ICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgfQorfQorCit2b2lkIENsYXNzTGlzdDo6cmVtb3ZlKGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tl
bih0b2tlbiwgZWMpKQorICAgICAgICByZXR1cm47CisgICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4p
OworfQorCit2b2lkIENsYXNzTGlzdDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbikgY29uc3QKK3sKKyAgICAvLyBDaGVjayB1c2luZyBjb250YWlucyBmaXJzdCBzaW5j
ZSBpdCB1c2VzIEF0b21pY1N0cmluZyBjb21wYXJpc29ucyBpbnN0ZWFkCisgICAgLy8gb2YgY2hh
cmFjdGVyIGJ5IGNoYXJhY3RlciB0ZXN0aW5nLgorICAgIGlmICghY29udGFpbnNJbnRlcm5hbCh0
b2tlbikpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQg
PSBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKTsKKyAgICBWZWN0b3I8VUNo
YXI+IG91dHB1dDsKKworICAgIHJlbW92ZVRva2VuKGlucHV0LCB0b2tlbiwgb3V0cHV0KTsKKwor
ICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgU3RyaW5nOjphZG9wdChvdXRw
dXQpKTsKK30KKworYm9vbCBDbGFzc0xpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRv
a2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4s
IGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGNvbnRhaW5zSW50ZXJuYWwo
dG9rZW4pKSB7CisgICAgICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICBhZGRJbnRlcm5hbCh0b2tlbik7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK1N0cmluZyBDbGFzc0xpc3Q6OnRvU3RyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cik7Cit9CisKK3ZvaWQgQ2xhc3NM
aXN0OjpyZXNldChjb25zdCBTdHJpbmcmIG5ld0NsYXNzTmFtZSkKK3sKKyAgICBpZiAoIW1fY2xh
c3NOYW1lc0ZvclF1aXJrc01vZGUuaXNOdWxsKCkpCisgICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1
aXJrc01vZGUuc2V0KG5ld0NsYXNzTmFtZSwgZmFsc2UpOworfQorCitjb25zdCBTcGFjZVNwbGl0
U3RyaW5nJiBDbGFzc0xpc3Q6OmNsYXNzTmFtZXMoKSBjb25zdAoreworICAgIEFTU0VSVChtX2Vs
ZW1lbnQtPmhhc0NsYXNzKCkpOworICAgIGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7CisgICAg
cmV0dXJuIG1fZWxlbWVudC0+YXR0cmlidXRlTWFwKCktPmNsYXNzTmFtZXMoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5o
IGIvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMDgzNDlmN2NhNjc0MDAw
ZGI5MmMzMGI2OTgxNWZkZTk0ZjA0MDUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwv
Q2xhc3NMaXN0LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDbGFz
c0xpc3RfaAorI2RlZmluZSBDbGFzc0xpc3RfaAorCisjaW5jbHVkZSAiRE9NVG9rZW5MaXN0Lmgi
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEVsZW1lbnQ7CisKK2NsYXNzIENsYXNzTGlzdCA6IHB1YmxpYyBET01Ub2tlbkxpc3Qg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPENsYXNzTGlzdD4gY3JlYXRlKEVsZW1l
bnQqIGVsZW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENsYXNzTGlz
dChlbGVtZW50KSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHJlZigpOworICAgIHZpcnR1
YWwgdm9pZCBkZXJlZigpOworCisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgQXRvbWlj
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgYm9vbCB0b2dnbGUoY29uc3Qg
QXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgU3RyaW5nIHRvU3Ry
aW5nKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBt
X2VsZW1lbnQ7IH0KKworICAgIHZvaWQgcmVzZXQoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6
CisgICAgQ2xhc3NMaXN0KEVsZW1lbnQqKTsKKworICAgIHZvaWQgYWRkSW50ZXJuYWwoY29uc3Qg
QXRvbWljU3RyaW5nJikgY29uc3Q7CisgICAgYm9vbCBjb250YWluc0ludGVybmFsKGNvbnN0IEF0
b21pY1N0cmluZyYpIGNvbnN0OworICAgIHZvaWQgcmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWlj
U3RyaW5nJikgY29uc3Q7CisKKyAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVz
KCkgY29uc3Q7CisKKyAgICBFbGVtZW50KiBtX2VsZW1lbnQ7CisgICAgU3BhY2VTcGxpdFN0cmlu
ZyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gQ2xhc3NMaXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01T
ZXR0YWJsZVRva2VuTGlzdC5jcHAgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBlMGE0OWFhY2ZkZjQ3NjAwYzM5NWJiYWE2ZTBkZTdkYzY1NDRhMmIK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3Bw
CkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01TZXR0YWJsZVRva2Vu
TGlzdDo6RE9NU2V0dGFibGVUb2tlbkxpc3QoKQorICAgIDogbV92YWx1ZSgiIikKKyAgICAsIG1f
dG9rZW5zKCkKK3sKK30KKworRE9NU2V0dGFibGVUb2tlbkxpc3Q6On5ET01TZXR0YWJsZVRva2Vu
TGlzdCgpCit7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyBET01TZXR0YWJsZVRva2VuTGlzdDo6
aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkp
CisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoIiIpOworICAgIHJldHVybiBtX3Rva2Vuc1tp
bmRleF07Cit9CisKK2Jvb2wgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNvbnRhaW5zKGNvbnN0IEF0
b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICgh
dmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIG1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKTsKK30KKwordm9pZCBET01TZXR0YWJsZVRva2Vu
TGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpIHx8IG1fdG9rZW5zLmNvbnRhaW5z
KHRva2VuKSkKKyAgICAgICAgcmV0dXJuOworICAgIGFkZEludGVybmFsKHRva2VuKTsKK30KKwor
dm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6YWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbikKK3sKKyAgICBpZiAobV90b2tlbnMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV90b2tl
bnMuc2V0KHRva2VuLCB0cnVlKTsKKyAgICAgICAgbV92YWx1ZSA9IHRva2VuOworICAgIH0gZWxz
ZSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQobV92YWx1ZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKHRva2VuKTsKKyAgICAgICAgbV92YWx1ZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgbV90b2tlbnMuc2V0KGJ1aWxkZXIudG9TdHJpbmcoKSwgdHJ1ZSk7CisgICAgfQor
fQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRv
a2VuLCBlYykgfHwgIW1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsKK30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlz
dDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKK3sKKyAgICBWZWN0
b3I8VUNoYXI+IG91dHB1dDsKKworICAgIHJlbW92ZVRva2VuKG1fdmFsdWUsIHRva2VuLCBvdXRw
dXQpOworICAgIG1fdG9rZW5zLmNsZWFyKCk7CisgICAgbV92YWx1ZSA9IFN0cmluZzo6YWRvcHQo
b3V0cHV0KTsKKyAgICBtX3Rva2Vucy5zZXQobV92YWx1ZSwgdHJ1ZSk7Cit9CisKK2Jvb2wgRE9N
U2V0dGFibGVUb2tlbkxpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX3Rva2Vucy5jb250YWlucyh0b2tlbikpIHsK
KyAgICAgICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4pOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIGFkZEludGVybmFsKHRva2VuKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU3Ry
aW5nIERPTVNldHRhYmxlVG9rZW5MaXN0Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHZhbHVlKCk7Cit9CisKK1N0cmluZyBET01TZXR0YWJsZVRva2VuTGlzdDo6dmFsdWUoKSBjb25z
dAoreworICAgIHJldHVybiBtX3ZhbHVlOworfQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0
OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIGlmICghbV90b2tlbnMuaXNO
dWxsKCkpCisgICAgICAgIG1fdG9rZW5zLmNsZWFyKCk7CisgICAgbV92YWx1ZSA9IHZhbHVlOwor
ICAgIG1fdG9rZW5zLnNldCh2YWx1ZSwgdHJ1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIGIvV2Vi
Q29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk3YmMzZGQ5MjQy
ZDc3Nzg4NTUwNjcxNjA4NWU0NDYzMTdjMmZjZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
aHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgRE9NU2V0dGFibGVUb2tlbkxpc3RfaAorI2RlZmluZSBET01TZXR0YWJsZVRv
a2VuTGlzdF9oCisKKyNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01T
ZXR0YWJsZVRva2VuTGlzdCA6IHB1YmxpYyBET01Ub2tlbkxpc3QsIHB1YmxpYyBSZWZDb3VudGVk
PERPTVNldHRhYmxlVG9rZW5MaXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
RE9NU2V0dGFibGVUb2tlbkxpc3Q+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IERPTVNldHRhYmxlVG9rZW5MaXN0KCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5E
T01TZXR0YWJsZVRva2VuTGlzdCgpOworCisgICAgdmlydHVhbCB2b2lkIHJlZigpIHsgUmVmQ291
bnRlZDxET01TZXR0YWJsZVRva2VuTGlzdD46OnJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRl
cmVmKCkgeyBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6ZGVyZWYoKTsgfQorCisg
ICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Rva2Vucy5zaXpl
KCk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgQXRvbWlj
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3Qg
QXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgYm9vbCB0b2dnbGUo
Y29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgU3RyaW5n
IHRvU3RyaW5nKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKKyAgICB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIERPTVNldHRhYmxlVG9r
ZW5MaXN0KCk7CisgICAgdm9pZCBhZGRJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAg
ICB2b2lkIHJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpOworCisgICAgU3RyaW5n
IG1fdmFsdWU7CisgICAgU3BhY2VTcGxpdFN0cmluZyBtX3Rva2VuczsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERPTVNldHRhYmxlVG9rZW5MaXN0X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgYi9XZWJDb3JlL2h0
bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNjA2MjNlZWI0NjNkN2Mz
MGQ5NmY5MDI4MTkxMDAxZjcxYTMzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwv
RE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIEdlbmVyYXRlQ29uc3Ry
dWN0b3IsCisgICAgICAgIEhhc0luZGV4R2V0dGVyLAorICAgICAgICBHZW5lcmF0ZVRvSlMKKyAg
ICBdIERPTVNldHRhYmxlVG9rZW5MaXN0IDogRE9NVG9rZW5MaXN0IHsKKyAgICAgICAgYXR0cmli
dXRlIERPTVN0cmluZyB2YWx1ZTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4
IGFhMGE3NGIyYWNiYmQ4YTU3OWRjYWU2NjBlNTU0OTQyNDc0MWY3MWMuLjg5OTYxZWQxMjhhODhi
MTBlYjcwMzk2ZTkzYjcyODU1NmQzMjJjNTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0yNSwx
NyArMjUsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3Qu
aCIKIAotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJIVE1MUGFyc2VySWRpb21zLmgiCi0jaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotCi1zdGF0aWMgYm9vbCB2YWxpZGF0ZVRv
a2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBE
T01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKHRva2VuLmlzRW1wdHkoKSkgewogICAgICAgICBl
YyA9IFNZTlRBWF9FUlI7CkBAIC01Myw4OCArNDcsMTEgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVU
b2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCogZWxl
bWVudCkKLSAgICA6IG1fZWxlbWVudChlbGVtZW50KQotewotICAgIGlmIChtX2VsZW1lbnQtPmRv
Y3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQotICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLnNldChtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSwgZmFsc2UpOwot
fQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVmKCkKLXsKLSAgICBtX2VsZW1lbnQtPnJlZigpOwot
fQotCi12b2lkIERPTVRva2VuTGlzdDo6ZGVyZWYoKQotewotICAgIG1fZWxlbWVudC0+ZGVyZWYo
KTsKLX0KLQotdW5zaWduZWQgRE9NVG9rZW5MaXN0OjpsZW5ndGgoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2VsZW1lbnQtPmhhc0NsYXNzKCkgPyBjbGFzc05hbWVzKCkuc2l6ZSgpIDogMDsKLX0K
LQotY29uc3QgQXRvbWljU3RyaW5nIERPTVRva2VuTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkg
Y29uc3QKLXsKLSAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBBdG9t
aWNTdHJpbmcoKTsKLSAgICByZXR1cm4gY2xhc3NOYW1lcygpW2luZGV4XTsKLX0KLQotYm9vbCBE
T01Ub2tlbkxpc3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAotewotICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGNvbnRhaW5zSW50ZXJuYWwodG9rZW4p
OwotfQotCi1ib29sIERPTVRva2VuTGlzdDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNT
dHJpbmcmIHRva2VuKSBjb25zdAotewotICAgIHJldHVybiBtX2VsZW1lbnQtPmhhc0NsYXNzKCkg
JiYgY2xhc3NOYW1lcygpLmNvbnRhaW5zKHRva2VuKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6
OmFkZChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGFk
ZEludGVybmFsKHRva2VuKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OmFkZEludGVybmFsKGNv
bnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0Cit2b2lkIERPTVRva2VuTGlzdDo6cmVtb3Zl
VG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1dCwgY29uc3QgQXRvbWljU3RyaW5nJiB0b2tl
biwgVmVjdG9yPFVDaGFyPiYgb3V0cHV0KQogewotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgb2xk
Q2xhc3NOYW1lKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpKTsKLSAgICBp
ZiAob2xkQ2xhc3NOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1
dGUoY2xhc3NBdHRyLCB0b2tlbik7Ci0gICAgZWxzZSBpZiAoIWNvbnRhaW5zSW50ZXJuYWwodG9r
ZW4pKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQob2xkQ2xhc3NOYW1lKTsKLSAgICAgICAgaWYgKG9sZENsYXNzTmFtZVtvbGRDbGFzc05h
bWUubGVuZ3RoKCkgLSAxXSAhPSAnICcpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwotICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tlbik7Ci0gICAgICAgIG1fZWxlbWVudC0+c2V0
QXR0cmlidXRlKGNsYXNzQXR0ciwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICB9Ci19Ci0KLXZv
aWQgRE9NVG9rZW5MaXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0
aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCi0gICAg
ICAgIHJldHVybjsKLSAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7Ci19Ci0KLXZvaWQgRE9NVG9r
ZW5MaXN0OjpyZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAot
ewotICAgIC8vIENoZWNrIHVzaW5nIGNvbnRhaW5zIGZpcnN0IHNpbmNlIGl0IHVzZXMgQXRvbWlj
U3RyaW5nIGNvbXBhcmlzb25zIGluc3RlYWQKLSAgICAvLyBvZiBjaGFyYWN0ZXIgYnkgY2hhcmFj
dGVyIHRlc3RpbmcuCi0gICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2VuKSkKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgLy8gQWxnb3JpdGhtIGRlZmluZWQgYXQgaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLW1pY3Jvc3lu
dGF4ZXMuaHRtbCNyZW1vdmUtYS10b2tlbi1mcm9tLWEtc3RyaW5nCiAKLSAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIGlucHV0ID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cik7
CiAgICAgdW5zaWduZWQgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGgoKTsKLSAgICBWZWN0b3I8
VUNoYXI+IG91dHB1dDsgLy8gMwogICAgIG91dHB1dC5yZXNlcnZlQ2FwYWNpdHkoaW5wdXRMZW5n
dGgpOwogICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsgLy8gNAogCkBAIC0xNzAsMzkgKzg3LDYg
QEAgdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYg
dG9rZW4pIGNvbnN0CiAgICAgfQogCiAgICAgb3V0cHV0LnNocmlua1RvRml0KCk7Ci0gICAgbV9l
bGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBTdHJpbmc6OmFkb3B0KG91dHB1dCkpOwot
fQotCi1ib29sIERPTVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY29udGFpbnNJbnRlcm5hbCh0b2tl
bikpIHsKLSAgICAgICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4pOwotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIGFkZEludGVybmFsKHRva2VuKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotU3RyaW5nIERPTVRva2VuTGlzdDo6dG9TdHJpbmcoKSBjb25zdAotewotICAgIHJldHVybiBt
X2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKTsKLX0KLQotdm9pZCBET01Ub2tl
bkxpc3Q6OnJlc2V0KGNvbnN0IFN0cmluZyYgbmV3Q2xhc3NOYW1lKQotewotICAgIGlmICghbV9j
bGFzc05hbWVzRm9yUXVpcmtzTW9kZS5pc051bGwoKSkKLSAgICAgICAgbV9jbGFzc05hbWVzRm9y
UXVpcmtzTW9kZS5zZXQobmV3Q2xhc3NOYW1lLCBmYWxzZSk7Ci19Ci0KLWNvbnN0IFNwYWNlU3Bs
aXRTdHJpbmcmIERPTVRva2VuTGlzdDo6Y2xhc3NOYW1lcygpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
KG1fZWxlbWVudC0+aGFzQ2xhc3MoKSk7Ci0gICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZTsK
LSAgICByZXR1cm4gbV9lbGVtZW50LT5hdHRyaWJ1dGVNYXAoKS0+Y2xhc3NOYW1lcygpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRE9NVG9r
ZW5MaXN0LmggYi9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKaW5kZXggZmFkNjljYThiOTU5
NWUyMTc2OTJkMTAyNGI1MGZiYjg2MDY2M2Q1My4uM2Q2ZDdkZGI5NTI5YzhkZjUxODYzMGZiNTE2
YWYxZDM2OWVlNGQ0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCisr
KyBiL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOSArMjYsOSBAQAogI2RlZmluZSBET01U
b2tlbkxpc3RfaAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIlNwYWNl
U3BsaXRTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiwzNyAr
MzYsMjQgQEAgY2xhc3MgRWxlbWVudDsKIAogY2xhc3MgRE9NVG9rZW5MaXN0IDogcHVibGljIE5v
bmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxET01Ub2tlbkxpc3Q+
IGNyZWF0ZShFbGVtZW50KiBlbGVtZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBET01Ub2tlbkxpc3QoZWxlbWVudCkpOwotICAgIH0KKyAgICB2aXJ0dWFsIH5ET01Ub2tl
bkxpc3QoKSB7fTsKIAotICAgIHZvaWQgcmVmKCk7Ci0gICAgdm9pZCBkZXJlZigpOworICAgIHZp
cnR1YWwgdm9pZCByZWYoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgPSAwOwogCi0g
ICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwotICAgIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZp
cnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWlj
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmlu
ZygpIGNvbnN0ID0gMDsKIAotICAgIHZvaWQgcmVzZXQoY29uc3QgU3RyaW5nJik7CisgICAgdmly
dHVhbCBFbGVtZW50KiBlbGVtZW50KCkgeyByZXR1cm4gMDsgfQogCi0gICAgRWxlbWVudCogZWxl
bWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQotCi1wcml2YXRlOgotICAgIERPTVRva2VuTGlz
dChFbGVtZW50Kik7Ci0KLSAgICB2b2lkIGFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYp
IGNvbnN0OwotICAgIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBj
b25zdDsKLSAgICB2b2lkIHJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0
OwotCi0gICAgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lcygpIGNvbnN0OwotCi0g
ICAgRWxlbWVudCogbV9lbGVtZW50OwotICAgIFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFzc05hbWVz
Rm9yUXVpcmtzTW9kZTsKK3Byb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVUb2tlbihj
b25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBWZWN0b3I8VUNoYXI+Jik7
CisgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2Vu
LCBFeGNlcHRpb25Db2RlJiBlYyk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCmluZGV4IDlkNmM2MTBjYjUxOTQ3ZTcwNDMxNWY0NTI1ZDFkMzM5MDMwZjBjMjMuLmRk
MzQwNGYyYjJkZWI5ZDcxYzEyNWZkNDNlODBmMzM1MzRmNWQ5NDcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJE
T01BcHBsaWNhdGlvbkNhY2hlLmgiCiAjaW5jbHVkZSAiRE9NU2VsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAj
aW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKaW5kZXggMGU4MzU1NjVlNjI0YzYxYWQ5ZjNjN2IyZWNiYjQ4MzZlZDJlOGM0Ni4uMGVjYWE3
MTI0MDA3MzRmM2UzMGUzNGFhODE2NDFhN2YwYTBjOTU1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTM3
OCw2ICszNzgsNyBAQCBtb2R1bGUgd2luZG93IHsKIC8vICAgICAgICBhdHRyaWJ1dGUgRE9NSW1w
bGVtZW50YXRpb25MaXN0Q29uc3RydWN0b3IgRE9NSW1wbGVtZW50YXRpb25MaXN0OwogLy8gICAg
ICAgIGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvblNvdXJjZUNvbnN0cnVjdG9yIERPTUltcGxl
bWVudGF0aW9uU291cmNlOwogICAgICAgICBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb25Db25z
dHJ1Y3RvciBET01JbXBsZW1lbnRhdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIERPTVNldHRhYmxl
VG9rZW5MaXN0Q29uc3RydWN0b3IgRE9NU2V0dGFibGVUb2tlbkxpc3Q7CiAgICAgICAgIGF0dHJp
YnV0ZSBET01Ub2tlbkxpc3RDb25zdHJ1Y3RvciBET01Ub2tlbkxpc3Q7CiAgICAgICAgIGF0dHJp
YnV0ZSBEb2N1bWVudEZyYWdtZW50Q29uc3RydWN0b3IgRG9jdW1lbnRGcmFnbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgRG9jdW1lbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71255</attachid>
            <date>2010-10-19 23:32:24 -0700</date>
            <delta_ts>2010-10-20 23:58:06 -0700</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug-47810-20101020153222.patch</filename>
            <type>text/plain</type>
            <size>67930</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzY2NiNjkyYjlmNDNmODQ3ZDRiYTkzM2Q4Y2FlOGM3MTgyMDA1MjIxLi5jNTgxNjZl
NGZlNjM4YzNhYmJmNjllNDFkMDE0NjIxOWZkMDY5ZTYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTAtMTkgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBE
T01TZXR0YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc4MTAKKworICAgICAgICBVcGRhdGUgZXhwZWN0YXRpb25zLgorCisgICAg
ICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQu
dHh0OgorCiAyMDEwLTEwLTE5ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIENocm9taXVtIHRlc3QgcmViYXNlbGluZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0CmluZGV4IDhkNGE0MGRiYzlkNWU2M2ExZDAxMjcyY2MxM2YwYmEzZTNlZTZmMWUuLjYw
NWEzYjhjODQzNjNhMzA2MjdkOGM4Yjk1NjVmYmVjMDhjM2Y5NjcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dApAQCAtNTU1LDYgKzU1NSwxNCBAQCB3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24ucHJvdG90
eXBlLmhhc0ZlYXR1cmUgW2Z1bmN0aW9uXQogd2luZG93LkRPTVBhcnNlciBbb2JqZWN0IERPTVBh
cnNlckNvbnN0cnVjdG9yXQogd2luZG93LkRPTVBhcnNlci5wcm90b3R5cGUgW29iamVjdCBET01Q
YXJzZXJQcm90b3R5cGVdCiB3aW5kb3cuRE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJp
bmcgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9rZW5MaXN0IFtvYmplY3QgRE9NU2V0
dGFibGVUb2tlbkxpc3RDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5w
cm90b3R5cGUgW29iamVjdCBET01TZXR0YWJsZVRva2VuTGlzdFByb3RvdHlwZV0KK3dpbmRvdy5E
T01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUuYWRkIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01T
ZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUuY29udGFpbnMgW2Z1bmN0aW9uXQord2luZG93LkRP
TVNldHRhYmxlVG9rZW5MaXN0LnByb3RvdHlwZS5pdGVtIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01T
ZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUucmVtb3ZlIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01T
ZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUudG9TdHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkRP
TVNldHRhYmxlVG9rZW5MaXN0LnByb3RvdHlwZS50b2dnbGUgW2Z1bmN0aW9uXQogd2luZG93LkRP
TVN0cmluZ0xpc3QgW29iamVjdCBET01TdHJpbmdMaXN0Q29uc3RydWN0b3JdCiB3aW5kb3cuRE9N
U3RyaW5nTGlzdC5wcm90b3R5cGUgW29iamVjdCBET01TdHJpbmdMaXN0UHJvdG90eXBlXQogd2lu
ZG93LkRPTVN0cmluZ0xpc3QucHJvdG90eXBlLmNvbnRhaW5zIFtmdW5jdGlvbl0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggYmJiZjRmNzQ5YjUwYmE3ZjA5YjFk
MGZkYTQ2NWUyODZlMTExYWE0NS4uZmI1MTgwMWNlMzUxMTcyZmQ4M2IyYjI2MmQyMGYxYTJhMTRh
MmRkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTM4LDYg
KzM4LDcgQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5k
b3csICdDb3VudGVyJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NRXhjZXB0aW9uJykgaXMgJ29iamVjdCcKIFBBU1Mg
dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NSW1wbGVt
ZW50YXRpb24nKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcih3aW5kb3csICdET01QYXJzZXInKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2Yg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TZXR0YWJsZVRva2Vu
TGlzdCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ0RPTVN0cmluZ0xpc3QnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2Yg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TdHJpbmdNYXAnKSBp
cyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3csICdET01Ub2tlbkxpc3QnKSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CmluZGV4
IGNiMzMzODc0NTFhYWRkM2ZjMzVkZjQyNjUwZThkZTk3YTYxOTU0MGEuLjZkODY2MDg3MzRlYWI5
NjU2MjM5NGNhYjQ4ODQ4OGE4MjJjM2FmZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKQEAgLTIyNiw2
ICsyMjYsNyBAQCBOZXZlciBmb3VuZCBDYW52YXNHcmFkaWVudAogTmV2ZXIgZm91bmQgQ2hhcmFj
dGVyRGF0YQogTmV2ZXIgZm91bmQgQ2xpcGJvYXJkCiBOZXZlciBmb3VuZCBET01QYXJzZXIKK05l
dmVyIGZvdW5kIERPTVNldHRhYmxlVG9rZW5MaXN0CiBOZXZlciBmb3VuZCBET01TdHJpbmdMaXN0
CiBOZXZlciBmb3VuZCBEb2N1bWVudAogTmV2ZXIgZm91bmQgRG9jdW1lbnRGcmFnbWVudApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQKaW5kZXggZmE2NDc2YWRkYTY4MjFkNzdiZmIzYzIyNjBmZDcxM2M0NWY4MWQzZi4u
NTNjNDMzOTZlNjU3Mzg2NmM5ZWVkNDM5ZTRiZjFlYWQ5MzU4OTNiZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0
CkBAIC03Myw2ICs3Myw4IEBAIFBBU1MgaW5uZXIuRE9NSW1wbGVtZW50YXRpb24uaXNJbm5lciBp
cyB0cnVlCiBQQVNTIGlubmVyLkRPTUltcGxlbWVudGF0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIg
aXMgdHJ1ZQogUEFTUyBpbm5lci5ET01QYXJzZXIuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVy
LkRPTVBhcnNlci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRE9NU2V0
dGFibGVUb2tlbkxpc3QuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLkRPTVNldHRhYmxlVG9r
ZW5MaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdM
aXN0LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdMaXN0LmNvbnN0cnVjdG9y
LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdNYXAuaXNJbm5lciBpcyB0cnVl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVj
dGVkLnR4dAppbmRleCAyMTQzYjg2ZDM1M2I3OWRhZTRhODkxMzU3YmIyNGQ2MmI1NDE3OGY5Li43
MzcxM2JlMWRjOWJhMjMwNTYyYThmZTJiNGFiNzdlNjNiNTNiYjQ0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTM2
LDYgKzM2LDcgQEAgUEFTUyBDb3VudGVyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ291bnRlckNv
bnN0cnVjdG9yXScKIFBBU1MgRE9NRXhjZXB0aW9uLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9N
RXhjZXB0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBET01JbXBsZW1lbnRhdGlvbi50b1N0cmluZygp
IGlzICdbb2JqZWN0IERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBET01QYXJz
ZXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0nCitQQVNTIERP
TVNldHRhYmxlVG9rZW5MaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NU2V0dGFibGVUb2tl
bkxpc3RDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTVN0cmluZ0xpc3QudG9TdHJpbmcoKSBpcyAnW29i
amVjdCBET01TdHJpbmdMaXN0Q29uc3RydWN0b3JdJwogUEFTUyBET01TdHJpbmdNYXAudG9TdHJp
bmcoKSBpcyAnW29iamVjdCBET01TdHJpbmdNYXBDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTVRva2Vu
TGlzdC50b1N0cmluZygpIGlzICdbb2JqZWN0IERPTVRva2VuTGlzdENvbnN0cnVjdG9yXScKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29y
ZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYTkyN2YxMWQ2Nzk3NjA1YTIz
MDNlN2Y2MGZiMGJiYjQxNjNjOTEwZS4uN2E4NTBhM2FkYWIwMTkzMTIwOGE0MzFjYzFhM2JlMzZi
ZDExY2FhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3Mu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTE1OSw2
ICsxNTksNyBAQCBHRU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0Jsb2IuaCBc
CiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTQmxvYkJ1aWxkZXIuaCBcCiAgICAgJChpbnRl
cm1lZGlhdGVzKS9odG1sL0pTRE9NRm9ybURhdGEuaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9o
dG1sL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1s
L0pTRE9NVG9rZW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RhdGFHcmlk
Q29sdW1uLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RhdGFHcmlkQ29sdW1uTGlz
dC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsg
Yi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IGE3MzE1N2Q3MWFj
ZGViZmQ3YzI4NjE2YWE2YTFkZDkzMWQ4YTI0NmUuLjRlZWRlNGM3NjRlMzE3ZWRlODUyOWFhZTdi
ZjE3ZDAwOThjNzE3MjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4Ymlu
ZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAt
MTQxLDYgKzE0MSw3IEBAIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9W
OEJsb2IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJsb2JCdWlsZGVyLmgg
XAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhET01Ub2tlbkxpc3QuaCBcCisgICAg
JChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERPTVNldHRhYmxlVG9rZW5MaXN0LmggXAogICAg
ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGlu
dGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RGF0YUdyaWRDb2x1bW5MaXN0LmggXAogICAgICQoaW50
ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhGaWxlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRy
b2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCmluZGV4
IDMyODgwNTljMDYzOWU0NDFlZjBhMjM0MWVkZWM0Y2JhNzU5YThlOGYuLjcyZWI1MzM2OTkzYzk2
NzU0NDQ5OGIyZmNhNDhlNDgyNzAyN2ZlYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5q
c2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKQEAgLTgz
LDYgKzgzLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCBcCiAJYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIFwKKwliaW5kaW5ncy9qcy9KU0RPTVNldHRhYmxl
VG9rZW5MaXN0LmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3QuY3BwIFwKIAliaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggMTI1NGNhYmNiOTZiNDVhM2JjNjIxZWQyZDFlYWZlZjk1MTRi
ODQxYi4uNTA0MDdiNTJmYThjODNmMTVhZDVlYmI4ODE0MjgxMDc4N2VmY2E0OCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC0yMDYsNiArMjA2LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9EYXRhR3Jp
ZENvbHVtbi5pZGwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5pZGwKICAgICBodG1sL0RP
TUZvcm1EYXRhLmlkbAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCiAgICAgaHRt
bC9ET01Ub2tlbkxpc3QuaWRsCiAgICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwKICAgICBo
dG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbApAQCAtOTU2LDYgKzk1Nyw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcAogICAgIGh0bWwvRE9NRGF0YUdy
aWREYXRhU291cmNlLmNwcAogICAgIGh0bWwvRE9NRm9ybURhdGEuY3BwCisgICAgaHRtbC9ET01T
ZXR0YWJsZVRva2VuTGlzdC5jcHAKICAgICBodG1sL0RPTVRva2VuTGlzdC5jcHAKICAgICBodG1s
L0RhdGFHcmlkQ29sdW1uLmNwcAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmNwcApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTVk
N2Q5MmUyZWExMzJiYjM5M2M4N2M4ZDI5MjliODQ3YjNmNzJkLi5lYjNmNGE5OGMzOTQzN2RjOTYw
Yjk0YjE0NmMyZThlMGZmZjI2MWM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEwLTEwLTE5ICBLZW5pY2hp
IElzaGliYXNoaSAgPGJhc2hpQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW0hUTUw1XSBBZGQgRE9NU2V0dGFibGVUb2tlbkxpc3QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3ODEwCisK
KyAgICAgICAgQWRkcyBET01TZXR0YWJsZVRva2VuTGlzdCBpbnRlcmZhY2UgdG8gc3VwcG9ydCA8
b3V0cHV0PiBlbGVtZW50LgorICAgICAgICBUaGUgRE9NVG9rZW5MaXN0IGludGVyZmFjZSB3YXMg
cmVmYWN0b3JlZCBzaW5jZSBpdHMgd2FzIHRpZ2h0bHkgY291cGxlZAorICAgICAgICB3aXRoIEhU
TUxFbGVtZW50LmNsYXNzTGlzdCBwcm9wZXJ0eS4KKworICAgICAgICAqIEFuZHJvaWQuZGVyaXZl
ZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5t
azoKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvZ29iamVj
dC9HTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TZXR0YWJsZVRva2Vu
TGlzdEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhET01TZXR0YWJsZVRv
a2VuTGlzdDo6aW5kZXhlZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpjbGFzc0xpc3QpOgorICAgICAgICAqIGRv
bS9FbGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5nRGF0YTo6Y3JlYXRlVmVjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmdEYXRhOjphZGQpOgorICAgICAgICAo
V2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZ0RhdGE6OnJlbW92ZSk6CisgICAgICAgICogZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmdEYXRh
OjpvcmlnaW5hbFN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5nOjph
ZGQpOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZzo6cmVtb3ZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmc6Om9yaWdpbmFsU3RyaW5nKToKKyAgICAgICAg
KiBkb20vU3R5bGVkRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50
OjpjbGFzc0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9DbGFzc0xpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNsYXNzTGlzdDo6Q2xhc3NMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6cmVm
KToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6ZGVyZWYpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xhc3NMaXN0OjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjppdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y29udGFpbnMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xhc3NMaXN0Ojpjb250YWluc0ludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNs
YXNzTGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6YWRkSW50ZXJuYWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xhc3NMaXN0OjpyZW1vdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xp
c3Q6OnRvZ2dsZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnRvU3RyaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xh
c3NMaXN0OjpjbGFzc05hbWVzKToKKyAgICAgICAgKiBodG1sL0NsYXNzTGlzdC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsYXNzTGlzdDo6ZWxlbWVudCk6CisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRva2VuTGlz
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OkRP
TVNldHRhYmxlVG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5M
aXN0Ojp+RE9NU2V0dGFibGVUb2tlbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFi
bGVUb2tlbkxpc3Q6Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxp
c3Q6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojph
ZGQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJlbW92ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6dG9nZ2xlKToKKyAgICAgICAg
KiBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0
YWJsZVRva2VuTGlzdDo6cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5M
aXN0OjpkZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6bGVu
Z3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojp0b1N0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6dmFsdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnNldFZhbHVlKToKKyAgICAgICAgKiBo
dG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9ET01U
b2tlbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRv
a2VuKToKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6
RE9NVG9rZW5MaXN0Ojp+RE9NVG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2Vu
TGlzdDo6ZWxlbWVudCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMC0xMC0xOSAgWW9uZ2p1biBaaGFuZyAgPHlvbmdq
dW5femhhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCmluZGV4IDAxZjUwMjM4Zjc3M2QzMDFlYjBkYTRjYjA5OTkwNjRmOTdkODQ0
ZmMuLjgwYzEzMDQyM2Y2NjYwZTgzYmU2Y2JlYmI2ZWQzZjM1OTBmMDc2MTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiSlNET01QbHVnaW4uY3BwIgogI2luY2x1
ZGUgIkpTRE9NUGx1Z2luQXJyYXkuY3BwIgogI2luY2x1ZGUgIkpTRE9NU2VsZWN0aW9uLmNwcCIK
KyNpbmNsdWRlICJKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCIKICNpbmNsdWRlICJKU0RPTVN0
cmluZ0xpc3QuY3BwIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTWFwLmNwcCIKICNpbmNsdWRlICJK
U0RPTVRva2VuTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMzQyYmI3YjVhNjliZWFhNWZh
OTU4ZTQ5MzZjNmQ3OWVmODBkZWZkNi4uNGU3MzJkZTVhODA2ZjNhMzJkNTk4ODE5NTI2YzRlOWZh
MmUzN2U5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI1LDYgKzEyNSw3IEBAIERPTV9DTEFTU0VT
ID0gXAogICAgIERPTVNlbGVjdGlvbiBcCiAgICAgRE9NU3RyaW5nTGlzdCBcCiAgICAgRE9NU3Ry
aW5nTWFwIFwKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCBcCiAgICAgRE9NVG9rZW5MaXN0IFwK
ICAgICBET01XaW5kb3cgXAogICAgIERhdGFiYXNlIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgxMWZmYTZlNGZkYTAx
ZDhlMWI4YzNhYzUzNDkzNGMzMjRmZGU1NDIuLmU4NDlmMWM2MDVjNDE5Y2Q2NWJjM2Y0NjUwMWY1
NjcwNmY2NDkzZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjIwLDYgKzIyMCw4IEBAIHdlYmNvcmVfYnVpbHRfc291
cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVBsdWdpbi5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU2VsZWN0aW9uLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVN0cmluZ0xp
c3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU3RyaW5nTGlzdC5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU3RyaW5nTWFwLmNwcCBcCkBAIC0xNDcwLDEwICsx
NDcyLDE0IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0LmggXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUu
Y3BwIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggXAorCVdlYkNvcmUvaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAorCVdlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRv
a2VuTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcCBcCiAJV2ViQ29yZS9o
dG1sL0RPTVRva2VuTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3Bw
IFwKIAlXZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaCBcCisJV2ViQ29yZS9odG1sL0Ns
YXNzTGlzdC5jcHAgXAorCVdlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaCBcCiAJV2ViQ29yZS9odG1s
L0NvbGxlY3Rpb25DYWNoZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9Db2xsZWN0aW9uQ2FjaGUuaCBc
CiAJV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNzk1NDJlODcxZTAzMWZm
ZGVmMGYzNTdjMTQ4ZjY0YjM5MDdiMDY1Li4yNThjMzMzNDQ4ZjE2YWZhNzcyMmY5OWE5MmNhMDA2
OWNlMzM1YmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMTE3LDYgKzExNyw3IEBACiAgICAgICAgICAgICAnZmlsZWFwaS9N
ZXRhZGF0YS5pZGwnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvTWV0YWRhdGFDYWxsYmFjay5pZGwn
LAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuaWRsJywKKyAgICAgICAgICAgICdodG1s
L0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9ET01Ub2tlbkxp
c3QuaWRsJywKICAgICAgICAgICAgICdodG1sL0RhdGFHcmlkQ29sdW1uLmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaWRsJywKQEAgLTc3Nyw2ICs3NzgsNyBAQAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERpcmVjdG9yeUVudHJ5U3luY0N1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERvY3VtZW50TG9jYXRp
b25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3Jt
RGF0YUN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVNl
dHRhYmxlVG9rZW5MaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCcsCkBAIC0xNTUwLDYgKzE1NTIsOCBAQAog
ICAgICAgICAgICAgJ2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgnLAogICAgICAgICAgICAgJ2h0bWwv
Q2hlY2tib3hJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL0NoZWNrYm94SW5wdXRU
eXBlLmgnLAorICAgICAgICAgICAgJ2h0bWwvQ2xhc3NMaXN0LmNwcCcsCisgICAgICAgICAgICAn
aHRtbC9DbGFzc0xpc3QuaCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3Bw
JywKICAgICAgICAgICAgICdodG1sL0NvbGxlY3Rpb25DYWNoZS5oJywKICAgICAgICAgICAgICdo
dG1sL0NvbGxlY3Rpb25UeXBlLmgnLApAQCAtMTU1OSw2ICsxNTYzLDggQEAKICAgICAgICAgICAg
ICdodG1sL0RPTURhdGFHcmlkRGF0YVNvdXJjZS5oJywKICAgICAgICAgICAgICdodG1sL0RPTUZv
cm1EYXRhLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9ET01Gb3JtRGF0YS5oJywKKyAgICAgICAg
ICAgICdodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9E
T01TZXR0YWJsZVRva2VuTGlzdC5oJywKICAgICAgICAgICAgICdodG1sL0RPTVRva2VuTGlzdC5j
cHAnLAogICAgICAgICAgICAgJ2h0bWwvRE9NVG9rZW5MaXN0LmgnLAogICAgICAgICAgICAgJ2h0
bWwvRGF0YUdyaWRDb2x1bW4uY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcmkg
Yi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDA1MWY0ZDljMjY1ZDNmNjExYTIwMzc3NjRkMjE5
YmI3MDZmY2JiNzUuLjNiMzhhNDU2NDgyNThhNTc0MzNhZDhjZjcwMzViYTc2MzE2NzMzM2YgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnByaQpA
QCAtMjA3LDYgKzIwNyw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9EYXRhR3JpZENv
bHVtbi5pZGwgXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmlkbCBcCiAgICAgaHRtbC9E
T01Gb3JtRGF0YS5pZGwgXAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsIFwKICAg
ICBodG1sL0RPTVRva2VuTGlzdC5pZGwgXAogICAgIGh0bWwvSFRNTEFsbENvbGxlY3Rpb24uaWRs
IFwKICAgICBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDFjZTEwNTU0NTZmMWRiNTFk
ODI1ZWNiZTBlNjk3Y2U1Y2YwMzc0YWEuLmVhODQ0YmJjMmFmYjJjMTNkZTlmNWM1MWU1ODc0ZmU3
YjY2ZTMxYTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtNDAyLDYgKzQwMiw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgXAogICAgICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21FdmVudExpc3RlbmVyLmNwcCBcCisgICAgICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVNldHRhYmxlVG9rZW5MaXN0Q3VzdG9tLmNwcCBcCiAgICAg
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAgXAogICAgICAg
ICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0b20uY3BwCiAKQEAgLTg0Miwx
MCArODQzLDEyIEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuY3Bw
IFwKICAgICBodG1sL0J1dHRvbklucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvQ2hlY2tib3hJbnB1
dFR5cGUuY3BwIFwKKyAgICBodG1sL0NsYXNzTGlzdC5jcHAgXAogICAgIGh0bWwvQ29sbGVjdGlv
bkNhY2hlLmNwcCBcCiAgICAgaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvRE9N
RGF0YUdyaWREYXRhU291cmNlLmNwcCBcCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5jcHAgXAorICAg
IGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKICAgICBodG1sL0RPTVRva2VuTGlzdC5j
cHAgXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW4uY3BwIFwKICAgICBodG1sL0RhdGFHcmlkQ29s
dW1uTGlzdC5jcHAgXApAQCAtMTc0OCwxMiArMTc1MSwxNCBAQCBIRUFERVJTICs9IFwKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmggXAogICAgIGh0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNTdHlsZS5o
IFwKKyAgICBodG1sL0NsYXNzTGlzdC5oIFwKICAgICBodG1sL0NvbGxlY3Rpb25DYWNoZS5oIFwK
ICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmggXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5MaXN0
LmggXAogICAgIGh0bWwvRGF0ZUNvbXBvbmVudHMuaCBcCiAgICAgaHRtbC9ET01EYXRhR3JpZERh
dGFTb3VyY2UuaCBcCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5oIFwKKyAgICBodG1sL0RPTVNldHRh
YmxlVG9rZW5MaXN0LmggXAogICAgIGh0bWwvRE9NVG9rZW5MaXN0LmggXAogICAgIGh0bWwvRm9y
bURhdGFMaXN0LmggXAogICAgIGh0bWwvRlRQRGlyZWN0b3J5RG9jdW1lbnQuaCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA3MDYwNjViZDZkODUzNmM2ODdlZDhhM2Vk
ZjhhMmU4NGI1MGIyNGY5Li5hNWFmNzYwM2IwM2UxZDI4MzY0MTI4NTQ2Njg3NDRjOTRjYjk4YmI2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM5NTksNiArMzk1OSw2
MiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRp
dmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01TdHJpbmdMaXN0LmNwcCINCiAJCQkJPg0KIAkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00ODEyNyw2ICs0ODE4MywxNCBAQAogCQkJCT4NCiAJCQk8
L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXENsYXNzTGlzdC5j
cHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxodG1sXENsYXNzTGlzdC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDb2xsZWN0aW9uQ2FjaGUuY3BwIg0KIAkJCQk+DQogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTQ4MjkxLDYgKzQ4MzU1LDE0IEBACiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRE9NU2V0dGFi
bGVUb2tlbkxpc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxET01TZXR0YWJsZVRva2VuTGlzdC5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxET01Ub2tlbkxp
c3QuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMTYzMzEwZTc3OGQ5YmFjNjViNzYwMTIxNzRlY2MxN2U0YTA3
YzE2NC4uYTk1N2Y3OTU1ZjA1YTlhOWQyNThkNDAxOWIxMGViOWI2YTAyZTExYyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDMsNiArMTEwMywxMiBA
QAogCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlGRkJGM0QxMUM5M0VFMzAwNkE3
MTE4IC8qIFdlYkdMTGF5ZXIuaCAqLzsgfTsKIAkJNDlGRkJGNDAxMUM5M0VFMzAwNkE3MTE4IC8q
IFdlYkdMTGF5ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSAqLzsgfTsKIAkJ
NEE4Qzk2RUIwQkU2OTAzMjAwNEVFRkYwIC8qIFNlbGVjdGlvbkNvbnRyb2xsZXJNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QThDOTZFQTBCRTY5
MDMyMDA0RUVGRjAgLyogU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKKwkJNEE5ODMz
RDgxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNENjEyNkM3MzZEMDA4NkMxOTEgLyogQ2xh
c3NMaXN0LmNwcCAqLzsgfTsKKwkJNEE5ODMzRDkxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE5ODMz
RDcxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlzdC5oICovOyB9OworCQk0QTk4MzNERDEyNkM3
MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE5ODMzREExMjZDNzM3QzAwODZDMTkxIC8q
IERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLzsgfTsKKwkJNEE5ODMzREUxMjZDNzM3QzAwODZD
MTkxIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QTk4MzNEQjEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFi
bGVUb2tlbkxpc3QuaCAqLzsgfTsKKwkJNEE5ODMzRTIxMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9N
U2V0dGFibGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNEE5ODMzRTAxMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9NU2V0dGFibGVUb2tl
bkxpc3QuY3BwICovOyB9OworCQk0QTk4MzNFMzEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01TZXR0
YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEE5ODMzRTExMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aCAqLzsgfTsKIAkJNEIyNzA4QzcwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCMjcwOEM1MEFGMTlF
RTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi87IH07CiAJCTRCMjcwOTgzMEFGMkU1RTAwMDY1
MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEIyNzA5ODEwQUYyRTVFMDAwNjUxMjdGIC8qIFBhc3RlYm9hcmRNYWMu
bW0gKi87IH07CiAJCTRCMzA0M0M3MEFFMDM3MDMwMEE4MjY0NyAvKiBTb3VuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEIzMDQzQzYwQUUwMzcwMzAw
QTgyNjQ3IC8qIFNvdW5kLmggKi87IH07CkBAIC03MTU4LDYgKzcxNjQsMTMgQEAKIAkJNDlGRkJG
M0QxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViR0xMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
OUZGQkYzRTExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdMTGF5ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRBOEM5NkVBMEJFNjkwMzIwMDRFRUZGMCAvKiBTZWxlY3Rpb25Db250cm9s
bGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFNlbGVj
dGlvbkNvbnRyb2xsZXJNYWMubW07IHBhdGggPSBtYWMvU2VsZWN0aW9uQ29udHJvbGxlck1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5ODMzRDYxMjZDNzM2RDAwODZDMTkx
IC8qIENsYXNzTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
bGFzc0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTk4MzNENzEyNkM3
MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENsYXNzTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTk4MzNEQTEy
NkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QTk4MzNEQjEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU2V0
dGFibGVUb2tlbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5ODMzREMx
MjZDNzM3QzAwODZDMTkxIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTRBOTgzM0UwMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5M
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NU2V0dGFi
bGVUb2tlbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTk4MzNFMTEy
NkM3M0FGMDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVNldHRhYmxlVG9rZW5MaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3RlYm9hcmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEIyNzA5ODEwQUYyRTVFMDAwNjUxMjdGIC8qIFBhc3Rl
Ym9hcmRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0
ZWJvYXJkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QjMwNDNDNjBBRTAz
NzAzMDBBODI2NDcgLyogU291bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNvdW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDUxOCw2ICsxNDUzMSw4
IEBACiAJCQkJRjU1QjNEN0MxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5oICov
LAogCQkJCUY1NUIzRDdEMTI1MUYxMkQwMDNFRjI2OSAvKiBDaGVja2JveElucHV0VHlwZS5jcHAg
Ki8sCiAJCQkJRjU1QjNEN0UxMjUxRjEyRDAwM0VGMjY5IC8qIENoZWNrYm94SW5wdXRUeXBlLmgg
Ki8sCisJCQkJNEE5ODMzRDYxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlzdC5jcHAgKi8sCisJ
CQkJNEE5ODMzRDcxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlzdC5oICovLAogCQkJCTkzQzQ0
MUVEMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuY3BwICovLAogCQkJCTkzQzQ0
MUVFMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuaCAqLywKIAkJCQk5M0M0NDFG
RjBGODEzQUUxMDBDMUE2MzQgLyogQ29sbGVjdGlvblR5cGUuaCAqLywKQEAgLTE0NTQzLDYgKzE0
NTU4LDkgQEAKIAkJCQkyRUQ2MDlCQTExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3Bw
ICovLAogCQkJCTJFRDYwOUJCMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oICovLAog
CQkJCTJFMDg4OEMzMTE0ODgzQTkwMEFGNDI2NSAvKiBET01Gb3JtRGF0YS5pZGwgKi8sCisJCQkJ
NEE5ODMzREExMjZDNzM3QzAwODZDMTkxIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywK
KwkJCQk0QTk4MzNEQjEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAq
LywKKwkJCQk0QTk4MzNEQzEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aWRsICovLAogCQkJCTc2RkMyQjA4MTIzNzBEQTAwMDZBOTkxQSAvKiBET01Ub2tlbkxpc3QuY3Bw
ICovLAogCQkJCTc2RkMyQjA5MTIzNzBEQTAwMDZBOTkxQSAvKiBET01Ub2tlbkxpc3QuaCAqLywK
IAkJCQk3NkZDMkIwQTEyMzcwREEwMDA2QTk5MUEgLyogRE9NVG9rZW5MaXN0LmlkbCAqLywKQEAg
LTE1MDkzLDYgKzE1MTExLDggQEAKIAkJCQlCQzc3RDE2ODBGRjE5RjU1MDA3MDg4N0IgLyogSlNE
YXRhR3JpZENvbHVtbkxpc3QuaCAqLywKIAkJCQkyRTA4ODhEMjExNDg4NDhBMDBBRjQyNjUgLyog
SlNET01Gb3JtRGF0YS5jcHAgKi8sCiAJCQkJMkUwODg4RDMxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpT
RE9NRm9ybURhdGEuaCAqLywKKwkJCQk0QTk4MzNFMDEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01T
ZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8sCisJCQkJNEE5ODMzRTExMjZDNzNBRjAwODZDMTkxIC8q
IEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLywKIAkJCQk3Njk0NTYzQTEyMTREOTdDMDAwN0NC
QUUgLyogSlNET01Ub2tlbkxpc3QuY3BwICovLAogCQkJCTc2OTQ1NjNCMTIxNEQ5N0MwMDA3Q0JB
RSAvKiBKU0RPTVRva2VuTGlzdC5oICovLAogCQkJCTQ5RUVDRUY0MTA1MDcwQzQwMDA5OUZBQiAv
KiBKU0Zsb2F0MzJBcnJheS5jcHAgKi8sCkBAIC0xODM5OCw2ICsxODQxOCw3IEBACiAJCQkJQTgx
ODcyMjAwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0RDgyMzUyMEFGOTJBNzkwMDA0RjA1NyAvKiBDaHJvbWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0RDgyNDA4MEFGOTNBRUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTRBOTgzM0Q5MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDOTA0Qjc3MEQxMDk5OEYwMDY4MEQzMiAvKiBDbGFzc05vZGVMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0MwNjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1ODEwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTE4ODI1LDYgKzE4ODQ2LDcgQEAKIAkJCQk4
NTVEMzU4QTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29sb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDRDBGQzRGMERCRDcyMEIwMEIyRjYzMCAvKiBET01SR0JDb2xvckludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzVBODY4NTBDMzM2NzYwMDBFRUE2NDkgLyogRE9NU2VsZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTk4MzNERTEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1NDQyNzRCMTFBNTdFN0EwMDYz
QTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0NjQwQTExRDdG
MzA0MDA2NDU1QjAgLyogRE9NU3RyaW5nTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY1MDI1
QjEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYS5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
OTY3OCw2ICsxOTcwMCw3IEBACiAJCQkJOUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjA2MjAxMEY1RjBCNjYw
MEEwN0VBQyAvKiBJbnNwZWN0b3JSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODJBQjE3
NzYxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTRGQTNCOTBCMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0FCMEIxQzExMjExQTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvclN0
b3JhZ2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODJBQjE3NzQxMjVDODI2NzAwQzUwNjlE
IC8qIEluc3BlY3RvclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDEzM0E4MTAy
RTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTE5NzgzLDYgKzE5ODA2LDcgQEAKIAkJCQlBOUQyNDdGRjBENzU3RTY5MDBGREY5NTkgLyog
SlNET01QbHVnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUE5RDI0ODAxMEQ3NTdFNjkwMEZERjk1
OSAvKiBKU0RPTVBsdWdpbkFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVBODZCNjBDMzM2
N0U4MDBFRUE2NDkgLyogSlNET01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRBOTgz
M0UzMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDNTEzN0NGMzExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzY0NjQ5ODExRDgyMzQ5MDA2NDU1QjAgLyogSlNET01TdHJp
bmdNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2OTQ1NjNEMTIxNEQ5N0MwMDA3Q0JBRSAvKiBK
U0RPTVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDIwNCw2ICsyMDIyOCw3IEBACiAJ
CQkJMUE4RjZCQzYwREI1NUNEQzAwMURCNzk0IC8qIE1hbmlmZXN0UGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEM0QTg0QzA5RDU2NDlEMDAwM0FDOEQgLyogTWFwcGVkQXR0cmlidXRlRW50
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5REY4MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJr
dXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJr
dXBBY2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkFCRTcyRjUxMDU5QzFFQjAwRDk5
OUREIC8qIE1hdGhNTEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY3MTA1OUMx
RUIwMEQ5OTlERCAvKiBNYXRoTUxJbmxpbmVDb250YWluZXJFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlGQUJFNzJGOTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MTWF0aEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMjEwODMsOCArMjExMDgsNiBAQAogCQkJCTkzRjE5OUVEMDgyNDVF
NTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEy
RTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNEZBM0I5MEIxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11bGF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjE0OTgsNiArMjE1MjEsNyBAQAogCQkJCUE4MTg3MjI1
MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0RDgyMzhCMEFGOTJERjYwMDA0RjA1NyAvKiBDaHJvbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTRBOTgzM0Q4MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJl
Y3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8qIENs
aWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjE3NzEsNiArMjE3OTUsNyBAQAog
CQkJCTg1OEMzOEE4MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNBRUZDQUUxMDE2Q0U0QTAwNDBEMzRFIC8qIERPTVJHQkNvbG9yLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM1QTg2ODQwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0QTk4MzNERDEyNkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFi
bGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1NjEwRjExMUE3MDRFQjAwQjgy
RDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NDY0MDkxMUQ3
RjMwNDAwNjQ1NUIwIC8qIERPTVN0cmluZ01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY1
MDI1QzEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYS5tbSBpbiBTb3VyY2VzICovLApA
QCAtMjIyMzUsNiArMjIyNjAsNyBAQAogCQkJCUI4ODVFOEQ0MTFFMDZERDIwMDlGRkJGNCAvKiBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E3
NEVDQkExMDE4MzlBNjAwQkY5MzlFIC8qIEluc3BlY3RvckJhY2tlbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNEY3MDdBOTkxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNw
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdBMUYyQjUyMTI2QzYxQjIwMDA2QTdFNiAv
KiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM4MUI5NUIwRTk3MzMw
ODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODJBQjE3NDMxMjRCOTlFQzAwQzUwNjlEIC8qIEluc3BlY3RvckNTU0FnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTgyQjY1ODlBMTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9y
ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyMjQ5LDYgKzIyMjc1LDcgQEAKIAkJCQk5RjBENkIy
RTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MUYwNjIwMjBGNUYwQjY2MDBBMDdFQUMgLyogSW5zcGVjdG9yUmVzb3VyY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVDODI2NzAwQzUwNjlEIC8qIEluc3Bl
Y3RvclJlc291cmNlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEZBM0I5MEExMjVDRDEy
MjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQjBC
MUMwMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JTdG9yYWdlQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODJBQjE3NzMxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hl
ZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTMzQUExMDJFMDBGNDAwMDc1RDAwIC8qIElu
c3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMjM3OSw2ICsyMjQw
Niw3IEBACiAJCQkJQTlDNkU2NEMwRDc0NjVFNzAwNjQ0MkU5IC8qIEpTRE9NUGx1Z2luQXJyYXlD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU2NEQwRDc0NjVFNzAwNjQ0MkU5IC8q
IEpTRE9NUGx1Z2luQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUE4NkI1MEMzMzY3
RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTk4
MzNFMjEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDNTEzN0NGMjExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDk3MTFEODIzNDkwMDY0NTVCMCAvKiBKU0RP
TVN0cmluZ01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQ5QzExRDgyMzhDMDA2NDU1
QjAgLyogSlNET01TdHJpbmdNYXBDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMjg0Miw2
ICsyMjg3MCw3IEBACiAJCQkJMUE5ODk1NkIwQUE3OEY4MDAwNUVGNUVGIC8qIEtVUkxDRk5ldC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTkzOTIzQTA5QUU0MzVDMDAyQzUzMUYgLyogS1VSTE1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE0NTZGQTI2MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJl
bHNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKKyAgICAgICAgRTE4NzcyRjExMjZFMjYyOTAw
M0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTIwODQ1MDlCRDQz
QjkwMEYyMDM4RCAvKiBMYW5ndWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTA2NjA2MEJF
MTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJE
RDhGNDBEOTFFNkFGMDAwRjg5RUUgLyogTGVnYWN5V2ViQXJjaGl2ZS5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTIyODY2LDYgKzIyODk1LDcgQEAKIAkJCQk5M0UyMjdFMTBBRjU4OUFEMDBENDgzMjQg
LyogTWFpblJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEY2QkM1MERC
NTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzMwOURGNzA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk3MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGQUJFNzJGNDEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGRDEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1M
RWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkFCRTcyRjYxMDU5QzFFQjAw
RDk5OUREIC8qIE1hdGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yMzYzMiwxMCArMjM2NjIsNiBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAv
KiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBD
RjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3REQ0RDg2MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTRGQTNCOTBBMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk5NzI4QzMxMzEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11
bGF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8q
IExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTdBMUYyQjUyMTI2QzYxQjIwMDA2QTdF
NiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL2JpbmRpbmdzL2dv
YmplY3QvR05VbWFrZWZpbGUuYW0KaW5kZXggZDgwOGUxODk5ZjNhZmJkN2FmNWI4NzNkNmVlZjZj
YWE1MTE1YmQzNC4uMzM4ZDdmOTRlOTFjMTg5MzU1OWE5MDAyNTQ1N2RkMjMwMDBiNGMyZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQpAQCAtNDksNiArNDksOCBAQCB3
ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NRE9NU3RyaW5nTGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTURPTVN0cmluZ01hcC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01ET01TdHJpbmdNYXBQcml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
d2Via2l0L1dlYktpdERPTURPTVRva2VuTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01ET01Ub2tlbkxpc3RQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01ET01XaW5kb3cuY3BwIFwKQEAgLTI2Myw2ICsyNjUsNyBAQCB3ZWJraXRndGtf
YnVpbHRfaF9hcGkgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Eb2N1bWVu
dEZyYWdtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Eb2N1bWVudFR5
cGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTUltcGxlbWVudGF0aW9u
LmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlz
dC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTGlzdC5oIFwK
IAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTWFwLmggXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01Ub2tlbkxpc3QuaCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBmZTI5YjgwNGU4NzY0NDI5Zjdj
M2ZjYzY1ZGFkNTk5MmY0MmMxNzNkLi5lMDIxZjcxYmI5MDExZmYwN2EzNDAyNDQwMWI5NWU0MGMw
ZDNlYjE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
QEAgLTI0MCw3ICsyNDAsNyBAQCBzdWIgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncwogewogICAg
IG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVE
ZWNsYXJhdGlvbiIgb3IgJHR5cGUgZXEgIk1lZGlhTGlzdCIgb3IgJHR5cGUgZXEgIkNTU1Zhcmlh
Ymxlc0RlY2xhcmF0aW9uIiBvciAkdHlwZSBlcSAiRE9NU3RyaW5nTGlzdCIgb3IgJHR5cGUgZXEg
IkRPTVRva2VuTGlzdCI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFy
YXRpb24iIG9yICR0eXBlIGVxICJNZWRpYUxpc3QiIG9yICR0eXBlIGVxICJDU1NWYXJpYWJsZXNE
ZWNsYXJhdGlvbiIgb3IgJHR5cGUgZXEgIkRPTVN0cmluZ0xpc3QiIG9yICR0eXBlIGVxICJET01U
b2tlbkxpc3QiIG9yICR0eXBlIGVxICJET01TZXR0YWJsZVRva2VuTGlzdCI7CiAgICAgcmV0dXJu
IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0
dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhE
T01TZXR0YWJsZVRva2VuTGlzdEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVkYjdiNzMwMDI4YmEz
NzAyYmNhOWFjZmQ3ZjQzYmU4ODY5MTU5YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwCkBAIC0wLDAg
KzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJW
OERPTVNldHRhYmxlVG9rZW5MaXN0LmgiCisKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlz
dC5oIgorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVNldHRhYmxl
VG9rZW5MaXN0OjppbmRleGVkUHJvcGVydHlHZXR0ZXIodWludDMyX3QgaW5kZXgsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgLy8gVE9ETyhiYXNoaSk6IEltcGxlbWVudCB0
aGlzIGZ1bmN0aW9uLgorICAgIHJldHVybiB2OFN0cmluZygiIik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODNlMTI5ZThlMjhjZmE1MTBlZTBkODE1NmQyNDM4NWQx
ZTkzZGNmOS4uNzZkNmU5Yzg0ZjVkYjk4ODBiZDJjZGVlYWRlMmNhZGM0ZjA4MTZjZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJD
U1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVk
ZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVu
dFJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCkBAIC0xNTg1LDcgKzE1ODYs
NyBAQCBET01Ub2tlbkxpc3QqIEVsZW1lbnQ6OmNsYXNzTGlzdCgpCiB7CiAgICAgRWxlbWVudFJh
cmVEYXRhKiBkYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKICAgICBpZiAoIWRhdGEtPm1fY2xhc3NM
aXN0KQotICAgICAgICBkYXRhLT5tX2NsYXNzTGlzdCA9IERPTVRva2VuTGlzdDo6Y3JlYXRlKHRo
aXMpOworICAgICAgICBkYXRhLT5tX2NsYXNzTGlzdCA9IENsYXNzTGlzdDo6Y3JlYXRlKHRoaXMp
OwogICAgIHJldHVybiBkYXRhLT5tX2NsYXNzTGlzdC5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaAppbmRleCBmMWU2MzM0MThjYzI0NjY5NTNhODkyOWE4MGMzY2NjYzU2ZWJjZDhhLi4wNmJm
ZTBjN2RhYjcyODI1MTc2NmQ3ZTVhZWRlNGJjMmVjODZlNjFjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEu
aApAQCAtMjIsNyArMjIsNyBAQAogI2lmbmRlZiBFbGVtZW50UmFyZURhdGFfaAogI2RlZmluZSBF
bGVtZW50UmFyZURhdGFfaAogCi0jaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAi
Q2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5oIgogI2luY2x1ZGUg
IkVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEuaCIKQEAgLTQzLDcgKzQzLDcgQEAg
cHVibGljOgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwogCiAgICAg
T3duUHRyPERhdGFzZXRET01TdHJpbmdNYXA+IG1fZGF0YXNldERPTVN0cmluZ01hcDsKLSAgICBP
d25QdHI8RE9NVG9rZW5MaXN0PiBtX2NsYXNzTGlzdDsKKyAgICBPd25QdHI8Q2xhc3NMaXN0PiBt
X2NsYXNzTGlzdDsKIH07CiAKIGlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJl
c2l6aW5nKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIGIv
V2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKaW5kZXggOGEyNzEwY2MzMGVmMWFhNDk1
ODE2MjUzMjRhOGRlNjcyZWRlNDVhZi4uOTFmZGI2YTE0Yzc5ODM4NWJmZWY5OTQ0ZjU5M2Y4MWI4
NWFlM2ZjYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKKysr
IGIvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKIAog
I2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IFdURjsKIApAQCAtNjcsNyArNjgsNiBAQCB2b2lkIFNwYWNlU3BsaXRTdHJpbmdEYXRhOjpjcmVh
dGVWZWN0b3IoKQogICAgICAgICBzdGFydCA9IGVuZCArIDE7CiAgICAgfQogCi0gICAgbV9zdHJp
bmcgPSBTdHJpbmcoKTsKICAgICBtX2NyZWF0ZWRWZWN0b3IgPSB0cnVlOwogfQogCkBAIC05MCw0
ICs5MCw2NyBAQCBib29sIFNwYWNlU3BsaXRTdHJpbmdEYXRhOjpjb250YWluc0FsbChTcGFjZVNw
bGl0U3RyaW5nRGF0YSYgb3RoZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU3BhY2VT
cGxpdFN0cmluZ0RhdGE6OmFkZChjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykKK3sKKyAgICBp
ZiAoY29udGFpbnMoc3RyaW5nKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fc3RyaW5n
LmlzRW1wdHkoKSkKKyAgICAgICAgbV9zdHJpbmcgPSBzdHJpbmc7CisgICAgZWxzZSB7CisgICAg
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQobV9zdHJp
bmcpOworICAgICAgICBpZiAobV9zdHJpbmdbbV9zdHJpbmcubGVuZ3RoKCktMV0gIT0gJyAnKQor
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQo
c3RyaW5nKTsKKyAgICAgICAgbV9zdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgfQor
ICAgIG1fY3JlYXRlZFZlY3RvciA9IGZhbHNlOworfQorCit2b2lkIFNwYWNlU3BsaXRTdHJpbmdE
YXRhOjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcpCit7CisgICAgLy8gQWxnb3Jp
dGhtIGRlZmluZWQgYXQgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNyZW1vdmUtYS10b2tl
bi1mcm9tLWEtc3RyaW5nCisKKyAgICB1bnNpZ25lZCBpbnB1dExlbmd0aCA9IG1fc3RyaW5nLmxl
bmd0aCgpOworICAgIFZlY3RvcjxVQ2hhcj4gb3V0cHV0OyAvLyAzCisgICAgb3V0cHV0LnJlc2Vy
dmVDYXBhY2l0eShpbnB1dExlbmd0aCk7CisgICAgdW5zaWduZWQgcG9zaXRpb24gPSAwOyAvLyA0
CisKKyAgICAvLyBTdGVwIDUKKyAgICB3aGlsZSAocG9zaXRpb24gPCBpbnB1dExlbmd0aCkgewor
ICAgICAgICBpZiAoaXNIVE1MU3BhY2UobV9zdHJpbmdbcG9zaXRpb25dKSkgeyAvLyA2CisgICAg
ICAgICAgICBvdXRwdXQuYXBwZW5kKG1fc3RyaW5nW3Bvc2l0aW9uKytdKTsgLy8gNi4xLCA2LjIK
KyAgICAgICAgICAgIGNvbnRpbnVlOyAvLyA2LjMKKyAgICAgICAgfQorCisgICAgICAgIC8vIFN0
ZXAgNworICAgICAgICBWZWN0b3I8VUNoYXI+IHM7CisgICAgICAgIHdoaWxlIChwb3NpdGlvbiA8
IGlucHV0TGVuZ3RoICYmIGlzTm90SFRNTFNwYWNlKG1fc3RyaW5nW3Bvc2l0aW9uXSkpCisgICAg
ICAgICAgICBzLmFwcGVuZChtX3N0cmluZ1twb3NpdGlvbisrXSk7CisKKyAgICAgICAgLy8gU3Rl
cCA4CisgICAgICAgIGlmIChzID09IHN0cmluZykgeworICAgICAgICAgICAgLy8gU3RlcCA4LjEK
KyAgICAgICAgICAgIHdoaWxlIChwb3NpdGlvbiA8IGlucHV0TGVuZ3RoICYmIGlzSFRNTFNwYWNl
KG1fc3RyaW5nW3Bvc2l0aW9uXSkpCisgICAgICAgICAgICAgICAgKytwb3NpdGlvbjsKKworICAg
ICAgICAgICAgLy8gU3RlcCA4LjIKKyAgICAgICAgICAgIHNpemVfdCBqID0gb3V0cHV0LnNpemUo
KTsKKyAgICAgICAgICAgIHdoaWxlIChqID4gMCAmJiBpc0hUTUxTcGFjZShvdXRwdXRbaiAtIDFd
KSkKKyAgICAgICAgICAgICAgICAtLWo7CisgICAgICAgICAgICBvdXRwdXQucmVzaXplKGopOwor
CisgICAgICAgICAgICAvLyBTdGVwIDguMworICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDwgaW5w
dXRMZW5ndGggJiYgIW91dHB1dC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgb3V0cHV0LmFw
cGVuZCgnICcpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmQocyk7
IC8vIFN0ZXAgOQorICAgIH0KKworICAgIG91dHB1dC5zaHJpbmtUb0ZpdCgpOworICAgIG1fc3Ry
aW5nID0gU3RyaW5nOjphZG9wdChvdXRwdXQpOworICAgIG1fY3JlYXRlZFZlY3RvciA9IGZhbHNl
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9T
cGFjZVNwbGl0U3RyaW5nLmggYi9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKaW5kZXgg
MDljYThkOTZjNTE1MTU1OGJmYmYyNjZmNzU3YzBiODgzOTgyYjRmYy4uZDdkNmEzNzFjN2E3Yzcy
ZGU5ODNiMjQwYTI5NDEwNDI3YzUxMjZmNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oCisrKyBiL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaApAQCAtNDgs
NiArNDgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgY29udGFpbnNB
bGwoU3BhY2VTcGxpdFN0cmluZ0RhdGEmKTsKIAorICAgICAgICB2b2lkIGFkZChjb25zdCBBdG9t
aWNTdHJpbmcmKTsKKyAgICAgICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJik7Cisg
ICAgICAgIFN0cmluZyBvcmlnaW5hbFN0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nOyB9
CisKICAgICAgICAgc2l6ZV90IHNpemUoKSB7IGVuc3VyZVZlY3RvcigpOyByZXR1cm4gbV92ZWN0
b3Iuc2l6ZSgpOyB9CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgb3BlcmF0b3JbXShzaXpl
X3QgaSkgeyBlbnN1cmVWZWN0b3IoKTsgQVNTRVJUKGkgPCBzaXplKCkpOyByZXR1cm4gbV92ZWN0
b3JbaV07IH0KIApAQCAtNzIsNiArNzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyByZXR1
cm4gbV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgICAgICBib29sIGNv
bnRhaW5zQWxsKGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIG5hbWVzKSBjb25zdCB7IHJldHVybiAh
bmFtZXMubV9kYXRhIHx8IChtX2RhdGEgJiYgbV9kYXRhLT5jb250YWluc0FsbCgqbmFtZXMubV9k
YXRhKSk7IH0KKyAgICAgICAgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcpIHsg
aWYgKG1fZGF0YSkgbV9kYXRhLT5hZGQoc3RyaW5nKTsgfQorICAgICAgICB2b2lkIHJlbW92ZShj
b25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgeyBpZiAobV9kYXRhKSBtX2RhdGEtPnJlbW92ZShz
dHJpbmcpOyB9CisgICAgICAgIFN0cmluZyBvcmlnaW5hbFN0cmluZygpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YSA/IG1fZGF0YS0+b3JpZ2luYWxTdHJpbmcoKSA6IFN0cmluZygiIik7IH0KIAogICAg
ICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSA/IG1fZGF0YS0+c2l6ZSgp
IDogMDsgfQogICAgICAgICBib29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX2RhdGE7IH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKaW5kZXggMTI3NDRjYjA2MGM5ZDkyMGU3M2UxNDM1YTM2NDU0ZDQz
OGIwOTk3My4uNzM4NGMwYmMyYWJmYTE2ODY0ZWJjZWM1ODI4OTczY2RlMDEzOTFhMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU3R5
bGVkRWxlbWVudC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50
LmgiCiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJDbGFzc0xpc3QuaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgog
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKQEAgLTIyMiw3ICsyMjMsNyBAQCB2b2lkIFN0
eWxlZEVsZW1lbnQ6OmNsYXNzQXR0cmlidXRlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIG5l
d0NsYXNzU3RyaW5nKQogICAgIGlmIChoYXNDbGFzcykgewogICAgICAgICBhdHRyaWJ1dGVzKCkt
PnNldENsYXNzKG5ld0NsYXNzU3RyaW5nKTsKICAgICAgICAgaWYgKERPTVRva2VuTGlzdCogY2xh
c3NMaXN0ID0gb3B0aW9uYWxDbGFzc0xpc3QoKSkKLSAgICAgICAgICAgIGNsYXNzTGlzdC0+cmVz
ZXQobmV3Q2xhc3NTdHJpbmcpOworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Q2xhc3NMaXN0Kj4o
Y2xhc3NMaXN0KS0+cmVzZXQobmV3Q2xhc3NTdHJpbmcpOwogICAgIH0gZWxzZSBpZiAoYXR0cmli
dXRlTWFwKCkpCiAgICAgICAgIGF0dHJpYnV0ZU1hcCgpLT5jbGVhckNsYXNzKCk7CiAgICAgc2V0
TmVlZHNTdHlsZVJlY2FsYygpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVu
dC5oIGIvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCmluZGV4IDRiNjIzODgxNDQ0ZTE4NTQw
NzYzNjNjMGNjNjkyMWI5ODczZDMwNjEuLjgwNDBkYmYxZTM2OGFjYjdmNGVhOGU4MzU3YTFiMTVh
ZjgwNDJmMDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAorKysgYi9X
ZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKQEAgLTMyLDcgKzMyLDYgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQXR0cmlidXRlOwotY2xhc3MgQ2xhc3NMaXN0OwogY2xhc3MgQ1NT
TWFwcGVkQXR0cmlidXRlRGVjbGFyYXRpb247CiAKIGNsYXNzIFN0eWxlZEVsZW1lbnQgOiBwdWJs
aWMgRWxlbWVudCB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNwcCBiL1dl
YkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1MzM0NTY0MWRkMTRiMmM5ODY4
NTk2MTFlYmM2ODEzODllMjIyOGEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvQ2xh
c3NMaXN0LmNwcApAQCAtMCwwICsxLDE0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkNsYXNzTGlzdC5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNp
bmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CisKK0NsYXNzTGlzdDo6Q2xhc3NMaXN0KEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBtX2Vs
ZW1lbnQoZWxlbWVudCkKK3sKKyAgICBpZiAobV9lbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJr
c01vZGUoKSkKKyAgICAgICAgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zZXQobV9lbGVtZW50
LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0ciksIGZhbHNlKTsKK30KKwordm9pZCBDbGFzc0xp
c3Q6OnJlZigpCit7CisgICAgbV9lbGVtZW50LT5yZWYoKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6
OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1lbnQtPmRlcmVmKCk7Cit9CisKK3Vuc2lnbmVkIENsYXNz
TGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygp
ID8gY2xhc3NOYW1lcygpLnNpemUoKSA6IDA7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyBDbGFz
c0xpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKGluZGV4ID49IGxl
bmd0aCgpKQorICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCk7CisgICAgcmV0dXJuIGNsYXNz
TmFtZXMoKVtpbmRleF07Cit9CisKK2Jvb2wgQ2xhc3NMaXN0Ojpjb250YWlucyhjb25zdCBBdG9t
aWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAoIXZh
bGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBjb250YWluc0ludGVybmFsKHRva2VuKTsKK30KKworYm9vbCBDbGFzc0xpc3Q6OmNvbnRhaW5z
SW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9lbGVtZW50LT5oYXNDbGFzcygpICYmIGNsYXNzTmFtZXMoKS5jb250YWlucyh0b2tlbik7Cit9
CisKK3ZvaWQgQ2xhc3NMaXN0OjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0
aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAg
ICAgIHJldHVybjsKKyAgICBhZGRJbnRlcm5hbCh0b2tlbik7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0
OjphZGRJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQoreworICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgb2xkQ2xhc3NOYW1lKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFz
c0F0dHIpKTsKKyAgICBpZiAob2xkQ2xhc3NOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgbV9lbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCB0b2tlbik7CisgICAgZWxzZSBpZiAoIWNvbnRh
aW5zSW50ZXJuYWwodG9rZW4pKSB7CisgICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUu
c2V0KG9sZENsYXNzTmFtZSwgZmFsc2UpOworICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLmFkZCh0b2tlbik7CisgICAgICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0
ciwgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5vcmlnaW5hbFN0cmluZygpKTsKKyAgICB9Cit9
CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisg
ICAgICAgIHJldHVybjsKKyAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7Cit9CisKK3ZvaWQgQ2xh
c3NMaXN0OjpyZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQoreworICAg
IC8vIENoZWNrIHVzaW5nIGNvbnRhaW5zIGZpcnN0IHNpbmNlIGl0IHVzZXMgQXRvbWljU3RyaW5n
IGNvbXBhcmlzb25zIGluc3RlYWQKKyAgICAvLyBvZiBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHRl
c3RpbmcuCisgICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2VuKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zZXQobV9lbGVtZW50LT5mYXN0R2V0
QXR0cmlidXRlKGNsYXNzQXR0ciksIGZhbHNlKTsKKyAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLnJlbW92ZSh0b2tlbik7CisgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRy
LCBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLm9yaWdpbmFsU3RyaW5nKCkpOworfQorCitib29s
IENsYXNzTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoY29udGFpbnNJbnRlcm5hbCh0b2tlbikpIHsKKyAgICAg
ICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIGFkZEludGVybmFsKHRva2VuKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU3RyaW5nIENs
YXNzTGlzdDo6dG9TdHJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBtX2VsZW1lbnQtPmZhc3RH
ZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OnJlc2V0KGNvbnN0
IFN0cmluZyYgbmV3Q2xhc3NOYW1lKQoreworICAgIGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtz
TW9kZS5pc051bGwoKSkKKyAgICAgICAgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zZXQobmV3
Q2xhc3NOYW1lLCBmYWxzZSk7Cit9CisKK2NvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIENsYXNzTGlz
dDo6Y2xhc3NOYW1lcygpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1fZWxlbWVudC0+aGFzQ2xhc3Mo
KSk7CisgICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmlzTnVsbCgpKQorICAgICAg
ICByZXR1cm4gbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZTsKKyAgICByZXR1cm4gbV9lbGVtZW50
LT5hdHRyaWJ1dGVNYXAoKS0+Y2xhc3NOYW1lcygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmggYi9XZWJDb3JlL2h0bWwv
Q2xhc3NMaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNhZWE2MGJlNTY1OGRmMmE5YjNkZDEyNjljOTRlZDFj
N2NjMTRhYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaApAQCAt
MCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENsYXNzTGlzdF9oCisjZGVmaW5l
IENsYXNzTGlzdF9oCisKKyNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRWxlbWVudDsK
KworY2xhc3MgQ2xhc3NMaXN0IDogcHVibGljIERPTVRva2VuTGlzdCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NPd25QdHI8Q2xhc3NMaXN0PiBjcmVhdGUoRWxlbWVudCogZWxlbWVudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ2xhc3NMaXN0KGVsZW1lbnQpKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCk7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCk7
CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OworICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdmlydHVhbCBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKwor
ICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsgfQorCisg
ICAgdm9pZCByZXNldChjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICBDbGFzc0xpc3Qo
RWxlbWVudCopOworCisgICAgdm9pZCBhZGRJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKTsK
KyAgICBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Cisg
ICAgdm9pZCByZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKTsKKworICAgIGNvbnN0
IFNwYWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFtZXMoKSBjb25zdDsKKworICAgIEVsZW1lbnQqIG1f
ZWxlbWVudDsKKyAgICBTcGFjZVNwbGl0U3RyaW5nIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDbGFzc0xpc3RfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBiL1dlYkNv
cmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWMzZTRkZTgxNDhi
YjM5ZWFhNzY3NzhiZTY5MmQ1NDM4MmYzNWRjNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
aHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRE9NU2V0dGFibGVUb2tlbkxpc3Q6OkRPTVNl
dHRhYmxlVG9rZW5MaXN0KCkKKyAgICA6IG1fdG9rZW5zKCkKK3sKK30KKworRE9NU2V0dGFibGVU
b2tlbkxpc3Q6On5ET01TZXR0YWJsZVRva2VuTGlzdCgpCit7Cit9CisKK2NvbnN0IEF0b21pY1N0
cmluZyBET01TZXR0YWJsZVRva2VuTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sK
KyAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmco
IiIpOworICAgIHJldHVybiBtX3Rva2Vuc1tpbmRleF07Cit9CisKK2Jvb2wgRE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKTsK
K30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYg
dG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tl
biwgZWMpIHx8IG1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKSkKKyAgICAgICAgcmV0dXJuOworICAg
IG1fdG9rZW5zLmFkZCh0b2tlbik7Cit9CisKK3ZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJl
bW92ZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSB8fCAhbV90b2tlbnMuY29udGFpbnModG9r
ZW4pKQorICAgICAgICByZXR1cm47CisgICAgbV90b2tlbnMucmVtb3ZlKHRva2VuKTsKK30KKwor
Ym9vbCBET01TZXR0YWJsZVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwg
ZWMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fdG9rZW5zLmNvbnRhaW5zKHRv
a2VuKSkgeworICAgICAgICBtX3Rva2Vucy5yZW1vdmUodG9rZW4pOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIG1fdG9rZW5zLmFkZCh0b2tlbik7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9E
T01TZXR0YWJsZVRva2VuTGlzdC5oIGIvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZGNhYjdlMDljMTRmMTkyYmE4YThmODZhNjJmMjc3YmVhN2E5OWE0Ygot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oCkBA
IC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NU2V0dGFibGVUb2tlbkxp
c3RfaAorI2RlZmluZSBET01TZXR0YWJsZVRva2VuTGlzdF9oCisKKyNpbmNsdWRlICJET01Ub2tl
bkxpc3QuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiU3BhY2VTcGxp
dFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBET01TZXR0YWJsZVRva2VuTGlzdCA6IHB1YmxpYyBET01U
b2tlbkxpc3QsIHB1YmxpYyBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0PiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IGNyZWF0ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVNldHRhYmxlVG9rZW5MaXN0
KCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5ET01TZXR0YWJsZVRva2VuTGlzdCgpOworCisgICAg
dmlydHVhbCB2b2lkIHJlZigpIHsgUmVmQ291bnRlZDxET01TZXR0YWJsZVRva2VuTGlzdD46OnJl
ZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBSZWZDb3VudGVkPERPTVNldHRhYmxl
VG9rZW5MaXN0Pjo6ZGVyZWYoKTsgfQorCisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX3Rva2Vucy5zaXplKCk7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29u
dGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZpcnR1YWwgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gdmFs
dWUoKTsgfQorCisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV90b2tlbnMub3Jp
Z2luYWxTdHJpbmcoKTsgfQorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkg
eyBtX3Rva2Vucy5zZXQodmFsdWUsIHRydWUpOyB9CisKK3ByaXZhdGU6CisgICAgRE9NU2V0dGFi
bGVUb2tlbkxpc3QoKTsKKworICAgIFNwYWNlU3BsaXRTdHJpbmcgbV90b2tlbnM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBET01TZXR0YWJsZVRva2VuTGlzdF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsIGIvV2Vi
Q29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MjYwNjIzZWVi
NDYzZDdjMzBkOTZmOTAyODE5MTAwMWY3MWEzMzkxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBHZW5lcmF0
ZUNvbnN0cnVjdG9yLAorICAgICAgICBIYXNJbmRleEdldHRlciwKKyAgICAgICAgR2VuZXJhdGVU
b0pTCisgICAgXSBET01TZXR0YWJsZVRva2VuTGlzdCA6IERPTVRva2VuTGlzdCB7CisgICAgICAg
IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNw
cAppbmRleCBhYTBhNzRiMmFjYmJkOGE1NzlkY2FlNjYwZTU1NDk0MjQ3NDFmNzFjLi5hYTEyMDE2
OTY4NjZjN2YyMGQ1NjliNzFlNjI3ZmMwY2M4NWFlZTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApA
QCAtMjUsMTcgKzI1LDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRE9NVG9r
ZW5MaXN0LmgiCiAKLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgotI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJp
bmcuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotc3RhdGljIGJvb2wgdmFs
aWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykK
K2Jvb2wgRE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICh0b2tlbi5pc0VtcHR5KCkpIHsKICAg
ICAgICAgZWMgPSBTWU5UQVhfRVJSOwpAQCAtNTMsMTU2ICs0Nyw0IEBAIHN0YXRpYyBib29sIHZh
bGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLURPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KEVsZW1l
bnQqIGVsZW1lbnQpCi0gICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKLXsKLSAgICBpZiAobV9lbGVt
ZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKLSAgICAgICAgbV9jbGFzc05hbWVzRm9y
UXVpcmtzTW9kZS5zZXQobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0ciksIGZh
bHNlKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlZigpCi17Ci0gICAgbV9lbGVtZW50LT5y
ZWYoKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OmRlcmVmKCkKLXsKLSAgICBtX2VsZW1lbnQt
PmRlcmVmKCk7Ci19Ci0KLXVuc2lnbmVkIERPTVRva2VuTGlzdDo6bGVuZ3RoKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygpID8gY2xhc3NOYW1lcygpLnNpemUoKSA6
IDA7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyBET01Ub2tlbkxpc3Q6Oml0ZW0odW5zaWduZWQg
aW5kZXgpIGNvbnN0Ci17Ci0gICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1
cm4gQXRvbWljU3RyaW5nKCk7Ci0gICAgcmV0dXJuIGNsYXNzTmFtZXMoKVtpbmRleF07Ci19Ci0K
LWJvb2wgRE9NVG9rZW5MaXN0Ojpjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBF
eGNlcHRpb25Db2RlJiBlYykgY29uc3QKLXsKLSAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4s
IGVjKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBjb250YWluc0ludGVybmFs
KHRva2VuKTsKLX0KLQotYm9vbCBET01Ub2tlbkxpc3Q6OmNvbnRhaW5zSW50ZXJuYWwoY29uc3Qg
QXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVtZW50LT5oYXND
bGFzcygpICYmIGNsYXNzTmFtZXMoKS5jb250YWlucyh0b2tlbik7Ci19Ci0KLXZvaWQgRE9NVG9r
ZW5MaXN0OjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCi0gICAgICAgIHJldHVybjsK
LSAgICBhZGRJbnRlcm5hbCh0b2tlbik7Ci19Ci0KLXZvaWQgRE9NVG9rZW5MaXN0OjphZGRJbnRl
cm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAotewotICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgb2xkQ2xhc3NOYW1lKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0
dHIpKTsKLSAgICBpZiAob2xkQ2xhc3NOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgbV9lbGVtZW50
LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCB0b2tlbik7Ci0gICAgZWxzZSBpZiAoIWNvbnRhaW5z
SW50ZXJuYWwodG9rZW4pKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAg
ICAgYnVpbGRlci5hcHBlbmQob2xkQ2xhc3NOYW1lKTsKLSAgICAgICAgaWYgKG9sZENsYXNzTmFt
ZVtvbGRDbGFzc05hbWUubGVuZ3RoKCkgLSAxXSAhPSAnICcpCi0gICAgICAgICAgICBidWlsZGVy
LmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tlbik7Ci0gICAgICAgIG1f
ZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgYnVpbGRlci50b1N0cmluZygpKTsKLSAg
ICB9Ci19Ci0KLXZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2Vu
LCBlYykpCi0gICAgICAgIHJldHVybjsKLSAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7Ci19Ci0K
LXZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRv
a2VuKSBjb25zdAotewotICAgIC8vIENoZWNrIHVzaW5nIGNvbnRhaW5zIGZpcnN0IHNpbmNlIGl0
IHVzZXMgQXRvbWljU3RyaW5nIGNvbXBhcmlzb25zIGluc3RlYWQKLSAgICAvLyBvZiBjaGFyYWN0
ZXIgYnkgY2hhcmFjdGVyIHRlc3RpbmcuCi0gICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2Vu
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gQWxnb3JpdGhtIGRlZmluZWQgYXQgaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29t
bW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNyZW1vdmUtYS10b2tlbi1mcm9tLWEtc3RyaW5nCi0KLSAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGlucHV0ID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KGNsYXNzQXR0cik7Ci0gICAgdW5zaWduZWQgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGgoKTsK
LSAgICBWZWN0b3I8VUNoYXI+IG91dHB1dDsgLy8gMwotICAgIG91dHB1dC5yZXNlcnZlQ2FwYWNp
dHkoaW5wdXRMZW5ndGgpOwotICAgIHVuc2lnbmVkIHBvc2l0aW9uID0gMDsgLy8gNAotCi0gICAg
Ly8gU3RlcCA1Ci0gICAgd2hpbGUgKHBvc2l0aW9uIDwgaW5wdXRMZW5ndGgpIHsKLSAgICAgICAg
aWYgKGlzSFRNTFNwYWNlKGlucHV0W3Bvc2l0aW9uXSkpIHsgLy8gNgotICAgICAgICAgICAgb3V0
cHV0LmFwcGVuZChpbnB1dFtwb3NpdGlvbisrXSk7IC8vIDYuMSwgNi4yCi0gICAgICAgICAgICBj
b250aW51ZTsgLy8gNi4zCi0gICAgICAgIH0KLQotICAgICAgICAvLyBTdGVwIDcKLSAgICAgICAg
VmVjdG9yPFVDaGFyPiBzOwotICAgICAgICB3aGlsZSAocG9zaXRpb24gPCBpbnB1dExlbmd0aCAm
JiBpc05vdEhUTUxTcGFjZShpbnB1dFtwb3NpdGlvbl0pKQotICAgICAgICAgICAgcy5hcHBlbmQo
aW5wdXRbcG9zaXRpb24rK10pOwotCi0gICAgICAgIC8vIFN0ZXAgOAotICAgICAgICBpZiAocyA9
PSB0b2tlbikgewotICAgICAgICAgICAgLy8gU3RlcCA4LjEKLSAgICAgICAgICAgIHdoaWxlIChw
b3NpdGlvbiA8IGlucHV0TGVuZ3RoICYmIGlzSFRNTFNwYWNlKGlucHV0W3Bvc2l0aW9uXSkpCi0g
ICAgICAgICAgICAgICAgKytwb3NpdGlvbjsKLQotICAgICAgICAgICAgLy8gU3RlcCA4LjIKLSAg
ICAgICAgICAgIHNpemVfdCBqID0gb3V0cHV0LnNpemUoKTsKLSAgICAgICAgICAgIHdoaWxlIChq
ID4gMCAmJiBpc0hUTUxTcGFjZShvdXRwdXRbaiAtIDFdKSkKLSAgICAgICAgICAgICAgICAtLWo7
Ci0gICAgICAgICAgICBvdXRwdXQucmVzaXplKGopOwotCi0gICAgICAgICAgICAvLyBTdGVwIDgu
MwotICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDwgaW5wdXRMZW5ndGggJiYgIW91dHB1dC5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgb3V0cHV0LmFwcGVuZCgnICcpOwotICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIG91dHB1dC5hcHBlbmQocyk7IC8vIFN0ZXAgOQotICAgIH0KLQotICAg
IG91dHB1dC5zaHJpbmtUb0ZpdCgpOwotICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNz
QXR0ciwgU3RyaW5nOjphZG9wdChvdXRwdXQpKTsKLX0KLQotYm9vbCBET01Ub2tlbkxpc3Q6OnRv
Z2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKGNvbnRhaW5zSW50ZXJuYWwodG9rZW4pKSB7Ci0gICAgICAgIHJlbW92ZUludGVy
bmFsKHRva2VuKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBhZGRJbnRlcm5h
bCh0b2tlbik7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVN0cmluZyBET01Ub2tlbkxpc3Q6OnRv
U3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KGNsYXNzQXR0cik7Ci19Ci0KLXZvaWQgRE9NVG9rZW5MaXN0OjpyZXNldChjb25zdCBTdHJpbmcm
IG5ld0NsYXNzTmFtZSkKLXsKLSAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuaXNO
dWxsKCkpCi0gICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG5ld0NsYXNzTmFt
ZSwgZmFsc2UpOwotfQotCi1jb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBET01Ub2tlbkxpc3Q6OmNs
YXNzTmFtZXMoKSBjb25zdAotewotICAgIEFTU0VSVChtX2VsZW1lbnQtPmhhc0NsYXNzKCkpOwot
ICAgIGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5pc051bGwoKSkKLSAgICAgICAgcmV0
dXJuIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+YXR0
cmlidXRlTWFwKCktPmNsYXNzTmFtZXMoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5oCmluZGV4IGZhZDY5Y2E4Yjk1OTVlMjE3NjkyZDEwMjRiNTBmYmI4NjA2NjNk
NTMuLjJlMGQ0MGIzYjAyZjFjZTk4ZTZkNjY4ZGE3ZTU4ODgyZTc5NTc5NjcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAorKysgYi9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI2LDkgKzI2LDkgQEAKICNkZWZpbmUgRE9NVG9rZW5MaXN0X2gKIAogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCisjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMzcgKzM2LDIzIEBAIGNsYXNzIEVsZW1lbnQ7CiAK
IGNsYXNzIERPTVRva2VuTGlzdCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8RE9NVG9rZW5MaXN0PiBjcmVhdGUoRWxlbWVudCogZWxlbWVudCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRE9NVG9rZW5MaXN0KGVsZW1lbnQp
KTsKLSAgICB9CisgICAgdmlydHVhbCB+RE9NVG9rZW5MaXN0KCkge307CiAKLSAgICB2b2lkIHJl
ZigpOwotICAgIHZvaWQgZGVyZWYoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkZXJlZigpID0gMDsKIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
OwotICAgIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAg
ICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25z
dDsKLSAgICB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZChj
b25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSA9
IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCA9IDA7CiAKLSAgICB2b2lk
IHJlc2V0KGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIHsg
cmV0dXJuIDA7IH0KIAotICAgIEVsZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7
IH0KLQotcHJpdmF0ZToKLSAgICBET01Ub2tlbkxpc3QoRWxlbWVudCopOwotCi0gICAgdm9pZCBh
ZGRJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5z
SW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Ci0gICAgdm9pZCByZW1vdmVJbnRl
cm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKLQotICAgIGNvbnN0IFNwYWNlU3BsaXRT
dHJpbmcmIGNsYXNzTmFtZXMoKSBjb25zdDsKLQotICAgIEVsZW1lbnQqIG1fZWxlbWVudDsKLSAg
ICBTcGFjZVNwbGl0U3RyaW5nIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7Citwcm90ZWN0ZWQ6
CisgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2Vu
LCBFeGNlcHRpb25Db2RlJiBlYyk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCmluZGV4IGQ3NTZjY2U0OTU3MDcyNzcwNGQ0ODUyNmU2NTQwMDg2MDQ1YTUyYzIuLmRi
NjNlMDdkNTA0ZDZlNTI0YTg3NGQ2ZGJlOGM3ZjcxNjI0NzFjYjQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJE
T01BcHBsaWNhdGlvbkNhY2hlLmgiCiAjaW5jbHVkZSAiRE9NU2VsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAj
aW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKaW5kZXggMGFlMTA2OTI3NTZiZWQ1Njg0OWExMDU1ZTBlOWE3ZDI0MDMwMjUzMS4uYjdhNDI2
MDE3ZGRhMDU5ODllOWQ2MmIyYTVjYTI2Nzg1NzUzMGZhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTM3
OCw2ICszNzgsNyBAQCBtb2R1bGUgd2luZG93IHsKIC8vICAgICAgICBhdHRyaWJ1dGUgRE9NSW1w
bGVtZW50YXRpb25MaXN0Q29uc3RydWN0b3IgRE9NSW1wbGVtZW50YXRpb25MaXN0OwogLy8gICAg
ICAgIGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvblNvdXJjZUNvbnN0cnVjdG9yIERPTUltcGxl
bWVudGF0aW9uU291cmNlOwogICAgICAgICBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb25Db25z
dHJ1Y3RvciBET01JbXBsZW1lbnRhdGlvbjsKKyAgICAgICAgYXR0cmlidXRlIERPTVNldHRhYmxl
VG9rZW5MaXN0Q29uc3RydWN0b3IgRE9NU2V0dGFibGVUb2tlbkxpc3Q7CiAgICAgICAgIGF0dHJp
YnV0ZSBET01Ub2tlbkxpc3RDb25zdHJ1Y3RvciBET01Ub2tlbkxpc3Q7CiAgICAgICAgIGF0dHJp
YnV0ZSBEb2N1bWVudEZyYWdtZW50Q29uc3RydWN0b3IgRG9jdW1lbnRGcmFnbWVudDsKICAgICAg
ICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgRG9jdW1lbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71395</attachid>
            <date>2010-10-20 23:58:12 -0700</date>
            <delta_ts>2010-10-21 20:42:37 -0700</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug-47810-20101021155810.patch</filename>
            <type>text/plain</type>
            <size>69173</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMTg0YTJmMDI0YTczODBjZGVlY2I3MDA0NTY4YThiYmRkODRjMzUzLi4xY2JkZmQ0
ZTRiNzBmMjI4N2E3ZDA5MmY1Yjk4YjMzMDA1MDIzZjQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTAtMjAgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBE
T01TZXR0YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc4MTAKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OiBV
cGRhdGVkIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtMi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0
YXRpb25zLgorICAgICAgICAqIGZhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50
eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorCiAyMDEwLTEwLTIwICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByNzAwNDAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA4ZDRhNDBkYmM5ZDVlNjNhMWQw
MTI3MmNjMTNmMGJhM2UzZWU2ZjFlLi42MDVhM2I4Yzg0MzYzYTMwNjI3ZDhjOGI5NTY1ZmJlYzA4
YzNmOTY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTU1NSw2ICs1NTUsMTQgQEAgd2luZG93
LkRPTUltcGxlbWVudGF0aW9uLnByb3RvdHlwZS5oYXNGZWF0dXJlIFtmdW5jdGlvbl0KIHdpbmRv
dy5ET01QYXJzZXIgW29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5ET01QYXJz
ZXIucHJvdG90eXBlIFtvYmplY3QgRE9NUGFyc2VyUHJvdG90eXBlXQogd2luZG93LkRPTVBhcnNl
ci5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJs
ZVRva2VuTGlzdCBbb2JqZWN0IERPTVNldHRhYmxlVG9rZW5MaXN0Q29uc3RydWN0b3JdCit3aW5k
b3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlIFtvYmplY3QgRE9NU2V0dGFibGVUb2tl
bkxpc3RQcm90b3R5cGVdCit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLmFk
ZCBbZnVuY3Rpb25dCit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLmNvbnRh
aW5zIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUuaXRl
bSBbZnVuY3Rpb25dCit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLnJlbW92
ZSBbZnVuY3Rpb25dCit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLnRvU3Ry
aW5nIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUudG9n
Z2xlIFtmdW5jdGlvbl0KIHdpbmRvdy5ET01TdHJpbmdMaXN0IFtvYmplY3QgRE9NU3RyaW5nTGlz
dENvbnN0cnVjdG9yXQogd2luZG93LkRPTVN0cmluZ0xpc3QucHJvdG90eXBlIFtvYmplY3QgRE9N
U3RyaW5nTGlzdFByb3RvdHlwZV0KIHdpbmRvdy5ET01TdHJpbmdMaXN0LnByb3RvdHlwZS5jb250
YWlucyBbZnVuY3Rpb25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cv
d2luZG93LXByb3BlcnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IGJiYmY0Zjc0OWI1MGJhN2YwOWIxZDBmZGE0NjVlMjg2ZTExMWFhNDUuLmZiNTE4MDFjZTM1
MTE3MmZkODNiMmIyNjJkMjBmMWEyYTE0YTJkZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRv
cnMtZXhwZWN0ZWQudHh0CkBAIC0zOCw2ICszOCw3IEBAIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnQ291bnRlcicpIGlzICdvYmplY3QnCiBQQVNT
IHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0RPTUV4Y2Vw
dGlvbicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHdpbmRvdywgJ0RPTUltcGxlbWVudGF0aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlw
ZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NUGFyc2VyJykg
aXMgJ29iamVjdCcKK1BBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
d2luZG93LCAnRE9NU2V0dGFibGVUb2tlbkxpc3QnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2Yg
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TdHJpbmdMaXN0Jykg
aXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
d2luZG93LCAnRE9NU3RyaW5nTWFwJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NVG9rZW5MaXN0JykgaXMgJ29iamVj
dCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5j
ZS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0
YW5jZS0yLWV4cGVjdGVkLnR4dAppbmRleCBjYjMzMzg3NDUxYWFkZDNmYzM1ZGY0MjY1MGU4ZGU5
N2E2MTk1NDBhLi42ZDg2NjA4NzM0ZWFiOTY1NjIzOTRjYWI0ODg0ODhhODIyYzNhZmZjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNl
LTItZXhwZWN0ZWQudHh0CkBAIC0yMjYsNiArMjI2LDcgQEAgTmV2ZXIgZm91bmQgQ2FudmFzR3Jh
ZGllbnQKIE5ldmVyIGZvdW5kIENoYXJhY3RlckRhdGEKIE5ldmVyIGZvdW5kIENsaXBib2FyZAog
TmV2ZXIgZm91bmQgRE9NUGFyc2VyCitOZXZlciBmb3VuZCBET01TZXR0YWJsZVRva2VuTGlzdAog
TmV2ZXIgZm91bmQgRE9NU3RyaW5nTGlzdAogTmV2ZXIgZm91bmQgRG9jdW1lbnQKIE5ldmVyIGZv
dW5kIERvY3VtZW50RnJhZ21lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3By
b3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CmluZGV4IGZhNjQ3NmFkZGE2ODIxZDc3
YmZiM2MyMjYwZmQ3MTNjNDVmODFkM2YuLjUzYzQzMzk2ZTY1NzM4NjZjOWVlZDQzOWU0YmYxZWFk
OTM1ODkzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dApAQCAtNzMsNiArNzMsOCBAQCBQQVNTIGlubmVyLkRP
TUltcGxlbWVudGF0aW9uLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01JbXBsZW1lbnRh
dGlvbi5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRE9NUGFyc2VyLmlz
SW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01QYXJzZXIuY29uc3RydWN0b3IuaXNJbm5lciBp
cyB0cnVlCitQQVNTIGlubmVyLkRPTVNldHRhYmxlVG9rZW5MaXN0LmlzSW5uZXIgaXMgdHJ1ZQor
UEFTUyBpbm5lci5ET01TZXR0YWJsZVRva2VuTGlzdC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRy
dWUKIFBBU1MgaW5uZXIuRE9NU3RyaW5nTGlzdC5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIu
RE9NU3RyaW5nTGlzdC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRE9N
U3RyaW5nTWFwLmlzSW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9q
cy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMv
Z2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKaW5kZXggMjE0M2I4NmQzNTNiNzlkYWU0
YTg5MTM1N2JiMjRkNjJiNTQxNzhmOS4uNzM3MTNiZTFkYzliYTIzMDU2MmE4ZmUyYjRhYjc3ZTYz
YjUzYmI0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0
b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1
Y3RvcnMtZXhwZWN0ZWQudHh0CkBAIC0zNiw2ICszNiw3IEBAIFBBU1MgQ291bnRlci50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IENvdW50ZXJDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTUV4Y2VwdGlvbi50
b1N0cmluZygpIGlzICdbb2JqZWN0IERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yXScKIFBBU1MgRE9N
SW1wbGVtZW50YXRpb24udG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNv
bnN0cnVjdG9yXScKIFBBU1MgRE9NUGFyc2VyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NUGFy
c2VyQ29uc3RydWN0b3JdJworUEFTUyBET01TZXR0YWJsZVRva2VuTGlzdC50b1N0cmluZygpIGlz
ICdbb2JqZWN0IERPTVNldHRhYmxlVG9rZW5MaXN0Q29uc3RydWN0b3JdJwogUEFTUyBET01TdHJp
bmdMaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NU3RyaW5nTGlzdENvbnN0cnVjdG9yXScK
IFBBU1MgRE9NU3RyaW5nTWFwLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NU3RyaW5nTWFwQ29u
c3RydWN0b3JdJwogUEFTUyBET01Ub2tlbkxpc3QudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01U
b2tlbkxpc3RDb25zdHJ1Y3Rvcl0nCmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZl
ZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1r
CmluZGV4IGE5MjdmMTFkNjc5NzYwNWEyMzAzZTdmNjBmYjBiYmI0MTYzYzkxMGUuLjdhODUwYTNh
ZGFiMDE5MzEyMDhhNDMxY2MxYTNiZTM2YmQxMWNhYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5k
cm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVk
LmpzY2JpbmRpbmdzLm1rCkBAIC0xNTksNiArMTU5LDcgQEAgR0VOIDo9IFwKICAgICAkKGludGVy
bWVkaWF0ZXMpL2h0bWwvSlNCbG9iLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0Js
b2JCdWlsZGVyLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RPTUZvcm1EYXRhLmgg
XAorICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggXAog
ICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RPTVRva2VuTGlzdC5oIFwKICAgICAkKGludGVy
bWVkaWF0ZXMpL2h0bWwvSlNEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMp
L2h0bWwvSlNEYXRhR3JpZENvbHVtbkxpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJv
aWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5k
aW5ncy5tawppbmRleCBhNzMxNTdkNzFhY2RlYmZkN2MyODYxNmFhNmExZGQ5MzFkOGEyNDZlLi40
ZWVkZTRjNzY0ZTMxN2VkZTg1MjlhYWU3YmYxN2QwMDk4YzcxNzI1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5k
ZXJpdmVkLnY4YmluZGluZ3MubWsKQEAgLTE0MSw2ICsxNDEsNyBAQCBHRU4gOj0gXAogICAgICQo
aW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhCbG9iLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykv
YmluZGluZ3MvVjhCbG9iQnVpbGRlci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdz
L1Y4RE9NVG9rZW5MaXN0LmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhET01T
ZXR0YWJsZVRva2VuTGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RGF0
YUdyaWRDb2x1bW4uaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERhdGFHcmlk
Q29sdW1uTGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RmlsZS5oIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5k
cm9pZC5qc2NiaW5kaW5ncy5tawppbmRleCAzMjg4MDU5YzA2MzllNDQxZWYwYTIzNDFlZGVjNGNi
YTc1OWE4ZThmLi43MmViNTMzNjk5M2M5Njc1NDQ0OThiMmZjYTQ4ZTQ4MjcwMjdmZWI4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRy
b2lkLmpzY2JpbmRpbmdzLm1rCkBAIC04Myw2ICs4Myw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBc
CiAJYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01Gb3Jt
RGF0YUN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBcCisJ
YmluZGluZ3MvanMvSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pT
RE9NVG9rZW5MaXN0LmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBcCiAJ
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
QW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCA4Y2NjYzk2NjQzZmQ3YTlkOGY1
ZmEzY2E3YmMxNTZlYThiZGUyZjE3Li4wNzAzZWRkNzFlOGNhY2NjNzg1OTJjY2YwZDE5ZjRiN2Zi
MThkMDk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvV2ViQ29yZS9BbmRy
b2lkLm1rCkBAIC0yNjYsNiArMjY2LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JD
X0ZJTEVTKSBcCiAJaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAgXAogCWh0bWwvQnV0dG9uSW5w
dXRUeXBlLmNwcCBcCiAJaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAgXAorCWh0bWwvQ2xhc3NM
aXN0LmNwcCBcCiAJaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKIAlodG1sL3BhcnNlci9DU1NQ
cmVsb2FkU2Nhbm5lci5jcHAgXAogCWh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDQyZTM0NGE4ZjgyNjY2MDMxNWJlODk0ZTVkNWQwZTAwMDAzMjI4ZjkuLjNkODc5MTkzNzg5ODhk
MGJjMGYyNjRjZDQwM2IwZTY1MWI1NWFhNDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjA3LDYgKzIwNyw3IEBAIFNF
VChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW4uaWRsCiAgICAgaHRt
bC9EYXRhR3JpZENvbHVtbkxpc3QuaWRsCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5pZGwKKyAgICBo
dG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbAogICAgIGh0bWwvRE9NVG9rZW5MaXN0LmlkbAog
ICAgIGh0bWwvSFRNTEFsbENvbGxlY3Rpb24uaWRsCiAgICAgaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5pZGwKQEAgLTk1MywxMCArOTU0LDEyIEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1s
L0Jhc2VUZXh0SW5wdXRUeXBlLmNwcAogICAgIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAogICAg
IGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwCisgICAgaHRtbC9DbGFzc0xpc3QuY3BwCiAgICAg
aHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwCiAgICAgaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKICAg
ICBodG1sL0RPTURhdGFHcmlkRGF0YVNvdXJjZS5jcHAKICAgICBodG1sL0RPTUZvcm1EYXRhLmNw
cAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwCiAgICAgaHRtbC9ET01Ub2tlbkxp
c3QuY3BwCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5jcHAKICAgICBodG1sL0RhdGFHcmlkQ29s
dW1uTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggODNmNjNjY2YyY2ZkZDVlNThlODY3ZWRlODg5ODEwMWYxY2RjY2I5OC4uNDgx
YmYzZThkMGQ2NDdhMTQxZjhjOTBkOGU2MjE3N2IzNTBhNTYyZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MSBAQAorMjAx
MC0xMC0yMCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtIVE1MNV0gQWRkIERPTVNl
dHRhYmxlVG9rZW5MaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00NzgxMAorCisgICAgICAgIEFkZHMgRE9NU2V0dGFibGVUb2tlbkxpc3QgaW50ZXJm
YWNlIHRvIHN1cHBvcnQgPG91dHB1dD4gZWxlbWVudC4KKyAgICAgICAgVGhlIERPTVRva2VuTGlz
dCBpbnRlcmZhY2Ugd2FzIHJlZmFjdG9yZWQgc2luY2UgaXRzIHdhcyB0aWdodGx5IGNvdXBsZWQK
KyAgICAgICAgd2l0aCBIVE1MRWxlbWVudC5jbGFzc0xpc3QgcHJvcGVydHkuCisKKyAgICAgICAg
KiBBbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWs6IEFkZGVkIEpTRE9NU2V0dGFibGVUb2tl
bkxpc3QuaCBmaWxlLgorICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rOiBB
ZGRlZCBWOERPTVNldHRhYmxlVG9rZW5MaXN0LmggZmlsZS4KKyAgICAgICAgKiBBbmRyb2lkLmpz
Y2JpbmRpbmdzLm1rOiBBZGRlZCBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBmaWxlLgorICAg
ICAgICAqIEFuZHJvaWQubWs6IEFkZGVkIENsYXNzTGlzdC5jcHAgZmlsZS4KKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NU2V0dGFibGVUb2tlbkxpc3Que2NwcCxpZGx9IGFuZCBD
bGFzc0xpc3QuY3BwIGZpbGVzLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDogQWRkZWQg
SlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgZmlsZS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOiBBZGRlZCBET01TZXR0YWJsZVRva2VuTGlzdCBlbnRyeS4KKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbTogQWRkZWQgSlNET01TZXR0YWJsZVRva2VuTGlzdC57aCxjcHB9IGFuZCBDbGFz
c0xpc3Que2gsY3BwfSBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIERPTVNl
dHRhYmxlVG9rZW5MaXN0LntoLGNwcCxpZGx9LCBWOERPTVNldHRhYmxlVG9rZW5MaXN0Q3VzdG9t
LmNwcCBhbmQgQ2xhc3NMaXN0LntoLGNwcH0gZmlsZXMuCisgICAgICAgICogV2ViQ29yZS5wcmk6
IEFkZGVkIERPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCBmaWxlLgorICAgICAgICAqIFdlYkNvcmUu
cHJvOiBBZGRlZCBWOERPTVNldHRhYmxlVG9rZW5MaXN0Q3VzdG9tLmNwcCwgQ2xhc3NMaXN0Lnto
LGNwcH0gYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0LntoLGNwcH0gZmlsZXMuCisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IEFkZGVkIEpTRE9NU2V0dGFibGVUb2tlbkxp
c3Que2gsY3BwfSwgQ2xhc3NMaXN0LntoLGNwcH0gYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0Lnto
LGNwcH0gZmlsZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBBZGRlZCBDbGFzc0xpc3Que2gsY3BwfSwgRE9NU2V0dGFibGV0b2tlbkxpc3Que2gsY3BwfSBh
bmQgSlNET01TZXR0YWJsZVRva2VuTGlzdC57aCxjcHB9CisgICAgICAgICogYmluZGluZ3MvZ29i
amVjdC9HTlVtYWtlZmlsZS5hbTogQWRkZWQgV2ViS2l0RE9NRE9NU2V0dGFibGVUb2tlbkxpc3Qu
e2gsY3BwfSBhbmQgV2ViS2l0RE9NRE9NU2V0dGFibGVUb2tlbkxpc3RQcml2YXRlLmNwcCBmaWxl
cy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbTogTW9kaWZp
ZWQgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncygpIHJldHVybnMgMSBmb3IgRE9NU2V0dGFibGVU
b2tlbkxpc3QuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tl
bkxpc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmluZGV4ZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOiBSZXBsYWNlZCBET01Ub2tlbkxpc3QgdG8gQ2xhc3NMaXN0LgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6Y2xhc3NMaXN0KToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6
IGRpdHRvLgorICAgICAgICAqIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcDogQWRkZWQgYWRkKCkg
YW5kIHJlbW92ZSgpIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJp
bmdEYXRhOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZ0RhdGE6OnJl
bW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5nOjphZGQpOgorICAgICAg
ICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZzo6cmVtb3ZlKToKKyAgICAgICAgKiBkb20vU3Bh
Y2VTcGxpdFN0cmluZy5oOiBBZGRlZCBhZGQoKSBhbmQgcmVtb3ZlKCkgZnVuY3Rpb25zLgorICAg
ICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDogUmVwbGFjZWQgRE9NVG9rZW5MaXN0IHRvIENs
YXNzTGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6OmNsYXNzQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQuaDogZGl0dG8uCisgICAgICAg
ICogaHRtbC9DbGFzc0xpc3QuY3BwOiBBZGRlZCwgbW9zdGx5IGZyb20gb3JpZ2luYWwgRE9NVG9r
ZW5MaXN0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Q2xhc3NMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNz
TGlzdDo6ZGVyZWYpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpsZW5ndGgpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNz
TGlzdDo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0Ojpjb250YWluc0lu
dGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6YWRkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNsYXNzTGlzdDo6YWRkSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NM
aXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpyZW1vdmVJbnRlcm5h
bCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnRvZ2dsZSk6CisgICAgICAgIChXZWJD
b3JlOjpDbGFzc0xpc3Q6OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6
cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpjbGFzc05hbWVzKToKKyAgICAg
ICAgKiBodG1sL0NsYXNzTGlzdC5oOiBBZGRlZCwgbW9zdGx5IGZyb20gb3JpZ2luYWwgRE9NVG9r
ZW5MaXN0LmguCisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpDbGFzc0xpc3Q6OmVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvRE9NU2V0dGFi
bGVUb2tlbkxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9r
ZW5MaXN0OjpET01TZXR0YWJsZVRva2VuTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0
YWJsZVRva2VuTGlzdDo6fkRPTVNldHRhYmxlVG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVNldHRhYmxlVG9rZW5MaXN0OjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRh
YmxlVG9rZW5MaXN0Ojpjb250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRv
a2VuTGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojph
ZGRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6cmVt
b3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpyZW1vdmVJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6dG9nZ2xlKToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpzZXRWYWx1ZSk6CisgICAg
ICAgICogaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
U2V0dGFibGVUb2tlbkxpc3Q6OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRv
a2VuTGlzdDo6ZGVyZWYpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6
Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6dG9TdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnZhbHVlKToKKyAg
ICAgICAgKiBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbDogQWRkZWQuCisgICAgICAgICog
aHRtbC9ET01Ub2tlbkxpc3QuY3BwOiBSZWZhY3RvcmVkIHRvIGJlIGFuIGFic3RyYWN0IGludGVy
ZmFjZSBmb3IgYm90aCBvZiBDbGFzc0xpc3QgYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0LgorICAg
ICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKTogQ2hhbmdlZCB0byBi
ZSBhIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gb2YgRE9NVG9rZW5MaXN0LgorICAgICAgICAoV2Vi
Q29yZTo6RE9NVG9rZW5MaXN0OjphZGRUb2tlbik6IEFkZGVkLCBtb3N0bHkgZnJvbSBvcmlnaW5h
bCBET01Ub2tlbkxpc3Q6OmFkZEludGVybmFsKCkuCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tl
bkxpc3Q6OnJlbW92ZVRva2VuKTogQWRkZWQsIG1vc3RseSBmcm9tIG9yaWdpbmFsIERPTVRva2Vu
TGlzdDo6cmVtb3ZlSW50ZXJuYWwoKS4KKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOiBS
ZWZhY3RvcmVkIHRvIGJlIGFuIGFic3RyYWN0IGludGVyZmFjZSBmb3IgYm90aCBvZiBDbGFzc0xp
c3QgYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0LgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5M
aXN0Ojp+RE9NVG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6ZWxl
bWVudCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOiBBZGRlZCBhbiBlbnRyeSBmb3Ig
RE9NU2V0dGFibGVUb2tlbkxpc3QuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOiBkaXR0
by4KKwogMjAxMC0xMC0yMCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjcwMDQwLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAppbmRleCAwMWY1MDIzOGY3NzNkMzAxZWIwZGE0Y2IwOTk5MDY0Zjk3ZDg0NGZjLi44MGMxMzA0
MjNmNjY2MGU4M2JlNmNiZWJiNmVkM2YzNTkwZjA3NjE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtOTIs
NiArOTIsNyBAQAogI2luY2x1ZGUgIkpTRE9NUGx1Z2luLmNwcCIKICNpbmNsdWRlICJKU0RPTVBs
dWdpbkFycmF5LmNwcCIKICNpbmNsdWRlICJKU0RPTVNlbGVjdGlvbi5jcHAiCisjaW5jbHVkZSAi
SlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNET01TdHJpbmdMaXN0LmNw
cCIKICNpbmNsdWRlICJKU0RPTVN0cmluZ01hcC5jcHAiCiAjaW5jbHVkZSAiSlNET01Ub2tlbkxp
c3QuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM0MmJiN2I1YTY5YmVhYTVmYTk1OGU0OTM2YzZk
NzllZjgwZGVmZDYuLjRlNzMyZGU1YTgwNmYzYTMyZDU5ODgxOTUyNmM0ZTlmYTJlMzdlOTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNSw2ICsxMjUsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBE
T01TZWxlY3Rpb24gXAogICAgIERPTVN0cmluZ0xpc3QgXAogICAgIERPTVN0cmluZ01hcCBcCisg
ICAgRE9NU2V0dGFibGVUb2tlbkxpc3QgXAogICAgIERPTVRva2VuTGlzdCBcCiAgICAgRE9NV2lu
ZG93IFwKICAgICBEYXRhYmFzZSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBiMDU3MDUxMGExNjA1MmU0YWM4NmQ2NzBk
NjZhNjg3MWFkNWFmMjU4Li5jNDMzMjVlY2JlOWQwODZhMjhkMzY2MDAxNGU4MDYwZjg4YzQwMmY0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KQEAgLTIyMSw2ICsyMjEsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01QbHVnaW4uaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RPTVNlbGVjdGlvbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
T01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVNldHRhYmxlVG9rZW5M
aXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TdHJpbmdMaXN0LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVN0cmluZ0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RPTVN0cmluZ01hcC5jcHAgXApAQCAtMTQ3MSwxMCArMTQ3MywxNCBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dC5oIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcCBcCiAJV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIFwKKwlXZWJDb3JlL2h0bWwvRE9NU2V0dGFi
bGVUb2tlbkxpc3QuY3BwIFwKKwlXZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBc
CiAJV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgXAogCVdlYkNvcmUvaHRtbC9ET01Ub2tl
bkxpc3QuaCBcCiAJV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBcCiAJV2ViQ29y
ZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmggXAorCVdlYkNvcmUvaHRtbC9DbGFzc0xpc3QuY3Bw
IFwKKwlXZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmggXAogCVdlYkNvcmUvaHRtbC9Db2xsZWN0aW9u
Q2FjaGUuY3BwIFwKIAlXZWJDb3JlL2h0bWwvQ29sbGVjdGlvbkNhY2hlLmggXAogCVdlYkNvcmUv
aHRtbC9Db2xsZWN0aW9uVHlwZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTY2YzRkMWQ3YmU2NmYzNDJhZjRkMzhkM2E4
YTMxYTVjZjliMDQ0NC4uNzY0YTE4MTM1NmZmYjY3NWEzMzQ5ODYzNzVkMzI3OTlmN2Y4MGMxZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTExNyw2ICsxMTcsNyBAQAogICAgICAgICAgICAgJ2ZpbGVhcGkvTWV0YWRhdGEuaWRs
JywKICAgICAgICAgICAgICdmaWxlYXBpL01ldGFkYXRhQ2FsbGJhY2suaWRsJywKICAgICAgICAg
ICAgICdodG1sL0RPTUZvcm1EYXRhLmlkbCcsCisgICAgICAgICAgICAnaHRtbC9ET01TZXR0YWJs
ZVRva2VuTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvRE9NVG9rZW5MaXN0LmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbi5pZGwnLAogICAgICAgICAgICAgJ2h0bWwv
RGF0YUdyaWRDb2x1bW5MaXN0LmlkbCcsCkBAIC03NzcsNiArNzc4LDcgQEAKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlFbnRyeVN5bmNDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEb2N1bWVudExvY2F0aW9uQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20u
Y3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01TZXR0YWJsZVRva2Vu
TGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0
cmluZ01hcEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERP
TVRva2VuTGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHAnLApAQCAtMTU1MCw2ICsxNTUyLDggQEAKICAgICAgICAgICAg
ICdodG1sL0J1dHRvbklucHV0VHlwZS5oJywKICAgICAgICAgICAgICdodG1sL0NoZWNrYm94SW5w
dXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9DaGVja2JveElucHV0VHlwZS5oJywKKyAg
ICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvQ2xhc3NM
aXN0LmgnLAogICAgICAgICAgICAgJ2h0bWwvQ29sbGVjdGlvbkNhY2hlLmNwcCcsCiAgICAgICAg
ICAgICAnaHRtbC9Db2xsZWN0aW9uQ2FjaGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xsZWN0
aW9uVHlwZS5oJywKQEAgLTE1NTksNiArMTU2Myw4IEBACiAgICAgICAgICAgICAnaHRtbC9ET01E
YXRhR3JpZERhdGFTb3VyY2UuaCcsCiAgICAgICAgICAgICAnaHRtbC9ET01Gb3JtRGF0YS5jcHAn
LAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuaCcsCisgICAgICAgICAgICAnaHRtbC9E
T01TZXR0YWJsZVRva2VuTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvRE9NU2V0dGFibGVU
b2tlbkxpc3QuaCcsCiAgICAgICAgICAgICAnaHRtbC9ET01Ub2tlbkxpc3QuY3BwJywKICAgICAg
ICAgICAgICdodG1sL0RPTVRva2VuTGlzdC5oJywKICAgICAgICAgICAgICdodG1sL0RhdGFHcmlk
Q29sdW1uLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvV2ViQ29yZS9X
ZWJDb3JlLnByaQppbmRleCAwNTFmNGQ5YzI2NWQzZjYxMWEyMDM3NzY0ZDIxOWJiNzA2ZmNiYjc1
Li4zYjM4YTQ1NjQ4MjU4YTU3NDMzYWQ4Y2Y3MDM1YmE3NjMxNjczMzNmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTIwNyw2ICsy
MDcsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW4uaWRsIFwK
ICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5pZGwgXAogICAgIGh0bWwvRE9NRm9ybURhdGEu
aWRsIFwKKyAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCBcCiAgICAgaHRtbC9ET01U
b2tlbkxpc3QuaWRsIFwKICAgICBodG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbCBcCiAgICAgaHRt
bC9IVE1MQXVkaW9FbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJv
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBiNzMwNjFlMTJkN2M1MWYyMjUyZGFjNzdkZjE2
NmQ2ZTc3NjVkMjA0Li44ZDZlMmViNzk4MWIxODkwN2M3ZjRkNjc1NGZhZTJlMjUxMWYyZjc5IDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTQwMyw2ICs0MDMsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
amVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20v
VjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhET01TZXR0YWJsZVRva2VuTGlzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcAogCkBAIC04NDMsMTAgKzg0NCwxMiBA
QCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRt
bC9CdXR0b25JbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBc
CisgICAgaHRtbC9DbGFzc0xpc3QuY3BwIFwKICAgICBodG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAg
XAogICAgIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL0RPTURhdGFHcmlkRGF0
YVNvdXJjZS5jcHAgXAogICAgIGh0bWwvRE9NRm9ybURhdGEuY3BwIFwKKyAgICBodG1sL0RPTVNl
dHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAgICAgaHRtbC9ET01Ub2tlbkxpc3QuY3BwIFwKICAgICBo
dG1sL0RhdGFHcmlkQ29sdW1uLmNwcCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuY3Bw
IFwKQEAgLTE3NDksMTIgKzE3NTIsMTQgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuaCBcCisgICAgaHRt
bC9DbGFzc0xpc3QuaCBcCiAgICAgaHRtbC9Db2xsZWN0aW9uQ2FjaGUuaCBcCiAgICAgaHRtbC9E
YXRhR3JpZENvbHVtbi5oIFwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5oIFwKICAgICBo
dG1sL0RhdGVDb21wb25lbnRzLmggXAogICAgIGh0bWwvRE9NRGF0YUdyaWREYXRhU291cmNlLmgg
XAogICAgIGh0bWwvRE9NRm9ybURhdGEuaCBcCisgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlz
dC5oIFwKICAgICBodG1sL0RPTVRva2VuTGlzdC5oIFwKICAgICBodG1sL0Zvcm1EYXRhTGlzdC5o
IFwKICAgICBodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMDY0MmEwYjNjM2Q1NGUyYjExYjdhNDhjYzcyNjMxYTExZWUy
MjVmZi4uZWRkYzdkNjM3YzNiMzhlMDU3NGFjMmRiYzc5MGM0NTk3ZTRmMzNmMSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zOTU5LDYgKzM5NTksNjIgQEAKIAkJCQk+
DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9
IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQor
CQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChX
ZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RPTVNl
dHRhYmxlVG9rZW5MaXN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJ
UmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTRE9NU3RyaW5nTGlzdC5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1
cmF0aW9uDQpAQCAtNDgxMTksNiArNDgxNzUsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDbGFzc0xpc3QuY3BwIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDbGFz
c0xpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcQ29sbGVjdGlvbkNhY2hlLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCkBAIC00ODI4Myw2ICs0ODM0NywxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQog
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXERPTVNldHRhYmxlVG9rZW5MaXN0
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcRE9NU2V0dGFibGVUb2tlbkxpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRE9NVG9rZW5MaXN0LmNwcCINCiAJ
CQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGJjNjEyZGZmYjI5OGJiNTAwYjNkOTg3MDk4NzNhZDdhZWFhZjNjMjEuLjJmYTRj
NWMyYzRhNTg2MzliNzllOTBmMWQyMDI2ODA5NTBkMjAxMDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTA0LDYgKzExMDQsMTIgQEAKIAkJNDlGRkJG
M0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNEMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJH
TExheWVyLmggKi87IH07CiAJCTQ5RkZCRjQwMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlGRkJG
M0UxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi87IH07CiAJCTRBOEM5NkVCMEJF
NjkwMzIwMDRFRUZGMCAvKiBTZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE4Qzk2RUEwQkU2OTAzMjAwNEVFRkYw
IC8qIFNlbGVjdGlvbkNvbnRyb2xsZXJNYWMubW0gKi87IH07CisJCTRBOTgzM0Q4MTI2QzczNkQw
MDg2QzE5MSAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEE5ODMzRDYxMjZDNzM2RDAwODZDMTkxIC8qIENsYXNzTGlzdC5jcHAg
Ki87IH07CisJCTRBOTgzM0Q5MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOTgzM0Q3MTI2QzczNkQw
MDg2QzE5MSAvKiBDbGFzc0xpc3QuaCAqLzsgfTsKKwkJNEE5ODMzREQxMjZDNzM3QzAwODZDMTkx
IC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBOTgzM0RBMTI2QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJs
ZVRva2VuTGlzdC5jcHAgKi87IH07CisJCTRBOTgzM0RFMTI2QzczN0MwMDg2QzE5MSAvKiBET01T
ZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEE5ODMzREIxMjZDNzM3QzAwODZDMTkxIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0
LmggKi87IH07CisJCTRBOTgzM0UyMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBOTgzM0UwMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAq
LzsgfTsKKwkJNEE5ODMzRTMxMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBOTgz
M0UxMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggKi87IH07CiAJ
CTRCMjcwOEM3MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0Yg
LyogUGFzdGVib2FyZC5oICovOyB9OwogCQk0QjI3MDk4MzBBRjJFNUUwMDA2NTEyN0YgLyogUGFz
dGVib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRCMjcwOTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovOyB9Owog
CQk0QjMwNDNDNzBBRTAzNzAzMDBBODI2NDcgLyogU291bmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCMzA0M0M2MEFFMDM3MDMwMEE4MjY0NyAvKiBT
b3VuZC5oICovOyB9OwpAQCAtNzE1OSw2ICs3MTY1LDEzIEBACiAJCTQ5RkZCRjNEMTFDOTNFRTMw
MDZBNzExOCAvKiBXZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlGRkJGM0UxMUM5
M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJHTExheWVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBTZWxlY3Rpb25Db250cm9s
bGVyTWFjLm1tOyBwYXRoID0gbWFjL1NlbGVjdGlvbkNvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBOTgzM0Q2MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xhc3NMaXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5ODMzRDcxMjZDNzM2RDAwODZDMTkx
IC8qIENsYXNzTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGFzc0xp
c3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5ODMzREExMjZDNzM3QzAwODZD
MTkxIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEE5ODMzREIxMjZDNzM3QzAwODZDMTkxIC8qIERPTVNldHRhYmxlVG9rZW5M
aXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVNldHRhYmxlVG9rZW5M
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBOTgzM0RDMTI2QzczN0MwMDg2
QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
QTk4MzNFMDEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVNldHRhYmxlVG9rZW5MaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE5ODMzRTExMjZDNzNBRjAwODZD
MTkxIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNET01TZXR0YWJsZVRva2VuTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRCMjcwOTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFzdGVib2FyZE1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEIzMDQzQzYwQUUwMzcwMzAwQTgyNjQ3
IC8qIFNvdW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1MjYsNiArMTQ1MzksOCBAQAogCQkJCUY1
NUIzRDdDMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuaCAqLywKIAkJCQlGNTVC
M0Q3RDEyNTFGMTJEMDAzRUYyNjkgLyogQ2hlY2tib3hJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzRDdFMTI1MUYxMkQwMDNFRjI2OSAvKiBDaGVja2JveElucHV0VHlwZS5oICovLAorCQkJCTRB
OTgzM0Q2MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3QuY3BwICovLAorCQkJCTRBOTgzM0Q3
MTI2QzczNkQwMDg2QzE5MSAvKiBDbGFzc0xpc3QuaCAqLywKIAkJCQk5M0M0NDFFRDBGODEzQTFB
MDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmNwcCAqLywKIAkJCQk5M0M0NDFFRTBGODEzQTFB
MDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmggKi8sCiAJCQkJOTNDNDQxRkYwRjgxM0FFMTAw
QzFBNjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi8sCkBAIC0xNDU1MSw2ICsxNDU2Niw5IEBACiAJ
CQkJMkVENjA5QkExMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQky
RUQ2MDlCQjExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuaCAqLywKIAkJCQkyRTA4ODhD
MzExNDg4M0E5MDBBRjQyNjUgLyogRE9NRm9ybURhdGEuaWRsICovLAorCQkJCTRBOTgzM0RBMTI2
QzczN0MwMDg2QzE5MSAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8sCisJCQkJNEE5ODMz
REIxMjZDNzM3QzAwODZDMTkxIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggKi8sCisJCQkJNEE5
ODMzREMxMjZDNzM3QzAwODZDMTkxIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCAqLywKIAkJ
CQk3NkZDMkIwODEyMzcwREEwMDA2QTk5MUEgLyogRE9NVG9rZW5MaXN0LmNwcCAqLywKIAkJCQk3
NkZDMkIwOTEyMzcwREEwMDA2QTk5MUEgLyogRE9NVG9rZW5MaXN0LmggKi8sCiAJCQkJNzZGQzJC
MEExMjM3MERBMDAwNkE5OTFBIC8qIERPTVRva2VuTGlzdC5pZGwgKi8sCkBAIC0xNTEwMSw2ICsx
NTExOSw4IEBACiAJCQkJQkM3N0QxNjgwRkYxOUY1NTAwNzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1
bW5MaXN0LmggKi8sCiAJCQkJMkUwODg4RDIxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURh
dGEuY3BwICovLAogCQkJCTJFMDg4OEQzMTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRh
LmggKi8sCisJCQkJNEE5ODMzRTAxMjZDNzNBRjAwODZDMTkxIC8qIEpTRE9NU2V0dGFibGVUb2tl
bkxpc3QuY3BwICovLAorCQkJCTRBOTgzM0UxMTI2QzczQUYwMDg2QzE5MSAvKiBKU0RPTVNldHRh
YmxlVG9rZW5MaXN0LmggKi8sCiAJCQkJNzY5NDU2M0ExMjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9N
VG9rZW5MaXN0LmNwcCAqLywKIAkJCQk3Njk0NTYzQjEyMTREOTdDMDAwN0NCQUUgLyogSlNET01U
b2tlbkxpc3QuaCAqLywKIAkJCQk0OUVFQ0VGNDEwNTA3MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMy
QXJyYXkuY3BwICovLApAQCAtMTg0MDYsNiArMTg0MjYsNyBAQAogCQkJCUE4MTg3MjIwMDk3N0Qz
QzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ4MjM1
MjBBRjkyQTc5MDAwNEYwNTcgLyogQ2hyb21lLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNEQ4MjQw
ODBBRjkzQUVCMDAwNEYwNTcgLyogQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0
QTk4MzNEOTEyNkM3MzZEMDA4NkMxOTEgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzkwNEI3NzBEMTA5OThGMDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xODgzMyw2ICsxODg1NCw3IEBACiAJCQkJODU1RDM1OEEwQUQ3
MDczMTAwMTlBQUM3IC8qIERPTVJHQkNvbG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0QwRkM0
RjBEQkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29sb3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM1QTg2ODUwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNEE5ODMzREUxMjZDNzM3QzAwODZDMTkxIC8qIERPTVNldHRhYmxlVG9rZW5M
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTQ0Mjc0QjExQTU3RTdBMDA2M0E3NDkgLyogRE9N
U3RyaW5nTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NDY0MEExMUQ3RjMwNDAwNjQ1NUIw
IC8qIERPTVN0cmluZ01hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNTAyNUIxMDJCQTkwMTAw
NjZGMzlBIC8qIERPTVN0eWxlTWVkaWEuaCBpbiBIZWFkZXJzICovLApAQCAtMTk2ODYsNiArMTk3
MDgsNyBAQAogCQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxl
ckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYwNjIwMTBGNUYwQjY2MDBBMDdFQUMgLyog
SW5zcGVjdG9yUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIxNzc2MTI1QzgyNjcw
MEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk0
RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdBQjBCMUMxMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JTdG9yYWdlQWdlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIxNzc0MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0
b3JTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxMzNBODEwMkUwMEU4MDAwNzVE
MDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xOTc5MSw2
ICsxOTgxNCw3IEBACiAJCQkJQTlEMjQ3RkYwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2lu
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDgwMTBENzU3RTY5MDBGREY5NTkgLyogSlNET01Q
bHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1QTg2QjYwQzMzNjdFODAwRUVBNjQ5
IC8qIEpTRE9NU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTk4MzNFMzEyNkM3M0FG
MDA4NkMxOTEgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzUxMzdDRjMxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM2NDY0OTgxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3Njk0NTYzRDEyMTREOTdDMDAwN0NCQUUgLyogSlNET01Ub2tlbkxp
c3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjAyMTIsNiArMjAyMzYsNyBAQAogCQkJCTFBOEY2QkM2
MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThDNEE4NEMwOUQ1NjQ5RDAwMDNBQzhEIC8qIE1hcHBlZEF0dHJpYnV0ZUVudHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzMwOURGODA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11bGF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY1MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRo
TUxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNzEwNTlDMUVCMDBEOTk5REQg
LyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkFC
RTcyRjkxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTE1hdGhFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKQEAgLTIxMDg3LDExICsyMTExMiw2IEBACiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJD
IC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIw
MDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3
MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0RkEz
QjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMDgxQ0RGQjgxMjZFQ0ZEQjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdB
bmltYXRlZFByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwODFDREZCOTEyNkVDRkRCMDBE
MjE1Q0EgLyogRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTA4MUNERkJBMTI2RUNGREIwMEQyMTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0
ZWRUZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxQ0RGQkYxMjZFQ0ZFODAwRDIxNUNB
IC8qIFNWR0FuaW1hdGVkUHJvcGVydHlTeW5jaHJvbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpAQCAtMjE1MDYs
NiArMjE1MjYsNyBAQAogCQkJCUE4MTg3MjI1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RDgyMzhCMEFGOTJERjYwMDA0RjA1NyAvKiBD
aHJvbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8q
IENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBOTgzM0Q4MTI2QzczNkQwMDg2QzE5
MSAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAw
NjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0Qw
RjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkND
MDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjE3NzksNiArMjE4MDAsNyBAQAogCQkJCTg1OEMzOEE4MEFBOEYyMDQwMEIxODdBNCAv
KiBET01SZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBRUZDQUUxMDE2Q0U0QTAwNDBEMzRF
IC8qIERPTVJHQkNvbG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1QTg2ODQwQzMzNjc2MDAw
RUVBNjQ5IC8qIERPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTk4MzNERDEy
NkM3MzdDMDA4NkMxOTEgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzU1NjEwRjExMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM2NDY0MDkxMUQ3RjMwNDAwNjQ1NUIwIC8qIERPTVN0cmluZ01hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY1MDI1QzEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5
bGVNZWRpYS5tbSBpbiBTb3VyY2VzICovLApAQCAtMjIyNDMsNiArMjIyNjUsNyBAQAogCQkJCUI4
ODVFOEQ0MTFFMDZERDIwMDlGRkJGNCAvKiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E3NEVDQkExMDE4MzlBNjAwQkY5MzlFIC8qIEluc3Bl
Y3RvckJhY2tlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNEY3MDdBOTkxMUVGNjc5NDAwQUNE
QTY5IC8qIEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTdBMUYyQjUyMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUM4MUI5NUIwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NDMxMjRCOTlFQzAwQzUwNjlEIC8qIElu
c3BlY3RvckNTU0FnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQjY1ODlBMTE4OUU0NzYw
MEUwNTJBMSAvKiBJbnNwZWN0b3JDU1NTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyMjU3
LDYgKzIyMjgwLDcgQEAKIAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUYwNjIwMjBGNUYwQjY2MDBB
MDdFQUMgLyogSW5zcGVjdG9yUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3
NzUxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNEZBM0I5MEExMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdBQjBCMUMwMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0
b3JTdG9yYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzMxMjVDODI2NzAw
QzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0
MTMzQUExMDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yMjM4Nyw2ICsyMjQxMSw3IEBACiAJCQkJQTlDNkU2NEMwRDc0NjVFNzAw
NjQ0MkU5IC8qIEpTRE9NUGx1Z2luQXJyYXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTlDNkU2NEQwRDc0NjVFNzAwNjQ0MkU5IC8qIEpTRE9NUGx1Z2luQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNUE4NkI1MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk0QTk4MzNFMjEyNkM3M0FGMDA4NkMxOTEgLyogSlNET01T
ZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTEzN0NGMjExQTU4Mzc4
MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2
NDk3MTFEODIzNDkwMDY0NTVCMCAvKiBKU0RPTVN0cmluZ01hcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzY0NjQ5QzExRDgyMzhDMDA2NDU1QjAgLyogSlNET01TdHJpbmdNYXBDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yMjg1MCw2ICsyMjg3NSw3IEBACiAJCQkJMUE5ODk1NkIwQUE3
OEY4MDAwNUVGNUVGIC8qIEtVUkxDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTkzOTIz
QTA5QUU0MzVDMDAyQzUzMUYgLyogS1VSTE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE0NTZG
QTI2MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
KyAgICAgICAgRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzNTIwODQ1MDlCRDQzQjkwMEYyMDM4RCAvKiBMYW5ndWFnZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTJEOTA2NjA2MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJERDhGNDBEOTFFNkFGMDAwRjg5RUUgLyogTGVnYWN5
V2ViQXJjaGl2ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyODc0LDYgKzIyOTAwLDcgQEAKIAkJ
CQk5M0UyMjdFMTBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJlc291cmNlTG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBOEY2QkM1MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURGNzA5OUU2NDkyMDA1NkU1ODEgLyogbWFy
a3VwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBN
YXJrdXBBY2N1bXVsYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGNDEwNTlDMUVC
MDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJG
RDEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudEZhY3RvcnkuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkFCRTcyRjYxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTElubGluZUNvbnRhaW5l
ckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzY0MCwxMCArMjM2NjcsNiBAQAogCQkJ
CTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVT
b3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3REQ0RDg2MEZERjRENkUwMEVDRjlBNCAvKiBY
U1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTRGQTNCOTBBMTI1Q0QxMjIwMDMwMEJB
RCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NzI4QzMxMzEyNjhF
NDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11bGF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
RTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTdBMUYyQjUyMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0gYi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KaW5kZXggZDgw
OGUxODk5ZjNhZmJkN2FmNWI4NzNkNmVlZjZjYWE1MTE1YmQzNC4uMzM4ZDdmOTRlOTFjMTg5MzU1
OWE5MDAyNTQ1N2RkMjMwMDBiNGMyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9nb2Jq
ZWN0L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtl
ZmlsZS5hbQpAQCAtNDksNiArNDksOCBAQCB3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTGlzdFByaXZhdGUu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTVN0cmluZ01hcC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TdHJpbmdNYXBQcml2YXRlLmggXAor
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAg
XAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdFBy
aXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTVRva2VuTGlzdC5j
cHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01Ub2tlbkxpc3RQcml2YXRl
LmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01XaW5kb3cuY3BwIFwKQEAg
LTI2Myw2ICsyNjUsNyBAQCB3ZWJraXRndGtfYnVpbHRfaF9hcGkgKz0gXAogCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdC9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50LmggXAogCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01Eb2N1bWVudFR5cGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NRE9NU3RyaW5nTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NRE9NU3RyaW5nTWFwLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01U
b2tlbkxpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCBmZTI5YjgwNGU4NzY0NDI5ZjdjM2ZjYzY1ZGFkNTk5MmY0MmMxNzNkLi5lMDIxZjcx
YmI5MDExZmYwN2EzNDAyNDQwMWI5NWU0MGMwZDNlYjE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI0MCw3ICsyNDAsNyBAQCBzdWIgSW5kZXhH
ZXR0ZXJSZXR1cm5zU3RyaW5ncwogewogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1
cm4gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIgb3IgJHR5cGUgZXEgIk1lZGlh
TGlzdCIgb3IgJHR5cGUgZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIiBvciAkdHlwZSBlcSAi
RE9NU3RyaW5nTGlzdCIgb3IgJHR5cGUgZXEgIkRPTVRva2VuTGlzdCI7CisgICAgcmV0dXJuIDEg
aWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iIG9yICR0eXBlIGVxICJNZWRpYUxpc3Qi
IG9yICR0eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIgb3IgJHR5cGUgZXEgIkRPTVN0
cmluZ0xpc3QiIG9yICR0eXBlIGVxICJET01Ub2tlbkxpc3QiIG9yICR0eXBlIGVxICJET01TZXR0
YWJsZVRva2VuTGlzdCI7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TZXR0YWJsZVRva2VuTGlzdEN1c3RvbS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGVlYjFlMGMyZDMyM2JkNWRlNjlhMDdmNzVjNjk0MDBiYWJkN2MzNwotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVU
b2tlbkxpc3RDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWOERPTVNldHRhYmxlVG9rZW5MaXN0LmgiCisKKyNp
bmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgi
CisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOERPTVNldHRhYmxlVG9rZW5MaXN0OjppbmRleGVkUHJvcGVydHlHZXR0
ZXIodWludDMyX3QgaW5kZXgsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLgorICAgIHJldHVybiB2OFN0cmluZygi
Iik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODNlMTI5ZThlMjhj
ZmE1MTBlZTBkODE1NmQyNDM4NWQxZTkzZGNmOS4uNzZkNmU5Yzg0ZjVkYjk4ODBiZDJjZGVlYWRl
MmNhZGM0ZjA4MTZjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NQ
YXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNsdWRlICJDU1NTdHls
ZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVj
dC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0
LmgiCkBAIC0xNTg1LDcgKzE1ODYsNyBAQCBET01Ub2tlbkxpc3QqIEVsZW1lbnQ6OmNsYXNzTGlz
dCgpCiB7CiAgICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gZW5zdXJlUmFyZURhdGEoKTsKICAg
ICBpZiAoIWRhdGEtPm1fY2xhc3NMaXN0KQotICAgICAgICBkYXRhLT5tX2NsYXNzTGlzdCA9IERP
TVRva2VuTGlzdDo6Y3JlYXRlKHRoaXMpOworICAgICAgICBkYXRhLT5tX2NsYXNzTGlzdCA9IENs
YXNzTGlzdDo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBkYXRhLT5tX2NsYXNzTGlzdC5nZXQo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBmMWU2MzM0MThjYzI0NjY5NTNhODkyOWE4
MGMzY2NjYzU2ZWJjZDhhLi4wNmJmZTBjN2RhYjcyODI1MTc2NmQ3ZTVhZWRlNGJjMmVjODZlNjFj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMjIsNyArMjIsNyBAQAogI2lmbmRlZiBFbGVtZW50
UmFyZURhdGFfaAogI2RlZmluZSBFbGVtZW50UmFyZURhdGFfaAogCi0jaW5jbHVkZSAiRE9NVG9r
ZW5MaXN0LmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0
cmluZ01hcC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJOb2RlUmFyZURhdGEu
aCIKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9j
b21wdXRlZFN0eWxlOwogCiAgICAgT3duUHRyPERhdGFzZXRET01TdHJpbmdNYXA+IG1fZGF0YXNl
dERPTVN0cmluZ01hcDsKLSAgICBPd25QdHI8RE9NVG9rZW5MaXN0PiBtX2NsYXNzTGlzdDsKKyAg
ICBPd25QdHI8Q2xhc3NMaXN0PiBtX2NsYXNzTGlzdDsKIH07CiAKIGlubGluZSBJbnRTaXplIGRl
ZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuY3BwIGIvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKaW5k
ZXggOGEyNzEwY2MzMGVmMWFhNDk1ODE2MjUzMjRhOGRlNjcyZWRlNDVhZi4uZmNmNTUwOGI3OTQ3
NGZkOWZjMmY4ZTdkNzkxMTdlNTYxYzU2YmY0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU3Bh
Y2VTcGxpdFN0cmluZy5jcHAKKysrIGIvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAK
QEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNs
dWRlIDx3dGYvQVNDSUlDVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApAQCAtOTAsNCArOTEsMzYgQEAgYm9vbCBTcGFj
ZVNwbGl0U3RyaW5nRGF0YTo6Y29udGFpbnNBbGwoU3BhY2VTcGxpdFN0cmluZ0RhdGEmIG90aGVy
KQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFNwYWNlU3BsaXRTdHJpbmdEYXRhOjphZGQo
Y29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcpCit7CisgICAgaWYgKGNvbnRhaW5zKHN0cmluZykp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fdmVjdG9yLmFwcGVuZChzdHJpbmcpOworfQorCit2
b2lkIFNwYWNlU3BsaXRTdHJpbmdEYXRhOjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJp
bmcpCit7CisgICAgZW5zdXJlVmVjdG9yKCk7CisKKyAgICBzaXplX3QgcG9zaXRpb247CisgICAg
Zm9yIChwb3NpdGlvbiA9IDA7IHBvc2l0aW9uIDwgbV92ZWN0b3Iuc2l6ZSgpOyArK3Bvc2l0aW9u
KQorICAgICAgICBpZiAobV92ZWN0b3JbcG9zaXRpb25dID09IHN0cmluZykgeworICAgICAgICAg
ICAgbV92ZWN0b3IucmVtb3ZlKHBvc2l0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9Cit9CisKK3ZvaWQgU3BhY2VTcGxpdFN0cmluZzo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYg
c3RyaW5nKQoreworICAgIGlmIChtX2RhdGEpCisgICAgICAgIG1fZGF0YS0+YWRkKHN0cmluZyk7
Cit9CisKK3ZvaWQgU3BhY2VTcGxpdFN0cmluZzo6cmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYg
c3RyaW5nKQoreworICAgIGlmIChtX2RhdGEpCisgICAgICAgIG1fZGF0YS0+cmVtb3ZlKHN0cmlu
Zyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L1NwYWNlU3BsaXRTdHJpbmcuaCBiL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuaAppbmRl
eCAwOWNhOGQ5NmM1MTUxNTU4YmZiZjI2NmY3NTdjMGI4ODM5ODJiNGZjLi44MjZlNmJkMDM3ODk4
ZTQwNzcyZGE0MDczZDdiYmY1NTJhMWVhY2U1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TcGFj
ZVNwbGl0U3RyaW5nLmgKKysrIGIvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCkBAIC00
OCw2ICs0OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBib29sIGNvbnRhaW5z
QWxsKFNwYWNlU3BsaXRTdHJpbmdEYXRhJik7CiAKKyAgICAgICAgdm9pZCBhZGQoY29uc3QgQXRv
bWljU3RyaW5nJik7CisgICAgICAgIHZvaWQgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYpOwor
CiAgICAgICAgIHNpemVfdCBzaXplKCkgeyBlbnN1cmVWZWN0b3IoKTsgcmV0dXJuIG1fdmVjdG9y
LnNpemUoKTsgfQogICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG9wZXJhdG9yW10oc2l6ZV90
IGkpIHsgZW5zdXJlVmVjdG9yKCk7IEFTU0VSVChpIDwgc2l6ZSgpKTsgcmV0dXJuIG1fdmVjdG9y
W2ldOyB9CiAKQEAgLTcyLDYgKzc1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAg
IGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zKHN0cmluZyk7IH0KICAgICAgICAgYm9vbCBjb250
YWluc0FsbChjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBuYW1lcykgY29uc3QgeyByZXR1cm4gIW5h
bWVzLm1fZGF0YSB8fCAobV9kYXRhICYmIG1fZGF0YS0+Y29udGFpbnNBbGwoKm5hbWVzLm1fZGF0
YSkpOyB9CisgICAgICAgIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgICAgICB2
b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgICAgICBzaXplX3Qgc2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YSA/IG1fZGF0YS0+c2l6ZSgpIDogMDsgfQogICAgICAgICBi
b29sIGlzTnVsbCgpIGNvbnN0IHsgcmV0dXJuICFtX2RhdGE7IH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAK
aW5kZXggMTI3NDRjYjA2MGM5ZDkyMGU3M2UxNDM1YTM2NDU0ZDQzOGIwOTk3My4uNzM4NGMwYmMy
YWJmYTE2ODY0ZWJjZWM1ODI4OTczY2RlMDEzOTFhMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5jcHAKQEAg
LTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJTdHlsZWRFbGVtZW50LmgiCiAKICNpbmNsdWRlICJB
dHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJDbGFzc0xpc3QuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNl
bGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNTU1ZhbHVl
S2V5d29yZHMuaCIKQEAgLTIyMiw3ICsyMjMsNyBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6OmNsYXNz
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBBdG9taWNTdHJpbmcmIG5ld0NsYXNzU3RyaW5nKQogICAg
IGlmIChoYXNDbGFzcykgewogICAgICAgICBhdHRyaWJ1dGVzKCktPnNldENsYXNzKG5ld0NsYXNz
U3RyaW5nKTsKICAgICAgICAgaWYgKERPTVRva2VuTGlzdCogY2xhc3NMaXN0ID0gb3B0aW9uYWxD
bGFzc0xpc3QoKSkKLSAgICAgICAgICAgIGNsYXNzTGlzdC0+cmVzZXQobmV3Q2xhc3NTdHJpbmcp
OworICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Q2xhc3NMaXN0Kj4oY2xhc3NMaXN0KS0+cmVzZXQo
bmV3Q2xhc3NTdHJpbmcpOwogICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlTWFwKCkpCiAgICAgICAg
IGF0dHJpYnV0ZU1hcCgpLT5jbGVhckNsYXNzKCk7CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oIGIvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5oCmluZGV4IDRiNjIzODgxNDQ0ZTE4NTQwNzYzNjNjMGNjNjkyMWI5ODcz
ZDMwNjEuLjgwNDBkYmYxZTM2OGFjYjdmNGVhOGU4MzU3YTFiMTVhZjgwNDJmMDMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9TdHlsZWRF
bGVtZW50LmgKQEAgLTMyLDcgKzMyLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QXR0cmlidXRlOwotY2xhc3MgQ2xhc3NMaXN0OwogY2xhc3MgQ1NTTWFwcGVkQXR0cmlidXRlRGVj
bGFyYXRpb247CiAKIGNsYXNzIFN0eWxlZEVsZW1lbnQgOiBwdWJsaWMgRWxlbWVudCB7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNwcCBiL1dlYkNvcmUvaHRtbC9DbGFzc0xp
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU1MmUwYWJhNzAyODM5OTUyZTY0NjQwNmU5M2RhMjhmNzEwZGFj
YjIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNwcApAQCAtMCww
ICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNsYXNzTGlzdC5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJTcGFjZVNwbGl0
U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK0NsYXNzTGlzdDo6
Q2xhc3NMaXN0KEVsZW1lbnQqIGVsZW1lbnQpCisgICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKK3sK
KyAgICBpZiAobV9lbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKKyAgICAgICAg
bV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zZXQobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KGNsYXNzQXR0ciksIGZhbHNlKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OnJlZigpCit7CisgICAg
bV9lbGVtZW50LT5yZWYoKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OmRlcmVmKCkKK3sKKyAgICBt
X2VsZW1lbnQtPmRlcmVmKCk7Cit9CisKK3Vuc2lnbmVkIENsYXNzTGlzdDo6bGVuZ3RoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygpID8gY2xhc3NOYW1lcygpLnNp
emUoKSA6IDA7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyBDbGFzc0xpc3Q6Oml0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICBy
ZXR1cm4gQXRvbWljU3RyaW5nKCk7CisgICAgcmV0dXJuIGNsYXNzTmFtZXMoKVtpbmRleF07Cit9
CisKK2Jvb2wgQ2xhc3NMaXN0Ojpjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBF
eGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4s
IGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb250YWluc0ludGVybmFs
KHRva2VuKTsKK30KKworYm9vbCBDbGFzc0xpc3Q6OmNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRv
bWljU3RyaW5nJiB0b2tlbikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFz
cygpICYmIGNsYXNzTmFtZXMoKS5jb250YWlucyh0b2tlbik7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0
OjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAgICAgIHJldHVybjsKKyAgICBh
ZGRJbnRlcm5hbCh0b2tlbik7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjphZGRJbnRlcm5hbChjb25z
dCBBdG9taWNTdHJpbmcmIHRva2VuKQoreworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkQ2xh
c3NOYW1lKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpKTsKKyAgICBpZiAo
b2xkQ2xhc3NOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUo
Y2xhc3NBdHRyLCB0b2tlbik7CisgICAgZWxzZSBpZiAoIWNvbnRhaW5zSW50ZXJuYWwodG9rZW4p
KSB7CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3Q2xhc3NOYW1lKGFkZFRva2VuKG9s
ZENsYXNzTmFtZSwgdG9rZW4pKTsKKyAgICAgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xh
c3NBdHRyLCBuZXdDbGFzc05hbWUpOworICAgIH0KKyAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLmFkZCh0b2tlbik7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZW1vdmUoY29uc3QgQXRvbWlj
U3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRv
a2VuKHRva2VuLCBlYykpCisgICAgICAgIHJldHVybjsKKyAgICByZW1vdmVJbnRlcm5hbCh0b2tl
bik7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJp
bmcmIHRva2VuKQoreworICAgIC8vIENoZWNrIHVzaW5nIGNvbnRhaW5zIGZpcnN0IHNpbmNlIGl0
IHVzZXMgQXRvbWljU3RyaW5nIGNvbXBhcmlzb25zIGluc3RlYWQKKyAgICAvLyBvZiBjaGFyYWN0
ZXIgYnkgY2hhcmFjdGVyIHRlc3RpbmcuCisgICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2Vu
KSkKKyAgICAgICAgcmV0dXJuOworICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3Q2xhc3NOYW1l
KHJlbW92ZVRva2VuKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpLCB0b2tl
bikpOworICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgbmV3Q2xhc3NOYW1l
KTsKKyAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnJlbW92ZSh0b2tlbik7Cit9CisKK2Jv
b2wgQ2xhc3NMaXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmIChjb250YWluc0ludGVybmFsKHRva2VuKSkgeworICAg
ICAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgYWRkSW50ZXJuYWwodG9rZW4pOworICAgIHJldHVybiB0cnVlOworfQorCitTdHJpbmcg
Q2xhc3NMaXN0Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+ZmFz
dEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpOworfQorCit2b2lkIENsYXNzTGlzdDo6cmVzZXQoY29u
c3QgU3RyaW5nJiBuZXdDbGFzc05hbWUpCit7CisgICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWly
a3NNb2RlLmlzTnVsbCgpKQorICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldChu
ZXdDbGFzc05hbWUsIGZhbHNlKTsKK30KKworY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgQ2xhc3NM
aXN0OjpjbGFzc05hbWVzKCkgY29uc3QKK3sKKyAgICBBU1NFUlQobV9lbGVtZW50LT5oYXNDbGFz
cygpKTsKKyAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuaXNOdWxsKCkpCisgICAg
ICAgIHJldHVybiBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOworICAgIHJldHVybiBtX2VsZW1l
bnQtPmF0dHJpYnV0ZU1hcCgpLT5jbGFzc05hbWVzKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaCBiL1dlYkNvcmUvaHRt
bC9DbGFzc0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2FlYTYwYmU1NjU4ZGYyYTliM2RkMTI2OWM5NGVk
MWM3Y2MxNGFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oCkBA
IC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ2xhc3NMaXN0X2gKKyNkZWZp
bmUgQ2xhc3NMaXN0X2gKKworI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFbGVtZW50
OworCitjbGFzcyBDbGFzc0xpc3QgOiBwdWJsaWMgRE9NVG9rZW5MaXN0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxDbGFzc0xpc3Q+IGNyZWF0ZShFbGVtZW50KiBlbGVtZW50KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDbGFzc0xpc3QoZWxlbWVudCkpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCByZWYoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYo
KTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CisgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0Owor
CisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50OyB9CisK
KyAgICB2b2lkIHJlc2V0KGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIENsYXNzTGlz
dChFbGVtZW50Kik7CisKKyAgICB2b2lkIGFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYp
OworICAgIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsK
KyAgICB2b2lkIHJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpOworCisgICAgY29u
c3QgU3BhY2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lcygpIGNvbnN0OworCisgICAgRWxlbWVudCog
bV9lbGVtZW50OworICAgIFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9k
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENsYXNzTGlzdF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGIvV2Vi
Q29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjM2YmQzYWIz
YjgyZWZkMGI0Y2U0MGQxYTViYzZhNWJkZWQ5ZDAzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxp
c3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01TZXR0YWJsZVRva2VuTGlzdDo6RE9N
U2V0dGFibGVUb2tlbkxpc3QoKQorICAgIDogbV92YWx1ZSgpCisgICAgLCBtX3Rva2VucygpCit7
Cit9CisKK0RPTVNldHRhYmxlVG9rZW5MaXN0Ojp+RE9NU2V0dGFibGVUb2tlbkxpc3QoKQorewor
fQorCitjb25zdCBBdG9taWNTdHJpbmcgRE9NU2V0dGFibGVUb2tlbkxpc3Q6Oml0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICBy
ZXR1cm4gQXRvbWljU3RyaW5nKCIiKTsKKyAgICByZXR1cm4gbV90b2tlbnNbaW5kZXhdOworfQor
Citib29sIERPTVNldHRhYmxlVG9rZW5MaXN0Ojpjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcm
IHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9r
ZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3Rva2Vu
cy5jb250YWlucyh0b2tlbik7Cit9CisKK3ZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmFkZChj
b25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAo
IXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSB8fCBtX3Rva2Vucy5jb250YWlucyh0b2tlbikpCisg
ICAgICAgIHJldHVybjsKKyAgICBhZGRJbnRlcm5hbCh0b2tlbik7Cit9CisKK3ZvaWQgRE9NU2V0
dGFibGVUb2tlbkxpc3Q6OmFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCit7
CisgICAgbV92YWx1ZSA9IGFkZFRva2VuKG1fdmFsdWUsIHRva2VuKTsKKyAgICBtX3Rva2Vucy5h
ZGQodG9rZW4pOworfQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpyZW1vdmUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxp
ZGF0ZVRva2VuKHRva2VuLCBlYykgfHwgIW1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKSkKKyAgICAg
ICAgcmV0dXJuOworICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsKK30KKwordm9pZCBET01TZXR0
YWJsZVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikK
K3sKKyAgICBtX3ZhbHVlID0gcmVtb3ZlVG9rZW4obV92YWx1ZSwgdG9rZW4pOworICAgIG1fdG9r
ZW5zLnJlbW92ZSh0b2tlbik7Cit9CisKK2Jvb2wgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnRvZ2ds
ZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBp
ZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IGlmIChtX3Rva2Vucy5jb250YWlucyh0b2tlbikpIHsKKyAgICAgICAgcmVtb3ZlSW50ZXJuYWwo
dG9rZW4pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGFkZEludGVybmFsKHRv
a2VuKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6
c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBtX3ZhbHVlID0gdmFsdWU7Cisg
ICAgbV90b2tlbnMuc2V0KHZhbHVlLCB0cnVlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmggYi9XZWJD
b3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjcxMWI0YTI0NjRl
YWE2MDYxMDUxZTNhMTFmNDI2NTNmZDVmZGMxCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9o
dG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBET01TZXR0YWJsZVRva2VuTGlzdF9oCisjZGVmaW5lIERPTVNldHRhYmxlVG9r
ZW5MaXN0X2gKKworI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKKyNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVNl
dHRhYmxlVG9rZW5MaXN0IDogcHVibGljIERPTVRva2VuTGlzdCwgcHVibGljIFJlZkNvdW50ZWQ8
RE9NU2V0dGFibGVUb2tlbkxpc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
T01TZXR0YWJsZVRva2VuTGlzdD4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRE9NU2V0dGFibGVUb2tlbkxpc3QoKSk7CisgICAgfQorICAgIHZpcnR1YWwgfkRP
TVNldHRhYmxlVG9rZW5MaXN0KCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgeyBSZWZDb3Vu
dGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6cmVmKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVy
ZWYoKSB7IFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+OjpkZXJlZigpOyB9CisKKyAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9rZW5zLnNpemUo
KTsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBBdG9taWNT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZShjb25zdCBB
dG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCBib29sIHRvZ2dsZShj
b25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCBTdHJpbmcg
dG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CisKKyAgICBTdHJpbmcgdmFsdWUo
KSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJp
bmcmKTsKKworcHJpdmF0ZToKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCgpOworCisgICAgdm9p
ZCByZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICB2b2lkIGFkZEludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYpOworCisgICAgU3RyaW5nIG1fdmFsdWU7CisgICAgU3Bh
Y2VTcGxpdFN0cmluZyBtX3Rva2VuczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIERPTVNldHRhYmxlVG9rZW5MaXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tl
bkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNjA2MjNlZWI0NjNkN2MzMGQ5NmY5MDI4MTkxMDAxZjcx
YTMzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxp
c3QuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKwor
ICAgIGludGVyZmFjZSBbCisgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IsCisgICAgICAgIEhh
c0luZGV4R2V0dGVyLAorICAgICAgICBHZW5lcmF0ZVRvSlMKKyAgICBdIERPTVNldHRhYmxlVG9r
ZW5MaXN0IDogRE9NVG9rZW5MaXN0IHsKKyAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB2YWx1
ZTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNw
cCBiL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IGFhMGE3NGIyYWNiYmQ4YTU3
OWRjYWU2NjBlNTU0OTQyNDc0MWY3MWMuLjNjOTFmMjAxMjUzMGIyNGY5ODI2Y2IyMWQ4N2U0M2My
MzMzNGYzNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0yNSwxNyArMjUsMTIgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKIAotI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCi0jaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwotCi1zdGF0aWMgYm9vbCB2YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBET01Ub2tlbkxpc3Q6OnZhbGlk
YXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKHRva2VuLmlzRW1wdHkoKSkgewogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CkBA
IC01Myw4NiArNDgsMjMgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNT
dHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
RE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCogZWxlbWVudCkKLSAgICA6IG1fZWxl
bWVudChlbGVtZW50KQotewotICAgIGlmIChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtz
TW9kZSgpKQotICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldChtX2VsZW1lbnQt
PmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSwgZmFsc2UpOwotfQotCi12b2lkIERPTVRva2Vu
TGlzdDo6cmVmKCkKLXsKLSAgICBtX2VsZW1lbnQtPnJlZigpOwotfQotCi12b2lkIERPTVRva2Vu
TGlzdDo6ZGVyZWYoKQotewotICAgIG1fZWxlbWVudC0+ZGVyZWYoKTsKLX0KLQotdW5zaWduZWQg
RE9NVG9rZW5MaXN0OjpsZW5ndGgoKSBjb25zdAotewotICAgIHJldHVybiBtX2VsZW1lbnQtPmhh
c0NsYXNzKCkgPyBjbGFzc05hbWVzKCkuc2l6ZSgpIDogMDsKLX0KLQotY29uc3QgQXRvbWljU3Ry
aW5nIERPTVRva2VuTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLXsKLSAgICBpZiAo
aW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoKTsKLSAgICBy
ZXR1cm4gY2xhc3NOYW1lcygpW2luZGV4XTsKLX0KLQotYm9vbCBET01Ub2tlbkxpc3Q6OmNvbnRh
aW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAot
ewotICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgcmV0dXJuIGNvbnRhaW5zSW50ZXJuYWwodG9rZW4pOwotfQotCi1ib29sIERPTVRv
a2VuTGlzdDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25z
dAorU3RyaW5nIERPTVRva2VuTGlzdDo6YWRkVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1
dCwgY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKIHsKLSAgICByZXR1cm4gbV9lbGVtZW50LT5o
YXNDbGFzcygpICYmIGNsYXNzTmFtZXMoKS5jb250YWlucyh0b2tlbik7Ci19CisgICAgaWYgKGlu
cHV0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRva2VuOwogCi12b2lkIERPTVRva2VuTGlz
dDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewot
ICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQotICAgICAgICByZXR1cm47Ci0gICAg
YWRkSW50ZXJuYWwodG9rZW4pOworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWls
ZGVyLmFwcGVuZChpbnB1dCk7CisgICAgaWYgKGlucHV0W2lucHV0Lmxlbmd0aCgpLTFdICE9ICcg
JykKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICBidWlsZGVyLmFwcGVuZCh0b2tl
bik7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAotdm9pZCBET01Ub2tlbkxp
c3Q6OmFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0CitTdHJpbmcg
RE9NVG9rZW5MaXN0OjpyZW1vdmVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIGlucHV0LCBjb25z
dCBBdG9taWNTdHJpbmcmIHRva2VuKQogewotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgb2xkQ2xh
c3NOYW1lKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpKTsKLSAgICBpZiAo
b2xkQ2xhc3NOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUo
Y2xhc3NBdHRyLCB0b2tlbik7Ci0gICAgZWxzZSBpZiAoIWNvbnRhaW5zSW50ZXJuYWwodG9rZW4p
KSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICAgICAgYnVpbGRlci5hcHBl
bmQob2xkQ2xhc3NOYW1lKTsKLSAgICAgICAgaWYgKG9sZENsYXNzTmFtZVtvbGRDbGFzc05hbWUu
bGVuZ3RoKCkgLSAxXSAhPSAnICcpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwot
ICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tlbik7Ci0gICAgICAgIG1fZWxlbWVudC0+c2V0QXR0
cmlidXRlKGNsYXNzQXR0ciwgYnVpbGRlci50b1N0cmluZygpKTsKLSAgICB9Ci19Ci0KLXZvaWQg
RE9NVG9rZW5MaXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCi17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCi0gICAgICAg
IHJldHVybjsKLSAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7Ci19Ci0KLXZvaWQgRE9NVG9rZW5M
aXN0OjpyZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAotewot
ICAgIC8vIENoZWNrIHVzaW5nIGNvbnRhaW5zIGZpcnN0IHNpbmNlIGl0IHVzZXMgQXRvbWljU3Ry
aW5nIGNvbXBhcmlzb25zIGluc3RlYWQKLSAgICAvLyBvZiBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVy
IHRlc3RpbmcuCi0gICAgaWYgKCFjb250YWluc0ludGVybmFsKHRva2VuKSkKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgLy8gQWxnb3JpdGhtIGRlZmluZWQgYXQgaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLW1pY3Jvc3ludGF4
ZXMuaHRtbCNyZW1vdmUtYS10b2tlbi1mcm9tLWEtc3RyaW5nCiAKLSAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGlucHV0ID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cik7CiAg
ICAgdW5zaWduZWQgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGgoKTsKICAgICBWZWN0b3I8VUNo
YXI+IG91dHB1dDsgLy8gMwogICAgIG91dHB1dC5yZXNlcnZlQ2FwYWNpdHkoaW5wdXRMZW5ndGgp
OwpAQCAtMTcwLDM5ICsxMDIsNyBAQCB2b2lkIERPTVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJuYWwo
Y29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKICAgICB9CiAKICAgICBvdXRwdXQuc2hy
aW5rVG9GaXQoKTsKLSAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIFN0cmlu
Zzo6YWRvcHQob3V0cHV0KSk7Ci19Ci0KLWJvb2wgRE9NVG9rZW5MaXN0Ojp0b2dnbGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCF2YWxp
ZGF0ZVRva2VuKHRva2VuLCBlYykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChj
b250YWluc0ludGVybmFsKHRva2VuKSkgewotICAgICAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgYWRkSW50ZXJuYWwodG9rZW4pOwot
ICAgIHJldHVybiB0cnVlOwotfQotCi1TdHJpbmcgRE9NVG9rZW5MaXN0Ojp0b1N0cmluZygpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIp
OwotfQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVzZXQoY29uc3QgU3RyaW5nJiBuZXdDbGFzc05h
bWUpCi17Ci0gICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmlzTnVsbCgpKQotICAg
ICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldChuZXdDbGFzc05hbWUsIGZhbHNlKTsK
LX0KLQotY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgRE9NVG9rZW5MaXN0OjpjbGFzc05hbWVzKCkg
Y29uc3QKLXsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5oYXNDbGFzcygpKTsKLSAgICBpZiAoIW1f
Y2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBtX2NsYXNz
TmFtZXNGb3JRdWlya3NNb2RlOwotICAgIHJldHVybiBtX2VsZW1lbnQtPmF0dHJpYnV0ZU1hcCgp
LT5jbGFzc05hbWVzKCk7CisgICAgcmV0dXJuIFN0cmluZzo6YWRvcHQob3V0cHV0KTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5oIGIvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCmluZGV4IGZhZDY5Y2E4Yjk1OTVl
MjE3NjkyZDEwMjRiNTBmYmI4NjA2NjNkNTMuLjVkZjJlZGUwNTg2NzMzYWEzYWM3ZmE3NWNhYzMw
ZmI4YzFkYzNkYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAorKysg
Yi9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDkgQEAKICNkZWZpbmUgRE9NVG9r
ZW5MaXN0X2gKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJTcGFjZVNw
bGl0U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsMzcgKzM2
LDI1IEBAIGNsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIERPTVRva2VuTGlzdCA6IHB1YmxpYyBOb25j
b3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RE9NVG9rZW5MaXN0PiBj
cmVhdGUoRWxlbWVudCogZWxlbWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgRE9NVG9rZW5MaXN0KGVsZW1lbnQpKTsKLSAgICB9CisgICAgdmlydHVhbCB+RE9NVG9rZW5M
aXN0KCkge307CiAKLSAgICB2b2lkIHJlZigpOwotICAgIHZvaWQgZGVyZWYoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVmKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpID0gMDsKIAotICAg
IHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwotICAgIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVu
c2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29s
IGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmco
KSBjb25zdCA9IDA7CiAKLSAgICB2b2lkIHJlc2V0KGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1
YWwgRWxlbWVudCogZWxlbWVudCgpIHsgcmV0dXJuIDA7IH0KIAotICAgIEVsZW1lbnQqIGVsZW1l
bnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KLQotcHJpdmF0ZToKLSAgICBET01Ub2tlbkxpc3Qo
RWxlbWVudCopOwotCi0gICAgdm9pZCBhZGRJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBj
b25zdDsKLSAgICBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29u
c3Q7Ci0gICAgdm9pZCByZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsK
LQotICAgIGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFtZXMoKSBjb25zdDsKLQotICAg
IEVsZW1lbnQqIG1fZWxlbWVudDsKLSAgICBTcGFjZVNwbGl0U3RyaW5nIG1fY2xhc3NOYW1lc0Zv
clF1aXJrc01vZGU7Citwcm90ZWN0ZWQ6CisgICAgc3RhdGljIGJvb2wgdmFsaWRhdGVUb2tlbihj
b25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFN0cmluZyBh
ZGRUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICBz
dGF0aWMgU3RyaW5nIHJlbW92ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21p
Y1N0cmluZyYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRl
eCBkNzU2Y2NlNDk1NzA3Mjc3MDRkNDg1MjZlNjU0MDA4NjA0NWE1MmMyLi5kYjYzZTA3ZDUwNGQ2
ZTUyNGE4NzRkNmRiZThjN2Y3MTYyNDcxY2I0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRE9NQXBwbGljYXRp
b25DYWNoZS5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIkRPTVNldHRh
YmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkRP
TVRpbWVyLmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDBh
ZTEwNjkyNzU2YmVkNTY4NDlhMTA1NWUwZTlhN2QyNDAzMDI1MzEuLmI3YTQyNjAxN2RkYTA1OTg5
ZTlkNjJiMmE1Y2EyNjc4NTc1MzBmYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0zNzgsNiArMzc4LDcg
QEAgbW9kdWxlIHdpbmRvdyB7CiAvLyAgICAgICAgYXR0cmlidXRlIERPTUltcGxlbWVudGF0aW9u
TGlzdENvbnN0cnVjdG9yIERPTUltcGxlbWVudGF0aW9uTGlzdDsKIC8vICAgICAgICBhdHRyaWJ1
dGUgRE9NSW1wbGVtZW50YXRpb25Tb3VyY2VDb25zdHJ1Y3RvciBET01JbXBsZW1lbnRhdGlvblNv
dXJjZTsKICAgICAgICAgYXR0cmlidXRlIERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3IgRE9N
SW1wbGVtZW50YXRpb247CisgICAgICAgIGF0dHJpYnV0ZSBET01TZXR0YWJsZVRva2VuTGlzdENv
bnN0cnVjdG9yIERPTVNldHRhYmxlVG9rZW5MaXN0OwogICAgICAgICBhdHRyaWJ1dGUgRE9NVG9r
ZW5MaXN0Q29uc3RydWN0b3IgRE9NVG9rZW5MaXN0OwogICAgICAgICBhdHRyaWJ1dGUgRG9jdW1l
bnRGcmFnbWVudENvbnN0cnVjdG9yIERvY3VtZW50RnJhZ21lbnQ7CiAgICAgICAgIGF0dHJpYnV0
ZSBEb2N1bWVudENvbnN0cnVjdG9yIERvY3VtZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71521</attachid>
            <date>2010-10-21 20:42:44 -0700</date>
            <delta_ts>2010-10-25 19:30:20 -0700</delta_ts>
            <desc>Patch V4</desc>
            <filename>bug-47810-20101022124242.patch</filename>
            <type>text/plain</type>
            <size>75255</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMTI3NzZmNDNlNGZmZTlkNDE2OTg0OTAyZDJhMDU0MDRlMjBjZWU3Li4zYmJmZDhm
YzU5ZDA4Njk3ODJhNmRhNzI1MDFmZjZkNzVhMjY0YzZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTAtMjEgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBE
T01TZXR0YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc4MTAKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OiBV
cGRhdGVkIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtMi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0
YXRpb25zLgorICAgICAgICAqIGZhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50
eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorCiAyMDEwLTEwLTIxICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQ7IHJlYmFzZWxpbmUgZm9yIHI3
MDI0MC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4IDhkNGE0MGRiYzlkNWU2M2ExZDAxMjcyY2Mx
M2YwYmEzZTNlZTZmMWUuLjYwNWEzYjhjODQzNjNhMzA2MjdkOGM4Yjk1NjVmYmVjMDhjM2Y5Njcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGll
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1w
cm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNTU1LDYgKzU1NSwxNCBAQCB3aW5kb3cuRE9NSW1w
bGVtZW50YXRpb24ucHJvdG90eXBlLmhhc0ZlYXR1cmUgW2Z1bmN0aW9uXQogd2luZG93LkRPTVBh
cnNlciBbb2JqZWN0IERPTVBhcnNlckNvbnN0cnVjdG9yXQogd2luZG93LkRPTVBhcnNlci5wcm90
b3R5cGUgW29iamVjdCBET01QYXJzZXJQcm90b3R5cGVdCiB3aW5kb3cuRE9NUGFyc2VyLnByb3Rv
dHlwZS5wYXJzZUZyb21TdHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9rZW5M
aXN0IFtvYmplY3QgRE9NU2V0dGFibGVUb2tlbkxpc3RDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5ET01T
ZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUgW29iamVjdCBET01TZXR0YWJsZVRva2VuTGlzdFBy
b3RvdHlwZV0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUuYWRkIFtmdW5j
dGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUuY29udGFpbnMgW2Z1
bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9rZW5MaXN0LnByb3RvdHlwZS5pdGVtIFtmdW5j
dGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUucmVtb3ZlIFtmdW5j
dGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUudG9TdHJpbmcgW2Z1
bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9rZW5MaXN0LnByb3RvdHlwZS50b2dnbGUgW2Z1
bmN0aW9uXQogd2luZG93LkRPTVN0cmluZ0xpc3QgW29iamVjdCBET01TdHJpbmdMaXN0Q29uc3Ry
dWN0b3JdCiB3aW5kb3cuRE9NU3RyaW5nTGlzdC5wcm90b3R5cGUgW29iamVjdCBET01TdHJpbmdM
aXN0UHJvdG90eXBlXQogd2luZG93LkRPTVN0cmluZ0xpc3QucHJvdG90eXBlLmNvbnRhaW5zIFtm
dW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKaW5kZXggYmJi
ZjRmNzQ5YjUwYmE3ZjA5YjFkMGZkYTQ2NWUyODZlMTExYWE0NS4uZmI1MTgwMWNlMzUxMTcyZmQ4
M2IyYjI2MmQyMGYxYTJhMTRhMmRkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBl
Y3RlZC50eHQKQEAgLTM4LDYgKzM4LDcgQEAgUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csICdDb3VudGVyJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9m
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NRXhjZXB0aW9uJykg
aXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
d2luZG93LCAnRE9NSW1wbGVtZW50YXRpb24nKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01QYXJzZXInKSBpcyAnb2Jq
ZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdET01TZXR0YWJsZVRva2VuTGlzdCcpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0RPTVN0cmluZ0xpc3QnKSBpcyAnb2Jq
ZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cs
ICdET01TdHJpbmdNYXAnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01Ub2tlbkxpc3QnKSBpcyAnb2JqZWN0JwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTIt
ZXhwZWN0ZWQudHh0CmluZGV4IGNiMzMzODc0NTFhYWRkM2ZjMzVkZjQyNjUwZThkZTk3YTYxOTU0
MGEuLjZkODY2MDg3MzRlYWI5NjU2MjM5NGNhYjQ4ODQ4OGE4MjJjM2FmZmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBl
Y3RlZC50eHQKQEAgLTIyNiw2ICsyMjYsNyBAQCBOZXZlciBmb3VuZCBDYW52YXNHcmFkaWVudAog
TmV2ZXIgZm91bmQgQ2hhcmFjdGVyRGF0YQogTmV2ZXIgZm91bmQgQ2xpcGJvYXJkCiBOZXZlciBm
b3VuZCBET01QYXJzZXIKK05ldmVyIGZvdW5kIERPTVNldHRhYmxlVG9rZW5MaXN0CiBOZXZlciBm
b3VuZCBET01TdHJpbmdMaXN0CiBOZXZlciBmb3VuZCBEb2N1bWVudAogTmV2ZXIgZm91bmQgRG9j
dW1lbnRGcmFnbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBl
LWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlw
ZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5kZXggZmE2NDc2YWRkYTY4MjFkNzdiZmIzYzIy
NjBmZDcxM2M0NWY4MWQzZi4uNTNjNDMzOTZlNjU3Mzg2NmM5ZWVkNDM5ZTRiZjFlYWQ5MzU4OTNi
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtZXhwZWN0ZWQudHh0CkBAIC03Myw2ICs3Myw4IEBAIFBBU1MgaW5uZXIuRE9NSW1wbGVt
ZW50YXRpb24uaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkRPTUltcGxlbWVudGF0aW9uLmNv
bnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01QYXJzZXIuaXNJbm5lciBp
cyB0cnVlCiBQQVNTIGlubmVyLkRPTVBhcnNlci5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUK
K1BBU1MgaW5uZXIuRE9NU2V0dGFibGVUb2tlbkxpc3QuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlu
bmVyLkRPTVNldHRhYmxlVG9rZW5MaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFT
UyBpbm5lci5ET01TdHJpbmdMaXN0LmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJp
bmdMaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdN
YXAuaXNJbm5lciBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwt
Y29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRleCAyMTQzYjg2ZDM1M2I3OWRhZTRhODkxMzU3
YmIyNGQ2MmI1NDE3OGY5Li43MzcxM2JlMWRjOWJhMjMwNTYyYThmZTJiNGFiNzdlNjNiNTNiYjQ0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1l
eHBlY3RlZC50eHQKQEAgLTM2LDYgKzM2LDcgQEAgUEFTUyBDb3VudGVyLnRvU3RyaW5nKCkgaXMg
J1tvYmplY3QgQ291bnRlckNvbnN0cnVjdG9yXScKIFBBU1MgRE9NRXhjZXB0aW9uLnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBET01JbXBsZW1l
bnRhdGlvbi50b1N0cmluZygpIGlzICdbb2JqZWN0IERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0
b3JdJwogUEFTUyBET01QYXJzZXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01QYXJzZXJDb25z
dHJ1Y3Rvcl0nCitQQVNTIERPTVNldHRhYmxlVG9rZW5MaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgRE9NU2V0dGFibGVUb2tlbkxpc3RDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTVN0cmluZ0xpc3Qu
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01TdHJpbmdMaXN0Q29uc3RydWN0b3JdJwogUEFTUyBE
T01TdHJpbmdNYXAudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01TdHJpbmdNYXBDb25zdHJ1Y3Rv
cl0nCiBQQVNTIERPTVRva2VuTGlzdC50b1N0cmluZygpIGlzICdbb2JqZWN0IERPTVRva2VuTGlz
dENvbnN0cnVjdG9yXScKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2Jp
bmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXgg
YTkyN2YxMWQ2Nzk3NjA1YTIzMDNlN2Y2MGZiMGJiYjQxNjNjOTEwZS4uN2E4NTBhM2FkYWIwMTkz
MTIwOGE0MzFjYzFhM2JlMzZiZDExY2FhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRl
cml2ZWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmlu
ZGluZ3MubWsKQEAgLTE1OSw2ICsxNTksNyBAQCBHRU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRl
cykvaHRtbC9KU0Jsb2IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTQmxvYkJ1aWxk
ZXIuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRE9NRm9ybURhdGEuaCBcCisgICAg
JChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAgICAgJChp
bnRlcm1lZGlhdGVzKS9odG1sL0pTRE9NVG9rZW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRl
cykvaHRtbC9KU0RhdGFHcmlkQ29sdW1uLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9K
U0RhdGFHcmlkQ29sdW1uTGlzdC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJp
dmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1r
CmluZGV4IGE3MzE1N2Q3MWFjZGViZmQ3YzI4NjE2YWE2YTFkZDkzMWQ4YTI0NmUuLjRlZWRlNGM3
NjRlMzE3ZWRlODUyOWFhZTdiZjE3ZDAwOThjNzE3MjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5k
cm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQu
djhiaW5kaW5ncy5tawpAQCAtMTQxLDYgKzE0MSw3IEBAIEdFTiA6PSBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOEJsb2IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5n
cy9WOEJsb2JCdWlsZGVyLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhET01U
b2tlbkxpc3QuaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERPTVNldHRhYmxl
VG9rZW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhEYXRhR3JpZENv
bHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RGF0YUdyaWRDb2x1bW5M
aXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhGaWxlLmggXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpz
Y2JpbmRpbmdzLm1rCmluZGV4IDMyODgwNTljMDYzOWU0NDFlZjBhMjM0MWVkZWM0Y2JhNzU5YThl
OGYuLjcyZWI1MzM2OTkzYzk2NzU0NDQ5OGIyZmNhNDhlNDgyNzAyN2ZlYjggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNj
YmluZGluZ3MubWsKQEAgLTgzLDYgKzgzLDcgQEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3Vz
dG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwIFwKKwliaW5kaW5n
cy9qcy9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01Ub2tl
bkxpc3QuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIFwKIAliaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lk
Lm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDhjY2NjOTY2NDNmZDdhOWQ4ZjVmYTNjYTdi
YzE1NmVhOGJkZTJmMTcuLjA3MDNlZGQ3MWU4Y2FjY2M3ODU5MmNjZjBkMTlmNGI3ZmIxOGQwOTYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsK
QEAgLTI2Niw2ICsyNjYsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMp
IFwKIAlodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcCBcCiAJaHRtbC9CdXR0b25JbnB1dFR5cGUu
Y3BwIFwKIAlodG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBcCisJaHRtbC9DbGFzc0xpc3QuY3Bw
IFwKIAlodG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAgXAogCWh0bWwvcGFyc2VyL0NTU1ByZWxvYWRT
Y2FubmVyLmNwcCBcCiAJaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNDJlMzQ0
YThmODI2NjYwMzE1YmU4OTRlNWQ1ZDBlMDAwMDMyMjhmOS4uM2Q4NzkxOTM3ODk4OGQwYmMwZjI2
NGNkNDAzYjBlNjUxYjU1YWE0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDcsNiArMjA3LDcgQEAgU0VUKFdlYkNv
cmVfSURMX0ZJTEVTCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5pZGwKICAgICBodG1sL0RhdGFH
cmlkQ29sdW1uTGlzdC5pZGwKICAgICBodG1sL0RPTUZvcm1EYXRhLmlkbAorICAgIGh0bWwvRE9N
U2V0dGFibGVUb2tlbkxpc3QuaWRsCiAgICAgaHRtbC9ET01Ub2tlbkxpc3QuaWRsCiAgICAgaHRt
bC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwKICAgICBodG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbApA
QCAtOTUzLDEwICs5NTQsMTIgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGh0bWwvQmFzZVRl
eHRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9D
aGVja2JveElucHV0VHlwZS5jcHAKKyAgICBodG1sL0NsYXNzTGlzdC5jcHAKICAgICBodG1sL0Nv
bGxlY3Rpb25DYWNoZS5jcHAKICAgICBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcAogICAgIGh0bWwv
RE9NRGF0YUdyaWREYXRhU291cmNlLmNwcAogICAgIGh0bWwvRE9NRm9ybURhdGEuY3BwCisgICAg
aHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAKICAgICBodG1sL0RPTVRva2VuTGlzdC5jcHAK
ICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmNwcAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5MaXN0
LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA0NTA2Zjg0NTU5NmQzNzg0M2EyODViYzQ2OTEzNjgwOGJkZTA5OWEyLi4wN2FkMDdjYTBk
OWE3MTI5OGM5YzU2N2EzMDc5MDYyNmYxNTQwY2E5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEwLTEwLTIx
ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0hUTUw1XSBBZGQgRE9NU2V0dGFibGVU
b2tlbkxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ3ODEwCisKKyAgICAgICAgQWRkcyBET01TZXR0YWJsZVRva2VuTGlzdCBpbnRlcmZhY2UgdG8g
c3VwcG9ydCA8b3V0cHV0PiBlbGVtZW50LgorICAgICAgICBUaGUgRE9NVG9rZW5MaXN0IGludGVy
ZmFjZSB3YXMgcmVmYWN0b3JlZCBzaW5jZSBpdHMgd2FzIHRpZ2h0bHkgY291cGxlZAorICAgICAg
ICB3aXRoIEhUTUxFbGVtZW50LmNsYXNzTGlzdCBwcm9wZXJ0eS4KKworICAgICAgICAqIEFuZHJv
aWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazogQWRkZWQgSlNET01TZXR0YWJsZVRva2VuTGlzdC5o
IGZpbGUuCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWs6IEFkZGVkIFY4
RE9NU2V0dGFibGVUb2tlbkxpc3QuaCBmaWxlLgorICAgICAgICAqIEFuZHJvaWQuanNjYmluZGlu
Z3MubWs6IEFkZGVkIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGZpbGUuCisgICAgICAgICog
QW5kcm9pZC5tazogQWRkZWQgQ2xhc3NMaXN0LmNwcCBmaWxlLgorICAgICAgICAqIENNYWtlTGlz
dHMudHh0OiBBZGRlZCBET01TZXR0YWJsZVRva2VuTGlzdC57Y3BwLGlkbH0gYW5kIENsYXNzTGlz
dC5jcHAgZmlsZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOiBBZGRlZCBKU0RPTVNl
dHRhYmxlVG9rZW5MaXN0LmNwcCBmaWxlLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
IEFkZGVkIERPTVNldHRhYmxlVG9rZW5MaXN0IGVudHJ5LgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOiBBZGRlZCBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LntoLGNwcH0gYW5kIENsYXNzTGlzdC57
aCxjcHB9IGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgRE9NU2V0dGFibGVU
b2tlbkxpc3Que2gsY3BwLGlkbH0sIFY4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwIGFu
ZCBDbGFzc0xpc3Que2gsY3BwfSBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnByaTogQWRkZWQg
RE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsIGZpbGUuCisgICAgICAgICogV2ViQ29yZS5wcm86IEFk
ZGVkIFY4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwLCBDbGFzc0xpc3Que2gsY3BwfSBh
bmQgRE9NU2V0dGFibGVUb2tlbkxpc3Que2gsY3BwfSBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajogQWRkZWQgSlNET01TZXR0YWJsZVRva2VuTGlzdC57aCxj
cHB9LCBDbGFzc0xpc3Que2gsY3BwfSBhbmQgRE9NU2V0dGFibGVUb2tlbkxpc3Que2gsY3BwfSBm
aWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVk
IENsYXNzTGlzdC57aCxjcHB9LCBET01TZXR0YWJsZXRva2VuTGlzdC57aCxjcHB9IGFuZCBKU0RP
TVNldHRhYmxlVG9rZW5MaXN0LntoLGNwcH0KKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dO
VW1ha2VmaWxlLmFtOiBBZGRlZCBXZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdC57aCxjcHB9
IGFuZCBXZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdFByaXZhdGUuY3BwIGZpbGVzLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBNb2RpZmllZCBJbmRl
eEdldHRlclJldHVybnNTdHJpbmdzKCkgcmV0dXJucyAxIGZvciBET01TZXR0YWJsZVRva2VuTGlz
dC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TZXR0YWJsZVRva2VuTGlzdEN1
c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VjhET01TZXR0YWJsZVRva2VuTGlz
dDo6aW5kZXhlZFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6IFJl
cGxhY2VkIERPTVRva2VuTGlzdCB0byBDbGFzc0xpc3QuCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpjbGFzc0xpc3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDogZGl0dG8u
CisgICAgICAgICogZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwOiBBZGRlZCBhZGQoKSBhbmQgcmVt
b3ZlKCkgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZ0RhdGE6
OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5nRGF0YTo6cmVtb3ZlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmc6OmFkZCk6CisgICAgICAgIChXZWJD
b3JlOjpTcGFjZVNwbGl0U3RyaW5nOjpyZW1vdmUpOgorICAgICAgICAqIGRvbS9TcGFjZVNwbGl0
U3RyaW5nLmg6IEFkZGVkIGFkZCgpIGFuZCByZW1vdmUoKSBmdW5jdGlvbnMuCisgICAgICAgICog
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwOiBSZXBsYWNlZCBET01Ub2tlbkxpc3QgdG8gQ2xhc3NMaXN0
LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6Y2xhc3NBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5oOiBkaXR0by4KKyAgICAgICAgKiBodG1s
L0NsYXNzTGlzdC5jcHA6IEFkZGVkLCBtb3N0bHkgZnJvbSBvcmlnaW5hbCBET01Ub2tlbkxpc3Qu
Y3BwLgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpDbGFzc0xpc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2xhc3NMaXN0OjpyZWYpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0Ojpk
ZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6Omxlbmd0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpDbGFzc0xpc3Q6Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0Ojpj
b250YWlucyk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmNvbnRhaW5zSW50ZXJuYWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2xhc3NMaXN0OjphZGRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnJl
bW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnJlbW92ZUludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6dG9nZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkNs
YXNzTGlzdDo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpyZXNldCk6
CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmNsYXNzTmFtZXMpOgorICAgICAgICAqIGh0
bWwvQ2xhc3NMaXN0Lmg6IEFkZGVkLCBtb3N0bHkgZnJvbSBvcmlnaW5hbCBET01Ub2tlbkxpc3Qu
aC4KKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNsYXNzTGlzdDo6ZWxlbWVudCk6CisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRva2Vu
TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6
OkRPTVNldHRhYmxlVG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9r
ZW5MaXN0Ojp+RE9NU2V0dGFibGVUb2tlbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0
dGFibGVUb2tlbkxpc3Q6Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tl
bkxpc3Q6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0
OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OmFkZEludGVy
bmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpyZW1vdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJlbW92ZUludGVybmFsKToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojp0b2dnbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnNldFZhbHVlKToKKyAgICAgICAgKiBo
dG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9N
U2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJs
ZVRva2VuTGlzdDo6cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0
OjpkZXJlZik6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6bGVuZ3Ro
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojp0b1N0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6dmFsdWUpOgorICAgICAgICAq
IGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0RP
TVRva2VuTGlzdC5jcHA6IFJlZmFjdG9yZWQgdG8gYmUgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIGZv
ciBib3RoIG9mIENsYXNzTGlzdCBhbmQgRE9NU2V0dGFibGVUb2tlbkxpc3QuCisgICAgICAgIChX
ZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4pOiBDaGFuZ2VkIHRvIGJlIGEgc3Rh
dGljIG1lbWJlciBmdW5jdGlvbiBvZiBET01Ub2tlbkxpc3QuCisgICAgICAgIChXZWJDb3JlOjpE
T01Ub2tlbkxpc3Q6OmFkZFRva2VuKTogQWRkZWQsIG1vc3RseSBmcm9tIG9yaWdpbmFsIERPTVRv
a2VuTGlzdDo6YWRkSW50ZXJuYWwoKS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6
cmVtb3ZlVG9rZW4pOiBBZGRlZCwgbW9zdGx5IGZyb20gb3JpZ2luYWwgRE9NVG9rZW5MaXN0Ojpy
ZW1vdmVJbnRlcm5hbCgpLgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5MaXN0Lmg6IFJlZmFjdG9y
ZWQgdG8gYmUgYW4gYWJzdHJhY3QgaW50ZXJmYWNlIGZvciBib3RoIG9mIENsYXNzTGlzdCBhbmQg
RE9NU2V0dGFibGVUb2tlbkxpc3QuCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6On5E
T01Ub2tlbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjplbGVtZW50KToK
KyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6IEFkZGVkIGFuIGVudHJ5IGZvciBET01TZXR0
YWJsZVRva2VuTGlzdC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6IGRpdHRvLgorCiAy
MDEwLTEwLTIxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDAxZjUwMjM4Zjc3M2QzMDFl
YjBkYTRjYjA5OTkwNjRmOTdkODQ0ZmMuLjgwYzEzMDQyM2Y2NjYwZTgzYmU2Y2JlYmI2ZWQzZjM1
OTBmMDc2MTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSAiSlNE
T01QbHVnaW4uY3BwIgogI2luY2x1ZGUgIkpTRE9NUGx1Z2luQXJyYXkuY3BwIgogI2luY2x1ZGUg
IkpTRE9NU2VsZWN0aW9uLmNwcCIKKyNpbmNsdWRlICJKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNw
cCIKICNpbmNsdWRlICJKU0RPTVN0cmluZ0xpc3QuY3BwIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5n
TWFwLmNwcCIKICNpbmNsdWRlICJKU0RPTVRva2VuTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggMzQyYmI3YjVhNjliZWFhNWZhOTU4ZTQ5MzZjNmQ3OWVmODBkZWZkNi4uNGU3MzJkZTVhODA2
ZjNhMzJkNTk4ODE5NTI2YzRlOWZhMmUzN2U5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI1LDYg
KzEyNSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIERPTVNlbGVjdGlvbiBcCiAgICAgRE9NU3Ry
aW5nTGlzdCBcCiAgICAgRE9NU3RyaW5nTWFwIFwKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCBc
CiAgICAgRE9NVG9rZW5MaXN0IFwKICAgICBET01XaW5kb3cgXAogICAgIERhdGFiYXNlIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IDI2YjY5MmQzZWM3MzYzNjJhZmUyNTQ1OTY3ODNhZWE3OGJiOGMzNjAuLmMxOTI0NGNl
NjZiY2I5NTIyMTMyMDQxNDZkZGYxN2U2YzdkMjBhYTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjIxLDYgKzIyMSw4
IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RPTVBsdWdpbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU2VsZWN0aW9uLmNw
cCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVNlbGVjdGlvbi5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RPTVN0cmluZ0xpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
RE9NU3RyaW5nTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU3RyaW5nTWFw
LmNwcCBcCkBAIC0xNDcyLDEwICsxNDc0LDE0IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2Vi
Q29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0LmggXAogCVdlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0
eWxlLmggXAorCVdlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAorCVdlYkNv
cmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmNwcCBcCiAJV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwv
Q2hlY2tib3hJbnB1dFR5cGUuY3BwIFwKIAlXZWJDb3JlL2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUu
aCBcCisJV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAgXAorCVdlYkNvcmUvaHRtbC9DbGFzc0xp
c3QuaCBcCiAJV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAgXAogCVdlYkNvcmUvaHRt
bC9Db2xsZWN0aW9uQ2FjaGUuaCBcCiAJV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmggXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCBmYWU4MTdhNWNkOTdhODEzOTI1M2Y4ZmQxNGY0MWIxZGYxNWE2NjkzLi4xMjRlMjk2ODI5
YzQxYzU4ZTNlZmVjMGZjOGIwYjY2OWJkODk3MGE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTE3LDYgKzExNyw3IEBACiAg
ICAgICAgICAgICAnZmlsZWFwaS9NZXRhZGF0YS5pZGwnLAogICAgICAgICAgICAgJ2ZpbGVhcGkv
TWV0YWRhdGFDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuaWRs
JywKKyAgICAgICAgICAgICdodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9ET01Ub2tlbkxpc3QuaWRsJywKICAgICAgICAgICAgICdodG1sL0RhdGFHcmlk
Q29sdW1uLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaWRsJywK
QEAgLTc3Nyw2ICs3NzgsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERp
cmVjdG9yeUVudHJ5U3luY0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOERvY3VtZW50TG9jYXRpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOERPTVNldHRhYmxlVG9rZW5MaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcCcsCkBA
IC0xNTUxLDYgKzE1NTMsOCBAQAogICAgICAgICAgICAgJ2h0bWwvQnV0dG9uSW5wdXRUeXBlLmgn
LAogICAgICAgICAgICAgJ2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAg
ICdodG1sL0NoZWNrYm94SW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0bWwvQ2xhc3NMaXN0
LmNwcCcsCisgICAgICAgICAgICAnaHRtbC9DbGFzc0xpc3QuaCcsCiAgICAgICAgICAgICAnaHRt
bC9Db2xsZWN0aW9uQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdodG1sL0NvbGxlY3Rpb25DYWNo
ZS5oJywKICAgICAgICAgICAgICdodG1sL0NvbGxlY3Rpb25UeXBlLmgnLApAQCAtMTU2MCw2ICsx
NTY0LDggQEAKICAgICAgICAgICAgICdodG1sL0RPTURhdGFHcmlkRGF0YVNvdXJjZS5oJywKICAg
ICAgICAgICAgICdodG1sL0RPTUZvcm1EYXRhLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9ET01G
b3JtRGF0YS5oJywKKyAgICAgICAgICAgICdodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCcs
CisgICAgICAgICAgICAnaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oJywKICAgICAgICAgICAg
ICdodG1sL0RPTVRva2VuTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvRE9NVG9rZW5MaXN0
LmgnLAogICAgICAgICAgICAgJ2h0bWwvRGF0YUdyaWRDb2x1bW4uY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDA1MWY0ZDlj
MjY1ZDNmNjExYTIwMzc3NjRkMjE5YmI3MDZmY2JiNzUuLjNiMzhhNDU2NDgyNThhNTc0MzNhZDhj
ZjcwMzViYTc2MzE2NzMzM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtMjA3LDYgKzIwNyw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5pZGwgXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5M
aXN0LmlkbCBcCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5pZGwgXAorICAgIGh0bWwvRE9NU2V0dGFi
bGVUb2tlbkxpc3QuaWRsIFwKICAgICBodG1sL0RPTVRva2VuTGlzdC5pZGwgXAogICAgIGh0bWwv
SFRNTEFsbENvbGxlY3Rpb24uaWRsIFwKICAgICBodG1sL0hUTUxBdWRpb0VsZW1lbnQuaWRsIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmlu
ZGV4IGI2YWM0YWVlOGZhNmIyOGIxZTA4M2I5NmExOTQ3ZTVjYzVmY2NiZTMuLjI4ZDExNDIwYmYw
YTUzMmQyOWI3NGVhZjVhOGI4NDU0MzI3ZjVkM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDAzLDYgKzQwMyw3IEBAIHY4IHsK
ICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluc3BlY3RvckZyb250ZW5kSG9zdEN1
c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21FdmVudExpc3Rl
bmVyLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVNldHRhYmxlVG9rZW5M
aXN0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01h
cEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RD
dXN0b20uY3BwCiAKQEAgLTg0MywxMCArODQ0LDEyIEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwv
QmFzZVRleHRJbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL0J1dHRvbklucHV0VHlwZS5jcHAgXAog
ICAgIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3BwIFwKKyAgICBodG1sL0NsYXNzTGlzdC5jcHAg
XAogICAgIGh0bWwvQ29sbGVjdGlvbkNhY2hlLmNwcCBcCiAgICAgaHRtbC9Db2xvcklucHV0VHlw
ZS5jcHAgXAogICAgIGh0bWwvRE9NRGF0YUdyaWREYXRhU291cmNlLmNwcCBcCiAgICAgaHRtbC9E
T01Gb3JtRGF0YS5jcHAgXAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKICAg
ICBodG1sL0RPTVRva2VuTGlzdC5jcHAgXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW4uY3BwIFwK
ICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAgXApAQCAtMTc0OSwxMiArMTc1MiwxNCBA
QCBIRUFERVJTICs9IFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0Lmgg
XAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIFwKICAgICBodG1s
L2NhbnZhcy9DYW52YXNTdHlsZS5oIFwKKyAgICBodG1sL0NsYXNzTGlzdC5oIFwKICAgICBodG1s
L0NvbGxlY3Rpb25DYWNoZS5oIFwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmggXAogICAgIGh0
bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmggXAogICAgIGh0bWwvRGF0ZUNvbXBvbmVudHMuaCBcCiAg
ICAgaHRtbC9ET01EYXRhR3JpZERhdGFTb3VyY2UuaCBcCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5o
IFwKKyAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmggXAogICAgIGh0bWwvRE9NVG9rZW5M
aXN0LmggXAogICAgIGh0bWwvRm9ybURhdGFMaXN0LmggXAogICAgIGh0bWwvRlRQRGlyZWN0b3J5
RG9jdW1lbnQuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwZDlj
MjI0MTJmZDljOTkxNWE5MDhjZWZhZGFmNzJjZjhlNWQzNjY3Li5iODliMjJkOGQxNGYwMDAyMzhk
NGExZWNhZTVhOTJiYWI1YzA3M2MwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTM5NTksNiArMzk1OSw2MiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIg0KKwkJCQk+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0K
KwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlO
YW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQor
CQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0
cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01TdHJpbmdMaXN0
LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00ODEyMyw2ICs0ODE3
OSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXENsYXNzTGlzdC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXENsYXNzTGlzdC5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDb2xsZWN0aW9uQ2Fj
aGUuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTQ4Mjg3LDYgKzQ4
MzUxLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxET01TZXR0YWJsZVRva2Vu
TGlzdC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5caHRtbFxET01Ub2tlbkxpc3QuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDk4ZjkxNmQ1YTNjMWNk
NzYzZjViZWM3NTQxMThjZmI3YTI4ZjczYS4uODVmYjViMDBhZGNjMzY1YjU1MGM5Yzg0Mjc3NTA2
OTUwYjNlMGFiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTExMTUsNiArMTExNSwxMiBAQAogCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcxMTggLyogV2Vi
R0xMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDlGRkJGM0QxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCAqLzsgfTsKIAkJNDlGRkJG
NDAxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTggLyogV2Vi
R0xMYXllci5tbSAqLzsgfTsKIAkJNEE4Qzk2RUIwQkU2OTAzMjAwNEVFRkYwIC8qIFNlbGVjdGlv
bkNvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogU2VsZWN0aW9uQ29udHJvbGxlck1h
Yy5tbSAqLzsgfTsKKwkJNEFDQkMwQkUxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBCQzEy
NzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCAqLzsgfTsKKwkJNEFDQkMwQkYxMjcxM0NC
RDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNEFDQkMwQkQxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oICov
OyB9OworCQk0QUNCQzBDMzEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMw
QzAxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLzsgfTsKKwkJ
NEFDQkMwQzQxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBDMTEyNzEzQ0NB
MDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLzsgfTsKKwkJNEFDQkMwQ0ExMjcx
M0QwQTAwOTRGOUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQzgxMjcxM0QwQTAwOTRGOUIy
IC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovOyB9OworCQk0QUNCQzBDQjEyNzEzRDBB
MDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQzkxMjcxM0QwQTAwOTRGOUIyIC8qIEpT
RE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLzsgfTsKIAkJNEIyNzA4QzcwQUYxOUVFNDAwNjUxMjdG
IC8qIFBhc3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi87IH07CiAJ
CTRCMjcwOTgzMEFGMkU1RTAwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEIyNzA5ODEwQUYyRTVFMDAwNjUx
MjdGIC8qIFBhc3RlYm9hcmRNYWMubW0gKi87IH07CiAJCTRCMzA0M0M3MEFFMDM3MDMwMEE4MjY0
NyAvKiBTb3VuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEIzMDQzQzYwQUUwMzcwMzAwQTgyNjQ3IC8qIFNvdW5kLmggKi87IH07CkBAIC03MTgzLDYg
KzcxODksMTMgQEAKIAkJNDlGRkJGM0QxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xMYXllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OUZGQkYzRTExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXll
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkdMTGF5ZXIu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBOEM5NkVBMEJFNjkwMzIwMDRFRUZG
MCAvKiBTZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFNlbGVjdGlvbkNvbnRyb2xsZXJNYWMubW07IHBhdGggPSBtYWMvU2Vs
ZWN0aW9uQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEFD
QkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDbGFzc0xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsYXNzTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QUNCQzBDMDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxp
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QUNCQzBDMTEyNzEz
Q0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NU2V0dGFibGVUb2tlbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNEFDQkMwQzIxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5M
aXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBQ0JDMEM4MTI3MTNEMEEwMDk0RjlCMiAv
KiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0QUNCQzBDOTEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2Vu
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTVNldHRhYmxlVG9r
ZW5MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCMjcwOEM1MEFGMTlFRTQw
MDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhc3RlYm9hcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEIyNzA5ODEwQUYy
RTVFMDAwNjUxMjdGIC8qIFBhc3RlYm9hcmRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQYXN0ZWJvYXJkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0QjMwNDNDNjBBRTAzNzAzMDBBODI2NDcgLyogU291bmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNvdW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xNDU2MSw2ICsxNDU3NCw4IEBACiAJCQkJRjU1QjNEN0MxMjUxRjEyRDAwM0VGMjY5IC8q
IEJ1dHRvbklucHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDdEMTI1MUYxMkQwMDNFRjI2OSAvKiBD
aGVja2JveElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEN0UxMjUxRjEyRDAwM0VGMjY5IC8q
IENoZWNrYm94SW5wdXRUeXBlLmggKi8sCisJCQkJNEFDQkMwQkMxMjcxM0NCRDAwOTRGOUIyIC8q
IENsYXNzTGlzdC5jcHAgKi8sCisJCQkJNEFDQkMwQkQxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNz
TGlzdC5oICovLAogCQkJCTkzQzQ0MUVEMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2Fj
aGUuY3BwICovLAogCQkJCTkzQzQ0MUVFMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2Fj
aGUuaCAqLywKIAkJCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2MzQgLyogQ29sbGVjdGlvblR5cGUu
aCAqLywKQEAgLTE0NTg2LDYgKzE0NjAxLDkgQEAKIAkJCQkyRUQ2MDlCQTExNDVCMDcxMDBDODY4
NEUgLyogRE9NRm9ybURhdGEuY3BwICovLAogCQkJCTJFRDYwOUJCMTE0NUIwNzEwMEM4Njg0RSAv
KiBET01Gb3JtRGF0YS5oICovLAogCQkJCTJFMDg4OEMzMTE0ODgzQTkwMEFGNDI2NSAvKiBET01G
b3JtRGF0YS5pZGwgKi8sCisJCQkJNEFDQkMwQzAxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRh
YmxlVG9rZW5MaXN0LmNwcCAqLywKKwkJCQk0QUNCQzBDMTEyNzEzQ0NBMDA5NEY5QjIgLyogRE9N
U2V0dGFibGVUb2tlbkxpc3QuaCAqLywKKwkJCQk0QUNCQzBDMjEyNzEzQ0NBMDA5NEY5QjIgLyog
RE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsICovLAogCQkJCTc2RkMyQjA4MTIzNzBEQTAwMDZBOTkx
QSAvKiBET01Ub2tlbkxpc3QuY3BwICovLAogCQkJCTc2RkMyQjA5MTIzNzBEQTAwMDZBOTkxQSAv
KiBET01Ub2tlbkxpc3QuaCAqLywKIAkJCQk3NkZDMkIwQTEyMzcwREEwMDA2QTk5MUEgLyogRE9N
VG9rZW5MaXN0LmlkbCAqLywKQEAgLTE1MTM2LDYgKzE1MTU0LDggQEAKIAkJCQlCQzc3RDE2ODBG
RjE5RjU1MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuaCAqLywKIAkJCQkyRTA4ODhE
MjExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgKi8sCiAJCQkJMkUwODg4RDMx
MTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuaCAqLywKKwkJCQk0QUNCQzBDODEyNzEz
RDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8sCisJCQkJNEFDQkMw
QzkxMjcxM0QwQTAwOTRGOUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLywKIAkJCQk3
Njk0NTYzQTEyMTREOTdDMDAwN0NCQUUgLyogSlNET01Ub2tlbkxpc3QuY3BwICovLAogCQkJCTc2
OTQ1NjNCMTIxNEQ5N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5oICovLAogCQkJCTQ5RUVD
RUY0MTA1MDcwQzQwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJheS5jcHAgKi8sCkBAIC0xODQ0NSw2
ICsxODQ2NSw3IEBACiAJCQkJQTgxODcyMjAwOTc3RDNDMDAwNTgyNkQ5IC8qIENoaWxkTm9kZUxp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDgyMzUyMEFGOTJBNzkwMDA0RjA1NyAvKiBDaHJv
bWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDgyNDA4MEFGOTNBRUIwMDA0RjA1NyAvKiBDaHJv
bWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBQ0JDMEJGMTI3MTNDQkQwMDk0RjlCMiAv
KiBDbGFzc0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA0Qjc3MEQxMDk5OEYwMDY4MEQz
MiAvKiBDbGFzc05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MwNjU3RTBGM0NFMUI3
MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1ODEwRjND
RTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTE4NTgz
LDYgKzE4NjA0LDkgQEAKIAkJCQk5MzMwOURFMTA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlU2Vs
ZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5ODIwODI0NUU1OTAwMUU5
QUJDIC8qIERlcHJlY2F0ZWRQdHJMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTk2RDA4
MjQ1RTU5MDAxRTlBQkMgLyogRGVwcmVjYXRlZFB0ckxpc3RJbXBsLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwODFDREZCODEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRlZFNWR0FuaW1hdGVkUHJv
cGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4MUNERkI5MTI2RUNGREIwMEQyMTVDQSAvKiBE
ZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MDgxQ0RGQkExMjZFQ0ZEQjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmltYXRlZFRlbXBsYXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNl
TW90aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBEQzAy
QTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFB
NUIxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLApA
QCAtMTg4NzIsNiArMTg4OTYsNyBAQAogCQkJCTg1NUQzNThBMEFENzA3MzEwMDE5QUFDNyAvKiBE
T01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMEZDNEYwREJENzIwQjAwQjJGNjMw
IC8qIERPTVJHQkNvbG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUE4Njg1MEMz
MzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRBQ0JD
MEM0MTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBET01TdHJpbmdNYXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjUwMjVCMTAyQkE5MDEwMDY2RjM5QSAvKiBET01TdHls
ZU1lZGlhLmggaW4gSGVhZGVycyAqLywKQEAgLTE5NDcwLDYgKzE5NDk1LDcgQEAKIAkJCQlCMkMz
REE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZhbGxiYWNrTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJDM0RBNkEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRGYW1pbHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE4MEU2Q0YzMEExOTg5Q0EwMDdGQjhDNSAvKiBGb250RmFtaWx5VmFsdWUuaCBp
biBIZWFkZXJzICovLAorCQkJCUY3QTAzNEM0MTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUI1MzIwRDZCMTIyQTI0RTkwMDJEMTQ0MCAvKiBG
b250UGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0FDQ0U0MjBEQTI5ODBGMDA4
OUU2MDIgLyogRm9udFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTZC
MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250U2VsZWN0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMTk2
ODAsNiArMTk3MDYsNyBAQAogCQkJCTQ5RTkxMUM1MEVGODZENDcwMDlEMENBRiAvKiBJZGVudGl0
eVRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBDMDU0Q0QxMTE4QzhF
NDAwQ0UyNjM2IC8qIElETFBhcnNlci5wbSBpbiBIZWFkZXJzICovLAogCQkJCUMwQzA1NENFMTEx
OEM4RTQwMENFMjYzNiAvKiBJRExTdHJ1Y3R1cmUucG0gaW4gSGVhZGVycyAqLywKKwkJCQk4QUI0
QkM3NzEyNkZEQjcxMDBERUI3MjcgLyogSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVt
ZW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTcwMEIwNTM4MTQwMDJDRTY0RiAvKiBJ
bWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBMTBCOTIwQjM4MThCRDAwMDk5QUE0IC8qIElt
YWdlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E5NzkxNzEyMTVEMDU1MDA1QzQ4NUMg
LyogSW1hZ2VCdWZmZXJEYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTE5NzI1LDYgKzE5NzUyLDcg
QEAKIAkJCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMDYyMDEwRjVGMEI2NjAwQTA3RUFDIC8qIEluc3Bl
Y3RvclJlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkFCMTc3NjEyNUM4MjY3MDBDNTA2
OUQgLyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEZBM0I5
MEIxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QUIwQjFDMTEyMTFBNjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yU3RvcmFnZUFnZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MkFCMTc3NDEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5
bGVTaGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTMzQTgxMDJFMDBFODAwMDc1RDAwIC8q
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTk4MzAsNiArMTk4
NTgsNyBAQAogCQkJCUE5RDI0N0ZGMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTlEMjQ4MDEwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2lu
QXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUE4NkI2MEMzMzY3RTgwMEVFQTY0OSAvKiBK
U0RPTVNlbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEFDQkMwQ0IxMjcxM0QwQTAwOTRG
OUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1MTM3
Q0YzMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNjQ2NDk4MTFEODIzNDkwMDY0NTVCMCAvKiBKU0RPTVN0cmluZ01hcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzY5NDU2M0QxMjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIwMjUxLDYgKzIwMjgwLDcgQEAKIAkJCQkxQThGNkJDNjBEQjU1
Q0RDMDAxREI3OTQgLyogTWFuaWZlc3RQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRB
ODRDMDlENTY0OUQwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGVFbnRyeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8qIG1hcmt1cC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNTEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkFCRTcyRjcxMDU5QzFFQjAwRDk5OUREIC8qIE1h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY5
MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxNYXRoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMDcxNiw4ICsyMDc0NiwxNiBAQAogCQkJCTY1NjUzRjJFMEQ5NzI3RDIwMENBOTcyMyAvKiBT
VkdBbHRHbHlwaEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTc3MEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdBbmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5N0EwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA4OTAyMUE5MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMDg5MDIxQUQxMjZFRjVFOTAwOTJENUVBIC8qIFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg4QTBFMDQxMjZFRjFEQjAwOTc4RjdBIC8qIFNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5
ODUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVkUGF0aERhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3OTg4MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBvaW50cy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMDg4QTBFMDUxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVk
UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4OEEwRTA2MTI2RUYxREIwMDk3OEY3QSAv
KiBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA4
OEEwRTA3MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5TWFjcm9zLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwODFDREZCRjEyNkVDRkU4MDBEMjE1Q0EgLyogU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eVN5bmNocm9uaXplci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg4QTBFMDgxMjZFRjFE
QjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyNzk5MDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3OTkzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90
aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5OTUwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIwNzk1
LDYgKzIwODMzLDcgQEAKIAkJCQlCMjIyN0EzOTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EzQzBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHTGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTNFMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwODhBMEUwOTEy
NkVGMURCMDA5NzhGN0EgLyogU1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjIyMjdBM0YwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xpc3RUcmFpdHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTQxMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4Mzg1RkY2MTBGMDE4NjAwMEJGRTA3QiAvKiBTVkdNYXJrZXJE
YXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTIwODQwLDYgKzIwODc5LDkgQEAKIAkJCQlCMjIyN0E5
MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWdvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3QTk0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKKwkJCQkwODhBMEUwQTEyNkVGMURCMDA5NzhGN0Eg
LyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4OEEwRTBCMTI2RUYxREIwMDk3
OEY3QSAvKiBTVkdQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4OEEwRTBD
MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eVRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjIyMjdBOUEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JlY3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FBMDBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUmVuZGVyaW5nSW50ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxMTI2LDI1ICsyMTE2OCw2
IEBACiAJCQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNv
cnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NB
dWRpdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyog
SW5zcGVjdG9yU3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQx
RTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjdBMDM0QzQx
MjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MDgxQ0RGQjgxMjZFQ0ZEQjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwODFDREZCOTEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVj
YXRlZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTA4MUNE
RkJBMTI2RUNGREIwMEQyMTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMDgxQ0RGQkYxMjZFQ0ZFODAwRDIxNUNBIC8qIFNWR0FuaW1hdGVk
UHJvcGVydHlTeW5jaHJvbml6ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTA4OEEwRTA0MTI2RUYx
REIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTA4OEEwRTA1MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUwNjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5p
bWF0ZWRQcm9wZXJ0eURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUwNzEy
NkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMDg4QTBFMDgxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlU
ZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUwOTEyNkVGMURCMDA5NzhGN0EgLyog
U1ZHTGlzdFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDg4QTBFMEExMjZF
RjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUw
QjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTA4OTAyMUE5MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExl
bmd0aC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDg5MDIxQUQxMjZFRjVFOTAwOTJENUVBIC8qIFNW
R0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEFCNEJDNzcxMjZGREI3
MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTIxNTU4LDYgKzIxNTgxLDcgQEAKIAkJCQlBODE4NzIyNTA5NzdEM0Mw
MDA1ODI2RDkgLyogQ2hpbGROb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEQ4MjM4
QjBBRjkyREY2MDAwNEYwNTcgLyogQ2hyb21lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFCQUYy
MjA4MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk0
QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDOTA0Qjc2MEQxMDk5OEYwMDY4MEQzMiAvKiBDbGFzc05vZGVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0
TGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIxODMxLDYgKzIxODU1LDcgQEAKIAkJCQk4NThD
MzhBODBBQThGMjA0MDBCMTg3QTQgLyogRE9NUmVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJD
QUVGQ0FFMTAxNkNFNEEwMDQwRDM0RSAvKiBET01SR0JDb2xvci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDNUE4Njg0MEMzMzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNEFDQkMwQzMxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5M
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NTYxMEYxMTFBNzA0RUIwMEI4MkQyNyAvKiBE
T01TdHJpbmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDA5MTFEN0YzMDQwMDY0
NTVCMCAvKiBET01TdHJpbmdNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNTAyNUMxMDJC
QTkwMTAwNjZGMzlBIC8qIERPTVN0eWxlTWVkaWEubW0gaW4gU291cmNlcyAqLywKQEAgLTIyMjk1
LDYgKzIyMzIwLDcgQEAKIAkJCQlCODg1RThENDExRTA2REQyMDA5RkZCRjQgLyogSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JBMTAx
ODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JCYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTRGNzA3QTk5MTFFRjY3OTQwMEFDREE2OSAvKiBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk3QTFGMkI1MjEyNkM2MUIyMDAwNkE3RTYgLyogSW5zcGVj
dG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDODFCOTVCMEU5NzMzMDgwMDI2NkUw
NyAvKiBJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQUIxNzQz
MTI0Qjk5RUMwMEM1MDY5RCAvKiBJbnNwZWN0b3JDU1NBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MkI2NTg5QTExODlFNDc2MDBFMDUyQTEgLyogSW5zcGVjdG9yQ1NTU3RvcmUuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yMjMwOSw2ICsyMjMzNSw3IEBACiAJCQkJOUYwRDZCMkUxMjFCRkVC
QTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDFGMDYyMDIwRjVGMEI2NjAwQTA3RUFDIC8qIEluc3BlY3RvclJlc291cmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTgyQUIxNzc1MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNv
dXJjZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRGQTNCOTBBMTI1Q0QxMjIwMDMwMEJB
RCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUIwQjFDMDEyMTFB
NjIyMDBBNzY5NDAgLyogSW5zcGVjdG9yU3RvcmFnZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgyQUIxNzczMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTc1NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJbnNwZWN0b3JU
aW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjI0MzksNiArMjI0NjYsNyBAQAog
CQkJCUE5QzZFNjRDMEQ3NDY1RTcwMDY0NDJFOSAvKiBKU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNjREMEQ3NDY1RTcwMDY0NDJFOSAvKiBKU0RPTVBs
dWdpbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVBODZCNTBDMzM2N0U4MDBFRUE2
NDkgLyogSlNET01TZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEFDQkMwQ0ExMjcx
M0QwQTAwOTRGOUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzUxMzdDRjIxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzY0NjQ5NzExRDgyMzQ5MDA2NDU1QjAgLyogSlNET01TdHJpbmdN
YXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2NDY0OUMxMUQ4MjM4QzAwNjQ1NUIwIC8qIEpT
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjI5MDIsNiArMjI5MzAs
NyBAQAogCQkJCTFBOTg5NTZCMEFBNzhGODAwMDVFRjVFRiAvKiBLVVJMQ0ZOZXQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNjU5MzkyM0EwOUFFNDM1QzAwMkM1MzFGIC8qIEtVUkxNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlBNDU2RkEyNjExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExh
bmd1YWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTIwODQ1MDlCRDQzQjkwMEYyMDM4RCAv
KiBMYW5ndWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTA2NjA2MEJFMTQxRDQwMDk1Njk5
OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTJERDhGNDBEOTFFNkFG
MDAwRjg5RUUgLyogTGVnYWN5V2ViQXJjaGl2ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyOTI2
LDYgKzIyOTU1LDcgQEAKIAkJCQk5M0UyMjdFMTBBRjU4OUFEMDBENDgzMjQgLyogTWFpblJlc291
cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEY2QkM1MERCNTVDREMwMDFEQjc5
NCAvKiBNYW5pZmVzdFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURGNzA5OUU2
NDkyMDA1NkU1ODEgLyogbWFya3VwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3MjhDMzEzMTI2
OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGQUJFNzJGNDEwNTlDMUVCMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGQUJFNzJGRDEwNTlDMjExMDBEOTk5REQgLyogTWF0aE1MRWxlbWVudEZhY3Rv
cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkFCRTcyRjYxMDU5QzFFQjAwRDk5OUREIC8qIE1h
dGhNTElubGluZUNvbnRhaW5lckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzY5Miwx
MCArMjM3MjIsNiBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5
NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3REQ0RDg2MEZE
RjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTRGQTNC
OTBBMTI1Q0QxMjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQk5NzI4QzMxMzEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11bGF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJRTE4NzcyRjExMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTdBMUYyQjUyMTI2QzYxQjIwMDA2QTdFNiAvKiBJbnNwZWN0
b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFr
ZWZpbGUuYW0KaW5kZXggZDgwOGUxODk5ZjNhZmJkN2FmNWI4NzNkNmVlZjZjYWE1MTE1YmQzNC4u
MzM4ZDdmOTRlOTFjMTg5MzU1OWE5MDAyNTQ1N2RkMjMwMDBiNGMyZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQpAQCAtNDksNiArNDksOCBAQCB3ZWJraXRndGtfZ2Rv
bV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9N
U3RyaW5nTGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURP
TVN0cmluZ01hcC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TdHJp
bmdNYXBQcml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0
YWJsZVRva2VuTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01T
ZXR0YWJsZVRva2VuTGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTURPTVRva2VuTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01E
T01Ub2tlbkxpc3RQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01E
T01XaW5kb3cuY3BwIFwKQEAgLTI2Myw2ICsyNjUsNyBAQCB3ZWJraXRndGtfYnVpbHRfaF9hcGkg
Kz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Lmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Eb2N1bWVudFR5cGUuaCBcCiAJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlEZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTGlzdC5oIFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTWFwLmggXAogCURlcml2ZWRTb3VyY2VzL3dl
YmtpdC9XZWJLaXRET01ET01Ub2tlbkxpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAwYjU2ZjEzZDdkOWExZjUwMzdiZDBlOWZiMjFhYmM0
OTE0M2MxOGFlLi41MDFkNzk0ZmEwZjFhZDYwM2E5YWQ4NWFmZTRlYzY3ZTMwNWI5YThlIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI0MCw3ICsy
NDAsNyBAQCBzdWIgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncwogewogICAgIG15ICR0eXBlID0g
c2hpZnQ7CiAKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIg
b3IgJHR5cGUgZXEgIk1lZGlhTGlzdCIgb3IgJHR5cGUgZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0
aW9uIiBvciAkdHlwZSBlcSAiRE9NU3RyaW5nTGlzdCIgb3IgJHR5cGUgZXEgIkRPTVRva2VuTGlz
dCI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iIG9yICR0
eXBlIGVxICJNZWRpYUxpc3QiIG9yICR0eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIg
b3IgJHR5cGUgZXEgIkRPTVN0cmluZ0xpc3QiIG9yICR0eXBlIGVxICJET01Ub2tlbkxpc3QiIG9y
ICR0eXBlIGVxICJET01TZXR0YWJsZVRva2VuTGlzdCI7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxp
c3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TZXR0YWJsZVRv
a2VuTGlzdEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVlYjFlMGMyZDMyM2JkNWRlNjlhMDdmNzVj
Njk0MDBiYWJkN2MzNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWOERPTVNldHRhYmxl
VG9rZW5MaXN0LmgiCisKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgorCisjaW5j
bHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVNldHRhYmxlVG9rZW5MaXN0Ojpp
bmRleGVkUHJvcGVydHlHZXR0ZXIodWludDMyX3QgaW5kZXgsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLgorICAg
IHJldHVybiB2OFN0cmluZygiIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
aW5kZXggODNlMTI5ZThlMjhjZmE1MTBlZTBkODE1NmQyNDM4NWQxZTkzZGNmOS4uNzZkNmU5Yzg0
ZjVkYjk4ODBiZDJjZGVlYWRlMmNhZGM0ZjA4MTZjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAj
aW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5j
bHVkZSAiRE9NVG9rZW5MaXN0LmgiCkBAIC0xNTg1LDcgKzE1ODYsNyBAQCBET01Ub2tlbkxpc3Qq
IEVsZW1lbnQ6OmNsYXNzTGlzdCgpCiB7CiAgICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gZW5z
dXJlUmFyZURhdGEoKTsKICAgICBpZiAoIWRhdGEtPm1fY2xhc3NMaXN0KQotICAgICAgICBkYXRh
LT5tX2NsYXNzTGlzdCA9IERPTVRva2VuTGlzdDo6Y3JlYXRlKHRoaXMpOworICAgICAgICBkYXRh
LT5tX2NsYXNzTGlzdCA9IENsYXNzTGlzdDo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBkYXRh
LT5tX2NsYXNzTGlzdC5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmggYi9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBmMWU2MzM0
MThjYzI0NjY5NTNhODkyOWE4MGMzY2NjYzU2ZWJjZDhhLi4wNmJmZTBjN2RhYjcyODI1MTc2NmQ3
ZTVhZWRlNGJjMmVjODZlNjFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaAorKysgYi9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMjIsNyArMjIsNyBA
QAogI2lmbmRlZiBFbGVtZW50UmFyZURhdGFfaAogI2RlZmluZSBFbGVtZW50UmFyZURhdGFfaAog
Ci0jaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5j
bHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNs
dWRlICJOb2RlUmFyZURhdGEuaCIKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIFJlZlB0
cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwogCiAgICAgT3duUHRyPERhdGFzZXRET01T
dHJpbmdNYXA+IG1fZGF0YXNldERPTVN0cmluZ01hcDsKLSAgICBPd25QdHI8RE9NVG9rZW5MaXN0
PiBtX2NsYXNzTGlzdDsKKyAgICBPd25QdHI8Q2xhc3NMaXN0PiBtX2NsYXNzTGlzdDsKIH07CiAK
IGlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIGIvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5jcHAKaW5kZXggOGEyNzEwY2MzMGVmMWFhNDk1ODE2MjUzMjRhOGRlNjcyZWRl
NDVhZi4uNGJkNWIxYjk2OTg3MmUyZGNhMGQ0ZTVkNWUxNjBjNWI0ZDhkMTNhNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKKysrIGIvV2ViQ29yZS9kb20vU3Bh
Y2VTcGxpdFN0cmluZy5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApAQCAtOTAsNCAr
OTEsMzcgQEAgYm9vbCBTcGFjZVNwbGl0U3RyaW5nRGF0YTo6Y29udGFpbnNBbGwoU3BhY2VTcGxp
dFN0cmluZ0RhdGEmIG90aGVyKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFNwYWNlU3Bs
aXRTdHJpbmdEYXRhOjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcpCit7CisgICAgaWYg
KGNvbnRhaW5zKHN0cmluZykpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmVjdG9yLmFwcGVu
ZChzdHJpbmcpOworfQorCit2b2lkIFNwYWNlU3BsaXRTdHJpbmdEYXRhOjpyZW1vdmUoY29uc3Qg
QXRvbWljU3RyaW5nJiBzdHJpbmcpCit7CisgICAgZW5zdXJlVmVjdG9yKCk7CisKKyAgICBzaXpl
X3QgcG9zaXRpb24gPSAwOworICAgIHdoaWxlIChwb3NpdGlvbiA8IG1fdmVjdG9yLnNpemUoKSkg
eworICAgICAgICBpZiAobV92ZWN0b3JbcG9zaXRpb25dID09IHN0cmluZykKKyAgICAgICAgICAg
IG1fdmVjdG9yLnJlbW92ZShwb3NpdGlvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICsr
cG9zaXRpb247CisgICAgfQorfQorCit2b2lkIFNwYWNlU3BsaXRTdHJpbmc6OmFkZChjb25zdCBB
dG9taWNTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpZiAobV9kYXRhKQorICAgICAgICBtX2RhdGEt
PmFkZChzdHJpbmcpOworfQorCit2b2lkIFNwYWNlU3BsaXRTdHJpbmc6OnJlbW92ZShjb25zdCBB
dG9taWNTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpZiAobV9kYXRhKQorICAgICAgICBtX2RhdGEt
PnJlbW92ZShzdHJpbmcpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0
U3RyaW5nLmgKaW5kZXggMDljYThkOTZjNTE1MTU1OGJmYmYyNjZmNzU3YzBiODgzOTgyYjRmYy4u
ODI2ZTZiZDAzNzg5OGU0MDc3MmRhNDA3M2Q3YmJmNTUyYTFlYWNlNSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCisrKyBiL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRT
dHJpbmcuaApAQCAtNDgsNiArNDgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
Ym9vbCBjb250YWluc0FsbChTcGFjZVNwbGl0U3RyaW5nRGF0YSYpOwogCisgICAgICAgIHZvaWQg
YWRkKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgICAgICB2b2lkIHJlbW92ZShjb25zdCBBdG9t
aWNTdHJpbmcmKTsKKwogICAgICAgICBzaXplX3Qgc2l6ZSgpIHsgZW5zdXJlVmVjdG9yKCk7IHJl
dHVybiBtX3ZlY3Rvci5zaXplKCk7IH0KICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBvcGVy
YXRvcltdKHNpemVfdCBpKSB7IGVuc3VyZVZlY3RvcigpOyBBU1NFUlQoaSA8IHNpemUoKSk7IHJl
dHVybiBtX3ZlY3RvcltpXTsgfQogCkBAIC03Miw2ICs3NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaW5nKSBj
b25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRhLT5jb250YWlucyhzdHJpbmcpOyB9CiAgICAg
ICAgIGJvb2wgY29udGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0
IHsgcmV0dXJuICFuYW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxs
KCpuYW1lcy5tX2RhdGEpKTsgfQorICAgICAgICB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJpbmcm
KTsKKyAgICAgICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKICAgICAgICAg
c2l6ZV90IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEgPyBtX2RhdGEtPnNpemUoKSA6IDA7
IH0KICAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9kYXRhOyB9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL1N0eWxl
ZEVsZW1lbnQuY3BwCmluZGV4IDEyNzQ0Y2IwNjBjOWQ5MjBlNzNlMTQzNWEzNjQ1NGQ0MzhiMDk5
NzMuLjczODRjMGJjMmFiZmExNjg2NGViY2VjNTgyODk3M2NkZTAxMzkxYTEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgog
CiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVk
ZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNs
dWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBTdHlsZWRF
bGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdDbGFz
c1N0cmluZykKICAgICBpZiAoaGFzQ2xhc3MpIHsKICAgICAgICAgYXR0cmlidXRlcygpLT5zZXRD
bGFzcyhuZXdDbGFzc1N0cmluZyk7CiAgICAgICAgIGlmIChET01Ub2tlbkxpc3QqIGNsYXNzTGlz
dCA9IG9wdGlvbmFsQ2xhc3NMaXN0KCkpCi0gICAgICAgICAgICBjbGFzc0xpc3QtPnJlc2V0KG5l
d0NsYXNzU3RyaW5nKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PENsYXNzTGlzdCo+KGNsYXNz
TGlzdCktPnJlc2V0KG5ld0NsYXNzU3RyaW5nKTsKICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZU1h
cCgpKQogICAgICAgICBhdHRyaWJ1dGVNYXAoKS0+Y2xlYXJDbGFzcygpOwogICAgIHNldE5lZWRz
U3R5bGVSZWNhbGMoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaCBi
L1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAppbmRleCA0YjYyMzg4MTQ0NGUxODU0MDc2MzYz
YzBjYzY5MjFiOTg3M2QzMDYxLi44MDQwZGJmMWUzNjhhY2I3ZjRlYThlODM1N2ExYjE1YWY4MDQy
ZjAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysrIGIvV2ViQ29y
ZS9kb20vU3R5bGVkRWxlbWVudC5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEF0dHJpYnV0ZTsKLWNsYXNzIENsYXNzTGlzdDsKIGNsYXNzIENTU01hcHBl
ZEF0dHJpYnV0ZURlY2xhcmF0aW9uOwogCiBjbGFzcyBTdHlsZWRFbGVtZW50IDogcHVibGljIEVs
ZW1lbnQgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAgYi9XZWJDb3Jl
L2h0bWwvQ2xhc3NMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWNmY2JiMDg5NTEyMjU2MGYxMTg2NjFj
YWZkOTQ0NGQxYmEyYzhhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0NsYXNzTGlz
dC5jcHAKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJDbGFzc0xpc3QuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVk
ZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
CitDbGFzc0xpc3Q6OkNsYXNzTGlzdChFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50
KGVsZW1lbnQpCisgICAgLCBtX2NsYXNzTmFtZXNOZWVkc1VwZGF0ZShmYWxzZSkKK3sKKyAgICBp
ZiAobV9lbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKKyAgICAgICAgbV9jbGFz
c05hbWVzRm9yUXVpcmtzTW9kZS5zZXQobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNz
QXR0ciksIGZhbHNlKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OnJlZigpCit7CisgICAgbV9lbGVt
ZW50LT5yZWYoKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OmRlcmVmKCkKK3sKKyAgICBtX2VsZW1l
bnQtPmRlcmVmKCk7Cit9CisKK3Vuc2lnbmVkIENsYXNzTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygpID8gY2xhc3NOYW1lcygpLnNpemUoKSA6
IDA7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0Ojp1cGRhdGVDbGFzc05hbWVzRm9yUXVpcmtzTW9kZUlm
TmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fY2xhc3NOYW1lc05lZWRzVXBkYXRlKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldChtX2VsZW1lbnQtPmZh
c3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSwgZmFsc2UpOworICAgIG1fY2xhc3NOYW1lc05lZWRz
VXBkYXRlID0gZmFsc2U7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyBDbGFzc0xpc3Q6Oml0ZW0o
dW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQorICAg
ICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCk7CisgICAgLy8gV2UgbmVlZCB0aGlzIHVsZ3kgY29u
c3RfY2FzdCB0byBjb25mb3JtIHdpdGggdGhlIGNsYXNzTmFtZSBhdHRyaWJ1dGUKKyAgICAvLyBv
ZiB0aGUgZWxlbWVudC4KKyAgICByZXR1cm4gY29uc3RfY2FzdDxDbGFzc0xpc3QqPih0aGlzKS0+
aXRlbUludGVybmFsKGluZGV4KTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nIENsYXNzTGlzdDo6
aXRlbUludGVybmFsKHVuc2lnbmVkIGluZGV4KQoreworICAgIHVwZGF0ZUNsYXNzTmFtZXNGb3JR
dWlya3NNb2RlSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gY2xhc3NOYW1lcygpW2luZGV4XTsKK30K
KworYm9vbCBDbGFzc0xpc3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwg
ZWMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gV2UgbmVlZCB0aGlzIHVsZ3kgY29u
c3RfY2FzdCB0byBjb25mb3JtIHdpdGggdGhlIGNsYXNzTmFtZSBhdHRyaWJ1dGUKKyAgICAvLyBv
ZiB0aGUgZWxlbWVudC4KKyAgICByZXR1cm4gY29uc3RfY2FzdDxDbGFzc0xpc3QqPih0aGlzKS0+
Y29udGFpbnNJbnRlcm5hbCh0b2tlbik7Cit9CisKK2Jvb2wgQ2xhc3NMaXN0Ojpjb250YWluc0lu
dGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCit7CisgICAgdXBkYXRlQ2xhc3NOYW1l
c0ZvclF1aXJrc01vZGVJZk5lZWRlZCgpOworICAgIHJldHVybiBtX2VsZW1lbnQtPmhhc0NsYXNz
KCkgJiYgY2xhc3NOYW1lcygpLmNvbnRhaW5zKHRva2VuKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6
OmFkZChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0dXJuOworICAgIGFk
ZEludGVybmFsKHRva2VuKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OmFkZEludGVybmFsKGNvbnN0
IEF0b21pY1N0cmluZyYgdG9rZW4pCit7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRDbGFz
c05hbWUobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cikpOworICAgIGlmIChv
bGRDbGFzc05hbWUuaXNFbXB0eSgpKQorICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShj
bGFzc0F0dHIsIHRva2VuKTsKKyAgICBlbHNlIGlmICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikp
IHsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdDbGFzc05hbWUoYWRkVG9rZW4ob2xk
Q2xhc3NOYW1lLCB0b2tlbikpOworICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFz
c0F0dHIsIG5ld0NsYXNzTmFtZSk7CisgICAgfQorICAgIC8vIFdlIGRvbid0IHVwZGF0ZSBtX2Ns
YXNzTmFtZXNGb3JRdWlya3NNb2RlIGhlcmUgdG8gZGVmZXIgYnVpbGRpbmcKKyAgICAvLyB0aGUg
dmVjdG9yIG9mIHRoZSB0b2tlbiBsaXN0IHVudGlsIGl0IGlzIHJlYWxseSBuZWVkZWQuCisgICAg
bV9jbGFzc05hbWVzTmVlZHNVcGRhdGUgPSB0cnVlOworfQorCit2b2lkIENsYXNzTGlzdDo6cmVt
b3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAgICAgICByZXR1cm47CisgICAgcmVt
b3ZlSW50ZXJuYWwodG9rZW4pOworfQorCit2b2lkIENsYXNzTGlzdDo6cmVtb3ZlSW50ZXJuYWwo
Y29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKK3sKKyAgICAvLyBDaGVjayB1c2luZyBjb250YWlu
cyBmaXJzdCBzaW5jZSBpdCB1c2VzIEF0b21pY1N0cmluZyBjb21wYXJpc29ucyBpbnN0ZWFkCisg
ICAgLy8gb2YgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB0ZXN0aW5nLgorICAgIGlmICghY29udGFp
bnNJbnRlcm5hbCh0b2tlbikpCisgICAgICAgIHJldHVybjsKKyAgICBjb25zdCBBdG9taWNTdHJp
bmcmIG5ld0NsYXNzTmFtZShyZW1vdmVUb2tlbihtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUo
Y2xhc3NBdHRyKSwgdG9rZW4pKTsKKyAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0
dHIsIG5ld0NsYXNzTmFtZSk7CisgICAgLy8gV2UgZG9uJ3QgdXBkYXRlIG1fY2xhc3NOYW1lc0Zv
clF1aXJrc01vZGUgaGVyZSB0byBkZWZlciBidWlsZGluZworICAgIC8vIHRoZSB2ZWN0b3Igb2Yg
dGhlIHRva2VuIGxpc3QgdW50aWwgaXQgaXMgcmVhbGx5IG5lZWRlZC4KKyAgICBtX2NsYXNzTmFt
ZXNOZWVkc1VwZGF0ZSA9IHRydWU7Cit9CisKK2Jvb2wgQ2xhc3NMaXN0Ojp0b2dnbGUoY29uc3Qg
QXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxp
ZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChj
b250YWluc0ludGVybmFsKHRva2VuKSkgeworICAgICAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgYWRkSW50ZXJuYWwodG9rZW4pOwor
ICAgIHJldHVybiB0cnVlOworfQorCitTdHJpbmcgQ2xhc3NMaXN0Ojp0b1N0cmluZygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpOwor
fQorCit2b2lkIENsYXNzTGlzdDo6cmVzZXQoY29uc3QgU3RyaW5nJiBuZXdDbGFzc05hbWUpCit7
CisgICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmlzTnVsbCgpKSB7CisgICAgICAg
IG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG5ld0NsYXNzTmFtZSwgZmFsc2UpOworICAg
ICAgICBtX2NsYXNzTmFtZXNOZWVkc1VwZGF0ZSA9IGZhbHNlOworICAgIH0KK30KKworY29uc3Qg
U3BhY2VTcGxpdFN0cmluZyYgQ2xhc3NMaXN0OjpjbGFzc05hbWVzKCkgY29uc3QKK3sKKyAgICBB
U1NFUlQobV9lbGVtZW50LT5oYXNDbGFzcygpKTsKKyAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1
aXJrc01vZGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlOworICAgIHJldHVybiBtX2VsZW1lbnQtPmF0dHJpYnV0ZU1hcCgpLT5jbGFzc05hbWVzKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9D
bGFzc0xpc3QuaCBiL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2QyNjVi
ZDczNzY1ODFiZGVlOTdiMjg2YTJjYWVkNDZlMTdmOTBiCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
Q29yZS9odG1sL0NsYXNzTGlzdC5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQ2xhc3NMaXN0X2gKKyNkZWZpbmUgQ2xhc3NMaXN0X2gKKworI2luY2x1ZGUgIkRPTVRv
a2VuTGlzdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJTcGFjZVNw
bGl0U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBFbGVtZW50OworCitjbGFzcyBDbGFzc0xpc3QgOiBwdWJsaWMgRE9N
VG9rZW5MaXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxDbGFzc0xpc3Q+IGNy
ZWF0ZShFbGVtZW50KiBlbGVtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBDbGFzc0xpc3QoZWxlbWVudCkpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCByZWYoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBp
bmRleCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IEF0
b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNv
bnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgdG9n
Z2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIFN0
cmluZyB0b1N0cmluZygpIGNvbnN0OworCisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkg
eyByZXR1cm4gbV9lbGVtZW50OyB9CisKKyAgICB2b2lkIHJlc2V0KGNvbnN0IFN0cmluZyYpOwor
Citwcml2YXRlOgorICAgIENsYXNzTGlzdChFbGVtZW50Kik7CisKKyAgICB2b2lkIGFkZEludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25z
dCBBdG9taWNTdHJpbmcmKTsKKyAgICB2b2lkIHJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0
cmluZyYpOworICAgIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtSW50ZXJuYWwodW5zaWduZWQpOwor
CisgICAgdm9pZCB1cGRhdGVDbGFzc05hbWVzRm9yUXVpcmtzTW9kZUlmTmVlZGVkKCk7CisKKyAg
ICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzKCkgY29uc3Q7CisKKyAgICBFbGVt
ZW50KiBtX2VsZW1lbnQ7CisgICAgYm9vbCBtX2NsYXNzTmFtZXNOZWVkc1VwZGF0ZTsKKyAgICBT
cGFjZVNwbGl0U3RyaW5nIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDbGFzc0xpc3RfaApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBiL1dlYkNvcmUvaHRtbC9ET01TZXR0
YWJsZVRva2VuTGlzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYzNmJkM2FiM2I4MmVmZDBiNGNlNDBkMWE1
YmM2YTViZGVkOWQwMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJs
ZVRva2VuTGlzdC5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworRE9NU2V0dGFibGVUb2tlbkxpc3Q6OkRPTVNldHRhYmxlVG9rZW5MaXN0
KCkKKyAgICA6IG1fdmFsdWUoKQorICAgICwgbV90b2tlbnMoKQoreworfQorCitET01TZXR0YWJs
ZVRva2VuTGlzdDo6fkRPTVNldHRhYmxlVG9rZW5MaXN0KCkKK3sKK30KKworY29uc3QgQXRvbWlj
U3RyaW5nIERPTVNldHRhYmxlVG9rZW5MaXN0OjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAor
eworICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIEF0b21pY1N0cmlu
ZygiIik7CisgICAgcmV0dXJuIG1fdG9rZW5zW2luZGV4XTsKK30KKworYm9vbCBET01TZXR0YWJs
ZVRva2VuTGlzdDo6Y29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9u
Q29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV90b2tlbnMuY29udGFpbnModG9rZW4p
OworfQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjphZGQoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRv
a2VuLCBlYykgfHwgbV90b2tlbnMuY29udGFpbnModG9rZW4pKQorICAgICAgICByZXR1cm47Cisg
ICAgYWRkSW50ZXJuYWwodG9rZW4pOworfQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0Ojph
ZGRJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQoreworICAgIG1fdmFsdWUgPSBh
ZGRUb2tlbihtX3ZhbHVlLCB0b2tlbik7CisgICAgbV90b2tlbnMuYWRkKHRva2VuKTsKK30KKwor
dm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6cmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwg
ZWMpIHx8ICFtX3Rva2Vucy5jb250YWlucyh0b2tlbikpCisgICAgICAgIHJldHVybjsKKyAgICBy
ZW1vdmVJbnRlcm5hbCh0b2tlbik7Cit9CisKK3ZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJl
bW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCit7CisgICAgbV92YWx1ZSA9
IHJlbW92ZVRva2VuKG1fdmFsdWUsIHRva2VuKTsKKyAgICBtX3Rva2Vucy5yZW1vdmUodG9rZW4p
OworfQorCitib29sIERPTVNldHRhYmxlVG9rZW5MaXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3Ry
aW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2Vu
KHRva2VuLCBlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV90b2tlbnMuY29u
dGFpbnModG9rZW4pKSB7CisgICAgICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBhZGRJbnRlcm5hbCh0b2tlbik7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OnNldFZhbHVlKGNvbnN0IFN0
cmluZyYgdmFsdWUpCit7CisgICAgbV92YWx1ZSA9IHZhbHVlOworICAgIG1fdG9rZW5zLnNldCh2
YWx1ZSwgdHJ1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIGIvV2ViQ29yZS9odG1sL0RPTVNldHRh
YmxlVG9rZW5MaXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI3MTFiNGEyNDY0ZWFhNjA2MTA1MWUzYTExZjQy
NjUzZmQ1ZmRjMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRv
a2VuTGlzdC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRE9NU2V0
dGFibGVUb2tlbkxpc3RfaAorI2RlZmluZSBET01TZXR0YWJsZVRva2VuTGlzdF9oCisKKyNpbmNs
dWRlICJET01Ub2tlbkxpc3QuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01TZXR0YWJsZVRva2VuTGlzdCA6
IHB1YmxpYyBET01Ub2tlbkxpc3QsIHB1YmxpYyBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5M
aXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxp
c3Q+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERPTVNldHRh
YmxlVG9rZW5MaXN0KCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5ET01TZXR0YWJsZVRva2VuTGlz
dCgpOworCisgICAgdmlydHVhbCB2b2lkIHJlZigpIHsgUmVmQ291bnRlZDxET01TZXR0YWJsZVRv
a2VuTGlzdD46OnJlZigpOyB9CisgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgeyBSZWZDb3VudGVk
PERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6ZGVyZWYoKTsgfQorCisgICAgdmlydHVhbCB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Rva2Vucy5zaXplKCk7IH0KKyAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNv
bnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Qg
eyByZXR1cm4gdmFsdWUoKTsgfQorCisgICAgU3RyaW5nIHZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZTsgfQorICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJik7CisKK3ByaXZhdGU6
CisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QoKTsKKworICAgIHZvaWQgcmVtb3ZlSW50ZXJuYWwo
Y29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgdm9pZCBhZGRJbnRlcm5hbChjb25zdCBBdG9taWNT
dHJpbmcmKTsKKworICAgIFN0cmluZyBtX3ZhbHVlOworICAgIFNwYWNlU3BsaXRTdHJpbmcgbV90
b2tlbnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBET01TZXR0
YWJsZVRva2VuTGlzdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tl
bkxpc3QuaWRsIGIvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MjYwNjIzZWViNDYzZDdjMzBkOTZmOTAyODE5MTAwMWY3MWEzMzkxCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbApAQCAtMCwwICsx
LDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yLAorICAgICAgICBIYXNJbmRleEdldHRlciwKKyAg
ICAgICAgR2VuZXJhdGVUb0pTCisgICAgXSBET01TZXR0YWJsZVRva2VuTGlzdCA6IERPTVRva2Vu
TGlzdCB7CisgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsdWU7CisgICAgfTsKKworfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9XZWJDb3JlL2h0bWwv
RE9NVG9rZW5MaXN0LmNwcAppbmRleCBhYTBhNzRiMmFjYmJkOGE1NzlkY2FlNjYwZTU1NDk0MjQ3
NDFmNzFjLi4zYzkxZjIwMTI1MzBiMjRmOTgyNmNiMjFkODdlNDNjMjMzMzRmMzY2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRE9N
VG9rZW5MaXN0LmNwcApAQCAtMjUsMTcgKzI1LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAKLSNpbmNsdWRlICJFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgotI2luY2x1ZGUg
IlNwYWNlU3BsaXRTdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQot
c3RhdGljIGJvb2wgdmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNl
cHRpb25Db2RlJiBlYykKK2Jvb2wgRE9NVG9rZW5MaXN0Ojp2YWxpZGF0ZVRva2VuKGNvbnN0IEF0
b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICh0b2tlbi5p
c0VtcHR5KCkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwpAQCAtNTMsODYgKzQ4LDIzIEBA
IHN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLURPTVRva2VuTGlzdDo6RE9N
VG9rZW5MaXN0KEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBtX2VsZW1lbnQoZWxlbWVudCkKLXsK
LSAgICBpZiAobV9lbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKLSAgICAgICAg
bV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5zZXQobV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRl
KGNsYXNzQXR0ciksIGZhbHNlKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlZigpCi17Ci0g
ICAgbV9lbGVtZW50LT5yZWYoKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OmRlcmVmKCkKLXsK
LSAgICBtX2VsZW1lbnQtPmRlcmVmKCk7Ci19Ci0KLXVuc2lnbmVkIERPTVRva2VuTGlzdDo6bGVu
Z3RoKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygpID8gY2xhc3NO
YW1lcygpLnNpemUoKSA6IDA7Ci19Ci0KLWNvbnN0IEF0b21pY1N0cmluZyBET01Ub2tlbkxpc3Q6
Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci17Ci0gICAgaWYgKGluZGV4ID49IGxlbmd0aCgp
KQotICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCk7Ci0gICAgcmV0dXJuIGNsYXNzTmFtZXMo
KVtpbmRleF07Ci19Ci0KLWJvb2wgRE9NVG9rZW5MaXN0Ojpjb250YWlucyhjb25zdCBBdG9taWNT
dHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKLXsKLSAgICBpZiAoIXZhbGlk
YXRlVG9rZW4odG9rZW4sIGVjKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBj
b250YWluc0ludGVybmFsKHRva2VuKTsKLX0KLQotYm9vbCBET01Ub2tlbkxpc3Q6OmNvbnRhaW5z
SW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKK1N0cmluZyBET01Ub2tl
bkxpc3Q6OmFkZFRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQsIGNvbnN0IEF0b21pY1N0
cmluZyYgdG9rZW4pCiB7Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+aGFzQ2xhc3MoKSAmJiBjbGFz
c05hbWVzKCkuY29udGFpbnModG9rZW4pOwotfQorICAgIGlmIChpbnB1dC5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiB0b2tlbjsKIAotdm9pZCBET01Ub2tlbkxpc3Q6OmFkZChjb25zdCBBdG9t
aWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIXZhbGlkYXRl
VG9rZW4odG9rZW4sIGVjKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGFkZEludGVybmFsKHRva2Vu
KTsKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoaW5wdXQp
OworICAgIGlmIChpbnB1dFtpbnB1dC5sZW5ndGgoKS0xXSAhPSAnICcpCisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kKCcgJyk7CisgICAgYnVpbGRlci5hcHBlbmQodG9rZW4pOworICAgIHJldHVybiBi
dWlsZGVyLnRvU3RyaW5nKCk7CiB9CiAKLXZvaWQgRE9NVG9rZW5MaXN0OjphZGRJbnRlcm5hbChj
b25zdCBBdG9taWNTdHJpbmcmIHRva2VuKSBjb25zdAorU3RyaW5nIERPTVRva2VuTGlzdDo6cmVt
b3ZlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1dCwgY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbikKIHsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIG9sZENsYXNzTmFtZShtX2VsZW1lbnQt
PmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSk7Ci0gICAgaWYgKG9sZENsYXNzTmFtZS5pc0Vt
cHR5KCkpCi0gICAgICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgdG9rZW4p
OwotICAgIGVsc2UgaWYgKCFjb250YWluc0ludGVybmFsKHRva2VuKSkgewotICAgICAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKG9sZENsYXNzTmFtZSk7
Ci0gICAgICAgIGlmIChvbGRDbGFzc05hbWVbb2xkQ2xhc3NOYW1lLmxlbmd0aCgpIC0gMV0gIT0g
JyAnKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKLSAgICAgICAgYnVpbGRlci5h
cHBlbmQodG9rZW4pOwotICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIs
IGJ1aWxkZXIudG9TdHJpbmcoKSk7Ci0gICAgfQotfQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVt
b3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQotICAgICAgICByZXR1cm47Ci0gICAgcmVt
b3ZlSW50ZXJuYWwodG9rZW4pOwotfQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJu
YWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKLXsKLSAgICAvLyBDaGVjayB1c2lu
ZyBjb250YWlucyBmaXJzdCBzaW5jZSBpdCB1c2VzIEF0b21pY1N0cmluZyBjb21wYXJpc29ucyBp
bnN0ZWFkCi0gICAgLy8gb2YgY2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB0ZXN0aW5nLgotICAgIGlm
ICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIEFs
Z29yaXRobSBkZWZpbmVkIGF0IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9j
dXJyZW50LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1taWNyb3N5bnRheGVzLmh0bWwjcmVtb3ZlLWEt
dG9rZW4tZnJvbS1hLXN0cmluZwogCi0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBpbnB1dCA9IG1f
ZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpOwogICAgIHVuc2lnbmVkIGlucHV0
TGVuZ3RoID0gaW5wdXQubGVuZ3RoKCk7CiAgICAgVmVjdG9yPFVDaGFyPiBvdXRwdXQ7IC8vIDMK
ICAgICBvdXRwdXQucmVzZXJ2ZUNhcGFjaXR5KGlucHV0TGVuZ3RoKTsKQEAgLTE3MCwzOSArMTAy
LDcgQEAgdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0cmlu
ZyYgdG9rZW4pIGNvbnN0CiAgICAgfQogCiAgICAgb3V0cHV0LnNocmlua1RvRml0KCk7Ci0gICAg
bV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBTdHJpbmc6OmFkb3B0KG91dHB1dCkp
OwotfQotCi1ib29sIERPTVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwg
ZWMpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoY29udGFpbnNJbnRlcm5hbCh0
b2tlbikpIHsKLSAgICAgICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4pOwotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotICAgIGFkZEludGVybmFsKHRva2VuKTsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQotU3RyaW5nIERPTVRva2VuTGlzdDo6dG9TdHJpbmcoKSBjb25zdAotewotICAgIHJldHVy
biBtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKTsKLX0KLQotdm9pZCBET01U
b2tlbkxpc3Q6OnJlc2V0KGNvbnN0IFN0cmluZyYgbmV3Q2xhc3NOYW1lKQotewotICAgIGlmICgh
bV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5pc051bGwoKSkKLSAgICAgICAgbV9jbGFzc05hbWVz
Rm9yUXVpcmtzTW9kZS5zZXQobmV3Q2xhc3NOYW1lLCBmYWxzZSk7Ci19Ci0KLWNvbnN0IFNwYWNl
U3BsaXRTdHJpbmcmIERPTVRva2VuTGlzdDo6Y2xhc3NOYW1lcygpIGNvbnN0Ci17Ci0gICAgQVNT
RVJUKG1fZWxlbWVudC0+aGFzQ2xhc3MoKSk7Ci0gICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWly
a3NNb2RlLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9k
ZTsKLSAgICByZXR1cm4gbV9lbGVtZW50LT5hdHRyaWJ1dGVNYXAoKS0+Y2xhc3NOYW1lcygpOwor
ICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KG91dHB1dCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaCBiL1dlYkNvcmUv
aHRtbC9ET01Ub2tlbkxpc3QuaAppbmRleCBmYWQ2OWNhOGI5NTk1ZTIxNzY5MmQxMDI0YjUwZmJi
ODYwNjYzZDUzLi41ZGYyZWRlMDU4NjczM2FhM2FjN2ZhNzVjYWMzMGZiOGMxZGMzZGEwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNiw5ICsyNiw5IEBACiAjZGVmaW5lIERPTVRva2VuTGlzdF9oCiAKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM2LDM3ICszNiwyNSBAQCBjbGFzcyBFbGVt
ZW50OwogCiBjbGFzcyBET01Ub2tlbkxpc3QgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPERPTVRva2VuTGlzdD4gY3JlYXRlKEVsZW1lbnQqIGVs
ZW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERPTVRva2VuTGlzdChl
bGVtZW50KSk7Ci0gICAgfQorICAgIHZpcnR1YWwgfkRPTVRva2VuTGlzdCgpIHt9OwogCi0gICAg
dm9pZCByZWYoKTsKLSAgICB2b2lkIGRlcmVmKCk7CisgICAgdmlydHVhbCB2b2lkIHJlZigpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSA9IDA7CiAKLSAgICB1bnNpZ25lZCBsZW5ndGgo
KSBjb25zdDsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29u
c3Q7Ci0gICAgYm9vbCBjb250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
JikgY29uc3Q7Ci0gICAgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZvaWQgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5n
dGgoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNp
Z25lZCBpbmRleCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25zdCBB
dG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7
CisgICAgdmlydHVhbCBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25D
b2RlJikgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgPSAwOwogCi0g
ICAgdm9pZCByZXNldChjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1l
bnQoKSB7IHJldHVybiAwOyB9CiAKLSAgICBFbGVtZW50KiBlbGVtZW50KCkgeyByZXR1cm4gbV9l
bGVtZW50OyB9Ci0KLXByaXZhdGU6Ci0gICAgRE9NVG9rZW5MaXN0KEVsZW1lbnQqKTsKLQotICAg
IHZvaWQgYWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Ci0gICAgYm9vbCBj
b250YWluc0ludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwotICAgIHZvaWQgcmVt
b3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7Ci0KLSAgICBjb25zdCBTcGFj
ZVNwbGl0U3RyaW5nJiBjbGFzc05hbWVzKCkgY29uc3Q7Ci0KLSAgICBFbGVtZW50KiBtX2VsZW1l
bnQ7Ci0gICAgU3BhY2VTcGxpdFN0cmluZyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOworcHJv
dGVjdGVkOgorICAgIHN0YXRpYyBib29sIHZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBTdHJpbmcgYWRkVG9rZW4oY29uc3QgQXRv
bWljU3RyaW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgc3RhdGljIFN0cmluZyByZW1v
dmVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZDc1NmNjZTQ5NTcwNzI3
NzA0ZDQ4NTI2ZTY1NDAwODYwNDVhNTJjMi4uZGI2M2UwN2Q1MDRkNmU1MjRhODc0ZDZkYmU4Yzdm
NzE2MjQ3MWNiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJE
b2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNs
dWRlICJET01TZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgog
I2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1
ZGUgIkRPTVRva2VuTGlzdC5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCAwYWUxMDY5Mjc1NmJlZDU2ODQ5
YTEwNTVlMGU5YTdkMjQwMzAyNTMxLi5iN2E0MjYwMTdkZGEwNTk4OWU5ZDYyYjJhNWNhMjY3ODU3
NTMwZmEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMzc4LDYgKzM3OCw3IEBAIG1vZHVsZSB3aW5kb3cg
ewogLy8gICAgICAgIGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbkxpc3RDb25zdHJ1Y3RvciBE
T01JbXBsZW1lbnRhdGlvbkxpc3Q7CiAvLyAgICAgICAgYXR0cmlidXRlIERPTUltcGxlbWVudGF0
aW9uU291cmNlQ29uc3RydWN0b3IgRE9NSW1wbGVtZW50YXRpb25Tb3VyY2U7CiAgICAgICAgIGF0
dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yIERPTUltcGxlbWVudGF0aW9uOwor
ICAgICAgICBhdHRyaWJ1dGUgRE9NU2V0dGFibGVUb2tlbkxpc3RDb25zdHJ1Y3RvciBET01TZXR0
YWJsZVRva2VuTGlzdDsKICAgICAgICAgYXR0cmlidXRlIERPTVRva2VuTGlzdENvbnN0cnVjdG9y
IERPTVRva2VuTGlzdDsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50RnJhZ21lbnRDb25zdHJ1
Y3RvciBEb2N1bWVudEZyYWdtZW50OwogICAgICAgICBhdHRyaWJ1dGUgRG9jdW1lbnRDb25zdHJ1
Y3RvciBEb2N1bWVudDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71833</attachid>
            <date>2010-10-25 19:30:26 -0700</date>
            <delta_ts>2010-10-29 01:56:27 -0700</delta_ts>
            <desc>Patch V5</desc>
            <filename>bug-47810-20101026113024.patch</filename>
            <type>text/plain</type>
            <size>74392</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYWM5ZGE3MTRjMmEzZWZhZGViMTQ3OTVjNzYxZWNmMTUwY2ZkM2E0Li5mNTllZWZl
MWRkYzZhNDIyZTcyMTkwNWZmMGRhYzhhODY5YWMyOTczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTAtMjYgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBE
T01TZXR0YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc4MTAKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OiBV
cGRhdGVkIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtMi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0
YXRpb25zLgorICAgICAgICAqIGZhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50
eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorCiAyMDEwLTEwLTI1ICBLZW5uZXRoIFJ1c3NlbGwg
IDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB0ZXN0IGV4cGVjdGF0aW9u
cyB1cGRhdGUuIE1hcmsgV2ViR0wgbGF5b3V0IHRlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmluZGV4
IDhkNGE0MGRiYzlkNWU2M2ExZDAxMjcyY2MxM2YwYmEzZTNlZTZmMWUuLjYwNWEzYjhjODQzNjNh
MzA2MjdkOGM4Yjk1NjVmYmVjMDhjM2Y5NjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtNTU1
LDYgKzU1NSwxNCBAQCB3aW5kb3cuRE9NSW1wbGVtZW50YXRpb24ucHJvdG90eXBlLmhhc0ZlYXR1
cmUgW2Z1bmN0aW9uXQogd2luZG93LkRPTVBhcnNlciBbb2JqZWN0IERPTVBhcnNlckNvbnN0cnVj
dG9yXQogd2luZG93LkRPTVBhcnNlci5wcm90b3R5cGUgW29iamVjdCBET01QYXJzZXJQcm90b3R5
cGVdCiB3aW5kb3cuRE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmcgW2Z1bmN0aW9u
XQord2luZG93LkRPTVNldHRhYmxlVG9rZW5MaXN0IFtvYmplY3QgRE9NU2V0dGFibGVUb2tlbkxp
c3RDb25zdHJ1Y3Rvcl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUgW29i
amVjdCBET01TZXR0YWJsZVRva2VuTGlzdFByb3RvdHlwZV0KK3dpbmRvdy5ET01TZXR0YWJsZVRv
a2VuTGlzdC5wcm90b3R5cGUuYWRkIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2Vu
TGlzdC5wcm90b3R5cGUuY29udGFpbnMgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9r
ZW5MaXN0LnByb3RvdHlwZS5pdGVtIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2Vu
TGlzdC5wcm90b3R5cGUucmVtb3ZlIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2Vu
TGlzdC5wcm90b3R5cGUudG9TdHJpbmcgW2Z1bmN0aW9uXQord2luZG93LkRPTVNldHRhYmxlVG9r
ZW5MaXN0LnByb3RvdHlwZS50b2dnbGUgW2Z1bmN0aW9uXQogd2luZG93LkRPTVN0cmluZ0xpc3Qg
W29iamVjdCBET01TdHJpbmdMaXN0Q29uc3RydWN0b3JdCiB3aW5kb3cuRE9NU3RyaW5nTGlzdC5w
cm90b3R5cGUgW29iamVjdCBET01TdHJpbmdMaXN0UHJvdG90eXBlXQogd2luZG93LkRPTVN0cmlu
Z0xpc3QucHJvdG90eXBlLmNvbnRhaW5zIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQKaW5kZXggYmJiZjRmNzQ5YjUwYmE3ZjA5YjFkMGZkYTQ2NWUyODZl
MTExYWE0NS4uZmI1MTgwMWNlMzUxMTcyZmQ4M2IyYjI2MmQyMGYxYTJhMTRhMmRkYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1kZXNjcmlw
dG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wcm9wZXJ0eS1kZXNjcmlwdG9ycy1leHBlY3RlZC50eHQKQEAgLTM4LDYgKzM4LDcgQEAgUEFT
UyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdDb3VudGVy
JykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3Iod2luZG93LCAnRE9NRXhjZXB0aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NSW1wbGVtZW50YXRpb24nKSBp
cyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3
aW5kb3csICdET01QYXJzZXInKSBpcyAnb2JqZWN0JworUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TZXR0YWJsZVRva2VuTGlzdCcpIGlzICdv
YmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ0RPTVN0cmluZ0xpc3QnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TdHJpbmdNYXAnKSBpcyAnb2JqZWN0Jwog
UEFTUyB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01U
b2tlbkxpc3QnKSBpcyAnb2JqZWN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQudHh0CmluZGV4IGNiMzMzODc0NTFh
YWRkM2ZjMzVkZjQyNjUwZThkZTk3YTYxOTU0MGEuLjZkODY2MDg3MzRlYWI5NjU2MjM5NGNhYjQ4
ODQ4OGE4MjJjM2FmZmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlw
ZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKQEAgLTIyNiw2ICsyMjYsNyBAQCBO
ZXZlciBmb3VuZCBDYW52YXNHcmFkaWVudAogTmV2ZXIgZm91bmQgQ2hhcmFjdGVyRGF0YQogTmV2
ZXIgZm91bmQgQ2xpcGJvYXJkCiBOZXZlciBmb3VuZCBET01QYXJzZXIKK05ldmVyIGZvdW5kIERP
TVNldHRhYmxlVG9rZW5MaXN0CiBOZXZlciBmb3VuZCBET01TdHJpbmdMaXN0CiBOZXZlciBmb3Vu
ZCBEb2N1bWVudAogTmV2ZXIgZm91bmQgRG9jdW1lbnRGcmFnbWVudApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQKaW5k
ZXggZmE2NDc2YWRkYTY4MjFkNzdiZmIzYzIyNjBmZDcxM2M0NWY4MWQzZi4uNTNjNDMzOTZlNjU3
Mzg2NmM5ZWVkNDM5ZTRiZjFlYWQ5MzU4OTNiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtZXhwZWN0ZWQudHh0CkBAIC03Myw2ICs3
Myw4IEBAIFBBU1MgaW5uZXIuRE9NSW1wbGVtZW50YXRpb24uaXNJbm5lciBpcyB0cnVlCiBQQVNT
IGlubmVyLkRPTUltcGxlbWVudGF0aW9uLmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFT
UyBpbm5lci5ET01QYXJzZXIuaXNJbm5lciBpcyB0cnVlCiBQQVNTIGlubmVyLkRPTVBhcnNlci5j
b25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKK1BBU1MgaW5uZXIuRE9NU2V0dGFibGVUb2tlbkxp
c3QuaXNJbm5lciBpcyB0cnVlCitQQVNTIGlubmVyLkRPTVNldHRhYmxlVG9rZW5MaXN0LmNvbnN0
cnVjdG9yLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdMaXN0LmlzSW5uZXIg
aXMgdHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdMaXN0LmNvbnN0cnVjdG9yLmlzSW5uZXIgaXMg
dHJ1ZQogUEFTUyBpbm5lci5ET01TdHJpbmdNYXAuaXNJbm5lciBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAppbmRl
eCAyMTQzYjg2ZDM1M2I3OWRhZTRhODkxMzU3YmIyNGQ2MmI1NDE3OGY5Li43MzcxM2JlMWRjOWJh
MjMwNTYyYThmZTJiNGFiNzdlNjNiNTNiYjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTM2LDYgKzM2LDcgQEAg
UEFTUyBDb3VudGVyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ291bnRlckNvbnN0cnVjdG9yXScK
IFBBU1MgRE9NRXhjZXB0aW9uLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NRXhjZXB0aW9uQ29u
c3RydWN0b3JdJwogUEFTUyBET01JbXBsZW1lbnRhdGlvbi50b1N0cmluZygpIGlzICdbb2JqZWN0
IERPTUltcGxlbWVudGF0aW9uQ29uc3RydWN0b3JdJwogUEFTUyBET01QYXJzZXIudG9TdHJpbmco
KSBpcyAnW29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0nCitQQVNTIERPTVNldHRhYmxlVG9r
ZW5MaXN0LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NU2V0dGFibGVUb2tlbkxpc3RDb25zdHJ1
Y3Rvcl0nCiBQQVNTIERPTVN0cmluZ0xpc3QudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01TdHJp
bmdMaXN0Q29uc3RydWN0b3JdJwogUEFTUyBET01TdHJpbmdNYXAudG9TdHJpbmcoKSBpcyAnW29i
amVjdCBET01TdHJpbmdNYXBDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTVRva2VuTGlzdC50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IERPTVRva2VuTGlzdENvbnN0cnVjdG9yXScKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRl
cml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYTkyN2YxMWQ2Nzk3NjA1YTIzMDNlN2Y2MGZiMGJi
YjQxNjNjOTEwZS4uN2E4NTBhM2FkYWIwMTkzMTIwOGE0MzFjYzFhM2JlMzZiZDExY2FhOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKKysrIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTE1OSw2ICsxNTksNyBAQCBH
RU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0Jsb2IuaCBcCiAgICAgJChpbnRl
cm1lZGlhdGVzKS9odG1sL0pTQmxvYkJ1aWxkZXIuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9o
dG1sL0pTRE9NRm9ybURhdGEuaCBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRE9NU2V0
dGFibGVUb2tlbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRE9NVG9rZW5M
aXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RhdGFHcmlkQ29sdW1uLmggXAog
ICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RhdGFHcmlkQ29sdW1uTGlzdC5oIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0Fu
ZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IGE3MzE1N2Q3MWFjZGViZmQ3YzI4NjE2
YWE2YTFkZDkzMWQ4YTI0NmUuLjRlZWRlNGM3NjRlMzE3ZWRlODUyOWFhZTdiZjE3ZDAwOThjNzE3
MjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysr
IGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMTQxLDYgKzE0MSw3
IEBAIEdFTiA6PSBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJsb2IuaCBcCiAg
ICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEJsb2JCdWlsZGVyLmggXAogICAgICQoaW50
ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhET01Ub2tlbkxpc3QuaCBcCisgICAgJChpbnRlcm1lZGlh
dGVzKS9iaW5kaW5ncy9WOERPTVNldHRhYmxlVG9rZW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRp
YXRlcykvYmluZGluZ3MvVjhEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMp
L2JpbmRpbmdzL1Y4RGF0YUdyaWRDb2x1bW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykv
YmluZGluZ3MvVjhGaWxlLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRp
bmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCmluZGV4IDMyODgwNTljMDYz
OWU0NDFlZjBhMjM0MWVkZWM0Y2JhNzU5YThlOGYuLjcyZWI1MzM2OTkzYzk2NzU0NDQ5OGIyZmNh
NDhlNDgyNzAyN2ZlYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
aworKysgYi9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKQEAgLTgzLDYgKzgzLDcgQEAg
TE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIFwKIAli
aW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuY3BwIFwKKwliaW5kaW5ncy9qcy9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNw
cCBcCiAJYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3QuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4
IGUyMGIyZTVjN2JlZWNiYTE1M2RlNTVmNzYyNmUzMzdmODc2MjRlODYuLmVhMGMyOWVlM2QxMmQ2
MzdkYzhkMGI4ZGIwY2IyYmM1NzRkNzlmZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5t
aworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTI2NiwxMCArMjY2LDEzIEBAIExPQ0FMX1NS
Q19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWh0bWwvQmFzZVRleHRJbnB1dFR5cGUu
Y3BwIFwKIAlodG1sL0J1dHRvbklucHV0VHlwZS5jcHAgXAogCWh0bWwvQ2hlY2tib3hJbnB1dFR5
cGUuY3BwIFwKKwlodG1sL0NsYXNzTGlzdC5jcHAgXAogCWh0bWwvQ29sbGVjdGlvbkNhY2hlLmNw
cCBcCiAJaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIFwKIAlodG1sL0NvbG9ySW5w
dXRUeXBlLmNwcCBcCiAJaHRtbC9ET01Gb3JtRGF0YS5jcHAgXAorCWh0bWwvRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwIFwKKwlodG1sL0RPTVRva2VuTGlzdC5jcHAgXAogCWh0bWwvRGF0ZUlucHV0
VHlwZS5jcHAgXAogCWh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIFwKIAlodG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDQyZTM0NGE4ZjgyNjY2MDMxNWJlODk0ZTVk
NWQwZTAwMDAzMjI4ZjkuLjNkODc5MTkzNzg5ODhkMGJjMGYyNjRjZDQwM2IwZTY1MWI1NWFhNDIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMjA3LDYgKzIwNyw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0
bWwvRGF0YUdyaWRDb2x1bW4uaWRsCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaWRsCiAg
ICAgaHRtbC9ET01Gb3JtRGF0YS5pZGwKKyAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0Lmlk
bAogICAgIGh0bWwvRE9NVG9rZW5MaXN0LmlkbAogICAgIGh0bWwvSFRNTEFsbENvbGxlY3Rpb24u
aWRsCiAgICAgaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwKQEAgLTk1MywxMCArOTU0LDEyIEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcAogICAg
IGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcAogICAgIGh0bWwvQ2hlY2tib3hJbnB1dFR5cGUuY3Bw
CisgICAgaHRtbC9DbGFzc0xpc3QuY3BwCiAgICAgaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwCiAg
ICAgaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKICAgICBodG1sL0RPTURhdGFHcmlkRGF0YVNvdXJj
ZS5jcHAKICAgICBodG1sL0RPTUZvcm1EYXRhLmNwcAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tl
bkxpc3QuY3BwCiAgICAgaHRtbC9ET01Ub2tlbkxpc3QuY3BwCiAgICAgaHRtbC9EYXRhR3JpZENv
bHVtbi5jcHAKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE1ODkyNWQ5YjJiMjM2
ZGI5NTc3ZTRkMTlhNTlmZmJmMzQ3ODYxNS4uZGY5YWQ4ZGUyOTgxZWVjMzlkYjdiMmIxYjAxYjY1
MTJiZTg4OWE2ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw5MSBAQAorMjAxMC0xMC0yNiAgS2VuaWNoaSBJc2hpYmFzaGkg
IDxiYXNoaUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtIVE1MNV0gQWRkIERPTVNldHRhYmxlVG9rZW5MaXN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzgxMAorCisgICAgICAgIEFk
ZHMgRE9NU2V0dGFibGVUb2tlbkxpc3QgaW50ZXJmYWNlIHRvIHN1cHBvcnQgPG91dHB1dD4gZWxl
bWVudC4KKyAgICAgICAgVGhlIERPTVRva2VuTGlzdCBpbnRlcmZhY2Ugd2FzIHJlZmFjdG9yZWQg
c2luY2UgaXRzIHdhcyB0aWdodGx5IGNvdXBsZWQKKyAgICAgICAgd2l0aCBIVE1MRWxlbWVudC5j
bGFzc0xpc3QgcHJvcGVydHkuCisKKyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQuanNjYmluZGlu
Z3MubWs6IEFkZGVkIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBmaWxlLgorICAgICAgICAqIEFu
ZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rOiBBZGRlZCBWOERPTVNldHRhYmxlVG9rZW5MaXN0
LmggZmlsZS4KKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOiBBZGRlZCBKU0RPTVNl
dHRhYmxlVG9rZW5MaXN0LmNwcCBmaWxlLgorICAgICAgICAqIEFuZHJvaWQubWs6IEFkZGVkIENs
YXNzTGlzdC5jcHAgZmlsZS4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgRE9NU2V0
dGFibGVUb2tlbkxpc3Que2NwcCxpZGx9IGFuZCBDbGFzc0xpc3QuY3BwIGZpbGVzLgorICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLmNwcDogQWRkZWQgSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAg
ZmlsZS4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZCBET01TZXR0YWJsZVRv
a2VuTGlzdCBlbnRyeS4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgSlNET01TZXR0
YWJsZVRva2VuTGlzdC57aCxjcHB9IGFuZCBDbGFzc0xpc3Que2gsY3BwfSBmaWxlcy4KKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6IEFkZGVkIERPTVNldHRhYmxlVG9rZW5MaXN0LntoLGNwcCxpZGx9
LCBWOERPTVNldHRhYmxlVG9rZW5MaXN0Q3VzdG9tLmNwcCBhbmQgQ2xhc3NMaXN0LntoLGNwcH0g
ZmlsZXMuCisgICAgICAgICogV2ViQ29yZS5wcmk6IEFkZGVkIERPTVNldHRhYmxlVG9rZW5MaXN0
LmlkbCBmaWxlLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBBZGRlZCBWOERPTVNldHRhYmxlVG9r
ZW5MaXN0Q3VzdG9tLmNwcCwgQ2xhc3NMaXN0LntoLGNwcH0gYW5kIERPTVNldHRhYmxlVG9rZW5M
aXN0LntoLGNwcH0gZmlsZXMuCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6IEFkZGVkIEpTRE9NU2V0dGFibGVUb2tlbkxpc3Que2gsY3BwfSwgQ2xhc3NMaXN0LntoLGNw
cH0gYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0LntoLGNwcH0gZmlsZXMuCisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBDbGFzc0xpc3Que2gsY3BwfSwg
RE9NU2V0dGFibGV0b2tlbkxpc3Que2gsY3BwfSBhbmQgSlNET01TZXR0YWJsZVRva2VuTGlzdC57
aCxjcHB9CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbTogQWRkZWQg
V2ViS2l0RE9NRE9NU2V0dGFibGVUb2tlbkxpc3Que2gsY3BwfSBhbmQgV2ViS2l0RE9NRE9NU2V0
dGFibGVUb2tlbkxpc3RQcml2YXRlLmNwcCBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbTogTW9kaWZpZWQgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5n
cygpIHJldHVybnMgMSBmb3IgRE9NU2V0dGFibGVUb2tlbkxpc3QuCisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlY4RE9NU2V0dGFibGVUb2tlbkxpc3Q6OmluZGV4ZWRQcm9wZXJ0eUdl
dHRlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOiBSZXBsYWNlZCBET01Ub2tlbkxpc3Qg
dG8gQ2xhc3NMaXN0LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2xhc3NMaXN0KToKKyAg
ICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6IGRpdHRvLgorICAgICAgICAqIGRvbS9TcGFj
ZVNwbGl0U3RyaW5nLmNwcDogQWRkZWQgYWRkKCkgYW5kIHJlbW92ZSgpIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmdEYXRhOjphZGQpOgorICAgICAgICAoV2Vi
Q29yZTo6U3BhY2VTcGxpdFN0cmluZ0RhdGE6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
cGFjZVNwbGl0U3RyaW5nOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmlu
Zzo6cmVtb3ZlKToKKyAgICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5oOiBBZGRlZCBhZGQo
KSBhbmQgcmVtb3ZlKCkgZnVuY3Rpb25zLgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNw
cDogUmVwbGFjZWQgRE9NVG9rZW5MaXN0IHRvIENsYXNzTGlzdC4KKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlZEVsZW1lbnQ6OmNsYXNzQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogZG9tL1N0
eWxlZEVsZW1lbnQuaDogZGl0dG8uCisgICAgICAgICogaHRtbC9DbGFzc0xpc3QuY3BwOiBBZGRl
ZCwgbW9zdGx5IGZyb20gb3JpZ2luYWwgRE9NVG9rZW5MaXN0LmNwcC4KKyAgICAgICAgKFdlYkNv
cmU6OkNsYXNzTGlzdDo6Q2xhc3NMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6
cmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6ZGVyZWYpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xhc3NMaXN0OjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0Ojpp
dGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y29udGFpbnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q2xhc3NMaXN0Ojpjb250YWluc0ludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsYXNzTGlzdDo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6YWRkSW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpyZW1vdmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xhc3NMaXN0OjpyZW1vdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFz
c0xpc3Q6OnRvZ2dsZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnRvU3RyaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2xhc3NMaXN0OjpjbGFzc05hbWVzKToKKyAgICAgICAgKiBodG1sL0NsYXNzTGlzdC5oOiBBZGRl
ZCwgbW9zdGx5IGZyb20gb3JpZ2luYWwgRE9NVG9rZW5MaXN0LmguCisgICAgICAgIChXZWJDb3Jl
OjpDbGFzc0xpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmVsZW1l
bnQpOgorICAgICAgICAqIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjpET01TZXR0YWJsZVRva2VuTGlz
dCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6fkRPTVNldHRhYmxl
VG9rZW5MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjppdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojpjb250YWlucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6YWRkKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0OjphZGRJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVNldHRhYmxlVG9rZW5MaXN0OjpyZW1vdmVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZXR0YWJsZVRva2VuTGlzdDo6dG9nZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRh
YmxlVG9rZW5MaXN0OjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9ET01TZXR0YWJsZVRva2Vu
TGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJlZik6Cisg
ICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6ZGVyZWYpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6Omxlbmd0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpET01TZXR0YWJsZVRva2VuTGlzdDo6dG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
U2V0dGFibGVUb2tlbkxpc3Q6OnZhbHVlKToKKyAgICAgICAgKiBodG1sL0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuY3BwOiBSZWZh
Y3RvcmVkIHRvIGJlIGFuIGFic3RyYWN0IGludGVyZmFjZSBmb3IgYm90aCBvZiBDbGFzc0xpc3Qg
YW5kIERPTVNldHRhYmxlVG9rZW5MaXN0LgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0
Ojp2YWxpZGF0ZVRva2VuKTogQ2hhbmdlZCB0byBiZSBhIHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24g
b2YgRE9NVG9rZW5MaXN0LgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjphZGRUb2tl
bik6IEFkZGVkLCBtb3N0bHkgZnJvbSBvcmlnaW5hbCBET01Ub2tlbkxpc3Q6OmFkZEludGVybmFs
KCkuCisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnJlbW92ZVRva2VuKTogQWRkZWQs
IG1vc3RseSBmcm9tIG9yaWdpbmFsIERPTVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJuYWwoKS4KKyAg
ICAgICAgKiBodG1sL0RPTVRva2VuTGlzdC5oOiBSZWZhY3RvcmVkIHRvIGJlIGFuIGFic3RyYWN0
IGludGVyZmFjZSBmb3IgYm90aCBvZiBDbGFzc0xpc3QgYW5kIERPTVNldHRhYmxlVG9rZW5MaXN0
LgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0Ojp+RE9NVG9rZW5MaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6ZWxlbWVudCk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuY3BwOiBBZGRlZCBhbiBlbnRyeSBmb3IgRE9NU2V0dGFibGVUb2tlbkxpc3QuCisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuaWRsOiBkaXR0by4KKwogMjAxMC0xMC0yNSAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFF0IGJ1aWxkIGZp
eCBmb3IgcjcwNDk2LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCAwMWY1MDIzOGY3NzNkMzAxZWIwZGE0Y2Iw
OTk5MDY0Zjk3ZDg0NGZjLi44MGMxMzA0MjNmNjY2MGU4M2JlNmNiZWJiNmVkM2YzNTkwZjA3NjE3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcApAQCAtOTIsNiArOTIsNyBAQAogI2luY2x1ZGUgIkpTRE9NUGx1Z2lu
LmNwcCIKICNpbmNsdWRlICJKU0RPTVBsdWdpbkFycmF5LmNwcCIKICNpbmNsdWRlICJKU0RPTVNl
bGVjdGlvbi5jcHAiCisjaW5jbHVkZSAiSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiCiAjaW5j
bHVkZSAiSlNET01TdHJpbmdMaXN0LmNwcCIKICNpbmNsdWRlICJKU0RPTVN0cmluZ01hcC5jcHAi
CiAjaW5jbHVkZSAiSlNET01Ub2tlbkxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM0MmJi
N2I1YTY5YmVhYTVmYTk1OGU0OTM2YzZkNzllZjgwZGVmZDYuLjRlNzMyZGU1YTgwNmYzYTMyZDU5
ODgxOTUyNmM0ZTlmYTJlMzdlOTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNSw2ICsxMjUsNyBA
QCBET01fQ0xBU1NFUyA9IFwKICAgICBET01TZWxlY3Rpb24gXAogICAgIERPTVN0cmluZ0xpc3Qg
XAogICAgIERPTVN0cmluZ01hcCBcCisgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QgXAogICAgIERP
TVRva2VuTGlzdCBcCiAgICAgRE9NV2luZG93IFwKICAgICBEYXRhYmFzZSBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBj
NmUzOTc4NjgzZGE5YjhjMDc0YjI0MzBhZGY4NTU1YjhiMjk3ZmQ3Li4wMDI0M2I5ZmI2M2Y3NDBk
ZWNmY2E0OThjY2IyZTFlZTIzY2M1NWNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIyMSw2ICsyMjEsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01QbHVn
aW4uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVNlbGVjdGlvbi5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TZWxlY3Rpb24uaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNET01TdHJpbmdMaXN0LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVN0cmlu
Z0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RPTVN0cmluZ01hcC5jcHAgXApA
QCAtMTQ3MiwxMCArMTQ3NCwxNCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1N0eWxlLmNwcCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oIFwK
KwlXZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKKwlXZWJDb3JlL2h0bWwv
RE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAJV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAg
XAogCVdlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaCBcCiAJV2ViQ29yZS9odG1sL0NoZWNrYm94
SW5wdXRUeXBlLmNwcCBcCiAJV2ViQ29yZS9odG1sL0NoZWNrYm94SW5wdXRUeXBlLmggXAorCVdl
YkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwIFwKKwlXZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmggXAog
CVdlYkNvcmUvaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKIAlXZWJDb3JlL2h0bWwvQ29sbGVj
dGlvbkNhY2hlLmggXAogCVdlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZmJh
MWMzMzk3ZjVlMWZiMDkxZWQ3ZTIyNzhjNzE4MTVkZTA0ZjFmZS4uNGQ5ODY3NWVjOTBmMTU2MjRl
OGFhOWVmYzU4NWFjZDI0ZDRkYjdiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExNyw2ICsxMTcsNyBAQAogICAgICAgICAg
ICAgJ2ZpbGVhcGkvTWV0YWRhdGEuaWRsJywKICAgICAgICAgICAgICdmaWxlYXBpL01ldGFkYXRh
Q2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdodG1sL0RPTUZvcm1EYXRhLmlkbCcsCisgICAg
ICAgICAgICAnaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvRE9NVG9rZW5MaXN0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbi5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmlkbCcsCkBAIC03Nzcs
NiArNzc4LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhEaXJlY3RvcnlF
bnRyeVN5bmNDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhE
b2N1bWVudExvY2F0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9j
dXN0b20vVjhET01TZXR0YWJsZVRva2VuTGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVRva2VuTGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAnLApAQCAtMTU1MSw2
ICsxNTUzLDggQEAKICAgICAgICAgICAgICdodG1sL0J1dHRvbklucHV0VHlwZS5oJywKICAgICAg
ICAgICAgICdodG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9D
aGVja2JveElucHV0VHlwZS5oJywKKyAgICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5jcHAnLAor
ICAgICAgICAgICAgJ2h0bWwvQ2xhc3NMaXN0LmgnLAogICAgICAgICAgICAgJ2h0bWwvQ29sbGVj
dGlvbkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xsZWN0aW9uQ2FjaGUuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9Db2xsZWN0aW9uVHlwZS5oJywKQEAgLTE1NjAsNiArMTU2NCw4IEBA
CiAgICAgICAgICAgICAnaHRtbC9ET01EYXRhR3JpZERhdGFTb3VyY2UuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9ET01Gb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEu
aCcsCisgICAgICAgICAgICAnaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAnLAorICAgICAg
ICAgICAgJ2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCcsCiAgICAgICAgICAgICAnaHRtbC9E
T01Ub2tlbkxpc3QuY3BwJywKICAgICAgICAgICAgICdodG1sL0RPTVRva2VuTGlzdC5oJywKICAg
ICAgICAgICAgICdodG1sL0RhdGFHcmlkQ29sdW1uLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJpIGIvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCAwNTFmNGQ5YzI2NWQzZjYx
MWEyMDM3NzY0ZDIxOWJiNzA2ZmNiYjc1Li4zYjM4YTQ1NjQ4MjU4YTU3NDMzYWQ4Y2Y3MDM1YmE3
NjMxNjczMzNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5wcmkKQEAgLTIwNyw2ICsyMDcsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0
bWwvRGF0YUdyaWRDb2x1bW4uaWRsIFwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5pZGwg
XAogICAgIGh0bWwvRE9NRm9ybURhdGEuaWRsIFwKKyAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5M
aXN0LmlkbCBcCiAgICAgaHRtbC9ET01Ub2tlbkxpc3QuaWRsIFwKICAgICBodG1sL0hUTUxBbGxD
b2xsZWN0aW9uLmlkbCBcCiAgICAgaHRtbC9IVE1MQXVkaW9FbGVtZW50LmlkbCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA4NDg2
OWI0Mjg5YTY1YzE5ZjFiN2FlN2VlYTczNGRiMjgyMTU2ZWY0Li5hNTdkY2Y1ZTFmY2JmZTE5YTJj
ODQxNWU3N2E0YTg1YzdjZGI2MTc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTQwMyw2ICs0MDMsNyBAQCB2OCB7CiAgICAgICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3Bw
IFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5jcHAg
XAorICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TZXR0YWJsZVRva2VuTGlzdEN1c3Rv
bS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NVG9rZW5MaXN0Q3VzdG9tLmNw
cAogCkBAIC04NDMsMTAgKzg0NCwxMiBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0Jhc2VUZXh0
SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIFwKICAgICBodG1s
L0NoZWNrYm94SW5wdXRUeXBlLmNwcCBcCisgICAgaHRtbC9DbGFzc0xpc3QuY3BwIFwKICAgICBo
dG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAgXAogICAgIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIFwK
ICAgICBodG1sL0RPTURhdGFHcmlkRGF0YVNvdXJjZS5jcHAgXAogICAgIGh0bWwvRE9NRm9ybURh
dGEuY3BwIFwKKyAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAgICAgaHRtbC9E
T01Ub2tlbkxpc3QuY3BwIFwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmNwcCBcCiAgICAgaHRt
bC9EYXRhR3JpZENvbHVtbkxpc3QuY3BwIFwKQEAgLTE3NDksMTIgKzE3NTIsMTQgQEAgSEVBREVS
UyArPSBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5oIFwKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzU3R5bGUuaCBcCisgICAgaHRtbC9DbGFzc0xpc3QuaCBcCiAgICAgaHRtbC9Db2xsZWN0
aW9uQ2FjaGUuaCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5oIFwKICAgICBodG1sL0RhdGFH
cmlkQ29sdW1uTGlzdC5oIFwKICAgICBodG1sL0RhdGVDb21wb25lbnRzLmggXAogICAgIGh0bWwv
RE9NRGF0YUdyaWREYXRhU291cmNlLmggXAogICAgIGh0bWwvRE9NRm9ybURhdGEuaCBcCisgICAg
aHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKICAgICBodG1sL0RPTVRva2VuTGlzdC5oIFwK
ICAgICBodG1sL0Zvcm1EYXRhTGlzdC5oIFwKICAgICBodG1sL0ZUUERpcmVjdG9yeURvY3VtZW50
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYzcwMDA3NDMwYTcy
YzVmZTAxOTE1M2FiYzNkZmVjOTEzYjQ5NDZiZi4uNjEwOWVkNGY3NDEzYmIwYmI1ZGI0MDk2ODY2
ZmU0OGMzYzQ4Zjc2NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0z
OTU5LDYgKzM5NTksNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRE9NU3RyaW5nTGlzdC5jcHAiDQog
CQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtNDgxMTEsNiArNDgxNjcsMTQgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxDbGFzc0xpc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxDbGFzc0xpc3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ29sbGVjdGlvbkNhY2hlLmNwcCIN
CiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00ODI3NSw2ICs0ODMzOSwxNCBA
QAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxo
dG1sXERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0
bWxcRE9NVG9rZW5MaXN0LmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBjYmQ3ZjAwMTVmM2Y3ZDRjYTMxZTEy
OWQ4NTEzNGRhYTY5ZTA3Y2YuLmQzYTIyZTBkYjk0NzAzNDAwNmZhMzVkZGM2OTc5YmRjNmE2MmIx
OTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTE2
LDYgKzExMTYsMTIgQEAKIAkJNDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNE
MTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmggKi87IH07CiAJCTQ5RkZCRjQwMTFDOTNF
RTMwMDZBNzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDlGRkJGM0UxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIu
bW0gKi87IH07CiAJCTRBOEM5NkVCMEJFNjkwMzIwMDRFRUZGMCAvKiBTZWxlY3Rpb25Db250cm9s
bGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEE4Qzk2RUEwQkU2OTAzMjAwNEVFRkYwIC8qIFNlbGVjdGlvbkNvbnRyb2xsZXJNYWMubW0gKi87
IH07CisJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQkMxMjcxM0NCRDAw
OTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi87IH07CisJCTRBQ0JDMEJGMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAqLzsgfTsKKwkJ
NEFDQkMwQzMxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEMwMTI3MTND
Q0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi87IH07CisJCTRBQ0JDMEM0
MTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEFDQkMwQzExMjcxM0NDQTAwOTRGOUIy
IC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggKi87IH07CisJCTRBQ0JDMENBMTI3MTNEMEEwMDk0
RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEM4MTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RP
TVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLzsgfTsKKwkJNEFDQkMwQ0IxMjcxM0QwQTAwOTRGOUIy
IC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JDMEM5MTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNldHRh
YmxlVG9rZW5MaXN0LmggKi87IH07CiAJCTRCMjcwOEM3MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0
ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovOyB9OwogCQk0QjI3MDk4
MzBBRjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCMjcwOTgxMEFGMkU1RTAwMDY1MTI3RiAvKiBQ
YXN0ZWJvYXJkTWFjLm1tICovOyB9OwogCQk0QjMwNDNDNzBBRTAzNzAzMDBBODI2NDcgLyogU291
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCMzA0
M0M2MEFFMDM3MDMwMEE4MjY0NyAvKiBTb3VuZC5oICovOyB9OwpAQCAtNzE4OSw2ICs3MTk1LDEz
IEBACiAJCTQ5RkZCRjNEMTFDOTNFRTMwMDZBNzExOCAvKiBXZWJHTExheWVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDlGRkJGM0UxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJHTExheWVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QThDOTZFQTBCRTY5MDMyMDA0RUVGRjAgLyogU2Vs
ZWN0aW9uQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBTZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tOyBwYXRoID0gbWFjL1NlbGVjdGlvbkNv
bnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBQ0JDMEJDMTI3
MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ2xhc3NMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NEFDQkMwQkQxMjcxM0NCRDAwOTRGOUIyIC8qIENsYXNzTGlzdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDbGFzc0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNEFDQkMwQzAxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVNldHRhYmxlVG9rZW5MaXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEFDQkMwQzExMjcxM0NDQTAwOTRG
OUIyIC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTVNldHRhYmxlVG9rZW5MaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTRBQ0JDMEMyMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QUNCQzBDODEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01T
ZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNEFDQkMwQzkxMjcxM0QwQTAwOTRGOUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01TZXR0YWJsZVRva2VuTGlzdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0Yg
LyogUGFzdGVib2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXN0ZWJv
YXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCMjcwOTgxMEFGMkU1RTAwMDY1
MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUGFzdGVib2FyZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEIzMDQzQzYwQUUwMzcwMzAwQTgyNjQ3IC8qIFNvdW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTb3VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ1
NzUsNiArMTQ1ODgsOCBAQAogCQkJCUY1NUIzRDdDMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25J
bnB1dFR5cGUuaCAqLywKIAkJCQlGNTVCM0Q3RDEyNTFGMTJEMDAzRUYyNjkgLyogQ2hlY2tib3hJ
bnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDdFMTI1MUYxMkQwMDNFRjI2OSAvKiBDaGVja2Jv
eElucHV0VHlwZS5oICovLAorCQkJCTRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xp
c3QuY3BwICovLAorCQkJCTRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCAq
LywKIAkJCQk5M0M0NDFFRDBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmNwcCAq
LywKIAkJCQk5M0M0NDFFRTBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmggKi8s
CiAJCQkJOTNDNDQxRkYwRjgxM0FFMTAwQzFBNjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi8sCkBA
IC0xNDYwMCw2ICsxNDYxNSw5IEBACiAJCQkJMkVENjA5QkExMTQ1QjA3MTAwQzg2ODRFIC8qIERP
TUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRUQ2MDlCQjExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9y
bURhdGEuaCAqLywKIAkJCQkyRTA4ODhDMzExNDg4M0E5MDBBRjQyNjUgLyogRE9NRm9ybURhdGEu
aWRsICovLAorCQkJCTRBQ0JDMEMwMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2Vu
TGlzdC5jcHAgKi8sCisJCQkJNEFDQkMwQzExMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRhYmxl
VG9rZW5MaXN0LmggKi8sCisJCQkJNEFDQkMwQzIxMjcxM0NDQTAwOTRGOUIyIC8qIERPTVNldHRh
YmxlVG9rZW5MaXN0LmlkbCAqLywKIAkJCQk3NkZDMkIwODEyMzcwREEwMDA2QTk5MUEgLyogRE9N
VG9rZW5MaXN0LmNwcCAqLywKIAkJCQk3NkZDMkIwOTEyMzcwREEwMDA2QTk5MUEgLyogRE9NVG9r
ZW5MaXN0LmggKi8sCiAJCQkJNzZGQzJCMEExMjM3MERBMDAwNkE5OTFBIC8qIERPTVRva2VuTGlz
dC5pZGwgKi8sCkBAIC0xNTE1MCw2ICsxNTE2OCw4IEBACiAJCQkJQkM3N0QxNjgwRkYxOUY1NTAw
NzA4ODdCIC8qIEpTRGF0YUdyaWRDb2x1bW5MaXN0LmggKi8sCiAJCQkJMkUwODg4RDIxMTQ4ODQ4
QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuY3BwICovLAogCQkJCTJFMDg4OEQzMTE0ODg0OEEw
MEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmggKi8sCisJCQkJNEFDQkMwQzgxMjcxM0QwQTAwOTRG
OUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovLAorCQkJCTRBQ0JDMEM5MTI3MTNE
MEEwMDk0RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggKi8sCiAJCQkJNzY5NDU2M0Ex
MjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0LmNwcCAqLywKIAkJCQk3Njk0NTYzQjEy
MTREOTdDMDAwN0NCQUUgLyogSlNET01Ub2tlbkxpc3QuaCAqLywKIAkJCQk0OUVFQ0VGNDEwNTA3
MEM0MDAwOTlGQUIgLyogSlNGbG9hdDMyQXJyYXkuY3BwICovLApAQCAtMTg0NjAsNiArMTg0ODAs
NyBAQAogCQkJCUE4MTg3MjIwMDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNEQ4MjM1MjBBRjkyQTc5MDAwNEYwNTcgLyogQ2hyb21lLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNEQ4MjQwODBBRjkzQUVCMDAwNEYwNTcgLyogQ2hyb21lQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0QUNCQzBCRjEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkwNEI3NzBEMTA5OThGMDA2ODBEMzIgLyogQ2xh
c3NOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3
IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENE
MkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xODU5OCw2ICsxODYx
OSw5IEBACiAJCQkJOTMzMDlERTEwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNv
bW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTgyMDgyNDVFNTkwMDFFOUFCQyAvKiBE
ZXByZWNhdGVkUHRyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NkQwODI0NUU1OTAw
MUU5QUJDIC8qIERlcHJlY2F0ZWRQdHJMaXN0SW1wbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDgx
Q0RGQjgxMjZFQ0ZEQjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwODFDREZCOTEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRl
ZFNWR0FuaW1hdGVkUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4MUNERkJB
MTI2RUNGREIwMEQyMTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzFGQjFBNTcxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNTkxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTVCMTIwQTVE
MDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTE4ODg3
LDYgKzE4OTExLDcgQEAKIAkJCQk4NTVEMzU4QTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29s
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRDBGQzRGMERCRDcyMEIwMEIyRjYzMCAvKiBET01S
R0JDb2xvckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVBODY4NTBDMzM2NzYwMDBF
RUE2NDkgLyogRE9NU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QUNCQzBDNDEyNzEz
Q0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUM1NDQyNzRCMTFBNTdFN0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzY0NjQwQTExRDdGMzA0MDA2NDU1QjAgLyogRE9NU3RyaW5nTWFwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkY1MDI1QjEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xOTQ4NSw2ICsxOTUxMCw3IEBACiAJCQkJQjJDM0RBNjgwRDAw
NkNENjAwRUY2RjI2IC8qIEZvbnRGYWxsYmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTZBMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFtaWx5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODBFNkNGMzBBMTk4OUNBMDA3RkI4QzUgLyogRm9udEZhbWlseVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGN0EwMzRDNDEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCNTMyMEQ2QjEyMkEyNEU5MDAyRDE0NDAgLyogRm9udFBsYXRm
b3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdBQ0NFNDIwREEyOTgwRjAwODlFNjAyIC8q
IEZvbnRSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2QjBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udFNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTE5Njk1LDYgKzE5
NzIxLDcgQEAKIAkJCQk0OUU5MTFDNTBFRjg2RDQ3MDA5RDBDQUYgLyogSWRlbnRpdHlUcmFuc2Zv
cm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUMwQzA1NENEMTExOEM4RTQwMENFMjYz
NiAvKiBJRExQYXJzZXIucG0gaW4gSGVhZGVycyAqLywKIAkJCQlDMEMwNTRDRTExMThDOEU0MDBD
RTI2MzYgLyogSURMU3RydWN0dXJlLnBtIGluIEhlYWRlcnMgKi8sCisJCQkJOEFCNEJDNzcxMjZG
REI3MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU3MDBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyQTEwQjkyMEIzODE4QkQwMDA5OUFBNCAvKiBJbWFnZUJ1ZmZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBOTc5MTcxMjE1RDA1NTAwNUM0ODVDIC8qIEltYWdl
QnVmZmVyRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xOTc0MCw2ICsxOTc2Nyw3IEBACiAJCQkJ
OUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRjA2MjAxMEY1RjBCNjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JSZXNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODJBQjE3NzYxMjVDODI2NzAwQzUwNjlEIC8qIElu
c3BlY3RvclJlc291cmNlQWdlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTRGQTNCOTBCMTI1Q0Qx
MjIwMDMwMEJBRCAvKiBJbnNwZWN0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FCMEIx
QzExMjExQTYyMjAwQTc2OTQwIC8qIEluc3BlY3RvclN0b3JhZ2VBZ2VudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODJBQjE3NzQxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc1NDEzM0E4MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0
b3JUaW1lbGluZUFnZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE5ODQ1LDYgKzE5ODczLDcgQEAK
IAkJCQlBOUQyNDdGRjBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW4uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE5RDI0ODAxMEQ3NTdFNjkwMEZERjk1OSAvKiBKU0RPTVBsdWdpbkFycmF5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzVBODZCNjBDMzM2N0U4MDBFRUE2NDkgLyogSlNET01TZWxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRBQ0JDMENCMTI3MTNEMEEwMDk0RjlCMiAvKiBK
U0RPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEzN0NGMzExQTU4
Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0
NjQ5ODExRDgyMzQ5MDA2NDU1QjAgLyogSlNET01TdHJpbmdNYXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCTc2OTQ1NjNEMTIxNEQ5N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMDI2Niw2ICsyMDI5NSw3IEBACiAJCQkJMUE4RjZCQzYwREI1NUNEQzAwMURC
Nzk0IC8qIE1hbmlmZXN0UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTg0QzA5RDU2
NDlEMDAwM0FDOEQgLyogTWFwcGVkQXR0cmlidXRlRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzMzA5REY4MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBBY2N1bXVsYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkFCRTcyRjUxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY3MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxJbmxp
bmVDb250YWluZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGOTEwNTlDMUVC
MDBEOTk5REQgLyogTWF0aE1MTWF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjA3MzEs
OCArMjA3NjEsMTYgQEAKIAkJCQk2NTY1M0YyRTBEOTcyN0QyMDBDQTk3MjMgLyogU1ZHQWx0R2x5
cGhFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk3NzBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHQW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTdBMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdBbmltYXRlQ29sb3JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwODkwMjFB
OTEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBpbiBIZWFkZXJzICovLAor
CQkJCTA4OTAyMUFEMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aExpc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTA4OEEwRTA0MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRl
ZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTg1MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlZFBhdGhEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyNzk4ODBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZWRQb2ludHMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTA4OEEwRTA1MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwODhBMEUwNjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5p
bWF0ZWRQcm9wZXJ0eURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwODhBMEUwNzEy
NkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMDgxQ0RGQkYxMjZFQ0ZFODAwRDIxNUNBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlT
eW5jaHJvbml6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4OEEwRTA4MTI2RUYxREIwMDk3OEY3
QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIy
Mjc5OTAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyNzk5MzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTk1MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDgxMCw2ICsyMDg0
OCw3IEBACiAJCQkJQjIyMjdBMzkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBM0MwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR0xpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0EzRTBEMDBCRjIyMDA3
MUI3ODIgLyogU1ZHTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg4QTBFMDkxMjZFRjFEQjAw
OTc4RjdBIC8qIFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3QTNGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMaXN0VHJhaXRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyN0E0MTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTG9jYXRhYmxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwODM4NUZGNjEwRjAxODYwMDBCRkUwN0IgLyogU1ZHTWFya2VyRGF0YS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yMDg1NSw2ICsyMDg5NCw5IEBACiAJCQkJQjIyMjdBOTEwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR1BvbHlnb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
N0E5NDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRp
by5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1By
b3BlcnR5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhGN0EgLyog
U1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKKwkJCQkwODhBMEUwQzEyNkVGMURC
MDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QTlBMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIyMjI3QTlFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdSZWN0RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBQTAwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JlbmRl
cmluZ0ludGVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTE0MSwyNSArMjExODMsNiBAQAogCQkJ
CTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk5N0RENEQ4NzBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNEZBM0I5MEIxMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3Rv
clN0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyog
TWFya3VwQWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUY3QTAzNEM0MTI2QkY2QkUw
MDdEQzE5RSAvKiBGb250T3JpZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTA4MUNERkI4
MTI2RUNGREIwMEQyMTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMDgxQ0RGQjkxMjZFQ0ZEQjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdB
bmltYXRlZFByb3BlcnR5VHJhaXRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwODFDREZCQTEyNkVD
RkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRlZFNWR0FuaW1hdGVkVGVtcGxhdGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTA4MUNERkJGMTI2RUNGRTgwMEQyMTVDQSAvKiBTVkdBbmltYXRlZFByb3BlcnR5
U3luY2hyb25pemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUwNDEyNkVGMURCMDA5NzhG
N0EgLyogU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwODhBMEUwNTEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMDg4QTBFMDYxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJv
cGVydHlEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDg4QTBFMDcxMjZFRjFEQjAw
OTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlNYWNyb3MuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTA4OEEwRTA4MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMDg4QTBFMDkxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0xpc3RQ
cm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAotCQkJCTA4OEEwRTBBMTI2RUYxREIwMDk3
OEY3QSAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDg4QTBFMEIxMjZFRjFE
QjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDg4
QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwODkwMjFBOTEyNkVGNURFMDA5MkQ1RUEgLyogU1ZHQW5pbWF0ZWRMZW5ndGguaCBp
biBIZWFkZXJzICovLAotCQkJCTA4OTAyMUFEMTI2RUY1RTkwMDkyRDVFQSAvKiBTVkdBbmltYXRl
ZExlbmd0aExpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCThBQjRCQzc3MTI2RkRCNzEwMERFQjcy
NyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVkQW5nbGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTc1ODk3OEVEMTI3MDkwRDYwMDc2RDVBOSAvKiBTcGVlY2hJbnB1
dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwpAQCAtMjE1NzYsNiArMjE1OTksNyBAQAog
CQkJCUE4MTg3MjI1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGlsZE5vZGVMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0RDgyMzhCMEFGOTJERjYwMDA0RjA1NyAvKiBDaHJvbWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8qIENocm9tZU1hYy5tbSBp
biBTb3VyY2VzICovLAorCQkJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNz
Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3
IC8qIENsaWVudFJlY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1ODAwRjNDRTFCNzAw
Q0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjE4NDksNiAr
MjE4NzMsNyBAQAogCQkJCTg1OEMzOEE4MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNBRUZDQUUxMDE2Q0U0QTAwNDBEMzRFIC8qIERPTVJHQkNvbG9y
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1QTg2ODQwQzMzNjc2MDAwRUVBNjQ5IC8qIERPTVNl
bGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0QUNCQzBDMzEyNzEzQ0NBMDA5NEY5QjIg
LyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1NjEwRjEx
MUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM2NDY0MDkxMUQ3RjMwNDAwNjQ1NUIwIC8qIERPTVN0cmluZ01hcC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkY1MDI1QzEwMkJBOTAxMDA2NkYzOUEgLyogRE9NU3R5bGVNZWRpYS5tbSBpbiBT
b3VyY2VzICovLApAQCAtMjIzMTMsNiArMjIzMzgsNyBAQAogCQkJCUI4ODVFOEQ0MTFFMDZERDIw
MDlGRkJGNCAvKiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJN0E3NEVDQkExMDE4MzlBNjAwQkY5MzlFIC8qIEluc3BlY3RvckJhY2tlbmQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNEY3MDdBOTkxMUVGNjc5NDAwQUNEQTY5IC8qIEluc3BlY3Rv
ckJhY2tlbmREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdBMUYyQjUyMTI2QzYx
QjIwMDA2QTdFNiAvKiBJbnNwZWN0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM4
MUI5NUIwRTk3MzMwODAwMjY2RTA3IC8qIEluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODJBQjE3NDMxMjRCOTlFQzAwQzUwNjlEIC8qIEluc3BlY3RvckNTU0FnZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQjY1ODlBMTE4OUU0NzYwMEUwNTJBMSAvKiBJbnNw
ZWN0b3JDU1NTdG9yZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyMzI3LDYgKzIyMzUzLDcgQEAK
IAkJCQk5RjBENkIyRTEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUYwNjIwMjBGNUYwQjY2MDBBMDdFQUMgLyogSW5zcGVj
dG9yUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzUxMjVDODI2NzAwQzUw
NjlEIC8qIEluc3BlY3RvclJlc291cmNlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNEZB
M0I5MEExMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdBQjBCMUMwMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JTdG9yYWdlQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJBQjE3NzMxMjVDODI2NzAwQzUwNjlEIC8qIEluc3Bl
Y3RvclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTMzQUExMDJFMDBGNDAw
MDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
MjQ1Nyw2ICsyMjQ4NCw3IEBACiAJCQkJQTlDNkU2NEMwRDc0NjVFNzAwNjQ0MkU5IC8qIEpTRE9N
UGx1Z2luQXJyYXlDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU2NEQwRDc0NjVF
NzAwNjQ0MkU5IC8qIEpTRE9NUGx1Z2luQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NUE4NkI1MEMzMzY3RTgwMEVFQTY0OSAvKiBKU0RPTVNlbGVjdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0QUNCQzBDQTEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTEzN0NGMjExQTU4Mzc4MDA0QURCOTkgLyogSlNE
T01TdHJpbmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDk3MTFEODIzNDkwMDY0
NTVCMCAvKiBKU0RPTVN0cmluZ01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQ5QzEx
RDgyMzhDMDA2NDU1QjAgLyogSlNET01TdHJpbmdNYXBDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yMjkyMCw2ICsyMjk0OCw3IEBACiAJCQkJMUE5ODk1NkIwQUE3OEY4MDAwNUVGNUVGIC8q
IEtVUkxDRk5ldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTkzOTIzQTA5QUU0MzVDMDAyQzUz
MUYgLyogS1VSTE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE0NTZGQTI2MTFBRDRBODMwMDIw
QjQyMCAvKiBMYWJlbHNOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTg3NzJGMTEy
NkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1MjA4
NDUwOUJENDNCOTAwRjIwMzhEIC8qIExhbmd1YWdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MDY2MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxMkREOEY0MEQ5MUU2QUYwMDBGODlFRSAvKiBMZWdhY3lXZWJBcmNoaXZlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjI5NDQsNiArMjI5NzMsNyBAQAogCQkJCTkzRTIyN0UxMEFGNTg5QUQw
MEQ0ODMyNCAvKiBNYWluUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4
RjZCQzUwREI1NUNEQzAwMURCNzk0IC8qIE1hbmlmZXN0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMzA5REY3MDk5RTY0OTIwMDU2RTU4MSAvKiBtYXJrdXAuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJOTcyOEMzMTMxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkY0MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZBQkU3MkZEMTA1OUMyMTEwMEQ5OTlERCAv
KiBNYXRoTUxFbGVtZW50RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQUJFNzJGNjEw
NTlDMUVCMDBEOTk5REQgLyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTIzNzEwLDEwICsyMzc0MCw2IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAw
MUU5QUJDIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
QkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTdERDREODYwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNEZBM0I5MEExMjVDRDEyMjAwMzAwQkFEIC8qIEluc3BlY3RvclN0YXRl
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTk3MjhDMzEzMTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJr
dXBBY2N1bXVsYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTg3NzJGMTEyNkUyNjI5MDAz
REQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJN0ExRjJCNTIxMjZDNjFC
MjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTNG
MDFGMTEyNzBFMTkwMDBERkJBNzEgLyogQ29va2llU3RvcmFnZU1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTc1ODk3OEVDMTI3MDkwRDYwMDc2RDVBOSAvKiBTcGVlY2hJbnB1dFJlc3VsdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUu
YW0KaW5kZXggZDgwOGUxODk5ZjNhZmJkN2FmNWI4NzNkNmVlZjZjYWE1MTE1YmQzNC4uMzM4ZDdm
OTRlOTFjMTg5MzU1OWE5MDAyNTQ1N2RkMjMwMDBiNGMyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvZ29i
amVjdC9HTlVtYWtlZmlsZS5hbQpAQCAtNDksNiArNDksOCBAQCB3ZWJraXRndGtfZ2RvbV9idWls
dF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5n
TGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTVN0cmlu
Z01hcC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TdHJpbmdNYXBQ
cml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0YWJsZVRv
a2VuTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0YWJs
ZVRva2VuTGlzdFByaXZhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURP
TVRva2VuTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01Ub2tl
bkxpc3RQcml2YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01XaW5k
b3cuY3BwIFwKQEAgLTI2Myw2ICsyNjUsNyBAQCB3ZWJraXRndGtfYnVpbHRfaF9hcGkgKz0gXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50LmggXAogCURl
cml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Eb2N1bWVudFR5cGUuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmggXAorCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdC9XZWJLaXRET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlEZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTWFwLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01ET01Ub2tlbkxpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQppbmRleCA3MGMzMjdlNzI4OTI5NDgxNjMwNzJiMjc1MDUyMGJiODU2MGZi
YWRkLi4zYjc3NWQ4YWRhYWMzNTYzM2M3YzVlYzIzYzRkNmU4MDgwMTFhMjE4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI0MCw3ICsyNDAsNyBA
QCBzdWIgSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncwogewogICAgIG15ICR0eXBlID0gc2hpZnQ7
CiAKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIgb3IgJHR5
cGUgZXEgIk1lZGlhTGlzdCIgb3IgJHR5cGUgZXEgIkNTU1ZhcmlhYmxlc0RlY2xhcmF0aW9uIiBv
ciAkdHlwZSBlcSAiRE9NU3RyaW5nTGlzdCIgb3IgJHR5cGUgZXEgIkRPTVRva2VuTGlzdCI7Cisg
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iIG9yICR0eXBlIGVx
ICJNZWRpYUxpc3QiIG9yICR0eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIgb3IgJHR5
cGUgZXEgIkRPTVN0cmluZ0xpc3QiIG9yICR0eXBlIGVxICJET01Ub2tlbkxpc3QiIG9yICR0eXBl
IGVxICJET01TZXR0YWJsZVRva2VuTGlzdCI7CiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TZXR0YWJsZVRva2VuTGlz
dEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVlYjFlMGMyZDMyM2JkNWRlNjlhMDdmNzVjNjk0MDBi
YWJkN2MzNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWOERPTVNldHRhYmxlVG9rZW5M
aXN0LmgiCisKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgorCisjaW5jbHVkZSAi
VjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhQcm94eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVNldHRhYmxlVG9rZW5MaXN0OjppbmRleGVk
UHJvcGVydHlHZXR0ZXIodWludDMyX3QgaW5kZXgsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLgorICAgIHJldHVy
biB2OFN0cmluZygiIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXgg
ZjNkMzg4ZWRmN2Y4YjBhODdkMmU4NzVmODZjYTU5ZWQyYmQ0MjI1Yy4uYTA4Yzk4ZjZmZWJhNGIw
NzNmNjIwYTJmZGRkODNiMDdkNWZhM2JiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKICNpbmNs
dWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVk
ZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5jbHVkZSAi
RE9NVG9rZW5MaXN0LmgiCkBAIC0xNjE1LDcgKzE2MTYsNyBAQCBET01Ub2tlbkxpc3QqIEVsZW1l
bnQ6OmNsYXNzTGlzdCgpCiB7CiAgICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gZW5zdXJlUmFy
ZURhdGEoKTsKICAgICBpZiAoIWRhdGEtPm1fY2xhc3NMaXN0KQotICAgICAgICBkYXRhLT5tX2Ns
YXNzTGlzdCA9IERPTVRva2VuTGlzdDo6Y3JlYXRlKHRoaXMpOworICAgICAgICBkYXRhLT5tX2Ns
YXNzTGlzdCA9IENsYXNzTGlzdDo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBkYXRhLT5tX2Ns
YXNzTGlzdC5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmggYi9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCBmMWU2MzM0MThjYzI0
NjY5NTNhODkyOWE4MGMzY2NjYzU2ZWJjZDhhLi4wNmJmZTBjN2RhYjcyODI1MTc2NmQ3ZTVhZWRl
NGJjMmVjODZlNjFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAor
KysgYi9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMjIsNyArMjIsNyBAQAogI2lm
bmRlZiBFbGVtZW50UmFyZURhdGFfaAogI2RlZmluZSBFbGVtZW50UmFyZURhdGFfaAogCi0jaW5j
bHVkZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAi
RGF0YXNldERPTVN0cmluZ01hcC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJO
b2RlUmFyZURhdGEuaCIKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwogCiAgICAgT3duUHRyPERhdGFzZXRET01TdHJpbmdN
YXA+IG1fZGF0YXNldERPTVN0cmluZ01hcDsKLSAgICBPd25QdHI8RE9NVG9rZW5MaXN0PiBtX2Ns
YXNzTGlzdDsKKyAgICBPd25QdHI8Q2xhc3NMaXN0PiBtX2NsYXNzTGlzdDsKIH07CiAKIGlubGlu
ZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6aW5nKCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIGIvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0
cmluZy5jcHAKaW5kZXggOGEyNzEwY2MzMGVmMWFhNDk1ODE2MjUzMjRhOGRlNjcyZWRlNDVhZi4u
NGJkNWIxYjk2OTg3MmUyZGNhMGQ0ZTVkNWUxNjBjNWI0ZDhkMTNhNCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKKysrIGIvV2ViQ29yZS9kb20vU3BhY2VTcGxp
dFN0cmluZy5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdURjsKIApAQCAtOTAsNCArOTEsMzcg
QEAgYm9vbCBTcGFjZVNwbGl0U3RyaW5nRGF0YTo6Y29udGFpbnNBbGwoU3BhY2VTcGxpdFN0cmlu
Z0RhdGEmIG90aGVyKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFNwYWNlU3BsaXRTdHJp
bmdEYXRhOjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcpCit7CisgICAgaWYgKGNvbnRh
aW5zKHN0cmluZykpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdmVjdG9yLmFwcGVuZChzdHJp
bmcpOworfQorCit2b2lkIFNwYWNlU3BsaXRTdHJpbmdEYXRhOjpyZW1vdmUoY29uc3QgQXRvbWlj
U3RyaW5nJiBzdHJpbmcpCit7CisgICAgZW5zdXJlVmVjdG9yKCk7CisKKyAgICBzaXplX3QgcG9z
aXRpb24gPSAwOworICAgIHdoaWxlIChwb3NpdGlvbiA8IG1fdmVjdG9yLnNpemUoKSkgeworICAg
ICAgICBpZiAobV92ZWN0b3JbcG9zaXRpb25dID09IHN0cmluZykKKyAgICAgICAgICAgIG1fdmVj
dG9yLnJlbW92ZShwb3NpdGlvbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICsrcG9zaXRp
b247CisgICAgfQorfQorCit2b2lkIFNwYWNlU3BsaXRTdHJpbmc6OmFkZChjb25zdCBBdG9taWNT
dHJpbmcmIHN0cmluZykKK3sKKyAgICBpZiAobV9kYXRhKQorICAgICAgICBtX2RhdGEtPmFkZChz
dHJpbmcpOworfQorCit2b2lkIFNwYWNlU3BsaXRTdHJpbmc6OnJlbW92ZShjb25zdCBBdG9taWNT
dHJpbmcmIHN0cmluZykKK3sKKyAgICBpZiAobV9kYXRhKQorICAgICAgICBtX2RhdGEtPnJlbW92
ZShzdHJpbmcpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggYi9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5n
LmgKaW5kZXggMDljYThkOTZjNTE1MTU1OGJmYmYyNjZmNzU3YzBiODgzOTgyYjRmYy4uODI2ZTZi
ZDAzNzg5OGU0MDc3MmRhNDA3M2Q3YmJmNTUyYTFlYWNlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vU3BhY2VTcGxpdFN0cmluZy5oCisrKyBiL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aApAQCAtNDgsNiArNDgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBj
b250YWluc0FsbChTcGFjZVNwbGl0U3RyaW5nRGF0YSYpOwogCisgICAgICAgIHZvaWQgYWRkKGNv
bnN0IEF0b21pY1N0cmluZyYpOworICAgICAgICB2b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJp
bmcmKTsKKwogICAgICAgICBzaXplX3Qgc2l6ZSgpIHsgZW5zdXJlVmVjdG9yKCk7IHJldHVybiBt
X3ZlY3Rvci5zaXplKCk7IH0KICAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBvcGVyYXRvcltd
KHNpemVfdCBpKSB7IGVuc3VyZVZlY3RvcigpOyBBU1NFUlQoaSA8IHNpemUoKSk7IHJldHVybiBt
X3ZlY3RvcltpXTsgfQogCkBAIC03Miw2ICs3NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaW5nKSBjb25zdCB7
IHJldHVybiBtX2RhdGEgJiYgbV9kYXRhLT5jb250YWlucyhzdHJpbmcpOyB9CiAgICAgICAgIGJv
b2wgY29udGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0
dXJuICFuYW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1l
cy5tX2RhdGEpKTsgfQorICAgICAgICB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAg
ICAgICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKICAgICAgICAgc2l6ZV90
IHNpemUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEgPyBtX2RhdGEtPnNpemUoKSA6IDA7IH0KICAg
ICAgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9kYXRhOyB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1l
bnQuY3BwCmluZGV4IDEyNzQ0Y2IwNjBjOWQ5MjBlNzNlMTQzNWEzNjQ1NGQ0MzhiMDk5NzMuLjcz
ODRjMGJjMmFiZmExNjg2NGViY2VjNTgyODk3M2NkZTAxMzkxYTEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogCiAjaW5j
bHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQ2xhc3NMaXN0LmgiCiAjaW5jbHVkZSAiQ1NT
U3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBTdHlsZWRFbGVtZW50
OjpjbGFzc0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJiBuZXdDbGFzc1N0cmlu
ZykKICAgICBpZiAoaGFzQ2xhc3MpIHsKICAgICAgICAgYXR0cmlidXRlcygpLT5zZXRDbGFzcyhu
ZXdDbGFzc1N0cmluZyk7CiAgICAgICAgIGlmIChET01Ub2tlbkxpc3QqIGNsYXNzTGlzdCA9IG9w
dGlvbmFsQ2xhc3NMaXN0KCkpCi0gICAgICAgICAgICBjbGFzc0xpc3QtPnJlc2V0KG5ld0NsYXNz
U3RyaW5nKTsKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PENsYXNzTGlzdCo+KGNsYXNzTGlzdCkt
PnJlc2V0KG5ld0NsYXNzU3RyaW5nKTsKICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZU1hcCgpKQog
ICAgICAgICBhdHRyaWJ1dGVNYXAoKS0+Y2xlYXJDbGFzcygpOwogICAgIHNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaCBiL1dlYkNv
cmUvZG9tL1N0eWxlZEVsZW1lbnQuaAppbmRleCA0YjYyMzg4MTQ0NGUxODU0MDc2MzYzYzBjYzY5
MjFiOTg3M2QzMDYxLi44MDQwZGJmMWUzNjhhY2I3ZjRlYThlODM1N2ExYjE1YWY4MDQyZjAzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5oCkBAIC0zMiw3ICszMiw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEF0dHJpYnV0ZTsKLWNsYXNzIENsYXNzTGlzdDsKIGNsYXNzIENTU01hcHBlZEF0dHJp
YnV0ZURlY2xhcmF0aW9uOwogCiBjbGFzcyBTdHlsZWRFbGVtZW50IDogcHVibGljIEVsZW1lbnQg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAgYi9XZWJDb3JlL2h0bWwv
Q2xhc3NMaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Nzg2MDFiNzJiYzBhMDAxZjg3ZjMyZGRhNDY4ZmIy
YWJhZjFmODE5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAK
QEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDbGFzc0xpc3QuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiU3Bh
Y2VTcGxpdFN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitDbGFz
c0xpc3Q6OkNsYXNzTGlzdChFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9lbGVtZW50KGVsZW1l
bnQpCit7CisgICAgaWYgKG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisg
ICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG1fZWxlbWVudC0+ZmFzdEdldEF0
dHJpYnV0ZShjbGFzc0F0dHIpLCBmYWxzZSk7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZWYoKQor
eworICAgIG1fZWxlbWVudC0+cmVmKCk7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpkZXJlZigpCit7
CisgICAgbV9lbGVtZW50LT5kZXJlZigpOworfQorCit1bnNpZ25lZCBDbGFzc0xpc3Q6Omxlbmd0
aCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+aGFzQ2xhc3MoKSA/IGNsYXNzTmFt
ZXMoKS5zaXplKCkgOiAwOworfQorCitjb25zdCBBdG9taWNTdHJpbmcgQ2xhc3NMaXN0OjppdGVt
KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKKyAg
ICAgICAgcmV0dXJuIEF0b21pY1N0cmluZygpOworICAgIHJldHVybiBjbGFzc05hbWVzKClbaW5k
ZXhdOworfQorCitib29sIENsYXNzTGlzdDo6Y29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2Vu
KHRva2VuLCBlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gY29udGFpbnNJ
bnRlcm5hbCh0b2tlbik7Cit9CisKK2Jvb2wgQ2xhc3NMaXN0Ojpjb250YWluc0ludGVybmFsKGNv
bnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+
aGFzQ2xhc3MoKSAmJiBjbGFzc05hbWVzKCkuY29udGFpbnModG9rZW4pOworfQorCit2b2lkIENs
YXNzTGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAgICAgICByZXR1cm47
CisgICAgYWRkSW50ZXJuYWwodG9rZW4pOworfQorCit2b2lkIENsYXNzTGlzdDo6YWRkSW50ZXJu
YWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKK3sKKyAgICBjb25zdCBBdG9taWNTdHJpbmcm
IG9sZENsYXNzTmFtZShtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSk7Cisg
ICAgaWYgKG9sZENsYXNzTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIG1fZWxlbWVudC0+c2V0QXR0
cmlidXRlKGNsYXNzQXR0ciwgdG9rZW4pOworICAgIGVsc2UgaWYgKCFjb250YWluc0ludGVybmFs
KHRva2VuKSkgeworICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5ld0NsYXNzTmFtZShhZGRU
b2tlbihvbGRDbGFzc05hbWUsIHRva2VuKSk7CisgICAgICAgIG1fZWxlbWVudC0+c2V0QXR0cmli
dXRlKGNsYXNzQXR0ciwgbmV3Q2xhc3NOYW1lKTsKKyAgICB9Cit9CisKK3ZvaWQgQ2xhc3NMaXN0
OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7
CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCisgICAgICAgIHJldHVybjsKKyAg
ICByZW1vdmVJbnRlcm5hbCh0b2tlbik7Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZW1vdmVJbnRl
cm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQoreworICAgIC8vIENoZWNrIHVzaW5nIGNv
bnRhaW5zIGZpcnN0IHNpbmNlIGl0IHVzZXMgQXRvbWljU3RyaW5nIGNvbXBhcmlzb25zIGluc3Rl
YWQKKyAgICAvLyBvZiBjaGFyYWN0ZXIgYnkgY2hhcmFjdGVyIHRlc3RpbmcuCisgICAgaWYgKCFj
b250YWluc0ludGVybmFsKHRva2VuKSkKKyAgICAgICAgcmV0dXJuOworICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmV3Q2xhc3NOYW1lKHJlbW92ZVRva2VuKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJp
YnV0ZShjbGFzc0F0dHIpLCB0b2tlbikpOworICAgIG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNs
YXNzQXR0ciwgbmV3Q2xhc3NOYW1lKTsKK30KKworYm9vbCBDbGFzc0xpc3Q6OnRvZ2dsZShjb25z
dCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXZh
bGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KGNvbnRhaW5zSW50ZXJuYWwodG9rZW4pKSB7CisgICAgICAgIHJlbW92ZUludGVybmFsKHRva2Vu
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBhZGRJbnRlcm5hbCh0b2tlbik7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1N0cmluZyBDbGFzc0xpc3Q6OnRvU3RyaW5nKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cik7
Cit9CisKK3ZvaWQgQ2xhc3NMaXN0OjpyZXNldChjb25zdCBTdHJpbmcmIG5ld0NsYXNzTmFtZSkK
K3sKKyAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuaXNOdWxsKCkpCisgICAgICAg
IG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuc2V0KG5ld0NsYXNzTmFtZSwgZmFsc2UpOworfQor
Citjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBDbGFzc0xpc3Q6OmNsYXNzTmFtZXMoKSBjb25zdAor
eworICAgIEFTU0VSVChtX2VsZW1lbnQtPmhhc0NsYXNzKCkpOworICAgIGlmICghbV9jbGFzc05h
bWVzRm9yUXVpcmtzTW9kZS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIG1fY2xhc3NOYW1lc0Zv
clF1aXJrc01vZGU7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+YXR0cmlidXRlTWFwKCktPmNsYXNz
TmFtZXMoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0NsYXNzTGlzdC5oIGIvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjkzYWVhNjBiZTU2NThkZjJhOWIzZGQxMjY5Yzk0ZWQxYzdjYzE0YWMKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBDbGFzc0xpc3RfaAorI2RlZmluZSBDbGFzc0xpc3RfaAorCisjaW5jbHVk
ZSAiRE9NVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUg
IlNwYWNlU3BsaXRTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEVsZW1lbnQ7CisKK2NsYXNzIENsYXNzTGlzdCA6IHB1
YmxpYyBET01Ub2tlbkxpc3QgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPENsYXNz
TGlzdD4gY3JlYXRlKEVsZW1lbnQqIGVsZW1lbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IENsYXNzTGlzdChlbGVtZW50KSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lk
IHJlZigpOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpOworCisgICAgdmlydHVhbCB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVu
c2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMoY29uc3QgQXRv
bWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhZGQo
Y29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwg
Ym9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZp
cnR1YWwgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVs
ZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KKworICAgIHZvaWQgcmVzZXQoY29uc3QgU3Ry
aW5nJik7CisKK3ByaXZhdGU6CisgICAgQ2xhc3NMaXN0KEVsZW1lbnQqKTsKKworICAgIHZvaWQg
YWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgYm9vbCBjb250YWluc0ludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OworICAgIHZvaWQgcmVtb3ZlSW50ZXJuYWwo
Y29uc3QgQXRvbWljU3RyaW5nJik7CisKKyAgICBjb25zdCBTcGFjZVNwbGl0U3RyaW5nJiBjbGFz
c05hbWVzKCkgY29uc3Q7CisKKyAgICBFbGVtZW50KiBtX2VsZW1lbnQ7CisgICAgU3BhY2VTcGxp
dFN0cmluZyBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gQ2xhc3NMaXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tl
bkxpc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2MzZiZDNhYjNiODJlZmQwYjRjZTQwZDFhNWJjNmE1YmRl
ZDlkMDMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxp
c3QuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0RPTVNldHRhYmxlVG9rZW5MaXN0OjpET01TZXR0YWJsZVRva2VuTGlzdCgpCisgICAg
OiBtX3ZhbHVlKCkKKyAgICAsIG1fdG9rZW5zKCkKK3sKK30KKworRE9NU2V0dGFibGVUb2tlbkxp
c3Q6On5ET01TZXR0YWJsZVRva2VuTGlzdCgpCit7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyBE
T01TZXR0YWJsZVRva2VuTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBp
ZiAoaW5kZXggPj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmcoIiIpOwor
ICAgIHJldHVybiBtX3Rva2Vuc1tpbmRleF07Cit9CisKK2Jvb2wgRE9NU2V0dGFibGVUb2tlbkxp
c3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVj
KSBjb25zdAoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKTsKK30KKwor
dm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4s
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMp
IHx8IG1fdG9rZW5zLmNvbnRhaW5zKHRva2VuKSkKKyAgICAgICAgcmV0dXJuOworICAgIGFkZElu
dGVybmFsKHRva2VuKTsKK30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6YWRkSW50ZXJu
YWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKK3sKKyAgICBtX3ZhbHVlID0gYWRkVG9rZW4o
bV92YWx1ZSwgdG9rZW4pOworICAgIG1fdG9rZW5zLmFkZCh0b2tlbik7Cit9CisKK3ZvaWQgRE9N
U2V0dGFibGVUb2tlbkxpc3Q6OnJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSB8fCAh
bV90b2tlbnMuY29udGFpbnModG9rZW4pKQorICAgICAgICByZXR1cm47CisgICAgcmVtb3ZlSW50
ZXJuYWwodG9rZW4pOworfQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpyZW1vdmVJbnRl
cm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQoreworICAgIG1fdmFsdWUgPSByZW1vdmVU
b2tlbihtX3ZhbHVlLCB0b2tlbik7CisgICAgbV90b2tlbnMucmVtb3ZlKHRva2VuKTsKK30KKwor
Ym9vbCBET01TZXR0YWJsZVRva2VuTGlzdDo6dG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwg
ZWMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fdG9rZW5zLmNvbnRhaW5zKHRv
a2VuKSkgeworICAgICAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgYWRkSW50ZXJuYWwodG9rZW4pOworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5MaXN0OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZh
bHVlKQoreworICAgIG1fdmFsdWUgPSB2YWx1ZTsKKyAgICBtX3Rva2Vucy5zZXQodmFsdWUsIHRy
dWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2Vu
TGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJiNzExYjRhMjQ2NGVhYTYwNjEwNTFlM2ExMWY0MjY1M2ZkNWZk
YzEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERPTVNldHRhYmxlVG9r
ZW5MaXN0X2gKKyNkZWZpbmUgRE9NU2V0dGFibGVUb2tlbkxpc3RfaAorCisjaW5jbHVkZSAiRE9N
VG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlNwYWNl
U3BsaXRTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NU2V0dGFibGVUb2tlbkxpc3QgOiBwdWJsaWMg
RE9NVG9rZW5MaXN0LCBwdWJsaWMgUmVmQ291bnRlZDxET01TZXR0YWJsZVRva2VuTGlzdD4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBjcmVh
dGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01TZXR0YWJsZVRva2Vu
TGlzdCgpKTsKKyAgICB9CisgICAgdmlydHVhbCB+RE9NU2V0dGFibGVUb2tlbkxpc3QoKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCByZWYoKSB7IFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+
OjpyZWYoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpIHsgUmVmQ291bnRlZDxET01TZXR0
YWJsZVRva2VuTGlzdD46OmRlcmVmKCk7IH0KKworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3QgeyByZXR1cm4gbV90b2tlbnMuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgdG9nZ2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJu
IHZhbHVlKCk7IH0KKworICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7
IH0KKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOworCitwcml2YXRlOgorICAgIERP
TVNldHRhYmxlVG9rZW5MaXN0KCk7CisKKyAgICB2b2lkIHJlbW92ZUludGVybmFsKGNvbnN0IEF0
b21pY1N0cmluZyYpOworICAgIHZvaWQgYWRkSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJik7
CisKKyAgICBTdHJpbmcgbV92YWx1ZTsKKyAgICBTcGFjZVNwbGl0U3RyaW5nIG1fdG9rZW5zOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRE9NU2V0dGFibGVUb2tl
bkxpc3RfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0Lmlk
bCBiL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI2
MDYyM2VlYjQ2M2Q3YzMwZDk2ZjkwMjgxOTEwMDFmNzFhMzM5MQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAg
R2VuZXJhdGVDb25zdHJ1Y3RvciwKKyAgICAgICAgSGFzSW5kZXhHZXR0ZXIsCisgICAgICAgIEdl
bmVyYXRlVG9KUworICAgIF0gRE9NU2V0dGFibGVUb2tlbkxpc3QgOiBET01Ub2tlbkxpc3Qgewor
ICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbHVlOworICAgIH07CisKK30KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5jcHAKaW5kZXggYWEwYTc0YjJhY2JiZDhhNTc5ZGNhZTY2MGU1NTQ5NDI0NzQxZjcxYy4u
M2M5MWYyMDEyNTMwYjI0Zjk4MjZjYjIxZDg3ZTQzYzIzMzM0ZjM2NiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlz
dC5jcHAKQEAgLTI1LDE3ICsyNSwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkRPTVRva2VuTGlzdC5oIgogCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKLSNpbmNsdWRlICJTcGFjZVNw
bGl0U3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7Ci0KLXN0YXRpYyBi
b29sIHZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitib29sIERPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJp
bmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAodG9rZW4uaXNFbXB0eSgp
KSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKQEAgLTUzLDg2ICs0OCwyMyBAQCBzdGF0aWMg
Ym9vbCB2YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ET01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlz
dChFbGVtZW50KiBlbGVtZW50KQotICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCi17Ci0gICAgaWYg
KG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCi0gICAgICAgIG1fY2xhc3NO
YW1lc0ZvclF1aXJrc01vZGUuc2V0KG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0
dHIpLCBmYWxzZSk7Ci19Ci0KLXZvaWQgRE9NVG9rZW5MaXN0OjpyZWYoKQotewotICAgIG1fZWxl
bWVudC0+cmVmKCk7Ci19Ci0KLXZvaWQgRE9NVG9rZW5MaXN0OjpkZXJlZigpCi17Ci0gICAgbV9l
bGVtZW50LT5kZXJlZigpOwotfQotCi11bnNpZ25lZCBET01Ub2tlbkxpc3Q6Omxlbmd0aCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+aGFzQ2xhc3MoKSA/IGNsYXNzTmFtZXMoKS5z
aXplKCkgOiAwOwotfQotCi1jb25zdCBBdG9taWNTdHJpbmcgRE9NVG9rZW5MaXN0OjppdGVtKHVu
c2lnbmVkIGluZGV4KSBjb25zdAotewotICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAg
ICAgcmV0dXJuIEF0b21pY1N0cmluZygpOwotICAgIHJldHVybiBjbGFzc05hbWVzKClbaW5kZXhd
OwotfQotCi1ib29sIERPTVRva2VuTGlzdDo6Y29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiB0
b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Ci17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2Vu
KHRva2VuLCBlYykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gY29udGFpbnNJ
bnRlcm5hbCh0b2tlbik7Ci19Ci0KLWJvb2wgRE9NVG9rZW5MaXN0Ojpjb250YWluc0ludGVybmFs
KGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0CitTdHJpbmcgRE9NVG9rZW5MaXN0Ojph
ZGRUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmIGlucHV0LCBjb25zdCBBdG9taWNTdHJpbmcmIHRv
a2VuKQogewotICAgIHJldHVybiBtX2VsZW1lbnQtPmhhc0NsYXNzKCkgJiYgY2xhc3NOYW1lcygp
LmNvbnRhaW5zKHRva2VuKTsKLX0KKyAgICBpZiAoaW5wdXQuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm4gdG9rZW47CiAKLXZvaWQgRE9NVG9rZW5MaXN0OjphZGQoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRv
a2VuLCBlYykpCi0gICAgICAgIHJldHVybjsKLSAgICBhZGRJbnRlcm5hbCh0b2tlbik7CisgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKGlucHV0KTsKKyAgICBp
ZiAoaW5wdXRbaW5wdXQubGVuZ3RoKCktMV0gIT0gJyAnKQorICAgICAgICBidWlsZGVyLmFwcGVu
ZCgnICcpOworICAgIGJ1aWxkZXIuYXBwZW5kKHRva2VuKTsKKyAgICByZXR1cm4gYnVpbGRlci50
b1N0cmluZygpOwogfQogCi12b2lkIERPTVRva2VuTGlzdDo6YWRkSW50ZXJuYWwoY29uc3QgQXRv
bWljU3RyaW5nJiB0b2tlbikgY29uc3QKK1N0cmluZyBET01Ub2tlbkxpc3Q6OnJlbW92ZVRva2Vu
KGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQsIGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4pCiB7
Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRDbGFzc05hbWUobV9lbGVtZW50LT5mYXN0R2V0
QXR0cmlidXRlKGNsYXNzQXR0cikpOwotICAgIGlmIChvbGRDbGFzc05hbWUuaXNFbXB0eSgpKQot
ICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIHRva2VuKTsKLSAgICBl
bHNlIGlmICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikpIHsKLSAgICAgICAgU3RyaW5nQnVpbGRl
ciBidWlsZGVyOwotICAgICAgICBidWlsZGVyLmFwcGVuZChvbGRDbGFzc05hbWUpOwotICAgICAg
ICBpZiAob2xkQ2xhc3NOYW1lW29sZENsYXNzTmFtZS5sZW5ndGgoKSAtIDFdICE9ICcgJykKLSAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcgJyk7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKHRv
a2VuKTsKLSAgICAgICAgbV9lbGVtZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCBidWlsZGVy
LnRvU3RyaW5nKCkpOwotICAgIH0KLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZShjb25z
dCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIXZh
bGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHJlbW92ZUludGVy
bmFsKHRva2VuKTsKLX0KLQotdm9pZCBET01Ub2tlbkxpc3Q6OnJlbW92ZUludGVybmFsKGNvbnN0
IEF0b21pY1N0cmluZyYgdG9rZW4pIGNvbnN0Ci17Ci0gICAgLy8gQ2hlY2sgdXNpbmcgY29udGFp
bnMgZmlyc3Qgc2luY2UgaXQgdXNlcyBBdG9taWNTdHJpbmcgY29tcGFyaXNvbnMgaW5zdGVhZAot
ICAgIC8vIG9mIGNoYXJhY3RlciBieSBjaGFyYWN0ZXIgdGVzdGluZy4KLSAgICBpZiAoIWNvbnRh
aW5zSW50ZXJuYWwodG9rZW4pKQotICAgICAgICByZXR1cm47Ci0KICAgICAvLyBBbGdvcml0aG0g
ZGVmaW5lZCBhdCBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrL211bHRpcGFnZS9jb21tb24tbWljcm9zeW50YXhlcy5odG1sI3JlbW92ZS1hLXRva2VuLWZy
b20tYS1zdHJpbmcKIAotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaW5wdXQgPSBtX2VsZW1lbnQt
PmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKTsKICAgICB1bnNpZ25lZCBpbnB1dExlbmd0aCA9
IGlucHV0Lmxlbmd0aCgpOwogICAgIFZlY3RvcjxVQ2hhcj4gb3V0cHV0OyAvLyAzCiAgICAgb3V0
cHV0LnJlc2VydmVDYXBhY2l0eShpbnB1dExlbmd0aCk7CkBAIC0xNzAsMzkgKzEwMiw3IEBAIHZv
aWQgRE9NVG9rZW5MaXN0OjpyZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmIHRva2Vu
KSBjb25zdAogICAgIH0KIAogICAgIG91dHB1dC5zaHJpbmtUb0ZpdCgpOwotICAgIG1fZWxlbWVu
dC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgU3RyaW5nOjphZG9wdChvdXRwdXQpKTsKLX0KLQot
Ym9vbCBET01Ub2tlbkxpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGNvbnRhaW5zSW50ZXJuYWwodG9rZW4pKSB7
Ci0gICAgICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICBhZGRJbnRlcm5hbCh0b2tlbik7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVN0
cmluZyBET01Ub2tlbkxpc3Q6OnRvU3RyaW5nKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9lbGVt
ZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cik7Ci19Ci0KLXZvaWQgRE9NVG9rZW5MaXN0
OjpyZXNldChjb25zdCBTdHJpbmcmIG5ld0NsYXNzTmFtZSkKLXsKLSAgICBpZiAoIW1fY2xhc3NO
YW1lc0ZvclF1aXJrc01vZGUuaXNOdWxsKCkpCi0gICAgICAgIG1fY2xhc3NOYW1lc0ZvclF1aXJr
c01vZGUuc2V0KG5ld0NsYXNzTmFtZSwgZmFsc2UpOwotfQotCi1jb25zdCBTcGFjZVNwbGl0U3Ry
aW5nJiBET01Ub2tlbkxpc3Q6OmNsYXNzTmFtZXMoKSBjb25zdAotewotICAgIEFTU0VSVChtX2Vs
ZW1lbnQtPmhhc0NsYXNzKCkpOwotICAgIGlmICghbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZS5p
c051bGwoKSkKLSAgICAgICAgcmV0dXJuIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7Ci0gICAg
cmV0dXJuIG1fZWxlbWVudC0+YXR0cmlidXRlTWFwKCktPmNsYXNzTmFtZXMoKTsKKyAgICByZXR1
cm4gU3RyaW5nOjphZG9wdChvdXRwdXQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmggYi9XZWJDb3JlL2h0bWwvRE9N
VG9rZW5MaXN0LmgKaW5kZXggZmFkNjljYThiOTU5NWUyMTc2OTJkMTAyNGI1MGZiYjg2MDY2M2Q1
My4uNWRmMmVkZTA1ODY3MzNhYTNhYzdmYTc1Y2FjMzBmYjhjMWRjM2RhMCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCisrKyBiL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjYsOSArMjYsOSBAQAogI2RlZmluZSBET01Ub2tlbkxpc3RfaAogCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuaCIKKyNpbmNsdWRlIDx3
dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNiwzNyArMzYsMjUgQEAgY2xhc3MgRWxlbWVudDsKIAog
Y2xhc3MgRE9NVG9rZW5MaXN0IDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxET01Ub2tlbkxpc3Q+IGNyZWF0ZShFbGVtZW50KiBlbGVtZW50KQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBET01Ub2tlbkxpc3QoZWxlbWVudCkp
OwotICAgIH0KKyAgICB2aXJ0dWFsIH5ET01Ub2tlbkxpc3QoKSB7fTsKIAotICAgIHZvaWQgcmVm
KCk7Ci0gICAgdm9pZCBkZXJlZigpOworICAgIHZpcnR1YWwgdm9pZCByZWYoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRlcmVmKCkgPSAwOwogCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7
Ci0gICAgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAg
IGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwotICAgIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICB2b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
Ym9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFN0
cmluZyB0b1N0cmluZygpIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0ZW0odW5zaWduZWQgaW5k
ZXgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNv
bnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZp
cnR1YWwgYm9vbCB0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyB0b1N0cmluZygpIGNvbnN0ID0gMDsKIAotICAgIHZvaWQg
cmVzZXQoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgeyBy
ZXR1cm4gMDsgfQogCi0gICAgRWxlbWVudCogZWxlbWVudCgpIHsgcmV0dXJuIG1fZWxlbWVudDsg
fQotCi1wcml2YXRlOgotICAgIERPTVRva2VuTGlzdChFbGVtZW50Kik7Ci0KLSAgICB2b2lkIGFk
ZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwotICAgIGJvb2wgY29udGFpbnNJ
bnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKLSAgICB2b2lkIHJlbW92ZUludGVy
bmFsKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwotCi0gICAgY29uc3QgU3BhY2VTcGxpdFN0
cmluZyYgY2xhc3NOYW1lcygpIGNvbnN0OwotCi0gICAgRWxlbWVudCogbV9lbGVtZW50OwotICAg
IFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFzc05hbWVzRm9yUXVpcmtzTW9kZTsKK3Byb3RlY3RlZDoK
KyAgICBzdGF0aWMgYm9vbCB2YWxpZGF0ZVRva2VuKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgU3RyaW5nIGFkZFRva2VuKGNvbnN0IEF0b21pY1N0cmlu
ZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIHN0YXRpYyBTdHJpbmcgcmVtb3ZlVG9rZW4o
Y29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDM0ODRhMjdlNjdjNjE4MjAzNjAyMTg3
MjI3YWI2NTNmNjgxMTVlMWEuLjk5NzAxOGQ1ZjFmZjJmYzlhMTg1Mzk4MjJkZDYxZmEwYWMzZTcx
YzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnRM
b2FkZXIuaCIKICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCiAjaW5jbHVkZSAiRE9N
U2VsZWN0aW9uLmgiCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNpbmNsdWRl
ICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJET01U
b2tlbkxpc3QuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggYmY1NzNhNjJmYzAxMzgzZTdkYTEzZmE5MjM2
MmRmMzA4NzEzOTBiMS4uODViZDcwYjhkYzcxZTk0M2NlYjE1OWMyYjc4MjkxMWRjYzY4NDQyYSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKKysrIGIvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwKQEAgLTM4MCw2ICszODAsNyBAQCBtb2R1bGUgd2luZG93IHsKIC8vICAg
ICAgICBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb25MaXN0Q29uc3RydWN0b3IgRE9NSW1wbGVt
ZW50YXRpb25MaXN0OwogLy8gICAgICAgIGF0dHJpYnV0ZSBET01JbXBsZW1lbnRhdGlvblNvdXJj
ZUNvbnN0cnVjdG9yIERPTUltcGxlbWVudGF0aW9uU291cmNlOwogICAgICAgICBhdHRyaWJ1dGUg
RE9NSW1wbGVtZW50YXRpb25Db25zdHJ1Y3RvciBET01JbXBsZW1lbnRhdGlvbjsKKyAgICAgICAg
YXR0cmlidXRlIERPTVNldHRhYmxlVG9rZW5MaXN0Q29uc3RydWN0b3IgRE9NU2V0dGFibGVUb2tl
bkxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBET01Ub2tlbkxpc3RDb25zdHJ1Y3RvciBET01Ub2tl
bkxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVudEZyYWdtZW50Q29uc3RydWN0b3IgRG9j
dW1lbnRGcmFnbWVudDsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgRG9j
dW1lbnQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72300</attachid>
            <date>2010-10-29 01:56:34 -0700</date>
            <delta_ts>2010-10-29 02:32:26 -0700</delta_ts>
            <desc>Patch V6</desc>
            <filename>bug-47810-20101029175632.patch</filename>
            <type>text/plain</type>
            <size>78254</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4M2FjNTg3M2FmNmJjMGQxYzcxOGVhZDY2ODM1MmE0YWUxY2ZiODU2Li5jOTAxMjY2
MGFiOGJjMmZlMmVhODEwYTYzMzMzNzNjYTgyMWUzZWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTAtMjkgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBE
T01TZXR0YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDc4MTAKKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0OiBV
cGRhdGVkIGV4cGVjdGF0aW9ucy4KKyAgICAgICAgKiBmYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJp
dGFuY2UtMi1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorICAgICAgICAqIGZh
c3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQgZXhwZWN0
YXRpb25zLgorICAgICAgICAqIGZhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1leHBlY3RlZC50
eHQ6IFVwZGF0ZWQgZXhwZWN0YXRpb25zLgorCiAyMDEwLTEwLTI5ICBNaWhhaSBQYXJwYXJpdGEg
IDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGgu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRp
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9w
ZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCA4ZDRhNDBkYmM5ZDVlNjNhMWQwMTI3MmNjMTNmMGJh
M2UzZWU2ZjFlLi42MDVhM2I4Yzg0MzYzYTMwNjI3ZDhjOGI5NTY1ZmJlYzA4YzNmOTY3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQKQEAgLTU1NSw2ICs1NTUsMTQgQEAgd2luZG93LkRPTUltcGxlbWVu
dGF0aW9uLnByb3RvdHlwZS5oYXNGZWF0dXJlIFtmdW5jdGlvbl0KIHdpbmRvdy5ET01QYXJzZXIg
W29iamVjdCBET01QYXJzZXJDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5ET01QYXJzZXIucHJvdG90eXBl
IFtvYmplY3QgRE9NUGFyc2VyUHJvdG90eXBlXQogd2luZG93LkRPTVBhcnNlci5wcm90b3R5cGUu
cGFyc2VGcm9tU3RyaW5nIFtmdW5jdGlvbl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdCBb
b2JqZWN0IERPTVNldHRhYmxlVG9rZW5MaXN0Q29uc3RydWN0b3JdCit3aW5kb3cuRE9NU2V0dGFi
bGVUb2tlbkxpc3QucHJvdG90eXBlIFtvYmplY3QgRE9NU2V0dGFibGVUb2tlbkxpc3RQcm90b3R5
cGVdCit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLmFkZCBbZnVuY3Rpb25d
Cit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLmNvbnRhaW5zIFtmdW5jdGlv
bl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUuaXRlbSBbZnVuY3Rpb25d
Cit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLnJlbW92ZSBbZnVuY3Rpb25d
Cit3aW5kb3cuRE9NU2V0dGFibGVUb2tlbkxpc3QucHJvdG90eXBlLnRvU3RyaW5nIFtmdW5jdGlv
bl0KK3dpbmRvdy5ET01TZXR0YWJsZVRva2VuTGlzdC5wcm90b3R5cGUudG9nZ2xlIFtmdW5jdGlv
bl0KIHdpbmRvdy5ET01TdHJpbmdMaXN0IFtvYmplY3QgRE9NU3RyaW5nTGlzdENvbnN0cnVjdG9y
XQogd2luZG93LkRPTVN0cmluZ0xpc3QucHJvdG90eXBlIFtvYmplY3QgRE9NU3RyaW5nTGlzdFBy
b3RvdHlwZV0KIHdpbmRvdy5ET01TdHJpbmdMaXN0LnByb3RvdHlwZS5jb250YWlucyBbZnVuY3Rp
b25dCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3Bl
cnR5LWRlc2NyaXB0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CmluZGV4IGI5ZGU1ODYy
MmZkZGNlOGM3ZmI3MTA1NmE0NzJjNDgxMTI5NDU2MzQuLjhhZDlhNzlmYTQ5ZGUyMzdkYWE2Nzcy
ZjcyNzVjNGUwMjI5YjM0NzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktZGVzY3JpcHRvcnMtZXhwZWN0ZWQu
dHh0CkBAIC0zOCw2ICszOCw3IEBAIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Iod2luZG93LCAnQ291bnRlcicpIGlzICdvYmplY3QnCiBQQVNTIHR5cGVvZiBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgJ0RPTUV4Y2VwdGlvbicpIGlzICdv
YmplY3QnCiBQQVNTIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRv
dywgJ0RPTUltcGxlbWVudGF0aW9uJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9NUGFyc2VyJykgaXMgJ29iamVjdCcK
K1BBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9N
U2V0dGFibGVUb2tlbkxpc3QnKSBpcyAnb2JqZWN0JwogUEFTUyB0eXBlb2YgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csICdET01TdHJpbmdMaXN0JykgaXMgJ29iamVjdCcK
IFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAnRE9N
U3RyaW5nTWFwJykgaXMgJ29iamVjdCcKIFBBU1MgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Iod2luZG93LCAnRE9NVG9rZW5MaXN0JykgaXMgJ29iamVjdCcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLWV4cGVj
dGVkLnR4dAppbmRleCBjYjMzMzg3NDUxYWFkZDNmYzM1ZGY0MjY1MGU4ZGU5N2E2MTk1NDBhLi42
ZDg2NjA4NzM0ZWFiOTY1NjIzOTRjYWI0ODg0ODhhODIyYzNhZmZjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5oZXJpdGFuY2UtMi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNlLTItZXhwZWN0ZWQu
dHh0CkBAIC0yMjYsNiArMjI2LDcgQEAgTmV2ZXIgZm91bmQgQ2FudmFzR3JhZGllbnQKIE5ldmVy
IGZvdW5kIENoYXJhY3RlckRhdGEKIE5ldmVyIGZvdW5kIENsaXBib2FyZAogTmV2ZXIgZm91bmQg
RE9NUGFyc2VyCitOZXZlciBmb3VuZCBET01TZXR0YWJsZVRva2VuTGlzdAogTmV2ZXIgZm91bmQg
RE9NU3RyaW5nTGlzdAogTmV2ZXIgZm91bmQgRG9jdW1lbnQKIE5ldmVyIGZvdW5kIERvY3VtZW50
RnJhZ21lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhl
cml0YW5jZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wcm90b3R5cGUtaW5o
ZXJpdGFuY2UtZXhwZWN0ZWQudHh0CmluZGV4IGZhNjQ3NmFkZGE2ODIxZDc3YmZiM2MyMjYwZmQ3
MTNjNDVmODFkM2YuLjUzYzQzMzk2ZTY1NzM4NjZjOWVlZDQzOWU0YmYxZWFkOTM1ODkzYmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Byb3RvdHlwZS1pbmhlcml0YW5jZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcHJvdG90eXBlLWluaGVyaXRhbmNl
LWV4cGVjdGVkLnR4dApAQCAtNzMsNiArNzMsOCBAQCBQQVNTIGlubmVyLkRPTUltcGxlbWVudGF0
aW9uLmlzSW5uZXIgaXMgdHJ1ZQogUEFTUyBpbm5lci5ET01JbXBsZW1lbnRhdGlvbi5jb25zdHJ1
Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRE9NUGFyc2VyLmlzSW5uZXIgaXMgdHJ1
ZQogUEFTUyBpbm5lci5ET01QYXJzZXIuY29uc3RydWN0b3IuaXNJbm5lciBpcyB0cnVlCitQQVNT
IGlubmVyLkRPTVNldHRhYmxlVG9rZW5MaXN0LmlzSW5uZXIgaXMgdHJ1ZQorUEFTUyBpbm5lci5E
T01TZXR0YWJsZVRva2VuTGlzdC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5u
ZXIuRE9NU3RyaW5nTGlzdC5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRE9NU3RyaW5nTGlz
dC5jb25zdHJ1Y3Rvci5pc0lubmVyIGlzIHRydWUKIFBBU1MgaW5uZXIuRE9NU3RyaW5nTWFwLmlz
SW5uZXIgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29u
c3RydWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0
cnVjdG9ycy1leHBlY3RlZC50eHQKaW5kZXggMjE0M2I4NmQzNTNiNzlkYWU0YTg5MTM1N2JiMjRk
NjJiNTQxNzhmOS4uNzM3MTNiZTFkYzliYTIzMDU2MmE4ZmUyYjRhYjc3ZTYzYjUzYmI0NCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9nbG9iYWwtY29uc3RydWN0b3JzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtZXhwZWN0
ZWQudHh0CkBAIC0zNiw2ICszNiw3IEBAIFBBU1MgQ291bnRlci50b1N0cmluZygpIGlzICdbb2Jq
ZWN0IENvdW50ZXJDb25zdHJ1Y3Rvcl0nCiBQQVNTIERPTUV4Y2VwdGlvbi50b1N0cmluZygpIGlz
ICdbb2JqZWN0IERPTUV4Y2VwdGlvbkNvbnN0cnVjdG9yXScKIFBBU1MgRE9NSW1wbGVtZW50YXRp
b24udG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01JbXBsZW1lbnRhdGlvbkNvbnN0cnVjdG9yXScK
IFBBU1MgRE9NUGFyc2VyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NUGFyc2VyQ29uc3RydWN0
b3JdJworUEFTUyBET01TZXR0YWJsZVRva2VuTGlzdC50b1N0cmluZygpIGlzICdbb2JqZWN0IERP
TVNldHRhYmxlVG9rZW5MaXN0Q29uc3RydWN0b3JdJwogUEFTUyBET01TdHJpbmdMaXN0LnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgRE9NU3RyaW5nTGlzdENvbnN0cnVjdG9yXScKIFBBU1MgRE9NU3Ry
aW5nTWFwLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgRE9NU3RyaW5nTWFwQ29uc3RydWN0b3JdJwog
UEFTUyBET01Ub2tlbkxpc3QudG9TdHJpbmcoKSBpcyAnW29iamVjdCBET01Ub2tlbkxpc3RDb25z
dHJ1Y3Rvcl0nCmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5n
cy5tayBiL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCmluZGV4IGE5Mjdm
MTFkNjc5NzYwNWEyMzAzZTdmNjBmYjBiYmI0MTYzYzkxMGUuLjdhODUwYTNhZGFiMDE5MzEyMDhh
NDMxY2MxYTNiZTM2YmQxMWNhYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVk
LmpzY2JpbmRpbmdzLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdz
Lm1rCkBAIC0xNTksNiArMTU5LDcgQEAgR0VOIDo9IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0
bWwvSlNCbG9iLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0Jsb2JCdWlsZGVyLmgg
XAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RPTUZvcm1EYXRhLmggXAorICAgICQoaW50
ZXJtZWRpYXRlcykvaHRtbC9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggXAogICAgICQoaW50ZXJt
ZWRpYXRlcykvaHRtbC9KU0RPTVRva2VuTGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0
bWwvSlNEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNEYXRh
R3JpZENvbHVtbkxpc3QuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52
OGJpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawppbmRl
eCBhNzMxNTdkNzFhY2RlYmZkN2MyODYxNmFhNmExZGQ5MzFkOGEyNDZlLi40ZWVkZTRjNzY0ZTMx
N2VkZTg1MjlhYWU3YmYxN2QwMDk4YzcxNzI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
ZGVyaXZlZC52OGJpbmRpbmdzLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4Ymlu
ZGluZ3MubWsKQEAgLTE0MSw2ICsxNDEsNyBAQCBHRU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRl
cykvYmluZGluZ3MvVjhCbG9iLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhC
bG9iQnVpbGRlci5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RE9NVG9rZW5M
aXN0LmggXAorICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhET01TZXR0YWJsZVRva2Vu
TGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RGF0YUdyaWRDb2x1bW4u
aCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERhdGFHcmlkQ29sdW1uTGlzdC5o
IFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RmlsZS5oIFwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5k
aW5ncy5tawppbmRleCAzMjg4MDU5YzA2MzllNDQxZWYwYTIzNDFlZGVjNGNiYTc1OWE4ZThmLi43
MmViNTMzNjk5M2M5Njc1NDQ0OThiMmZjYTQ4ZTQ4MjcwMjdmZWI4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRp
bmdzLm1rCkBAIC04Myw2ICs4Myw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5j
cHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBcCisJYmluZGluZ3MvanMv
SlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NVG9rZW5MaXN0
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBcCiAJYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBi
L1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCBlMjBiMmU1YzdiZWVjYmExNTNkZTU1Zjc2MjZlMzM3
Zjg3NjI0ZTg2Li5lYTBjMjllZTNkMTJkNjM3ZGM4ZDBiOGRiMGNiMmJjNTc0ZDc5ZmYxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0y
NjYsMTAgKzI2NiwxMyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwK
IAlodG1sL0Jhc2VUZXh0SW5wdXRUeXBlLmNwcCBcCiAJaHRtbC9CdXR0b25JbnB1dFR5cGUuY3Bw
IFwKIAlodG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcCBcCisJaHRtbC9DbGFzc0xpc3QuY3BwIFwK
IAlodG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAgXAogCWh0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2Fu
bmVyLmNwcCBcCiAJaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgXAogCWh0bWwvRE9NRm9ybURhdGEu
Y3BwIFwKKwlodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCisJaHRtbC9ET01Ub2tlbkxp
c3QuY3BwIFwKIAlodG1sL0RhdGVJbnB1dFR5cGUuY3BwIFwKIAlodG1sL0RhdGVUaW1lSW5wdXRU
eXBlLmNwcCBcCiAJaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAw
NjhiZDVkZGI2OTE2ODJlM2NjZmY4ZjlmNjg2NjQxNTlhY2UyMzFjLi4zM2YyNWQ4MmVmNTQ3N2M3
MDk1MmIzOGQ0OWQ2Njk5OTY3YjIwNWIxIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwNyw2ICsyMDcsNyBAQCBTRVQo
V2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmlkbAogICAgIGh0bWwv
RGF0YUdyaWRDb2x1bW5MaXN0LmlkbAogICAgIGh0bWwvRE9NRm9ybURhdGEuaWRsCisgICAgaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwKICAgICBodG1sL0RPTVRva2VuTGlzdC5pZGwKICAg
ICBodG1sL0hUTUxBbGxDb2xsZWN0aW9uLmlkbAogICAgIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQu
aWRsCkBAIC05NTYsMTAgKzk1NywxMiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaHRtbC9C
YXNlVGV4dElucHV0VHlwZS5jcHAKICAgICBodG1sL0J1dHRvbklucHV0VHlwZS5jcHAKICAgICBo
dG1sL0NoZWNrYm94SW5wdXRUeXBlLmNwcAorICAgIGh0bWwvQ2xhc3NMaXN0LmNwcAogICAgIGh0
bWwvQ29sbGVjdGlvbkNhY2hlLmNwcAogICAgIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCiAgICAg
aHRtbC9ET01EYXRhR3JpZERhdGFTb3VyY2UuY3BwCiAgICAgaHRtbC9ET01Gb3JtRGF0YS5jcHAK
KyAgICBodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcAogICAgIGh0bWwvRE9NVG9rZW5MaXN0
LmNwcAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW4uY3BwCiAgICAgaHRtbC9EYXRhR3JpZENvbHVt
bkxpc3QuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGM1MmU5YTdiYzQ0OTE4MzgzOWFhODhhNzJlNzEyMzI4NDk3Y2RiZGYuLjEzOWQy
MWU5ZDU1ZDk1NzdlMWYwMGFiNDRkM2MzYjBhMTE4N2NkNGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTEgQEAKKzIwMTAt
MTAtMjkgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSFRNTDVdIEFkZCBET01TZXR0
YWJsZVRva2VuTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDc4MTAKKworICAgICAgICBBZGRzIERPTVNldHRhYmxlVG9rZW5MaXN0IGludGVyZmFj
ZSB0byBzdXBwb3J0IDxvdXRwdXQ+IGVsZW1lbnQuCisgICAgICAgIFRoZSBET01Ub2tlbkxpc3Qg
aW50ZXJmYWNlIHdhcyByZWZhY3RvcmVkIHNpbmNlIGl0cyB3YXMgdGlnaHRseSBjb3VwbGVkCisg
ICAgICAgIHdpdGggSFRNTEVsZW1lbnQuY2xhc3NMaXN0IHByb3BlcnR5LgorCisgICAgICAgICog
QW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rOiBBZGRlZCBKU0RPTVNldHRhYmxlVG9rZW5M
aXN0LmggZmlsZS4KKyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tazogQWRk
ZWQgVjhET01TZXR0YWJsZVRva2VuTGlzdC5oIGZpbGUuCisgICAgICAgICogQW5kcm9pZC5qc2Ni
aW5kaW5ncy5tazogQWRkZWQgSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgZmlsZS4KKyAgICAg
ICAgKiBBbmRyb2lkLm1rOiBBZGRlZCBDbGFzc0xpc3QuY3BwIGZpbGUuCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6IEFkZGVkIERPTVNldHRhYmxlVG9rZW5MaXN0LntjcHAsaWRsfSBhbmQgQ2xh
c3NMaXN0LmNwcCBmaWxlcy4KKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6IEFkZGVkIEpT
RE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIGZpbGUuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZTogQWRkZWQgRE9NU2V0dGFibGVUb2tlbkxpc3QgZW50cnkuCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06IEFkZGVkIEpTRE9NU2V0dGFibGVUb2tlbkxpc3Que2gsY3BwfSBhbmQgQ2xhc3NM
aXN0LntoLGNwcH0gZmlsZXMuCisgICAgICAgICogV2ViQ29yZS5neXBpOiBBZGRlZCBET01TZXR0
YWJsZVRva2VuTGlzdC57aCxjcHAsaWRsfSwgVjhET01TZXR0YWJsZVRva2VuTGlzdEN1c3RvbS5j
cHAgYW5kIENsYXNzTGlzdC57aCxjcHB9IGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUucHJpOiBB
ZGRlZCBET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgZmlsZS4KKyAgICAgICAgKiBXZWJDb3JlLnBy
bzogQWRkZWQgVjhET01TZXR0YWJsZVRva2VuTGlzdEN1c3RvbS5jcHAsIENsYXNzTGlzdC57aCxj
cHB9IGFuZCBET01TZXR0YWJsZVRva2VuTGlzdC57aCxjcHB9IGZpbGVzLgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBBZGRlZCBKU0RPTVNldHRhYmxlVG9rZW5MaXN0
LntoLGNwcH0sIENsYXNzTGlzdC57aCxjcHB9IGFuZCBET01TZXR0YWJsZVRva2VuTGlzdC57aCxj
cHB9IGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
QWRkZWQgQ2xhc3NMaXN0LntoLGNwcH0sIERPTVNldHRhYmxldG9rZW5MaXN0LntoLGNwcH0gYW5k
IEpTRE9NU2V0dGFibGVUb2tlbkxpc3Que2gsY3BwfQorICAgICAgICAqIGJpbmRpbmdzL2dvYmpl
Y3QvR05VbWFrZWZpbGUuYW06IEFkZGVkIFdlYktpdERPTURPTVNldHRhYmxlVG9rZW5MaXN0Lnto
LGNwcH0gYW5kIFdlYktpdERPTURPTVNldHRhYmxlVG9rZW5MaXN0UHJpdmF0ZS5jcHAgZmlsZXMu
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06IE1vZGlmaWVk
IEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MoKSByZXR1cm5zIDEgZm9yIERPTVNldHRhYmxlVG9r
ZW5MaXN0LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVNldHRhYmxlVG9rZW5M
aXN0Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpWOERPTVNldHRhYmxlVG9r
ZW5MaXN0OjppbmRleGVkUHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDogUmVwbGFjZWQgRE9NVG9rZW5MaXN0IHRvIENsYXNzTGlzdC4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmNsYXNzTGlzdCk6CisgICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOiBk
aXR0by4KKyAgICAgICAgKiBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHA6IEFkZGVkIGFkZCgpIGFu
ZCByZW1vdmUoKSBmdW5jdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5n
RGF0YTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmdEYXRhOjpyZW1v
dmUpOgorICAgICAgICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZzo6YWRkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmc6OnJlbW92ZSk6CisgICAgICAgICogZG9tL1NwYWNl
U3BsaXRTdHJpbmcuaDogQWRkZWQgYWRkKCkgYW5kIHJlbW92ZSgpIGZ1bmN0aW9ucy4KKyAgICAg
ICAgKiBkb20vU3R5bGVkRWxlbWVudC5jcHA6IFJlcGxhY2VkIERPTVRva2VuTGlzdCB0byBDbGFz
c0xpc3QuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZWRFbGVtZW50OjpjbGFzc0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50Lmg6IGRpdHRvLgorICAgICAgICAq
IGh0bWwvQ2xhc3NMaXN0LmNwcDogQWRkZWQsIG1vc3RseSBmcm9tIG9yaWdpbmFsIERPTVRva2Vu
TGlzdC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OkNsYXNzTGlzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnJlZik6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xp
c3Q6OmRlcmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6bGVuZ3RoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xp
c3Q6OmNvbnRhaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y29udGFpbnNJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OmFkZCk6CisgICAgICAgIChXZWJD
b3JlOjpDbGFzc0xpc3Q6OmFkZEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlz
dDo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6cmVtb3ZlSW50ZXJuYWwp
OgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0Ojp0b2dnbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xhc3NMaXN0Ojp0b1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpDbGFzc0xpc3Q6OnJl
c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsYXNzTGlzdDo6Y2xhc3NOYW1lcyk6CisgICAgICAg
ICogaHRtbC9DbGFzc0xpc3QuaDogQWRkZWQsIG1vc3RseSBmcm9tIG9yaWdpbmFsIERPTVRva2Vu
TGlzdC5oLgorICAgICAgICAoV2ViQ29yZTo6Q2xhc3NMaXN0OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2xhc3NMaXN0OjplbGVtZW50KToKKyAgICAgICAgKiBodG1sL0RPTVNldHRhYmxl
VG9rZW5MaXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2Vu
TGlzdDo6RE9NU2V0dGFibGVUb2tlbkxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFi
bGVUb2tlbkxpc3Q6On5ET01TZXR0YWJsZVRva2VuTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01TZXR0YWJsZVRva2VuTGlzdDo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJs
ZVRva2VuTGlzdDo6Y29udGFpbnMpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tl
bkxpc3Q6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6YWRk
SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnJlbW92
ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJu
YWwpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnRvZ2dsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01TZXR0YWJsZVRva2VuTGlzdDo6c2V0VmFsdWUpOgorICAgICAg
ICAqIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNl
dHRhYmxlVG9rZW5MaXN0OjpyZWYpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tl
bkxpc3Q6OmRlcmVmKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojps
ZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6RE9NU2V0dGFibGVUb2tlbkxpc3Q6OnRvU3RyaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVNldHRhYmxlVG9rZW5MaXN0Ojp2YWx1ZSk6CisgICAg
ICAgICogaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0
bWwvRE9NVG9rZW5MaXN0LmNwcDogUmVmYWN0b3JlZCB0byBiZSBhbiBhYnN0cmFjdCBpbnRlcmZh
Y2UgZm9yIGJvdGggb2YgQ2xhc3NMaXN0IGFuZCBET01TZXR0YWJsZVRva2VuTGlzdC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6dmFsaWRhdGVUb2tlbik6IENoYW5nZWQgdG8gYmUg
YSBzdGF0aWMgbWVtYmVyIGZ1bmN0aW9uIG9mIERPTVRva2VuTGlzdC4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVRva2VuTGlzdDo6YWRkVG9rZW4pOiBBZGRlZCwgbW9zdGx5IGZyb20gb3JpZ2luYWwg
RE9NVG9rZW5MaXN0OjphZGRJbnRlcm5hbCgpLgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5M
aXN0OjpyZW1vdmVUb2tlbik6IEFkZGVkLCBtb3N0bHkgZnJvbSBvcmlnaW5hbCBET01Ub2tlbkxp
c3Q6OnJlbW92ZUludGVybmFsKCkuCisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuaDogUmVm
YWN0b3JlZCB0byBiZSBhbiBhYnN0cmFjdCBpbnRlcmZhY2UgZm9yIGJvdGggb2YgQ2xhc3NMaXN0
IGFuZCBET01TZXR0YWJsZVRva2VuTGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlz
dDo6fkRPTVRva2VuTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OmVsZW1l
bnQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDogQWRkZWQgYW4gZW50cnkgZm9yIERP
TVNldHRhYmxlVG9rZW5MaXN0LgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDogZGl0dG8u
CisKIDIwMTAtMTAtMjkgIE1PUklUQSBIYWppbWUgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGF0dGVtcHQgZm9yIGZpeGluZyBidWlsZCBicmVhayBmb3IgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNzA4NDcKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggMDFmNTAy
MzhmNzczZDMwMWViMGRhNGNiMDk5OTA2NGY5N2Q4NDRmYy4uODBjMTMwNDIzZjY2NjBlODNiZTZj
YmViYjZlZDNmMzU5MGYwNzYxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTkyLDYgKzkyLDcgQEAKICNp
bmNsdWRlICJKU0RPTVBsdWdpbi5jcHAiCiAjaW5jbHVkZSAiSlNET01QbHVnaW5BcnJheS5jcHAi
CiAjaW5jbHVkZSAiSlNET01TZWxlY3Rpb24uY3BwIgorI2luY2x1ZGUgIkpTRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTGlzdC5jcHAiCiAjaW5jbHVkZSAi
SlNET01TdHJpbmdNYXAuY3BwIgogI2luY2x1ZGUgIkpTRE9NVG9rZW5MaXN0LmNwcCIKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCAzNDJiYjdiNWE2OWJlYWE1ZmE5NThlNDkzNmM2ZDc5ZWY4MGRlZmQ2Li40
ZTczMmRlNWE4MDZmM2EzMmQ1OTg4MTk1MjZjNGU5ZmEyZTM3ZTkyIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0xMjUsNiArMTI1LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgRE9NU2VsZWN0aW9uIFwK
ICAgICBET01TdHJpbmdMaXN0IFwKICAgICBET01TdHJpbmdNYXAgXAorICAgIERPTVNldHRhYmxl
VG9rZW5MaXN0IFwKICAgICBET01Ub2tlbkxpc3QgXAogICAgIERPTVdpbmRvdyBcCiAgICAgRGF0
YWJhc2UgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KaW5kZXggYWQ2ZjRhMmQyYjBiODE4OWE4NzFlOTk0YzI0ZTQ1YWUwNGIyZTk0
Zi4uNGU1OWEwZmFiYTcxZmZmNzdmNGE4MTIzY2E0Y2RkMDUxYTgzYTg0NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0y
MjEsNiArMjIxLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTRE9NUGx1Z2luLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01T
ZWxlY3Rpb24uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU2VsZWN0aW9uLmgg
XAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNET01TZXR0YWJsZVRva2VuTGlzdC5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRE9NU3RyaW5nTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNET01TdHJpbmdMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNE
T01TdHJpbmdNYXAuY3BwIFwKQEAgLTE0NzgsMTAgKzE0ODAsMTQgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCBcCiAJ
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzU3R5bGUuaCBcCisJV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNw
cCBcCisJV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmggXAogCVdlYkNvcmUvaHRt
bC9ET01Ub2tlbkxpc3QuY3BwIFwKIAlXZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmggXAogCVdl
YkNvcmUvaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9DaGVja2Jv
eElucHV0VHlwZS5oIFwKKwlXZWJDb3JlL2h0bWwvQ2xhc3NMaXN0LmNwcCBcCisJV2ViQ29yZS9o
dG1sL0NsYXNzTGlzdC5oIFwKIAlXZWJDb3JlL2h0bWwvQ29sbGVjdGlvbkNhY2hlLmNwcCBcCiAJ
V2ViQ29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5oIFwKIAlXZWJDb3JlL2h0bWwvQ29sbGVjdGlv
blR5cGUuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IGZmNjY5M2EwZTExZjc0N2Y4OTQ0OTJjYzU5NWM3ZjI1ZDE2M2ZjZWQu
LjgxZTY5ZjAxNGZlOGM0Y2UzMjQzNTI0ZWJmZmFjMmE0OWUzMzMyYjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTcsNiAr
MTE3LDcgQEAKICAgICAgICAgICAgICdmaWxlYXBpL01ldGFkYXRhLmlkbCcsCiAgICAgICAgICAg
ICAnZmlsZWFwaS9NZXRhZGF0YUNhbGxiYWNrLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9ET01G
b3JtRGF0YS5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRs
JywKICAgICAgICAgICAgICdodG1sL0RPTVRva2VuTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvRGF0YUdyaWRDb2x1bW4uaWRsJywKICAgICAgICAgICAgICdodG1sL0RhdGFHcmlkQ29sdW1u
TGlzdC5pZGwnLApAQCAtNzc3LDYgKzc3OCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGlyZWN0b3J5RW50cnlTeW5jQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RG9jdW1lbnRMb2NhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcCcsCisgICAgICAg
ICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20u
Y3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01Ub2tlbkxpc3RDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0
b20uY3BwJywKQEAgLTE1NTcsNiArMTU1OSw4IEBACiAgICAgICAgICAgICAnaHRtbC9CdXR0b25J
bnB1dFR5cGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAnLAog
ICAgICAgICAgICAgJ2h0bWwvQ2hlY2tib3hJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRt
bC9DbGFzc0xpc3QuY3BwJywKKyAgICAgICAgICAgICdodG1sL0NsYXNzTGlzdC5oJywKICAgICAg
ICAgICAgICdodG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvQ29s
bGVjdGlvbkNhY2hlLmgnLAogICAgICAgICAgICAgJ2h0bWwvQ29sbGVjdGlvblR5cGUuaCcsCkBA
IC0xNTY2LDYgKzE1NzAsOCBAQAogICAgICAgICAgICAgJ2h0bWwvRE9NRGF0YUdyaWREYXRhU291
cmNlLmgnLAogICAgICAgICAgICAgJ2h0bWwvRE9NRm9ybURhdGEuY3BwJywKICAgICAgICAgICAg
ICdodG1sL0RPTUZvcm1EYXRhLmgnLAorICAgICAgICAgICAgJ2h0bWwvRE9NU2V0dGFibGVUb2tl
bkxpc3QuY3BwJywKKyAgICAgICAgICAgICdodG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgnLAog
ICAgICAgICAgICAgJ2h0bWwvRE9NVG9rZW5MaXN0LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9E
T01Ub2tlbkxpc3QuaCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRhR3JpZENvbHVtbi5jcHAnLApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5k
ZXggMDUxZjRkOWMyNjVkM2Y2MTFhMjAzNzc2NGQyMTliYjcwNmZjYmI3NS4uM2IzOGE0NTY0ODI1
OGE1NzQzM2FkOGNmNzAzNWJhNzYzMTY3MzMzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
LnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0yMDcsNiArMjA3LDcgQEAgSURMX0JJ
TkRJTkdTICs9IFwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmlkbCBcCiAgICAgaHRtbC9EYXRh
R3JpZENvbHVtbkxpc3QuaWRsIFwKICAgICBodG1sL0RPTUZvcm1EYXRhLmlkbCBcCisgICAgaHRt
bC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgXAogICAgIGh0bWwvRE9NVG9rZW5MaXN0LmlkbCBc
CiAgICAgaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5pZGwgXAogICAgIGh0bWwvSFRNTEF1ZGlvRWxl
bWVudC5pZGwgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggMTQ2NmVmMjA2ODNiMzNkYzFlOWQzYzQ1ZjQ4NDRlMTc4MTExNDUyMy4u
ZDUxNzk3NDA0Yjk1ODgzNTBkYWJhNWI2MWU1NjZhMTVlNGRlYmNkZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MDMsNiArNDAz
LDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhv
c3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5zcGVjdG9yRnJv
bnRlbmRIb3N0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bUV2ZW50TGlzdGVuZXIuY3BwIFwKKyAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0
dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERP
TVRva2VuTGlzdEN1c3RvbS5jcHAKIApAQCAtODQ2LDEwICs4NDcsMTIgQEAgU09VUkNFUyArPSBc
CiAgICAgaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvQnV0dG9uSW5wdXRU
eXBlLmNwcCBcCiAgICAgaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAgXAorICAgIGh0bWwvQ2xh
c3NMaXN0LmNwcCBcCiAgICAgaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKICAgICBodG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9ET01EYXRhR3JpZERhdGFTb3VyY2UuY3BwIFwK
ICAgICBodG1sL0RPTUZvcm1EYXRhLmNwcCBcCisgICAgaHRtbC9ET01TZXR0YWJsZVRva2VuTGlz
dC5jcHAgXAogICAgIGh0bWwvRE9NVG9rZW5MaXN0LmNwcCBcCiAgICAgaHRtbC9EYXRhR3JpZENv
bHVtbi5jcHAgXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCBcCkBAIC0xNzUyLDEy
ICsxNzU1LDE0IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgg
XAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmggXAorICAgIGh0bWwvQ2xhc3NMaXN0Lmgg
XAogICAgIGh0bWwvQ29sbGVjdGlvbkNhY2hlLmggXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW4u
aCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbkxpc3QuaCBcCiAgICAgaHRtbC9EYXRlQ29tcG9u
ZW50cy5oIFwKICAgICBodG1sL0RPTURhdGFHcmlkRGF0YVNvdXJjZS5oIFwKICAgICBodG1sL0RP
TUZvcm1EYXRhLmggXAorICAgIGh0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAgICAgaHRt
bC9ET01Ub2tlbkxpc3QuaCBcCiAgICAgaHRtbC9Gb3JtRGF0YUxpc3QuaCBcCiAgICAgaHRtbC9G
VFBEaXJlY3RvcnlEb2N1bWVudC5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IDNkMWYxYzliYzE4ZWUyNzEyMWIxMGRlMDBlYjFkYWU3NDA1ZjEyNDcuLmJhOGFmNWY0
YTM5NDFjMTExMmZkZjM0OTQ1N2ZhYzA3YzgxNmZhYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtMzk2MCw2ICszOTYwLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiDQor
CQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
X0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+
DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJ
CTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNET01TZXR0YWJsZVRva2VuTGlz
dC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0i
JChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RP
TVN0cmluZ0xpc3QuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTQ4
NDc2LDYgKzQ4NTMyLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ2xhc3NMaXN0LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ2xhc3NMaXN0LmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXENv
bGxlY3Rpb25DYWNoZS5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAt
NDg2NDAsNiArNDg3MDQsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5caHRtbFxET01TZXR0YWJsZVRva2VuTGlzdC5jcHAiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXERPTVNl
dHRhYmxlVG9rZW5MaXN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXERPTVRva2VuTGlzdC5jcHAiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiOWVh
ZTNmZWM4NTRlNGJhODg1ZmY1MDc5YWZmNTM0MjFjNmQ2ZjYxLi40NGYxNjUyNjE3ZTI1ZDc2MzA2
Mjg5M2M5Y2MxOTJiMzMwNTRhMzc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTEyMiw2ICsxMTIyLDEyIEBACiAJCTQ5RkZCRjNGMTFDOTNFRTMwMDZB
NzExOCAvKiBXZWJHTExheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OUZGQkYzRDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5oICovOyB9
OwogCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5RkZCRjNFMTFDOTNFRTMwMDZB
NzExOCAvKiBXZWJHTExheWVyLm1tICovOyB9OwogCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAg
LyogU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBOEM5NkVBMEJFNjkwMzIwMDRFRUZGMCAvKiBTZWxlY3Rpb25D
b250cm9sbGVyTWFjLm1tICovOyB9OworCQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xh
c3NMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRBQ0JDMEJDMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuY3BwICovOyB9OworCQk0QUNC
QzBCRjEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBCRDEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xh
c3NMaXN0LmggKi87IH07CisJCTRBQ0JDMEMzMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJs
ZVRva2VuTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QUNCQzBDMDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuY3Bw
ICovOyB9OworCQk0QUNCQzBDNDEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBQ0JD
MEMxMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovOyB9OworCQk0
QUNCQzBDQTEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBDODEyNzEz
RDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi87IH07CisJCTRBQ0JD
MENCMTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QUNCQzBDOTEyNzEzRDBBMDA5
NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5oICovOyB9OwogCQk0QjI3MDhDNzBBRjE5
RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEIyNzA4QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQu
aCAqLzsgfTsKIAkJNEIyNzA5ODMwQUYyRTVFMDAwNjUxMjdGIC8qIFBhc3RlYm9hcmRNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QjI3MDk4MTBB
RjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLzsgfTsKIAkJNEIzMDQzQzcwQUUw
MzcwMzAwQTgyNjQ3IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0QjMwNDNDNjBBRTAzNzAzMDBBODI2NDcgLyogU291bmQuaCAqLzsgfTsK
QEAgLTcyMDMsNiArNzIwOSwxMyBAQAogCQk0OUZGQkYzRDExQzkzRUUzMDA2QTcxMTggLyogV2Vi
R0xMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTExheWVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5RkZCRjNFMTFDOTNFRTMwMDZBNzExOCAv
KiBXZWJHTExheWVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViR0xMYXllci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE4Qzk2RUEwQkU2
OTAzMjAwNEVFRkYwIC8qIFNlbGVjdGlvbkNvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gU2VsZWN0aW9uQ29udHJvbGxlck1hYy5tbTsgcGF0
aCA9IG1hYy9TZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0QUNCQzBCQzEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsYXNzTGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTRBQ0JDMEJEMTI3MTNDQkQwMDk0RjlCMiAvKiBDbGFzc0xpc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBQ0JDMEMwMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0
YWJsZVRva2VuTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
T01TZXR0YWJsZVRva2VuTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
Q0JDMEMxMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TZXR0YWJsZVRva2VuTGlzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0QUNCQzBDMjEyNzEzQ0NBMDA5NEY5QjIgLyogRE9NU2V0
dGFibGVUb2tlbkxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERPTVNldHRhYmxlVG9r
ZW5MaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEFDQkMwQzgxMjcxM0Qw
QTAwOTRGOUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBQ0JDMEM5MTI3MTNEMEEwMDk0RjlCMiAvKiBKU0RPTVNl
dHRhYmxlVG9rZW5MaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9N
U2V0dGFibGVUb2tlbkxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEIyNzA4
QzUwQUYxOUVFNDAwNjUxMjdGIC8qIFBhc3RlYm9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
QjI3MDk4MTBBRjJFNUUwMDA2NTEyN0YgLyogUGFzdGVib2FyZE1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhc3RlYm9hcmRNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTRCMzA0M0M2MEFFMDM3MDMwMEE4MjY0NyAvKiBTb3VuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291bmQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEyOTc5LDggKzEyOTkyLDggQEAKIAkJCQkyRUI0QkNEMDEyMUYwM0Uz
MDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmNwcCAqLywKIAkJCQkyRUI0QkNEMTEyMUYw
M0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxlLmggKi8sCiAJCQkJMkVERUYxRjIxMjFC
MEVGQzAwNzI2REIyIC8qIEJsb2JTdG9yYWdlRGF0YS5oICovLAotCQkJCTUxNEM3NjU4MENFOTIz
QTEwMDdFRjNDRCAvKiBDcmVkZW50aWFsLmNwcCAqLywKIAkJCQlFMTNGMDFFQTEyNzBFMTBEMDBE
RkJBNzEgLyogQ29va2llU3RvcmFnZS5oICovLAorCQkJCTUxNEM3NjU4MENFOTIzQTEwMDdFRjND
RCAvKiBDcmVkZW50aWFsLmNwcCAqLywKIAkJCQk1MTRDNzY1OTBDRTkyM0ExMDA3RUYzQ0QgLyog
Q3JlZGVudGlhbC5oICovLAogCQkJCTUxQTA1MjMyMTA1ODc3NEYwMENDOUU5NSAvKiBDcmVkZW50
aWFsU3RvcmFnZS5jcHAgKi8sCiAJCQkJNTFBMDUyMzExMDU4Nzc0RjAwQ0M5RTk1IC8qIENyZWRl
bnRpYWxTdG9yYWdlLmggKi8sCkBAIC0xNDUxOSw5ICsxNDUzMiw5IEBACiAJCQkJOTMzMDlEQzYw
OTlFNjQ5MTAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQu
Y3BwICovLAogCQkJCTkzMzA5REM3MDk5RTY0OTEwMDU2RTU4MSAvKiBTcGxpdFRleHROb2RlQ29u
dGFpbmluZ0VsZW1lbnRDb21tYW5kLmggKi8sCiAJCQkJOTMzMDlEQzgwOTlFNjQ5MTAwNTZFNTgx
IC8qIFRleHRBZmZpbml0eS5oICovLAotCQkJCTkzMzA5REM5MDk5RTY0OTEwMDU2RTU4MSAvKiBU
ZXh0R3JhbnVsYXJpdHkuaCAqLywKIAkJCQlBN0RCRjhEQjEyNzY5MTlDMDA2QjYwMDggLyogVGV4
dENoZWNraW5nSGVscGVyLmNwcCAqLywKIAkJCQlBN0RCRjhEQzEyNzY5MTlDMDA2QjYwMDggLyog
VGV4dENoZWNraW5nSGVscGVyLmggKi8sCisJCQkJOTMzMDlEQzkwOTlFNjQ5MTAwNTZFNTgxIC8q
IFRleHRHcmFudWxhcml0eS5oICovLAogCQkJCTkzMzA5RENDMDk5RTY0OTEwMDU2RTU4MSAvKiBU
ZXh0SXRlcmF0b3IuY3BwICovLAogCQkJCTkzMzA5RENEMDk5RTY0OTEwMDU2RTU4MSAvKiBUZXh0
SXRlcmF0b3IuaCAqLywKIAkJCQk5MzMwOURDQTA5OUU2NDkxMDA1NkU1ODEgLyogVHlwaW5nQ29t
bWFuZC5jcHAgKi8sCkBAIC0xNDU5Nyw2ICsxNDYxMCw4IEBACiAJCQkJRjU1QjNEN0MxMjUxRjEy
RDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDdEMTI1MUYxMkQw
MDNFRjI2OSAvKiBDaGVja2JveElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEN0UxMjUxRjEy
RDAwM0VGMjY5IC8qIENoZWNrYm94SW5wdXRUeXBlLmggKi8sCisJCQkJNEFDQkMwQkMxMjcxM0NC
RDAwOTRGOUIyIC8qIENsYXNzTGlzdC5jcHAgKi8sCisJCQkJNEFDQkMwQkQxMjcxM0NCRDAwOTRG
OUIyIC8qIENsYXNzTGlzdC5oICovLAogCQkJCTkzQzQ0MUVEMEY4MTNBMUEwMEMxQTYzNCAvKiBD
b2xsZWN0aW9uQ2FjaGUuY3BwICovLAogCQkJCTkzQzQ0MUVFMEY4MTNBMUEwMEMxQTYzNCAvKiBD
b2xsZWN0aW9uQ2FjaGUuaCAqLywKIAkJCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2MzQgLyogQ29s
bGVjdGlvblR5cGUuaCAqLywKQEAgLTE0NjIyLDYgKzE0NjM3LDkgQEAKIAkJCQkyRUQ2MDlCQTEx
NDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3BwICovLAogCQkJCTJFRDYwOUJCMTE0NUIw
NzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oICovLAogCQkJCTJFMDg4OEMzMTE0ODgzQTkwMEFG
NDI2NSAvKiBET01Gb3JtRGF0YS5pZGwgKi8sCisJCQkJNEFDQkMwQzAxMjcxM0NDQTAwOTRGOUIy
IC8qIERPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCAqLywKKwkJCQk0QUNCQzBDMTEyNzEzQ0NBMDA5
NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaCAqLywKKwkJCQk0QUNCQzBDMjEyNzEzQ0NB
MDA5NEY5QjIgLyogRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsICovLAogCQkJCTc2RkMyQjA4MTIz
NzBEQTAwMDZBOTkxQSAvKiBET01Ub2tlbkxpc3QuY3BwICovLAogCQkJCTc2RkMyQjA5MTIzNzBE
QTAwMDZBOTkxQSAvKiBET01Ub2tlbkxpc3QuaCAqLywKIAkJCQk3NkZDMkIwQTEyMzcwREEwMDA2
QTk5MUEgLyogRE9NVG9rZW5MaXN0LmlkbCAqLywKQEAgLTE1MTczLDYgKzE1MTkxLDggQEAKIAkJ
CQlCQzc3RDE2ODBGRjE5RjU1MDA3MDg4N0IgLyogSlNEYXRhR3JpZENvbHVtbkxpc3QuaCAqLywK
IAkJCQkyRTA4ODhEMjExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgKi8sCiAJ
CQkJMkUwODg4RDMxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuaCAqLywKKwkJCQk0
QUNCQzBDODEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgKi8s
CisJCQkJNEFDQkMwQzkxMjcxM0QwQTAwOTRGOUIyIC8qIEpTRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aCAqLywKIAkJCQk3Njk0NTYzQTEyMTREOTdDMDAwN0NCQUUgLyogSlNET01Ub2tlbkxpc3QuY3Bw
ICovLAogCQkJCTc2OTQ1NjNCMTIxNEQ5N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5oICov
LAogCQkJCTQ5RUVDRUY0MTA1MDcwQzQwMDA5OUZBQiAvKiBKU0Zsb2F0MzJBcnJheS5jcHAgKi8s
CkBAIC0xODQ4Niw2ICsxODUwNiw3IEBACiAJCQkJQTgxODcyMjAwOTc3RDNDMDAwNTgyNkQ5IC8q
IENoaWxkTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDgyMzUyMEFGOTJBNzkwMDA0
RjA1NyAvKiBDaHJvbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDgyNDA4MEFGOTNBRUIwMDA0
RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBQ0JDMEJGMTI3MTND
QkQwMDk0RjlCMiAvKiBDbGFzc0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTA0Qjc3MEQx
MDk5OEYwMDY4MEQzMiAvKiBDbGFzc05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0Mw
NjU3RTBGM0NFMUI3MDBDRDJEODcgLyogQ2xpZW50UmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNDMDY1ODEwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3RMaXN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTE4NjI0LDYgKzE4NjQ1LDkgQEAKIAkJCQk5MzMwOURFMTA5OUU2NDkyMDA1NkU1ODEg
LyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5ODIw
ODI0NUU1OTAwMUU5QUJDIC8qIERlcHJlY2F0ZWRQdHJMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTk2RDA4MjQ1RTU5MDAxRTlBQkMgLyogRGVwcmVjYXRlZFB0ckxpc3RJbXBsLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwODFDREZCODEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRlZFNW
R0FuaW1hdGVkUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4MUNERkI5MTI2RUNGREIw
MEQyMTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRyYWl0cy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMDgxQ0RGQkExMjZFQ0ZEQjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmlt
YXRlZFRlbXBsYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAy
QTAgLyogRGV2aWNlTW90aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1OTEy
MEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzFGQjFBNUIxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTg5MTMsNiArMTg5MzcsNyBAQAogCQkJCTg1NUQzNThBMEFENzA3MzEw
MDE5QUFDNyAvKiBET01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEMEZDNEYwREJE
NzIwQjAwQjJGNjMwIC8qIERPTVJHQkNvbG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDNUE4Njg1MEMzMzY3NjAwMEVFQTY0OSAvKiBET01TZWxlY3Rpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCTRBQ0JDMEM0MTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzU0NDI3NEIxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmlu
Z0xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDBBMTFEN0YzMDQwMDY0NTVCMCAvKiBE
T01TdHJpbmdNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjUwMjVCMTAyQkE5MDEwMDY2RjM5
QSAvKiBET01TdHlsZU1lZGlhLmggaW4gSGVhZGVycyAqLywKQEAgLTE5NDc3LDYgKzE5NTAyLDcg
QEAKIAkJCQkyRURGMzY5RjEyMkM5NEM4MDAyRjdENEUgLyogRmlsZUV4Y2VwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNEQkUxMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2Qzg2MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlTGlz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDY4OUYxQUYxMjY3QkFFMTAwRThEMzgwIC8qIEZpbGVN
ZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDODkxMjJCOEEzRDAwMUZEMUY3IC8q
IEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFREYzNjlEMTIyQzk0QjQwMDJGN0Q0
RSAvKiBGaWxlUmVhZGVyU3luYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkVGMUJGRUIxMjFDOUY0
MjAwQzI3NjI3IC8qIEZpbGVTdHJlYW0uaCBpbiBIZWFkZXJzICovLApAQCAtMTk1MTEsNiArMTk1
MzcsNyBAQAogCQkJCUIyQzNEQTY4MEQwMDZDRDYwMEVGNkYyNiAvKiBGb250RmFsbGJhY2tMaXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2QTBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udEZh
bWlseS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRjMwQTE5ODlDQTAwN0ZCOEM1IC8qIEZv
bnRGYW1pbHlWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RD
MTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUzMjBENkIxMjJB
MjRFOTAwMkQxNDQwIC8qIEZvbnRQbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3
QUNDRTQyMERBMjk4MEYwMDg5RTYwMiAvKiBGb250UmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJDM0RBNkIwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRTZWxlY3Rvci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xOTcyMSw2ICsxOTc0OCw3IEBACiAJCQkJNDlFOTExQzUwRUY4NkQ0NzAw
OUQwQ0FGIC8qIElkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMEMwNTRDRDExMThDOEU0MDBDRTI2MzYgLyogSURMUGFyc2VyLnBtIGluIEhlYWRlcnMgKi8s
CiAJCQkJQzBDMDU0Q0UxMTE4QzhFNDAwQ0UyNjM2IC8qIElETFN0cnVjdHVyZS5wbSBpbiBIZWFk
ZXJzICovLAorCQkJCThBQjRCQzc3MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2
ZVdyaXRlQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI3NTM1NzAwQjA1
MzgxNDAwMkNFNjRGIC8qIEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkExMEI5MjBCMzgx
OEJEMDAwOTlBQTQgLyogSW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTk3OTE3
MTIxNUQwNTUwMDVDNDg1QyAvKiBJbWFnZUJ1ZmZlckRhdGEuaCBpbiBIZWFkZXJzICovLApAQCAt
MTk3NjYsNiArMTk3OTQsNyBAQAogCQkJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNw
ZWN0b3JQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYwNjIwMTBGNUYwQjY2
MDBBMDdFQUMgLyogSW5zcGVjdG9yUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIx
Nzc2MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTdBQjBCMUMxMTIxMUE2MjIwMEE3Njk0MCAvKiBJbnNwZWN0b3JT
dG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIxNzc0MTI1QzgyNjcwMEM1MDY5
RCAvKiBJbnNwZWN0b3JTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NTQxMzNBODEw
MkUwMEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xOTg3MSw2ICsxOTkwMCw3IEBACiAJCQkJQTlEMjQ3RkYwRDc1N0U2OTAwRkRGOTU5IC8q
IEpTRE9NUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUQyNDgwMTBENzU3RTY5MDBGREY5
NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1QTg2QjYwQzMz
NjdFODAwRUVBNjQ5IC8qIEpTRE9NU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QUNC
QzBDQjEyNzEzRDBBMDA5NEY5QjIgLyogSlNET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzUxMzdDRjMxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NDY0OTgxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9NU3Ry
aW5nTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Njk0NTYzRDEyMTREOTdDMDAwN0NCQUUgLyog
SlNET01Ub2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLApAQCAtMjAyOTIsNiArMjAzMjIsNyBAQAog
CQkJCTFBOEY2QkM2MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThDNEE4NEMwOUQ1NjQ5RDAwMDNBQzhEIC8qIE1hcHBlZEF0dHJpYnV0ZUVu
dHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURGODA5OUU2NDkyMDA1NkU1ODEgLyogbWFy
a3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NzI4QzMxNDEyNjhFNDM5MDA0MUU4OUIgLyogTWFy
a3VwQWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY1MTA1OUMxRUIwMEQ5
OTlERCAvKiBNYXRoTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGQUJFNzJGNzEwNTlD
MUVCMDBEOTk5REQgLyogTWF0aE1MSW5saW5lQ29udGFpbmVyRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkFCRTcyRjkxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTE1hdGhFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIwNzU3LDggKzIwNzg4LDE4IEBACiAJCQkJNjU2NTNGMkUwRDk3
MjdEMjAwQ0E5NzIzIC8qIFNWR0FsdEdseXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjc5NzcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMjIyNzk3QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMDg3Qjg0OTYxMjcyQ0VDODAwQTE0NDE3IC8qIFNWR0FuaW1hdGVk
QW5nbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4OTAyMUE5MTI2RUY1REUwMDkyRDVFQSAvKiBT
VkdBbmltYXRlZExlbmd0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg5MDIxQUQxMjZFRjVFOTAw
OTJENUVBIC8qIFNWR0FuaW1hdGVkTGVuZ3RoTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg4
QTBFMDQxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5ODUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1h
dGVkUGF0aERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OTg4MEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdBbmltYXRlZFBvaW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDg4QTBFMDUxMjZF
RjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTA4OEEwRTA2MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5RGVzY3JpcHRp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTA4OEEwRTA3MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdB
bmltYXRlZFByb3BlcnR5TWFjcm9zLmggaW4gSGVhZGVycyAqLywKKwkJCQkwODFDREZCRjEyNkVD
RkU4MDBEMjE1Q0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVN5bmNocm9uaXplci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMDg4QTBFMDgxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVy
dHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKKwkJCQkwOEM4NTlDMDEyNzQ1NzU0MDBBNTcyOEQg
LyogU1ZHQW5pbWF0ZWRSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk5MDBEMDBCRjIy
MDA3MUI3ODIgLyogU1ZHQW5pbWF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
OTkzMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdBbmltYXRlTW90aW9uRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjIyMjc5OTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIwODM2LDYgKzIwODc3LDcgQEAKIAkJCQlC
MjIyN0EzOTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjIyN0EzQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHTGluZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTNFMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdM
aXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwODhBMEUwOTEyNkVGMURCMDA5NzhGN0EgLyogU1ZH
TGlzdFByb3BlcnR5VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBM0YwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR0xpc3RUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTQx
MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdMb2NhdGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
Mzg1RkY2MTBGMDE4NjAwMEJGRTA3QiAvKiBTVkdNYXJrZXJEYXRhLmggaW4gSGVhZGVycyAqLywK
QEAgLTIwODgxLDYgKzIwOTIzLDkgQEAKIAkJCQlCMjIyN0E5MTBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHUG9seWdvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTk0MEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdQb2x5bGluZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3
QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwODhBMEUwQTEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTA4OEEwRTBCMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9wZXJ0eVRl
YXJPZmYuaCBpbiBIZWFkZXJzICovLAorCQkJCTA4OEEwRTBDMTI2RUYxREIwMDk3OEY3QSAvKiBT
VkdQcm9wZXJ0eVRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOUEwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjIyMjdBOUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JlY3RFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyN0FBMDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmVuZGVyaW5nSW50ZW50Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIxMTY4LDI5ICsyMTIxMyw2IEBACiAJCQkJOTNGMTk5RUQwODI0
NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkU1
MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0Njg5RjFBRjEyNjdCQUUxMDBFOEQzODAgLyogRmlsZU1ldGFkYXRhLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0RkEzQjkwQjEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTk3MjhDMzE0MTI2OEU0MzkwMDQxRTg5QiAvKiBNYXJrdXBB
Y2N1bXVsYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlF
IC8qIEZvbnRPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDgxQ0RGQjgxMjZFQ0ZE
QjAwRDIxNUNBIC8qIERlcHJlY2F0ZWRTVkdBbmltYXRlZFByb3BlcnR5LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwODFDREZCOTEyNkVDRkRCMDBEMjE1Q0EgLyogRGVwcmVjYXRlZFNWR0FuaW1hdGVk
UHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTA4MUNERkJBMTI2RUNGREIwMEQy
MTVDQSAvKiBEZXByZWNhdGVkU1ZHQW5pbWF0ZWRUZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMDgxQ0RGQkYxMjZFQ0ZFODAwRDIxNUNBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlTeW5jaHJv
bml6ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTA4OEEwRTA0MTI2RUYxREIwMDk3OEY3QSAvKiBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaCBpbiBIZWFkZXJzICovLAotCQkJCTA4OEEw
RTA1MTI2RUYxREIwMDk3OEY3QSAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwODhBMEUwNjEyNkVGMURCMDA5NzhGN0EgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eURl
c2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUwNzEyNkVGMURCMDA5NzhGN0Eg
LyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eU1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDg4QTBF
MDgxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwODhBMEUwOTEyNkVGMURCMDA5NzhGN0EgLyogU1ZHTGlzdFByb3BlcnR5
VGVhck9mZi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMDg4QTBFMEExMjZFRjFEQjAwOTc4RjdBIC8q
IFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUwQjEyNkVGMURCMDA5NzhG
N0EgLyogU1ZHUHJvcGVydHlUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKLQkJCQkwODhBMEUwQzEy
NkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTA4OTAyMUE5MTI2RUY1REUwMDkyRDVFQSAvKiBTVkdBbmltYXRlZExlbmd0aC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMDg5MDIxQUQxMjZFRjVFOTAwOTJENUVBIC8qIFNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEFCNEJDNzcxMjZGREI3MTAwREVCNzI3IC8qIEln
bm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwODdCODQ5NjEyNzJDRUM4MDBBMTQ0MTcgLyogU1ZHQW5pbWF0ZWRBbmdsZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMDhDODU5QzAxMjc0NTc1NDAwQTU3MjhEIC8qIFNWR0FuaW1hdGVkUmVjdC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNzU4OTc4RUQxMjcwOTBENjAwNzZENUE5IC8qIFNwZWVjaElu
cHV0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxMjgyLDYgKzIxMzA0LDcgQEAKIAkJCQk0
NkY5RDVERDBCMEQ2MDE3MDAyOEVFMzYgLyogYWxpYXNDdXJzb3IucG5nIGluIFJlc291cmNlcyAq
LywKIAkJCQk0NkQ0RjI0OTBBRjk3RTgxMDAzNTM4NUEgLyogY2VsbEN1cnNvci5wbmcgaW4gUmVz
b3VyY2VzICovLAogCQkJCTQ2RDRGMjRBMEFGOTdFODEwMDM1Mzg1QSAvKiBjb250ZXh0TWVudUN1
cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAorCQkJCUUxM0YwMUVCMTI3MEUxMEQwMERGQkE3MSAv
KiBDb29raWVTdG9yYWdlLmggaW4gUmVzb3VyY2VzICovLAogCQkJCTQ2MTRBMUZFMEIyM0E4RDYw
MDQ0NkUxQyAvKiBjb3B5Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDY0RUEyNzMw
QjhBMzUwQjAwQThFNkUzIC8qIGNyb3NzSGFpckN1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAog
CQkJCTFDMTRFNzZDMEFEOEM4MUMwMEI2MTU4QiAvKiBkZWxldGVCdXR0b24udGlmZiBpbiBSZXNv
dXJjZXMgKi8sCkBAIC0yMTMxMyw3ICsyMTMzNiw2IEBACiAJCQkJODUxMzZDQTgwQUVENjY1OTAw
RjkwQTNEIC8qIHdlc3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIx
QUU3QTBDMDUxRkRFMDAxMzlGNEYgLyogem9vbUluQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8s
CiAJCQkJMUFCMUFFN0IwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21PdXRDdXJzb3IucG5nIGluIFJl
c291cmNlcyAqLywKLQkJCQlFMTNGMDFFQjEyNzBFMTBEMDBERkJBNzEgLyogQ29va2llU3RvcmFn
ZS5oIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNjA3LDYgKzIxNjI5LDcgQEAKIAkJCQlBODE4NzIy
NTA5NzdEM0MwMDA1ODI2RDkgLyogQ2hpbGROb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxNEQ4MjM4QjBBRjkyREY2MDAwNEYwNTcgLyogQ2hyb21lLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUFCQUYyMjA4MEMwM0IxQzcwMEIwQkNGMCAvKiBDaHJvbWVNYWMubW0gaW4gU291cmNlcyAq
LywKKwkJCQk0QUNCQzBCRTEyNzEzQ0JEMDA5NEY5QjIgLyogQ2xhc3NMaXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDOTA0Qjc2MEQxMDk5OEYwMDY4MEQzMiAvKiBDbGFzc05vZGVMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRS
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBD
bGllbnRSZWN0TGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIxNjM3LDYgKzIxNjYwLDcgQEAK
IAkJCQkwNjAyN0NCMzBCMUNDMDNEMDA4ODRCMkQgLyogQ29udGV4dE1lbnVJdGVtTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTNCNkEwRUEwQjBCQ0E4NDAwRjUwMjdBIC8qIENvbnRleHRNZW51
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1MjA4NzcwOUJENDUzNDAwRjIwMzhEIC8qIENv
b2tpZUphci5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUxM0YwMUYxMTI3MEUxOTAwMERGQkE3MSAv
KiBDb29raWVTdG9yYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI5NTAwRTgyMDU2
QjAwQjI1OTY1IC8qIENvdW50ZXJEaXJlY3RpdmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
OTJGMTUwMEFEMTg2MjMwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlEMEIwNTU2OTA5QzY3MDAxMDAzMDdFNDMgLyogQ3JlYXRlTGlua0NvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yMTg4MCw2ICsyMTkwNCw3IEBACiAJCQkJODU4QzM4QTgwQUE4RjIw
NDAwQjE4N0E0IC8qIERPTVJlY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0FFRkNBRTEwMTZD
RTRBMDA0MEQzNEUgLyogRE9NUkdCQ29sb3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzVBODY4
NDBDMzM2NzYwMDBFRUE2NDkgLyogRE9NU2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTRBQ0JDMEMzMTI3MTNDQ0EwMDk0RjlCMiAvKiBET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDNTU2MTBGMTExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlz
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQwOTExRDdGMzA0MDA2NDU1QjAgLyogRE9N
U3RyaW5nTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjUwMjVDMTAyQkE5MDEwMDY2RjM5
QSAvKiBET01TdHlsZU1lZGlhLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0yMjM0NCw2ICsyMjM2OSw3
IEBACiAJCQkJQjg4NUU4RDQxMUUwNkREMjAwOUZGQkY0IC8qIEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTc0RUNCQTEwMTgzOUE2MDBCRjkz
OUUgLyogSW5zcGVjdG9yQmFja2VuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjcwN0E5OTEx
RUY2Nzk0MDBBQ0RBNjkgLyogSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJN0ExRjJCNTIxMjZDNjFCMjAwMDZBN0U2IC8qIEluc3BlY3RvckNsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzgxQjk1QjBFOTczMzA4MDAyNjZFMDcgLyogSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc0MzEyNEI5OUVDMDBD
NTA2OUQgLyogSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODJCNjU4
OUExMTg5RTQ3NjAwRTA1MkExIC8qIEluc3BlY3RvckNTU1N0b3JlLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjIzNTgsNiArMjIzODQsNyBAQAogCQkJCTlGMEQ2QjJFMTIxQkZFQkEwMDZDMDI4OCAv
KiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRjA2MjAy
MEY1RjBCNjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk4MkFCMTc3NTEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk0RkEzQjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVj
dG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FCMEIxQzAxMjExQTYyMjAwQTc2OTQw
IC8qIEluc3BlY3RvclN0b3JhZ2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3
MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3NTQxMzNBQTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyNDg4LDYgKzIyNTE1LDcgQEAKIAkJCQlBOUM2RTY0
QzBENzQ2NUU3MDA2NDQyRTkgLyogSlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOUM2RTY0RDBENzQ2NUU3MDA2NDQyRTkgLyogSlNET01QbHVnaW5DdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1QTg2QjUwQzMzNjdFODAwRUVBNjQ5IC8qIEpTRE9N
U2VsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRBQ0JDMENBMTI3MTNEMEEwMDk0RjlC
MiAvKiBKU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1MTM3
Q0YyMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM2NDY0OTcxMUQ4MjM0OTAwNjQ1NUIwIC8qIEpTRE9NU3RyaW5nTWFwLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNjQ2NDlDMTFEODIzOEMwMDY0NTVCMCAvKiBKU0RPTVN0cmluZ01h
cEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIyOTUxLDYgKzIyOTc5LDcgQEAKIAkJCQkx
QTk4OTU2QjBBQTc4RjgwMDA1RUY1RUYgLyogS1VSTENGTmV0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTY1OTM5MjNBMDlBRTQzNUMwMDJDNTMxRiAvKiBLVVJMTWFjLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTQ1NkZBMjYxMUFENEE4MzAwMjBCNDIwIC8qIExhYmVsc05vZGVMaXN0LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUUxODc3MkYxMTI2RTI2MjkwMDNERDU4NiAvKiBMYW5ndWFnZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MzUyMDg0NTA5QkQ0M0I5MDBGMjAzOEQgLyogTGFuZ3VhZ2Uu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkwNjYwNjBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0
U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyREQ4RjQwRDkxRTZBRjAwMEY4OUVFIC8q
IExlZ2FjeVdlYkFyY2hpdmUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMjk3NSw2ICsyMzAwNCw3
IEBACiAJCQkJOTNFMjI3RTEwQUY1ODlBRDAwRDQ4MzI0IC8qIE1haW5SZXNvdXJjZUxvYWRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQThGNkJDNTBEQjU1Q0RDMDAxREI3OTQgLyogTWFuaWZl
c3RQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlERjcwOTlFNjQ5MjAwNTZFNTgx
IC8qIG1hcmt1cC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5NzI4QzMxMzEyNjhFNDM5MDA0MUU4
OUIgLyogTWFya3VwQWNjdW11bGF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkFCRTcyRjQx
MDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkFCRTcyRkQxMDU5QzIxMTAwRDk5OUREIC8qIE1hdGhNTEVsZW1lbnRGYWN0b3J5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZBQkU3MkY2MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxJbmxpbmVD
b250YWluZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjMzMTAsNiArMjMzNDAsNyBA
QAogCQkJCTYyNkNERTBFMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3NTc4RjkwQjExRERGMjY5MDBEOTMzQzUgLyogU3BlZWNoSW5w
dXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzUzNUJDOTQxMjAyMENGRjAwMzdFQzQ1IC8qIFNw
ZWVjaElucHV0Q2xpZW50TW9jay5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3NTg5NzhFQzEyNzA5
MEQ2MDA3NkQ1QTkgLyogU3BlZWNoSW5wdXRSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTMzMDlFMTEwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTMzMDlFMTMwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0VGV4dE5vZGVD
b21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTE1MDk5RTY0OTIwMDU2RTU4MSAv
KiBTcGxpdFRleHROb2RlQ29udGFpbmluZ0VsZW1lbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMjM3NDIsMTIgKzIzNzczLDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMg
LyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQw
Q0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk0RkEzQjkwQTEyNUNEMTIyMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJOTcyOEMzMTMxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3Vt
dWxhdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxODc3MkYxMTI2RTI2MjkwMDNERDU4NiAv
KiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3QTFGMkI1MjEyNkM2MUIyMDAwNkE3
RTYgLyogSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxM0YwMUYxMTI3
MEUxOTAwMERGQkE3MSAvKiBDb29raWVTdG9yYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NzU4OTc4RUMxMjcwOTBENjAwNzZENUE5IC8qIFNwZWVjaElucHV0UmVzdWx0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxl
LmFtIGIvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCmluZGV4IGQ4MDhl
MTg5OWYzYWZiZDdhZjViODczZDZlZWY2Y2FhNTExNWJkMzQuLjMzOGQ3Zjk0ZTkxYzE4OTM1NTlh
OTAwMjU0NTdkZDIzMDAwYjRjMmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ29iamVj
dC9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0KQEAgLTQ5LDYgKzQ5LDggQEAgd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTURPTVN0cmluZ0xpc3RQcml2YXRlLmgg
XAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01TdHJpbmdNYXAuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU3RyaW5nTWFwUHJpdmF0ZS5oIFwKKwlE
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NU2V0dGFibGVUb2tlbkxpc3RQcml2
YXRlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01ET01Ub2tlbkxpc3QuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NVG9rZW5MaXN0UHJpdmF0ZS5o
IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NV2luZG93LmNwcCBcCkBAIC0y
NjMsNiArMjY1LDcgQEAgd2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKIAlEZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmggXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9X
ZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dl
YktpdERPTURPTVN0cmluZ0xpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERP
TURPTVN0cmluZ01hcC5oIFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
aW5kZXggNzE5NDQ5YTUwNzZmOTQzZDM0YTlhZWMwNWFjNDk2MjlhYmJkNzhmOC4uM2VjNjFhNDNl
M2I5YWI1ZjkxOWU2MWQ3NjMxMzQxMzEyNWQ4MGFiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yMzEsNyArMjMxLDcgQEAgc3ViIEluZGV4R2V0
dGVyUmV0dXJuc1N0cmluZ3MKIHsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogCi0gICAgcmV0dXJu
IDEgaWYgJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iIG9yICR0eXBlIGVxICJNZWRpYUxp
c3QiIG9yICR0eXBlIGVxICJDU1NWYXJpYWJsZXNEZWNsYXJhdGlvbiIgb3IgJHR5cGUgZXEgIkRP
TVN0cmluZ0xpc3QiIG9yICR0eXBlIGVxICJET01Ub2tlbkxpc3QiOworICAgIHJldHVybiAxIGlm
ICR0eXBlIGVxICJDU1NTdHlsZURlY2xhcmF0aW9uIiBvciAkdHlwZSBlcSAiTWVkaWFMaXN0IiBv
ciAkdHlwZSBlcSAiQ1NTVmFyaWFibGVzRGVjbGFyYXRpb24iIG9yICR0eXBlIGVxICJET01TdHJp
bmdMaXN0IiBvciAkdHlwZSBlcSAiRE9NVG9rZW5MaXN0IiBvciAkdHlwZSBlcSAiRE9NU2V0dGFi
bGVUb2tlbkxpc3QiOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVNldHRhYmxlVG9rZW5MaXN0Q3VzdG9tLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU2V0dGFibGVUb2tlbkxpc3RDdXN0b20uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRlZWIxZTBjMmQzMjNiZDVkZTY5YTA3Zjc1YzY5NDAwYmFiZDdjMzcKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVNldHRhYmxlVG9r
ZW5MaXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVjhET01TZXR0YWJsZVRva2VuTGlzdC5oIgorCisjaW5j
bHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKworI2luY2x1ZGUgIlY4QmluZGluZy5oIgor
I2luY2x1ZGUgIlY4UHJveHkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gVjhET01TZXR0YWJsZVRva2VuTGlzdDo6aW5kZXhlZFByb3BlcnR5R2V0dGVy
KHVpbnQzMl90IGluZGV4LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4KKyAgICByZXR1cm4gdjhTdHJpbmcoIiIp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDRjMzUyYzAwOWNiYmM3
NDMwYmI4NTUxOGYxMGQyYmI1OGM3Yjk2OWYuLjQxMzhhMTY2NDU4MzcxNjBhNjc2YTIwYTRjNzE2
OGYwNjcyZTNhN2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTUGFy
c2VyLmgiCiAjaW5jbHVkZSAiQ1NTU2VsZWN0b3JMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgorI2luY2x1ZGUgIkNsYXNzTGlzdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3Qu
aCIKICNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5o
IgpAQCAtMTYxNSw3ICsxNjE2LDcgQEAgRE9NVG9rZW5MaXN0KiBFbGVtZW50OjpjbGFzc0xpc3Qo
KQogewogICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZVJhcmVEYXRhKCk7CiAgICAg
aWYgKCFkYXRhLT5tX2NsYXNzTGlzdCkKLSAgICAgICAgZGF0YS0+bV9jbGFzc0xpc3QgPSBET01U
b2tlbkxpc3Q6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgZGF0YS0+bV9jbGFzc0xpc3QgPSBDbGFz
c0xpc3Q6OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4gZGF0YS0+bV9jbGFzc0xpc3QuZ2V0KCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvV2ViQ29y
ZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggZjFlNjMzNDE4Y2MyNDY2OTUzYTg5MjlhODBj
M2NjY2M1NmViY2Q4YS4uMDZiZmUwYzdkYWI3MjgyNTE3NjZkN2U1YWVkZTRiYzJlYzg2ZTYxYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTIyLDcgKzIyLDcgQEAKICNpZm5kZWYgRWxlbWVudFJh
cmVEYXRhX2gKICNkZWZpbmUgRWxlbWVudFJhcmVEYXRhX2gKIAotI2luY2x1ZGUgIkRPTVRva2Vu
TGlzdC5oIgorI2luY2x1ZGUgIkNsYXNzTGlzdC5oIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJp
bmdNYXAuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgi
CkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY29t
cHV0ZWRTdHlsZTsKIAogICAgIE93blB0cjxEYXRhc2V0RE9NU3RyaW5nTWFwPiBtX2RhdGFzZXRE
T01TdHJpbmdNYXA7Ci0gICAgT3duUHRyPERPTVRva2VuTGlzdD4gbV9jbGFzc0xpc3Q7CisgICAg
T3duUHRyPENsYXNzTGlzdD4gbV9jbGFzc0xpc3Q7CiB9OwogCiBpbmxpbmUgSW50U2l6ZSBkZWZh
dWx0TWluaW11bVNpemVGb3JSZXNpemluZygpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TcGFj
ZVNwbGl0U3RyaW5nLmNwcCBiL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCmluZGV4
IDhhMjcxMGNjMzBlZjFhYTQ5NTgxNjI1MzI0YThkZTY3MmVkZTQ1YWYuLjRiZDViMWI5Njk4NzJl
MmRjYTBkNGU1ZDVlMTYwYzViNGQ4ZDEzYTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NwYWNl
U3BsaXRTdHJpbmcuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCkBA
IC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXVEY7CiAKQEAgLTkwLDQgKzkxLDM3IEBAIGJvb2wgU3BhY2VT
cGxpdFN0cmluZ0RhdGE6OmNvbnRhaW5zQWxsKFNwYWNlU3BsaXRTdHJpbmdEYXRhJiBvdGhlcikK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBTcGFjZVNwbGl0U3RyaW5nRGF0YTo6YWRkKGNv
bnN0IEF0b21pY1N0cmluZyYgc3RyaW5nKQoreworICAgIGlmIChjb250YWlucyhzdHJpbmcpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3ZlY3Rvci5hcHBlbmQoc3RyaW5nKTsKK30KKwordm9p
ZCBTcGFjZVNwbGl0U3RyaW5nRGF0YTo6cmVtb3ZlKGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaW5n
KQoreworICAgIGVuc3VyZVZlY3RvcigpOworCisgICAgc2l6ZV90IHBvc2l0aW9uID0gMDsKKyAg
ICB3aGlsZSAocG9zaXRpb24gPCBtX3ZlY3Rvci5zaXplKCkpIHsKKyAgICAgICAgaWYgKG1fdmVj
dG9yW3Bvc2l0aW9uXSA9PSBzdHJpbmcpCisgICAgICAgICAgICBtX3ZlY3Rvci5yZW1vdmUocG9z
aXRpb24pOworICAgICAgICBlbHNlCisgICAgICAgICAgICArK3Bvc2l0aW9uOworICAgIH0KK30K
Kwordm9pZCBTcGFjZVNwbGl0U3RyaW5nOjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgaWYgKG1fZGF0YSkKKyAgICAgICAgbV9kYXRhLT5hZGQoc3RyaW5nKTsKK30KKwor
dm9pZCBTcGFjZVNwbGl0U3RyaW5nOjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgaWYgKG1fZGF0YSkKKyAgICAgICAgbV9kYXRhLT5yZW1vdmUoc3RyaW5nKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5oIGIvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCmluZGV4IDA5Y2E4
ZDk2YzUxNTE1NThiZmJmMjY2Zjc1N2MwYjg4Mzk4MmI0ZmMuLjgyNmU2YmQwMzc4OThlNDA3NzJk
YTQwNzNkN2JiZjU1MmExZWFjZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRT
dHJpbmcuaAorKysgYi9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgKQEAgLTQ4LDYgKzQ4
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wgY29udGFpbnNBbGwoU3Bh
Y2VTcGxpdFN0cmluZ0RhdGEmKTsKIAorICAgICAgICB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJp
bmcmKTsKKyAgICAgICAgdm9pZCByZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJik7CisKICAgICAg
ICAgc2l6ZV90IHNpemUoKSB7IGVuc3VyZVZlY3RvcigpOyByZXR1cm4gbV92ZWN0b3Iuc2l6ZSgp
OyB9CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgb3BlcmF0b3JbXShzaXplX3QgaSkgeyBl
bnN1cmVWZWN0b3IoKTsgQVNTRVJUKGkgPCBzaXplKCkpOyByZXR1cm4gbV92ZWN0b3JbaV07IH0K
IApAQCAtNzIsNiArNzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBj
b250YWlucyhjb25zdCBBdG9taWNTdHJpbmcmIHN0cmluZykgY29uc3QgeyByZXR1cm4gbV9kYXRh
ICYmIG1fZGF0YS0+Y29udGFpbnMoc3RyaW5nKTsgfQogICAgICAgICBib29sIGNvbnRhaW5zQWxs
KGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIG5hbWVzKSBjb25zdCB7IHJldHVybiAhbmFtZXMubV9k
YXRhIHx8IChtX2RhdGEgJiYgbV9kYXRhLT5jb250YWluc0FsbCgqbmFtZXMubV9kYXRhKSk7IH0K
KyAgICAgICAgdm9pZCBhZGQoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgICAgIHZvaWQgcmVt
b3ZlKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiAgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9kYXRhID8gbV9kYXRhLT5zaXplKCkgOiAwOyB9CiAgICAgICAgIGJvb2wgaXNO
dWxsKCkgY29uc3QgeyByZXR1cm4gIW1fZGF0YTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCAx
Mjc0NGNiMDYwYzlkOTIwZTczZTE0MzVhMzY0NTRkNDM4YjA5OTczLi43Mzg0YzBiYzJhYmZhMTY4
NjRlYmNlYzU4Mjg5NzNjZGUwMTM5MWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TdHlsZWRF
bGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcApAQCAtMjUsNiAr
MjUsNyBAQAogI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkF0dHJpYnV0
ZS5oIgorI2luY2x1ZGUgIkNsYXNzTGlzdC5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3Iu
aCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
cy5oIgpAQCAtMjIyLDcgKzIyMyw3IEBAIHZvaWQgU3R5bGVkRWxlbWVudDo6Y2xhc3NBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYgbmV3Q2xhc3NTdHJpbmcpCiAgICAgaWYgKGhh
c0NsYXNzKSB7CiAgICAgICAgIGF0dHJpYnV0ZXMoKS0+c2V0Q2xhc3MobmV3Q2xhc3NTdHJpbmcp
OwogICAgICAgICBpZiAoRE9NVG9rZW5MaXN0KiBjbGFzc0xpc3QgPSBvcHRpb25hbENsYXNzTGlz
dCgpKQotICAgICAgICAgICAgY2xhc3NMaXN0LT5yZXNldChuZXdDbGFzc1N0cmluZyk7CisgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxDbGFzc0xpc3QqPihjbGFzc0xpc3QpLT5yZXNldChuZXdDbGFz
c1N0cmluZyk7CiAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVNYXAoKSkKICAgICAgICAgYXR0cmli
dXRlTWFwKCktPmNsZWFyQ2xhc3MoKTsKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmggYi9XZWJDb3JlL2RvbS9TdHlsZWRF
bGVtZW50LmgKaW5kZXggNGI2MjM4ODE0NDRlMTg1NDA3NjM2M2MwY2M2OTIxYjk4NzNkMzA2MS4u
ODA0MGRiZjFlMzY4YWNiN2Y0ZWE4ZTgzNTdhMWIxNWFmODA0MmYwMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vU3R5bGVkRWxlbWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
aApAQCAtMzIsNyArMzIsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdHRyaWJ1
dGU7Ci1jbGFzcyBDbGFzc0xpc3Q7CiBjbGFzcyBDU1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlv
bjsKIAogY2xhc3MgU3R5bGVkRWxlbWVudCA6IHB1YmxpYyBFbGVtZW50IHsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwIGIvV2ViQ29yZS9odG1sL0NsYXNzTGlzdC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTc4NjAxYjcyYmMwYTAwMWY4N2YzMmRkYTQ2OGZiMmFiYWYxZjgxOQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuY3BwCkBAIC0wLDAgKzEsMTQ2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ2xhc3NM
aXN0LmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcu
aCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworQ2xhc3NMaXN0OjpDbGFzc0xp
c3QoRWxlbWVudCogZWxlbWVudCkKKyAgICA6IG1fZWxlbWVudChlbGVtZW50KQoreworICAgIGlm
IChtX2VsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQorICAgICAgICBtX2NsYXNz
TmFtZXNGb3JRdWlya3NNb2RlLnNldChtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NB
dHRyKSwgZmFsc2UpOworfQorCit2b2lkIENsYXNzTGlzdDo6cmVmKCkKK3sKKyAgICBtX2VsZW1l
bnQtPnJlZigpOworfQorCit2b2lkIENsYXNzTGlzdDo6ZGVyZWYoKQoreworICAgIG1fZWxlbWVu
dC0+ZGVyZWYoKTsKK30KKwordW5zaWduZWQgQ2xhc3NMaXN0OjpsZW5ndGgoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2VsZW1lbnQtPmhhc0NsYXNzKCkgPyBjbGFzc05hbWVzKCkuc2l6ZSgpIDog
MDsKK30KKworY29uc3QgQXRvbWljU3RyaW5nIENsYXNzTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKK3sKKyAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybiBB
dG9taWNTdHJpbmcoKTsKKyAgICByZXR1cm4gY2xhc3NOYW1lcygpW2luZGV4XTsKK30KKworYm9v
bCBDbGFzc0xpc3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvbnRhaW5zSW50ZXJuYWwodG9rZW4p
OworfQorCitib29sIENsYXNzTGlzdDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNTdHJp
bmcmIHRva2VuKSBjb25zdAoreworICAgIHJldHVybiBtX2VsZW1lbnQtPmhhc0NsYXNzKCkgJiYg
Y2xhc3NOYW1lcygpLmNvbnRhaW5zKHRva2VuKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OmFkZChj
b25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAo
IXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0dXJuOworICAgIGFkZEludGVy
bmFsKHRva2VuKTsKK30KKwordm9pZCBDbGFzc0xpc3Q6OmFkZEludGVybmFsKGNvbnN0IEF0b21p
Y1N0cmluZyYgdG9rZW4pCit7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBvbGRDbGFzc05hbWUo
bV9lbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGNsYXNzQXR0cikpOworICAgIGlmIChvbGRDbGFz
c05hbWUuaXNFbXB0eSgpKQorICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0
dHIsIHRva2VuKTsKKyAgICBlbHNlIGlmICghY29udGFpbnNJbnRlcm5hbCh0b2tlbikpIHsKKyAg
ICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdDbGFzc05hbWUoYWRkVG9rZW4ob2xkQ2xhc3NO
YW1lLCB0b2tlbikpOworICAgICAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIs
IG5ld0NsYXNzTmFtZSk7CisgICAgfQorfQorCit2b2lkIENsYXNzTGlzdDo6cmVtb3ZlKGNvbnN0
IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghdmFs
aWRhdGVUb2tlbih0b2tlbiwgZWMpKQorICAgICAgICByZXR1cm47CisgICAgcmVtb3ZlSW50ZXJu
YWwodG9rZW4pOworfQorCit2b2lkIENsYXNzTGlzdDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRv
bWljU3RyaW5nJiB0b2tlbikKK3sKKyAgICAvLyBDaGVjayB1c2luZyBjb250YWlucyBmaXJzdCBz
aW5jZSBpdCB1c2VzIEF0b21pY1N0cmluZyBjb21wYXJpc29ucyBpbnN0ZWFkCisgICAgLy8gb2Yg
Y2hhcmFjdGVyIGJ5IGNoYXJhY3RlciB0ZXN0aW5nLgorICAgIGlmICghY29udGFpbnNJbnRlcm5h
bCh0b2tlbikpCisgICAgICAgIHJldHVybjsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5ld0Ns
YXNzTmFtZShyZW1vdmVUb2tlbihtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRy
KSwgdG9rZW4pKTsKKyAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0ZShjbGFzc0F0dHIsIG5ld0Ns
YXNzTmFtZSk7Cit9CisKK2Jvb2wgQ2xhc3NMaXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRv
a2VuLCBlYykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjb250YWluc0ludGVy
bmFsKHRva2VuKSkgeworICAgICAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgYWRkSW50ZXJuYWwodG9rZW4pOworICAgIHJldHVybiB0
cnVlOworfQorCitTdHJpbmcgQ2xhc3NMaXN0Ojp0b1N0cmluZygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFzc0F0dHIpOworfQorCit2b2lkIENs
YXNzTGlzdDo6cmVzZXQoY29uc3QgU3RyaW5nJiBuZXdDbGFzc05hbWUpCit7CisgICAgaWYgKCFt
X2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLmlzTnVsbCgpKQorICAgICAgICBtX2NsYXNzTmFtZXNG
b3JRdWlya3NNb2RlLnNldChuZXdDbGFzc05hbWUsIGZhbHNlKTsKK30KKworY29uc3QgU3BhY2VT
cGxpdFN0cmluZyYgQ2xhc3NMaXN0OjpjbGFzc05hbWVzKCkgY29uc3QKK3sKKyAgICBBU1NFUlQo
bV9lbGVtZW50LT5oYXNDbGFzcygpKTsKKyAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1aXJrc01v
ZGUuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOwor
ICAgIHJldHVybiBtX2VsZW1lbnQtPmF0dHJpYnV0ZU1hcCgpLT5jbGFzc05hbWVzKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9DbGFzc0xp
c3QuaCBiL1dlYkNvcmUvaHRtbC9DbGFzc0xpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2FlYTYwYmU1NjU4
ZGYyYTliM2RkMTI2OWM5NGVkMWM3Y2MxNGFjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9o
dG1sL0NsYXNzTGlzdC5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
Q2xhc3NMaXN0X2gKKyNkZWZpbmUgQ2xhc3NMaXN0X2gKKworI2luY2x1ZGUgIkRPTVRva2VuTGlz
dC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJTcGFjZVNwbGl0U3Ry
aW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBFbGVtZW50OworCitjbGFzcyBDbGFzc0xpc3QgOiBwdWJsaWMgRE9NVG9rZW5M
aXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxDbGFzc0xpc3Q+IGNyZWF0ZShF
bGVtZW50KiBlbGVtZW50KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDbGFz
c0xpc3QoZWxlbWVudCkpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCByZWYoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVyZWYoKTsKKworICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3Q7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcgaXRlbSh1bnNpZ25lZCBpbmRleCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IEF0b21pY1N0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlKGNvbnN0IEF0
b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIGJvb2wgdG9nZ2xlKGNv
bnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB0
b1N0cmluZygpIGNvbnN0OworCisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgeyByZXR1
cm4gbV9lbGVtZW50OyB9CisKKyAgICB2b2lkIHJlc2V0KGNvbnN0IFN0cmluZyYpOworCitwcml2
YXRlOgorICAgIENsYXNzTGlzdChFbGVtZW50Kik7CisKKyAgICB2b2lkIGFkZEludGVybmFsKGNv
bnN0IEF0b21pY1N0cmluZyYpOworICAgIGJvb2wgY29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9t
aWNTdHJpbmcmKSBjb25zdDsKKyAgICB2b2lkIHJlbW92ZUludGVybmFsKGNvbnN0IEF0b21pY1N0
cmluZyYpOworCisgICAgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lcygpIGNvbnN0
OworCisgICAgRWxlbWVudCogbV9lbGVtZW50OworICAgIFNwYWNlU3BsaXRTdHJpbmcgbV9jbGFz
c05hbWVzRm9yUXVpcmtzTW9kZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIENsYXNzTGlzdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVU
b2tlbkxpc3QuY3BwIGIvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNjM2YmQzYWIzYjgyZWZkMGI0Y2U0MGQxYTViYzZhNWJkZWQ5ZDAzCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcApAQCAtMCww
ICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitET01TZXR0
YWJsZVRva2VuTGlzdDo6RE9NU2V0dGFibGVUb2tlbkxpc3QoKQorICAgIDogbV92YWx1ZSgpCisg
ICAgLCBtX3Rva2VucygpCit7Cit9CisKK0RPTVNldHRhYmxlVG9rZW5MaXN0Ojp+RE9NU2V0dGFi
bGVUb2tlbkxpc3QoKQoreworfQorCitjb25zdCBBdG9taWNTdHJpbmcgRE9NU2V0dGFibGVUb2tl
bkxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgaWYgKGluZGV4ID49IGxl
bmd0aCgpKQorICAgICAgICByZXR1cm4gQXRvbWljU3RyaW5nKCIiKTsKKyAgICByZXR1cm4gbV90
b2tlbnNbaW5kZXhdOworfQorCitib29sIERPTVNldHRhYmxlVG9rZW5MaXN0Ojpjb250YWlucyhj
b25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAg
ICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBtX3Rva2Vucy5jb250YWlucyh0b2tlbik7Cit9CisKK3ZvaWQgRE9NU2V0dGFi
bGVUb2tlbkxpc3Q6OmFkZChjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSB8fCBtX3Rva2Vucy5j
b250YWlucyh0b2tlbikpCisgICAgICAgIHJldHVybjsKKyAgICBhZGRJbnRlcm5hbCh0b2tlbik7
Cit9CisKK3ZvaWQgRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmFkZEludGVybmFsKGNvbnN0IEF0b21p
Y1N0cmluZyYgdG9rZW4pCit7CisgICAgbV92YWx1ZSA9IGFkZFRva2VuKG1fdmFsdWUsIHRva2Vu
KTsKKyAgICBtX3Rva2Vucy5hZGQodG9rZW4pOworfQorCit2b2lkIERPTVNldHRhYmxlVG9rZW5M
aXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykgfHwgIW1fdG9rZW5zLmNvbnRh
aW5zKHRva2VuKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJlbW92ZUludGVybmFsKHRva2VuKTsK
K30KKwordm9pZCBET01TZXR0YWJsZVRva2VuTGlzdDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRv
bWljU3RyaW5nJiB0b2tlbikKK3sKKyAgICBtX3ZhbHVlID0gcmVtb3ZlVG9rZW4obV92YWx1ZSwg
dG9rZW4pOworICAgIG1fdG9rZW5zLnJlbW92ZSh0b2tlbik7Cit9CisKK2Jvb2wgRE9NU2V0dGFi
bGVUb2tlbkxpc3Q6OnRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25D
b2RlJiBlYykKK3sKKyAgICBpZiAoIXZhbGlkYXRlVG9rZW4odG9rZW4sIGVjKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmIChtX3Rva2Vucy5jb250YWlucyh0b2tlbikpIHsKKyAgICAg
ICAgcmVtb3ZlSW50ZXJuYWwodG9rZW4pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIGFkZEludGVybmFsKHRva2VuKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBET01T
ZXR0YWJsZVRva2VuTGlzdDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBt
X3ZhbHVlID0gdmFsdWU7CisgICAgbV90b2tlbnMuc2V0KHZhbHVlLCB0cnVlKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxl
VG9rZW5MaXN0LmggYi9XZWJDb3JlL2h0bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYjcxMWI0YTI0NjRlYWE2MDYxMDUxZTNhMTFmNDI2NTNmZDVmZGMxCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9odG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmgKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01TZXR0YWJsZVRva2VuTGlzdF9oCisjZGVm
aW5lIERPTVNldHRhYmxlVG9rZW5MaXN0X2gKKworI2luY2x1ZGUgIkRPTVRva2VuTGlzdC5oIgor
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIERPTVNldHRhYmxlVG9rZW5MaXN0IDogcHVibGljIERPTVRva2VuTGlzdCwg
cHVibGljIFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gY3JlYXRlKCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRE9NU2V0dGFibGVUb2tlbkxpc3QoKSk7CisgICAg
fQorICAgIHZpcnR1YWwgfkRPTVNldHRhYmxlVG9rZW5MaXN0KCk7CisKKyAgICB2aXJ0dWFsIHZv
aWQgcmVmKCkgeyBSZWZDb3VudGVkPERPTVNldHRhYmxlVG9rZW5MaXN0Pjo6cmVmKCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGVyZWYoKSB7IFJlZkNvdW50ZWQ8RE9NU2V0dGFibGVUb2tlbkxpc3Q+
OjpkZXJlZigpOyB9CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fdG9rZW5zLnNpemUoKTsgfQorICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nIGl0
ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBjb250YWlucyhjb25z
dCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lk
IGFkZChjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmlydHVhbCB2
b2lkIHJlbW92ZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdmly
dHVhbCBib29sIHRvZ2dsZShjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CisK
KyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgdm9pZCBz
ZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKKworcHJpdmF0ZToKKyAgICBET01TZXR0YWJsZVRva2Vu
TGlzdCgpOworCisgICAgdm9pZCByZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcmKTsK
KyAgICB2b2lkIGFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYpOworCisgICAgU3RyaW5n
IG1fdmFsdWU7CisgICAgU3BhY2VTcGxpdFN0cmluZyBtX3Rva2VuczsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERPTVNldHRhYmxlVG9rZW5MaXN0X2gKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9ET01TZXR0YWJsZVRva2VuTGlzdC5pZGwgYi9XZWJDb3JlL2h0
bWwvRE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyNjA2MjNlZWI0NjNkN2Mz
MGQ5NmY5MDI4MTkxMDAxZjcxYTMzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwv
RE9NU2V0dGFibGVUb2tlbkxpc3QuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIEdlbmVyYXRlQ29uc3Ry
dWN0b3IsCisgICAgICAgIEhhc0luZGV4R2V0dGVyLAorICAgICAgICBHZW5lcmF0ZVRvSlMKKyAg
ICBdIERPTVNldHRhYmxlVG9rZW5MaXN0IDogRE9NVG9rZW5MaXN0IHsKKyAgICAgICAgYXR0cmli
dXRlIERPTVN0cmluZyB2YWx1ZTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmNwcCBiL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4
IGFhMGE3NGIyYWNiYmQ4YTU3OWRjYWU2NjBlNTU0OTQyNDc0MWY3MWMuLjNjOTFmMjAxMjUzMGIy
NGY5ODI2Y2IyMWQ4N2U0M2MyMzMzNGYzNjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0yNSwx
NyArMjUsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJET01Ub2tlbkxpc3Qu
aCIKIAotI2luY2x1ZGUgIkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJIVE1MUGFyc2VySWRpb21zLmgiCi0jaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotCi1zdGF0aWMgYm9vbCB2YWxpZGF0ZVRv
a2VuKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQorYm9vbCBE
T01Ub2tlbkxpc3Q6OnZhbGlkYXRlVG9rZW4oY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKHRva2VuLmlzRW1wdHkoKSkgewogICAgICAgICBl
YyA9IFNZTlRBWF9FUlI7CkBAIC01Myw4NiArNDgsMjMgQEAgc3RhdGljIGJvb2wgdmFsaWRhdGVU
b2tlbihjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCogZWxl
bWVudCkKLSAgICA6IG1fZWxlbWVudChlbGVtZW50KQotewotICAgIGlmIChtX2VsZW1lbnQtPmRv
Y3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQotICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLnNldChtX2VsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoY2xhc3NBdHRyKSwgZmFsc2UpOwot
fQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVmKCkKLXsKLSAgICBtX2VsZW1lbnQtPnJlZigpOwot
fQotCi12b2lkIERPTVRva2VuTGlzdDo6ZGVyZWYoKQotewotICAgIG1fZWxlbWVudC0+ZGVyZWYo
KTsKLX0KLQotdW5zaWduZWQgRE9NVG9rZW5MaXN0OjpsZW5ndGgoKSBjb25zdAotewotICAgIHJl
dHVybiBtX2VsZW1lbnQtPmhhc0NsYXNzKCkgPyBjbGFzc05hbWVzKCkuc2l6ZSgpIDogMDsKLX0K
LQotY29uc3QgQXRvbWljU3RyaW5nIERPTVRva2VuTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkg
Y29uc3QKLXsKLSAgICBpZiAoaW5kZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiBBdG9t
aWNTdHJpbmcoKTsKLSAgICByZXR1cm4gY2xhc3NOYW1lcygpW2luZGV4XTsKLX0KLQotYm9vbCBE
T01Ub2tlbkxpc3Q6OmNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAotewotICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGNvbnRhaW5zSW50ZXJuYWwodG9rZW4p
OwotfQotCi1ib29sIERPTVRva2VuTGlzdDo6Y29udGFpbnNJbnRlcm5hbChjb25zdCBBdG9taWNT
dHJpbmcmIHRva2VuKSBjb25zdAorU3RyaW5nIERPTVRva2VuTGlzdDo6YWRkVG9rZW4oY29uc3Qg
QXRvbWljU3RyaW5nJiBpbnB1dCwgY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikKIHsKLSAgICBy
ZXR1cm4gbV9lbGVtZW50LT5oYXNDbGFzcygpICYmIGNsYXNzTmFtZXMoKS5jb250YWlucyh0b2tl
bik7Ci19CisgICAgaWYgKGlucHV0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRva2VuOwog
Ci12b2lkIERPTVRva2VuTGlzdDo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgdG9rZW4sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIGlmICghdmFsaWRhdGVUb2tlbih0b2tlbiwgZWMpKQotICAg
ICAgICByZXR1cm47Ci0gICAgYWRkSW50ZXJuYWwodG9rZW4pOworICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZChpbnB1dCk7CisgICAgaWYgKGlucHV0W2lucHV0
Lmxlbmd0aCgpLTFdICE9ICcgJykKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoJyAnKTsKKyAgICBi
dWlsZGVyLmFwcGVuZCh0b2tlbik7CisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKIH0K
IAotdm9pZCBET01Ub2tlbkxpc3Q6OmFkZEludGVybmFsKGNvbnN0IEF0b21pY1N0cmluZyYgdG9r
ZW4pIGNvbnN0CitTdHJpbmcgRE9NVG9rZW5MaXN0OjpyZW1vdmVUb2tlbihjb25zdCBBdG9taWNT
dHJpbmcmIGlucHV0LCBjb25zdCBBdG9taWNTdHJpbmcmIHRva2VuKQogewotICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgb2xkQ2xhc3NOYW1lKG1fZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShjbGFz
c0F0dHIpKTsKLSAgICBpZiAob2xkQ2xhc3NOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgbV9lbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoY2xhc3NBdHRyLCB0b2tlbik7Ci0gICAgZWxzZSBpZiAoIWNvbnRh
aW5zSW50ZXJuYWwodG9rZW4pKSB7Ci0gICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAg
ICAgICAgYnVpbGRlci5hcHBlbmQob2xkQ2xhc3NOYW1lKTsKLSAgICAgICAgaWYgKG9sZENsYXNz
TmFtZVtvbGRDbGFzc05hbWUubGVuZ3RoKCkgLSAxXSAhPSAnICcpCi0gICAgICAgICAgICBidWls
ZGVyLmFwcGVuZCgnICcpOwotICAgICAgICBidWlsZGVyLmFwcGVuZCh0b2tlbik7Ci0gICAgICAg
IG1fZWxlbWVudC0+c2V0QXR0cmlidXRlKGNsYXNzQXR0ciwgYnVpbGRlci50b1N0cmluZygpKTsK
LSAgICB9Ci19Ci0KLXZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmUoY29uc3QgQXRvbWljU3RyaW5n
JiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRv
a2VuLCBlYykpCi0gICAgICAgIHJldHVybjsKLSAgICByZW1vdmVJbnRlcm5hbCh0b2tlbik7Ci19
Ci0KLXZvaWQgRE9NVG9rZW5MaXN0OjpyZW1vdmVJbnRlcm5hbChjb25zdCBBdG9taWNTdHJpbmcm
IHRva2VuKSBjb25zdAotewotICAgIC8vIENoZWNrIHVzaW5nIGNvbnRhaW5zIGZpcnN0IHNpbmNl
IGl0IHVzZXMgQXRvbWljU3RyaW5nIGNvbXBhcmlzb25zIGluc3RlYWQKLSAgICAvLyBvZiBjaGFy
YWN0ZXIgYnkgY2hhcmFjdGVyIHRlc3RpbmcuCi0gICAgaWYgKCFjb250YWluc0ludGVybmFsKHRv
a2VuKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gQWxnb3JpdGhtIGRlZmluZWQgYXQgaHR0
cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uv
Y29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNyZW1vdmUtYS10b2tlbi1mcm9tLWEtc3RyaW5nCiAK
LSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlucHV0ID0gbV9lbGVtZW50LT5mYXN0R2V0QXR0cmli
dXRlKGNsYXNzQXR0cik7CiAgICAgdW5zaWduZWQgaW5wdXRMZW5ndGggPSBpbnB1dC5sZW5ndGgo
KTsKICAgICBWZWN0b3I8VUNoYXI+IG91dHB1dDsgLy8gMwogICAgIG91dHB1dC5yZXNlcnZlQ2Fw
YWNpdHkoaW5wdXRMZW5ndGgpOwpAQCAtMTcwLDM5ICsxMDIsNyBAQCB2b2lkIERPTVRva2VuTGlz
dDo6cmVtb3ZlSW50ZXJuYWwoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbikgY29uc3QKICAgICB9
CiAKICAgICBvdXRwdXQuc2hyaW5rVG9GaXQoKTsKLSAgICBtX2VsZW1lbnQtPnNldEF0dHJpYnV0
ZShjbGFzc0F0dHIsIFN0cmluZzo6YWRvcHQob3V0cHV0KSk7Ci19Ci0KLWJvb2wgRE9NVG9rZW5M
aXN0Ojp0b2dnbGUoY29uc3QgQXRvbWljU3RyaW5nJiB0b2tlbiwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCF2YWxpZGF0ZVRva2VuKHRva2VuLCBlYykpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGlmIChjb250YWluc0ludGVybmFsKHRva2VuKSkgewotICAgICAgICByZW1v
dmVJbnRlcm5hbCh0b2tlbik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgYWRk
SW50ZXJuYWwodG9rZW4pOwotICAgIHJldHVybiB0cnVlOwotfQotCi1TdHJpbmcgRE9NVG9rZW5M
aXN0Ojp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZWxlbWVudC0+ZmFzdEdldEF0
dHJpYnV0ZShjbGFzc0F0dHIpOwotfQotCi12b2lkIERPTVRva2VuTGlzdDo6cmVzZXQoY29uc3Qg
U3RyaW5nJiBuZXdDbGFzc05hbWUpCi17Ci0gICAgaWYgKCFtX2NsYXNzTmFtZXNGb3JRdWlya3NN
b2RlLmlzTnVsbCgpKQotICAgICAgICBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlLnNldChuZXdD
bGFzc05hbWUsIGZhbHNlKTsKLX0KLQotY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgRE9NVG9rZW5M
aXN0OjpjbGFzc05hbWVzKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9lbGVtZW50LT5oYXNDbGFz
cygpKTsKLSAgICBpZiAoIW1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGUuaXNOdWxsKCkpCi0gICAg
ICAgIHJldHVybiBtX2NsYXNzTmFtZXNGb3JRdWlya3NNb2RlOwotICAgIHJldHVybiBtX2VsZW1l
bnQtPmF0dHJpYnV0ZU1hcCgpLT5jbGFzc05hbWVzKCk7CisgICAgcmV0dXJuIFN0cmluZzo6YWRv
cHQob3V0cHV0KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCmlu
ZGV4IGZhZDY5Y2E4Yjk1OTVlMjE3NjkyZDEwMjRiNTBmYmI4NjA2NjNkNTMuLjVkZjJlZGUwNTg2
NzMzYWEzYWM3ZmE3NWNhYzMwZmI4YzFkYzNkYTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9E
T01Ub2tlbkxpc3QuaAorKysgYi9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDkgKzI2LDkg
QEAKICNkZWZpbmUgRE9NVG9rZW5MaXN0X2gKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
LSNpbmNsdWRlICJTcGFjZVNwbGl0U3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWlj
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzYsMzcgKzM2LDI1IEBAIGNsYXNzIEVsZW1lbnQ7CiAKIGNsYXNzIERPTVRva2Vu
TGlzdCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8RE9NVG9rZW5MaXN0PiBjcmVhdGUoRWxlbWVudCogZWxlbWVudCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgRE9NVG9rZW5MaXN0KGVsZW1lbnQpKTsKLSAgICB9CisgICAg
dmlydHVhbCB+RE9NVG9rZW5MaXN0KCkge307CiAKLSAgICB2b2lkIHJlZigpOwotICAgIHZvaWQg
ZGVyZWYoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
ZXJlZigpID0gMDsKIAotICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OwotICAgIGNvbnN0IEF0
b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5z
KGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICB2b2lkIGFk
ZChjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCByZW1vdmUo
Y29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGJvb2wgdG9nZ2xlKGNv
bnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBTdHJpbmcgdG9TdHJpbmco
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBBdG9taWNTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoY29uc3Qg
QXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgdG9n
Z2xlKGNvbnN0IEF0b21pY1N0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CisgICAgdmlydHVh
bCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCA9IDA7CiAKLSAgICB2b2lkIHJlc2V0KGNvbnN0IFN0
cmluZyYpOworICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpIHsgcmV0dXJuIDA7IH0KIAot
ICAgIEVsZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KLQotcHJpdmF0ZToK
LSAgICBET01Ub2tlbkxpc3QoRWxlbWVudCopOwotCi0gICAgdm9pZCBhZGRJbnRlcm5hbChjb25z
dCBBdG9taWNTdHJpbmcmKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5zSW50ZXJuYWwoY29uc3Qg
QXRvbWljU3RyaW5nJikgY29uc3Q7Ci0gICAgdm9pZCByZW1vdmVJbnRlcm5hbChjb25zdCBBdG9t
aWNTdHJpbmcmKSBjb25zdDsKLQotICAgIGNvbnN0IFNwYWNlU3BsaXRTdHJpbmcmIGNsYXNzTmFt
ZXMoKSBjb25zdDsKLQotICAgIEVsZW1lbnQqIG1fZWxlbWVudDsKLSAgICBTcGFjZVNwbGl0U3Ry
aW5nIG1fY2xhc3NOYW1lc0ZvclF1aXJrc01vZGU7Citwcm90ZWN0ZWQ6CisgICAgc3RhdGljIGJv
b2wgdmFsaWRhdGVUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgc3RhdGljIFN0cmluZyBhZGRUb2tlbihjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBBdG9t
aWNTdHJpbmcmKTsKKyAgICBzdGF0aWMgU3RyaW5nIHJlbW92ZVRva2VuKGNvbnN0IEF0b21pY1N0
cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAppbmRleCAzMmZlZjYyZWNhNWE2ODE1ZmRlYTc0NTk0MDc3NGEzNjJlMGRh
ODI4Li42MGQ5YjUzMmNkNzdhZTczMmE0MjRkOWMyY2ZhMjRjZmI3ZTgyYTM4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5j
bHVkZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgor
I2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlz
dC5oIgogI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCmluZGV4IGJmNTczYTYyZmMwMTM4M2U3ZGExM2ZhOTIzNjJkZjMwODcxMzkwYjEu
Ljg1YmQ3MGI4ZGM3MWU5NDNjZWIxNTljMmI3ODI5MTFkY2M2ODQ0MmEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CkBAIC0zODAsNiArMzgwLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAvLyAgICAgICAgYXR0cmlidXRl
IERPTUltcGxlbWVudGF0aW9uTGlzdENvbnN0cnVjdG9yIERPTUltcGxlbWVudGF0aW9uTGlzdDsK
IC8vICAgICAgICBhdHRyaWJ1dGUgRE9NSW1wbGVtZW50YXRpb25Tb3VyY2VDb25zdHJ1Y3RvciBE
T01JbXBsZW1lbnRhdGlvblNvdXJjZTsKICAgICAgICAgYXR0cmlidXRlIERPTUltcGxlbWVudGF0
aW9uQ29uc3RydWN0b3IgRE9NSW1wbGVtZW50YXRpb247CisgICAgICAgIGF0dHJpYnV0ZSBET01T
ZXR0YWJsZVRva2VuTGlzdENvbnN0cnVjdG9yIERPTVNldHRhYmxlVG9rZW5MaXN0OwogICAgICAg
ICBhdHRyaWJ1dGUgRE9NVG9rZW5MaXN0Q29uc3RydWN0b3IgRE9NVG9rZW5MaXN0OwogICAgICAg
ICBhdHRyaWJ1dGUgRG9jdW1lbnRGcmFnbWVudENvbnN0cnVjdG9yIERvY3VtZW50RnJhZ21lbnQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVudENvbnN0cnVjdG9yIERvY3VtZW50Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>